【问题标题】:An evaluation of text classification method with Reuters-21578 dataset使用 Reuters-21578 数据集评估文本分类方法
【发布时间】:2015-12-15 04:47:26
【问题描述】:
请不要因为这个问题阻止我,我试图找到答案大约一个月,我找不到它,你是我最后的希望(如果你想报告,请先回答我然后报告,谢谢)。
我在 MATLAB 中编写了一个混合文本分类代码,我做对了,但现在我不知道如何评估结果。我对 Reuters-21578 中的训练集和考试集一无所知,我无法理解它们。
我的代码在文本中找到关键字,并在混合 KNN 算法的帮助下将文本放入其准确的类中,但问题是我不知道这些候选类是什么?我应该制作它们还是准备好它们?
如果 Reuters-21578 中的每个 .sgm 文件都是一个类,那么我如何将它们用作候选类,我的意思是它们充满了单词,所以我应该先对它们进行分类,然后再选择其他文档可以分类的类他们?
【问题讨论】:
标签:
text
dataset
evaluation
text-classification
reuters
【解决方案1】:
我也经历过。如果您不关心 reuters 数据集的版本,那么 nltk.corpus 中也提供了 reuters 数据集,您可以从中轻松访问测试文档、训练文档及其各自的类别。您不必担心从 .sgm 文件中提取它们。
你可以这样做:
from nltk.corpus import reuters
#This gives all files
documents = reuters.fileids()
#to get only the training and testing documents
train_docs = filter(lambda doc: doc.startswith("train"),documents);
test_docs = filter(lambda doc: doc.startswith("test"),documents);
#To get the raw data of a document
data = reuters.raw(documents[0])
#to get the categories/class in your case
category = reuters.categories(documents[0])
现在,您可以使用这些来训练和测试。简而言之,test_docs 和 train_docs 包含的文档包含原始内容及其各自的类别,可以通过上述方法获取。
【解决方案2】:
每篇文章/新闻的标签可以被认为是类标签。您可以将带有主题的故事分成一个训练集和一个测试集来评估您的分类器。 reuters-21578 中的故事没有任何主题,您可以使用分类器为这些故事分配类别标签。
注意:有很多故事有多个主题。