数据挖掘之同义词挖掘

2019-03-20  本文已影响0人  sudop

在搜索过程中,需要使用同义词来达到提高召回的目的,例如用户搜索:口红,但是商品名称却不含口红关键词,比如商品名为:xxx彩色唇膏。但其实两个词是指代同一产品。那么在用户搜索的时候,就搜不到对应的产品。这时可以 同义词词典来解决这个问题,使用Elasticsearch做搜索引擎,在query和索引数据时,先将query和doc分词,然后使用同义词替换,将特定词替换成同义词索引。

如:同义词词典 口红 => 彩色唇膏 彩色唇蜜

那么问题又来了?同义词词典怎么构建呢?

同义词词典来源:

首先,很多人会想到使用word2vec来挖掘同义词,实际上根据word2vec的原理可知,其挖掘的topK相近词其实是基于 共现关系的相关词,并不是只有近义词,因此会出现很大的噪声。
使用word2vec挖掘

'富裕'近义词:
富裕:1.0
富足:0.734253
穷困:0.714261
中产阶级:0.712797
贫穷:0.711762
富有:0.681186
富人:0.656687
有钱:0.633914
贫苦:0.632235
殷实:0.604537

如上所示,虽然富裕的相近词,富有,富足有返回,但是穷困,平穷也有返回,词义恰恰是反义词,因此使用完全无监督的word2vec挖掘近义词效果并不好。
关于word2vec挖掘同义词还有两个思路。

参考:
https://zhuanlan.zhihu.com/p/33942535
https://www.zhihu.com/question/40777785/answer/88189037
http://www.mamicode.com/info-detail-2486542.html

上一篇下一篇

猜你喜欢

热点阅读