文档章节

利用Python显示词云(分词技术)

源远流长-泉
 源远流长-泉
发布于 2017/08/17 16:26
字数 719
阅读 57
收藏 0

偶然在网上看到词云,感觉挺有趣的,于是自己动手写了个程序来显示。

根据百度百科: “词云”这个概念由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon)于近日提出。戈登做过编辑、记者,曾担任迈阿密先驱报(Miami Herald)新媒体版的主任。他一直很关注网络内容发布的最新形式——即那些只有互联网可以采用而报纸、广播、电视等其它媒体都望尘莫及的传播方式。通常,这些最新的、最适合网络的传播方式,也是最好的传播方式。 因此,“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。

不过安装包比较麻烦,内网网速慢的要死,爬了半天都爬不出来,后来查找资料,说国内服务器的镜像会比较快:

pip download matplotlib  -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install matplotlib  -i https://pypi.tuna.tsinghua.edu.cn/simple

开发使用python 3.6,用一个文本把要分析的数据装进去,代码是转的,做了个小改动,感谢原作者。

分词工具采用结巴分词 https://www.oschina.net/p/jieba

 

#coding:utf-8
#用于统计词频并用词云显示 
#import warnings
#warnings.filterwarnings("ignore")
import jieba    #分词包
import numpy    #numpy计算包
import codecs   #codecs提供的open方法来指定打开的文件的语言编码,它会在读取的时候自动转换为内部unicode
import re
import pandas as pd  
import matplotlib.pyplot as plt
from urllib import request
from bs4 import BeautifulSoup as bs
#%matplotlib inline
 
import matplotlib
matplotlib.rcParams['figure.figsize'] = (30.0, 15.0)
from wordcloud import WordCloud#词云包

 
def main():
	f = open('r1.txt','r')
	comments = f.read().strip()
	f.close()
	#使用正则表达式去除标点符号
	pattern = re.compile(r'[\u4e00-\u9fa5]+')
	filterdata = re.findall(pattern, comments)
	cleaned_comments = ''.join(filterdata)

	#使用结巴分词进行中文分词
	segment = jieba.lcut(cleaned_comments)
	words_df=pd.DataFrame({'segment':segment})

	#去掉停用词
	stopwords=pd.read_csv("stopwords.txt",index_col=False,quoting=3,sep="\t",names=['stopword'], encoding='utf-8')#quoting=3全不引用
	words_df=words_df[~words_df.segment.isin(stopwords.stopword)]

	#统计词频
	words_stat=words_df.groupby(by=['segment'])['segment'].agg({'计数':numpy.size})
	words_stat=words_stat.reset_index().sort_values(by=["计数"],ascending=False)

	#用词云进行显示
	wordcloud=WordCloud(font_path="simhei.ttf",background_color="white",max_font_size=100)
	word_frequence = {x[0]:x[1] for x in words_stat.head(1000).values}
	word_frequence_list = []
	# for key in word_frequence:
		# temp = (key,word_frequence[key])
		# word_frequence_list.append(temp)
	wordcloud=wordcloud.fit_words(word_frequence)
	plt.imshow(wordcloud)
	plt.show()
	# 保存图片
	wordcloud.to_file('工单.png')
 
#主函数
main()

结果如下:

 

 

 

 

 

© 著作权归作者所有

源远流长-泉
粉丝 0
博文 25
码字总数 3661
作品 0
私信 提问
【原创】python词云分析陈粒和赵雷

未经同意禁止转载,否则通过维权骑士追究 【完整源代码请点击 此处 留言以获取,可以顺便给颗Star😄】 记录一个练习小项目,训练一下python分析技能。用到的知识有“爬虫”、“jieba分词”...

_SoLo_
2018/06/30
0
0
Python文本挖掘-PDF和脚本见附件

课程要点 •分词以及词权重 •文本分类算法 •文本检索和LDA 常国珍《Python数据科学:全栈技术详解》 3 课程大纲 1)文本挖掘介绍 2)中文分词 3)文本特征提取与相关性的度量 4)文本分类 5)主...

Ben_Chang
2018/05/01
0
0
我用爬虫爬取了“腾讯云技术社区“所有的文章,看看我得到了什么

作者:应兆康 我用爬虫爬取了“腾讯云技术社区”所有的文章,看看我得到了什么 前言 闲来周末练习下爬虫 就拿腾讯云技术社区来开刀, 哈, 经典皮卡丘开头 image 这次我通过利用Python爬虫 ...

腾讯云社区
2017/11/24
0
0
利用Python实现wiki中文语料的word2vec模型构建

本实例主要介绍的是选取wiki中文语料,并使用python完成Word2vec模型构建的实践过程,不包含原理部分,旨在一步一步的了解自然语言处理的基本方法和步骤。文章主要包含了开发环境准备、数据的...

atLee
2017/05/04
0
0
入门系列之:Python3 如何使用NLTK处理语言数据

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由冰糖葫芦 发表于云+社区专栏 介绍 文本已成为最常见的表达形式之一。我们每天都要发送电子邮件、短信、推文、更新状态。因...

腾讯云加社区
2018/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
13
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
10
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
12
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部