中文词频统计

  1. 下载一中文长篇小说,并转换成UTF-8编码。
  2. 使用jieba库,进行中文词频统计,输出TOP20的词及出现次数。
  3. 排除一些无意义词、合并同一词。
  4. 对词频统计结果做简单的解读。

 

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个

 

posted on 2017-09-29 13:16  L文斌  阅读(229)  评论(0编辑  收藏  举报