一種用于旅游垂直搜索引擎的前置解析方法
【技術領域】
[0001] 本發明屬于搜索引擎技術領域,具體涉及一種用于旅游垂直搜索引擎的前置解析 方法。
【背景技術】
[0002] 隨著互聯網旅游平臺的發展,在線可售賣的旅游產品得到極大豐富,如何讓用戶 快速找到想要的產品成為各大旅游網站重點要解決的問題。旅游垂直搜索引擎可以方便用 戶快速查找產品,是必不可少的快速查找工具。
[0003] 如何返回用戶想要的產品是垂直搜索引擎中的一個難題,一般的垂直搜索引擎通 過搜索詞文本匹配的方式返回產品,例如考慮搜索關鍵詞在產品中出現的詞頻。但當詞頻 無法表征匹配相關性時,就可能返回用戶不想要的產品,例如用戶搜索"馬爾代夫"可能返 回"小馬爾代夫"的三亞旅游產品。同時,當出現某些搜索詞的搜索結果不理想時,一般的垂 直搜索引擎很難快速調整結果,這就導致現有垂直搜索引擎的檢索結果常常與用戶的需求 產生較大的偏差。
【發明內容】
[0004] 為解決上述問題,本發明公開了一種用于旅游垂直搜索引擎的前置解析方法,能 夠分析用戶的搜索詞,并做語義分析,在匹配多種規則引擎后進一步合并規則,最終將搜索 詞轉換成符合用戶需求的查詢條件。
[0005] 為了達到上述目的,本發明提供如下技術方案: 一種用于旅游垂直搜索引擎的前置解析方法,包括如下步驟: 對搜索詞進行預處理; 對搜索關鍵詞進行分詞、實體識別和詞性標注; 采用若干規則引擎進行匹配,在每一類的規則引擎中,每一條規則都定義有合并操作 規則、優先級和互斥規則;不同規則引擎間定義有合并策略和優先級; 得到各規則引擎的匹配結果后,首先在同一類匹配規則中根據合并操作規則、優先級 和互斥規則進行合并得到初步合并結果后,在不同類匹配規則中根據合并策略和優先級針 對初步合并結果進行合并得到最終合并結果; 將最終合并結果解析成搜索條件。
[0006] 進一步的,所屬若干規則引擎包括精確匹配引擎、語法匹配引擎和詞項匹配引擎, 匹配的過程包括: 步驟B,進入精確匹配引擎進行關鍵詞匹配,若匹配則獲取精確匹配結果,匹配結束后 直接退出或繼續進行其他引擎匹配; 步驟C,對搜索關鍵詞進行分詞、實體識別和詞性標注; 步驟D,進入語法匹配引擎進行語法匹配,若步驟C標注后得到的詞性組合結果匹配或 部分匹配語法匹配規則,則獲取語法匹配結果,語法匹配引擎完成后退出或者繼續匹配其 它引擎; 步驟E,進入詞項匹配引擎進行詞項匹配,將步驟C分詞后的詞進行匹配,返回所有匹配 規則。
[0007] 進一步的,所述合并規則包括"AND"、"0R"。
[0008] 進一步的,所述規則存儲在規則數據庫中,當規則數據庫更新時,前置解析模塊通 過時間戳自動識別修改內容,動態更新前置解析服務,通過新開辟內存空間更新規則引擎。
[0009] 進一步的,所述規則數據庫更新過程如下: 1. 新增關鍵詞,對關鍵詞進行預處理; 2. 判斷該關鍵詞的規則是否存在,如存在,則跳至步驟3,不存在跳至4; 3. 該關鍵詞的規則已存在,判斷是否需要編輯,如不編輯,則退出,如編輯,跳至5; 4. 新增關鍵詞,選取規則引擎類型; 5. 編輯規則具體內容,保存后跳至6; 6. 審核規則,如駁回,則退出; 7. 更新規則數據庫,前置解析自動更新服務。
[0010] 與現有技術相比,本發明具有如下優點和有益效果: 本發明提供的前置解析方法,負責基于搜索詞文本的語義解析,能夠理解用戶搜索詞 的意圖,將原始請求映射成更符合用戶需求的查詢條件,從而令查詢結果更為精確,克服現 有垂直搜索引擎的缺陷。靈活的多規則引擎應用方式,方便開發者自定義更多的規則引擎, 優化搜索結果。此外修改規則數據庫后,前置解析通過時間戳自動識別修改內容,動態更新 前置解析服務,通過新開辟內存空間更新規則引擎,從而不會間斷前置解析的服務,方便運 營人員基于關鍵字快速調整搜索結果,而無需做任何開發和代碼發布,大大提高了運營的 效率。
【附圖說明】
[0011] 圖1為本發明系統架構圖; 圖2為前置解析方法流程圖; 圖3為運營系統新增規則流程圖。
【具體實施方式】
[0012] 以下將結合具體實施例對本發明提供的技術方案進行詳細說明,應理解下述具體 實施方式僅用于說明本發明而不用于限制本發明的范圍。
[0013] 本發明提供了一種前置解析方法,基于前置解析模塊和規則數據庫實現,如圖1所 示,通過網站、無線客戶端獲得的原始用戶請求經搜索業務處理層提取出原始查詢詞后,傳 輸至前置解析模塊中,前置解析模塊理解用戶搜索詞意圖,映射成符合用戶需求的查詢條 件并返回搜索業務處理層,搜索業務處理層根據查詢條件、利用產品索引系統進行索引查 詢獲得原始搜索結果,經過處理后返回最終處理結果至網站、無線客戶端。具體地說,前置 解析模塊用于分析用戶的搜索詞,并做語義分析,然后匹配規則數據庫中的精確匹配、詞項 匹配和語法匹配等規則引擎,把搜索詞轉換成查詢條件。本例提供給前置解析模塊的搜索 詞為"馬爾代夫天堂島跟團游線路",如圖1所示,前置解析方法的處理步驟如下: 步驟A,首先預處理模塊對搜索詞預處理,預處理旨在將輸入的搜索詞規范化,例如不 規范字符處理,可將不規范的字符去除或識別后用規范字符代替;關鍵詞長度限制,當關鍵 詞超長時,只截取前η個關鍵字詞;基于空格的分詞,以關鍵詞中的空格為界,將關鍵詞進行 初步分詞等等。上述搜索詞中"線路"為停用詞,去除該詞后得到"馬爾代夫天堂島跟團游"。
[0014]本發明利用多個規則引擎相配合,并采用預先設置好的策略控制搜索時進入哪些 引擎,采用插件化的設計方法,規則引擎可以自定義增加,規則引擎的執行順序也可以根據 需要改變。引擎規則均存儲在規則數據庫中,本例中策略為進入所有的規則引擎,本例中的 引擎規則如表1所示,包括精確匹配引擎、語法匹配引擎、詞項匹配引擎三類,根據需要,還 可以增加其他類別的引擎。在后續匹配過程中,一個關鍵詞不僅可能匹配到不同類引擎中 的結果,也有可能匹配到同一類引擎中的多個規則,規則之間的結果合并由每個規則定義, 規則之間可以定義取交集、并集等。同一類引擎的各條規則之間可以定義是否互斥,并可以 定義這些規則的優先級和合并規則;而不同類引擎之間也可以定義合并策略和優先級。因 此,下表1中規則定義有規則名、規則引擎類型、規則合并操作方式、規則優先級、互斥規則 及規則內容。
[0015] 注:aa=地區,bb=景點,cc=品類,dd=線路產品 表1 本例通過以下步驟運用多個引擎進行搜索: 步驟B,進入精確匹配引擎進行關鍵詞匹配,精確匹配是指搜索詞完整匹配規則庫中的 一條或多條規則。若匹配則獲取精確匹配候選集,添加至結果規則集。利用步驟A處理后得 到的關鍵詞在圖2中的精確匹配引擎中進行匹配后,匹配到規貝1J1和2添加至結果規則集。
[0016] 當然,本步驟具有匹配結果時可以直接選擇退出,不執行其后步驟,但本例繼續匹 配其它引擎。
[0017] 步驟C,實體識別模塊對搜索關鍵詞進行分詞、實體識別和詞性標注。
[0018] 步驟C-1,首先進行最長分詞,建立旅游相關的詞庫,可以使用常用的分詞技術對 用戶請求進行分詞。本例采用分詞器IK分詞后得到"馬爾代夫|天堂|島|跟團游"。
[0019] 步驟C-2,對分詞后的詞進行實體識別和詞性標注。實體識別中的實體非傳統自然 語言中的實體,本發明所指的實體為旅游垂直搜索中自定義的實體,詞性可以是地區、景 點、行程天數、品類、助詞等,為能夠獨立存在的短語,例如"二日游""天堂島"。實體識別步 驟是結合分詞結果,加上一些詞語組合技術,對詞語進行合并,對搜索請求進行實體識別。 對步驟C-1得到的分詞結果進行實體識別后得到的實體為"馬爾代夫|天堂島|跟團游"。
[0020] 對識別后的實體再進行詞性標注,此處的詞性非常用的名詞、動詞等詞性,而是自 定義的詞性,例如品類詞、地區、景點、天數等。對"馬爾代夫I天堂島I跟團游"中的實體分別 進行詞性標注,將馬爾代夫標注為地區,天堂島標注為景點,跟團游標注為品類,得到結果 "馬爾代夫(地區)I天堂島(景點)|跟團游(品類)"。標注詞性時可事先基于一些類別建立 分類器,例如品類詞分類器、地區分類器、景點分類器、天數分類器等等,分類器可以采用常 用的bayes分類器,然后計算前述實體