python - 频率计数的错误结果

标签 python

我正在尝试查找一个单词列表在另一个单词列表中出现的情况。 我的代码如下所示:

for cat, text2 in posts:
words=wordpunct_tokenize(text2)
for word in words:
    if word in top:
        counter[word]+=1

print counter

单词如下所示:[("Post1", "post1","post1"), ("post2","post2), ("post3")] 顶部看起来像这样“Post1,Post2,Post3” 预期结果是:

{post1: 3}
{post2, 2}
{post3, 1}

但是我现在得到的输出是:

{'post1': 3})
{'post2': 2, 'post1': 3})
{'post3': 1, 'post2': 2, 'post1': 3})

看起来程序将上一行中的单词添加到下一行,有人知道我该如何解决这个问题吗?

最佳答案

提示:Python 中有一个类已经可以实现您想要的功能,它的名称为 Counter它位于 collections 模块中:

from collections import Counter
c = Counter()
for cat, text2 in posts:
    c.update(word for word in wordpunct_tokenize(text2) if word in top)

最后,c 变量将包含找到的单词的频率计数。

关于python - 频率计数的错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16254250/

相关文章:

python - "KeyError: ' 在 AWS S3 中记录 '"- Lambda 触发器

python - pandas根据变量值添加变量

python - 为什么我的线在 matplotlib 中被剪裁?

python - Django 预填充+附加固定字符串

python - 在 Gurobi 目标函数中添加许多二次项

python - 将列表或用户生成的字符串转换为单个字符串

python - mayavi.mlab.pipeline.iso_surface.IsoSurface 使用什么算法?

python - 使用 Expect 在远程机器上运行本地 Python 脚本

python - Pandas:如何从 CSV 读取字节和非字节列并解码字节列?

java - 在 Java TensorFlow 1.15 中使用 Python 构建的 TensorFlow 2.1.0 模型 |图表中没有名为 [input] 的操作