【发布时间】:2016-04-29 20:28:03
【问题描述】:
我有一个非常大的文本文件。我想分析它并绘制这些分析。我所做的一项分析是找出 5 个最常见的词。
f = open('story.txt','r')
words = [x for y in [l.split() for l in f.readlines()] for x in y]
data = sorted([(w, words.count(w)) for w in set(words)], key = lambda x:x[1], reverse=True)[:5]
print data
most_words = [x[0] for x in data]
times_used = [int(x[1]) for x in data]
print most_words
print times_used
显示这个:
[('the', 4826), ('of', 2276), ('and', 1825), ('a', 1761), ('to', 1693)]
['the', 'of', 'and', 'a', 'to']
[4826, 2276, 1825, 1761, 1693]
由于这是一个如此大的文件,因此需要一段时间来分析。首先,我想知道是否有办法以更快的方式做到这一点?其次,我想用这些数据创建一个饼图。我设法弄清楚如何用这些数据制作条形图,但制作饼图似乎让我望而却步。任何帮助都会很棒!
同样,如果有一种方法可以加快对大型文本文件的搜索速度,并且在进程中不使用太多 RAM,那么我在运行此程序时会听到我的计算机运行困难。谢谢!
.. 或者如果有任何您认为可能有帮助的帖子,请告诉我,我已经为我的问题寻找解决方案一个多小时了,并决定提出我自己的问题来寻求帮助!
【问题讨论】:
标签: numpy matplotlib charts pie-chart frequency