是在编写中文的词频分析时遇到的
先把词频分析的代码放上去
# 对三国演义出场人物次数进行统计 import jieba txt = open("sanguoyanyi.txt","r",encoding="utf-8").read() words = jieba.lcut(txt) new={} #通过对程序的检查,对程序进行完善 for word in words: if len(word)==1: continue elif word == "诸葛亮" or word == "孔明曰": rword="孔明" elif word == "关公" or word == "云长": rword="关羽" elif word == "玄德" or word == "玄德曰": rword="刘备" elif word == "孟德" or word == "丞相": rword ="曹操" else: rword=word # 对原来的字典new中判断是否有rword这个人,没有就返回0, # 赋予rword键有就在原来rword所对应的值加1,并赋予rword键 new[rword]=new.get(rword,0)+1 # 排除系统中不是人名的字 exc={"将军","却说","荆州","二人","不可","不能","如此"} for word in exc: del new[word] item=list(new.items()) item.sort(key=lambda x:x[1],reverse=True) for i in range(10): word,count=item[i] print("{0:<10}{1:>5}".format(word,count))
在运行的时候就会遇到下面这种情况
这个时候我试过好多方法,都是不行的,这个时候,我发现了解决的方法
我们把要处理的文件把他的编码方式改成你想打开的编码方式
在这个编码方式改成你要打开的方式,比如我上面代码的utf-8,这个时候就不会报错了。