python将一篇英文短文每一个词都切割,并统计词频,并写出到Excel,涉及知识点:
- 切割英文短文
- 统计词频
- 按照降序排列:对字典进行排序
- 将字典写出到Excel
# 读入文本
# 切词
import re
import xlwt
with open(r'D:\PythonExcercise\file_test\Trump.txt', 'r', encoding='utf-8') as fd:
a = re.compile(r'[\s\,\;\.\n\(\)\?\"]+')
m = a.split(fd.read())
# 统计词频
frequency = {}
for word in m:
if word not in frequency:
frequency[word] = 1
else:
frequency[word] += 1
#对词频进行排序
b = sorted(frequency.items(), key=lambda item: item[1], reverse=True)
words = []
counts = []
for i in b:
words.append(i[0])
counts.append(i[1])
# 写出到Excel
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('sheet1')
for i in range(len(frequency)):
worksheet.write(i, 0, words[i])
worksheet.write(i, 1, counts[i])
workbook.save('frequency.xls')