如何用python写简化版电子诗人?

语言:python(不用库,或者仅用jieba库)
任务:
现有一个《李太白文集》的txt外置文件。
请将其的所有字分成单个字(比如把“云想浮生花想荣”分成云、想、浮、生、花、想、荣)。
可以得到出现频次最高的top100排行榜和出现次数。
可以查询单个字的出现次数。
然后设计一个五言绝句和七言绝句的格式,用标点分隔。
然后让它随机往中间填字,允许单字重复出现,得到诗句。

即 查询词频 和 随机生成诗句 两个功能。

要求:代码量越少、越初级越好。.如果水平太高,请写详细的注释。

完整代码实现如下:

import re
from collections import Counter
import random

def read_poem_file(file_path):
    """读取文件中的诗句,并将其转换为一个字符串"""
    with open(file_path, "r") as f:
        poem = f.read()
    return poem

def split_poem_to_words(poem):
    """将诗句分割为单个字"""
    # 使用正则表达式将非中文字符删除
    poem = re.sub(r"[^\u4e00-\u9fa5]", "", poem)
    # 将诗句转换为单个字的列表
    words = list(poem)
    return words

def count_word_frequency(words):
    """统计单词出现的频率"""
    return Counter(words)

def get_top_n_words(word_counts, n):
    """获取出现频率最高的前 n 个单词"""
    return word_counts.most_common(n)

def get_word_count(word_counts, word):
    """获取单词的出现次数"""
    return word_counts[word]

def generate_random_poem(word_counts, pattern):
    """生成随机诗句"""
    # 将格式化字符串中的标点符号替换为占位符
    pattern = pattern.replace(" ", "")
    pattern = pattern.replace(",", "{}")
    pattern = pattern.replace("。", "{}")
    # 根据占位符的数量生成诗句
    words = random.choices(list(word_counts.keys()), k=pattern.count("{}"))
    poem = pattern.format(*words)
    return poem

if __name__ == "__main__":
    # 读取文件
    poem = read_poem_file("li_tai_poem.txt")
    # 分割诗句
    words = split_poem_to_words(poem)
    # 统计词频
    word_counts = count_word_frequency(words)
    # 获取出现频率最高的前 100 个单词
    top_100_words = get_top_n_words(word_counts, 100)
    print("出现频率最高的前 100 个单词:")
    for word, count in top_100_words:
        print(f"{word}: {count}")
    # 查询单词出现次数
    word_to_search = "花"
    word_count = get_word_count(word_counts, word_to_search)
    print(f"{word_to_search} 出现了 {word_count} 次。")
    # 生成随机诗句
    poem_pattern = "长江东流,{}生{}花。白银盘里,{}青{}露。"
    random_poem = generate_random_poem(word_counts, poem_pattern)
    print("随机生成的诗句:")
    print(random_poem)