Voynich Elyazması’nı SBERT ile modelleyerek yapısını inceleme
(github.com/brianmg)- Bu depo, Voynich Elyazması’nın gerçek bir dil gibi davranan yapısal örüntülere sahip olup olmadığını görmek için çeviri tahminleri yapmadan kümeleme, sözcük türü çıkarımı, Markov geçişleri ve bölüm bazlı örüntüler uyguluyor
- Analiz hattı, yinelenen sonekler gibi görünen
aiin,dy,chyvb. öğeleri kaldırdıktan sonra kökleri multilingual SBERT ile gömüyor ve kümeliyor; elyazmasındaki her satırı küme dizilerine eşliyor - Sonuçlar, Cluster 8’in yüksek frekanslı, düşük çeşitlilikli ve satır başında sık görülen bir küme olarak işlev sözcüğü grubuna benzediğini; Cluster 3’ün ise yüksek çeşitlilik ve konum esnekliğiyle içerik sözcüğü kökü sınıfına benzediğini gösteren yapısal farklar sunuyor
- Sonek kaldırma, benzer gövdeleri daha sıkı gruplandırıp geçiş matrisini daha temiz hâle getirdi; ancak gerçek biçimbilimsel bilgiyi kaldırabilecek, anlamlı çekim varyasyonlarını gizleyebilecek veya işlev odaklı bir yanlılık oluşturabilecek güçlü bir ön işleme tercihi
- Proje, anlamsal çeviri denemiyor; Voynich Elyazması’nın sözdizim, işlev/içerik sözcüğü ayrımı ve bölüm bazlı dil değişimi gibi dil benzeri yapılar gösterip göstermediğini veri temelli olarak incelemeye odaklanıyor
Projenin amacı
- Voynich Elyazması hâlâ çözülemedi ve üzerinde uzlaşılan dilbilimsel ya da kriptografik bir çözüm yok
- Bu proje, istatistiksel entropi testleri ile temelsiz yorumlar arasında orta bir yol izleyerek, hesaplamalı dilbilim teknikleriyle elyazmasının yapılandırılmış dil benzeri davranış kodlayıp kodlamadığını değerlendiriyor
- Çeviri ya da GPT tarzı tahminler yapmıyor; yalnızca dil gibi davranan bir yapı olup olmadığına odaklanıyor
Analiz hattı ve dosya yapısı
/data/içinde tam transkripsiyon, kök sözcük dosyası, kaldırılan kök listesi, küme arama tablosu ve satır bazlı küme dizileri yer alıyor/scripts/analiz adımlarını ayrı ayrı çalıştırıyorcluster_roots.py: SBERT kümelemesi ve sonek kaldırmamap_lines_to_clusters.py: Elyazması satırlarını küme ID’lerine eşlemepos_model.py: Küme davranışına göre dilbilgisel rol çıkarımıtransition_matrix.py: Küme geçişleri oluşturma ve görselleştirmelexicon_builder.py: Bölüm ve rol bazlı aday sözcük tabloları üretmecluster_language_similarity.py: İsteğe bağlı olarak kümeleri gerçek dillerle karşılaştırma
/results/içinde PCA ile indirgenmiş küme görselleri, Markov geçiş matrisi ısı haritaları, küme rol özetleri, geçiş matrisi CSV’leri ve aday sözcük CSV’leri saklanıyor
Temel katkılar
- Sonekleri kaldırılmış kökleri kümelemek için multilingual SBERT kullanıyor
- İşlev sözcüğüne benzeyen kümeler ile içerik sözcüğüne benzeyen kümeleri ayırıyor
- Küme dizileri üzerinde Markov tarzı geçiş modellemesi yapıyor
- Botanical, Biological gibi elyazması bölümlerine göre sözdizim yapısını eşliyor
- Bölüm ve role göre veri temelli sözcük dağarcığı hipotez tabloları üretiyor
Ön işleme tercihi ve etkisi
- Her sözcükten
aiin,dy,chyve benzer varyantlar gibi yinelenen sonek görünümlü öğeler kaldırılıyor - Bu tercihin amacı, varyasyonlarla birlikte yinelenen kök biçimlerini ayrıştırmaktı
- Soneklerin aşağıdakilerden biri olabileceği değerlendiriliyor
- Sesbilimsel dolgu
- Dilbilgisel parçacık
- Büyü/formül ya da bellek tekniği türü tekrar
- Gürültü
- Sonekler kaldırıldıktan sonra benzer gövdeler daha sıkı kümeleniyor ve geçiş matrisinde daha temiz yapısal örüntüler ortaya çıkıyor
- Ancak bu ön işleme nötr değil
- Gerçek biçimbilimsel bilgiyi kaldırmış olabilir
- Anlamlı çekim varyasyonlarını gizlemiş olabilir
- Sonuçları içerikten çok işlev odaklı olacak şekilde yanlılaştırmış olabilir
- Sonekler kaldırılmadan ya da sonekler ayrı token sınıfları olarak işlenerek hattın yeniden çalıştırıldığı karşılaştırmalar yapılabilir
Gözlenen yapı
- Cluster 8 yüksek frekans, düşük çeşitlilik ve sık satır başı konumu gösteriyor; bu nedenle bir işlev sözcüğü grubu olma olasılığı var
- Cluster 3 yüksek çeşitlilik ve esnek konum gösteriyor; kök içerik sözcüğü sınıfı olma olasılığı var
- Geçiş matrisi, rastgelelikten uzak güçlü bir iç yapı sergiliyor
- Küme kullanımı ve sözcük türü örüntüleri, Biological ve Botanical gibi elyazması bölümlerine göre değişiyor
Hipotez ve sınırlamalar
- Elyazmasının, hece dolgusu ve konumsal tekrar kullanan yapılandırılmış bir yapay dil ya da bellek tekniği dili kodladığı hipotezi var
- Doğrudan çeviri olmadan da sözdizim, işlev/içerik sözcüğü ayrımı ve bölüm duyarlı dil değişimi görüldüğü değerlendiriliyor
- Sınırlamalar da açıkça belirtilmiş
- Küme ve sözcük eşlemeleri dolaylı olduğu için frekans tahminleri çakışabilir
- Sonek kaldırma sezgiseldir ve anlamlı ekleri kaldırmış olabilir
- Anlamsal çeviri denenmiyor; yalnızca yapı modellemesi yapılıyor
Yeniden üretim ve son değişiklikler
- Yeniden üretim süreci, bağımlılıkları kurduktan sonra her betiği sırayla çalıştırma biçiminde
pip install -r requirements.txtpython scripts/cluster_roots.pypython scripts/map_lines_to_clusters.pypython scripts/pos_model.pypython scripts/transition_matrix.pypython scripts/lexicon_builder.py
- Görselleştirmede PCA’ya ek olarak UMAP, PaCMAP ve LocalMAP desteği eklendi
- CLI indirgeyicide argüman verilmediğinde PCA kullanılıyor;
--reducer umap,--reducer pacmapseçenekleri işleniyor - Projenin Windows’ta çalıştığı, ancak MacOS’ta düzgün çalışır hâle getirilemediği sınırlaması var
- Model,
all-MiniLM-L6-v2yerine daha büyükparaphrase-multilingual-mpnet-base-v2olarak değiştirildi- README’de boyut karşılaştırması
22M vs 110Molarak yazıyor
- README’de boyut karşılaştırması
1 yorum
Hacker News yorumları
PCA projeksiyonunda kümeler arıyorsanız, PaCMAP veya LocalMAP gibi modern boyut indirgeme algoritmaları ile daha derin yapıyı görmek daha iyi olur
Pol.is [1] adlı anlam çıkarma aracıyla ilgili bir proje üzerinde çalışıyorum; wiki anket verilerini PCA yerine bu yeni algoritmalarla yeniden projekte edince ortaya çıkan yeni içgörüler epey şaşırtıcı oldu
https://patcon.github.io/polislike-opinion-map-painting/
Painted groups: https://t.co/734qNlMdeh
Yalnızca masaüstünde düzgün çalışması üzücü
[1]: https://www.technologyreview.com/2025/04/15/1115125/a-small-...
Eski tarz “faktör analizi”nden farklı
Burada kullanılan metin gömleme modeli paraphrase-multilingual-MiniLM-L12-v2(https://huggingface.co/sentence-transformers/paraphrase-mult...); yaklaşık 4 yıllık bir model
Doğal dil işleme dünyasında fiilen antik sayılabilecek bir model ve LLM’lerdeki genel ilerleme sayesinde küçük gömleme modellerinin bile bilgi ifade gücü ve gömleme uzayındaki ayırt ediciliği ciddi biçimde arttı
Günümüz metin gömleme modelleri, açıkça çok dilli destek için eğitilmemiş olsalar bile bu tür verilerde epey iyi çalışıyor; bu yüzden görece az bilinen bir dil olan Voynich el yazması için daha iyi olabilir
Sonekleri kaldırmak veya sözcük türlerini belirlemek gibi geleneksel doğal dil işleme teknikleri gömleme kalitesini aksine düşürebilir. Çünkü tüm gömleme için gerekli ilgili bağlam bilgisi ortadan kalkar
all-mpnet-base-v2 veya text-embedding-ada-002 gibi modellerin nasıl çalışacağını merak ediyorum; özellikle de sonekleri koruyup kök biçimine indirgemeden tam bağlam gömlemesi kullanmak daha ilginç olabilir
Doğal dil işlemeyi pek bilmiyorum ama bu sürece bir kontrol grubu koymak mantıklı olur mu diye merak ediyorum
Örneğin bir insana dil gibi görünen ama gerçek dil olmayan bir metin yazdırıp sonek kaldırma ve kümeleme gibi aynı süreçleri uygulayarak benzer sonuçların çıkma ihtimalini kontrol etmek mümkün olabilir
El yazmasını bir süre inceledim; bazı sayfalarda yazının çizimlere fazlasıyla yakın durması şüpheli geldi
Normal dillerde kelime ve harf genişlikleri farklı olduğundan satır sonuna yaklaşıldığında doğal olarak satır kırılır, yeni bir kelime başlatılır ve taşma önlenir
Ancak bu el yazmasında bu tür bir kesinti yok gibi görünüyordu; birçok yerde satır sonuna sığabilecek hangi harf varsa zorla sıkıştırılmış gibiydi
Satır kırılmasının hemen öncesinde ve sonrasında hangi harflerin geldiğini, bunun metnin geneliyle farklılık gösterip göstermediğini analiz etmek istedim ama transkripsiyon bulamadım
Tamamen amatörce bir sezgiyle, ya incelikli bir sanat eseri ya da bir dolandırıcılık gibi geliyor
Yalnızca PCA ile bile ayrışma net görünüyor, ama UMAP veya t-SNE de iyi olabilir
Her kümeyi diğer tüm kümelere göre referans eşlemeye tabi tutmak, analizde artık değişkenlik kalıp kalmadığını göstermenin iyi bir yolu olabilir
Ancak UMAP veya t-SNE uygulamanın doğrusal olmayan açıdan daha ince örüntüleri ya da başarısızlık vakalarını yakalayabileceği doğru
Kümeler arası benzerlik matrisi oluşturmadım, ama böyle söyleyince gerçek sinyalin ne kadar yakalandığını doğrulamak için doğal bir sonraki adım gibi görünüyor
Bunu başka tür gömlemelere uygulamayı denemek istiyorum ama doğal dil işleme tarafında çok deneyimli değilim
t-SNE’den ise ne pahasına olursa olsun kaçınırım. Böyle grafiklerdeki mesafelerin neredeyse anlamsız olduğunu düşünüyorum
Bu bir reçete değil, kişisel tercih
Çok ilginç. https://www.voynich.ninja/index.php adresine de bağlantı koymanız iyi olabilir
SBERT’e ya da genel olarak modern istatistiksel doğal dil işlemeye aşina değilim, ancak SBERT cümle düzeyinde çalışıyor ve Voynich el yazmasında net cümle ayırıcıları yok. Yalnızca sözcük ve paragraf ayırıcıları var
“Voynich sözcüklerinden yaygın sonekleri kaldırmak” kısmı da beni endişelendiriyor. Voynich el yazmasındaki sözcükler önek + sonek gibi görünüyor; önekler oldukça kısa olduğu için analize başlamadan önce bilginin yaklaşık yarısını kaybetmiş olabilirsiniz
Bu yöntemin doğal dildeki anlamlı metinlerde de, anlamsız saçmalıklarda da çalışıp çalışmadığını doğrulamak iyi olurdu
Şifreli metin bunun ortalarında bir yerde durur; daha basit şifreler doğal dile daha yakın, daha karmaşık şifreler ise anlamsız saçmalığa daha yakındır
Gordon Rugg, Torsten Timm ve ben, farklı yöntemlerle Voynich el yazmasına çok benzeyen metinler ürettik
Benimki burada: https://fmjlang.co.uk/voynich/generated-voynich-manuscript.h...
Eşdeğer EVA sürümü burada: https://fmjlang.co.uk/voynich/generated-voynich-manuscript.t...
README’de kaçırmış olabilirim ama “sözcüklerin” ilk kodlamasını nasıl yaptığınızı merak ediyorum
Örneğin "okeeodair" gibi bir sözcük varsa, bunun özgün sembollerde nereye eşlendiğini merak ediyorum
Yani gliflerin kendisiyle değil, EVA (European Voynich Alphabet) sistemine dayalı standart transkripsiyon sözcükleriyle çalışıyoruz
Kullanılan transkripsiyonu burada bulabilirsiniz: https://www.voynich.nu/
Bu projede tekrar gliflere eşleme yapılmadı; her şey başlangıç noktası olarak EVA transkripsiyonunu aldı
Dolayısıyla veri kümesinde "okeeodair" varsa, bu benden çok daha zeki birinin glif dizisine bakıp onu böyle adlandırma konusunda uzlaşmış olmasındandır
En ilginç hipotezlerden biri olarak bunu görmüştüm: http://voynichproject.org/
Yazar, Voynichese’in Cermen dilleri ailesinden olduğunu varsaymış ve belli ölçüde ilerleme kaydetmiş gibi görünüyor
Ural dilleri ya da Fin-Ugor dilleri ailesinden olabileceğine dair şeyler de görmüştüm
Bu yaklaşım harika; belirli bir dil ailesine göre ayarlanırsa daha ileri gidip gidemeyeceğini merak ediyorum
Bernholz’un sitesi fena değil, ancak Child’ın çalışması el yazmasının gerçekten çözülmesine pek ışık tutmuyor
Dil kurallarını bilmeyen birinin dili taklit etmesi olabilir: https://en.wikipedia.org/wiki/Naïve_art
Bunun zihinsel bir sorun anlamına geldiğini söylemiyorum; nadiren görülen bir olgu
Voynich, naif sanat eseri koşullarına epey iyi uyuyor
1.https://en.wikipedia.org/wiki/Edward_Kelley
2.https://en.wikipedia.org/wiki/Cardan_grille
Bu yüzden aynı doğal dil işlemeyi İncil metinlerine uygulayıp korelasyon aramak ilginç olabilir
Önce “sözcük” tabanlı bir karşılaştırma, ardından “karakter” tabanlı bir karşılaştırma yapılmalı gibi görünüyor. Yani İncil’in grafiğiyle Voynich’in grafiğini karşılaştırmak gibi
Ayrıca kafa karıştırmak için eklenmiş karakterler olabilir
Örneğin birkaç varyantı bulunan tuhaf büyük “P” benzeri sembol, gerçek bir dili temsil etmek için fazla sık göründüğünden çözümlemeden önce kaldırılması gereken bir karartma sembolü olabilir
Olağandışı sıklıkta görülen başka karakterler de kullanılmayan kukla karakterler olabilir
Elbette “çok fazla P var” olgusu tamamen kurmaca açıklamasıyla da uyumlu
Böyle el yazısı bir kitap yalnızca saçmalıktan ibaretse ve herhangi türden bir şifre değilse, üslubun, hat sanatının, kullanılan sözcüklerin, hatta harflerin kendisinin 1. sayfadan son sayfaya kadar değişmesi gerekir gibi geliyor
Elbette sayfalar yeniden sıralanmış olabilir, ama yine de göze çarpması gerekirdi
Tabii yazar böyle onlarca kitabı daha önce yazmış ve bunların hepsi ortadan kaybolmuş değilse
Çok yeni bir fikir olmayabilir ama böyle örüntülere dair bir analiz olup olmadığını merak ediyorum
Sayfalar arası tutarlılıktan hiçbir yerde bahsedildiğini görmedim
Kâtiplerin 2 kişi olduğu da düşünülüyor (bkz. Prescott Currier); Lisa Fagin Davis ise 5 kişi oldukları görüşünde
Fagin Davis’in konumuna dayanan deney tartışması burada: https://www.voynich.ninja/thread-3783.html