怎么在一段英语报告中提取词频统计,并按顺序排列,尝试了几种代码都是报错,求告知
import re
# 请根据处理要求下面区域完成代码的编写。
def get_artical(artical_path):
with open(artical_path) as fr:
data = fr.read()
return data
#处理函数
def handle(data):
counts = {}
#data = data.lower()
data1 = re.sub('\n',' ',data)#替换换行符为空格
reg = "[^A-Za-z\']"
data = re.sub(reg,' ',data1)#只保存英文,同时保留don't isn't类似单词
data = data.lower()
list_data = data.split()#列表
#遍历统计
for word in list_data:
if word in counts.keys():
counts[word] = counts[word] +1
else:
counts[word] = 1
return counts
# get_artical()为自定义函数,可用于读取指定位置的试题内容。
data = get_artical('./artical.txt')
re_counts = handle(data)
re_counts = sorted(re_counts.items(),key=lambda x:x[1],reverse=True)#词频从大到小排序,
print(re_counts)
试试这个看行不行
用过jieba库了吗
推荐使用jieba库:http://t.csdn.cn/UuNb8
换一个包
可以使用jieba分词,还可以自定义词语和停用词,网上示例很多,稍微改改就可以