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

本文介绍了如何利用jieba进行中文分词,包括支持的分词模式、繁体分词和自定义词典功能。通过Python代码展示了从读取文本、去除停用词到生成词云的完整过程,最终绘制出《红楼梦》的词云图。文章适合初学者了解jieba分词库和词云制作。
摘要由CSDN通过智能技术生成


前言

今天用jieba和词云库做个作业,顺便记录一下,作业要求:
1.使用jieba进行分词处理
2.排除去停词
3.统计完整词频并按降序排列
4.前20词绘制词云图


一、jieba是什么?

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

支持四种分词模式:

  1. 精确模式
  2. 全模式
  3. 搜索引擎模式
  4. paddle模式

支持繁体分词

支持自定义词典

MIT 授权协议

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


二、直接上代码了

import jieba
import wordcloud


def 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:
            continue
        else:
            counts[word] = counts.get(word, 0) + 1


    fourStopwords = open(r"cn_stopwords.txt", "r", encoding='utf-8').read()          # 打开中文停词表
    StopWord = fourStopwords.split("\n")        # 以换行符为间隔符切割中文停词
    for delWord in StopWord:                   # 如果词在停词表中就删掉
        try:
            del counts[delWord]
        except:
            continue

    items = 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 + ' ' + keyWord
        count = item[1]
    createWordCloud(wordscloud)    # 生成词云

运行结果:
在这里插入图片描述
在这里插入图片描述

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

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

最后我会把我的完整文件上传到资源,有需要的也可以下载
在这里插入图片描述


总结

本文就是用jieba和词云库做的小作业噜,完结撒花~ 芜湖!唐怡佳继续加油叭!

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小唐YiJiaTang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值