特定领域的词相似度

Domain-specific word similarity

有谁知道可用于计算词嵌入或查找特定领域词之间的相似性的准确工具或方法如何?我正在从事一个 NLP 项目,该项目涉及计算技术术语(例如“地址”和“套接字”)之间的余弦相似度,但是像 word2vec 这样的预训练模型没有提供有用的嵌入或准确的余弦相似度,因为它们不是特定的到技术术语。由于“地址”和“套接字”的更一般的非技术含义彼此不相似,因此这些预训练模型没有为我的项目提供足够高的相似度分数。将不胜感激人们能够提供的任何建议。谢谢!

如果您的特定领域有足够的数据,您可以训练自己的 word2vec 模型 - 其结果 word-vectors 仅受您的领域数据影响,将更能反映 in-domain 的含义.

同样,如果您有混合数据,其中提示 一些 词用于多义词的不同含义,您可以尝试预处理您的文本,使用那些提示,用大量不同的标记(如 'address*networking''address*delivery' 等)替换不明确的标记(比如 'address')。即使在这样的过程中有很多错误,其结果可能足以满足特定目的。

例如,您可能会假设特定类型的所有文档(例如来自特定出版物的文章)在写 'address' 时总是表示 'address*networking'。这种粗略的替换,仅在足以收集足够多的 'address*networking' 用法示例的文档子集上,可能会给您留下 good-enough word-vector for 'address*networking'.

(更一般地说,确定多个候选词的哪个词义是由一个特定词表示的称为“词义消歧”,并且可以使用其他预先存在的代码来执行该代码以帮助预处理文本 - 替换歧义带有 more-speciific stand-ins 的标记 – 在执行 word2vec 训练之前。)

即使没有这种辅助 pre-processing,也有许多研究尝试扩展 word2vec 以更好地为具有多种对比意义的单词建模。谷歌搜索 [word2vec polysemy][polysemous embeddings] 应该会出现一堆例子。

但我不知道那些已经成为 widely-used 的技术,或者主要 word2vec 库明确支持的技术,所以我不能特别推荐或展示任何工作代码。我不知道标准的 best-practice 或 off-the-shelf 解决方案——你必须把从研究论文中采纳这些想法作为一个研发项目,执行很多你自己的 implementation/evaluation 才能看到如果对您的目标有任何帮助。