如何根据训练数据识别文本相似度?

数据挖掘 推荐系统 word2vec 低密度脂蛋白 gensim 文本分类
2022-02-25 16:15:26

我有一组已完成标记的文档(1 到 11)。

让我们假设:

Doc No: 1,3,5,7 - Belongs to Type A
Doc No: 2,4,9 - Belongs to Type B
Doc No: 8,10 - Belongs to Type C
Doc No, 6,11 - Belongs to No one

现在,假设我有新的传入文档 - 11,12,13 .. 等等,我想根据现有文档的文本相似性知道它们属于哪个类型(A、B、C 或无)在那个类型中。有人可以建议我如何实现这一目标吗?

我应该创建自己的数据语料库并将其视为监督问题吗?

3个回答

是的,这是一个有监督的问题。我建议按照本文中的示例进行操作。

我会考虑一些无监督技术,然后是监督标签。基本上,将您的传入文档表示为密集向量并计算已标记文档之间的相似度。然后,用最相似的文档标记它们。

关于如何解决的想法

  • 对所有文档运行潜在狄利克雷分配 (LDA)。
  • 然后每个标记的文档是主题的概率分布
  • 它看起来像文档 1:[0.1 0.3 0.0 ...],文档 2:[0.8 0.3 0.1 ...],...
  • 最后,对于所有传入文档,计算与所有已标记文档的相似度。
  • 使用已标记的最相似文档的标签标记传入文档。

另一个想法

  • 用基于 Word2Vec 的模型替换 LDA。

由于您已经标记了训练数据,因此这是一个有监督的机器学习问题。这是一个文本分类问题,给定文档输入训练一个模型,该模型稍后将预测新文档所属的组。

有多种机器学习算法可以解决这个问题。常见的选项是朴素贝叶斯和深度学习。

如果数据结构如下:

数据 标签/目标
文件 1 “一种”
文件 2 “乙”
文件 3 “一种”
文件 4 “C”