码迷,mamicode.com
首页 > 其他好文 > 详细

词频分析

时间:2019-10-19 14:39:43      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:中华   highlight   cost   port   continue   lse   gbk   函数   数据   

词频分析,分析一段文字或者一段话每个单词出现的频率。对于英文文章,我们可以使用split()函数进行文章段落的切割,对于中文,我们可以使用jieba库进行文章段落的分割。

import jieba

# jieba提供三种分词模式
txt = "中华人民共和国万岁,中国共-产-党万岁,中国人民万岁!"
words1 = jieba.lcut(txt)
words2 = jieba.lcut(txt, cut_all=True)
words3 = jieba.lcut_for_search(txt)
print(words2)
print(words2)
print(words3)

  上面的代码就是对txt这个文本,使用jieba提供的三种分词模式进行分词,得到的结果为。

[中华, 中华人民, 中华人民共和国, 华人, 人民, 人民共和国, 共和, 共和国, 万岁, ‘‘, ‘‘, 中国, 中国共-产-党, 国共, 共产, 共-产-党, 万岁, ‘‘, ‘‘, 中国, 国人, 人民, 万岁, ‘‘, ‘‘]
[中华, 中华人民, 中华人民共和国, 华人, 人民, 人民共和国, 共和, 共和国, 万岁, ‘‘, ‘‘, 中国, 中国-共-产-党, 国共, 共产, 共-产-党, 万岁, ‘‘, ‘‘, 中国, 国人, 人民, 万岁, ‘‘, ‘‘]
[中华, 华人, 人民, 共和, 共和国, 中华人民共和国, 万岁, , 中国, 国共, 共产, 共-产-党, 中国-共-产-党, 万岁, , 中国, 人民, 万岁, ]
Loading model cost 0.579 seconds.

三种分词模式分别是精确模式、全模式和搜索引擎模式。在日常的分析中,我常用的是精确模式。

下面针对十九大中文报告进行词频分析。其中使用字典的get方法。

txt = open("../文本/十九大报告.txt",r,encoding="GBK").read()
words = jieba.lcut(txt)

counts = {}
excludes = {"",,,,,,,,,\n,,,}
for word in words:
    if word in excludes:
        continue
    else:
        counts[word] = counts.get(word, 0) +1
# 根据出现的次数进行排序
# 字典不是一个序列化组合数据类型
# 首先要对字典进行序列化
items = list(counts.items())
items.sort(key = lambda x: x[1],reverse=True)
for i in range(15):
    print(items[i])

得到的结果是:

Prefix dict has been built succesfully.
(发展, 212)
(中国, 168)
(人民, 157)
(建设, 148)
(社会主义, 146)
(坚持, 130)
(, 103)
(国家, 90)
(全面, 88)
(实现, 83)
(制度, 83)
(推进, 81)
(社会, 80)
(政治, 80)
(特色, 79)

对于十九大报告的词频分析成功。

另外:对于我们不想展现在词频分析中的词,除了使用上述的办法外,还可以使用,先把出现的次数统计出来,然后使用字典的del(counts[word])的方法删除掉。

技术图片

 

 我。。。做错了什么。。。

词频分析

标签:中华   highlight   cost   port   continue   lse   gbk   函数   数据   

原文地址:https://www.cnblogs.com/0422hao/p/11703570.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!