西游记jieba分词

发布时间 2023-12-28 22:41:08作者: 廖晟崴
import jieba

txt = open("西游记.txt", "r", encoding='utf-8').read()

words = jieba.lcut(txt)  # 使用精确模式对文本进行分词

counts = {}  # 通过键值对的形式存储词语及其出现的次数

for word in words:

    if len(word) == 1:
        continue

    elif word in ["大圣", "老孙", "行者", "孙大圣", "孙行者", "猴王", "悟空", "齐天大圣", "猴子"]:
        rword = "孙悟空"

    elif word in ["师父", "三藏", "圣僧"]:
        rword = "唐僧"

    elif word in ["呆子", "八戒", "老猪"]:
        rword = "猪八戒"

    elif word == "沙和尚":
        rword = "沙僧"

    elif word in ["妖精", "妖魔", "妖道"]:
        rword = "妖怪"

    elif word == "佛祖":
        rword = "如来"

    elif word == "三太子":
        rword = "白马"

    else:
        rword = word

    counts[rword] = counts.get(rword, 0) + 1

items = list(counts.items())  # 将键值对转换成列表

items.sort(key=lambda x: x[1], reverse=True)  # 根据词语出现的次数进行从大到小排序

for i in range(20):
    word, count = items[i]
    print("{0:<10}{1:>5}".format(word, count))

  运行结果