搜索引擎中同义词的挖掘及使用
用戶在使用搜索引擎過(guò)程中,由于表述不清晰或者查詢?cè)~與索引庫(kù)描述不一致,為了能召回更多更優(yōu)質(zhì)的結(jié)果展示給用戶。這時(shí)就需要對(duì)用戶查詢進(jìn)行分析,包括詞權(quán)、同義詞、糾錯(cuò)等技術(shù),對(duì)原查詢進(jìn)行處理。通常搜索引擎中對(duì)同義詞的處理,線下挖掘同義詞詞典,線上加載詞典,但由于檢索系統(tǒng)應(yīng)用同義詞時(shí)詞典存在部分質(zhì)量不好、或者本來(lái)質(zhì)量好但是應(yīng)用同義詞更上下文有很強(qiáng)的關(guān)聯(lián)性,并不一定適用,因此同義詞主要包括兩大方面,同義詞的挖掘和同義詞的使用。
一、同義詞挖掘方法
1、結(jié)構(gòu)化數(shù)據(jù)
獲取同義詞詞林直接生成字典,抓取百度詞典、金山詞霸等的詞條中的數(shù)據(jù),提取原詞和同義詞。從百度百科、搜狗百科等網(wǎng)站抓取詞條,在詞條中,有“又稱”、“別名”等特征詞,利用這些特征詞,構(gòu)成模版提取詞的其他描述,一般從百科中挖掘出的詞條通常質(zhì)量比較高。
2、anchor數(shù)據(jù)、session日志
anchor數(shù)據(jù)是錨文本,利用指向同一鏈接的不同anchor數(shù)據(jù)抽取同義詞,如“http://www.apple.com.cn/”的anchor有“蘋果中國(guó)”、“Apple 中國(guó)”,可以抽出“蘋果”與“Apple”是同義詞。session日志是同一用戶在一段較短時(shí)間內(nèi)搜索的查詢?nèi)罩荆胹ession信息可以抽取用戶改寫的同義詞,如用戶在搜索中第一次提交查詢“VMware漢化版下載”,沒(méi)有找到想要的結(jié)果,然后對(duì)查詢進(jìn)行修改“VMware中文版下載”,并得到滿意結(jié)果,通過(guò)分析日志,可以抽取“漢化”與“中文”為同義詞。
3、點(diǎn)擊日志
在搜索引擎中,用戶點(diǎn)擊反饋是提升搜索效果最有效的方法,點(diǎn)擊日志是用戶在使用搜索引擎時(shí)產(chǎn)生帶有標(biāo)注的數(shù)據(jù)。點(diǎn)擊日志包括query、title、點(diǎn)擊次數(shù),通過(guò)統(tǒng)計(jì)query中某個(gè)詞在點(diǎn)擊的title沒(méi)有出現(xiàn),但有其他替換詞出現(xiàn),并且這個(gè)替換詞在query點(diǎn)擊其他的title中也有出現(xiàn),并統(tǒng)計(jì)包含替換詞的點(diǎn)擊率等特征,可以判斷原詞與替換詞是否是同義詞。利用點(diǎn)擊日志判斷某兩個(gè)詞是否是同義詞:一、在多個(gè)點(diǎn)擊的title中出現(xiàn),二、在多個(gè)上下文片段下出現(xiàn),三、點(diǎn)擊含有同義詞的title點(diǎn)擊率比較高。如用戶搜索“一歲半寶寶感冒吃什么藥”,點(diǎn)擊title“1歲半小孩感冒發(fā)燒吃什么藥”中“寶寶”與“小孩”是同義詞。
4、統(tǒng)計(jì)機(jī)器翻譯對(duì)齊
利用點(diǎn)擊日志,構(gòu)建平行語(yǔ)料,如相似的query集、query-title等,相似query集是指點(diǎn)擊到同一title的不同query,同時(shí)過(guò)濾掉一些明顯不相關(guān)的query,在相似的query集中取query1與query2相差只有一兩個(gè)詞不一樣(防止平行語(yǔ)料差異過(guò)大,影響翻譯對(duì)齊的效果),構(gòu)建成平行語(yǔ)料,通過(guò)統(tǒng)計(jì)機(jī)器翻譯的對(duì)齊算法,學(xué)習(xí)詞與詞之間的對(duì)齊關(guān)系,利用對(duì)齊詞,抽取對(duì)齊概率高、上下文內(nèi)容豐富的詞語(yǔ)對(duì),作為同義詞。除了挖掘同義詞外,統(tǒng)計(jì)機(jī)器翻譯還可以直接生成改寫句子,利用詞對(duì)齊信息,抽取短語(yǔ)翻譯概率表。
二、同義詞應(yīng)用
通過(guò)上述方法線下挖掘同義詞,生成同義詞詞典,并且根據(jù)同義詞相關(guān)程度,分成不同的級(jí)別,如按照完全等價(jià)(北京大學(xué)、北大)、語(yǔ)義等價(jià)(簡(jiǎn)介、介紹)、語(yǔ)義相近(中國(guó)人、中國(guó))、語(yǔ)義相關(guān)(須知、流程)分成4個(gè)級(jí)別,線上加載同義詞詞典,并將其應(yīng)用于搜索引擎的召回、相關(guān)性計(jì)算中。但是同樣一個(gè)同義詞在不同的上下文表現(xiàn)完全不同,如“做 午飯” vs “燒 午飯” ,“做”和“燒”是同義詞,如果上下文為“仰臥起坐 一天 做 多少 可以 減肥” ,“做”和“燒”完全不能替換,不同的上下文同義詞并不通用,因此線上對(duì)同義詞的使用需要過(guò)濾或調(diào)整級(jí)別。
1、基于語(yǔ)言模型優(yōu)化同義詞使用
語(yǔ)言模型是用來(lái)計(jì)算一個(gè)句子的概率的模型,利用語(yǔ)言模型,可以確定哪個(gè)詞序列的可能性更大,或者給定若干個(gè)詞,可以預(yù)測(cè)下一個(gè)最可能出現(xiàn)的詞語(yǔ)。利用搜索日志,訓(xùn)練語(yǔ)言模型(https://kheafield.com/code/kenlm/),基于訓(xùn)練好的模型可以用來(lái)判斷一句話的概率。判斷一個(gè)詞在上下文中,是否其同義詞可用,首先利用語(yǔ)言模型算出原句子的概率,然后用同義詞替換掉原詞,生成新的句子,再利用語(yǔ)言模型判斷新句子的概率,如果新句子成一句話的概率高于或者約等于原句子的概率,則可以斷定同義詞在上下文中有效,甚至提高同義詞的級(jí)別,如果新句子概率遠(yuǎn)小于原句子概率,則在上下文中不能構(gòu)建為同義詞,應(yīng)當(dāng)對(duì)其進(jìn)行降低同義詞級(jí)別甚至過(guò)濾掉。
2、基于機(jī)器學(xué)習(xí)優(yōu)化同義詞使用
利用機(jī)器學(xué)習(xí)優(yōu)化同義詞,不僅提升系統(tǒng)的相應(yīng)時(shí)間,還提高了搜索系統(tǒng)的召回的準(zhǔn)確度和相關(guān)性特征的表征能力。機(jī)器學(xué)習(xí)解決同義詞使用需要有三個(gè)問(wèn)題:一、訓(xùn)練數(shù)據(jù)的構(gòu)建,二、特征抽取,三、模型選取。訓(xùn)練數(shù)據(jù)利用點(diǎn)擊日志構(gòu)建相似的query集(點(diǎn)擊到同一title的不同query),如果原詞出現(xiàn)在query中,同義詞出現(xiàn)在多個(gè)以上的相似query中并且相似query不包含原詞,則構(gòu)成正例數(shù)據(jù),如果原詞出現(xiàn)在query中,同義詞在所有的相似的query中都沒(méi)有出現(xiàn),則構(gòu)成負(fù)例數(shù)據(jù),同時(shí)為了提高訓(xùn)練數(shù)據(jù)的質(zhì)量,過(guò)濾掉原詞與同義詞差別僅為停用詞,還有一些原詞和同義詞的前綴相同的數(shù)據(jù)也過(guò)濾。特征提取包括:一、利用相似的query集,統(tǒng)計(jì)原詞和同義詞出現(xiàn)的概率、包含上下文片段的原詞和同義詞共現(xiàn)概率(包括四元、三元、二元),統(tǒng)計(jì)數(shù)據(jù)離線做成字典供線上使用,二、原詞與同義詞級(jí)別,查詢長(zhǎng)度,原詞詞數(shù)、同義詞詞數(shù)以及原詞和同義詞等特征。同義詞使用可以看成分類問(wèn)題,通常選取決策樹、GBDT、隨機(jī)森林等算法,如果看成回歸問(wèn)題,可以利用LR模型進(jìn)行預(yù)測(cè)。通過(guò)機(jī)器學(xué)習(xí)模型可以判斷在原詞的上下文中,候選同義詞是滿足以及判斷同義詞級(jí)別。
三、總結(jié)與展望
總結(jié)一下,同義詞包括兩大方面,同義詞的挖掘和同義詞的使用。同義詞的挖掘,包括同義詞詞林,結(jié)構(gòu)化數(shù)據(jù)(詞典、百科等)、anchor數(shù)據(jù)、點(diǎn)擊日志等,除此之外還可以利用點(diǎn)擊日志構(gòu)建平行語(yǔ)料,懸鏈機(jī)器翻譯模型,生成同義詞。同義詞的使用,主要因?yàn)橥x詞跟上下文有很強(qiáng)的關(guān)聯(lián)性,同一同義詞在不同的上下文表現(xiàn)完全不同,需要根據(jù)上下文調(diào)整同義詞使用級(jí)別甚至過(guò)濾同義詞。除了上述所描述的傳統(tǒng)方法外,同義詞還可以利用深度學(xué)習(xí)模型,生成新的同義詞和優(yōu)化同義詞的使用。
總結(jié)
以上是生活随笔為你收集整理的搜索引擎中同义词的挖掘及使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [译]JavaScript中的两个0
- 下一篇: stata检验查看重复值