CANN/GE动态AIPP通道最小值设置
2026/6/20 16:54:14
import jieba from collections import Counter # 人物别名统一映射,全部归一化为标准人名 alias_dict = { "孙悟空": "孙悟空", "孙行者": "孙悟空", "行者": "孙悟空", "美猴王": "孙悟空", "孙猴子": "孙悟空", "齐天大圣": "孙悟空", "大圣": "孙悟空", "唐三藏": "唐僧", "玄奘": "唐僧", "唐长老": "唐僧", "长老": "唐僧", "猪八戒": "猪八戒", "猪悟能": "猪八戒", "八戒": "猪八戒", "呆子": "猪八戒", "沙悟净": "沙和尚", "沙僧": "沙和尚", "沙和尚": "沙和尚", "白龙马": "白龙马", "敖烈": "白龙马", "观音": "观音菩萨", "观世音": "观音菩萨", "如来": "如来佛祖", "玉帝": "玉皇大帝", "玉皇": "玉皇大帝", "牛魔王": "牛魔王", "牛魔王": "牛魔王", "铁扇公主": "铁扇公主", "罗刹女": "铁扇公主" } # 扩充停用词:标点、虚词、副词、单字、方位词、语气词 stopwords = { "的", "了", "就", "便", "又", "也", "都", "只", "才", "已", "在", "与", "及", "从", "被", "叫", "来", "去", "这", "那", "何", "此", "每", "个", "处", "边", "内", "中", "前", "后", "上", "下", ",", "。", "、", ":", ";", "?", "!", "“", "”", "‘", "’", "(", ")", "《", "》", "一日", "只见", "不知", "遂", "即", "忽", "俱", "皆", "未曾", "可以", "如何", "这般", "那般", "道", "说", "看", "问", "闻", "听", "开", "入", "出", "行", "有", "无", "是", "非" } # 读取西游记文本文件 with open("西游记.txt", "r", encoding="utf-8") as f: content = f.read() # 分词 raw_words = jieba.lcut(content) processed = [] for word in raw_words: if word in alias_dict: processed.append(alias_dict[word]) else: processed.append(word) # 过滤:长度大于1,不在停用词内 filter_words = [w for w in processed if len(w) > 1 and w not in stopwords] # 统计词频,取出前20 word_count = Counter(filter_words) top_20 = word_count.most_common(20) print("频次最高的前20个词汇:") for idx, (name, count) in enumerate(top_20, 1): print(f"{idx}. {name}:{count} 次")