1

现在我必须编写一个小脚本来获取文档目录(给出的示例是 Revelation 中的每一章)并将它们转换为词频文档。到目前为止,我有:

foreach file ($1/*)
   java Stemmer $file | tr " " "\n" | tr "[:punct:]" "\n" | egrep -v ^$ | sort |
   egrep -x -v -f stopwords

所以,现在它遍历每个文件,通过 Porter 词干分析器运行它,去掉所有标点符号和多余的空格和黑线,对它们进行排序,并消除所有的停用词。我的问题是,我能做些什么来使输出从

apple  
boy  
boy  
cat  
cat  
cat  
dog  

apple 1  
boy 2  
cat 3  
dog 1
4

2 回答 2

2

最简单的方法是uniq -c在 presorted 中用作您的列表,但输出不是您想要的确切格式:

$ uniq -c 文件
       1个苹果
       2个男孩
       3 只猫
       1 条狗

这个awk脚本给出了明确的格式:

$ awk '{a[$0]++}END{for(k in a) print k, a[k]}' file
apple 1
cat 3
boy 2
dog 1

注意:您应该用单个awk脚本替换管道。

于 2013-04-23T09:59:43.310 回答
2
awk '{a[$0]++}END{for(x in a)print x,a[x]}' input|sort

将输出与您预期的完全相同。(用你的例子),保持单词 alpha-beta 排序。

于 2013-04-23T10:02:49.637 回答