扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
如何用Python写一个词频统计小项目,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的勐海网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
这里用python做一个小小的英文词频的统计。当然了,自己写的,就没有停词、计算词语权重这些功能了,纯粹是写写代码练练手。
首先呢,这里是一篇英文文章,就像下面这样的185个小段落,数据量还是不大的,哈利波特小说好像有10W行,感兴趣可以找到分一下。
虽然我安装了2、3两个版本.这里用的是Python2,因为Python2打印好像不用写括号,比较省事。
废话不多说,这里主要有两个脚本,一个是分词,一个是统计词频的:
1
分词
我这里是用的cmd窗口的命令依次读取一行,形成文件流,每次处理一行,否则就需要弄一个很大的列表(list)。
如上面几行代码所示,对英文进行分词是非常简单的,只需要根据空格分开就行了。不像中文,还需要词库、用一系列算法计算。然后打印到控制台就行了。这样打印出来的词语还是无序的,我们需要将其排序,就是让相邻词语一小段一小段一样的,需要用sort排序,就像这样:
cmd窗口输入命令执行脚本:
type The_Clock_and_the_Key.txt | python2 splitText.py | sort
这里的“type”是打开一个文本文件,“|”是管道:把左边内容作为参数给右边的函数。
这样每个词语就占一行,其实这个就是hadoop的一个基本功能之一:【排序】。
2
统计词频
思想是,如果当前读进来的单词与保存的单词不一样,表明该词语统计结束。由于,最后一个词语赋值给current_word后,没有对比的了(已经到最后一行了,这里打印的时候,需要在循环外面打印一次,第23行代码)。
将第一个脚本处理后的一个单词占一行,并且相邻段单词一样的数据流用管道传入这个脚本进行处理。
cmd窗口输入命令执行脚本:
type The_Clock_and_the_Key.txt | python2 splitText.py | sort | python2 splitText2.py | sort /R
这里的sort /R表示倒序(reverse),是一个函数。
windows命令行不太会玩,最终排序是这样的排序:
好像是按照字典排序的,哈哈,就这样吧!有强迫症的同学可以用列表或者字典,调用Python自带sort函数排一下序。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流