You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用for循环构建含单词及其模型得分的Python字典

问题解决:为每个单词匹配对应模型得分

错误原因

你的代码有两个关键问题:

  • 使用dict.fromkeys(words, unigram_model.score("words"))时,dict.fromkeys会把所有键映射到同一个固定值,这里就是字符串"words"的得分,所以所有单词得分完全一致。
  • 传给score函数的是字符串"words",而非循环里的迭代变量words,相当于一直在计算"words"这个词的得分,结果自然全部相同。

修正代码

直接用字典推导式遍历每个单词,为每个单词单独计算得分:

unigram_probs = {word: unigram_model.score(word) for word in dracula}

如果dracula中的每个元素是包含多个单词的序列(比如每行的单词列表),需要先扁平化遍历所有单词:

unigram_probs = {}
for words in dracula:
    for word in words:
        unigram_probs[word] = unigram_model.score(word)

预期输出

修正后会得到每个单词对应各自的概率得分,示例如下:

{'project': 0.0012090748539600599,
 'gutenberg': 0.0004211384322782231,
 'ebook': 0.00017660643934248063,
 'dracula': 0.0005298193180274419}

内容的提问来源于stack exchange,提问作者Kevin Veeder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 10:43:12