失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 对中国四大名著--红楼梦 使用jieba进行分词处理 排除去停词 统计完整词频并按降序

对中国四大名著--红楼梦 使用jieba进行分词处理 排除去停词 统计完整词频并按降序

时间:2023-03-17 20:04:20

相关推荐

对中国四大名著--红楼梦 使用jieba进行分词处理 排除去停词 统计完整词频并按降序

文章目录

前言一、jieba是什么?支持四种分词模式:支持繁体分词支持自定义词典MIT 授权协议二、直接上代码了总结

前言

今天用jieba和词云库做个作业,顺便记录一下,作业要求:

1.使用jieba进行分词处理

2.排除去停词

3.统计完整词频并按降序排列

4.前20词绘制词云图

一、jieba是什么?

jieba 是目前表现较为不错的 Python 中文分词组件,并且有:

支持四种分词模式:

精确模式全模式搜索引擎模式paddle模式

支持繁体分词

支持自定义词典

MIT 授权协议

所以它在中文分词这方面还是很牛的,大家需要就自己看看叭

二、直接上代码了

import jiebaimport wordclouddef takeSecond(elem):return elem[1]def createWordCloud(text): #生成词云函数w=wordcloud.WordCloud(font_path="STZHONGS.TTF", width=1000, height=500, background_color="white")w.generate(text)w.to_file("红楼梦词云图.jpg")if __name__=='__main__':path = r"红楼梦.txt"file = open(path, "r", encoding="utf-8")text = file.read()print(text)file.close()words = jieba.lcut(text)# jieba分词counts = {}for word in words: # 如果词长度不为1就留起来 (不是单个的字就留起来)if len(word) == 1:continueelse:counts[word] = counts.get(word, 0) + 1fourStopwords = open(r"cn_stopwords.txt", "r", encoding='utf-8').read()# 打开中文停词表StopWord = fourStopwords.split("\n") # 以换行符为间隔符切割中文停词for delWord in StopWord: # 如果词在停词表中就删掉try:del counts[delWord]except:continueitems = list(counts.items())items.sort(key=takeSecond, reverse=True) # 保留下来的词按降序排列print(items)wordscloud = ""# 存放要做的词云for i in range(20): # 前20个词 存入词云item = items[i]keyWord = item[0]wordscloud = wordscloud + ' ' + keyWordcount = item[1]createWordCloud(wordscloud) # 生成词云

运行结果:

注1: 中文停词表我是直接在github上下的 链接放这了中文停词表点进去就是的

注2:创建词云中字体的位置 在电脑的C:\Windows\Fonts自己去复制一个过来就行了

最后我会把我的完整文件上传到资源,有需要的也可以下载

总结

完结撒花~ 唐怡佳继续加油叭!

对中国四大名著--红楼梦 使用jieba进行分词处理 排除去停词 统计完整词频并按降序排列 前20词绘制词云图

如果觉得《对中国四大名著--红楼梦 使用jieba进行分词处理 排除去停词 统计完整词频并按降序》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。