为SciKit分类准备文本数据

时间:2015-07-30 18:34:41

标签: python csv scikit-learn

我正在尝试将我的数据加载到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

1 个答案:

答案 0 :(得分:1)

您需要做的就是将数据分为两个矩阵:功能和实际目标。您如何解析和检索这些数据完全取决于您。

我之前使用'pandas'来解析数据。

另外,根据我的记忆,你可以使用一些函数(可能不在'pandas'中)使用分隔符进行解析。

希望这有点帮助