搜索引擎之同义词、近义词、上位词挖掘

       在搜索引擎中,我们会碰到大量的同义词需求。用户在描述同一个东西的时候,会有各种各样的描述。

      在电商搜索环境中,同义词分成好几类:

     1. 品牌同义词:nokia=诺基亚,Adidas=阿迪达斯

     2. 产品同义词:投影仪≈投影机,电话≈cell phone; automobile 和car。

     3.旧词和新词:自行车  -> 脚踏车

     4.南方用词和北方用词:番茄-> 西红柿。

     5.传统的同义词:储物柜和收纳柜。

     6.错别字同义词:瑜伽和瑜珈(错误写为斜王旁)

       对应英文来说,还有词干提取,如单复数、动词原形和ing形式;英文还有一个特殊的现象,例如两个单词可以分开写,也可以合并在一起,例如keychain和key chian(钥匙链),boyfriend 和boy friend。

       近义词就比较多了: 包括size 大码≈大号;短裤和热裤;边疆和边疆。

      上位词:苹果手机上位词 是手机。

       反义词:宽松和修身。当我们做query改写的时候,改写千万不能改写出反义词。


       如果我们仔细观察,我们会发现有的词可以互相替换,有些词是只能单向替换(换一个方向就不对了,例如周杰伦可以替换为周董,但是周董只能在一定情况下替换为周董)。

如何挖掘得到同义词呢?

        我们可以从用户搜索词、商品标题、搜索和点击来获取。最根本的来源还是商家对商品标题的优化,聪明的商家会把同义词堆叠在标题中,以期望获取到更多的流量。

        从点击日志上看,如果w1和w2是同义词,那么搜索w1和搜索w2,理论上会有大量的共同点击的商品x1、x2、x3等等。

         标题商品标题得到大量的语料,例如投影仪和投影机,拉杆箱(draw bar box)和旅行箱(luggage)。


       通过统计或者word2vec训练词的相关性,找到高相关度的词。统计这些词在标题中共同出现次数,即w1和w2的共现次数。

以下代码查看word2vec的效果


fromgensim.test.utilsimportcommon_texts,get_tmpfile

fromgensim.modelsimportWord2Vec

model_path="./data/word2vec_en_50d.model"

model=Word2Vec.load(model_path)

model.wv['computer']

Out[6]:

array([-0.48867282, -0.10507897, -0.23138586, -0.10871041,  0.1514824 ,

      -0.01487145, -0.385491  ,  0.01792672, -0.32512784, -0.9063424 ,

      -0.5428677 ,  0.6565156 ,  0.02183418,  0.07939139,  0.03485253,

        0.319492  , -0.27633888,  0.52685845, -0.0582791 , -0.4844649 ,

        0.249212  ,  0.8144138 , -0.03233343, -0.36086813,  0.34835583,

      -0.07177112,  0.0828275 ,  0.6612073 ,  0.74526566, -0.12676844,

      -0.08891173, -0.08520225, -0.04619604,  0.13580324,  0.183159  ,

        0.15528682,  0.01727525, -0.43599448, -0.2579532 , -0.23192754,

      -0.32965428,  0.09547858,  0.00419413, -0.06285212,  0.18150753,

      -0.21699691,  0.60977536, -0.06555454,  0.35746607, -0.06610812],

      dtype=float32)

In[13]:

model.wv.similarity('case','cover')    # case 和cover在描述手机壳的时候基本是同义词

Out[13]:

0.8538678

In[22]:

defget_top_sim(word):

similary_words=model.wv.most_similar(word,topn=10)

forw,sinsimilary_words:

print(word,"=",w,s)

get_top_sim('case')

case = holder 0.8879926800727844

case = clamshell 0.887456476688385

case = tablet 0.8748524188995361

case = storage 0.8703626990318298

case = carrying 0.8672872185707092

case = hardcase 0.8580055236816406

case = carring 0.8558304309844971

case = seal 0.8552369475364685

case = cover 0.8538679480552673

case = stand 0.8476276993751526


        通过word2vec,我们可以找出原始词和最相似的10个单词,然后我们统计origin 和substitute(原始词和替代词)在标题中的共现次数,通过这种挖掘,我们找到大量的候选词对,这种词通过人工review可以作为同义词的候选。

       对这种情况稍微做一些扩展,我们就能得到同义query到同义query之间的对应关系。


        统计分析上位词,统计每个商品类目下的产品词,出现次数top n的产品词w,对应到商品的类目词c,那么w -> c很可能 就是一个上位词关系。

人工词表

       在维护词表的时候,我们一定不能忘记人工词表。人工词表的维护必须要有后台工具。

我们如何应用人工词表:

        1、在商品标题对应的索引词中做同义词扩展,当不用不管用同义词的哪一个来搜索的时候都可以搜索到。

        2、在QueryProcess模块中,对词做同义词扩展、做近义词改写,改写出来的近义词的权重要比原始词的权重更小。在改写中,我们还会遇到一个问题,Q(分词为w1,w2,w3)改写成q1(w1,w2)和q2(w2,w3)的时候,我们会遇到q1和q2分别和Q如何计算相关性的问题。

         3、当query 做同义词改写的时候,需要一些词做context(上下文)。如“周董的新歌”可以修改为“周杰伦的新歌”,但是“周董的公司”就未必是周杰伦的公司了。

参考文献:

1、搜索引擎同义词反馈机制【百度搜索研发部】

2、https://www.docin.com/p-1136208118.html

3、面向检索信息的同义词挖掘

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容