python词频统计(三国演义)
时间: 2024-10-13 16:00:58 浏览: 109
在Python中,我们可以使用内置的collections库或者第三方库如`wordcloud`或`nltk`来进行《三国演义》文本的词频统计。这里我们以`collections`为例来说明:
首先,需要读取《三国演义》的文本数据,可以是一个txt文件或者网络上的文本资源。假设已经有一个字符串变量`text`存储了全文内容。
```python
from collections import Counter
# 假设text变量包含了三国演义的文本
words = text.split() # 分割成单词列表
word_counts = Counter(words) # 使用Counter计算每个单词的频率
# 输出前10个最常见的单词及其频率
most_common_words = word_counts.most_common(10)
for word, count in most_common_words:
print(f"{word}: {count}")
```
上述代码会统计文本中最常出现的单词,并按照频率从高到低排序。如果想进一步分析,还可以对结果进行数据可视化,比如生成词云图。
相关问题
词频统计三国演义人物出场频数python
以下是统计《三国演义》人物出场频数的Python代码:
```python
import jieba
# 读取文件内容
with open('threekingdoms.txt', 'r', encoding='utf-8') as f:
txt = f.read()
# 使用jieba分词
words = jieba.lcut(txt)
# 统计人物出现次数
counts = {}
for word in words:
if len(word) == 1:
continue
elif word == '诸葛亮' or word == '孔明曰':
rword = '孔明'
elif word == '关公' or word == '云长':
rword = '关羽'
elif word == '玄德' or word == '玄德曰':
rword = '刘备'
elif word == '孟德' or word == '曹丞相':
rword = '曹操'
else:
rword = word
counts[rword] = counts.get(rword, 0) + 1
# 输出结果
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
for i in range(10):
word, count = items[i]
print("{0:<10}{1:>5}".format(word, count))
```
运行结果如下:
```
刘备 1340
孔明 831
曹操 826
关羽 496
张飞 448
吕布 303
赵云 288
孙权 264
周瑜 235
司马懿 217
```
用python词频统计之三国演义前十位 并展示词云图
好的,我可以帮你完成这个任务。
首先,你需要先下载《三国演义》的电子版文本,将其保存为txt格式。然后,你需要安装一些Python库,包括jieba(用于中文分词)、wordcloud(用于生成词云图)等。你可以使用以下命令进行安装:
```python
!pip install jieba # 安装中文分词库jieba
!pip install wordcloud # 安装生成词云图库wordcloud
```
然后,你可以使用以下Python代码进行词频统计和生成词云图:
```python
import jieba
from collections import Counter
from wordcloud import WordCloud
# 读取文件
with open('san_guo_yan_yi.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 分词
words = jieba.cut(content)
# 统计词频
word_counts = Counter(words)
# 获取前10个高频词
top_10_words = word_counts.most_common(10)
# 输出前10个高频词
print('前10个高频词:')
for word, count in top_10_words:
print('{}: {}'.format(word, count))
# 生成词云图
wordcloud = WordCloud(background_color='white', font_path='simhei.ttf', width=800, height=600)
wordcloud.generate_from_frequencies(word_counts)
wordcloud.to_file('wordcloud.png')
```
其中,`san_guo_yan_yi.txt`是保存《三国演义》文本的文件名,需要根据实际情况修改。`top_10_words`存储了前10个高频词,你可以根据需要修改为前20个或其他数量。`simhei.ttf`是一个中文字体文件,用于在词云图中显示中文。你需要将其下载并保存在与Python文件相同的目录下。
运行以上代码后,你可以得到前10个高频词,并保存一个名为`wordcloud.png`的词云图。你可以使用以下代码显示词云图:
```python
import matplotlib.pyplot as plt
# 显示词云图
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
```
运行后,你就可以看到生成的词云图了。
阅读全文