我想使用Sklearn在一个大的csv文件中对我的数据进行矢量化,我使用了以下代码:
第一次尝试:
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer(input='file', stop_words = 'english', ngram_range=(1,2))
vectorizer.fit_transform('test.csv')
但是我得到了这个错误:
AttributeError: 'str' object没有属性'read'
第二次尝试,但仍然抛出错误:
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'))
如何使用fit_transform在Sklearn处理一个大的CSV文件?
您认为您的输入为file
,并且在这两种情况下您给它一个string
(file.readline()
返回您的文件的第一行作为string
)。
按如下操作:
file = open('test.csv', 'r')
vectorizer.fit_transform(file)