统计特定文件中的词频

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

查找文件中使用的单词的频率是一件很有意思的事情,下面,我们利用 关联数组,awk,sed,grep 等不同的方式来解决问题。

首先,我们需要一个测试用的文本,保存名为  word.txt

内容如下:

Word usedthis  countingthis

接下来需要编写Shell脚本程序,如下所示:

#!/bin/bash#Name: word_freq.sh#Description: Find out frequency of words in a fileif [ $# -ne 1 ];then echo "Usage: $0 filename"; exit -1fifilename=$1egrep -o "\b[[:alpha:]]+\b" $filename | \awk '{ count[$0]++ } END{ printf("%-14s%s\n","Word","Count") ; \ for(ind in count) { printf("%-14s%d\n",ind,count[ind]); } }' 


工作原理介绍:

1.egrep -o "\b[[:alpha:]]+\b" $filename 用来只输出单词,用 -o 选项打印出由换行符分割的匹配字符序列,这样我们就可以在每行中列出一个单词

2.\b 是单词边界标记符。[:alpha:] 是表示字母的字符类

3.awk命令用来避免对每一个单词进行迭代


下面给出运行的截图:


关于awk命令请参考博主的其他博客。

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值