请不要阻止我这个问题,我试着找到答案大约一个月,我找不到它,你是我最后的希望(如果你想报告它,请先报告我然后报告,谢谢)。 我在MATLAB中编写了一个混合文本分类代码,我做了正确但现在我不知道如何评估结果。我对Reuters-21578中的训练集和考试设置一无所知,我无法理解它们。 我的代码在文本中找到关键字,并在混合KNN算法的帮助下将文本放在准确的类中,但问题是我不知道这些候选类是什么?我应该制作它们还是准备好了? 如果在路透社-21578的每个.sgm文件是一个类,那么我怎么才能把它们作为候选类,我的意思是他们是充满的话,那么我应该先进行归类,并达到choosen其他文件,可按照分类类别它们?
答案 0 :(得分:1)
每篇文章/新闻的标记都可以视为类标签。您可以将具有主题的故事拆分为训练集,并使用测试集来评估分类器。在路透社的故事中 - 21578没有任何主题,您可以使用分类器为这些分类指定类别标签。
注意:有很多故事涉及多个主题。
答案 1 :(得分:0)
我也经历过同样的事情。如果路透社数据集的版本对您不重要,那么路透社数据集也可以在nltk.corpus中获取,您可以从中轻松访问测试文档,培训文档及其各自的类别。您不必担心从.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包含原始内容及其各自类别的文档,可以通过上述方法获得。