如何评估测试数据上的ngram?

时间:2019-03-05 20:47:34

标签: python nltk

我在文本上创建了MLE bigram语言模型,但是,我不知道如何将其应用于测试数据:

以下是我的尝试:

pp1 = model.perplexity([('users','never')])
text = "users never"
ll = list(bigrams(text.split()))
print(list(ll))
pp2 = model.perplexity('users never')
pp3 = model.perplexity(ll)
print("pp:",pp1, " pp2", pp2, " pp3", pp3)

这是输出:

pp: 3.0000000000000004  pp2 inf  pp3 3.0000000000000004

似乎perplexity的输入应该是一个二元组序列。

但是,当我尝试在训练有更多数据的另一个模型中使用此逻辑时,如果将其用作division by zero序列,则会出现bigram错误,但是如果使用原始文本,则会出现数字错误。因此,我不确定哪种方法可以正确地根据测试数据,原始文本或双字母序列对模型进行评估。

0 个答案:

没有答案