我有大量的句子(刚好超过 100,000 个)。每篇平均包含 10 个单词。我试图将它们放在一个大列表中,这样我就可以使用 collections 库中的 Counter 来显示每个单词出现的频率。我目前正在做的是:
from collections import Counter
words = []
for sentence in sentenceList:
words = words + sentence.split()
counts = Counter(words)
我想知道是否有一种方法可以更有效地做同样的事情。我已经等了将近一个小时才能完成此代码的执行。我认为连接是导致这需要这么长时间的原因,因为如果我将行 words = words + sentence.split() 替换为 print(sentence.split()) 它在几秒钟内完成执行。任何帮助将不胜感激。
请您参考如下方法:
如果您只想对元素进行计数,请不要构建大的、占用内存的列表。继续使用新的可迭代对象更新 Counter 对象:
counts = Counter()
for sentence in sentenceList:
counts.update(sentence.split())
