使用python将长篇诗文根据标点符号重新切分成短句并居中排版,对小屏幕阅读十分有利。对诗文做简单的统计分析有益于读者更好地了解诗文。本题将《春江花月夜》按照一句一行的格式进行输出,出现频率最高的5个词及其出现频率,统计全诗的句数,统计所有的叠词,统计所有以“江”字开头的诗句。
时间: 2024-03-14 12:44:42 浏览: 154
以下是实现以上要求的Python代码:
```python
import re
from collections import Counter
# 读取诗文文件
with open('春江花月夜.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 根据标点符号重新切分成短句
sentences = re.split('[。?!]', content)
# 去除空白字符
sentences = [s.strip() for s in sentences if s.strip()]
# 输出短句并居中排版
for s in sentences:
print(s.center(20))
# 统计出现频率最高的5个词及其出现频率
words = re.findall('\w+', content)
word_counts = Counter(words)
top_five = word_counts.most_common(5)
print('出现频率最高的5个词及其出现频率:')
for word, count in top_five:
print(f'{word}: {count}')
# 统计全诗的句数
print(f'全诗的句数为:{len(sentences)}')
# 统计所有的叠词
duplicated_words = re.findall(r'(\S)(\1+)', content)
print(f'所有的叠词有:{duplicated_words}')
# 统计所有以“江”字开头的诗句
jiang_sentences = [s for s in sentences if s.startswith('江')]
print(f'所有以“江”字开头的诗句有:{jiang_sentences}')
```
需要注意的是,以上代码假设诗文文件名为“春江花月夜.txt”,且文件编码为UTF-8。你需要根据实际情况进行修改。
阅读全文