法一:
在代码中构造set集合,将所有的停用词就加到set集合中,建议采用TreeSet,然后对于亩如数迅首文本的分词结果,去橡山查询set集合,如果出现,说明是停用词,过滤掉即可。
法二:
使用第三方的jar包解决,比如IKanalyzer来加载扩展词典和停用词典,然后使用IKanalyzer来进行分词,之后过滤即可。
-*- coding: utf-8 -*-import jieba
import jieba.analyse
import sys
import codecs
reload(sys)
sys.setdefaultencoding('utf-8')
#使用其他编码读取或凯毁停用词表
#stoplist = codecs.open('../../file/孙返stopword.txt','r',encoding='utf8').readlines()
#stoplist = set(w.strip() for w in stoplist)
#停用词文件是utf8编码
stoplist = {}.fromkeys([ line.strip() for line in open("../../file/stopword.txt") ])
#经过分词得到的应该是unicode编码衫备,先将其转成utf8编码
我觉得可能还是编码不对吧。我也遇到这种情况,所以搜到了这个问题,查了很多东西也没有个结果。我绝弊冲最开始数据都是用GB2312处理的,后来用结巴分词看文档上说用好用utf-8编码,就写了段代码把文本改成utf-8了,然后停用词文件也是用的utf-8保存的,但是不是用代码保存的,使用Notpad,之后卜消就一直不能停用文件里的词。并歼
后来,在代码中加了几个比较明显的停用词组成的list,当分出来的词不在list里的时候,才输出该词,结果就成功的停用了list里的所有词。
建议楼主再调整一下编码试试吧。
另外,我最开始用的是Python2.7.10,因为停用词没反应,我查到一个网页说他用Python3.4就好了,我又换了Python3.4.3,可是一样不能用,然后向我上面那么做的就好了,Python2.7还没有试,估计问题都差不多了吧...
楼主加油!Python程序猿加油!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)