为 SciKit 分类准备文本数据

Preparing text data for SciKit classification

我正在尝试将我的数据加载到 scikit-learn 中以训练一堆分类器。我的数据不像标准那样每个文档一个文件,每个类别一个文件夹,而是如下所示(分号分隔的 csv):

train_data.csv :
    label; sentence
    cat0 ; data
    cat0 ; data
    cat1 ; data
    cat2 ; data
    ...

因此我不能使用 load_files 并且在以相关方式提取特征时我有点迷茫。

我应该将我的数据按类别分成一个文件,每个文件都包含所有相关文档,并放在一个命名的文件夹中,还是我可以从我的 csv 中原样导入?每个文档一个文件似乎是对 time/resources.

的巨大浪费

这是我正在处理的代码,但显然缺少一个步骤:)

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' 中)来使用定界符进行解析。

希望对您有所帮助