鱼C论坛

 找回密码
 立即注册
查看: 1583|回复: 27

[已解决]求三国演义人物出场

[复制链接]
发表于 2019-6-28 22:28:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import jieba
  2. txt = open('threekingdoms.txt','r',encoding='utf-8').read()
  3. excludes = {'将军','却说','荆州','二人','不可','不能','如此'}
  4. words = jieba.lcut(txt)
  5. counts ={}
  6. for word in words:
  7.     if len(word) == 1:
  8.         continue
  9.     elif word == '诸葛亮' or word =='孔明曰':
  10.         rword = '孔明'
  11.     elif word =='关公' or word =='云长':
  12.         rword ='关羽'
  13.     elif word =='玄德' or word =='玄德曰':
  14.         rword = '刘备'
  15.     elif word =='孟德'or word =='丞相曰':
  16.         rword = '曹操'
  17.     else:
  18.         rword = word
  19.     counts[rword] = counts.get(rword,0)+1
  20. for word in excludes :
  21.     del counts[word]
  22. items = list(counts.items())
  23. items.sort(key=lambda x:x[1],reverse=True)
  24. for i in range(10):
  25.     word,count=items[i]
  26.     print('{0:<10}{1`:>5}'.format(word,count))
  27.         
复制代码

为什么会出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte错误?这种错误说明了什么?
最佳答案
2019-6-30 10:20:21
hzxwonder 发表于 2019-6-30 10:14
不行。。。。为什么有这个文件,却无法运行?

难道是路径的冒号是中文了?话说无论我的怎么读取都没问题额。。
(, 下载次数: 0)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-28 22:34:29 | 显示全部楼层
看样子文件有问题,是二进制文件?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-28 22:50:32 | 显示全部楼层
newu 发表于 2019-6-28 22:34
看样子文件有问题,是二进制文件?

不是吧,好像只是文本
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-28 22:55:50 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-28 23:00:49 | 显示全部楼层
hzxwonder 发表于 2019-6-28 22:50
不是吧,好像只是文本

检查一下那个文本文件,可能有非法字符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-29 08:16:41 | 显示全部楼层
newu 发表于 2019-6-28 23:00
检查一下那个文本文件,可能有非法字符。

那些算非法字符?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-29 08:17:44 | 显示全部楼层
  1. print(‘https://python123.io/resources/pye/threekingdoms.txt’)
复制代码
这里面的文档
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-29 09:02:08 | 显示全部楼层
我运行没有问题。除最后一行1`应为1以外。我的python是3.6.2版的。
  1. Building prefix dict from the default dictionary ...
  2. Loading model from cache C:\Users\zhubin\AppData\Local\Temp\jieba.cache
  3. Loading model cost 1.344 seconds.
  4. Prefix dict has been built succesfully.
  5. 孔明         1383
  6. 刘备         1252
  7. 曹操          960
  8. 关羽          784
  9. 丞相          491
  10. 张飞          358
  11. 商议          344
  12. 如何          338
  13. 主公          331
  14. 军士          317
复制代码

这是我下载的文本文件,受上传类型限制,加了zip的后缀,下载后可以删掉。你再试试。

threekingdoms.txt.zip

1.69 MB, 下载次数: 2

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-29 09:02:29 | 显示全部楼层
有些文档会有一些ascii码字符存放在里面,比如表示空格的0xA0,你直接打开文本是看不到的,但是他确实存在的。
你可以先把0xc8字符替换成utf-8的空格,这样就不会报错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-29 10:02:30 | 显示全部楼层
风丶少 发表于 2019-6-29 09:02
有些文档会有一些ascii码字符存放在里面,比如表示空格的0xA0,你直接打开文本是看不到的,但是他确实存在 ...

怎么做?小白求教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-29 10:04:52 | 显示全部楼层
hzxwonder 发表于 2019-6-29 10:02
怎么做?小白求教

你这个是网上爬下来的吧?
你可以在网站审核元素里面看到文本内容包含了哪些ascii,对应的把他们替换掉就行了。
可以用Beautifulsoup4 来替换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-29 16:10:19 | 显示全部楼层
hzxwonder 发表于 2019-6-29 10:02
怎么做?小白求教

找到原因了,可能是打开的时候出错了,新建一个文档重新copy进去内容,然后open
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-29 21:44:01 | 显示全部楼层
newu 发表于 2019-6-29 16:10
找到原因了,可能是打开的时候出错了,新建一个文档重新copy进去内容,然后open

不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-29 21:45:17 | 显示全部楼层

重新手写下文档..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-29 21:49:24 | 显示全部楼层
newu 发表于 2019-6-29 21:45
重新手写下文档..

手写。。。。六十万字。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-29 21:54:47 | 显示全部楼层
hzxwonder 发表于 2019-6-29 21:49
手写。。。。六十万字。。。

厉害了,文档方便发我吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-29 22:00:19 | 显示全部楼层
链接吗?
  1. https://python123.io/resources/pye/threekingdoms.txt
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-29 23:15:01 | 显示全部楼层


因为文档是utf-8的,所以这样打开
  1. with open('threekingdoms.txt', 'r', encoding='utf-8') as f:
复制代码


所以我看你的代码就是这样打开的,我这样打开没问题啊 。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-30 09:52:34 | 显示全部楼层
newu 发表于 2019-6-29 23:15
因为文档是utf-8的,所以这样打开

不行啊。。文本是从链接上shift+A全选复制,然后新建文档txt吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-30 09:58:13 | 显示全部楼层
hzxwonder 发表于 2019-6-30 09:52
不行啊。。文本是从链接上shift+A全选复制,然后新建文档txt吗?

我是直接从你给的那个链接下载下来的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 18:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表