【发布时间】:2018-08-07 11:49:30
【问题描述】:
我有一个 15MB 的 .txt 文件;我想指定四到五个关键字来查看它们在文件中出现的次数,然后以类似直方图的方式绘制它们。请提出出路
【问题讨论】:
-
试试写代码!
标签: text-files counting keyword-search
我有一个 15MB 的 .txt 文件;我想指定四到五个关键字来查看它们在文件中出现的次数,然后以类似直方图的方式绘制它们。请提出出路
【问题讨论】:
标签: text-files counting keyword-search
在 bash 中,如果您要查找 wordOne、wordTwo 或 wordThree 的出现,您可以执行以下操作:
cat myFile | egrep -o "wordOne|wordTwo|wordThree" | sort | uniq -c
这意味着:读取 myFile,查找 wordOne、wordTwo 和 wordThree 的出现并仅输出这些出现,对输出的行进行排序,在计算出现次数的同时删除重复项。
请注意,这也将匹配 wordOneOther,因为我们不确保单词边界。这可以通过多种方式完成,但取决于您需要什么以及您的文件是什么样的。
绘图是另一个问题。您可以使用诸如 gnuplot 之类的东西,也可以将输出粘贴到 excel 或 matlab 之类的...
【讨论】:
安装 nltk。做文本分析将非常有用。安装后,以下代码将帮助您获取特定单词的字数:
import nltk
with open('C:\\demo.txt', 'r') as f:
#The following line will create a list of words from the text.
words = nltk.word_tokenize(f.read())
#print (words)
#The following line will create a word-frequency combo, so you can call any word to get its frequency
fdist = nltk.FreqDist(words)
print (fdist['This'])
一旦您准备好这些数据并以您选择的格式存储,您就可以使用 matplotlib 或 seaborn 创建一个简单的直方图。
【讨论】: