完整的中英文词频统计

步骤:

1.准备utf-8编码的文本文件file

2.通过文件读取字符串 str

3.对文本进行预处理

4.分解提取单词 list

5.单词计数字典 set , dict

6.按词频排序 list.sort(key=)

7.排除语法型词汇,代词、冠词、连词等无语义词

8.输出TOP(20)

 

完成:

1.英文小说 词频统计

2.中文小说 词频统计

 

一、英文词频统计

fo = open('xiaoshuo.txt', 'r', encoding='utf-8')
stra = fo.read().lower()
fo.close()
print(stra)  #1.准备utf-8编码的文本文件file 2.通过文件读取字符串 str

sep = ',.;!'
for ch in sep:
    stra = stra.replace(ch,'') #进行预处理,清除掉sep中存在的标点符号
print(stra)

strList=stra.split(' ')
print(len(strList),strList) #分解提取单词,转化为列表list

strSet = set(strList)
print(len(strSet),strSet) #转化为集合


strDict = {}
for world in strSet:
    strDict[world] = strList.count(world)

print(len(strDict),strDict)  #转化为字典,计算上一个集合中每个单词出现的次数

wcList = list(strDict.items())
print(wcList)  #将字典中的目录转化为列表输出
wcList.sort(key=lambda x:x[1],reverse= True)
print(wcList) #按降序输出

e = {'a','the','an','and','i','or','of'}
strSet = strSet - e
print(len(strSet),strSet) #排除语法型词汇,代词、冠词、连词等无语义词


for i in range(20):
    print(wcList[i]) #TOP20输出

  运行结果:

二、中文词频统计

import jieba

of = open('zhongwen.txt','r',encoding='utf-8')
strb = of.read().lower()
of.close()
print(strb)

print(list(jieba.cut(strb)))
print(list(jieba.cut(strb,cut_all=True)))
print(list(jieba.cut_for_search(strb)))

 运行结果:

  

 

posted @ 2018-09-29 08:42  MIEhaha  阅读(1846)  评论(0编辑  收藏  举报