Ich versuche, ein Sprachmodell mit SRILM zu bauen. Ich habe eine Liste von Phrasen und ich schaffen das Modell mit:Sprachmodell mit SRILM
./ngram-count -text corpus.txt -order 3 -ukndiscount -interpolate -unk -lm corpus.lm
Danach habe ich versucht, einige Beispiel zu machen, die Wahrscheinlichkeiten der verschiedenen Sätze zu sehen, und es stellte sich heraus, dass eine Protokollwahrscheinlichkeit -0,9 hat .
Das Problem ist, dass es einige Wörter im Training mit einer niedrigeren logarithmischen Wahrscheinlichkeit gibt. Zum Beispiel gibt es 5 "abatantuono" und seine Log-Wahrscheinlichkeit ist -4,8.
Ich denke, das ist seltsam, weil ein Satz <s> <unk> </s>
wahrscheinlicher ist als <s> abatantuono </s>
und im Trainingssatz ist auch das 3-Gramm <s> abatantuono </s>
vorhanden!
Dies kann hier gesehen werden:
% ./ngram -lm corpus.lm -ppl ../../../corpus.txt.test -debug 2 -unk
reading 52147 1-grams
reading 316818 2-grams
reading 91463 3-grams
abatantuono
p(abatantuono | <s>) = [2gram] 1.6643e-05 [ -4.77877 ]
p(</s> | abatantuono ...) = [3gram] 0.717486 [ -0.144186 ]
1 sentences, 1 words, 0 OOVs
0 zeroprobs, logprob= -4.92296 ppl= 289.386 ppl1= 83744.3
abatantonno
p(<unk> | <s>) = [1gram] 0.00700236 [ -2.15476 ]
p(</s> | <unk> ...) = [1gram] 0.112416 [ -0.949172 ]
1 sentences, 1 words, 0 OOVs
0 zeroprobs, logprob= -3.10393 ppl= 35.6422 ppl1= 1270.36
file ../../../corpus.txt.test: 2 sentences, 2 words, 0 OOVs
0 zeroprobs, logprob= -8.02688 ppl= 101.56 ppl1= 10314.3
Was denken Sie, könnte das Problem sein?
Danke
Ich versuchte KenLM und es funktionierte wie erwartet. Vielen Dank! – Daniele