jieba分词
西游记相关的分词,出现次数最高的20个。需要把是同一个人不同说法,要合并成一个。比如 孙猴子和孙悟空,要算成一个。
运行代码:
import jieba def takeSecond(elem): return elem[1] def main(): path = "D:\\GPNU\\my_python\\《西游记》.txt" file = open(path, "r", encoding="utf-8") text = file.read() file.close() words = jieba.lcut(text) counts = {} for word in words: if len(word) == 1: continue elif word == "大圣" or word == "老孙" or word == "行者" or word == "孙大圣" or word == "猴王" or word == "悟空" or word == "齐天大圣" or word == "孙猴子": rword = "孙悟空" elif word == "师父" or word == "三藏" or word == "圣僧": rword = "唐僧" elif word == "呆子" or word == "八戒" or word == "老猪": rword = "猪八戒" elif word == "沙和尚": rword = "沙僧" elif word == "妖精" or word == "妖魔" or word == "妖道": rword = "妖怪" elif word == "佛祖": rword = "如来" elif word == "三太子": rword = "白马" else: rword = word counts[rword] = counts.get(rword, 0) + 1 items = list(counts.items()) items.sort(key=takeSecond, reverse=True) for i in range(20): item = items[i] keyWord = item[0] count = item[1] print("{0:<10}{1:>5}".format(keyWord, count)) main()
运行结果:

浙公网安备 33010602011771号