我正在尝试将我的数据加载到scikit中 - 学习训练一堆分类器。我的数据看起来像以下(分号分隔的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
答案 0 :(得分:1)
您需要做的就是将数据分为两个矩阵:功能和实际目标。您如何解析和检索这些数据完全取决于您。
我之前使用'pandas'来解析数据。
另外,根据我的记忆,你可以使用一些函数(可能不在'pandas'中)使用分隔符进行解析。
希望这有点帮助