【问题标题】:How to read files and avoid coercing to unicode error in python?如何读取文件并避免在 python 中强制出现 unicode 错误?
【发布时间】:2014-11-12 07:14:20
【问题描述】:

我正在读取两个文件 (trainfile, testfile),然后我想用 word_vectorizer 对它们进行 vecrize,问题是我可能没有以正确的方式读取文件,这就是我尝试过的:

# -- coding: utf-8 --
import codecs

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
import os, sys


with open('/Users/user/Desktop/train.txt', 'r') as trainfile:
    contenido_del_trainfile= trainfile.read()
    print contenido_del_trainfile

with open('/Users/user/Desktop/test.txt', 'r') as testfile:
    contenido_del_testfile= testfile.read()
    print contenido_del_testfile


print "\nThis is the training corpus:\n", contenido_del_trainfile
print "\nThis is the test corpus:\n", contenido_del_testfile



train = []

word_vectorizer = CountVectorizer(analyzer='word')

trainset = word_vectorizer.fit_transform(codecs.open(trainfile,'r','utf8'))
print word_vectorizer.get_feature_names()

这是输出:

TypeError: coercing to Unicode: need string or buffer, file found

如何以正确的方式读取文件以打印如下内容:

[u'word',... ,u'word']

【问题讨论】:

    标签: python python-2.7 unicode io directory


    【解决方案1】:

    codecs.open 断言,您提供的是文件路径,而不是文件本身。

    所以,而不是

    trainset = word_vectorizer.fit_transform(codecs.open(trainfile,'r','utf8'))
    

    trainset = word_vectorizer.fit_transform(codecs.open('/Users/user/Desktop/train.txt','r','utf8'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-24
      • 2018-11-09
      • 2020-11-12
      • 1970-01-01
      相关资源
      最近更新 更多