通过Linux命令实现词频统计
现在有一遍英语文档The_Man_of_Property.txt
通过Linux命令实现词频统计
可以清楚的看到文章中包含了各种标点符号以及通过空格分割的单词,现在我们需要将文章的标点符号全部删除,并将剩下的单词进行词频统计输出到文件中
sed 's/[[:punct:]]//g' The_Man_of_Property.txt | tr ' ' '\n' | sort |uniq -c | sort -k1 -nr >> word_Fre.txt
这里我们应用到了sed编辑器,sed编辑器可以根据命令来处理数据流中的数据,这些命令可以通过命令行输入,也可以存储在一个命令文本文件中。sed编辑器会执行下列操作:
1、一次从输入中读取一行数据
2、根据所提供的编辑器命令匹配数据
3、按照命令修改流中的数据
4、将新的数据输出到STDOUT
上面的命令中通过:
sed 's/[[:punct:]]//g' The_Man_of_Property.txt (删除掉文章中的标点符号如果想直接修改原文可以在sed后面加上-i这个参数)
tr ' ' '\n' (实现将空格替换为换行符)
sort (对所有的单词进行排序)
uniq -c (将相同单词进行合并并统计出其出现的总次数)
sort -k1 -nr (按照第一列排序并根据数字倒叙排序)
并将结果存储到word_Fre.txt中