Jieba库结巴中文分词做最好的Python中文分词库
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 + " ") 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(" ").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 图
怎么样?有感觉了么?
===自己整理并分享出来===
喜欢的人,请点赞、关注、评论、转发和收藏。
不想让孩子成为巨婴?父母牢记3个国学忠告,正面管教子女曾经看过一个动画短片有一个三口之家,母亲一直尽心尽力地照顾儿子的饮食起居,而在儿子的教育和成长上,父亲则无条件地给予经济支持。表面上看来,父母二人在家庭教育上分工明确有条有理。但结
孟子做人做事,不贪这3样东西的人,可称为高境界大多数人辛辛苦苦一辈子,图什么?说得庸俗一点,是为了财富地位说理想化一点,是为了实现自我价值。但正所谓命中只有如许财,丝毫不可有闪失。从某种意义上来说,每个人一生中能够拥有的东西是
不回微信的人,不可深交这3种朋友,大可不必深交在成年人的世界里,很难有真正的友谊。表面上来看,你与同事是朋友,但你们共同竞争一个升职机会试试?翻脸比谁都快日常生活中,很多人呼朋引伴,各种酒局饭局不断,但你找他们借钱试试?拒绝的
俗语母在不庆生,父在不留须,子女该不该过生日留胡须?民间有句俗语母在不庆生,父在不留须。从字面意思来看,这句俗语的意思是母亲在世的时候,不庆祝自己的生日父亲在世的时候,不留胡须。众所周知,凡是俗语,背后往往都蕴含着一定的规律或者智慧
爱显摆,招人厌遇到喜欢炫耀这3样东西的人,敬而远之炫耀,几乎是人的一种本能。荀子里就曾说过不管是君子还是小人,都喜欢光荣而厌恶耻辱,都爱好利益而讨厌祸害。正因如此,很多人希望通过炫耀来获取他人的羡慕,也有人因为他人的炫耀而嫉妒。甚
荀子越优质的父母,越懂得正面管教,让孩子更有教养有句俗语说成大事者,不拘小节。很多人都知道,这句话的意思是说成就大事业的人,不拘泥于生活的细枝末节。但大部分人不知道的是,别人可以这样评价你,而你却不能拿这句话来评价自己。也就是说
学了那么多育儿理论,不会好好说话,白学随着社会的进步与国家的高度重视,家庭教育目前已是每一个家庭的刚需,因为无论自己事业如何的成功也弥补不了教育孩子的失败。若把科学育儿的理论比做是一把手枪的话,那么能让理论落地的子弹无
孩子为什么做事喜欢拖延?这是我听过的最科学的解释每个陪孩子做作业的父母,背后都有一把辛酸泪。心理学家调查发现,拖延症不仅仅是孩子,也是现代人都会面临的问题。小未今天分享知心姐姐祝薇对孩子习惯拖延的分析,希望能对您有所启发。职场妈
以后对孩子好点吧,看完真难受无论孩子带给我们多少困难烦恼甚至挫败,无论让我们失去多少睡眠时间金钱精力,好好珍惜吧,因为,这都是上天的恩赐。3岁孩子上幼儿园了,看着他小小的坚强的背影,心中又喜悦又有点小小的心酸
孩子撒谎怎么办?聪明的家长这样引导当家长第一次听到从孩子口中说出和事实不相符的话时,都会产生这样的疑惑这么小的孩子,怎么就会说谎了呢?从哪里学的?紧接着,怒气冲冲地质问孩子,如果再碰上孩子辩解,真想揍他一顿其实,撒
年轻人,如果你没人脉,学会伪装自己,人缘越来越好不知道大家有没有发现,人脉广的人都有什么共同点?其实,人缘好的人无外乎两种一种是像唐朝诗人李白那样,学富五车才华过人,即使特立独行豪放不羁,同样也能朋友遍天下另一种就是善于伪装的人