在搜索过程中,需要使用同义词来达到提高召回的目的,例如用户搜索:口红,但是商品名称却不含口红关键词,比如商品名为:xxx彩色唇膏。但其实两个词是指代同一产品。那么在用户搜索的时候,就搜不到对应的产品。这时可以 同义词词典来解决这个问题,使用Elasticsearch做搜索引擎,在query和索引数据时,先将query和doc分词,然后使用同义词替换,将特定词替换成同义词索引。
如:同义词词典 口红 => 彩色唇膏 彩色唇蜜
那么问题又来了?同义词词典怎么构建呢?
首先,很多人会想到使用word2vec来挖掘同义词,实际上根据word2vec的原理可知,其挖掘的topK相近词其实是基于 ***现关系的相关词,并不是只有近义词,因此会出现很大的噪声。
使用word2vec挖掘
如上所示,虽然富裕的相近词,富有,富足有返回,但是穷困,平穷也有返回,词义恰恰是反义词,因此使用完全无监督的word2vec挖掘近义词效果并不好。
关于word2vec挖掘同义词还有两个思路。
参考:
/p/33942535
/question/40777785/answer/88189037
/info-detail-2486542.html