日记大全

日记大全 > 句子大全

如何统计文章词频(从而更快了解一篇文章)

句子大全 2023-05-08 05:15:01
相关推荐

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

1.分词利器-jieba

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

它支持三种模式

精确模式:试图将句子最精确地切开,适合文本分析;全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。那么在python中怎么使用jieba?很简单,只需要import jieba将其引入就好,对于上面的三种模式分别对应的函数为lcut(句子),lcut(句子,cut_all=True),lcut_for_search(句子)。让我们通过实例更直观地看看这三种模式的差别。

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

2.分词后的统计

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

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

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

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

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

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

阅读剩余内容
网友评论
相关内容
拓展阅读
最近更新