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

文章目录

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


前言

今天用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)    # 生成词云

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

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

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

最后我会把我的完整文件上传到资源,有需要的也可以下载
对中国四大名著--红楼梦 使用jieba进行分词处理 排除去停词 统计完整词频并按降序排列 前20词绘制词云图_第3张图片


总结

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

你可能感兴趣的:(python,python,开发语言)