我正在尝试将我的数据加载到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
您所需要做的就是将数据转换成两个矩阵:特征和实际目标。如何解析和检索这些数据完全取决于您。
我以前使用'pandas'来解析数据。
此外,据我所知,有一些函数(可能不在'pandas'中)可以用来使用分隔符进行解析。
希望对大家有所帮助