2016-10-20 132 views
0

我想用Sklearn向量化在一个大的CSV文件我的数据,我用下面的代码:Sklearn:“海峡”对象没有属性“读”

第一次尝试:

from sklearn.feature_extraction.text import CountVectorizer 

vectorizer = CountVectorizer(input='file', stop_words = 'english', ngram_range=(1,2)) 

vectorizer.fit_transform('test.csv') 

但我得到这个错误:

AttributeError的:“海峡”对象有没有属性“读”

第二次尝试,但错误依然提出:

import csv 

file = open('test.csv', 'r') 

f = file.readline() 

vectorizer.fit_transform(f) 

第三次尝试:这一次确实有效,但因内存不足而死亡。

file = open('test.csv', 'r') 
a = file.read() 
vectorizer = TfidfVectorizer(stop_words = 'english', ngram_range=(1,2)) 
de = vectorizer.fit_transform(a.split('\n')) 

如何在Sklearn中使用fit_transform来处理大型CSV文件?

回答

0

你认为你的输入作为file你给它在这两种情况下stringfile.readline()返回文件的第一行作为string)。

而是给它一个文件。

操作步骤如下:

​​
+0

稍微容易的解决办法是只需编辑'输入=“file'' - >'输入=” files'',那么对象期望的文件名列表,而不是一个文件对象。 – ncfirth

+0

是的,但他只有一个文件,并且矢量化程序不希望获取字符串列表,而是获取文件列表('file.readlines()'返回字符串列表) – MMF

+0

我仍然有相同的错误 – Kun

相关问题