练习一:
英文小说 词频统计
1.准备utf-8编码的文本文件file
2.通过文件读取字符串 str
代码:
#把歌词导入到记事本,设置编码为UTF-8,将其保存到打开的文件夹,再导入。#准备utf-8编码的文本文件file,读取字符串strBigfo=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,'') # 分解提取单词liststrlist=big.split()print (len(strlist),strlist)
运行结果:
5.单词计数字典 set , dict
6.按词频排序 list.sort(key=)
代码:
#单词计数字典 set(不重复)strSet=set(strlist)print (len(strSet),strSet)#单词计数字典 dictstrDict={}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,读取字符串strBigimport jiebafo=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])
运行结果: