通常,您的目标是对文档进行矢量化(例如 via Doc2Vec
),以提供向量之间的相似性是有用的连续相似性度量的向量。(通常这是余弦相似性,但在某些情况下,欧几里得距离也可能值得尝试。)
如果从阶段出来的向量Doc2Vec
还没有表现出这一点,那么首先要做的是调试和优化该过程。这可能涉及:
- 仔细检查所有内容,包括过程的记录输出,以查找错误
- 调整文档预处理,以确保保留显着的文档特征并丢弃噪声
- 调整
Doc2Vec
元参数和模式,以确保生成的向量对最终目标中重要的相似性类型敏感。
Doc2Vec
如果没有关于您的数据大小和特征、到目前为止的选择/代码和最终目标的更多详细信息,很难说更多关于改进该步骤的信息。
您如何确定两个文档是否“足够相似”?你需要多少这样的评估数据来帮助Doc2Vec
以可重复的、定量的方式对不同的模型进行评分。(能够进行这种自动评分将让您测试更多的Doc2Vec
排列。)是否有文档对的示例,其中简单的 doc-vector cosine-similarity 运行良好或运行不佳?
到目前为止,我在您选择的单词中看到了两个危险信号:
- “没有达到完美的结果”——获得“完美”的结果是一个不切实际的目标。考虑到项目的资源和对复杂性的容忍度,您想找到接近最新技术的东西
- “每个文档 300 个功能” -
Doc2Vec
并没有真正找到独立的“300 个功能”。它是一个 300 维的“密集”“嵌入”向量。每个方向——不仅仅是 300 个轴——都可能是有意义的。因此,即使某些“方向”对您的需求更为重要,它们也不太可能与精确的尺寸轴完全相关。
可能对(v1 - v2)
差异或(v1 || v2)
串联的分类器可以帮助改进“是否足够相似”的决定,但您需要大量的训练数据,并且可能需要一个非常复杂的分类器。