我有一个监督文本分类的NLP任务。我对语料库进行了词性标注,然后使用scikit-learn提供的不同向量化器来为scikit-learn提供的分类算法提供数据。我还拥有之前通过无监督方式获得的语料库的标签(类别)。
首先,我对语料库进行了词性标注,然后获得了一些不同的二元组,它们的结构如下:
bigram = [[('word','word'),...,('word','word')]]
显然,我似乎已经具备了进行分类的所有条件(我已经用一些小例子进行了分类,但不是用整个语料库)。
我想使用这些二元组作为特征,以便将其呈现给分类算法(多项式朴素贝叶斯、SVM等)。
有什么标准的(Pythonic的)方法可以整理所有文本数据进行分类,并展示分类后的语料库结果吗?我考虑过使用arff文件和numpy数组,但我想这可能会不必要地复杂化任务。另一方面,我考虑过将数据分成训练和测试文件夹,但我不清楚如何在训练文件夹中设置标签。
回答:
最简单的选项是load_files
,它期望目录布局如下:
data/ positive/ # 类别标签 1.txt # 任意文件名 2.txt ... negative/ 1.txt 2.txt ... ...
(这并不是真正的标准,只是方便且习惯性的做法。网上提供的一些机器学习数据集采用这种格式。)
load_files
的输出是一个包含数据的dict
。