python 爬虫-数据可视化之词云
基于爬取的数据进行分析-生成统计词云
本篇是通过生成词云来介绍相关库及相关知识,不讲解生成词云的具体操作
生成词云步骤:
1 分词处理--Jieba库
Jieba是一个用于中文分词处理的第三方库
Jieba分词的原理
- 利用中文词库,确定汉字之间的关联概率
- 汉字间概率大的组成词组,形成分词结果
- 除了分词,用户可以添加自定义词组
1.1 jieba三模式
函数 | 描述 | 示例 |
---|---|---|
jieba.lcut(s) | 精准模式:把文本精确切分,不存在冗余单词。返回类型为列表。默认为精准模式。适合于文本分析 | jieba.lcut(\'中国是一个伟大的国家\') 【结果】:[\'中国\',\'是\',\'一个\',\'伟大\',\'的\',\'国家\'] |
jieba.lcut(s,cut_all=True) | 全模式:把句子中可能的词语都扫描出来,有冗余 。返回类型为列表 | jieba.lcut(\'中国是一个伟大的国家\',cut_all=True) 【结果】:[\'中国\',\'国是\',\'一个\',\'伟大\',\'的\',\'国家\'] |
jieba.lcut_for_sear_ch(s) | 搜索引擎模式:在精确的基础上,对长词再次切分。返回类型为列表 | jieba.lcut_for_search(\'中华人民共和国是伟大的’) 【结果】: [\'中华\', \'华人\', \'人民\', \'共和\', \'共和国\', \'中华 人民共和国\', \'是\', \'伟大\', \'的\'] |
1.2 使用自定义词典
将自己自定义的词典引入jieba词库
- 提高正确率
添加词典语法如下:
python">jieba.load_userdict(dict_path) #dict_path为自定义的词典路径
自定义词典规则:
一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
- 词性表对照表网上搜索就有
- 示范:
- 自定义之前:张三 / 是 / 大 / 数据 / 开发/人员/ 也 / 是 / 云 / 计算 / 方面 / 的 / 专家 /
- 添加自定义词典之后:张三 / 是 / 大数据 / 开发/人员/ 也 / 是 / 云计算 / 方面 / 的 / 专家 /
1.3 关键字提取停用词[1]
语法如下:
jieba.analyse.set_stop_words(dict_path) # dict_path为自定义语料库的路径
2 词频统计
基本思路:
完成分词处理
定义空字典,对分词结果进行词频统计
def getWordFreq(word_list,word_count) #word_list:用于传入分词后的列表;word_count:用于传出统计后的结果
for word in word_list:
word_count[word] = word_count.get(word, 0) + 1
如果有停用词,百度、哈工大等机构提供了中文停用词表,我们可直接下载
加入停用词后的代码为:
def getWordFreq(word_list,word_count) #word_list:用于传入分词后的列表;word_count:用于传出统计后的结果
stopwords = getStopWord() #getStopWord():这是自己定义的停用词函数
for word in word_list:
if word not in stopwords:
word_count[word] = word_count.get(word, 0) + 1
return word_count
3 词云展示--PyEcharts
通俗来讲\(python+echarts=pyecharts\)。而Echarts是由百度开源的的数据可视化工具包,
3.1 PyEcharts简单使用
安装pyecharts
pip install pycharts
进入官网寻找需要使用的可视化形式
- pyecharts官网
引入包
from pyecharts.charts import WordCloud
- 因为例子我采用的可视化词云,所以引入的是词云包
C+V大法加简单修饰即可
3.2 词云生成
词云图使用的是pyecharts的add方法函数,使用方法如下(这就是官网的使用方法cv而来微改):
def add(
series_name: str, # 系列名称。用于 tooltip 的显示,legend 的图例筛选。
data_pair: Sequence, # 系列数据项。[(word1, count1), (word2, count2)]
shape: str = "circle", # 词云图轮廓。有 \'circle\', \'cardioid\', \'diamond\', \'triangle-forward\', \'triangle\', \'pentagon\', \'star\' 可选
word_gap: Numeric = 20, # 单词间隔
word_size_range=None, # 单词字体大小范围
rotate_step: Numeric = 45, # 旋转单词角度
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None, # 提示框组件配置项,参考 `series_options.TooltipOpts`
- 其中series_name,data_pair,shape是三个必传参数
演示代码:
def drawWordCloud(word_count):
wCloud =WordCloud() #实例词云
wCloud.set_global_opts(title_opts=opts.TitleOpts(title=\'高频评论词\')) #设置词云标题为“高频评论词”。set_global_opts:是pyecharts的全局配置项设置的方法。使用前要导入
wCloud.add(
series_name=\'评论\',
data_pair=list(word_count.items()),
shape=\'penagon\'
) #生成词云
wCloud.render(r\'woedCloud.html\') #创建html文档。render用法以后再讲
return wCloud
注释:
停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉的某些字或词,这些字或词即被称为Stop Words(停用词)。 ↩︎
以上是 python 爬虫-数据可视化之词云 的全部内容, 来源链接: utcz.com/z/387360.html