本發(fā)明涉及互聯網技術領域,具體涉及一種生成搜索引擎查詢擴展詞的方法及系統(tǒng)。
背景技術:
搜索引擎的目標是對用戶查詢和文檔信息進行匹配,并把最相關的結果返回給用戶。在信息檢索技術中,查詢詞擴展是一種能夠有效提高查詢效率的技術。查詢詞擴展技術通過將與用戶查詢詞相近、相關的詞擴展到用戶查詢詞中的方法,更準確地描述用戶的信息需求,去除用戶查詢詞的多義性,從而更精確地查詢用戶所需信息。然而由于用戶查詢與文檔信息不匹配、表達不完整等現象的存在,傳統(tǒng)信息檢索的結果難以達到用戶的查詢目標,甚至會出現無結果和少結果的情況。
技術實現要素:
本發(fā)明的目的是有效解決搜索查詢無結果或少結果現象,提高搜索引擎查詢效率。
為了實現上述目的,本發(fā)明提供了一種生成搜索引擎查詢擴展詞的方法,包括如下步驟:
獲取網絡會話日志,提取所有網絡用戶的查詢詞得到查詢詞語料訓練庫;
利用查詢詞語料訓練庫對詞向量模型進行訓練;
接收查詢文本并將其輸入至訓練好的詞向量模型后,獲得擴展詞。
進一步,所述獲取日志,提取所有網絡用戶的查詢詞得到查詢詞語料訓練庫包括
按照用戶id將網絡會話日志進行分割,得到多個用戶日志;
根據用戶日志提取每個用戶的查詢詞,并根據查詢詞獲取對應的重構詞;
獲取得到同一文檔的不同的查詢詞,計算得到同一文檔的不同的查詢詞的概率,將不小于概率閾值的所有不同的查詢詞作為查詢詞語料訓練庫。
進一步,所述根據用戶日志提取每個用戶的查詢詞,并根據查詢詞獲取對應的重構詞還包括
對根據所有用戶日志得到的查詢詞進行去重處理。
進一步,所述接收查詢文本并將其輸入至訓練好的詞向量模型后,獲得擴展詞包括
利用訓練好的詞向量模型對查詢文本進行分詞,得到分詞集合;
根據語料訓練庫得到分詞集合中每個分詞的相關詞,將所有分詞的候選擴展詞生成候選擴展詞集合;
計算中每個候選擴展詞與分詞集合中每個分詞的余弦距離均值并進行排序,提取排序前n作為擴展詞。
本發(fā)明還提供了一種生成搜索引擎查詢擴展詞的系統(tǒng),包括
日志分析模塊,用于獲取網絡會話日志,提取所有網絡用戶的查詢詞得到查詢詞語料訓練庫;
模型訓練模塊,用于利用查詢詞語料訓練庫對詞向量模型進行訓練;
擴展詞生成模塊,用于接收查詢文本并將其輸入至訓練好的詞向量模型后,獲得擴展詞。
進一步,所述日志分析模塊包括
分割單元,用于按照用戶id將網絡會話日志進行分割,得到多個用戶日志;
局部分析單元,用于根據用戶日志提取每個用戶的查詢詞,并根據查詢詞獲取對應的重構詞;
語料生成單元,用于獲取得到同一文檔的不同的查詢詞,計算得到同一文檔的不同的查詢詞的概率,將不小于概率閾值的所有不同的查詢詞作為查詢詞語料訓練庫。
進一步,所述語料生成單元包括
去重子單元,用于將根據所有用戶日志得到的查詢詞進行去重處理。
進一步,所述擴展詞生成模塊包括
查詢詞分詞單元,用于利用訓練好的詞向量模型對查詢文本進行分詞,得到分詞集合;
候選擴展詞單元,用于根據語料訓練庫得到分詞集合中每個分詞的相關詞,將所有分詞的候選擴展詞生成候選擴展詞集合;
擴展詞生成單元,用于計算中每個候選擴展詞與分詞集合中每個分詞的余弦距離均值并進行排序,提取排序前n作為擴展詞。
在上述技術方案中,本發(fā)明以全網所有用戶的查詢詞為語料庫對詞向量模型進行訓練,實現了對查詢詞進行語義擴展進而提高搜索引擎查詢結果的準確度和召回率,有效解決了搜索查詢無結果和少結果的問題。
附圖說明
為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領域普通技術人員來講,還可以根據這些附圖獲得其他的附圖。
圖1為本發(fā)明所述的生成搜索引擎查詢擴展詞的方法的流程示意圖;
圖2為本發(fā)明所述的生成搜索引擎查詢擴展詞的方法中語料數據庫生成的流程示意圖;
圖3為本發(fā)明所述的生成搜索引擎查詢擴展詞的方法中根據點擊同一文檔獲取查詢詞一個實施例的工作原理流程示意圖;
圖4為本發(fā)明所述的生成搜索引擎查詢擴展詞的方法中獲取擴展詞的工作原理流程示意圖;
圖5為本發(fā)明所述的生成搜索引擎查詢擴展詞的系統(tǒng)的結構框圖示意圖。
具體實施方式
為了使本領域的技術人員更好地理解本發(fā)明的技術方案,下面將結合附圖對本發(fā)明作進一步的詳細介紹。
如圖1所示,本發(fā)明提供了一種生成搜索引擎查詢擴展詞的方法,包括如下步驟:
s101、獲取網絡會話日志,提取所有網絡用戶的查詢詞得到查詢詞語料訓練庫;
進一步,所述s101具體包括如下步驟:
s1011、按照用戶id將網絡會話日志進行分割,得到多個用戶日志;
具體地,切割依據是同一個用戶在較短時間內發(fā)出的連續(xù)查詢。其中同一個用戶是指相同的userid,、cookied,或移動端的imei號標識,較短時間是指會話的持續(xù)時間,比如10分鐘。處理后的不同會話之間用空行分隔。
s1012、根據用戶日志提取每個用戶的查詢詞,并根據查詢詞獲取對應的重構詞;
本步驟目的在于對所有用戶的查詢詞進行抽取,因所采用會話切分方法難免存在一定缺陷,以及在同一會話中可能存在用戶意圖轉移現象,并非原查詢的所有查詢重構都能表達其潛在用戶意圖,因此需要考慮查詢表達式相似性來識別能描述原查詢潛在查詢意圖的查詢重構。具體地,基于如下事實:用戶一般重構查詢行為是在保持原查詢某些詞不變的情況下添加、刪除與替換詞來表達其潛在意圖,盡可能利用與原查詢相似的查詢表達式來表達其潛在意圖,因此本文假設若q′與q擁有相似詞越多,說明q′越能表達q的潛在意圖??紤]到查詢中某些詞拼寫錯誤以及詞的前綴后綴現象會影響到這種相似性的計算,可以用計算字符串之間相似度的di-gramjaccard距離以及標準化編輯距離來計算兩查詢之間的相似性,公式如下:
其中,min(ujac,ulevenstein)表示取ujac與ulevenstein二者之間較小值,ucontent值越大,表明兩個查詢詞之間的表達式相似性越大。
s1013、獲取得到同一文檔的不同的查詢詞,計算得到同一文檔的不同的查詢詞的概率,將不小于概率閾值的所有不同的查詢詞作為查詢詞語料訓練庫。
基于同一用戶抽取的查詢詞的重構查詢,再經過表達式相似性過濾,可能存在上下文語料稀疏問題,本發(fā)明在本步驟中抽取全網所有用戶的查詢詞作為補充。本實施例中,具體方法是首先根據查詢詞和查詢所點擊的結果構建二部圖,再利用隨機游走模型計算出每個查詢詞的文檔分布作為查詢詞的查詢向量,最后利用kl距離來計算兩查詢向量之間的相似性。具體如圖3所述,圖中節(jié)點由查詢q1、q2、q3,以及這些查詢所點擊的文檔d1、d2構成,其中,圖中查詢與點擊文檔的實線邊表示點擊關系,經過隨機游走后,q1與q3最終到達文檔狀態(tài)相似,q2、q3可到達的文檔狀態(tài)相似。
s102、利用查詢詞語料訓練庫對詞向量模型進行訓練;
本發(fā)明采用word2vector,word2vector具體采取兩種模型:cbow模型和skip-gram模型。cbow模型能夠根據輸入周圍n-1個詞來預測出這個詞本身,而skip-gram模型能夠根據詞本身來預測周圍有哪些詞。本實施例采用基于hirarchicalsoftmax算法的skip-gram模型。hierarchicalsoftmax是一種對輸出層進行優(yōu)化的策略,輸出層利用huffman樹計算概率值,其本質是把n分類問題變成log(n)次二分類,可以大大加速模型的訓練和推斷效率。
本文中使用的word2vectorskip-gram詞向量模的概率函數可以表示為
以對數似然函數l為目標函數,根據查詢詞w,當前詞的上下文詞標記為context(w),調用公式
再根據迭代公式
s103、接收查詢文本并將其輸入至訓練好的詞向量模型后,獲得擴展詞。
進一步,如圖4所示,所述s103具體包括
s1031、利用訓練好的詞向量模型對查詢文本進行分詞,得到分詞集合;
s1032、根據語料訓練庫得到分詞集合中每個分詞的相關詞,將所有分詞的候選擴展詞生成候選擴展詞集合;
s1033、計算中每個候選擴展詞與分詞集合中每個分詞的余弦距離均值并進行排序,提取排序前n作為擴展詞。
假設訓練得到的skip-gram模型文件為word2vec_skip_gram.bin
使用gensim.models的word2vec對象加載模型文件得到模型對象
self._model=word2vec.load(“./word2vec_skip_gram.bin”)
通過模型對象的most_similar方法可以得到詞的topn語義相關詞(詞向量)
words=self._model.most_similar(positive,negative,topn)。
具體地,本實例首先對原始查詢詞q分詞得到q{q1,q2,…,qm},進而利用word2vectorskip-gram詞向量模型計算得到q中每個q的候選擴展詞。具體地,設c是候選擴展詞集合,
其中,nn(q)是詞向量空間中與q距離最近的k個term的集合。對c中的每個候選擴展詞t,計算t與查詢詞q中每個q的詞向量余弦相似度距離的均值。
計算每個候選擴展詞與q中每個q的余弦距離,并計算均值;
對c中候選擴展詞t按照sim(t,q)分值進行從高到低排序,取topk個作為查詢詞的最終擴展詞。查詢擴展詞應用模型為
其中qexp是候選查詢擴展詞集合c中的topk個terms的集合,α是差值參數。
下面以查詢文本“變形金剛”為例進行說明。查詢文本“變形金剛”分詞后得到q為{‘變形金剛’},通過模型計算得到的候選擴展詞集合c為:
對c中的每個候選擴展詞t,計算t與查詢詞q中每個q的詞向量余弦相似度距離的均值sim(t,q),并按sim(t,q)從高到低排序后取top5得到最終搜索相關詞:
如圖5所示,本發(fā)明還提供了一種生成搜索引擎查詢擴展詞的系統(tǒng),包括日志分析模塊10、模型訓練模塊20和擴展詞生成模塊30。
其中,
日志分析模塊10,用于獲取網絡會話日志,提取所有網絡用戶的查詢詞得到查詢詞語料訓練庫;
模型訓練模塊20,用于利用查詢詞語料訓練庫對詞向量模型進行訓練;
擴展詞生成模塊30,用于接收查詢文本并將其輸入至訓練好的詞向量模型后,獲得擴展詞。
進一步,所述日志分析模塊包括
分割單元,用于按照用戶id將網絡會話日志進行分割,得到多個用戶日志;
局部分析單元,用于根據用戶日志提取每個用戶的查詢詞,并根據查詢詞獲取對應的重構詞;
語料生成單元,用于獲取得到同一文檔的不同的查詢詞,計算得到同一文檔的不同的查詢詞的概率,將不小于概率閾值的所有不同的查詢詞作為查詢詞語料訓練庫。
進一步,所述語料生成單元包括
去重子單元,用于將根據所有用戶日志得到的查詢詞進行去重處理。
進一步,所述擴展詞生成模塊包括
查詢詞分詞單元,用于利用訓練好的詞向量模型對查詢文本進行分詞,得到分詞集合;
候選擴展詞單元,用于根據語料訓練庫得到分詞集合中每個分詞的相關詞,將所有分詞的候選擴展詞生成候選擴展詞集合;
擴展詞生成單元,用于計算中每個候選擴展詞與分詞集合中每個分詞的余弦距離均值并進行排序,提取排序前n作為擴展詞。
以上只通過說明的方式描述了本發(fā)明的某些示范性實施例,毋庸置疑,對于本領域的普通技術人員,在不偏離本發(fā)明的精神和范圍的情況下,可以用各種不同的方式對所描述的實施例進行修正。因此,上述附圖和描述在本質上是說明性的,不應理解為對本發(fā)明權利要求保護范圍的限制。