2.5.jieba分词工具、Jieba安装、全模式/精确模式、添加自定义词典、关键词抽取、词性标注、词云展示

2.5.jieba分词工具
2.5.1.Jieba安装
2.5.2.全模式/精确模式
2.5.3.添加自定义词典
2.5.4.关键词抽取
2.5.5.词性标注
2.5.6.词云展示

2.5.jieba分词工具

2.5.1.Jieba安装

(base) C:\Users\toto>pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting jieba
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/c6/cb/18eeb235f833b726522d7ebed54f2278ce28ba9438e3135ab0278d9792a2/jieba-0.42.1.tar.gz (19.2 MB)
     |████████████████████████████████| 19.2 MB 1.6 MB/s
Building wheels for collected packages: jieba
  Building wheel for jieba (setup.py) ... done
  Created wheel for jieba: filename=jieba-0.42.1-py3-none-any.whl size=19314482 sha256=7b583750a861096d11049bab33ec1efe91b8a89be8df8ae53e1540070c50e6ca
  Stored in directory: c:\users\toto\appdata\local\pip\cache\wheels\f3\30\86\64b88bf0241f0132806c61b1e2686b44f1327bfc5642f9d77d
Successfully built jieba
Installing collected packages: jieba
Successfully installed jieba-0.42.1

(base) C:\Users\toto>

2.5.2.全模式/精确模式

import jieba

seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("全模式:" + "/".join(seg_list))     # 全模式
'''
输出结果:
全模式:我/来到/北京/清华/清华大学/华大/大学
'''

seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("精确模式:" + "/".join(seg_list))  # 精确模式
"""
输出结果:
精确模式:我/来到/北京/清华大学
"""

seg_list = jieba.cut("他来到了网易杭研大厦")    # 默认是精确模式
print(",".join(seg_list))
'''
输出结果:
他,来到,了,网易,杭研,大厦
'''

2.5.3.添加自定义词典

import jieba

text = "故宫的著名景点包括乾清宫、太和殿和黄琉璃瓦等"

# 全模式
seg_list = jieba.cut(text, cut_all=True)
print(u"[全模式]:", "/".join(seg_list))
'''
输出结果:
[全模式]: 故宫/的/著名/著名景点/景点/包括/乾/清宫/、/太和/太和殿/和/黄/琉璃/琉璃瓦/等
'''

# 精确模式
seg_list = jieba.cut(text, cut_all=False)
print(u"[精确模式]:","/".join(seg_list))
'''
输出结果:
[精确模式]: 故宫/的/著名景点/包括/乾/清宫/、/太和殿/和/黄/琉璃瓦/等
'''

从上面可以看到的是”乾清宫”被分开了
下面开始添加自定义词典

import jieba

# mydict.txt为自定义词典,mydict.txt的文件格式需要是UTF-8,在保存文件的时候,设置文件格式为UTF-8
jieba.load_userdict("./data/mydict.txt")

# 也可以用jieba.add_word("乾清宫")

text = "故宫的著名景点包括乾清宫、太和殿和黄琉璃瓦等"

# 全模式
seg_list = jieba.cut(text, cut_all=True)
print(u"[全模式]:","/".join(seg_list))
'''
输出结果:
[全模式]: 故宫/的/著名/著名景点/景点/包括/乾清宫/清宫/、/太和/太和殿/和/黄琉璃瓦/琉璃/琉璃瓦/等
'''


# 精确模式
seg_list = jieba.cut(text, cut_all=False)
print(u"[精确模式]", "/".join(seg_list))
'''
输出结果:
[精确模式] 故宫/的/著名景点/包括/乾清宫/、/太和殿/和/黄琉璃瓦/等
'''

在这里插入图片描述

2.5.4.关键词抽取

import jieba
import jieba.analyse

# mydict.txt为自定义词典,mydict.txt的文件格式需要是UTF-8,在保存文件的时候,设置文件格式为UTF-8
jieba.load_userdict("./data/mydict.txt")

# 也可以用jieba.add_word("乾清宫")

text = "故宫的著名景点包括乾清宫、太和殿和黄琉璃瓦等"

# 精确模式
seg_list = jieba.cut(text, cut_all=False)
print(u"[精确模式]", "/".join(seg_list))
'''
[精确模式] 故宫/的/著名景点/包括/乾清宫/、/太和殿/和/黄琉璃瓦/等
'''

# 获取关键词
tags = jieba.analyse.extract_tags(text, topK=5)
print(u"关键词:")
print(" ".join(tags))
"""
关键词:
著名景点 乾清宫 黄琉璃瓦 太和殿 故宫
"""

tags = jieba.analyse.extract_tags(text, topK=5, withWeight=True)
for word, weight in tags:
    print(word, weight)
'''
著名景点 2.3167796086666668
乾清宫 1.9924612504833332
黄琉璃瓦 1.9924612504833332
太和殿 1.6938346722833335
故宫 1.5411195503033335
'''

2.5.5.词性标注

import jieba
import jieba.posseg as pseg

words = pseg.cut("我爱北京天安门")
for word, flag in words:
    print("%s %s" % (word, flag))

'''
我 r
爱 v
北京 ns
天安门 ns
'''

2.5.6.词云展示

数据准备:
在这里插入图片描述
在这里插入图片描述

代码:

import jieba
# pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple
from wordcloud import WordCloud

# scipy.misc中已经没有imread了,用imageio来替代
#from scipy.misc import imread
# 可以使用:
#import imageio
# Img = imageio.imread(img)
from imageio import imread


from collections import Counter
import matplotlib.pyplot as plt

data = {}

text_file = open('./data/19Congress.txt', 'r', encoding='utf-8')
text = text_file.read()
with open('./data/stopwords.txt', encoding='utf-8') as file:
    stopwords = {line.strip() for line in file}

seg_list = jieba.cut(text, cut_all=False)
for word in seg_list:
    if len(word) >= 2:
        if not data.__contains__(word):
            data[word] = 0
        data[word] += 1
# print(data)

my_wordcloud = WordCloud(
    background_color='white',  # 设置背景颜色
    max_words=400,  # 设置最大实现的字数
    font_path=r'./data/SimHei.ttf',  # 设置字体格式,如不设置显示不了中文
    mask=imread('./data/mapofChina.jpg'),  # 指定在什么图片上画
    width=1000,
    height=1000,
    stopwords=stopwords
).generate_from_frequencies(data)

plt.figure(figsize=(18, 16))
plt.imshow(my_wordcloud)
plt.axis('off')
plt.show()  # 展示词云
my_wordcloud.to_file('result.jpg')
text_file.close()

显示结果:
在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涂作权的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值