Lulusan pusat CS pada tahun 2018,
Daria Rodionova , berbicara tentang transliterasi: apa itu, apa pendekatan untuk transliterasi, cara membuat transliterator Anda sendiri dan bagaimana meningkatkan model.
Transliterasi adalah terjemahan grafis dari satu kata ke alfabet, asalkan kami memiliki tabel korespondensi tanda-tanda dari satu sistem ke sistem lainnya. Memang, apa yang tidak diingatkan oleh transliterasi oleh penerjemah yang disederhanakan? Di sini bahasa adalah huruf dan kemungkinan jumlah aturan terjemahan disederhanakan menjadi empat yang penting:
- Satu-ke-satu: B → B, R → P, P → P
- Satu-ke-banyak: Y → PERTAMA
- Banyak-ke-satu: SCH → U, CH → H, YU → U
- Banyak-ke-banyak: tergantung pada konteksnya, mis. IE -> IE
Sampai saat ini, semua Runet ditulis dalam bahasa Latin. Kemudian, tidak semua perangkat memiliki tata letak Cyrillic yang tersedia, tetapi ASCII berada di garis depan - sementara penyandian masih tidak dapat memproses Cyrillic. Akibatnya, alih-alih pesan dalam bahasa Rusia, penerima menerima abracadabra.
15 tahun yang lalu, ketika alfabet Cyrillic tersedia di ponsel, pesan SMS dalam bahasa Latin terus diterima dari operator seluler. Saya tidak akan menyembunyikan bahwa saya menguraikan pesan-pesan ini dengan senang :) Dan sekarang orang sering berkorespondensi dalam huruf Latin di forum atau di ruang obrolan, karena tidak ada keyboard Rusia di tangan.
Mengapa transliterasi otomatis diperlukan
Biasanya mereka berbicara tentang transliterasi langsung kata-kata Rusia ke dalam alfabet Latin. Ketika Anda perlu menerjemahkan nama geografis atau nama untuk dokumen asing, artikel ilmiah.
Reverse transliteration adalah konversi kata dalam bahasa Latin menjadi kata dalam bahasa Cyrillic. Ini diperlukan di banyak bidang, sehingga di masing-masing daerah, seiring waktu, standar telah muncul. Dan sekarang ada beberapa standar sekaligus, yang menurutnya kata-kata ditransliterasikan secara ambigu.
Kita sering mendengar dalam berita tentang terjemahan yang konyol dan transliterasi nama geografis. Misalnya, kombinasi huruf "sch" dapat menjadi urutan "MF" atau huruf "", seperti dalam kata Schyot. Bahkan di forum, ada pandangan berbeda tentang cara menulis huruf "" dalam huruf Latin. Di sana Anda juga dapat menemukan ambiguitas kombinasi "ch". Tampaknya ini selalu "H"! Tidak, ini juga merupakan "X" di akhir kata: biasanya huruf "I / S" lebih dulu. Dan bagaimana Anda menerjemahkan "YE" dari bahasa Latin? Di "E" atau "S"? Rincian lebih lanjut dapat ditemukan di artikel
"Translit tanpa aturan" .
Deskripsi Teoritis dari Penerjemah
Ini adalah transduser berhingga, yang terdiri dari node, yang masing-masing dapat memproses simbol input dan menghasilkan output. Jika kita memberikan definisi formal, maka transduser terdiri dari 6 komponen (Q, Σ, Γ, I, F, δ), di mana:
Q - banyak negara
Σ - masukan alfabet
Γ - alfabet keluaran
Saya adalah himpunan bagian dari kondisi awal dari Q
F adalah himpunan bagian dari status akhir dari Q
δ adalah transisi dari Q ⨉ (Σ ⋃ {e}) ke Q ⨉ (Γ ⋃ {e})
Dalam kasus umum, himpunan Q mewakili beberapa negara. Kami menulis beberapa dalam satu karena jumlah huruf dalam alfabet:
- mulai, nyatakan 1 atau penggantian satu karakter dengan yang lain,
- nyatakan 2 atau ganti beberapa karakter dengan satu,
- menyatakan 3 atau mengganti satu karakter dengan beberapa,
- menyatakan 4 atau mengganti grup karakter dengan grup karakter lain, akhiri.
Ingat berapa banyak aturan terjemahan yang kami definisikan di awal artikel? :) Seperti Σ, alfabet Latin dan satu kutipan digunakan untuk menunjukkan tanda lunak, dan himpunan Γ berisi alfabet target - alfabet Cyrillic. Himpunan keadaan awal dan akhir terdiri dari karakter alfabet atau kombinasi karakter alfabet, karena hal ini dapat terjadi ketika menyandikan huruf H, W, U, Y, Y.
Untuk saat ini, transduser digunakan dalam beberapa masalah NLP, termasuk dalam analisis morfologis kata-kata:

Ini adalah contoh lain transduser sederhana untuk penerjemah. Skema yang terakhir paling cocok untuk desain transliterasi. Satu perbedaan: di setiap negara bagian q, kami memproses bukan kata, tetapi simbolnya.
Lebih lanjut tentang transduserNah, kami akan mencoba membangun transliterator sehingga dapat menganalisis data input dari berbagai GOST dan mengubah ejaan yang berbeda menjadi alfabet Cyrillic tunggal. Dengan kata lain, kami akan merancang logika transisi transduser.
Pendekatan dasar untuk transliterasi
Ada beberapa pendekatan untuk membangun transliterator, dua di antaranya adalah ML dan berbasis aturan.
ML - model seq-to-seq probabilistik (Markov sebagai basis). Ini didasarkan pada prinsip Viterbi, ketika kita secara bersamaan membagi kata Latin dan mencari urutan yang paling mungkin dari keadaan laten atau kombinasi Cyrillic.
Negara adalah jumlah kombinasi Cyrillic yang terbatas. Pengamatan atau urutan input - kombinasi Latin, transisi - antara kombinasi Latin dan Cyrillic, emisi (probabilitas pengamatan setelah transisi ke keadaan baru) - probabilitas kombinasi Latin dalam beberapa kombinasi Cyrillic.
Juga, model ML transliterasi dapat didefinisikan sebagai masalah terjemahan mesin. Jadi, misalnya, Anda dapat melatih model untuk menyalin kata-kata dalam bahasa. Pertama, Anda perlu menyusun tabel korespondensi suara dengan huruf, dan kemudian melatih contoh-contoh kemungkinan menerjemahkan huruf menjadi suara.
Sekarang kami tidak akan mempertimbangkan model ML, karena tidak ada dataset yang representatif dengan opsi transliterasi. Pengumpulan data adalah tugas yang terpisah. Mari kita kembali ke transliterasi dan fokus pada
pendekatan berbasis aturan . Untuk melakukan ini, kita memerlukan kamus (penyelamat untuk setiap ahli bahasa), tabel kompatibilitas huruf dan tabel untuk transliterasi fonem.
Bagaimana cara kerjanya?
Proses transliterasi yang paling sederhana terdiri dari tiga langkah:
- Kami mengikuti urutan, yang harus diterjemahkan ke dalam bahasa Rusia.
- Kami mencari kombinasi suara dalam tabel transliterasi fonem.
- Jika fonem ditemukan, maka kami mentransliterasikan kombinasi saat ini dan memperbaiki ketidakcocokan huruf menggunakan ekspresi reguler.
Selanjutnya mungkin memiliki interpretasi yang ambigu dalam karakter Rusia. Di sinilah percabangan dengan aturan dimulai. Jebakan utama dari langkah ketiga:
1. Terjemahan suara CH. Pada awal kata itu bisa Ch, X dan K. Pada akhir kata ada juga dua pilihan: Ch, X. Heuristik paling sederhana yang digunakan dalam implementasi saat ini adalah keberadaan fonem I / S sebelum bunyi CH. Anda mungkin bertanya, mengapa kita yakin bahwa sebelum huruf O dimungkinkan untuk mengubah CHR ke XP, dan sebelum Dan ke KR? Ini semua tentang menemukan kata-kata yang dimulai dengan Republik Ceko di kamus bahasa Rusia saat ini. Sampai saat ini, belum ada yang menemukan kata-kata Rusia dengan awal ChRO / CRI.
2. Belajar mengenali tanda solid separasi. Dalam hal ini, kami mengumpulkan kemungkinan awalan dalam ekspresi reguler, memeriksa karakter berikutnya, yang harus berupa vokal terototasi dalam transliterasi (EYUYA). Jika semuanya baik-baik saja, maka kita meletakkan tanda yang solid di depan vokal. Ada juga analisis yang salah, seperti kata "tipuan", yang sebenarnya harus dibongkar sebagai "tipuan".
3. Di mana kita menerjemahkan suara berotot ke E / E / Y / Y, dan di mana - kita pergi sebagai beberapa vokal. Kita tahu bahwa vokal berotot mengikuti prefiks setelah tanda solid pemisah, pada langkah sebelumnya kita mengenali yang terakhir. Jadi, huruf kita saat ini adalah vokal yang sama. Kami juga mendapatkan vokal berotot di awal kata. Tentu saja, ini tidak dapat dilakukan tanpa analisis yang salah: IONY → JONES dan bukan JONA. Tetapi analisis semacam itu dapat dikurangi. Kami lagi menggunakan kamus, di mana kami melihat bahwa dalam kata yang dimulai dengan IO, huruf TAD biasanya mengikuti. Tambahkan pengamatan ini ke aturan kami.
4. Di mana IS, dan di mana OH? Di sini, heuristik sederhana juga diterapkan, di mana suara konsonan diperiksa sebelum urutan karakter yang diinginkan. Jika itu adalah GDZHKTSCHShSCH, maka kami mendapatkan akhiran OI, jika tidak kami mengambil kombinasi OY dari tabel terjemahan.
Cara meningkatkan model ini
- Pertimbangkan cara mengenali tanda lunak dalam kata-kata.
- Hubungkan beberapa kamus elektronik ejaan aktual yang menjadi dasar heuristik. Ini akan membantu melacak relevansi aturan kami dan, mungkin, memperkenalkan konsep seperti "aturan berat". Jadi kita perlahan akan beralih ke model ML.
- Gunakan dalam konteks pemeriksa ejaan. Tentu saja, ini bukan lagi tugas transliterasi, tetapi mengeja akan membantu untuk mendapatkan hasil yang lebih bermakna :)
Rincian transliterasi belajar mandiriSaya akan dengan senang hati menjawab pertanyaan di komentar dan berpikir tentang peningkatan transliterator :)