2016-03-31 9 views
1

Я пытаюсь создать языковую модель с использованием SRILM. У меня есть список фраз и создать модель, используя:языковая модель с SRILM

./ngram-count -text corpus.txt -order 3 -ukndiscount -interpolate -unk -lm corpus.lm 

После этого я попытался сделать несколько примеров, чтобы увидеть вероятности различных фраз, и оказалось, что есть вероятность журнальную -0.9 ,

Проблема в том, что в тренинге есть несколько слов с более низкой вероятностью журнала. Например, существует 5 «abatantuono», и его логарифмическая вероятность равна -4.8.

Я думаю, что это странно, потому что фраза <s> <unk> </s> более вероятна, чем <s> abatantuono </s>, а в учебном наборе также присутствует 3-граммовая <s> abatantuono </s>!

Это можно увидеть здесь:

% ./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 

Как вы думаете, что проблема может быть?

Спасибо

ответ

3

Это помечено проблема SRILM (см Кеннета Heafield в thesis - сноска на странице 30 и его website заметки на SRILM). Способ передачи массы неизвестному слову может дать им более высокую вероятность по сравнению с увиденными редкими словами в данных обучения. Вы можете взглянуть на пакет KenLM, который имеет только реализацию модифицированного Kneser-Ney (как правило, лучше, чем сглаживание Kneser-Ney), но распределяет массу неизвестным словам таким образом, чтобы это не происходило.

+0

Я пробовал KenLM, и он работал как ожидалось. Спасибо! – Daniele