如何使用 FastText 查找相似的句子(Sentences with Out of Vocabulary words)

How to find similar Sentences using FastText ( Sentences with Out of Vocabulary words)

我正在尝试创建一个可以找到相似句子的 NLP 模型。例如,应该可以说“Software Engineer”、“Software Developer”、“Software Dev”、“Soft Engineer”是相似的句子。

我有一个数据集,其中包含 Cheif Executives、Software Engineer 等角色列表,这些术语的变体是未知的(词汇量不足)。

我正在尝试将 fastText 与 Gensim 一起使用,但遇到了困难。 有没有人建议阅读/教程可能对我有帮助?

仅仅 list-of-roles 可能不足以用于 FastText(以及类似的类似 word2vec 的算法),它需要在自然用法上下文中查看单词(或标记), 与其他相关词一起,逐渐将它们推向有趣的 relative-similarity 排列。

您只有头衔或角色的其他描述吗?

如果标题由单个单词组成,在它们 title-context 中大部分意思与正常上下文相同,而且它们很短(每个 2-3 个单词),一种可能的方法是尝试“单词移动距离”(WMD) 指标。

您需要从具有良好上下文和兼容词义的其他地方训练好的 word-vectors,这样 'software'、'engineer' 等的向量都相当不错.然后,您可以使用 Gensim 的 word-vector 类 中的 .wmdistance() 方法来计算一个 run-of-words 与另一个 [=38] 在所有文本单词中有多少不同的度量=].

更新:请注意,对于来自 WMD 的值(以及来自 cosine-similarity 的值),您通常 不应该关注它们的绝对值,只关注它们如何影响相对排名。也就是说,无论原始值 wmd(['software', 'engineer'], ['electric', 'engineer']) returns 是什么,无论是 0.01 还是 100,重要的衡量标准是该数字与其他成对比较的比较结果,例如 wmd(['software', 'engineer'], ['software', 'developer']).