首先什么是“词频分析”
词频汾析,就是对某一或某些给定的词语在某文件中出现的次数进行jieba统计词频代码分析
比如:分析你最喜欢的作者的表达习惯是怎样的?
jieba库:优秀的中文分词组件支持繁体分词、自定义词典。可以对文档进行三种模式的分词:
1、精确模式:试图将句子最精确地切开,适合文本汾析;
2、全模式:把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;
3、搜索引擎模式:在精确模式的基础上,对长词再佽切分,提高召回率,适合用于搜索引擎分词
jieba库中文分词原理
1、利用一个中文词库,确定汉字之间的关联概率
2、汉字间概率大的组成词组,形成分词结果
3、除了分词,用户还可以添加自定义词组
jieba.lcut(str) :精确模式,返回一个列表类型的分词结果参数同上。
下面用一个案例进行实践:
分析刘慈欣尛说《三体》(一二三部合集)出现次数最多的词语
首先下载好《三体》以txt格式、utf-8编码。导入jieba库:
使用全模式进行分词返回列表:
定義空集合,并借此进行进行jieba统计词频代码:
dict_items转换为列表,并以第二个元素排序:
以格式化打印前30名:
可以看到存在非常多的垃圾数据。因為把文档中的标点、空格、没有意义的字、词语全部进行了jieba统计词频代码
这并不是我们想要的数据。这个时候我们需要使用停用词表
停用词:停用词是指在信息检索中,为节省存储空间和提高搜索效率在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或詞,这些字或词即被称为Stop Words(停用词)
停用词表便是存储了这些停用词的文件。在网上下载停用词表命名CS.txt。
下面只需要修改原代码即可:
至此得到了我们想要的结果打印的即为出现最多的词语和出现的次数。
文字未完全对齐是因为全、半角空格问题此问题将在日后关於“python爬虫”的博客中解决。
未来几篇预告:词云生成、李白杜甫诗猜测、爬虫