import jieba from collections import Counter # 人物别名统一映射全部归一化为标准人名 alias_dict { 孙悟空: 孙悟空, 孙行者: 孙悟空, 行者: 孙悟空, 美猴王: 孙悟空, 孙猴子: 孙悟空, 齐天大圣: 孙悟空, 大圣: 孙悟空, 唐三藏: 唐僧, 玄奘: 唐僧, 唐长老: 唐僧, 长老: 唐僧, 猪八戒: 猪八戒, 猪悟能: 猪八戒, 八戒: 猪八戒, 呆子: 猪八戒, 沙悟净: 沙和尚, 沙僧: 沙和尚, 沙和尚: 沙和尚, 白龙马: 白龙马, 敖烈: 白龙马, 观音: 观音菩萨, 观世音: 观音菩萨, 如来: 如来佛祖, 玉帝: 玉皇大帝, 玉皇: 玉皇大帝, 牛魔王: 牛魔王, 牛魔王: 牛魔王, 铁扇公主: 铁扇公主, 罗刹女: 铁扇公主 } # 扩充停用词标点、虚词、副词、单字、方位词、语气词 stopwords { 的, 了, 就, 便, 又, 也, 都, 只, 才, 已, 在, 与, 及, 从, 被, 叫, 来, 去, 这, 那, 何, 此, 每, 个, 处, 边, 内, 中, 前, 后, 上, 下, , 。, 、, , , , , “, ”, ‘, ’, , , 《, 》, 一日, 只见, 不知, 遂, 即, 忽, 俱, 皆, 未曾, 可以, 如何, 这般, 那般, 道, 说, 看, 问, 闻, 听, 开, 入, 出, 行, 有, 无, 是, 非 } # 读取西游记文本文件 with open(西游记.txt, r, encodingutf-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} 次)
网站建设
高端定制
企业官网