中文词频统计与词云生成

本次作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2822

一、中文词频统计

1. 下载一长篇中文小说。

2. 从文件读取待分析文本。

3. 安装并使用jieba进行中文分词。

pip install jieba

import jieba

jieba.lcut(text)

4. 更新词库,加入所分析对象的专业词汇。

jieba.add_word('天罡北斗阵')  #逐个添加

jieba.load_userdict(word_dict)  #词库文本文件

参考词库下载地址:https://pinyin.sogou.com/dict/

转换代码:scel_to_text

5. 生成词频统计

6. 排序

7. 排除语法型词汇,代词、冠词、连词等停用词。 

8. 输出词频最大TOP20,把结果存放到文件里

9. 生成词云。

 

二、实现

1、本文下载了余华的《活着》,放于huozhe.txt中

2、读取文本

mytext = open('huozhe.txt',encoding='UTF-8').read()

3、安装jieba

4、更新词库,加入所分析对象的专业词汇

jieba.add_word('福贵')
jieba.add_word('家珍')
jieba.add_word('凤霞')
jieba.add_word('有庆')
jieba.add_word('二喜')
jieba.add_word('苦根')

5. 生成词频统计

'''分割出词汇'''
words = list(jieba.cut(mytext))
wordDict={}

'''统计频率次数'''
wordSet=set(words)
for w in wordSet:
    if len(w)>1:
        wordDict[w] = words.count(w)

6. 排序

'''排序'''
wordList = list(wordDict.items())
wordList.sort(key=lambda x:x[1],reverse=True)

7. 排除语法型词汇,代词、冠词、连词等停用词。

ci=['我们','知道','看到','自己','起来','什么','他们','一个','看着','没有','看看','就是','怎么','还是','这么','觉得']
for c in ci:
        mytext = mytext.replace(c, "")

8. 输出词频最大TOP20,把结果存放到文件里

'''输出top20'''
for i in range(20):
    print(wordList[i])

'''保存为csv文件'''
pd.DataFrame(data=wordList).to_csv('My story.csv',encoding='utf-8')

9. 生成词云

10、整体代码

import jieba
import pandas as pd

mytext = open('huozhe.txt',encoding='UTF-8').read()

jieba.add_word('福贵')
jieba.add_word('家珍')
jieba.add_word('凤霞')
jieba.add_word('有庆')
jieba.add_word('二喜')
jieba.add_word('苦根')

ci=['','','',' ','我们','知道','看到','自己','起来','什么','他们','一个','看着','没有','看看','就是','怎么','还是','这么','觉得']
for c in ci:
        mytext = mytext.replace(c, "")

'''分割出词汇'''
words = list(jieba.cut(mytext))
wordDict={}

'''统计频率次数'''
wordSet=set(words)
for w in wordSet:
    if len(w)>1:
        wordDict[w] = words.count(w)

'''排序'''
wordList = list(wordDict.items())
wordList.sort(key=lambda x:x[1],reverse=True)

'''输出top20'''
for i in range(20):
    print(wordList[i])

'''保存为csv文件'''
pd.DataFrame(data=wordList).to_csv('My story.csv',encoding='utf-8')

11、运行截图

原文地址:https://www.cnblogs.com/sanshuishu/p/10579594.html