中文词频统计与词云生成


中文词频统计

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. 排除语法型词汇,代词、冠词、连词等停用词。

stops

tokens=[token for token in wordsls if token not in stops]

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

9. 生成词云。

import matplotlib.pyplot as plt
import jieba
import pandas as pd


f = open('luxun.txt', 'r', encoding='utf-8') #读取小说内容
lx = f.read()
f.close()

f1 =  open('def.txt', 'r', encoding='utf-8')  #读取无用中文关键词
kai = f1.read()
f1.close()

for i in [' ','
']:
    lx = lx.replace(i, '')
#jieba添加词典与关键词
jieba.add_word("鲁迅")
jieba.load_userdict('fff.txt')
kk=jieba.lcut(lx)  #用jieba切割nov


#token过滤无用关键词,洗掉
waste=kai.split('
')
tokens = [token for token in kk if token not in kai]


wordDict = {}
wordSet = set(tokens)
for w in wordSet:
    if len(w)>1:
        wordDict[w] = tokens.count(w)

##排序
wordlist = sorted(wordDict.items(), key = lambda x:x[1], reverse = True)

cut = " ".join(tokens)


##输出词频最大TOP20
for i in range(20):
    print(wordlist[i])

##把结果存放到文件里
pd.DataFrame(data=wordlist).to_csv('text.csv', encoding='UTF-8')

def文本:洗掉的无关词,排除语法型词汇,代词、冠词、连词等停用词

生成的csv:

词云:由于在经历四个小时的wordcloud的安装失败,所以无法使用wordcloud包。

使用cmd安装成功wordcloud后也不能在pycharm里面显示出来使用。

原文地址:https://www.cnblogs.com/LRZluck/p/10597003.html