仍然在为毕业论文奋战,有一个月了吧,都没怎么睡好,总算快要看到希望了。Web文本的清理和结构化工作基本完成,最近几天在做分词了。本来以为清理的时候已经够小心了,结果,调用结巴分词模块的时候,还是遇到了很多问题,好在在家的时候是有网的,我大中华就是不缺人才,下面的问题也都是我各种查别人的博客找到的,谢谢大神们。
坑一:
本来处理数据的时候一直用的是GB2312编码,看结巴的文档的前几句话里,就看到“建议使用utf-8编码,用gb2312有时会出错”几个字,当时心都碎了。然后就想着把编码转过来就行了嘛,可是,事实并没有那么简单...
首先, 自然而然的想到先解码再编码就行了,所以,尝试使用下面这种写法转换编码:
line = line.decode('GB2312').encode('utf-8')
但是,非常轻松的就报错了。错误提示如下所示:
相信很多人都出现过这种问题,我在网上查到,说修改系统默认的字符编码就行了,于是,我尝试在文件开头加入了这样的代码:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
网上好多博客、问答里都是这么写的, 结果运行一下之后,并没有什么乱用,于是,继续找办法。
终于,让我发现了这么个办法:
line = line.decode('GB2312','ignore').encode('utf-8')
我还真不知道decode还要'ignore'这么个神奇的属性,结果就好使了,很好使,一点儿都不报错了...
这里附上这位大神的博客URL,他还介绍了另一种处理方法,我暂时没用到,没有测试效果,所以就不贴了,有需要的同学自行点进去查看。http://blog.csdn.net/cnmilan/article/details/9264643