为SciKit分类准备文本数据



我正在尝试将我的数据加载到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'中)可以用来使用分隔符进行解析。

希望对大家有所帮助

相关内容

  • 没有找到相关文章

最新更新