python 爬虫-数据可视化之词云

python

基于爬取的数据进行分析-生成统计词云

  • 本篇是通过生成词云来介绍相关库及相关知识,不讲解生成词云的具体操作

  • 生成词云步骤:

1 分词处理--Jieba库

Jieba是一个用于中文分词处理的第三方库

  • Jieba分词的原理

    1. 利用中文词库,确定汉字之间的关联概率
    2. 汉字间概率大的组成词组,形成分词结果

      • 除了分词,用户可以添加自定义词组

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 词频统计

  • 基本思路:

    1. 完成分词处理

    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


注释:


  1. 停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉的某些字或词,这些字或词即被称为Stop Words(停用词)。 ↩︎

以上是 python 爬虫-数据可视化之词云 的全部内容, 来源链接: utcz.com/z/387360.html

回到顶部