AG
EN

// work / mizan

Mizan

Kur'ân için hibrit bir arama ve metin analiz motoru — Arapça üzerinde ISRI kök bulucuyla BM25, diller arası çeviri gömme vektörleri ve Tanzil külliyatına doğrulanmış harf/Ebced hesapları.

Rol
Yazar ve sürdürücü
Tarih
Oca 2026

Yığın

  • Python
  • BM25
  • ISRI stemmer
  • Translation embeddings
  • FastAPI

Problem

Kur'ân'ı iyi aramak ve analiz etmek göründüğünden zordur. Arapça biçimbilimsel açıdan zengindir, bu yüzden naif anahtar kelime araması bariz eşleşmeleri kaçırır; kullanıcılar yalnızca Arapça değil, Türkçe ve İngilizce de sorgular; harf sayıları ve Ebced toplamları yaygınca dolaşır ama nasıl hesaplandıkları gösterilmediği için çoğu zaman yanlıştır.

Kısıtlar

  • Her sayı ve Ebced toplamı, iddia edilmek yerine yetkili bir külliyata karşı harf-harf doğrulanabilir olmalıdır.
  • Sorgular Arapçanın yanı sıra Türkçe ve İngilizce de gelir; motor diller arasında köprü kurmalıdır.

Yaklaşım

Mizan, klasik bilgi erişimini modern diller arası gömme vektörleriyle birleştirir. BM25, bir ISRI kök bulucu aracılığıyla Arapça kaynak üzerinde biçimbilim duyarlı sözcüksel aramayı yürütür; çeviri gömme vektörleri Türkçe ve İngilizce sorguları Arapça metne bağlar. Harf sayımı ve Ebced hesabı hesaplanır ve ardından Tanzil.net'e karşı harf-harf doğrulanır.

Önemli kararlar

  • Saf sözcüksel ya da saf anlamsal arama yerine hibrit erişim

    ISRI kök buluculu BM25, Arapça üzerinde kesin ve açıklanabilir sözcüksel eşleşmeler verir; çok dilli gömmeler diller arası ve başka sözcüklerle ifade edilmiş sorguları yakalar. Hiçbiri tek başına hem bir âlimin tam-ifade aramasını hem de sıradan bir Türkçe soruyu kapsamaz.

  • Her sonuca yeniden üretilebilirlik meta-verisi ekle

    Her arama ve analiz sonucu, onu hesaplamak için kullanılan veri kümesi SHA'sını, model sürümünü ve metodoloji notlarını taşır; böylece motorun ürettiği herhangi bir sayı bağımsız olarak yeniden oluşturulabilir ve güvenilir olur.

Mimari

Arapça, Türkçe veya İngilizce bir sorgu FastAPI servisine girer. Hibrit erişimci, Arapça kaynak üzerinde BM25'i (ISRI kök buluculu) çok dilli bir gömme yedeğiyle paralel çalıştırır, sonuçları birleştirir ve analiz motorunun harf ve Ebced sayımlarıyla birlikte döndürür — her yanıt yeniden üretilebilirlik meta-verisi taşır.

flowchart LR
  q["Query<br/>Arabic · Turkish · English"]
  svc["FastAPI service"]
  bm25["BM25 + ISRI stemmer<br/>(Arabic source)"]
  emb["Translation embeddings<br/>(multilingual fallback)"]
  analysis["Analysis engine<br/>letter + Abjad counts"]
  merge["Merge + reproducibility metadata"]
  out["Result"]

  q --> svc
  svc --> bm25 --> merge
  svc --> emb --> merge
  svc --> analysis --> merge
  merge --> out
BM25 + ISRI ve bir çeviri-gömme yedeği, tek bir birleşik ve meta-veri etiketli sonucu besler.

Sonuç

Mizan, 172 test geçen bir FastAPI servisi ve bir Python istemcisi olarak gelir — sayımlar ve Ebced toplamları, bayt düzeyinde yeniden üretilebilirlikle Tanzil külliyatına karşı doğrulanmıştır. Daha sonra Muhabbet yığınına bağlanacak şekilde tasarlanmıştır.

Rakamlarla

  • 172 Geçen test
  • 3 Köprülenen sorgu dili
  • Tanzil corpus Sayım doğrulaması
  • SHA + model + notes Sonuç başına yeniden üretilebilirlik etiketi

Aşağıdaki yapılandırılmış bölümler Türkçe mevcuttur; ayrıntılı anlatım İngilizce yazılmıştır. Tam Türkçe çeviri henüz mevcut değildir.

Derinlemesine

Mizan (“the scale” / “the balance”) combines classical information retrieval with modern cross-language embeddings to make Quranic text searchable and its letter-level statistics verifiable.

Why hybrid retrieval

Arabic is morphologically rich: the same root surfaces in many inflected forms. A plain keyword index misses obvious matches, so Mizan runs BM25 over the Arabic with an ISRI stemmer to get morphology-aware lexical recall. But a scholar’s exact-phrase lookup and a casual Turkish question are different problems — the second needs to bridge languages. So a multilingual translation-embedding path runs alongside BM25 and catches cross-language and paraphrase queries. The two are merged into one ranked result.

Verifiable, not just asserted

The part that matters most for trust is the numbers. Letter counts and Abjad (numerological) totals circulate widely and are frequently wrong because nobody shows the work. Mizan computes them and then verifies them letter-by-letter against the Tanzil corpus, and every search and analysis result carries the dataset SHA, the model version, and the methodology notes used to produce it. That means any number the engine reports can be reconstructed independently — the result is reproducible down to the byte.

Where it goes next

Mizan is a FastAPI service plus a Python client, with 172 tests passing. It is built to plug into the Muhabbet stack later, so the same verified retrieval and analysis can sit behind a conversational interface. The source is public on GitHub.

Tüm vaka çalışmaları