使用 for 循环为标记及其模型分数制作一个 Python 字典

问题描述 投票:0回答:1

所以我试图制作一个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
python nltk
1个回答
0
投票

您可以尝试对每个单词迭代

dracula
并找到每个单词的分数,并将其存储在同一个 for 循环中的
unigram_probs
字典中。

unigram_probs = {}
for word in dracula:
  unigram_probs[word] = unigram_model.score(word)
© www.soinside.com 2019 - 2024. All rights reserved.