python的jieba库怎么安装(Jieba库结巴)
python的jieba库怎么安装(Jieba库结巴)2.1 官网:=====1.3 写入和读取txt数据的方法复习。此刻不要jieba=结巴2 准备:
1 说明:
=====
1.1 Jieba库,就是“结巴”中文分词:做最好的 Python 中文分词组件。
1.2 Jieba库的基本介绍,数据可视化wordcloud词云图和pyecharts柱状图。
1.3 写入和读取txt数据的方法复习。
此刻不要jieba=结巴
2 准备:
=====
2.1 官网:
https://github.com/fxsjy/jieba
https://pypi.org/project/jieba/
2.2 安装:
pip install jieba
#本机安装
sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple jieba
2.3 环境:
华为笔记本电脑、深度deepin-linux操作系统、谷歌浏览器、python3.8和微软vscode编辑器。
===举例===
3 关键词提取:
==========
3.1 代码:
import jieba.analyse
#张爱玲经典散文欣赏:爱
#注意,复习字符串知识
#如果是一行字符串,那么单引号、双引号、三引号均可以
#如果多行显示,后面需要加\,那么只能双引号和三引号,单引号不行。
#同时,等号后面必须紧跟一个前引号
test_text = '''有个村庄的小康之家的女孩子,生得美,有许多人来做媒,但都没有说成。那年她不过十五六岁吧,\
是春天的晚上,她立在后门口,手扶着桃树。她记得她穿的是一件月白的衫子。对门住的年轻人同她见过面,\
可是从来没有打过招呼的,他走了过来。离得不远,站定了,轻轻的说了一声:“噢,你也在这里吗?\
”她没有说什么,他也没有再说什么,站了一会,各自走开了。就这样就完了。\
后来这女人被亲眷拐子卖到他乡外县去作妻,又几次三番地被转卖,经过无数的惊险的风波,\
老了的时候她还记得从前那一回事,常常说起,在那春天的晚上,在后门口的桃树下,那年轻人。\
于千万人之中遇见你所遇见的人,于千万年之中,时间的无涯的荒野里,没有早一步,也没有晚一步,\
刚巧赶上了,那也没有别的话可说,惟有轻轻地问一声:“噢,你也在这里吗?'''
#获取关键词,topK=3代表提取前3个
tags = jieba.analyse.extract_tags(test_text topK=3)
#print(u"关键词:")
print("关键词:") #python3可以不用加u了
print(" ".join(tags))
3.2 结果:
4 词性提取:
========
4.1 代码:
import jieba.analyse
test_text = '''有个村庄的小康之家的女孩子,生得美,有许多人来做媒,但都没有说成。那年她不过十五六岁吧,\
是春天的晚上,她立在后门口,手扶着桃树。她记得她穿的是一件月白的衫子。对门住的年轻人同她见过面,\
可是从来没有打过招呼的,他走了过来。离得不远,站定了,轻轻的说了一声:“噢,你也在这里吗?\
”她没有说什么,他也没有再说什么,站了一会,各自走开了。就这样就完了。\
后来这女人被亲眷拐子卖到他乡外县去作妻,又几次三番地被转卖,经过无数的惊险的风波,\
老了的时候她还记得从前那一回事,常常说起,在那春天的晚上,在后门口的桃树下,那年轻人。\
于千万人之中遇见你所遇见的人,于千万年之中,时间的无涯的荒野里,没有早一步,也没有晚一步,\
刚巧赶上了,那也没有别的话可说,惟有轻轻地问一声:“噢,你也在这里吗?'''
result = " ".join(jieba.analyse.textrank(test_text topK=4 withWeight=False allowPOS=('ns' 'n' 'vn' 'v')))
print("关键词:")
print(result)
4.2 图:
===高级版===
5 提取关键词并生成词云图:
===============
5.1 代码:
import jieba.analyse
from wordcloud import WordCloud
import matplotlib.pyplot as plt
#张爱玲经典散文欣赏:爱
test_text = '''
有个村庄的小康之家的女孩子,生得美,有许多人来做媒,但都没有说成。那年她不过十五六岁吧,\
是春天的晚上,她立在后门口,手扶着桃树。她记得她穿的是一件月白的衫子。对门住的年轻人同她见过面,\
可是从来没有打过招呼的,他走了过来。离得不远,站定了,轻轻的说了一声:“噢,你也在这里吗?\
”她没有说什么,他也没有再说什么,站了一会,各自走开了。就这样就完了。\
后来这女人被亲眷拐子卖到他乡外县去作妻,又几次三番地被转卖,经过无数的惊险的风波,\
老了的时候她还记得从前那一回事,常常说起,在那春天的晚上,在后门口的桃树下,那年轻人。\
于千万人之中遇见你所遇见的人,于千万年之中,时间的无涯的荒野里,没有早一步,也没有晚一步,\
刚巧赶上了,那也没有别的话可说,惟有轻轻地问一声:“噢,你也在这里吗?"
'''
#TextRank关键词提取
#keywords_textrank = jieba.analyse.textrank(test_text topK=10 withWeight=True)
#print(keywords_textrank)
#TF-IDF关键词提取
#基于 TF-IDF(term frequency–inverse document frequency) 算法的关键词抽取
keywords_tfidf = jieba.analyse.extract_tags(test_text topK=10 withWeight=True)
#列表里面有元组
print(keywords_tfidf)
#提取关键词及权重
freq = {i[0]: i[1] for i in keywords_tfidf}
#转换为字典的形式存入freq
#hwfs华文仿宋字体,用来显示中文的,放在根目录下,可自定义
wc = WordCloud( font_path='hwfs.ttf' width=800 height=600 mode='RGBA' background_color='white').generate_from_frequencies(freq)
# 显示词云
plt.imshow(wc interpolation='bilinear')
plt.axis('off')
plt.show()
5.2 图:
===感觉没什么意思===
再高级一点,实战。
6 金庸的《神雕侠侣》进行分析:
========================
6.1 金庸的《神雕侠侣》TXT版来源于网络上的免费版:
http://www.zzs5.com/txt/3779.html#downlink
6.2 解压发现乱码,因为本机是linux操作系统。
解决办法:将解压的txt改名为:sdxl.txt放在指定文件夹下
终端执行:sdxln.txt为新的txt。
iconv -f gb18030 -t utf8 sdxl.txt -o sdxln.txt
操作方法如下gif图:
6.3 读取《神雕侠侣》txt并对人物角色提取rwjstq.txt,代码:
import jieba
import jieba.posseg as psg
#转码后的神雕侠侣sdxln.txt
txt = open("/home/xgj/Desktop/jieba/sdxln.txt" "r" encoding="utf-8").read()
words = psg.cut(txt) # 使用精确模式对文本进行分词
counts = {} # 通过键值对的形式存储词语及其出现的次数
for word in words:
if len(word.word) == 1: # 单个词语不计算在内
continue
else:
if word.flag == "nr": # 仅统计词性为nr的词语,nr为人名的词性提取
counts[word] = counts.get(word 0) 1# 遍历所有词语,每出现一次其对应的值加 1
items = list(counts.items())
items.sort(key=lambda x: x[1] reverse=True) # 根据词语出现的次数进行从大到小排序
#写入新的txt文件中
#人物角色提取rwjstq.txt
fi = open("/home/xgj/Desktop/jieba/rwjstq.txt" "w" encoding="utf-8")
for i in range(len(items)):
word pos = items[i][0]
count = items[i][1]
a = word " " str(count)
fi.write(a "\n")
fi.close()
6.4 pyecharts做可视化柱状图代码:
#如何读取txt,并可视化作图
#第一步:txt数据读取
#定义一个空的列表result,用来存放读取txt资料
result=[]
with open('/home/xgj/Desktop/jieba/rwjstq.txt' 'r') as f:
for line in f:
result.append(list(line.strip('\n').split(' ')))
#第二步:数据删减和分类提取
#定义三个空列表
f10list nameList valueList=[] [] []
#f10list nameList valueList=[] #注意这种是不行的
#提取result的前10组数据
for f10list in result[:10]:
print(f10list) #提示元组
#读取元组的0,存入name列表中
nameList.append(f10list[0])
#读取元组的数值,存入数值列表中
valueList.append(f10list[1])
#第三步:pyecharts可视化柱状图
#注意是:最新版本的pyecharts
from pyecharts.charts import Bar
#from pyecharts import options as opts
# V1 版本开始支持链式调用
bar = (
Bar()
.add_xaxis(nameList) #x坐标轴
.add_yaxis("人名出现次数" valueList) #y坐标轴
#图表的标题名,可以不要,那么上面的模块导入也就可以不要
#.set_global_opts(title_opts=opts.TitleOpts(title="人名词频统计柱状图"))
)
#指定位置保存
bar.render('/home/xgj/Desktop/jieba/sdxl_bar.html') #可以加路径,并给命名,也可默认为py文件所在的文件夹
6.5 图
怎么样?有感觉了么?
===自己整理并分享出来===
喜欢的人,请点赞、关注、评论、转发和收藏。