我在文本上创建了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
错误,但是如果使用原始文本,则会出现数字错误。因此,我不确定哪种方法可以正确地根据测试数据,原始文本或双字母序列对模型进行评估。