当前位置:   article > 正文

利用jieba库和wordcloud库绘制词云图像_用jieba和wordcloud做词云图

用jieba和wordcloud做词云图

目录

jieba库的使用

利用jieba库获取红楼梦中人物名字的出现频次

wordcloud库的使用

 根据红楼梦中人物出现频次,制作词云图


jieba库的使用

jieba库是优秀的中文分词工具,能对文本进行分词处理

常用函数: lcut 与 cut

lcut 函数 接受一个中文文本字符串,对该文本进行分词处理,返回一个分词列表(推荐使用)

而 jieba.cut 生成的是一个生成器, generator, 可以通过 for 循环来取里面的每一个值

jieba.posseg模块

利用posseg模块分词,标注了分词的词性

词性表

利用jieba库获取红楼梦中人物名字的出现频次

  1. import jieba
  2. from jieba import posseg
  3. jieba.setLogLevel(jieba.logging.INFO) # 防止报错
  4. ignores = ['什么','一个','我们','那里','你们','如今', # 忽略指定分词
  5. '说道','知道','起来','姑娘','这里','出来',
  6. '他们','众人','自己','一面', '太太','只见',
  7. '两个','没有','怎么', '不是', '不知','这个',
  8. '听见', '这样', '进来', '东西', '告诉','就是',
  9. '咱们', '回来', '大家', '只是', '只得',
  10. '老爷', '丫头', '这些', '不敢','出去','所以',
  11. '不过', '的话', '姐姐', '不好']
  12. with open("红楼梦.txt", "r", encoding="utf-8") as f:
  13. txt = f.read()
  14. words_list = posseg.lcut(txt) # posseg 在对文本分词时,标记词语的词性,
  15. counts = {} # 利用字典统计词语出现频次
  16. for word, flag in words_list:
  17. if len(word) <= 1:
  18. continue
  19. if flag == "nr" and word not in ignores:
  20. if counts.get(word, False):
  21. counts[word] += 1
  22. else:
  23. counts[word] = 1
  24. name_list = list(counts.items()) # 将字典转化成一个键值对列表
  25. name_list.sort(key=lambda x: x[1], reverse=True) # 按照人物出现频次降序排序

wordcloud库的使用

wordcloud库是优秀的词云展示第三方库,以词语为基本单位,通过图形可视化的方式,更加直观和艺术的展示文本

常用函数:

wordcloud.WordCloud()创建一个词云对象,之后的操作基于该对象

常用参数:

font_path : 指定文体文件的路径

max_words:指定词云展示的最大单词数量,默认200

stop_words:指定词云的排除词列表,即不显示的单词列表

background_color:指定词云图片的背景颜色,默认黑色

height, width: 指定词云图片的高,宽

令w= wordcloud.WordCloud(),创建一个词云对象

w.generate(txt)    向词云对象中加载文本

w.generate_from_frequencies(dict)  接受一个包含分词出现次数的字典(string :float),根据分词出现的次数构建词云对象(返回一个词云对象)

w.to_file()  接受一个文件路径,根据词云对象创建一个图像文件 (.png格式或.jpg格式)

 根据红楼梦中人物出现频次,制作词云图

  1. from wordcloud import WordCloud
  2. def create_wordcloud():
  3. freq = {name:float(cnt) for name, cnt in name_list} # 将列表转化成字典
  4. wc = WordCloud(
  5. font_path="SimHei.ttf", # 文体文件路径
  6. max_words=100,
  7. width=2000,
  8. height=1200,
  9. )
  10. word_cloud = wc.generate_from_frequencies(freq) # 根据词语出现频次创建新的词云对象
  11. word_cloud.to_file("wordcloud.jpg")
  12. create_wordcloud()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/591702
推荐阅读
相关标签
  

闽ICP备14008679号