1 poin oleh GN⁺ 2025-05-19 | 1 komentar | Bagikan ke WhatsApp
  • Ini adalah proyek open-source yang menganalisis struktur bahasa Naskah Voynich dengan teknik NLP modern seperti SBERT
  • Berfokus pada penghapusan sufiks dan clustering untuk memverifikasi apakah ada struktur mirip bahasa yang nyata, bukan pola semu
  • Hasil analisis struktur dari berbagai sudut, seperti peran kata fungsi dan kata isi serta matriks transisi, menunjukkan pola yang bermakna
  • Berbeda dari pendekatan statistik tradisional atau berbasis spekulasi, proyek ini mencoba menganalisis karakteristik bahasa struktural dengan pendekatan linguistik komputasional
  • Ini adalah proyek yang berfokus hanya pada pemodelan struktural tanpa upaya penerjemahan makna, sehingga memungkinkan riset lanjutan dan eksperimen perbandingan

📜 Pengantar Proyek Analisis Struktur Naskah Voynich

🔍 Gambaran Umum

  • Proyek ini berawal dari eksperimen pribadi untuk menganalisis struktur Naskah Voynich dengan memanfaatkan alat pemrosesan bahasa alami (NLP) modern
  • Menerapkan metode pemodelan bahasa nyata seperti clustering, inferensi kelas kata, transisi Markov, dan ekstraksi pola per bagian
  • Tanpa mencoba menafsirkan makna atau menerjemahkan, maupun membuat perkiraan pola yang berlebihan, proyek ini hanya memverifikasi apakah ada struktur yang berfungsi seperti bahasa
  • Semua tahap dibuka secara publik, termasuk penghapusan sufiks, embedding SBERT, dan pembuatan hipotesis leksikon

🧠 Signifikansi

  • Naskah Voynich adalah dokumen misterius yang belum berhasil diuraikan, dan belum ada solusi linguistik/kriptografis yang pasti
  • Analisis yang ada selama ini terbelah antara pemeriksaan entropi statistik dan spekulasi yang tidak ilmiah
  • Proyek ini, berbasis linguistik komputasional, mengeksplorasi secara netral apakah terdapat pola struktural yang mirip dengan bahasa nyata

📁 Struktur Proyek

  • /data/
    • Menyediakan data seperti transkripsi seluruh naskah, jenis kata akar, ID klaster, daftar sufiks yang dihapus, dan urutan klaster tiap baris
  • /scripts/
    • Menyediakan skrip analisis inti seperti clustering kata berbasis SBERT, prediksi kelas kata, pembangunan matriks transisi Markov, dan pembuatan kandidat leksikon
  • /results/
    • Menyediakan hasil analisis seperti visualisasi klaster, heatmap matriks transisi, dan ringkasan per klaster

✅ Kontribusi Utama

  • Clustering kata akar setelah penghapusan sufiks dengan SBERT multibahasa
  • Pembedaan antara klaster mirip kata fungsi dan klaster mirip kata isi
  • Pemodelan struktur transisi klaster dengan pendekatan Markov
  • Analisis struktur sintaksis per bagian (misalnya Botanical, Biological, dan lain-lain)
  • Pembuatan tabel hipotesis leksikon berbasis data

🔧 Keputusan Pra-pemrosesan

  • Sebelum clustering, sufiks berulang (misalnya aiin, dy, chy, dan sebagainya) dihapus
  • Dengan begitu, bentuk akar kata dapat diekstrak sehingga kepadatan klaster dan pola struktural menjadi lebih jelas
    • Sufiks mungkin berupa pengisi fonologis, morfem gramatikal, hafalan, pengulangan, atau noise tanpa makna
  • Namun, pilihan ini memiliki keterbatasan seperti hilangnya informasi morfologis, tertutupnya informasi infleksi yang bermakna, dan bias terhadap kata fungsi
  • Eksperimen pembanding tanpa penghapusan sufiks juga bernilai — siapa pun dapat membuat eksperimen turunan

📈 Hasil Analisis Utama

  • Cluster 8: sangat sering muncul, keragamannya rendah, dan sering berada di awal baris — kandidat klaster kata fungsi
  • Cluster 3: keragamannya tinggi dan posisinya bebas — kandidat klaster kata isi akar
  • Matriks transisi: menunjukkan struktur internal yang kuat dan jauh dari keacakan
  • Pola klaster dan kelas kata: berbeda menurut bagian naskah (misalnya Biological, Botanical, dan lain-lain)

🧬 Hipotesis

  • Naskah ini merupakan bahasa buatan/untuk hafalan yang terstruktur yang memanfaatkan pengulangan suku kata dan pengulangan posisi
  • Naskah ini dengan jelas menunjukkan struktur kebahasaan seperti sintaksis, pemisahan fungsi/isi, dan transisi bahasa yang responsif terhadap bagian

📊 Contoh Visualisasi

  • Figure 1: embedding klaster SBERT (reduksi PCA)
  • Figure 2: heatmap matriks transisi

📌 Keterbatasan

  • Pemetaan klaster-ke-kata bersifat tidak langsung sehingga ada fenomena tumpang tindih dalam estimasi frekuensi
  • Kriteria penghapusan sufiks bersifat heuristik, sehingga bunyi akhir yang sebenarnya bermakna juga bisa ikut hilang
  • Tidak mencoba penafsiran makna dan hanya berfokus pada analisis struktur

✍️ Catatan Penulis

  • Proyek ini dimulai untuk tujuan belajar AI, NLP, dan analisis struktur
  • Bukan penguraian naskah itu sendiri yang menjadi tujuan, melainkan pemahaman strukturnya dengan alat modern yang dianggap lebih produktif
  • Dibanding harapan akan penguraian ala Rosetta Stone, proyek ini menyambut orang-orang yang tertarik pada gagasan bahwa pemodelan itu sendiri bermakna

🤝 Panduan Kontribusi

  • Proyek ini terbuka untuk kolaborasi dan pengembangan dari linguis, kriptografer, peneliti bahasa buatan, dan komunitas linguistik komputasional

1 komentar

 
GN⁺ 2025-05-19
Komentar Hacker News
  • Saya melihat Anda mencari klaster dalam proyeksi PCA — untuk menemukan struktur yang lebih dalam, saya ingin merekomendasikan algoritme reduksi dimensi yang lebih baru seperti PaCMAP atau LocalMAP. Saya sedang mengerjakan proyek yang mengambil data dari alat survei opini bernama Pol.is lalu memproyeksikannya ulang dengan algoritme reduksi dimensi semacam ini alih-alih PCA. Saya terkesan karena algoritme baru seperti ini memberi wawasan yang sebelumnya tidak terlihat. Saya juga punya hasil visual dengan kelompok-kelompok yang diberi warna, jadi ada petunjuk untuk melihatnya di desktop. Jika penasaran apa itu Pol.is, saya juga merekomendasikan artikel terkait

    • Terima kasih sudah mengenalkan saya pada PaCMAP dan LocalMAP — pendekatan reduksi dimensi seperti ini yang menjaga struktur dengan baik tampaknya lebih cocok untuk data ini daripada PCA. Saya jadi tertarik berkat Anda dan berencana meninjaunya lebih dalam
    • Dalam pengalaman saya, UMAP memberi hasil yang jauh lebih baik daripada PCA atau t-SNE untuk reduksi embedding
  • Model embedding teks yang digunakan di sini adalah paraphrase-multilingual-MiniLM-L12-v2, model yang usianya sekitar 4 tahun. Di dunia pemrosesan bahasa alami, itu sudah tergolong sangat lama. Dengan perkembangan LLM belakangan ini, kemampuan representasi informasi model embedding dan daya pembeda dalam ruang embedding meningkat drastis. Bahkan model embedding terbaru yang bukan ditujukan untuk dukungan multibahasa pun menunjukkan performa hebat pada tipe data seperti ini. Karena itu, model-model tersebut kemungkinan juga akan memberi performa lebih baik pada bahasa yang relatif kurang dikenal seperti Voynich Manuscript. Saya melihat teknik NLP tradisional (penghapusan sufiks, identifikasi kelas kata, dan sebagainya) justru berisiko menurunkan kualitas embedding karena menghilangkan informasi konteks yang dibutuhkan

    • Saya memilih paraphrase-multilingual-MiniLM-L12-v2 terutama karena kecepatan dan kompatibilitas, tetapi saya setuju bahwa menurut standar sekarang ini jelas model yang sudah tua. Mencoba embedding konteks penuh dengan model yang lebih baru seperti all-mpnet-base-v2 atau text-embedding-ada-002, sambil tetap mempertahankan sufiks, tampaknya bisa memberi hasil yang lebih menarik. Berkat masukan Anda, saya jadi mempertimbangkan itu secara positif untuk iterasi berikutnya
  • Saya tidak terlalu paham NLP. Saya penasaran apakah masuk akal untuk memeriksa prosesnya dengan cara mengendalikan kelompok pembanding. Misalnya, jika orang diminta menulis kalimat yang tampak seperti bahasa tetapi sebenarnya bukan bahasa, lalu diproses dengan prosedur yang sama (menghapus sufiks, mencoba klasterisasi, dan seterusnya), apakah hasil serupa akan muncul?

    • Nah, itu dia. Saya jadi bertanya-tanya kenapa tidak cukup meminta 100 orang menulis naskah Voynich lalu melatih model dengan data itu
  • Saya pikir akan bagus jika dianalisis dengan UMAP atau t-SNE, meskipun PCA sudah menunjukkan pemisahan yang rapi. Memetakan setiap klaster dengan saling merujuk satu sama lain juga tampak seperti cara yang baik untuk menunjukkan bahwa masih tidak ada variasi yang tersisa dalam analisis

    • Poin yang bagus — awalnya saya lanjut dengan PCA karena hasil pemisahannya ternyata sangat rapi di luar dugaan. Tetapi seperti yang Anda katakan, menerapkan UMAP atau t-SNE bisa mengungkap pola atau masalah yang lebih halus dari sudut pandang nonlinier. Saya juga belum membuat matriks kemiripan antarklaster, tetapi setelah mendengar saran Anda, itu terasa seperti langkah lanjutan yang wajar untuk memverifikasi seberapa substansial sinyal yang benar-benar tertangkap. Saya rasa itu pasti perlu dicoba dalam pekerjaan lanjutan. Terima kasih sudah memancing pemikiran saya
    • Jika ada contoh bagaimana pemetaan referensi ini dilakukan, saya tertarik. Saya ingin mencoba menerapkan hal seperti ini pada embedding dari modalitas lain, tetapi pengalaman saya di NLP masih kurang
    • Saat PCA sudah memberi pemisahan yang cukup baik, saya cenderung menghindari UMAP karena lebih mudah menafsirkan jarak antar titik individual. Saya selalu menghindari t-SNE karena menurut saya interpretasi jaraknya hampir tidak bermakna. Ini murni preferensi pribadi saya
  • Saya rasa hipotesis ini yang paling menarik: tampaknya ada penulis yang menganggap Voynichese sebagai bahasa rumpun Jermanik dan terlihat telah membuat kemajuan yang cukup besar. Saya juga pernah melihat klaim bahwa ini adalah bahasa Uralik atau Finno-Ugrik. Menurut saya metodologi Anda sangat bagus, dan saya penasaran apakah hasilnya akan lebih baik jika disesuaikan secara khusus untuk rumpun bahasa tertentu

    • Saya juga pernah melihat bukti sebelumnya bahwa Edward Kelly berada di tempat dan waktu yang tepat serta mengenal Cardan grille. Karena itu, saya cenderung berpikir dia kemungkinan besar adalah pengarangnya, dan bahwa buku itu sendiri dibuat untuk tujuan penipuan atau lelucon
    • Thread ini membahas berbagai klaim “dekripsi” semacam itu. Situs Bernholz cukup baik, tetapi karya Child sebenarnya tidak banyak membantu dalam mendekripsi
  • Saya tadinya mengira ini bahasa Turki kuno

    • Terjemahan bahasa Inggris naskah itu bisa dilihat di sini
  • Mungkin saya melewatkannya atau tidak melihatnya di README, tetapi saya penasaran bagaimana pengodean awal “kata”-katanya dilakukan. Misalnya, saya ingin tahu bagaimana kata seperti “okeeodair” dipetakan kembali ke simbol aslinya

    • Betul, kata seperti “okeeodair” berasal langsung dari berkas transkripsi EVA. Berdasarkan sistem EVA (European Voynich Alphabet), simbol-simbol Voynich asli dipetakan ke ASCII. Dalam proyek ini, alih-alih menangani simbol itu sendiri, saya langsung menggunakan kata-kata berdasarkan transkripsi EVA. Jika ada “okeeodair” dalam dataset, itu berarti seseorang (ahli) telah sepakat untuk menyebut kombinasi simbol tersebut dengan nama itu. Informasi tentang transkripsi bisa dilihat di situs ini
  • Yang saya bayangkan adalah, jika itu sebenarnya hanya coretan tanpa makna dan bahkan bukan sandi, maka karena sifat manuskrip, gaya, tulisan tangan, kata-kata yang digunakan, bahkan huruf-hurufnya sendiri semestinya berevolusi dari halaman pertama sampai terakhir. Tentu urutan halaman bisa berubah, tetapi saya pikir seharusnya tetap ada perbedaan yang terlihat. Kecuali jika penulisnya menulis puluhan buku dengan gaya serupa dan semuanya hilang. Ini bukan ide baru, tetapi saya penasaran apakah pernah ada analisis terhadap pola seperti ini, karena saya belum pernah melihat penyebutan tentang konsistensi antarpagina

    • Ada banyak penelitian tentang konsistensi antarpagina. Di kalangan pakar ada klaim bahwa ada dua (atau lima) juru tulis. Akan membantu jika melihat pembahasan eksperimen berdasarkan klaim Lisa Fagin Davis
  • Saya penasaran berapa banyak sumber daya yang dibutuhkan untuk mendekripsinya dengan pendekatan “brute force”. Misalnya, saya membayangkan mengikuti proses yang jelas seperti memetakan satu per satu ke kata-kata dari bahasa yang dikenal lalu meningkatkan skornya

    • Saya ingin menekankan bahwa pendekatan seperti ini mengandaikan setiap kata dipetakan 1:1, padahal bahasa pada dasarnya tidak selalu bekerja seperti itu. Misalnya, kata majemuk sulit dipetakan dengan cara seperti ini. Ada juga perbedaan yang lebih mendasar dalam struktur makna akibat perbedaan budaya
    • Pertanyaan yang menarik — sebenarnya saya juga pernah memikirkan hal serupa. Saya bukan orang yang berlatar belakang kriptografi, jadi saya tidak terlalu tahu seberapa realistis “brute force” dalam skala besar. Namun, pendekatan mengoptimalkan konsistensi dengan memetakan setiap “kata” Voynich ke kata dalam bahasa nyata cukup sejalan dengan berbagai eksperimen dan upaya eksploratif yang pernah ada. Tantangannya adalah ukuran kosakatanya sendiri sangat besar, dan juga belum jelas apakah unit “kata” itu benar-benar dipetakan 1:1 ke kata dalam bahasa nyata. “Kata” Voynich bisa jadi benar-benar satu leksem, bisa juga fragmen, atau gabungan akar dan afiks. Dalam hal ini, pemetaan sederhana saya rasa sangat sulit. Meski begitu, mencoba memakai ID klaster alih-alih token individual lalu menilai hasilnya dengan language model adalah ide yang cukup bagus. Menurut saya itu layak dicoba dengan optimisasi atau teknik evolusioner. Ini juga bisa memberi petunjuk tentang seberapa “mirip bahasa” strukturnya. Terima kasih atas idenya yang bagus. Saya berharap ada ahli di bidang terkait yang melihat komentar ini lalu mencobanya
  • Saya penasaran apakah pola serupa akan muncul jika analisis dilakukan pada teks dalam bahasa yang sudah dikenal dengan jumlah yang sebanding. Dengan kata lain, pertanyaannya adalah apakah menerapkan teknik analisis ini pada berbagai jenis teks bisa membantu memahami apa arti sistem tulisan ini