美文网首页
数据挖掘之同义词挖掘

数据挖掘之同义词挖掘

作者: sudop | 来源:发表于2019-03-20 09:57 被阅读0次

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

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

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

    同义词词典来源:
      1. 业务部门整理的同义词
    • 2.百科挖掘别名



      百科中别称,别名,俗称,又称,简称等词可以抽取出来作为同义词。

      1. query日志挖掘
      1. 同义词词林词典,哈工大同义词词林,或者根据英文同义词词典翻译对应的中文同义词

    首先,很多人会想到使用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挖掘同义词还有两个思路。

    • 基于query log挖掘出来的同义词,可以使用word2vec根据相似度阈值来进行筛选
    • 最新的bert模型挖掘出来的embedding包含了word embedding和句法语义信息,可以尝试是否能使用bert来挖掘同义词,这个接下来有空会进行尝试。

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

    相关文章

      网友评论

          本文标题:数据挖掘之同义词挖掘

          本文链接:https://www.haomeiwen.com/subject/hnbamqtx.html