标签:中文 list jieba stops token 词云 import 词频 dis
作业来自: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. 排除语法型词汇,代词、冠词、连词等停用词。
stops
tokens=[token for token in wordsls if token not in stops]
8. 输出词频最大TOP20,把结果存放到文件里
9. 生成词云。
import jieba import pandas as pd from wordcloud import WordCloud import matplotlib.pyplot as plt from scipy.misc import imread def getNumber(x): y=x[1] return y file=open(r'F:\hongloumeng.txt','r',encoding='UTF-8').read() ss=",。;!?”“\n" for i in ss: file=file.replace(i,'') #添加词库 jieba.load_userdict(r'F:\scel\text\红楼梦【官方推荐】.txt') #分词 cun=jieba.lcut(file) # cun = set(jieba.lcut(file)) #读取停用词文件 fe=open(r'F:\stops_chinese.txt','r',encoding='UTF-8').read() stops=fe.split('\n') tokens=[token for token in cun if token not in stops] dis={} for j in tokens: if j not in dis: dis[j] = 1 else: dis[j] = dis[j]+1 words_list = list(dis.items()) words_list.sort(key=getNumber , reverse=True) #输出前20 for k in range(20): print(words_list[k]) #保存为csv文件 pd.DataFrame(data=words_list).to_csv(r'F:\hlm.csv',encoding='UTF-8') # 读入图片 im = imread(r'F:\66.jpg') wl_split=''.join(cun) mywc = WordCloud(background_color='pink',mask= im,margin=2).generate(wl_split) plt.imshow(mywc) plt.axis("off") #显示词云 plt.show()
top20:
词云:
标签:中文,list,jieba,stops,token,词云,import,词频,dis 来源: https://www.cnblogs.com/zpfs/p/10593947.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。