《哈姆雷特》是啥事毕业的一部经典悲剧作品,该作品对应的hamlet.txt,编写程序统计hamlet.txt中出现频率最高的前10个单词,并将结果用文件名"hamlet_词频统计.txt"保存,最后用词云图展示。编写程序的参考步骤如下: (1)读取hamlet.txt (2)对文本进行预处理,将文本中的字母全变为小写,然后去除标点符号等特殊符号,例如 " , ? - :\"等等 (3)将文本分词,统计单词出现的频率 (4)排除掉大多数冠词、代词、连接词等词语,例如 the and to of a be等 (5)按照单词出现的频率的降序排列,输出前10个单词机器出现的频率,将结果写入文件hamlet_词频统计.txt中 (6)用词云图展示词频。
时间: 2024-02-17 10:03:01 浏览: 79
8-2 词频统计之《哈姆雷特》
好的,我已经明白你的问题了。下面是Python代码实现上述步骤,需要安装jieba和wordcloud库:
```python
import jieba
import re
from collections import Counter
from wordcloud import WordCloud
# 读取文件hamlet.txt
with open('hamlet.txt', 'r', encoding='UTF-8') as f:
text = f.read()
# 将文本中的字母全变为小写,然后去除标点符号等特殊符号
text = text.lower()
text = re.sub(r'[^\w\s]', '', text)
# 分词并统计单词出现频率
words = jieba.lcut(text)
exclude_words = ['the', 'and', 'to', 'of', 'a', 'be'] # 排除掉一些常见词
words = [word for word in words if word not in exclude_words]
word_counts = Counter(words)
# 按照单词出现的频率的降序排列,输出前10个单词及出现频率
word_freqs = word_counts.most_common(10)
with open('hamlet_词频统计.txt', 'w', encoding='UTF-8') as f:
f.write('单词\t\t频率\n')
for word, freq in word_freqs:
f.write(f'{word}\t\t{freq}\n')
# 用词云图展示词频
wordcloud = WordCloud(font_path='simhei.ttf', width=800, height=600, background_color='white')
wordcloud.generate_from_frequencies(word_counts)
wordcloud.to_file('hamlet_词云图.png')
```
运行上述代码,会生成一个名为"hamlet_词频统计.txt"的文件,里面记录了出现频率最高的前10个单词及其出现次数;同时还会生成一个名为"hamlet_词云图.png"的文件,展示了单词出现频率的词云图。
阅读全文