首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习CountVectorizer UnicodeDecodeError

学习CountVectorizer UnicodeDecodeError
EN

Stack Overflow用户
提问于 2016-10-17 00:47:55
回答 1查看 2.4K关注 0票数 2

在下面的代码片段中,我试图列出频率一词,其中first_textsecond_text.tex文档:

代码语言:javascript
复制
from sklearn.feature_extraction.text import CountVectorizer
training_documents = (first_text, second_text)  
vectorizer = CountVectorizer()
vectorizer.fit_transform(training_documents)
print "Vocabulary:", vectorizer.vocabulary 

当我运行这个脚本时,我会得到以下内容:

代码语言:javascript
复制
File "test.py", line 19, in <module>
    vectorizer.fit_transform(training_documents)
  File "/usr/local/lib/python2.7/site-packages/sklearn/feature_extraction/text.py", line 817, in fit_transform
    self.fixed_vocabulary_)
  File "/usr/local/lib/python2.7/site-packages/sklearn/feature_extraction/text.py", line 752, in _count_vocab
    for feature in analyze(doc):
  File "/usr/local/lib/python2.7/site-packages/sklearn/feature_extraction/text.py", line 238, in <lambda>
    tokenize(preprocess(self.decode(doc))), stop_words)
  File "/usr/local/lib/python2.7/site-packages/sklearn/feature_extraction/text.py", line 115, in decode
    doc = doc.decode(self.encoding, self.decode_error)
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa2 in position 200086: invalid start byte

我怎样才能解决这个问题?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-17 02:45:59

如果您能够计算出文档的编码是什么(也许它们是latin-1),则可以将其传递给CountVectorizer

代码语言:javascript
复制
vectorizer = CountVectorizer(encoding='latin-1')

否则,您可以跳过包含有问题的字节的令牌。

代码语言:javascript
复制
vectorizer = CountVectorizer(decode_error='ignore')
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40077084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档