当前位置:   article > 正文

nlp入门之jieba分词器

jieba分词器

源码请到:自然语言处理练习: 学习自然语言处理时候写的一些代码 (gitee.com)

说到中文分词,就不得不提jieba分词器,虽然已经很久没有更新,但是依然很好用

5.1 jieba分词器安装

jieba分词器安装十分方便,输入命令就可安装成功

pip install jieba

5.2 分词工具

jieba分词器提供了中文的分词工具,并且有精确模式和全模式两种模式,默认是精确模式

示例:

  1. # 分词工具
  2. seg_list = jieba.cut('我来到北京清华大学', cut_all=True)
  3. print('全模式:' + '/'.join(seg_list))
  4. seg_list = jieba.cut('我来到北京清华大学', cut_all=False)
  5. print('精确模式:' + '/'.join(seg_list))
  6. seg_list = jieba.cut('他来到网易杭研究大厦')
  7. print(','.join(seg_list))

5.3 添加自定义词典

jieba还可以添加自定义的词典,使分词更精准

示例:

  1. # 添加自定义词典
  2. text = '故宫的著名景点包括乾清宫、太和殿和黄琉璃瓦等'
  3. seg_list = jieba.cut(text, cut_all=True)
  4. print('全模式:' + '/'.join(seg_list))
  5. seg_list = jieba.cut(text, cut_all=False)
  6. print('精确模式:' + '/'.join(seg_list))

默认词典中不识别乾清宫和黄琉璃瓦,现在添加词典加入这两个词

  1. jieba.load_userdict("./data/mydict.txt")
  2. # jieba.add_word("乾清宫")
  3. text = '故宫的著名景点包括乾清宫、太和殿和黄琉璃瓦等'
  4. seg_list = jieba.cut(text, cut_all=True)
  5. print('全模式:' + '/'.join(seg_list))
  6. seg_list = jieba.cut(text, cut_all=False)
  7. print('精确模式:' + '/'.join(seg_list))

5.4 关键字提取

根据词典中词语的频率,可以提取关键词

示例:

  1. # 关键字抽取
  2. seg_list = jieba.cut(text, cut_all=False)
  3. print(u"分词结果:")
  4. print('/'.join(seg_list))
  5. tags = jieba.analyse.extract_tags(text, topK=5)
  6. print(u"关键字:")
  7. print(' '.join(tags))
  8. tags = jieba.analyse.extract_tags(text, topK=5, withWeight=True)
  9. for word, weight in tags:
  10. print(word, weight)

 5.5 词性标注

jieba也可以标注词性

示例:

  1. # 词性标注
  2. words = pseg.cut('我爱北京天安门')
  3. for word, flag in words:
  4. print('%s %s' % (word, flag))

5.6 词云展示

利用xxx的发言稿作为语料,进行分词并且统计频率最后画在一张图上体现出来关键字

示例

  1. # 词云展示
  2. data = {}
  3. with open('./data/19Congress.txt', 'r', encoding='utf-8') as f:
  4. text = f.read()
  5. with open('./data/stopwords.txt', encoding='utf-8') as file:
  6. stopwords = [line.strip() for line in file]
  7. seg_list = jieba.cut(text, cut_all=False)
  8. for word in seg_list:
  9. if len(word) >= 2:
  10. if not data.__contains__(word):
  11. data[word] = 0
  12. data[word] += 1
  13. print(data)
  14. my_wordclod = WordCloud(
  15. background_color='white', # 背景颜色
  16. max_words=400, # 设置最大实现的字数
  17. font_path=r'./data/SimHei.ttf', # 设置字体格式,不设置显示不了中文
  18. mask=imread('./data/mapofChina.jpg'), # 指定在什么图片上画
  19. width=1000,
  20. height=1000,
  21. stopwords=set(stopwords)
  22. ).generate_from_frequencies(data)
  23. plt.figure(figsize=(18,16))
  24. plt.imshow(my_wordclod)
  25. plt.axis('off')
  26. plt.show()
  27. my_wordclod.to_file('result.jpg')

 其中原图是一张纯色的中国地图

 运行后的结果

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

闽ICP备14008679号