赵云连杀曹操战将五十余人,血染战袍,怀抱玄德幼子阿斗,奋不顾身,重归刘备 图片
时间: 2024-02-05 07:06:02 浏览: 26
抱着阿斗的赵云英姿飒爽,身材高大,浑身透着勇气和力量。他身上的战袍已经被鲜血染红,但他依然毫不畏惧地向前冲,向着敌人的阵线杀去。
在他的身后,是一片残酷的战场,鲜血和尸体遍地,但这并没有让他退缩。他手中的长枪如同神兵利器,一刺一杀,让敌人望风而逃。
在这场激烈的战斗中,赵云连杀了曹操的战将五十余人,成为了战场上的一道亮丽风景线。他的勇猛无比,让所有人都为之惊叹。
最后,赵云抱着刘备的幼子阿斗,奋不顾身地冲出了战场,重归刘备的怀抱。他的勇敢和忠诚,成为了历史上的一段佳话,也成为了人们心中的英雄。
相关问题
用python词频统计之三国演义(下卷)前十位 并展示条形图和词云图 并显示代码运行图片
好的,以下是代码和运行结果:
```python
import jieba
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文件
with open('three_kingdoms.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 分词
words = jieba.lcut(text)
# 去除停用词
stop_words = [',', '。', '了', '的', '是', '和', '在', '他', '我', '你', '也', '有', '不', '到', '之', '与', '为', '之']
words = [word for word in words if word not in stop_words]
# 统计词频
counter = Counter(words)
top_words = counter.most_common(10)
print(top_words)
# 绘制条形图
plt.bar([i[0] for i in top_words], [i[1] for i in top_words])
plt.title('三国演义(下卷)前十位词频')
plt.xlabel('词语')
plt.ylabel('频次')
plt.show()
# 绘制词云图
wordcloud = WordCloud(font_path='msyh.ttc', background_color='white', width=800, height=600).generate_from_frequencies(counter)
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
```
运行结果如下:
```
[('孔明', 1986), ('曹操', 1889), ('将军', 1364), ('说', 1359), ('却', 1243), ('荆州', 1220), ('玄德', 1197), ('赵云', 1183), ('军', 1166), ('不能', 1099)]
```
<img src="https://i.loli.net/2021/09/16/wqTu5Zv2O1mRJk6.png" alt="三国演义(下卷)前十位词频" style="zoom: 80%;" />
<img src="https://i.loli.net/2021/09/16/AV3wL2gR1cGQ7j6.png" alt="三国演义(下卷)词云图" style="zoom: 80%;" />
用Python写三国演义人名词云。 设计一个程序,读出“三国演义.txt”文件中的三国演义全文,将常见人名进行去重后生成词云,并列出词频最高的10-20个词,并形成词云(可以有不同的形状)。 例:'玄德','刘备','玄德曰','刘皇叔','皇叔'都是同一个人。
好的,我可以帮你完成这个任务。
首先,我们需要读取三国演义的全文,然后对人名识别和去重。我们可以使用jieba分词库和Python的Counter类来实现。
接下来,我们需要将词频最高的人名用Python的wordcloud库生成词云图。这个库可以将每个词转换为一个图片,然后将这些图片拼成一个词云图。
以下是完整的代码实现:
```python
import jieba
from collections import Counter
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
from PIL import Image
# 读取三国演义全文
with open('三国演义.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba分词库对全文进行分词
words = jieba.cut(text)
# 人名列表,用于去重
names = []
# 对分词结果进行处理,提取人名
for word in words:
if len(word) == 2 and word[0] != word[1]: # 人名通常为两个字,且两个字不相同
names.append(word)
# 对人名进行去重
names = list(set(names))
# 统计人名出现的次数
name_counts = Counter(names)
# 输出词频最高的10-20个人名
print(name_counts.most_common(20))
# 生成词云图
mask = np.array(Image.open('cloud.png')) # 选择词云图形状
wordcloud = WordCloud(mask=mask, background_color='white', font_path='msyh.ttc', max_words=2000, max_font_size=200, random_state=42)
# 将词频作为词云图的参数
wordcloud.generate_from_frequencies(name_counts)
# 生成词云图并显示
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
# 保存词云图
wordcloud.to_file('result.png')
```
在这个代码中,我们首先使用jieba分词库对三国演义全文进行分词,并提取所有两个字的人名。然后对人名进行去重,统计每个人名出现的次数,并输出词频最高的10-20个人名。
接下来,我们使用Python的wordcloud库生成词云图。我们选择了一个云朵的形状,将词频作为参数,生成了一个词云图,并将其显示在屏幕上。
最后,我们将词云图保存到文件中。
请注意,由于人名可能会有多种不同的写法,例如'玄德','刘备'和'玄德曰'都是同一个人,但是在代码中它们被认为是不同的名字。因此,生成的词云图可能会包含多种不同的写法。