【问题标题】:If my entire training set of documents is class A, how can I use TF-IDF to find other documents of class A?如果我的整个训练文档集都是 A 类,我如何使用 TF-IDF 找到 A 类的其他文档?
【发布时间】:2015-12-09 19:20:18
【问题描述】:

我有 X 个文档集合,所有这些文档都属于 A 类(唯一一个我感兴趣或知道的类)。我还有更多我一无所知的文档集合 Y。 X 和 Y 中的文档来自同一来源,具有相似的格式和相似的主题。我想使用 X 中文档的 TF-IDF 特征向量来查找 Y 中最有可能属于 A 类的文档。

过去,我使用 TF-IDF 特征向量来构建朴素贝叶斯分类器,但在这些情况下,我的训练集 X 由许多类的文档组成,我的目标是将 Y 中的每个文档分类为一个在 X 中看到的类。

这似乎是另一种情况。在这里,我的整个训练集都有相同的类(我没有我知道不属于 A 类的文档),我只对确定 Y 中的文档是否属于该类感兴趣。

分类器似乎走错了路,但我不确定下一步的最佳选择是什么。是否有不同的算法可以使用该 TF-IDF 矩阵来确定文档属于同一类的可能性?

仅供参考,我在 Python 2.7 中使用 scikit-learn,这显然使计算 X(和 Y)的 TF-IDF 矩阵变得简单。

【问题讨论】:

  • 您可以计算 Y 中每个文档的特征向量与 X 的聚合特征向量之间的相似度。如果然后按相似度排序,您可以了解 X 成员的相对可能性.但是,如果不了解 Y 的类别和/或它们与 X 的关系,您就无法得出太多结论。如果 Y 中的文档彼此或 X 非常相似或不同,则它们与 X 的相似性可能无法很好地说明它们彼此的相似性。
  • @BrenBarn,我将如何将 X 的特征向量聚合成一个向量?
  • 您可以将它们相加或平均。
  • 我会尝试异常检测。您需要确定至少一些不是 A 类的文档示例来验证和评估您的模型(但我想您至少需要一些您使用的任何技术)。重点是可以用A类的所有例子来训练模型。好像有an implementation in scikit-learn但是我自己没用过。希望对您有所帮助。

标签: python machine-learning tf-idf text-classification


【解决方案1】:

我认为您拥有的是一个无监督学习应用程序。聚类。使用组合的 X 和 Y 数据集,生成集群。然后覆盖X边界;包含所有 X 个样本的边界。 X 边界中来自 Y 的所有项目都可以被认为是 X。给定样本的 X-ness 来自 Y 的距离是到 X 簇质心的距离。类似的东西。

【讨论】:

    【解决方案2】:

    最简单的做法是已经提出的 - 集群。更具体地说,您从集合 X 中提取单个特征向量,然后将 K-means 聚类应用于整个 X 和 Y 集合。

    ps:注意不要将 k-means 与 kNN(k-最近邻)混淆。您只能应用无监督学习方法。

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 2013-07-19
      • 2017-02-27
      • 2018-11-11
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多