我正在研究在文档列表中查找最近的文档的问题。每个文档都是一个单词或一个很短的句子(例如“牛仔裤”或“机器工具”或“生物番茄”)。最接近的意思是在语义上接近。
[我曾尝试使用word2vec嵌入(来自Mikolov的文章),但是比语义上最接近的词或更与上下文相关的链接(按预期方式,“牛仔裤”链接到“鞋子”,而不是“裤子”)。
我已经尝试在最后一层使用Bert编码(https://mccormickml.com/2019/05/14/BERT-word-embeddings-tutorial/#32-understanding-the-output,但它面临相同的问题。
我已经尝试过弹性搜索,但是找不到语义上的相似之处。(该任务需要用法语解决,但也许用英语解决是一个不错的第一步)
请注意,不同的词向量集在捕获所需“语义”相似性方面的程度可能有所不同。 (特别是,使用较短的window
进行训练可能会强调彼此直接替换的单词之间的相似性,而不是仅用于相似的域,因为较大的window
值可能会强调。请参阅this answer有关更多详细信息。)
[您可能还想看看“移词器的距离”,以比较包含一些相似单词的各种混合形式的短文本。 (这是相当昂贵的,但是应该适合您的短文本。它在Python gensim
库中可以作为wmdistance()
实例上的KeyedVectors
使用。)
[如果您有使用特定多词短语的训练数据,则在许多类似自然语言的微妙上下文中,您可以考虑将所有此类感兴趣的短语组合成单个标记(例如machine_tool
或[ C0]),并训练自己的特定领域单词向量。