Berikut adalah pertanyaan yang saya yakin dapat diselesaikan dengan beberapa penambangan data dan algoritma yang canggih, tetapi saya tidak tahu caranya. Setiap petunjuk tentang sumber data apa yang akan digunakan dan algoritma apa yang harus diterapkan dipersilakan.
Latar Belakang: Saya seorang Rumania-Hongaria yang sedang mengandung bayi dengan bahasa Polandia-Ukraina dan belum cukup menentukan pikiran di negara mana kita ingin menetap. Seperti yang mungkin Anda harapkan, memilih nama yang diberikan adalah hal yang paling penting dan perdebatan yang panas. Dari sisi saya, saya masih trauma dengan semua kerumitan yang harus saya lalui ketika seseorang akan salah mengeja nama saya ketika saya pindah dari satu negara ke negara lain. Misalnya, jika Anda dipanggil "Adrian" Anda akan diberkati di Rumania, hanya untuk menemukan bahwa Anda akhirnya menjadi "Adri e n" adalah beberapa dokumen resmi Perancis. Jadi satu-satunya persyaratan saya adalah membuatnya sangat tidak mungkin untuk nama bayi itu salah eja di beberapa negara Eropa.
Pernyataan Masalah: Dengan serangkaian negara, misalnya, Prancis, Jerman, Swedia, Polandia, dan Rumania, temukan daftar nama yang diberikan, yang jika diucapkan dengan benar, tidak mungkin salah eja oleh penduduk setempat.
Secara lebih formal: Misalkan p (c, n) menjadi fungsi yang mengembalikan probabilitas nama n salah eja di negara c . Diberikan C satu set negara dan p₀ probabilitas, temukan N satu set nama yang diberikan, sedemikian rupa sehingga
untuk semua n ∈ N dan c ∈ C , p (c, n) <p₀
Pikiran awal : Masalah inti adalah bagaimana mengimplementasikan p (c, n) . Orang bisa mencoba memperkirakannya dengan heuristik. Jelas nama kemungkinan salah eja dalam dua kasus:
- Ini sedikit digunakan di negara itu.
- Itu mirip dengan nama yang berbeda, yang tidak sedikit digunakan di negara itu.
Saya tidak yakin bagaimana saya bisa menggunakan Internet, misalnya, Wikipedia, untuk secara efisien menjawab dua pertanyaan ini. Bagaimana satu daftar hanya nama yang cukup sering digunakan di suatu negara? Bagaimana orang mencari yang sama ejaannya?
sumber
Jawaban:
Ada beberapa pendekatan yang akan bekerja lebih baik untuk beberapa bahasa daripada yang lain. Misalnya, soundex (dan deskripsi lain yang saya suka ) dirancang untuk pengucapan nama dalam bahasa Inggris. Dengan soundex,
Michael
menjadi M240. Ini memiliki beberapa langkah:M
danichael
)M
danchl
)c
-> 2l
-> 4Pengelompokan konversi konsonan didasarkan pada mereka fonetik kesamaan -
B
,F
,P
danV
semua peta untuk1
.Dan ada variasi dalam hal ini dari waktu ke waktu . Ini sangat berguna dalam silsilah di mana ejaan nama dapat berubah dari waktu ke waktu, tetapi pengucapannya tetap sama.
Ada juga pendekatan seperti rating kecocokan yang dikembangkan oleh maskapai untuk nama (bukan silsilah Amerika).
Pengkodean pendekatan peringkat kecocokan (MRA) adalah:
Michael
menjadiMchl
danAnthony
menjadiAnthny
)Spesifikasi lengkap untuk ini dapat ditemukan di archive.org - perhatikan bahwa ini "tidak kecil" (formulir yang dicetak 214 halaman).
The perbandingan memiliki ambang yang cocok berdasarkan berapa lama teks.
Ada juga algoritma fonetik lainnya .
Jadi, yang saya sarankan Anda lakukan adalah mengambil soundex apa adanya, mengambil pendekatan peringkat kecocokan apa adanya, atau memodifikasi soundex berdasarkan konsonan Rumania dan konsonan Polandia .
Ingat bahwa dengan soundex, konsonan yang dikelompokkan (dalam bahasa Polandia,
m
,n
,ɲ
semua konsonan nasal untuk dikelompokkan, dan Anda akan kemungkinan kelompok labial, gigi, dan alveolar plosif - akan mereka bersuara atau menyuarakan bersama-sama - yang diberikan, saya tidak tahu bahasa Polandia jadi tidak tahu jika saya hanya mengatakan hal-hal yang tidak benar di sana).Kemudian, cukup sembunyikan semua nama dalam basis data ke dua sistem soundex yang berbeda dan cari tahu nama-nama apa yang memiliki rangkaian tumbukan terendah dalam berbagai bahasa. Ini memberi Anda nama yang berbeda. Jadi itu
Smith
tidak muncul sebagaiSmyth
.Namun, ini hanya memecahkan "nama yang kemungkinan akan bertabrakan dengan nama lain dan salah dengar." Itu tidak membahas cara lain dari "nama yang didengar dengan benar, ditulis secara tidak benar" dan untuk itu, orang harus memusatkan perhatian mereka pada nama-nama umum.
Sebagai contoh,
Michael
adalah nama yang sangat umum di AS dari awal 1950 hingga akhir 1970. Itu benar - benar populer . Namun, untuk beberapa alasan, namaMicheal
itu agak populer di tahun 1950-an (naik ke nama ke-83 yang paling umum pada puncaknya). Dan saya yakin orang-orang yang bernamaMicheal
terus-menerus membuat nama mereka salah eja.Dengan demikian, Anda harus fokus pada nama di mana ada satu nama yang mendominasi popularitas nama untuk pengucapan yang diberikan. Melirik konsumen data yang lain untuk nama-nama tahun, Anda dapat melihat bahwa nama yang diawali dengan Jam ... untuk anak laki-laki yang berantakan dengan
Jamaal
,Jamal
,Jamar
dan lain-lain. Kebetulan, nama-nama ini memiliki soundex yang sedikit berbeda untuk Amerika (J540
,J540
danJ560
-l
danr
dalam kelompok yang berbeda meskipun mereka terkait erat dalam fonetik). Namun, untuk seseorang dari, katakanlah Jepang, hanya ada satu suara di wilayah fonetik di manal
danr
diucapkan dalam bahasa Inggris Amerika. Ini juga dapat menimbulkan tantangan dengan konsonan terkemuka menggunakan soundex yang orang harus sadar (saya pernah bekerja dengan seorang wanita Jepang yang menyebut dirinya Risa (dengan 'R') daripada Lisa sebagai Romanisasi nama Jepangnya).Anda akan perhatikan bahwa contoh saya adalah untuk Amerika Serikat. Data itu mudah diakses. Rupanya ada beberapa hal untuk Polandia dan Hongaria , dan hanya mengisyaratkan kesamaan nama Hongaria ... Saya menduga bahwa mencari dalam bahasa selain bahasa Inggris mungkin membantu di sana.
Jadi, mengingat soundex untuk sebuah nama, beberapa tabrakan dan ejaan yang sebenarnya ada di set tabrakan. Lebih disukai, ini adalah nama umum. Melihat daftar hungaria itu, pergi dengan
Krisztián
kemungkinan akan mendapatkan salah eja sementara,Zoltán
kurang mungkin begitu (# 22 nama bayi paling umum di 2011 di Hongaria!). Yang mengatakan, Anda tidak bisa salah denganMichael
.sumber
Anda mungkin ingin melihat ke dalam algoritma fonetik Metafon Ganda, yang dirancang untuk menangani bagaimana kata-kata diucapkan dalam berbagai bahasa. Ada juga Metaphone 3, tetapi itu membutuhkan uang untuk digunakan.
sumber