如何在python中有效地计算单词频率?
0 700
0
该提问暂无详细描述
收藏
2021-01-17 10:31 更新 gitvrar •  459
共 1 个回答
高赞 时间
0

最简洁的方法是使用Python提供的工具。

from future_builtins import map  # Only on Python 2

from collections import Counter
from itertools import chain

def countInFile(filename):
    with open(filename) as f:
        return Counter(chain.from_iterable(map(str.split, f)))

map(str.split, f)使生成器list从每一行返回s个单词。包装chain.from_iterable将其转换为单个生成器,一次生成一个单词。Counter接受一个可迭代的输入,并计算其中的唯一值。最后,return一个类似 dict的对象(Counter),用于存储所有唯一单词及其计数,并且在创建期间,您一次只存储一行数据和总计数,而不是一次存储整个文件。

收藏
2021-01-17 10:50 更新 同步 •  1366