You are on page 1of 16

Diterjemahkan dari bahasa Inggris ke bahasa Indonesia - www.onlinedoctranslator.

com

Theoretical Computer Science 231 (2000) 17–32


www.elsevier.com/locate/tcs

The design principles of a weighted nite-state


transducer library
Mehryar Mohri ∗, Fernando Pereira, Michael Riley
AT&T Labs-Research, 180 Park Avenue, Florham Park,
NJ 07932-0971, USA

Abstract

We describe the algorithmic and software design principles of an object-oriented library for
weighted nite-state transducers. By taking advantage of the theory of rational power series, we were
able to achieve high degrees of generality, modularity and irredundancy, while attaining competitive e
ciency in demanding speech processing applications involving weighted automata of more than 107
negara bagian dan transisi. Selain dasar matematisnya, desain juga mengambil ide-ide penting dalam
desain algoritme dan bahasa pemrograman: pemrograman dinamis dan algoritme jalur terpendek di
atas semiring umum, pemrograman berorientasi objek, evaluasi malas, dan memoisasi.©
c 2000 Diterbitkan oleh Elsevier Science BV Hak cipta dilindungi undang-undang.

Kata kunci:Automata tertimbang; Transduser keadaan terbatas; Seri daya rasional;


Pengenalan suara

1. Perkenalan

Teknik keadaan hingga telah terbukti berharga dalam berbagai aplikasi pemrosesan bahasa alami
[5-11, 14, 16, 18, 19, 28, 32, 33, 36, 38, 39]. Namun, pemrosesan ucapan memberlakukan persyaratan
yang tidak dipenuhi oleh perpustakaan nite-state yang ada. Secara khusus, pengenalan suara
memerlukan sarana umum untuk mengelolaketakpastian:semua level representasi, dan semua
pemetaan antar level, melibatkan alternatif dengan probabilitas yang berbeda, karena ada
ketidakpastian dalam interpretasi sinyal suara di semua level. Algoritme dan sistem pengenalan suara
sebelumnya mengandalkan metode "ad hoc" untuk menggabungkan representasi keadaan akhir
dengan ketidakpastian. Namun, dengan mengambil keuntungan dari teori deret pangkat rasional,
kami dapat mengembangkan perpustakaan untuk membangun dan menerapkan transduser
keadaan-malam berbobot yang dapat mewakili semua

∗ Penulis
yang sesuai. Telp.: +1-973-360-8536; faks: +1-973-360-8092.
Alamat email:mohri@research.att.com (M. Mohri)

0304-3975/00/$- lihat hal depan©


c 2000 Diterbitkan oleh Elsevier Science BV Hak cipta dilindungi undang-undang
PII: S0304-3975(99)00014-6
18 M.Mohri dkk. /Ilmu Komputer Teoritis 231 (2000) 17–32

operasi manajemen nite-state dan ketidakpastian dalam pengenalan suara sambil menciptakan
peluang untuk pengoptimalan yang sampai sekarang belum dikenali dan mencapai kinerja yang
kompetitif atau unggul dalam banyak tugas pengenalan suara [23, 24, 30].
Makalah ini berfokus pada desain keseluruhan perpustakaan mulai dari dasar
matematika, bukan pada algoritme atau aplikasi tertentu, yang telah dijelaskan
di tempat lain [18, 21, 23-25, 27, 30]. Meskipun motivasi awal kami adalah untuk
meningkatkan alat yang tersedia untuk pengenalan suara, kami selalu bertujuan
untuk tingkat umum tertinggi yang kompatibel dengan dasar matematika dan
dengan tuntutan efisiensi aplikasi. Dengan mendasarkan tipe data kami pada
struktur aljabar paling restriktif yang kompatibel dengan algoritme yang
diinginkan, kami dapat menghindari implementasi berlebihan dari algoritme
generik yang sama pada tipe data terkait tetapi berbeda, sehingga menciptakan
desain dengan inti algoritme yang minimal dan sangat modular. Selain itu,
dengan menggunakan tipe data yang didefinisikan secara matematis,

Salah satu langkah utama desain program adalah memfaktorkan tugas yang sedang
dipelajari ke dalam algoritma dan struktur data. Kami menyarankan di sini analog
matematis dari prinsip itu: pemisahan aljabar dan algoritma. Dengan kata lain, algoritme
kami harus dirancang untuk bekerja secara umum dalam struktur aljabar.
Kami mulai dengan menguraikan dasar matematika untuk perpustakaan di Bagian 2. Beroperasi pada
tingkat umum yang lebih tinggi dari transduser keadaan-malam berbobot memerlukan algoritme baru yang
tidak selalu merupakan perluasan langsung dari algoritme klasik yang sesuai untuk automata tidak
berbobot, seperti yang dibahas di Bagian 3.1 . Secara khusus, kami menggunakan contoh -penghapusan di
Bagian 3.2 untuk mengilustrasikan bagaimana tingkat umum yang lebih tinggi dapat dicapai secara efisien
dengan menggunakan perhitungan jalur terpendek umum pada semiring.
Efisiensi perpustakaan di beberapa aplikasi sangat bergantung pada penundaan
perhitungan penuh hasil operasi sampai dibutuhkan. Sementara ide ini telah digunakan dalam
alat-alat nite-state sebelumnya, misalnya penentuan on-demand di egrep [2], perpustakaan
kami menggunakan evaluasi malas untuk semua operasi yang memenuhi batasan lokalitas
tertentu, seperti yang dijelaskan di Bagian 3.3.
Pertimbangan matematis dan algoritmik ini menghasilkan serangkaian operasi umum pada
tipe data otomat sederhana dan umum dengan berbagai kemungkinan implementasi, yang
dibahas dalam Bagian 4.
Akhirnya, di Bagian 5, kami menyajikan secara lebih rinci persyaratan dan status terkini dari
aplikasi utama kami, pengenalan suara, dan mengilustrasikannya dengan aplikasi
perpustakaan ke versi sederhana dari tugas pemrosesan ucapan yang khas.

2. Dasar matematika

Umum perpustakaan kami berasal dari konsep aljabarderet pangkat rasionaldan


semiring.Sebuah semiring (K;⊕;⊗;0; 1) adalah himpunanKdilengkapi dengan dua biner
M.Mohri dkk. /Ilmu Komputer Teoritis 231 (2000) 17–32 19

operasi⊕ dan⊗ seperti yang (K;⊕;0) adalah monoid komutatif, (K;⊗;1) adalah monoid (mungkin
non-komutatif),⊗ mendistribusikan lebih⊕, dan 0⊗x=x⊗0=0 untuk semua x∈KSecara informal,
semiring adalah cincin yang mungkin tidak memiliki negasi. Berikut ini, kami akan sering
memanggilbebanelemen semiring.
Seri kekuatan formalS : x7→(S; x)adalah fungsi dari monoid bebas∗ ke semiringK
Deret pangkat rasional adalah deret pangkat formal yang dapat dibangun dengan
operasi rasional (penggabungan, penjumlahan, dan penutupan Kleene) darilajang
deret pangkat yang diberikan oleh (S; x)=k; (S;y)=0 jikax6= yuntukx∈ *; k∈KDeret
pangkat rasional adalah deret pangkat formal yang dapat diwakili oleh automata
berbobot [35].
Otomata berbobot adalah generalisasi dari gagasan otomat: setiap transisi dari otomat
berbobot diberi bobot di samping label biasa. Lebih formal, tertimbangakseptorlebih dari
alfabet malam dan semiring beratKadalah graf berarah sempit dengan simpul-simpul
yang merepresentasikan status dan busur yang merepresentasikan transisi di mana
setiap transisiTdiberi label dengan inputdia)∈ dan beratw(t)∈K
Selanjutnya, setiap negara bagianQmemilikiberat awal (Q)∈Kdanberat akhir (Q)∈K Dalam
transduser berbobot, setiap transisiTjuga memiliki label keluarano(t)∈-∗ di mana - adalah
alfabet keluaran transduser. NegaraQadalahawaljika (Q)6=0, danakhirjika (Q)6=0.1
Sebuah akseptor tertimbangSEBUAHmenentukan deret pangkat rasionalS(A)sebagai berikut. Untuk setiap
string masukanx,membiarkanP(x)be the set of transition paths p=t1 ···tn from an initial
p state
ip to a nal state fp such that x=i(t1)···i(tnp). Each such path assigns x the weight

w(p)= (ip)⊗( j w(tj))⊗ (fp). A similar de nition can be given for a weighted
transducer T, except that S(T) is now a rational power series over a semiring of
rational power series, those mapping transducer output strings to weights [34].
Most of the algorithms of our library work with arbitrary semirings or with semirings
from mathematically de ned subclasses (closed semirings, K-closed semirings [20]). To
instantiate the library for a particular semiring K, kita hanya perlu memberikan
representasi komputasi untuk elemen dan operasi semiring. Algoritma perpustakaan,
misalnya komposisi, -penghapusan, determinisasi dan minimalisasi, bekerja tanpa
perubahan pada semiring yang berbeda karena fondasinya dalam teori deret pangkat
rasional [18].
Misalnya, algoritma dan kode penentuan deret daya yang sama [18] dapat digunakan
untuk menentukan transduser [17], transduser berbobot, automata berbobot yang
ditemui dalam pemrosesan ucapan [23] dan automata berbobot menggunakan operasi
probabilitas. Untuk melakukannya, seseorang hanya perlu menggunakan algoritma
dengan string semiring ({∞};∧;·;∞; ) [21] dalam hal transduser, dengan semiring (R;+;·;0; 1)
dan (R+;min;+;∞;0) dalam kasus lain, dan dengan produk silang dari string

1Untuk kenyamanan implementasi, dan tanpa kehilangan sifat umum (bobot awal dapat disimulasikan dengan
transisi), automata yang didukung oleh perpustakaan memiliki satu status awal, dengan bobot awal 1. Selain itu,
kami mengizinkan label input transisi menjadi dan batasi label keluaran ke -{}untuk alasan praktis terkait dengan
implementasi yang efisien dari operasi dan komposisi rasional. Seperti diketahui, teori dapat diperluas untuk
mencakup kasus-kasus tersebut.
20 M.Mohri dkk. /Teoretika

Gambar 1. Penentuan lebih (R;+;·;0; 1).

semiring dan salah satu semiring ini dalam kasus transduser berbobot. Gambar 1
menunjukkan akseptor berbobot lebih (R;+;·;0; 1) dan penentuannya.

3. Algoritma

3.1. Algoritma automata tertimbang

Meskipun algoritme untuk automata berbobot terkait erat dengan rekan tak berbobotnya
yang lebih dikenal, mereka berbeda dalam detail penting. Salah satu fitur penting dari library
nite-state kami adalah bahwa sebagian besar algoritmenya beroperasi pada automata dan
transduser berbobot umum.
Kami secara singkat menguraikan di bagian sebelumnya dasar matematika untuk automata berbobot,
dan bagaimana hal itu memungkinkan kami untuk menulis algoritme umum yang independen dari aljabar
yang mendasarinya. Karena sifat umum ini, bobot mungkin berupa angka, tetapi juga string, set, atau
bahkan ekspresi reguler. Bergantung pada algoritme, beberapa batasan berlaku untuk semiring yang
digunakan. Misalnya, beberapa algoritma memerlukankomutatifsemiring, artinya⊗ bersifat komutatif; orang
lain membutuhkantertutupsemirings, di mana penambahan nite didefinisikan dan berperilaku seperti
penambahan nite sehubungan dengan perkalian.
Algoritma jalur terpendek memainkan peran penting dalam aplikasi, digunakan untuk solusi dan
"terbaik" dalam kumpulan solusi yang mungkin diwakili oleh otomat (misalnya, penyelarasan string
terbaik atau hipotesis pengenalan terbaik), seperti yang akan kita lihat di Bagian 5.1. Oleh karena itu,
kami mengembangkan kerangka kerja umum untuk algoritma jalur terpendek sumber tunggal
berdasarkan semiring yang mengarah ke algoritma generik tunggal [20]. Algoritma generik ini
menghitung jarak terpendek sumber tunggal ketika bobot adalah angka, string, atau himpunan
bagian dari suatu himpunan. Kasus-kasus yang berbeda ini terkait dengan perhitungan automata
tertimbang deterministik minimal [21].
Karena kerangka kerja umum untuk menyelesaikan semua pasangan masalah jalur terpendek –
semiring tertutup – kompatibel dengan gagasan abstrak bobot yang kami gunakan, kami dapat
memasukkan versi efisien dari algoritma generik Floyd-Warshall [1, 3] di perpustakaan kami. Dengan
menggunakan algoritma dan kode yang sama, kami dapat menyediakan semua pasangan terpendek
M. Mohr

Fig. 2. Otomat tertimbang dan -penghapusannya.

jarak ketika bobot adalah bilangan real yang mewakili, misalnya, probabilitas, tetapi juga ketika
mereka adalah string atau ekspresi reguler. Kasus terakhir ini berguna untuk menghasilkan ekspresi
reguler yang setara dengan otomat tertentu secara efisien. Algoritme Floyd–Warshall juga berguna
dalam algoritme penghapusan umum yang sekarang akan kami sajikan sebagai contoh.

3.2. Contoh: -penghapusan

Gambar 3 menunjukkan pseudocode dari algoritma penghapusan generik untuk automata


berbobot. Diberi otomat berbobotMsaya, algoritme mengembalikan robot berbobot setaraMHai
tanpa -transisi. TransM[S]menunjukkan himpunan transisi meninggalkan keadaanS secara
otomatisM;Lanjut(T)menunjukkan keadaan transisi tujuanT; dia)menunjukkan label inputnya,
danw(t)beratnya. Baris 1 dan 2 diekstrak dariMsayasubotomatisM mengandung semua transisi
dalamMsayadan subotomatisMHaimengandung semua nontransisi. Baris 3 menerapkan
algoritme jarak terpendek semua-pasangan umum CKEHILANGANke Muntuk menurunkan
- penutupG .Loop bersarang mulai dari baris 4, 5, dan 6 berulang
semua pasangan an - transisi penutupanedan non-transisiTsedemikian rupa sehingga tujuan
darieadalah sumber dariT.Baris 7 melihat ke dalamMHaiuntuk transisiTkandengan labeldia)dari e'
sumber dariT's tujuan jika ada, atau buat yang baru dengan bobot 0 jika tidak ada. Transisi ini
adalah hasil dari perpanjanganT "mundur” denganMsaya-jalur diwakili oleh -transisi penutupane.
Bobotnya, diperbarui pada baris 8, adalah jumlah semiring dari transisi yang diperpanjang
tersebut dengan sumber, tujuan, dan label tertentu.
Di sebagian besar aplikasi pemrosesan ucapan, aljabar bobot yang sesuai adalah
semiring tropis [37]. Bobot adalah bilangan real positif yang mewakili logaritma negatif
dari probabilitas. Bobot di sepanjang jalur ditambahkan; ketika beberapa jalur sesuai
dengan string yang sama, bobot string adalah bobot minimum dari jalur tersebut. Gbr. 2
mengilustrasikan penerapan -removal ke automata berbobot di atas semiring tropis.
Contoh menunjukkan bahwa algoritme baru menggeneralisasi algoritme klasik tidak
berbobot dengan memastikan bahwa bobot string apa pun yang diterima oleh otomat
dipertahankan dalam hasil -bebas.
22 M.Mohri dkk. /Ilmu Komputer Teoritis 231 (2000) 17–32

1 M← Msaya|{}
2 MHai← Msaya| ∗{}

3 G← CKEHILANGAN(M )
4 untukP← 1 sampai|V|
5 lakukan untukmasing-masing∈TransG[P]

6 lakukan untuksetiapT∈Transsaya
M[Lanjut(e)]∧dia)6=

7 melakukanTkan← FINDTRANS(dia);Lanjut(T);TransM[P])
Hai

8 w(tkan)← w(tkan)⊕w(t)⊗kami)

Gambar 3. Pseudocode dari algoritma penghapusan umum.

Seperti disebutkan sebelumnya, perhitungan -penutupan membutuhkan perhitungan jarak


terpendek semua pasangan dalamM .Dalam kasus semiring idempoten seperti semiring tropis,
algoritma yang paling efisien yang tersedia adalah algoritma Johnson yang didasarkan pada
algoritma Dijkstra dan Bellman-Ford [3]. Kompleksitas waktu berjalan dari algoritma Johnson adalah
O(|Q|2catatan|Q|+|Q||E|) saat menggunakan tumpukan Fibonacci, tetapi kami menggunakan
algoritme Floyd–Warshall yang lebih umum tetapi kurang efisien karena mendukung semiring
tertutup non-idempoten. KapanMadalah asiklik, kami menggunakan algoritma pengurutan topologi
waktu linier, yang juga bekerja dengan semiring non-idempoten [20].
Implementasi algoritme kami sebenarnya agak lebih kompleks: pertama-tama kami
dekomposisiMmenjadi komponen yang terhubung kuat, menerapkan algoritma Floyd-Warshall
untuk setiap komponen, dan kemudian menerapkan algoritma asiklik ke grafik komponen dari
Muntuk menghitung hasil akhir.
Pilihan kami untuk implementasi yang paling umum juga dipandu oleh eksperimen: dalam
praktiknya, setiap komponen yang sangat terhubung dariMrelatif kecil terhadapM 'ukuran
keseluruhan, dan oleh karena itu penggunaan algoritma Floyd–Warshall tidak berdampak serius pada
efisiensi.

3.3. Algoritma malas

Sebagian besar fungsi utama perpustakaan memiliki implementasi yang lambat, yang
berarti bahwa hasilnya dihitung hanya seperti yang disyaratkan oleh operasi yang
menggunakan hasil tersebut. Eksekusi lambat sangat menguntungkan ketika otomat
menengah besar dibangun dalam aplikasi tetapi hanya sebagian kecil otomat yang perlu
dikunjungi untuk input tertentu ke aplikasi. Misalnya, dalam pengenalan suara, beberapa
transduser berbobot - model bahasa, kamus, model akustik yang bergantung pada
konteks - disusun menjadi transduser yang berpotensi besar, tetapi hanya sebagian kecil
yang dicari saat memproses ucapan tertentu [ 30].
Prasyarat utama agar suatu fungsi memiliki implementasi yang lambat adalah bahwa fungsi
tersebut dapat diekspresikan sebagai alokalaturan komputasi, dalam arti bahwa transisi yang
meninggalkan status tertentu dalam hasil ditentukan semata-mata oleh status sumbernya dan
informasi dari argumen fungsi yang terkait dengan status tersebut. Misalnya, komposisi memiliki
implementasi yang lambat, seperti yang akan kita lihat di Bagian 3.4 di bawah ini. Demikian pula,
M.Mohri dkk. /Ilmu Komputer Teoritis 231 (2000) 17–32 23

Gambar 4. Input komposisi.

union, concatenation dan penutupan Kleene dapat dihitung sesuai permintaan, dan begitu juga
penentuan.

3.4. Contoh: komposisi malas

Komposisi menggeneralisasi persimpangan akseptor. Serikat dalam komposisiT1◦T2dari


T1danT2diidentifikasi dengan pasangan dari keadaanT1dan keadaanT2. Mengesampingkan
transisi dengan input atau output untuk saat ini, aturan berikut menentukan bagaimana
menghitung transisi dariT1◦T2dari transisi yang sesuai dariT1danT2

=w2Qkan (Qkan
1⊗w2)
kan
1 :B−→
(QSebuah =wQ
1 kan1 dan Q2B−
:C→ 2)⇒(Q1; Q2)a : c=− (w→ 1; Q2);

di manaSx−:→
y=wTmewakili transisi dariSkeTdengan masukanx,keluarankamudan beratw. Jelas,

perhitungan ini bersifat lokal, dan dengan demikian dapat digunakan dalam implementasi komposisi
yang malas.
Transisi dengan label diT1atauT2menambahkan beberapa kehalusan pada komposisi. Secara
umum, keluaran dan masukan dapat disejajarkan dalam beberapa cara berbeda: keluaran dalamT1
dapat dikonsumsi baik dengan tetap dalam keadaan yang sama diT2atau dengan memasangkannya
dengan input diT2; sebuah masukanT2dapat ditangani dengan cara yang sama. Misalnya, dua
transduser pada Gambar 4 dapat menghasilkan semua jalur alternatif pada Gambar 5. Namun, jalur
tebal tunggal cukup untuk mewakili hasil komposisi, ditunjukkan secara terpisah pada Gambar 6.
Masalah dengan jalur redundan tidak hanya saja mereka meningkatkan ukuran hasil yang tidak perlu,
tetapi juga gagal mempertahankannyamultiplisitas jalur:setiap pasangan jalur yang kompatibel diT1
danT2dapat menghasilkan beberapa jalur dalamT1◦T2. Jika semiring berat tidak idempoten,
yang mengarah ke hasil yang tidak memenuhi definisi aljabar komposisi:

<T1◦T2=(u;w)= <T1=(kamu; v)⊗ <T2=(v;w):
v

Kami memecahkan masalah multiplisitas jalur dengan memetakan komposisi yang diberikan ke dalam
komposisi baru

T1◦T2→Tkan 1◦F◦Tkan 2

di manaFadalah khusus filter transduserdanTkan sayaadalah versi dariTsayadi mana


yang relevan label diganti dengan simbol "transisi senyap" khusussaya. Jalur tebal pada Gambar 5
adalah satu-satunya yang diizinkan oleh filter pada Gambar 7 untuk transduser input pada Gambar 4.
24 M.Mohri dkk. /Komputer Teoritis

Gambar 5. Jalur komposisi redundan.

Gambar 6. Output komposisi.

Gambar 7. Filter komposisi.

Jelas, semua operasi yang terlibat dalam komposisi yang disaring bersifat lokal, oleh karena
itu dapat dilakukan sesuai permintaan, tanpa perlu melakukan penggantian secara eksplisit.
bagian dariTsayaolehTkan saya.Rincian lebih lanjut tentang komposisi yang disaring dapat ditemukan di tempat lain [22, 27].

4. Desain perangkat lunak

Perpustakaan kami dirancang untuk memenuhi dua persyaratan penting:


• Algoritma yang beroperasi pada automata harus melakukannya hanya melalui aksesor abstrak
dan operasi mutator, yang pada gilirannya beroperasi pada representasi internal dari automata
tersebut.
M.Mohri dkk. /Ilmu Komputer Teoritis 231 (2000) 17–32 25

• Algoritma yang beroperasi pada bobot harus melakukannya hanya melalui operasi abstrak yang
mengimplementasikan semiring bobot.
Kami memotivasi dan menjelaskan dua persyaratan ini di bawah ini. Selain itu, sifat aplikasi
kami yang menuntut memberikan batasan bahwa abstraksi ini menambah sedikit beban
komputasi dibandingkan dengan arsitektur yang lebih khusus.

4.1. Objek keadaan hingga

Membutuhkan algoritma untuk beroperasi pada automata hanya melalui pengakses abstrak dan
mutator memiliki tiga keuntungan: memungkinkan representasi internal automata disembunyikan,
memungkinkanumumalgoritma yang beroperasi pada beberapa representasi nite-state dan
menyediakan mekanisme untuk membuat dan menggunakan implementasi algoritma yang malas.
Untuk mengilustrasikan poin-poin ini, pertimbangkan pengakses inti yang didukung oleh semua kelas
automata di perpustakaan:
• fsm.Mulailah (),yang mengembalikan keadaan awalfsm;
• fsm.terakhir(negara),yang mengembalikan bobot akhirnegaradi dalamfsm;
• fsm.busur (negara),yang mengembalikan iterator atas transisi yang keluarnegaradi dalamfsm. Iterator itu
sendiri merupakan objek yang mendukungBerikutnyaoperasi, yang mengembalikan (penunjuk ke) setiap
transisi darinegaragantinya.
Suatu keadaan ditentukan oleh indeks bilangan bulat; transisi ditentukan oleh struktur
yang berisi label input, label output, bobot, dan indeks status berikutnya.2
Jelas, berbagai implementasi automata memenuhi antarmuka inti ini. Sebagai contoh sederhana,
transisi yang meninggalkan status dapat disimpan dalam array atau dalam daftar tertaut. Dengan
menyembunyikan implementasi otomat dari penggunanya, kita mendapatkan keuntungan biasa dari
memisahkan antarmuka dari implementasi: kita dapat mengubah representasi sesuai keinginan dan,
selama kita tidak mengubah antarmuka objek, kode yang menggunakannya tetap berjalan.

Faktanya, terbukti sangat berguna untuk memiliki beberapa implementasi automata di perpustakaan
yang sama. Misalnya, satu kelas automata di perpustakaan menyediakan operasi mutasi seperti
menambahkan status dan busur, dengan menggunakan representasi vektor yang dapat diperluas dari status
dan transisi yang mendukung penambahan yang efisien. Kelas lain, untuk automata hanya-baca,
menggunakan status tetap dan larik transisi yang dapat dipetakan memori secara efisien dari file. Kelas
ketiga, juga hanya-baca, menyimpan status dan transisi dalam bentuk terkompresi untuk menghemat ruang,
dan membuka kompresinya sesuai permintaan saat diakses.
Algoritme kami ditulis secara umum, karena menganggap bahwa automata mendukung
operasi inti di atas dan sesedikit yang diperlukan. Misalnya, beberapa kelas automata
mendukungfsm.angka ()operasi yang mengembalikanfsm's jumlah negara bagian, sementara
yang lain tidak (kita akan melihat contoh sebentar lagi). Jika memungkinkan dan cukup efisien,
kami menulis algoritme kami untuk menghindari penggunaan operasi opsional semacam itu.
Dengan cara ini, mereka akan bekerja di kelas otomat apa pun. Di sisi lain, jika itu benar-benar

2Menggunakan indeks bilangan bulat memungkinkan merujuk ke status yang mungkin belum dibuat dalam automata yang
dibuat oleh algoritme malas.
26 M.Mohri dkk. /Ilmu Komputer Teoritis 231 (2000) 17–32

perlu digunakanfsm.numstate(),maka setidaknya semua kelas automata yang mendukung


operasi operasi itu akan berfungsi.3; 4
Serangkaian operasi inti yang dibatasi di atas dimotivasi oleh kebutuhan untuk mendukung
implementasi algoritme yang malas. Secara khusus, operasi bersifat lokal jika kita menerima konvensi
bahwa tidak ada negara bagian yang harus dikunjungi yang belum ditemukan dari status awal.
Dengan demikian objek otomat yang terletak di belakang antarmuka ini tidak perlu memiliki
representasi statis. Misalnya, kita dapat mengimplementasikan hasil komposisi dua automataSEBUAH
danBsebagai robot komposisi tertundaC =FSMCompose(A; B). KapanC:Mulailah()dipanggil, status awal
dapat dibangun sesuai permintaan dengan panggilan pertama SEBUAH:Mulailah()danB:Mulailah()dan
kemudian memasangkan status ini dan mem-hash pasangan ke indeks status baru yang dibangun,
yangC:Mulailah()kembali. Demikian pula,C:terakhir()danC:busur() dapat dihitung sesuai permintaan
dengan terlebih dahulu memanggil operasi ini padaSEBUAHdanBdan kemudian membangun hasil
yang sesuai untukCmengembalikan. Jika kami telah menyertakannumstatessebagai operasi inti,
komposisi harus segera diperluas sepenuhnya untuk menghitung jumlah negara bagiannya. Karena
pengguna mungkin melakukan ini secara tidak sengaja, kami tidak menyediakan operasi tersebut
untuk objek automata yang dihasilkan dari komposisi.5Operasi inti, pada kenyataannya, dapat
mendukung automata malas dengan jumlah status yang terbatas, selama hanya sebagian kecil dari
automata tersebut yang dilalui.
Untuk mencapai efisiensi yang diperlukan untuk antarmuka di atas, kami memastikan bahwa
setiap panggilan ke iterator transisi melibatkan tidak lebih dari peningkatan pointer di kelas automata
yang ditujukan untuk aplikasi yang menuntut seperti pengenalan suara. Karena sebagian besar waktu
yang digunakan untuk operasi automata dalam aplikasi tersebut dihabiskan untuk mengulangi
transisi yang meninggalkan berbagai status, representasi itu biasanya efektif.

4.2. Benda berat

Seperti disebutkan sebelumnya, banyak algoritme di perpustakaan kami akan bekerja dengan
berbagai semiring bobot. Desain kami mendorong penulisan algoritme pada semiring paling umum
dengan membuat bobot menjadi tipe abstrak dengan operasi penjumlahan dan perkalian yang sesuai
dan elemen identitas. Dengan cara ini, kita dapat beralih antara, katakanlah, semiring tropis dan
semiring probabilitas hanya dengan menggunakan implementasi tipe abstrak yang berbeda. Untuk
efisiensi, operasi bobot diwakili oleh makro dalam versi C kami dan oleh fungsi anggota sebaris dalam
versi C++ yang sedang dikembangkan.

3Bagi mereka yang tidak, implementasi C kami saat ini akan mengeluarkan kesalahan run-time, sementara pemeriksaan ketik run-time
dapat digunakan untuk menghindari kesalahan tersebut. Dalam versi C++ baru kami, kami akan menggunakan pemeriksaan tipe waktu
kompilasi jika memungkinkan
4Filosofi desain ini memiliki beberapa kesamaan dengan toolkit perangkat lunak modern lainnya seperti C+
+ Standard Template Library [26]
5Pengguna selalu dapat menyalin otomat malas ini ke dalam turunan dari kelas otomata statis yang mendukung
numstatesoperasi. Dengan kata lain, kami lebih menyukai konversi eksplisit ke konversi implisit.
M.Mohri dkk. /Ilmu Komputer Teoritis 231 (2000) 17–32 27

4.3. liputan

Perpustakaan beroperasi pada transduser berbobot; akseptor berbobot direpresentasikan sebagai


pembatasan transduser identitas untuk mendukung akseptor. Dalam representasi yang kami pilih,
automata berbobot memiliki status awal tunggal; diterima atau tidaknya suatu negara ditentukan
oleh bobot akhir negara tersebut. perpustakaan meliputi:
Operasi rasional:union, concatenation, penutupan Kleene, pembalikan, inversi dan
proyeksi.
Komposisi:komposisi transduser [22], dan perpotongan akseptor, serta
mengambil perbedaan antara akseptor berbobot dan DFA tak berbobot.
Transformasi kesetaraan: -eliminasi, determinisasi [17, 18] dan minimalisasi untuk tak
berbobot (keduanya kasus umum [1] dan kasus asiklik yang lebih efisien [28]) dan
akseptor dan transduser berbobot [15, 18], penghapusan status dan transisi yang tidak
dapat diakses.
Mencari:jalur terbaik [20],n-jalur terbaik, pemangkasan (hapus semua status dan transisi yang terjadi hanya pada
jalur yang bobotnya lebih besar dengan ambang batas yang diberikan daripada jalur terbaik).
Manajemen representasi dan penyimpanan:membuat dan mengonversi di antara representasi
automata dengan pertukaran kinerja yang berbeda; juga, seperti yang dibahas dalam Bagian 3.3,
banyak fungsi perpustakaan dapat memiliki efek tertunda untuk eksekusi lambat, dan fungsi
disediakan untuk cache dan memaksa objek tertunda, terinspirasi oleh fitur serupa dalam
pemrograman fungsional malas.
Selain itu, satu set lengkap fungsi dukungan disediakan untuk memanipulasi
representasi internal automata (misalnya, penyortiran topologi), untuk mengubah
antara representasi internal dan eksternal, dan untuk mengakses dan mengubah
komponen otomat (keadaan, transisi, awal menyatakan dan menerima bobot).
Untuk eksperimen yang nyaman, masing-masing fungsi utama perpustakaan memiliki mitra
tingkat shell Unix yang beroperasi di antara representasi automata eksternal, memungkinkan
ekspresi operasi kompleks pada automata sebagai pipa shell. Contoh konkret di bagian
berikutnya disajikan dalam bentuk perintah-perintah itu untuk kesederhanaan.
Perintah tingkat shell Unix ini tersedia untuk diunduh untuk berbagai arsitektur
komputer dari situs web AT&T Labs-Research [40] bersama dengan dokumentasi,
tutorial, dan latihan.

5. Aplikasi pemrosesan bahasa

Seperti disebutkan di Bagian 1, metode nite-state telah digunakan dengan sangat sukses dalam
berbagai aplikasi pemrosesan bahasa. Namun, sampai kami mengembangkan perpustakaan kami,
aplikasi tersebut belum menyertakan pengenalan suara.
Sistem pengenalan ucapan saat ini bergantung pada berbagai model keadaan-malam
probabilistik, misalnyan-model bahasa gram [29], kamus multi-pengucapan [13], dan model
akustik tergantung konteks [12]. Namun, sebagian besar pengenal ucapan tidak memanfaatkan
properti bersama dari sumber informasi yang mereka gunakan. Sebaliknya, mereka
mengandalkan algoritma tujuan khusus untuk representasi tertentu. Itu berarti bahwa
28 M.Mohri dkk. /Ilmu Komputer Teoritis 231 (2000) 17–32

pengenal harus ditulis ulang jika representasi diubah untuk aplikasi baru atau untuk
meningkatkan akurasi atau kinerja. Eksperimen dengan representasi yang berbeda oleh karena
itu sulit, karena memerlukan perubahan atau bahkan penggantian program pengenalan yang
cukup rumit.
Situasi ini tidak terlalu berbeda dengan parsing bahasa pemrograman sebelumnya lex
danyacc [2]. Lebih jauh lagi, representasi dan algoritme khusus menghalangi optimasi
global tertentu berdasarkan properti umum model keadaan akhir. Sekali lagi, situasinya
mirip dengan kurangnya metode umum dalam penguraian bahasa pemrograman
sebelum pengembangan teori bahasa bebas konteks deterministik dan teknik optimasi
tata bahasa umum berdasarkan itu.
Seperti disebutkan dalam Bagian 1, dalam pengenalan suara, cara alternatif untuk
menghasilkan atau mengubah string harus diperhitungkan dengan kemungkinan generasi
atau transformasi itu. Oleh karena itu, langkah penting dalam menerapkan teknik nite-state
umum untuk masalah pengenalan suara adalah beralih dari bahasa reguler ke deret pangkat
rasional, dan dari automata tak berbobot ke automata berbobot.6Tantangan utama dalam
langkah ini adalah generalisasi algoritme inti ke kasus berbobot, dan implementasinya dengan
tingkat efisiensi yang diperlukan dalam pengenalan suara.

5.1. Contoh sederhana: keselarasan

Sebagai contoh sederhana penggunaan perpustakaan dalam pemrosesan ucapan, kami


menunjukkan bagaimana menemukan keselarasan terbaik antara dua string menggunakan jarak
edit berbobot, yang dapat diterapkan misalnya untuk menemukan keselarasan terbaik antara
transkripsi fonetik kamus sebuah kata string dan realisasi akustik (telepon) dari kata string yang
sama, seperti dicontohkan pada Gambar 8. Gambar 9 menunjukkan tabel bobot penyisipan,
penghapusan dan substitusi yang bergantung pada domain antara fonem dan telepon. Dalam
aplikasi nyata, bobot tersebut akan diturunkan secara otomatis dari contoh yang disejajarkan
menggunakan metode pembelajaran mesin yang sesuai [13, 31]. Jarak edit minimum antara dua
string dapat dengan mudah ditentukan oleh pengulangan

D(Sebuah0;B0)=0;

DS(Sebuahsaya;BJ)=D(Sebuahsaya−1;BJ−1) +w(asaya; BJ) DD (pengganti);


(Sebuahsaya;BJ)=D(Sebuahsaya−1;BJ) +w(asaya; ) Dsaya(Sebuah (penghapusan);

saya;BJ)=D(Sebuahsaya;BJ−1) +w( ; bJ) (insersi);


D(Sebuahsaya;BJ)= min{DS(Sebuahsaya;BJ);DD(Sebuahsaya;BJ);Dsaya(Sebuahsaya;BJ)}:

Kemungkinan pengeditan satu simbol (penyisipan, penghapusan, atau penggantian) dan


bobotnya dapat dengan mudah diwakili oleh transduser berbobot satu-status. Jika
transduser dalam leT.fstdan string yang akan disejajarkan diwakili oleh akseptorA.fsadan
B.fsa, keselarasan terbaik dihitung hanya dengan perintah shell

fsmcompose A.fsa T.fst B.fsa | fsmbestpath >C.fst

6Akseptor dan transduser berbobot juga telah digunakan dalam pengolahan citra [4].
M.Mohri dkk. /Ilmu Komputer Teoritis 231 (2000) 17–32 29

Bentuk dasar Telepon Kata


P pra tujuan
eh eh
P pcl
- pra
kapak ix
S S
ae eh dan
n n
D -
R R menghormati

aku h ix
S S
P pcl
- pra
eh eh
k kcl
T tr
Gambar 8. Penjajaran tali.

Bentuk dasar Telepon Bobot Jenis


Sebuahsaya BJ w(asaya; BJ)

ae eh 1 pengganti
D 2 penghapusan

pra 1 insersi
Gambar 9. Jarak edit tertimbang.

Contoh singkat dari input dan output untuk perintah ini ditunjukkan pada Gambar.
10.
Ketepatan penerapan penyelarasan jarak edit minimum ini bergantung pada
penggunaan aturan kombinasi bobot yang sesuai dalam komposisi automata,
khususnya semiring tropis, yang dibahas dalam Bagian 3.2.
Penyelarasan dengan transduksi dapat dengan mudah diperluas ke situasi di mana pengeditan
melibatkan string yang lebih panjang atau bergantung pada konteks, seperti yang ditunjukkan pada Gambar
11. Dalam kasus seperti itu, status dalam transduser edit mengkodekan kondisi konteks yang sesuai.
Selanjutnya, seperangkat aturan edit berbobot seperti pada Gambar 11 dapat langsung dikompilasi menjadi
transduser berbobot yang sesuai [25].
30 M.Mohri e

Gambar 10. Alignment automata.

Bentuk dasar Telepon Bobot Jenis


Sebuahsaya BJ w(asaya; BJ)
P pcl pr 1 ekspansi
eh saya em 3 kontraksi
r eh kapak r 2 transposisi
t=Vkan V dx 0 ketergantungan konteks

Gambar 11. Jarak edit berbobot umum.

6. Kesimpulan

Kami menyajikan perpustakaan nite-state yang sangat umum berdasarkan gagasan semiring
dan deret pangkat rasional, yang memungkinkan kami menggunakan kode yang sama untuk
berbagai aplikasi berbeda yang membutuhkan semiring berbeda. Versi perpustakaan saat ini
ditulis dalam C, dengan operasi semiring didefinisikan sebagai makro. Versi baru kami sedang
ditulis dalam C++ untuk memanfaatkan template untuk mendukung label transisi yang lebih
umum dan beberapa semiring dalam satu aplikasi.
Pengalaman kami menunjukkan bahwa adalah mungkin dan bahkan terkadang lebih mudah untuk
mengimplementasikan algoritme generik yang efisien untuk kelas semiring daripada mengimplementasikan
algoritme khusus untuk semiring tertentu. Demikian pula, versi algoritme yang malas seringkali lebih mudah
diimplementasikan daripada rekan tradisionalnya.
Kami menguji efisiensi perpustakaan kami dengan membangun aplikasi pengenalan ucapan kosakata
besar yang kompetitif yang melibatkan automata yang sangat besar (kan106menyatakan,kan107
transisi) [23, 24]. Perpustakaan ini digunakan dalam berbagai proyek pengenalan
suara dan sintesis ucapan di AT&T Labs dan di Lucent Bell Laboratories.

Referensi

[1] AV Aho, JE Hopcroft, JD Ullman, Desain dan Analisis Algoritma Komputer, Addison-Wesley,
Reading, MA, 1974
M.Mohri dkk. /Ilmu Komputer Teoritis 231 (2000) 17–32 31

[2] AV Aho, R. Sethi, JD Ullman, Kompilator: Prinsip, Teknik dan Alat, Addison-Wesley: Membaca, MA,
1986.
[3] T. Cormen, C. Leiserson, R. Rivest, Pengantar Algoritma, The MIT Press, Cambridge, MA, 1992.
[4] K. Culik II, J. Kari, Gambar digital dan bahasa formal, dalam: G. Rozenberg, A. Salomaa (Eds.), Handbook
of Formal Languages, Springer, Berlin, 1997, hlm. 599–616,
[5] M. Gross, Penggunaan Automata Hingga dalam Representasi Leksikal Bahasa Alami, Catatan
Kuliah di Ilmu Komputer, vol. 377, Springer, Berlin, 1989.
[6] M. Gross, D. Perrin (Eds.), Kamus Elektronik dan Automata dalam Linguistik Komputasi, Catatan
Kuliah di Ilmu Komputer, vol. 377, Springer, Berlin, 1989.
[7] RM Kaplan, M. Kay, Model Reguler Sistem Aturan Fonologi, Comput. Linguistik 20 (3) (1994) 331–
378.
[8] F. Karlsson, A. Voutilainen, J. Heikkila, A. Anttila, Kendala Tata Bahasa, Sistem Bahasa-Independen untuk
Parsing Teks Tidak Terbatas, Mouton de Gruyter, 1995.
[9] L. Karttunen, The Replace Operator, Pertemuan Tahunan ke-33 Asosiasi Linguistik Komputasi,
Asosiasi Linguistik Komputasi, 1995, hlm. 16–23, Didistribusikan oleh Morgan Kaufmann
Publishers, San Francisco, CA.
[10] L. Karttunen, RM Kaplan, A. Zaenen, Morfologi Dua Tingkat dengan Komposisi, dalam Proc. Internasional ke-15.
Kon. pada Linguistik Komputasi (COLING'92), Nantes, Prancis, COLING, 1992.
[11] K. Koskenniemi, Penguraian dan disambiguasi keadaan hingga, Proc. internasional ke-13. Kon. pada Linguistik
Komputasi (COLING'90), Helsinki, Finlandia, COLING, 1990.
[12] K.-F. Lee, Model Markov tersembunyi fonetik yang bergantung pada konteks untuk pengenalan ucapan
berkelanjutan, IEEE Trans. Akun. Proses Sinyal Pidato. 38 (4) (1990) 599–609.
[13] A. Ljolje, MD Riley, Pengenalan suara yang optimal menggunakan pengenalan telepon dan akses leksikal, di Proc.
ICSLP, Ban , Kanada, Oktober 1992, hlm. 313–316.
[14] M. Mohri, Representasi Compact oleh transduser nite-state, dalam Pertemuan ke-32 Asosiasi
Linguistik Komputasi (ACL 94), Proc. Kon. Las Cruces, NM, ACL, 1994.
[15] M. Mohri, Minimisasi Transduser Sekuensial, Catatan Kuliah di Ilmu Komputer, vol. 807, Springer,
Berlin, 1994.
[16] M. Mohri, Analisis Sintaksis oleh tata bahasa lokal automata: sebuah algoritma yang efisien, di Proc.
internasional. Kon. tentang Leksikografi Komputasi (COMPLEX 94), Institut Linguistik, Akademi Sains
Hongaria, Budapest, Hongaria, 1994.
[17] M. Mohri, Pada Beberapa Aplikasi teori automata nite-state untuk pemrosesan bahasa alami, J. Natural
Bahasa Eng. 2 (1996) 1–20.
[18] M. Mohri, Transduser Keadaan Hingga dalam Pemrosesan Bahasa dan Pidato, Comput. Linguistik 23 (2)
(1997) 269–311.
[19] M. Mohri, Tentang penggunaan transduser sekuensial dalam pemrosesan bahasa alami, dalam: E. Roche, Y.
Schabes (Eds.), Pemrosesan Bahasa Finite-State, MIT Press, Cambridge, MA, 1997, 355–382 .
[20] M. Mohri, Kerangka Aljabar Umum dan Algoritma untuk Masalah Jarak Terpendek. Nota Teknis,
AT&T Labs-Research, 981210-TM, 1998.
[21] M. Mohri, algoritma Minimisasi untuk transduser sekuensial, Teori. Hitung. Sci. (2000) muncul.
[22] M. Mohri, FCN Pereira, M. Riley, Automata tertimbang dalam pemrosesan teks dan ucapan, di ECAI-96
Workshop, Budapest, Hongaria, ECAI, 1996.
[23] M. Mohri, M. Riley, Penentuan bobot dan minimalisasi untuk pengenalan ucapan kosakata besar,
dalam Eurospeech'97, Rhodes, Yunani, 1997.
[24] M. Mohri, M. Riley, D. Hindle, A. Ljolje, FCN Pereira, Ekspansi penuh jaringan yang bergantung pada konteks
dalam pengenalan ucapan kosakata besar, di Proc. ICASSP'98, IEEE, New York, 1998.
[25] M. Mohri, R. Sproat, Kompilator yang efisien untuk aturan penulisan ulang berbobot, dalam Pertemuan ke-34
Asosiasi Linguistik Komputasi (ACL 96), Proc. Conf., Santa Cruz, Ca, ACL, 1996.
[26] D. Musser, A. Saini, Tutorial STL dan Panduan Referensi, Addison-Wesley, Reading, MA, 1996.
[27] FCN Pereira, MD Riley, Pengenalan ucapan dengan komposisi automata nite tertimbang, dalam:
E. Roche, Y. Schabes (Eds.), Pemrosesan Bahasa Finite-State, MIT Press, Cambridge, Ma, 1997,
hlm. 431–453.
[28] D. Revuz, Minimisasi automata deterministik asiklik dalam waktu linier, Teori. Hitung. Sci. 92
(1992) 181–189.
32 M.Mohri dkk. /Ilmu Komputer Teoritis 231 (2000) 17–32

[29] G. Riccardi, E. Bocchieri, R. Pieraccini, model bahasa stokastik non-deterministik untuk pengenalan suara,
di Proc. IE Internasional. Kon. tentang Akustik, Pemrosesan Suara dan Sinyal, vol. 1, IEEE, New York,
1995, hlm. 237–240
[30] M. Riley, F. Pereira, M. Mohri, komposisi Transduser untuk perluasan jaringan yang bergantung pada konteks, dalam
Eurospeech'97, Rhodes, Yunani, 1997.
[31] E. Ristad, P. Yianilos, Model pertumbuhan hingga, Laporan Teknis CS-TR-533-96, Departemen Ilmu
Komputer, Universitas Princeton, 1996.
[32] E. Roche, Analisis Syntaxique Transformationnelle du Francais par Transducteurs et Lexique-
Grammaire, Ph.D. Skripsi, Universite Paris 7, 1993.
[33] E. Roche, Dua metode penguraian melalui tansduser keadaan nite, di Proc. internasional ke-16. Kon.
pada Linguistik Komputasi (COLING'94), Kyoto, Jepang, COLING, 1994.
[34] A. Salomaa, M. Soittola, Automata-Theoretic Aspects of Formal Power Series, Springer, New York, 1978.

[35] MP Schu tzenberger, Tentang definisi keluarga automata, Menginformasikan. Kontrol 4 (1961).
[36] M. Silberztein, Dictionnaires electroniques et analyze automatique de textes: le systeme INTEX, Masson, Paris,
France, 1993.
[37] I. Simon, Subset terbatas dari monoid gratis, di Proc. Simpel Tahunan ke-19. pada Yayasan Ilmu
Komputer, 1978, hlm. 143–150.
[38] R. Sproat, Morfologi dan Komputasi, The MIT Press, Cambridge, MA, 1992.
[39] R. Sproat, Sebuah arsitektur nite-state untuk tokenisasi dan konversi grafem-ke-fonem dalam
analisis teks multibahasa, di Proc. Lokakarya ACL SIGDAT, Dublin, Irlandia, ACL, 1995.
[40] M. Mohri, F. Pereira, M. Riley, Perpustakaan FSM – Tujuan Umum Hingga. Alat Perangkat Lunak Mesin Negara,
http://www.research.att.com/tools/fsm, 1998.

You might also like