業務情境不一樣,某些詞的同義字也會有所差異,會存在系統內建詞典缺少同義字或者提供了錯誤的同義字。因此,提供了幹預功能,供使用者自訂同義字。
通過建立同義字幹預詞典,並在查詢分析中同義字配置相應的幹預詞典,就可以幹預同義字功能。
使用介紹
目前支援對系統內建的同義字詞典進行人工幹預(同義字幹預詞典主要是在”查詢分析——同義字”中的系統內建詞典功能基礎上再進行追加),使用者實現幹預操作的過程通常有以下四步:
建立同義字幹預詞典。使用者通過
搜尋演算法中心-->召回配置--->詞典管理
,進入查詢分析幹預詞典頁後,單擊頁面右上方的“建立”。選擇了詞典類型後,為詞典命名,幹預詞典建立完成,詞典會出現在頁面的詞典列表中。新增和管理幹預詞典內的幹預詞條。詞典建立完成後,在列表中單擊詞典名稱或單擊詞典對應的“詞條管理”,即可進入到幹預詞典的詳情頁。使用者可在詳情頁內進行幹預詞條的新增和管理。
使用者可對Query進行兩種類型的幹預:
添加同義字:對一個Query添加同義字,系統在查詢Query時會同時返回包含Query的或添加的同義字的搜尋結果。
屏蔽同義字:對一個Query屏蔽已有的同義字,系統在查詢Query時不再會同時返回包含屏蔽的已有的同義字的搜尋結果。
使用幹預詞典。建立並填充完成同義字幹預詞典後,可在任意應用的查詢規則內選擇使用。
幹預詞典效果測試和上線。查詢分析規則使用了幹預詞典後,在應用到線上前建議先進行搜尋效果測試,評估效果是否符合幹預預期。
幹預詞條生效規則
查詢詞中的一個或連續多個(最多5個)不包含停用詞的語義term和幹預詞條中的query相同,則會幹預生效;
同義字幹預生效樣本:query為:
迪奧aj聯名低幫鞋子
,配置的幹預詞條為:迪奧->dior
;aj->air jordan
;聯名->合作
,最終三個同義字幹預均會生效。可以命中:dior aj 聯名低幫鞋子、dior air jordan 聯名低幫鞋子、dior aj 合作低幫鞋子、dior air jordan 合作低幫鞋子等8個query的結果。查詢詞中匹配權重靠前的幹預詞條優先生效;例如:配置的幹預詞條為:
咽喉炎 -> 咽炎,扁挑體炎,上火,喉嚨痛,喉嚨紅腫
;低燒 -> 發燒、發熱,體溫高
;藥 -> 中藥,西藥,中成藥
。query為:咽喉炎低燒吃什麼藥好得快,假如咽喉炎和藥的權重是7,低燒的權重是4;那麼最後保留下來的同義字是咽喉炎 -> 咽炎,扁挑體炎,上火,喉嚨痛,喉嚨紅腫 藥 -> 中藥,西藥,中成藥查詢詞中匹配權重相同時,位置靠前的幹預詞條優先生效;例如:幹預詞條
蘋果手機->iphone
,手機充電器->移動電源
,query:蘋果手機充電器
,最終生效的同義字幹預為蘋果手機->iphone
查詢詞中匹配位置相同時,幹預詞條的長度(語義term個數)優先,即優先使用語義term個數多的幹預詞條;例如:幹預詞條
手機充電器-> 移動電源
,手機->行動電話
, query:手機充電器哪個牌子好
,最終生效的同義字幹預為手機充電器 -> 移動電源
使用者幹預的優先,即如果系統的同義字和使用者幹預的有衝突,保留使用者幹預的。衝突指使用者幹預的部分包含或者被包含在系統出的同義字的語義term範圍(指位置)內。如下:
使用者幹預的範圍包含系統的範圍。假設系統有同義字:包菜 -> 圓白菜,查詢詞:
炒包菜
會被擴充為:炒 AND (包菜 OR 圓白菜);如果使用者添加同義字:炒包菜 -> 炒甘藍
,那麼就會被擴充為:炒包菜 OR 炒甘藍。 即圓白菜這個系統的同義字被忽略;使用者幹預範圍被包含於系統範圍內。假設系統有同義字:
蘋果手機 -> iphone
,那麼查詢詞:蘋果手機會給擴充為蘋果手機 OR iphone;如果使用者添加同義字:手機->行動電話
, 那麼會被擴充為蘋果 AND (手機 OR 行動電話)。
注意:
同義字的個數由最終產生的query group數來限制(當前是36個)。
實戰演練
業務情境:業務情境:某電商導購類業務在OpenSearch的應用執行個體中配置使用了查詢分析規則,規則包含同義字功能,但是線上上發現了badcase,於是決定使用幹預功能。
badcase:使用者搜尋Query“apple”發現相關商品沒有返回,但實際資料庫內有相關商品的資料,不過商品的描述都用了其同義字“蘋果”。
問題診斷:系統同義字詞典缺失“蘋果”是”apple“的同義字識別。
解決方案:建立同義字幹預詞典,在詞典中幹預Query“apple”,為其添加同義字“蘋果”,將該同義字幹預詞典應用線上上使用的查詢分析規則中。
操作步驟:
在控制台>搜尋演算法中心>召回配置>詞典管理,建立同義字詞典:
填寫“名稱”,詞典類型選擇“同義字”:
2.在建立的同義字幹預詞典裡新增幹預詞條,Query欄填寫“apple”,添加同義字欄填寫“蘋果”:
3.在查詢分析介面把剛剛建立的“同義字幹預詞典”先應用在一個未上線的查詢分析規則中,以便進行搜尋效果測試:
4.搜尋測試是否符合預期效果。發現搜尋結果召回了包含“蘋果”或“apple”的結果,符合預期:
注意事項
詞典類型和名稱在建立後均不可修改。
新增幹預詞條時,填寫的Query不應與幹預列表內已幹預過的Query重複。歷史幹預過的Query可在列表內直接對增加和屏蔽的同義字進行增、刪、改。
單個Query下添加或屏蔽多個同義字,每個詞之間用;分隔。
新增或修改幹預詞條後,生效狀態如果持續是“正在生效”,可以單擊重新整理按鈕擷取生效狀態的同步。
同一幹預詞典可以被多個查詢分析規則使用。
由於目前的幹預詞典是基於系統內建詞典的補丁式幹預,所以詞典使用時會預設勾選使用系統內建詞典。
被任一查詢規則(不論是否上線)使用的幹預詞典不能被刪除,想要刪除需要首先解除使用。
功能限制
同義字幹預詞典一共可以建立20個。
每次新增同義字幹預詞條時,Query只支援填寫一個,同一Query下添加和屏蔽的同義字總和應≤5條。
每個同義字幹預詞典最多可建立1000個幹預詞條。
同義字幹預詞條按照分詞後的term進行匹配生效。例如,為Query“北京”添加了同義字“帝都”,那麼查詢“北京”會返回包含“北京”或“帝都”的結果,同時查詢“北京歡迎你”,返回包含“北京歡迎你”或“帝都歡迎你”的結果。
添加的幹預內容均會進行大小寫和全半形歸一化處理,其中大寫字母會歸一化為小寫,全形會歸一化為半形。
大量新增同義字幹預詞條時,json格式參考下例:
[{"cmd":"add","word":"hey","alias":["hei","hei2"],"antiAlias":["hi"]}]
若是老使用者使用舊控制台,批量上傳則參考下面的格式:
[{"cmd":"add","word":"hey","alias":["hei","hei2"],"anti_alias":["hi"]}]