词频统计

1.英文词频统

下载一首英文的歌词或文章

将所有,.?!’:等分隔符全部替换为空格

将所有大写转换为小写

sep = ''',.'?!;:'"''';
 
for i in sep:
    worldSet = news.replace(i,' ');
 
worldSet= news.lower().split();

  

生成单词列表

print(worldSet)

  

生成词频统计

worldDict = {}
for w in worldList:
    worldDict[w] = worldSet.count(w)

  

排序

worldList = list(worldDict.items())
worldList.sort(key=lambda x: x[1], reverse=True)

  

排除语法型词汇,代词、冠词、连词

exception = {'in', 'to', 'your', 'you', 'and', 'the', 'for','a','i'};
worldList = set(worldSet) - exception;

  

输出词频最大TOP20

for i in range(20):
    print(worldList[i])

  

2.中文词频统计

import jieba

f=open('s.txt','r',encoding="UTF-8")
str1=f.read()
f.close()
str2=list(jieba.cut(str1))
delset = {",","。",":","“","”","?"," ",";","!","、","ufeff","
"}
stringset = set(str2) - delset
countdict = {}
for i in stringset:
    countdict[i] = str2.count(i)
dictList = list(countdict.items())
dictList.sort(key = lambda x:x[1],reverse = True)
f = open("E:/结果.txt", "a")
for i in range(20):
 f.write('
' + dictList[i][0] + " " + str(dictList[i][1]))
f.close()

  

原文地址:https://www.cnblogs.com/hkvbm/p/8660452.html