python 英语词频统计软件_如何统计文章词频,从而更快了解一篇文章

在一份给定的文件里,词频(term frequency,TF)指的是某一个给定的词语在该文件中出现的次数。一个词语出现的次数越多,越表明是该文件的核心词汇,该词语对于快速理解文章具有重要的意义。接下来就讲讲如何统计中文文章中的词频(代码用python3.6实现)。

1.分词利器-jieba

为什么要用到分词器?因为中文句子是由一个个词语组成,要想统计这些词语在文章中出现的次数,首先第一件事就是要把它与其它词分割开来,jieba就是干的这么一件事。

74229253a8e09a77a6e4a5c8e1b4bf52.png

它支持三种模式:

精确模式:试图将句子最精确地切开,适合文本分析;

全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;

搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。那么在python中怎么使用jieba?很简单,只需要import jieba将其引入就好,对于上面的三种模式分别对应的函数为lcut(句子),lcut(句子,cut_all=True),lcut_for_search(句子)。让我们通过实例更直观地看看这三种模式的差别。

e795a7f9b0e5431ca46fa5f523cd3290.png
三种模式

d15b4c490f59a62c35461a6ffb2e294b.png
三种模式对应结果

通过结果可以看出,精确模式能将词语精确的分开,全模式则将所有可能的词语都切开,搜索引擎模式在精确模式的基础上,再次对长词分割。另外jieba还可以对词性进行标注,获得词语的位置等。

2.分词后的统计

在拿到jieba分词后的数据后就要对数据进行统计,所谓统计就是看一个词在这篇文章中出现了多少次。脑子里最直接的想法就是对每一个词用一个变量,只要出现这个词就让它对应的变量自增1,但是现实是不知道究竟会出现多少词,要用多少变量。

1558f86f823c88560e8d37de60be67f2.png

再细一想,词与它出现的次数之间不是一一对应的关系嘛,就相当于键与值之间的关系,所以用字典的键来存储出现的词,值存储词出现的次数。拿统计英文字母做个示范:

76366a522c3067f099820cb65c75c1e6.png
英语统计字母例子

counts就是一个字典,一个for循环遍历英语句子的每一个字符,如果是空格则不进行操作。先看字母是否在字典里,如果没有则加入字典,将值设为1;如果有则将值更新加1。

092f1024d7e203532894fbe301ac4e65.png
字母统计结果

对中文词语的统计思路一样,也是用字典来对值和键进行存储。下面是对中文分词加统计词频的整体代码:

4eded27449d22ab4d3f474c921274650.png
中文分词统计

该例子对一篇新闻报道进行了分词统计,另外加入去除停用词的操作,这样对词语的统计更加准确,得到的结果如图所示

855ee4c56945617e87e453d28e697920.png
统计结果

在该文章中疫情出现的次数最多,其次是企业,互联网,再通过文章标题就可以大体知道文章的内容。知道内容不是目的,学到技术才是根本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值