在搜索過程中,需要使用同義詞來達(dá)到提高召回的目的,例如用戶搜索:口紅,但是商品名稱卻不含口紅關(guān)鍵詞,比如商品名為:xxx彩色唇膏。但其實(shí)兩個(gè)詞是指代同一產(chǎn)品。那么在用戶搜索的時(shí)候,就搜不到對(duì)應(yīng)的產(chǎn)品。這時(shí)可以 同義詞詞典來解決這個(gè)問題,使用Elasticsearch做搜索引擎,在query和索引數(shù)據(jù)時(shí),先將query和doc分詞,然后使用同義詞替換,將特定詞替換成同義詞索引。
如:同義詞詞典 口紅 => 彩色唇膏 彩色唇蜜
那么問題又來了?同義詞詞典怎么構(gòu)建呢?
同義詞詞典來源:
- 業(yè)務(wù)部門整理的同義詞
-
2.百科挖掘別名
百科中別稱,別名,俗稱,又稱,簡(jiǎn)稱等詞可以抽取出來作為同義詞。
- query日志挖掘
- 同義詞詞林詞典,哈工大同義詞詞林,或者根據(jù)英文同義詞詞典翻譯對(duì)應(yīng)的中文同義詞
首先,很多人會(huì)想到使用word2vec來挖掘同義詞,實(shí)際上根據(jù)word2vec的原理可知,其挖掘的topK相近詞其實(shí)是基于 共現(xiàn)關(guān)系的相關(guān)詞,并不是只有近義詞,因此會(huì)出現(xiàn)很大的噪聲。
使用word2vec挖掘
'富裕'近義詞:
富裕:1.0
富足:0.734253
窮困:0.714261
中產(chǎn)階級(jí):0.712797
貧窮:0.711762
富有:0.681186
富人:0.656687
有錢:0.633914
貧苦:0.632235
殷實(shí):0.604537
如上所示,雖然富裕的相近詞,富有,富足有返回,但是窮困,平窮也有返回,詞義恰恰是反義詞,因此使用完全無(wú)監(jiān)督的word2vec挖掘近義詞效果并不好。
關(guān)于word2vec挖掘同義詞還有兩個(gè)思路。
- 基于query log挖掘出來的同義詞,可以使用word2vec根據(jù)相似度閾值來進(jìn)行篩選
- 最新的bert模型挖掘出來的embedding包含了word embedding和句法語(yǔ)義信息,可以嘗試是否能使用bert來挖掘同義詞,這個(gè)接下來有空會(huì)進(jìn)行嘗試。
參考:
https://zhuanlan.zhihu.com/p/33942535
https://www.zhihu.com/question/40777785/answer/88189037
http://www.mamicode.com/info-detail-2486542.html
