特定于域的单词相似性



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

有了来自特定领域的足够数据,您可以训练自己的word2vec模型 - 其生成的词向量仅受域数据的影响,将更能反映域内的含义。

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

例如,也许您会假设某种类型的所有文档(例如来自特定出版物的文章)在编写'address'时总是意味着'address*networking'。这种粗略的替换,仅在某些足以收集足够多的不同'address*networking'用法示例的文档子集上,可能会给您留下一个足够好的词向量来'address*networking'

(更一般地说,确定特定单词的多个候选词义的哪个词义称为"词义消歧",并且可以使用其他预先存在的代码来执行该操作,以帮助预处理文本 - 用更具体的替身替换歧义标记 - 在执行word2vec训练之前。

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

但是我不知道任何那些已经广泛使用的技术,或者被主要的word2vec库明确支持,所以我不能特别推荐或显示任何工作代码。我不知道一个标准的最佳实践或现成的解决方案 - 你必须将采用研究论文中的这些想法视为一个研发项目,执行大量自己的实施/评估,看看是否有任何帮助来实现你的目标。

最新更新