0

请不要因为这个问题阻止我,我试图找到答案大约一个月,我找不到它,你是我最后的希望(如果你想报告它,请先回答我然后报告,谢谢)。我在 MATLAB 中编写了一个混合文本分类代码,我做对了,但现在我不知道如何评估结果。我对 Reuters-21578 中的训练集和考试集一无所知,我无法理解它们。我的代码在文本中找到关键字,并在混合 KNN 算法的帮助下将文本放入其准确的类中,但问题是我不知道这些候选类是什么?我应该制作它们还是准备好它们?如果 Reuters-21578 中的每个 .sgm 文件都是一个类,那么我如何将它们用作候选类,我的意思是它们充满了文字,

4

2 回答 2

1

每篇文章/新闻的标签可以被认为是类标签。您可以将带有主题的故事分成一个训练集和一个测试集来评估您的分类器。reuters-21578 中有没有任何主题的故事,您可以使用分类器为这些故事分配类别标签。

注意:有许多具有多个主题的故事。

于 2015-09-28T16:06:49.540 回答
0

我也经历过同样的事情。如果您不关心 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 包含具有原始内容的文档及其各自的类别,可以通过上述方法获得。

于 2016-07-01T06:59:50.947 回答