Di Kneser-Ney smoothing, bagaimana kata-kata yang tidak terlihat ditangani?

15

Dari apa yang saya lihat, formula smoothing Kneser-Ney (dalam urutan kedua) dalam beberapa hal diberikan sebagai

PKN2(wn|wn1)=max{C(wn1,wn)D,0}wC(wn1,w)+λ(wn1)×Pcont(wn)

dengan faktor normalisasi diberikan sebagaiλ(wn1)

λ(wn1)=DwC(wn1,w)×N1+(wn1)

dan probabilitas kelanjutan dari sebuah kataw nPcont(wn)wn

Pcont(wn)=N1+(wn)wN1+(w)

di mana adalah jumlah konteks terlihat di atau, lebih sederhana, jumlah kata yang berbeda yang mendahului kata yang diberikan . Dari apa yang saya mengerti, rumusnya dapat diterapkan secara rekursif. w wN1+(w)ww

Sekarang ini menangani kata-kata yang dikenal dalam konteks yang tidak diketahui dengan baik untuk panjang n-gram yang berbeda, tetapi apa yang tidak dijelaskan adalah apa yang harus dilakukan ketika ada kata-kata di luar kamus. Saya mencoba mengikuti contoh ini yang menyatakan bahwa dalam langkah rekursi untuk unigram, . Dokumen kemudian menggunakan ini - mengutip Chen dan Goodman - untuk membenarkan rumus di atas sebagai . P 1 K N (w)=Pcont(w)Pcont(/)=PKN0(/)=1VPKN1(w)=Pcont(w)

Saya gagal melihat cara kerjanya di hadapan kata yang tidak diketahui . Dalam kasus ini karena, jelas, kata yang tidak diketahui tidak melanjutkan apa pun mengenai set pelatihan. Demikian juga jumlah n-gram akan menjadi .P c o n t ( tidak diketahui ) = 0w=unknownPcont(unknown)=0somethingC(wn1,unknown)=0

Selain itu, seluruh istilah mungkin nol jika urutan kata-kata yang tidak dikenal - katakanlah, trigram kata-kata OOD - dijumpai.wC(wn1,w)

Apa yang saya lewatkan?

di bawah sinar matahari
sumber
Saya juga berjuang dengan KN. Saya pikir probabilitas bigram P yang tidak terlihat (w1w2) dapat mundur ke probabilitas kelanjutan dari w2 unigram terakhir. Ketika Anda dibiarkan dengan unigram yang tak terlihat, Anda tidak punya apa-apa. Apa yang harus dilakukan selanjutnya? Saya tidak tahu
momobo
Saya mencoba menerapkan KN sendiri saat ini dan saya terjebak dengan masalah yang sama. Apakah kalian berdua berhasil menemukan solusi?
jbaiter
Saya kembali ke Good-Turing smoothing untuk unigrams unigrams (menyesuaikan fungsi daya dengan frekuensi dan frekuensi-frekuensi) ... dengan hasil yang bervariasi.
sunside

Jawaban:

6

Dan Jurafsky telah menerbitkan bab tentang model N-Gram yang berbicara sedikit tentang masalah ini:

Pada penghentian rekursi, unigrams diinterpolasi dengan distribusi seragam:

PKN(w)=max(cKN(w)d,0)wcKN(w)+λ(ϵ)1|V|

Jika kita ingin memasukkan kata yang tidak dikenal <UNK>, itu hanya dimasukkan sebagai entri kosakata reguler dengan hitung nol, dan karenanya kemungkinannya adalah:

λ(ϵ)|V|

Saya sudah mencoba mencari tahu apa artinya ini, tetapi saya tidak yakin apakah berarti lim x 0 x . Jika ini masalahnya, dan Anda menganggap bahwa ketika penghitungannya menjadi nol, mungkin λ ( ϵ ) menjadi d , menurut:ϵlimx0xλ(ϵ)d

λ(wi1)=dc(wi1)|{w:c(wi1,w)>0}|

maka kata yang tidak dikenal hanya akan diberikan sebagian kecil dari diskon, yaitu:

λ(ϵ)|V|=d|V|

Saya sama sekali tidak yakin dengan jawaban ini, tetapi ingin mengeluarkannya kalau-kalau ada pemikiran lagi.

ϵλd|V|

abroekhof
sumber
2
Jawaban yang bagus tetapi seperti Anda, saya tidak 100% yakin akan hal itu. Saya menerapkan versi perl script research.microsoft.com/en-us/um/redmond/groups/srg/papers/... dengan python - tetapi saya menyadari bahwa ini hanya berfungsi apa adanya jika Anda memiliki kosakata tertutup (masalah 0 prob ) - yaitu semua unigram ujian juga dalam kereta. Seperti yang disarankan oleh Jan lagunita.stanford.edu/c4x/Engineering/CS-224N/asset/slp4.pdf saya diganti contoh pertama setiap kata dengan <UNK> selama pra-pengolahan. Namun, saat mempartisi, ada beberapa unigram ujian yang tidak ada di kereta seperti "goofedup". Jadi saya menggunakan d / | V | sini. Terima kasih!
Josh Morel
1

Ada banyak cara untuk melatih seorang model dengan <UNK>meskipun Jurafsky menyarankan untuk memilih kata-kata yang terjadi sangat sedikit dalam pelatihan dan hanya mengubahnya <UNK>.

Kemudian cukup latih probabilitas seperti yang biasa Anda lakukan.

Lihat video ini mulai pukul 3:40 -

https://class.coursera.org/nlp/lecture/19

Pendekatan lain adalah dengan hanya menganggap kata sebagai <UNK>pertama kalinya hal itu terlihat dalam pelatihan, meskipun dari pengalaman saya pendekatan ini memberikan terlalu banyak probabilitas <UNK>.

Randy
sumber
0

Hanya beberapa pemikiran, saya jauh dari menjadi ahli dalam masalah ini jadi saya tidak bermaksud memberikan jawaban atas pertanyaan tetapi untuk menganalisisnya.

λ(ϵ)λ(ϵ)

λ(ϵ)=1wmax(CKN(w)d,0)wCKN(w)
Remember that here CKN(w) is obtained from the bigram model.

Another option would be to estimate the <unk> probability with the methods mentioned by Randy and treating it as a regular token.

I think this step is made to ensure that the formulas are consistent. Notice that the term λ(ϵ)|V| does not depend on the context and assigns fixed values to the probabilities of every token. If you want to predict the next word you can prescind this term, on the other hand if you want to compare the Kneser - Ney probability assigned to each token under two or more different contexts you might want to use it.

Daniel Villegas
sumber
Jawaban seharusnya adalah jawaban aktual.
Michael R. Chernick