挖掘特定关键字的文本文件

Mining a text file for specific keywords

我有一个 15MB 的 .txt 文件;我想指定四到五个关键字以查看它们在文件中出现了多少次,然后以类似直方图的方式绘制它们。请提出出路

在 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 创建一个简单的直方图。