在搜尋中查詢關鍵詞的意圖判斷直接決定搜尋到的結果是否可以滿足需求。OpenSearch中查詢語義理解(Query Planner)就是用來理解Query搜尋意圖的功能;通過對Query進行一系列智能分析,將Query進行改寫後再在引擎中執行檢索和排序。目前查詢分析可選功能包括同義字拓展、停用詞省略、拼字錯誤修正、詞權重分析、類目預測,除此之外在電商情境下還有實體識別的功能。下文將簡單介紹查詢分析各功能的基本介紹,以及給出電商情境中使用查詢分析的具體範例。
停用詞功能基本介紹
根據系統內建的停用詞典過濾查詢中無意義的詞(一般是使用頻度過高的但不影響查詢結果的詞,比如標點符號、語氣助詞等)。
拼字錯誤修正功能基本介紹
使用者輸入的query並不總是正確的,錯誤的輸入可能導致查詢結果不符合預期或者是無結果,因此需要對使用者的輸入進行拼字檢查。OpenSearch的查詢分析中提供的拼字檢查功能,對查詢詞中的錯誤進行糾正,給出正確的查詢詞。並根據錯誤修正的可信度高低,決定當前查詢是否用錯誤修正後的詞進行查詢。
詞權重功能基本介紹
該功能主要分析了查詢中每一個詞在文本中的重要程度,並將其量化成權重,權重較低的詞可能不會參與召回。這樣可以避免當使用者輸入的查詢詞中包含一些權重低的詞時,仍然按使用者輸入的查詢詞限制召回,導致命中結果過少。
同義字功能基本介紹
在實際搜尋情境中,會經常出現包含同義字的表達。例如,我們希望使用者在搜尋蘋果手機的同時,包含iPhone的內容也能被檢索並呈現。在現實生活中,相同語義的表述詞彙往往有很多,而使用者在檢索的時候很難在一條 query 中將它們全部體現,所以識別和提供同義字檢索顯然可以獲得更高的召回率。同義字功能主要是對查詢詞進行同義擴充,擴大召回和查詢詞同義的文檔。
實體識別功能基本介紹
實體識別,全稱具名實體識別(Named Entity Recognition,簡稱NER),指對查詢詞中的具有特定意義的語義實體進行識別。查詢分析根據識別的結果,依據實體類型的權重對查詢詞進行改寫,使得召回的文檔符合查詢的意圖。Query改寫主要根據實體的重要性,對query進行改寫,召回時保留重要性高的實體詞,對重要性低的部分不影響召回,隻影響演算法排序。
電商情境使用查詢分析範例
以楊冪同款耐克修身連衣群包郵.的查詢詞為例,不配置查詢分析前的Query如下:
query=(default:'楊冪' AND default:'同款' AND default:'耐克' AND default:'修身' AND default:'連' AND default:'衣' AND default:'群' AND default:'包郵' AND default:'.')配置停用詞後實際系統查詢詞為:
query=(default:'楊冪' AND default:'同款' AND default:'耐克' AND default:'修身' AND default:'連' AND default:'衣' AND default:'群' AND default:'包郵')
//說明:此處停用詞將查詢詞中的標點過濾掉了。再添加拼字錯誤修正後實際系統查詢詞為:
query=(default:'楊冪' AND default:'同款' AND default:'耐克' AND default:'修身' AND default:'連衣裙' AND default:'包郵')
//說明:此處拼字錯誤修正將查詢詞中的錯誤輸入“連衣群”糾正了。再添加詞權重後實際系統查詢詞為:
query1=(default:'楊冪' AND default:'同款' AND default:'耐克' AND default:'修身' AND default:'連衣裙' RANK default:'包郵')
query2=(default:'楊冪' RANK default:'修身' RANK default:'包郵' RANK default:'同款' RANK default:'耐克' RANK default:'連衣裙')
//說明:此處配置詞權重後,權重較低的詞“包郵”不參與召回。且當Query1無結果時,引擎會自動觸發重查(re_search),按Query2召回結果,以避免無結果召回。再添加同義字後實際系統查詢詞為:
query1=(default:'楊冪' AND default:'同款' AND ((default:'耐克') OR (default:'nike')) AND default:'修身' AND default:'連衣裙' RANK default:'包郵')
query2=(default:'楊冪' RANK ((default:'耐克') OR (default:'nike')) RANK default:'修身' RANK default:'包郵' RANK default:'同款' RANK default:'連衣裙')
//說明:此處配置同義字後,將“nike”添加為了“耐克”的同義字。且當Query1無結果時,引擎會自動觸發重查(re_search),按Query2召回結果,以避免無結果召回。再添加實體識別後實際系統查詢詞為:
query1=(default:'楊冪' AND ((default:'耐克') OR (default:'nike')) AND default:'修身' AND default:'連衣裙' RANK default:'包郵' RANK default:'同款')
query2=(((default:'耐克') OR (default:'nike')) AND default:'連衣裙' RANK default:'修身' RANK default:'包郵' RANK default:'同款' RANK default:'楊冪')
//說明:實體識別的結果:楊冪(人名)同款(尾碼)耐克/nike(品牌)修身(款式元素)連衣裙(品類)包郵(營銷服務),
召回時保留重要性高的實體詞,重要性低的部分不影響召回隻影響排序。當Query1無結果時,
引擎會自動觸發重查(re_search),按Query2召回結果,以避免無結果召回。控制台配置流程
第一步:控制台——>召回配置——>查詢分析,建立查詢分析:
第二步:配置規則名稱、索引範圍、行業類型以及功能選擇(可多選)。
第三步:建立完畢後,可以進行搜尋效果測試,調試無誤後,設定預設規則並對線上查詢生效。搜尋測試:
在索引視角下將其切換為預設: