所以我试图制作一个Python字典,其中包含一个单词及其文件中所有单词的模型分数。我的问题是,我无法找到一种方法将迭代器的关键字
words
放入 .score 函数中,而不直接给出“words”一词的分数。分数函数根据输入的单词为您提供概率分数,但我需要它循环遍历文件中的每个单词并给出每个单词的分数。
这是我的代码:
unigram_probs = [(dict.fromkeys(words, unigram_model.score("words"))) for words in dracula]
当我运行代码时,这是我得到的输出:
{'project': 0.0006792647638196416,
'gutenberg': 0.0006792647638196416,
'ebook': 0.0006792647638196416,
'dracula': 0.0006792647638196416}
请注意,在上面,每个单词都被赋予相同的概率分数,因为它拉动了单词“单词”的分数并将其应用于所有单词。
相反,我需要它给出它循环的每个单词的概率分数。
这就是我所期待的:
project 0.0012090748539600599
gutenberg 0.0004211384322782231
ebook 0.00017660643934248063
dracula 0.0005298193180274419
您可以尝试对每个单词迭代
dracula
并找到每个单词的分数,并将其存储在同一个 for 循环中的 unigram_probs
字典中。
unigram_probs = {}
for word in dracula:
unigram_probs[word] = unigram_model.score(word)