python文本词频统计是字典吗_Python文本挖掘: 词频统计,词云图
在中文的文本挖掘中,对海量文本进行准确分词是其中至关重要一步。当前的Python语言下存在多种开源文本分析包,其中jieba这个包能够提供相对高效的分词方案。
结合jieba代码和一些相关资料,基本得知jieba是基于Trie树结构实现的高效词图扫描,生成句子中汉字所有可能成词情况的有向无环图(DAG)。 结巴分词中自带了一个叫做dict.txt的词典,里面包含词,词条出现次数(基于人民日报等语料库),词性。结巴会根据词典对分词句子切分,生成DAG,与此同时将每个词的出现次数转换成频率。 该频率会根据动态规划查找最大路径,找出基于词频的切分组合。
对于不存在与词典中的词,结巴则采用了基于汉字成词能力的HMM模型,使用Viterbi算法进行分词。也就是说如果dict.txt词典中没有任何词,结巴也能够根据HMM模型分词。下面写一个demo测试下结巴的分词能力。
测试文本数据采用了一篇翻译过来的医学论文《Importance of Being Adaptable Developing Guidelines for Lung Nodule Evaluation》.
结巴的提取关键词API非常易用, 这里我们提取测试文本中出现频率前100的高频词汇。 并将中文编码转为unicode.
content = open("testing.txt","rb").read()
# tags extraction based on TF-IDF algorithm
tags = jieba.analyse.extract_tags(content, topK=100, withWeight=False)
text =" ".join(tags)
text = unicode(text)
在变量text中存储了我们需要的关键词结果。
接下来我们使用python中wordcloud这个库来快速生成一个词云图。由于wordcloud并不包含中文字体。对于显示中文分词,一定要对word cloud指定中文字体位置,否则最后词云图的中文都是方框乱码。
wc = WordCloud(font_path='simsun.ttc',
background_color="white", max_words=300, mask=trump_coloring,
max_font_size=40, random_state=42)
# generate word cloud
wc.generate(text)
词云图结果
wordcloud2.png
从词云图结果上大概可以看出,关键性高频名词基本被容纳进去,但是有一些无意义的高频介词也被包括进去。后期在提高模型正确率时,一方面需要扩充语义库,另一方面要对词性进行定义,将某些高频但无意义的词进行过滤。
全文代码:
# -*- encoding:utf-8 -*-
import jieba.analyse
from os import path
from scipy.misc import imread
import matplotlib as mpl
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
if __name__ == "__main__":
mpl.rcParams['font.sans-serif'] = ['FangSong']
#mpl.rcParams['axes.unicode_minus'] = False
content = open("testing.txt","rb").read()
# tags extraction based on TF-IDF algorithm
tags = jieba.analyse.extract_tags(content, topK=100, withWeight=False)
text =" ".join(tags)
text = unicode(text)
# read the mask
d = path.dirname(__file__)
trump_coloring = imread(path.join(d, "Trump.jpg"))
wc = WordCloud(font_path='simsun.ttc',
background_color="white", max_words=300, mask=trump_coloring,
max_font_size=40, random_state=42)
# generate word cloud
wc.generate(text)
# generate color from image
image_colors = ImageColorGenerator(trump_coloring)
plt.imshow(wc)
plt.axis("off")
plt.show()
参考资料:
python文本词频统计是字典吗_Python文本挖掘: 词频统计,词云图相关推荐
- python中采用字典建立统,Python中使用Counter进行字典创建以及key数量统计的方法...
这里的Counter是指collections中的Counter,通过Counter可以实现字典的创建以及字典key出现频次的统计.然而,使用的时候还是有一点需要注意的小事项. 使用Counter创建 ...
- python 引入同一路径的类_Python实现Wordcloud生成词云图的示例
wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概. 首先贴出一张词云图(以哈利波特小说为例): 在生成词云图之前 ...
- python词云图实验报告_Python实现Wordcloud生成词云图的示例
wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概. 首先贴出一张词云图(以哈利波特小说为例): 在生成词云图之前 ...
- python统计汉字个数是_Python中文词频统计
今天看到的一个统计,统计的金庸小说里面的高频词语.想着看了一周python,试试看能不能统计. 网上找的代码,调整顺序拼接了一下,分词库是结巴分词. 解决了python2.7中字典显示中文乱码的问题 ...
- python统计元音字母个数_python正则表达式如何统计元音?
在我们最先接触语文的时候,就是从读音字母开始的,有些小伙伴还记得我们的元音和辅音吧.小编当时学的时候也不是很轻松,要是问现在具体的元音和辅音的个数还真答不上来,不过小编有办法用python中的正则表达 ...
- python graphql query返回一组字典数据_Python的sqlalchemy使用原生sql查询如何返回字典形式的数组?...
首先使用一个变量接收你以上的查询结果.这个查询结果是一个list,在这个list中包含着一个或多个tuple,其实这并不是标准的Python tuple,而是一个特殊的类型"",这 ...
- python统计文章单词次数_Python实现的统计文章单词次数功能示例
本文实例讲述了Python实现的统计文章单词次数功能.分享给大家供大家参考,具体如下: 题目是这样的:你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认 ...
- python读取配置文件并添加字典中_Python如何使用ConfigParser读取配置文件
在项目过程中,需要设置各种IP和端口号信息等,如果每次都在源程序中更改会很麻烦(因为每次都要重启项目重新加载配置信息),因此将需要修改的参数写在配置文件(或者数据库)中,每次只需修改配置文件,就可以实 ...
- python文本框与数据库的关联_Python 基于python+mysql浅谈redis缓存设计与数据库关联数据处理...
基于python+mysql浅谈redis缓存设计与数据库关联数据处理 by:授客 QQ:1033553122 测试环境 redis-3.0.7 CentOS 6.5-x86_64 python 3. ...
最新文章
- P2P之UDP穿透NAT的原理
- 设计模式之Composite
- 优秀交互设计的 UI 原则
- mooc c语言测验答案,MOOC-SPOC测试题(部分答案)(至数组一章)-C语言-宣城校区2016年...
- 未在本地计算机上注册Microsoft.Jet.OLEDB.4.0解决方案
- python启动http服务_Python命令开启http.server服务器
- 安卓开发语言php,go语言支持安卓开发吗
- 把数组变换成字符串(8)
- 老王的常用资源下载(全部附CSDN资源链接 12月19日 更新RetopoFlow3至3.00.2)
- 【数据采集】-目前比较流行的几种数据采集方式
- Hive 建表语句详解
- matlab计算惯性矩,动力总成主惯性矩计算及扭矩轴(TRA)位置确定
- win10 计算机网络密码,详细教你Win10怎么查看无线网络密码
- 如何用vm虚拟机当服务器,vm虚拟机如何做云服务器
- 计算机如何设置光驱启动,怎样将电脑设置成从光驱启动
- MIKE 21 教程 1.7 网格生成过程中的常见报错与问题
- 抖音视频突然播放量少了很多,抖音限流怎么查看?
- vim: command not found 绝妙解决方案
- LaTeX 插入高亮代码(LaTex、Python、Java、C、C++等主流语言都支持)
- Hprose 是轻量级跨语言跨平台的面向对象的高性能远程动态通讯中间件
热门文章
- 汇编对sp指针进行修改_从汇编理解函数调用的过程
- 一名合格的电子工程师,不能逃避的“梗”
- 35岁电子工程师的艰难抉择
- 《c语言从入门到精通》看书笔记——第1章 C语言的概述
- 惠普战66怎么用u盘进入系统_惠普笔记本怎么用u盘启动装系统,空间也要大所以超来超受欢迎!...
- android实现重复动画,android – 多次重复AnimatorSet动画
- python多线程共享全局变量_Python多线程-共享全局变量
- rosserial_java_ros系统下通过pyserial模块实现串口通讯(Python)
- oracle导出一个表数据库,excel怎么导出多个表格数据库数据-一个excel表格中有多个sheet,如何将其导入oracle数......
- ei会议论文录用但不参加会议_会议论文投稿可以不参会吗