中英文词频统计

练习一:

英文小说 词频统计

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

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

代码:

 #把歌词导入到记事本,设置编码为UTF-8,将其保存到打开的文件夹,再导入。
#准备utf-8编码的文本文件file,读取字符串strBig
fo=open('time.txt','r',encoding='UTF-8')
big=fo. read().lower()
fo.close()
print(big)


运行结果:

3.对文本进行预处理

4.分解提取单词 list

代码:

#对文本进行预处理
sep='\,:?!'
for ch in sep:
    strBig=big.replace(ch,'')
 # 分解提取单词list
strlist=big.split()
print (len(strlist),strlist)

运行结果:

5.单词计数字典 set , dict

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

代码:

#单词计数字典 set(不重复)
strSet=set(strlist)
print (len(strSet),strSet)
#单词计数字典 dict
strDict={}
for word in strSet:
    strDict[word]=strlist.count(word)
    print(len(strDict), strDict)

运行结果;

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

代码:

#排除语法型词汇,代词、冠词、连词等无语义词
wclist=list(strDict.items())
print(wclist)
wclist.sort(key=lambda  x:x[1],reverse=True)
print(wclist)

运行结果:

8.输出TOP(20)

代码:

 #输出TOP(20)
for i in range(20):
    print(wclist)

运行结果;

l练习二:

中文小说 词频统计

代码:

#准备utf-8编码的文本文件file,读取字符串strBig
import jieba
fo=open('hongloumeng.txt','r',encoding='UTF-8')
big=fo. read().lower()
fo.close()
print(big)

#词条分割
wordsls=jieba.lcut(big)
wcdict={}
for word in wordsls:
    if len(word)==1:
        continue
    else:
        wcdict[word]=wcdict.get(word,0)+1

    # 排除语法型词汇,代词、冠词、连词等无语义词
    wclist = list(wcdict.items())
    wclist.sort(key=lambda x: x[1], reverse=True)

 #输出TOP(20)
for i in range(20):
    print(wclist[i])

运行结果:

 

posted @ 2018-09-29 10:30  Soooooo  阅读(213)  评论(0编辑  收藏  举报