中文词频统计
- 下载一中文长篇小说,并转换成UTF-8编码。
- 使用jieba库,进行中文词频统计,输出TOP20的词及出现次数。
- 排除一些无意义词、合并同一词。
- 对词频统计结果做简单的解读。
import jieba#引入库 fo=open('老人与海.txt','r',encoding='utf-8') t=fo.read() fo.close()#读入待分析文章 words=jieba.cut(t)#分解提取词汇 dic={}#创建一个字典 for w in words: if len(w)==1: continue#去掉一个字节的字符 else: dic[w]=dic.get(w,0)+1#对字典赋键值 wc = list(dic.items())#将字典转换成由元组组成的列表 wc.sort(key=lambda x:x[1],reverse = True)#对字典的值按从大到小排序 for i in range(20): print(wc[i])#输出前20个
解读:该书的主人公是老人和小孩,讲述的是老人乘船出海捕鱼,最后老人经过几天几夜不屈不挠的斗争终于战胜了大鱼,成功捕获它。
循环语句加count:
import jieba#引入库 fo=open('老人与海.txt','r',encoding='utf-8') t=fo.read() fo.close()#读入待分析文章 words=list(jieba.cut(t))#分解提取词汇 dic={}#创建一个字典 exc={''}#需要去掉的词汇 keys=set(words)-exc#对字典赋键 for w in keys:#对字典的键便利 if len(w)==1: continue#去掉一个字节的字符 else: dic[w]=words.count(w)#对字典赋值,即对键统计后赋值 wc = list(dic.items())#将字典转换成由元组组成的列表 wc.sort(key=lambda x:x[1],reverse = True)#对字典的值按从大到小排序 for i in range(20): print(wc[i])#输出前20个