Nlp SRILM语言模型
我正在尝试使用SRILM构建一个语言模型。 我有一个短语列表,我使用以下方法创建模型:Nlp SRILM语言模型,nlp,n-gram,language-model,srilm,Nlp,N Gram,Language Model,Srilm,我正在尝试使用SRILM构建一个语言模型。 我有一个短语列表,我使用以下方法创建模型: ./ngram-count -text corpus.txt -order 3 -ukndiscount -interpolate -unk -lm corpus.lm 在这之后,我试着做一些例子来看看不同短语的概率,结果是对数概率为-0.9 问题是训练中有些单词的对数概率较低。例如,有5个阿巴塔努诺,其对数概率为-4.8 我觉得这很奇怪,因为一个短语比阿巴塔努诺更可能出现,在训练集中,3克阿巴塔努诺也出现
./ngram-count -text corpus.txt -order 3 -ukndiscount -interpolate -unk -lm corpus.lm
在这之后,我试着做一些例子来看看不同短语的概率,结果是对数概率为-0.9
问题是训练中有些单词的对数概率较低。例如,有5个阿巴塔努诺,其对数概率为-4.8
我觉得这很奇怪,因为一个短语比阿巴塔努诺更可能出现,在训练集中,3克阿巴塔努诺也出现了
这可以在这里看到:
% ./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
你认为问题可能是什么
谢谢这是SRILM的一个突出问题,请参见第30页Kenneth Heafield的脚注和他关于SRILM的说明。与训练数据中出现的稀有词相比,将质量分配给未知词的方式可以赋予它们更高的概率。您可以看看KenLM软件包,该软件包只有改进的Kneser-Ney的实现,通常比Kneser-Ney平滑性能更好,但对未知单词进行质量分配的方式可以防止这种情况发生。这是SRILM的一个标记问题,请参见第30页Kenneth Heafield的脚注和他关于SRILM的注释。与训练数据中出现的稀有词相比,将质量分配给未知词的方式可以赋予它们更高的概率。您可以看一看KenLM软件包,该软件包只实现了修改后的Kneser-Ney,通常比Kneser-Ney平滑性能更好,但对未知单词进行质量分配的方式可以防止这种情况发生