如何计算大型文件(2GB)中文本的单词频率(每行一个)?
我正在尝试写一个程序,创建一个大约2GB大小的英文单词文件。然后,我想从这个2GB的文件中,使用外部排序的方法来打印出单词的出现频率。经过外部排序后,它可以直接打印出每个单词的数量(频率)。
1 个回答
3
Python有一个内置的函数sorted
,可以用来对可迭代的对象进行排序。不过更棒的是,在2.7及更高版本中,它还提供了一个内置的集合,可以用来计算事物出现的频率。假设你的大文件每行只有一个单词,你可以这样做:
from collections import Counter
with open(<giant-dictionary>) as words:
counts = Counter(words)
这个过程可能需要几分钟。