我有一个人工标记语料库,其中包含超过 5000 个 XML 主题索引文档。它们的大小从几百 KB 到几百 MB 不等。作为手稿的简短文章。它们都被索引到段落级别。我很幸运有这样一个语料库,我正在尝试自学一些 NLP 概念。不可否认,我才刚刚开始。到目前为止,只阅读了免费提供的 NLTK 书籍 streamhacker 和略读 jacobs(?) NLTK 食谱。我喜欢尝试一些想法。
有人建议我,也许我可以采用双元组并使用朴素贝叶斯分类来标记新文档。我觉得好像这是错误的方法。朴素贝叶斯精通真/假关系,但要在我的分层标签集上使用它,我需要为每个标签构建一个新的分类器。其中将近 1000 个。我有内存和处理器能力来承担这样的任务,但我对结果持怀疑态度。但是,我将首先尝试这种方法,以安抚某人的要求。我应该会在接下来的一两天内完成这项工作,但我预测准确度会很低。
所以我的问题有点开放。由于学科的性质和对我的数据的普遍不熟悉,可能很难给出确切的答案。
每个文档还包含一些引文信息,包括作者/s、作者性别为 m、f、mix(m&f) 和其他(Gov't inst 等)、文档类型、出版日期(16 世纪至今) 、人类分析师和其他一些一般元素。我也很欣赏一些有用的描述性任务,以帮助更好地调查这些数据的性别偏见、分析师偏见等。但要意识到这有点超出了这个问题的范围。
最佳答案
您可以通过 building a separate binary classifier for each class 轻松构建多标签分类器,该分类器可以区分该类和所有其他类。对应分类器产生正值的类别是组合分类器的输出。您可以为此算法或任何其他算法使用朴素贝叶斯。 (你也可以玩弄 NB 的概率输出和阈值,但 NB 的概率估计是出了名的糟糕;只有它在其中的排名才使它有值(value)。)
对于文本分类,已知 tf-idf 向量工作良好,但您尚未指定确切的任务是什么。文档上的任何元数据也可能起作用;尝试做一些简单的统计分析。如果数据的任何特征在某些类别中比在其他类别中更频繁地出现,则它可能是一个有用的特征。
关于python - NLTK/NLP 构建多对多/多标签主题分类器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7742894/