elasticsearch - 如何测量单词或非常短的文本之间的相似性

标签 elasticsearch nlp word2vec nearest-neighbor word-embedding

我正在研究在文档列表中查找最近的文档的问题。每个文档都是一个单词或一个很短的句子(例如“牛仔裤”或“机器工具”或“生物番茄”)。最接近的意思是以语义方式关闭。

我尝试使用word2vec嵌入(来自Mikolov的文章),但是最接近的词或上下文链接比语义链接更紧密(按预期方式,“牛仔裤”链接到“鞋子”,而不是“裤子”)。

我尝试在最后一层使用Bert编码(https://mccormickml.com/2019/05/14/BERT-word-embeddings-tutorial/#32-understanding-the-output),但它面临相同的问题。

我尝试了 Elasticsearch ,但是没有找到语义上的相似之处。
(该任务需要用法语解决,但也许用英语解决是一个很好的第一步)

最佳答案

请注意,不同的词 vector 集在捕获所需“语义”相似性方面的程度可能有所不同。 (特别是,使用较短的window进行训练可能会强调彼此替换的单词之间的相似性,而不是仅用于相似的域,因为较大的window值可能会强调。有关更多详细信息,请参见this answer。)

您可能还想看看“移词器的距离”,以比较包含一些相似单词的各种混合形式的短文本。 (这是相当昂贵的,但是应该适合您的短文本。它可以在Python gensim库中作为wmdistance()实例上的KeyedVectors使用。)

如果您拥有在特定的多词短语中使用特定多词短语的训练数据,则可以考虑将所有此类感兴趣的短语组合成单个标记(例如machine_toolbiological_tomatoes),然后进行训练您自己的特定 Realm 的词 vector 。

关于elasticsearch - 如何测量单词或非常短的文本之间的相似性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60858810/

相关文章:

python - PyTorch 中的高效指标评估

nlp - 从对应的词向量得到句子向量有哪些常见的方法?

gensim - Word2Vec:使用的窗口大小的影响

json - 在 JSON 中存储嵌套数据还是使用具有唯一名称的平面结构更好?

amazon-web-services - 在ElasticSearch v6.2中组合 “bool”和 “terms”查询(在AWS上)

设置环境变量后 Elasticsearch 报告默认堆内存大小

python - 如何将 Gensim doc2vec 与预训练的词向量一起使用?

arrays - Perl - 在关联数组单词和单词上下文中查找并保存

elasticsearch - 是否为ignore_unavailable设置为true的Elasticsearch创建NEST搜索请求?

word2vec - H2O 是否或将提供任何与 h2o word2vec 一起使用的预训练向量?