【发布时间】:2015-10-22 06:25:19
【问题描述】:
我正在尝试将我的数据加载到 scikit-learn 中以训练一堆分类器。我的数据不像标准那样每个文档一个文件,每个类别一个文件夹,而是如下所示(分号分隔的 csv):
train_data.csv :
label; sentence
cat0 ; data
cat0 ; data
cat1 ; data
cat2 ; data
...
因此,我不能使用 load_files,而且在以相关方式提取特征时我有点迷茫。
我应该将我的数据分成每个类别的一个文件,每个文件包含所有相关文档,并放在一个命名文件夹中,还是可以从我的 csv 中按原样导入?每个文档只有一个文件似乎是对时间/资源的极大浪费。
这是我正在处理的代码,但显然缺少一步:)
def create_training_tfidf():
docs = []
targets = []
with open("sets/test2.csv", "r") as sentences_file:
reader = csv.reader(sentences_file, delimiter=';')
reader.next()
for row in reader:
docs.append(row[1])
targets.append(row[0])
from sklearn.feature_extraction.text import TfidfVectorizer
tf = TfidfVectorizer(analyzer='word', ngram_range=(1,3), min_df = 0, stop_words = 'english')
tfidf_matrix = tf.fit_transform(docs)
print tf.get_feature_names()
return tfidf_matrix, targets
【问题讨论】:
-
首先,必须尝试使用哪些代码来加载您的 CSV?你在使用熊猫还是什么?有几种方法可以解决您的任务。
-
我没有尝试过 Pandas,我认为基本的 csv/collections 可以解决问题,我添加了我目前正在处理的代码
-
代码在我看来没问题。您阅读了 csv 并获得了 tf-Idf 功能以及标签……那里缺少什么?除此之外,您的 csv 文件在我看来是一种比每个类别都有一个文件夹更方便的格式,只要文档大小合理。
-
是的,现在它开始工作了,我很愚蠢,0 和 1 倒退了 :) 谢谢
标签: python csv scikit-learn