如何计算大型文件(2GB)中文本的单词频率(每行一个)?

0 投票
1 回答
825 浏览
提问于 2025-04-16 22:38

我正在尝试写一个程序,创建一个大约2GB大小的英文单词文件。然后,我想从这个2GB的文件中,使用外部排序的方法来打印出单词的出现频率。经过外部排序后,它可以直接打印出每个单词的数量(频率)。

1 个回答

3

Python有一个内置的函数sorted,可以用来对可迭代的对象进行排序。不过更棒的是,在2.7及更高版本中,它还提供了一个内置的集合,可以用来计算事物出现的频率。假设你的大文件每行只有一个单词,你可以这样做:

from collections import Counter
with open(<giant-dictionary>) as words:
    counts = Counter(words)

这个过程可能需要几分钟。

撰写回答