挖掘特定关键字的文本文件
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 创建一个简单的直方图。
我有一个 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 创建一个简单的直方图。