一種基于需求分類和主題分析的個性化旅行包推薦方法
【專利摘要】一種基于需求分類和主題分析的個性化旅行包推薦方法,所述方法分析用戶所輸入的自然語言形式的需求,應用分詞、需求分類提取等自然語言處理方法對用戶需求進行處理和分類,得出用戶的硬性需求、軟性需求和負需求。進而利用LDA文檔主題生成模型,通過主題相似度將旅行服務個體有效聚類到不同的服務領域中,進而與用戶需求進行相似性匹配,以得出最為符合用戶期望的服務列表。最后利用旅行包優化推薦算法進行旅行包的設計推薦:首先依據用戶時間要求和服務優先級信息,得出旅行包景點集合;繼而結合位置信息、偏好信息等確定旅行包酒店服務;而后根據路程函數L計算每天最優行程,并依據旅行包推薦指數排序旅行包;最后根據景點位置及用戶偏好,選定旅行包餐飲服務。綜合以上處理,即實現了為用戶設計推薦最符合需求的個性化旅行包的目的。
【專利說明】
-種基于需求分類和主題分析的個性化旅行包推薦方法
技術領域
[0001] 本發明設及一種基于需求分類和主題分析的個性化旅行包推薦方法。該方法從用 戶的輸入中提取需求,并對需求內容進行分類;結合主題分析,生成備選的服務集合;在此 基礎上,利用旅行包優化推薦方法為用戶進行旅行包設計和推薦。該方法屬于計算機系統 建模W及數據分析領域。
【背景技術】
[0002] 近年來,隨著互聯網技術的快速發展和人民生活水平的不斷提高,在線旅游行業 快速發展,也隨著面向服務計算(Service Oriented Computing,簡稱S0C)的興起,人們習 慣于W服務的概念來看待各單個旅游產品(如景點、酒店等),并且W服務組合、服務推薦的 視角來看待旅行包推薦問題。當前,人們可W方便地在網上瀏覽、查詢感興趣的旅游服務產 品或旅行社發布的成套旅行方案。然而,隨著互聯網信息過載現象的不斷加劇和人們需求 的日趨個性化、細節化,傳統的在線旅游服務顯現出如下弊端:
[0003] 1)信息過載嚴重。用戶雖然可W在傳統在線旅游平臺上進行捜索、查找感興趣的 旅游服務,但由于互聯網信息量過大,而又充斥大量無用信息,使得用戶查找效率下降,很 難快速找到符合自己需求的服務;
[0004] 2)缺乏個性化定制服務。除單一的旅游服務產品外,大量在線旅游平臺還提供成 套的旅行解決方案供用戶選擇。但是運些解決方案都是固定不變的(或是旅行社提供的固 定產品,或是"驢友"發布的固定攻略),而用戶的需求往往是多變的,很難找到完全符合要 求的成型方案,運就要求在線旅游平臺能夠根據用戶需求,自動、自主地生成新的個性化解 決方案,也即旅行包,推薦給用戶;
[0005] 3)不能處理用戶自然語言需求。當前各在線旅游平臺多W固定選項的模式要求用 戶選擇旅行目的地、游覽天數、旅行預算等信息,而平臺提供的固定選項一般不能涵蓋用戶 的所有可能需求。對于用戶來說,最方便、也是最靈活的表達需求和喜好的方式就是W純文 本自然語言的形式輸入一段需求,而目前各在線旅游平臺均不能采用有效技術來處理此類 需求。
[0006] 為了解決旅行包推薦過程中面臨的W上技術問題,本發明提出了一種基于需求分 類和主題分析的個性化旅行包推薦方法:該方法能有效分析、處理用戶的自然語言需求,對 用戶需求進行提取和分類,結合主題分析技術,生成備選的旅行服務集合,最終利用旅行包 優化推薦方法,為用戶進行旅行包的個性化設計和推薦。
[0007] 在本發明中,旅行服務是指單個的旅行產品,例如單個的景點、酒店、餐館等即可 被視為單個的旅行服務;旅行包(trave 1 package/tour package)的概念是區別于單個旅 游服務產品的,它是一種成套的旅游產品,它將多個單獨的旅游服務產品打包,W-個整體 進行推薦,包含了旅行中的餐飲、住宿、交通、景點等四大方面中的多個元素,為用戶提供一 整套的旅行解決方案。
【發明內容】
[000引本發明首次提出一種基于需求分類和主題分析的個性化旅行包推薦方法。本發明 的方法包含=個過程:1)基于關鍵詞字典的用戶需求分類過程;2)基于主題分析的備選服 務集合捜索過程;3)基于路程最優化的旅行包推薦過程:
[0009] 1)基于關鍵詞字典的用戶需求分類過程包含W下兩個階段:
[0010] (1)對用戶輸入的自然語言形式的需求進行分詞等預處理工作;
[0011] (2)根據關鍵詞字典對提取的關鍵詞進行需求區分,分別得到用戶的硬性需求、軟 性需求和負需求。
[0012] 2)基于主題分析的備選服務集合捜索過程包含W下=個階段:
[0013] (1)根據數據庫中各服務的服務描述文檔,利用LDA(Latent Dirichlet Allocation)文檔主題生成模型提取各服務到主題的概率分布,并存儲在"服務一一主題字 典"庫內;
[0014] (2)根據得到的用戶硬性需求和軟性需求,基于LDA主題分析,并借助"服務一一主 題字典"庫匹配得出與運些需求相似的備選服務列表;
[001引(3化備選服務列表中,補充硬性需求中的服務,再剔除負需求中的服務,將硬性 需求服務優先級標記為高,其他服務優先級標記為低,最終得到旅行包推薦的備選服務集 合,W用于旅行包的生成和推薦。
[0016] 3)基于路程最優化的旅行包推薦過程包含W下四個階段:
[0017] (1)生成備選的景點組合。根據用戶的天數要求W及上面得到的備選服務集合,初 步生成旅行包中的景點組合,得到備選的一系列旅行包。在旅行包的生成過程中,用戶的硬 性需求會得到優先的滿足;
[0018] (2)選定住宿酒店。結合景點的地理位置信息及用戶的偏好,選定旅行包中的住宿 酒店;
[0019] (3)根據路程函數制定具體行程并排序旅行包。根據路程函數L計算每天最優行 程,得到每個旅行包的預期路程,并結合優先級信息,計算旅行包推薦指數,W此作為依據 排序旅行包。預期路程越短、優先級越高的旅行包會得到優先的推薦;
[0020] (4)選定旅行包沿途餐飲。根據景點位置及用戶的偏好,為用戶選定旅行途中的餐 飲服務。
[0021] 本發明采用基于需求分類和主題分析的個性化旅行包推薦方法,具有W下兩方面 的優點:
[0022] (1)通過分詞和關鍵詞字典的使用,對用戶的需求種類進行區分,細化了用戶的自 然語言形式需求,W得到更精準的推薦結果;
[0023] (2)本發明能夠使用主題分析,生成備選的服務組合,并基于路程最優化的原則自 動為用戶生成和推薦旅行包。
【附圖說明】
[0024] 本申請通過附圖對推薦方法進行了具體描述,運些描述僅用于說明本發明的內 容,并非用于限制本發明。
[0025] 圖I是本發明中基于需求分類和主題分析的個性化旅行包推薦方法總體框圖。
[0026] 圖2是本發明中旅行包優化推薦過程詳細步驟框圖。
【具體實施方式】
[0027] 描述本發明所設及的符號意義W及具體步驟。
[0028] 圖1圖示了基于需求分類和主題分析的個性化旅行包推薦方法總體框圖。如圖1所 示,用戶輸入自然語言形式需求,包含旅行目的地,希望旅行天數及可能的個性化要求等, 本發明首先對用戶輸入進行分詞處理和需求分類,分別分析出硬性需求、軟性需求和負需 求,然后結合主題分析技術得到備選的服務集合,最后通過旅行包優化推薦方法輸出排序 后的推薦旅行包。本發明的方法包含=個過程:1)基于關鍵詞字典的用戶需求分類過程;2) 基于主題分析的備選服務集合捜索過程;3)基于路程最優化的旅行包推薦過程。
[0029] 圖2圖示了旅行包優化推薦過程的詳細步驟框圖。如圖2所示,方法輸入信息為旅 行天數要求N、備選服務集合Sal^ (包含:備選景點服務集合S、備選餐飲服務集合R、備選酒店 服務集合H),首先根據N篩選S的子集,生成用戶在N天內游覽的全部景點集合Sf,再根據H的 優先級及景點距離的"重屯、"為每一個Sf確定住宿酒店,而后利用路程函數L求解優化問題, 得到每日的最優行程安排,進而根據推薦指數I排序旅行包,最后根據R及每日行程安排綜 合優先級和距離信息確定沿途餐飲,最終輸出旅行包的優化推薦結果。具體而言,過程包含 W下四個階段:生成備選的景點組合。根據用戶的天數要求W及上面得到的備選服務集合, 初步生成旅行包中的景點組合,得到備選的一系列旅行包。在旅行包的生成過程中,用戶的 硬性需求會得到優先的滿足;選定住宿酒店。結合景點的地理位置信息及用戶的偏好,選定 旅行包中的住宿酒店;根據路程函數制定具體行程并排序旅行包。根據路程函數L計算每天 最優行程,得到每個旅行包的預期路程,并結合優先級信息,計算旅行包推薦指數,W此作 為依據排序旅行包。預期路程越短、優先級越高的旅行包會得到優先的推薦;選定旅行包沿 途餐飲。根據景點位置及用戶的偏好,為用戶選定旅行途中的餐飲服務。
[0030] 具體實施步驟分為=大部分:
[0031] 第一部分(步驟1~步驟4),基于關鍵詞字典的用戶需求分類;第二部分(步驟5~ 步驟8),基于主題分析的備選服務集合捜索;第=部分(步驟9~步驟13),基于路程最優化 的旅行包推薦。
[0032] 基于關鍵詞字典的用戶需求分類分為兩個階段
[0033] 階段1對應步驟1
[0034] 步驟1:對用戶自然語言形式輸入的需求進行分詞處理,進行中文分詞(例如,調用 WVtool分詞工具),利用停用詞詞典去除無關詞語(例如"的、我們、呀"等),將用戶輸入需求 表示為一串順序的詞匯向量,記作Q={qi,q2, . . .,qp}。例如,當用戶輸入"我想去北京玩; 天,吃全聚德,喜歡住在市中屯、,不想去天壇"時,分詞結果為"想去、北京、玩、=天、吃、全聚 德、喜歡、住在、市中屯、、不想去、天壇"。
[0035] 階段2對應步驟2、步驟3、步驟4
[0036] 步驟2:將步驟1中的分詞結果Q與負需求關鍵詞字典進行匹配,負需求關鍵詞字典 中存儲了常見的負需求關鍵詞,如"不想、不去、不喜歡"等。當發生匹配后,即將負需求關鍵 詞其后緊跟的名詞列入負需求列表,記作NQ={nqi,nq2, . . .,nqnp},表示用戶不想得到此服 務。例如步驟I中的例子,"不想去"即為負需求關鍵詞,則其后緊跟的名詞"天壇"即被列入 負需求列表,在后續的推薦過程中,我們將不會推薦"天壇"運一景點服務。步驟2結束后,在 Q中剔除負需求關鍵詞和被列入負需求列表的詞匯,更新得到Q'。
[0037] 步驟3:將步驟2中得到的Q'與服務字典進行匹配,服務字典中存儲了數據庫中各 服務的標準名稱及各常用名,如"頤和園、全聚德、四季"等。當發生匹配后,即將發生匹配的 名詞對應的服務標準名稱列入硬性需求列表,記作MQ= {mqi,mq2, . . .,mqmp},表示用戶的運 些需求需要得到優先滿足。例如步驟1中的例子,"全聚德"即被列入硬性需求列表,在后續 的推薦過程中,我們將優先推薦"全聚德"運一餐飲服務。此外,我們還將針對性識別用戶的 目的地信息(D)和旅行時間信息(N),作為特殊的硬性需求進行處理,也即將MQ更新為MQ = {D,N,mqi,mq2, . . .,mqmp},例如步驟1中例子的"北京"、天"。步驟3結束后,在Q'中剔除硬 性需求關鍵詞,更新得到護。
[0038] 步驟4:將步驟3中得到的護與軟性需求字典進行匹配,軟性需求字典中存儲了各 常用偏好性需求關鍵詞,如"辣、西餐、安靜、歷史底蘊"等。當發生匹配后,即將發生匹配的 詞匯列入軟性需求列表,記作SQ={sqi,sq2, . . .,sqsp},表示用戶希望得到此類服務。例如 步驟1中的例子,"市中屯、"即被列入軟性需求列表,在后續的推薦過程中,我們將推薦滿足 "市中屯、"條件的酒店服務。
[0039] 至此,我們成功將用戶自然語言需求進行了處理和分類,分別得到用戶硬性需求 列表MQ= {D,N,mqi,mq2, . . .,mqmp},軟性需求列表SQ= {sqi,sq2, . . . ,SQsp巧Pl負需求列表NQ ={叫1,叫2,...,叫叩}。
[0040] 基于主題分析的備選服務集合捜索分為=個階段
[0041] 階段1對應步驟5
[0042] 步驟5:基于服務字典及服務數據庫中各服務的文本描述文檔,利用LDA主題概率 模型獲得每個服務的主題分布,用矩陣ST來形式化描述。ST為化X Ks維矩陣,化表示服務個 體的總數,Ks表示服務個體設及到的主題總數。ST矩陣第i行第j列的元素 STQ J)表示Tj在 S'l中的分布權重,其中L表示服務個體中的主題j,S'i表示服務個體i。矩陣的每一行為一 個服務個體的主題分布。該ST矩陣即存儲在"服務一一主題字典"庫內。
[0043] 階段2對應步驟6、步驟7
[0044] 步驟6:首先,根據步驟3中得到的用戶硬性需求列表MQ={D,N,mqi,mq2, . . .,mqmp} 中的用戶目的地信息(D),在服務數據庫中篩選可用的服務總列表S"。(例如D表示北京時, S"表示北京市內的全部景點、酒店、餐飲及其他服務)然后,將步驟3中得到的用戶硬性需求 列表MQ= {D,N,mqi,mq2, . . .,mqmp}和步驟4中得到的軟性需求列表SQ= {sqi,sq2, . . .,sqsp} 進行合并,得到用戶需求總列表Qms= {mqi,mq2, . . .,mqmp,sqi,sq2,. . .,sqsp}。
[0045] 步驟7:利用步驟5中LDA主題分析得出的各服務到主題的分布概率p(T I S')(即存 儲在"服務一一主題字典"庫中的ST矩陣中的各ST(iJ)項)及各主題到詞匯的分布概率P (Qms I T ),計算各服務與用戶需求總列表Qms的相似度,具體計算如下:
1進而根據相似度P (Qms Is" i)的大小由高到低對S" 中的服務進行排序,得到備選服務列表Sal,其中各服務的優先級即用其歸一化的相似度表 示。相似度越大的服務將會在推薦中被優先考慮。
[0046] 階段3對應步驟8
[0047] 步驟8:將步驟3中得到的用戶硬性需求列表MQ={D,N,mqi,mq2, . . .,mqmp}中的服 務{mqi,mq2, . . .,mqmp}添加至備選服務列表Sai中,并將{mqi,mq2, . . .,mqmp}中的全部服務優 先級標記為1。再將步驟2中得到的負需求列表NQ={nqi,nq2, . . .,nqnp}中的服務從備選服 務列表Sal中剔除,最終得到更新后的備選服務列表Sal'。每個服務都包含一個優先級的屬 性,取值為0~1,越大表示該服務在組合時的優先級越高。由硬性需求得到的服務優先級為 1,其余為步驟7中計算的相似度的值。對備選服務列表Sal'中的服務分為W下=類:
[0048] 1)備選景點服務集合S。每個景點服務包含兩個屬性,優先級Sv和所需游玩時間St。 優先級Sv的取值范圍為0~1,所需游玩時間St的取值范圍也是0~InSt表示所需游玩時間占 全天可利用游玩時間的比例,例如St取值為0.5表示該景點需要半天時間進行游覽;
[0049] 2)備選餐飲服務集合R。每個餐飲服務包含屬性優先級Rv,其取值范圍為0~1;
[0050] 3)備選酒店服務集合H。每個酒店服務包含屬性優先級Hv,其取值范圍為0~1。
[0051 ]基于路程最優化的旅行包推薦分為四個階段
[0化2] 階段1對應步驟9
[0053]步驟9:根據用戶的旅行天數要求NW及步驟8得到的備選景點服務集合S求解優化 問題,生成用戶在N天內游覽的全部景點集合Sf。首先,備選景點服務集合S中優先級Sv=I的 景點先全部納入隹合Sf內,此后求解如下優化問題:
[0化4;
[0化5;
[0056]其中a為正實數,優化目標為使推薦的景點服務優先級加和最大化,約束表示推薦 景點的總游玩時間等于用戶的旅行天數要求N,此處引入誤差參數U可取任意實數),允許 總游玩天數存在一定誤差,但通過對系數a的調整,可保證誤差在可接受的范圍之內。求出 滿足上述問題的Sf的所有可行解后,即得到備選旅行包集合SFall= {Sf1,Sf2, ...,SFn}。
[0化7] 階段2對應步驟10
[005引步驟10:分別對步驟9中求得的備選旅行包集合SFall= {Sf1,Sf2, ...,SFn}中的每一 個Sfi計算篩選相應的酒店服務:
[0059] 若備選酒店服務集合H中有且僅有一個優先級Hv=I的酒店,則所有Sfi均安排推薦 該酒店即可;
[0060] 若備選酒店服務集合H中有多個優先級Hv=I的酒店,不妨記運些酒店集合為H', 此時求解如下優化問題得到每一個Sfi對應推薦的酒店出:
[0061]
[0062] s.t.HijGH'
[0063] 其中知%表示景點巧頓店Hu的交通距離;
[0064] 若備選酒店服務集合H中沒有優先級Hv=I的酒店,則通過求解如下優化問題得到 每一個SFi對應推薦的酒店出:
[00 化]
[0066] s.t.HijGH
[0067] 其中a為正實數。
[006引綜上,我們得到了備選旅行包集合SFall ={Sf1,Sf2, ...,SFn}中的每一個Sfi所對應 推薦的酒店服務出。
[0069] 階段3對應步驟11、步驟12
[0070] 步驟11:對備選旅行包集合SFaii= Kfi ,Sf2.....SfJ中的每一個Sfi,計算相應的最 優路徑規劃,定義路程函數
表示旅行包Sfi第j天行程安排所需的最短全部交通路程,其中nj表示第j天游覽的景點數 目。進而對每一個Sfi求解W下優化問題,W期得到最優的旅行包路徑規劃:
[0071:
[0072;
[0073;
[0074;
[0075] 其中a為正實數,[Sfi]為旅行包Sfi中景點數量,優化目標為使每天走過的路程加 總得到的旅行總路程最小化,第一項約束表示所有景點均需被安排行程,第二項約束表示 每天的景點游玩時間加總應等于"1",也即一天,此處引入誤差參數可取任意實數),允 許每天游玩時間存在一定誤差,但通過對系數a的調整,可保證誤差在可接受的范圍之內。 通過遍歷所有可能的每日游覽景點的不同組合模式,找到上述問題的最優解,也即總游覽 交通路程最短的路徑設計方案,并且我們盡量將優先級高的服務安排在前幾天的行程中。 至此,我們為每一個Sfi找到了其對應的最優行程安排。
[0076] 步驟12:計算每個旅行包的推薦指數/:
其中b、c為正實 數,進而根據推薦指數I由高到低排序各旅行包,得到旅行包推薦方案SFaii'二{Sfi', Sf2 ',. . .,SFn' },最終為用戶進行旅行包推薦時,即按照此排序順序推薦。
[0077] 階段4對應步驟13
[0078] 步驟13:根據步驟8得到的備選餐飲服務集合R為用戶設計沿途餐飲,其中每日需 安排早、午、晚=餐。首先,備選餐飲服務集合R中優先級Rv=I的餐飲服務優先予W保證,在 行程規劃中捜索與Rv=I的餐飲服務距離較近的景點,則該景點附近的就餐時間即安排此 餐飲服務。在滿足Rv=I的餐飲服務被保證后,在尚未安排餐飲服務的就餐時間附近的景點 進行捜索,綜合餐飲服務的Rv評分(此項權重可取較大,W更滿足用戶的喜好)和距離景點 的距離,為用戶推薦餐飲服務。
[0079] 最終,我們得到了為用戶推薦的旅行包集合Sf311' = {Sfi',Sf2',. . .,SFn'},其中每 個旅行包包括住宿酒店、每日游覽景點及順序和沿途餐飲等信息,并按照步驟12計算得出 的旅行包排序順序為用戶進行推薦。
[0080] 通過本發明,一種基于需求分類和主題分析的個性化旅行包推薦方法:能夠利用 分詞、需求分類提取等手段對用戶自然語言輸入的需求進行處理和分類,提取用戶的硬性、 軟性和負需求;進而利用LDA文檔主題生成模型,通過主題相似度將旅行服務個體有效聚類 到不同的服務領域中,進而進行相似性匹配,W得出最為符合用戶期望的服務列表;最終利 用旅行包優化推薦方法進行旅行包的行程設計、餐飲及酒店服務設計等,為用戶推薦完整 的最符合需求的旅行包。
【主權項】
1. 一種基于需求分類和主題分析的個性化旅行包推薦方法,其特征在于,所述方法包 含三個過程:1)基于關鍵詞字典的用戶需求分類過程,2)基于主題分析的備選服務集合搜 索過程,3)基于路程最優化的旅行包推薦過程;其中 1) 基于關鍵詞字典的用戶需求分類過程包括以下兩個階段: (1) 對用戶輸入的自然語言形式的需求進行分詞等預處理工作; (2) 根據關鍵詞字典對提取的關鍵詞進行需求區分,分別得到用戶的硬性需求、軟性需 求和負需求; 2) 基于主題分析的備選服務集合搜索過程包括以下三個階段: (1) 根據數據庫中各服務的服務描述文檔,利用LDA(Latent Dirichlet Allocation) 文檔主題生成模型提取各服務到主題的概率分布,并存儲在"服務一一主題字典"庫內; (2) 根據得到的用戶硬性需求和軟性需求,基于LDA主題分析,并借助"服務一一主題字 典"庫匹配得出與這些需求相似的備選服務列表; (3) 在備選服務列表中,補充硬性需求中的服務,再剔除負需求中的服務,將硬性需求 服務優先級標記為高,其他服務優先級標記為低,最終得到旅行包推薦的備選服務集合,以 用于旅行包的生成和推薦; 3) 基于路程最優化的旅行包推薦過程包括以下四個階段: (1) 根據用戶的天數要求以及上面得到的備選服務集合,生成備選的景點組合,得到備 選的一系列旅行包,在旅行包的生成過程中,用戶的硬性需求會得到優先的滿足; (2) 結合景點的地理位置信息及用戶的偏好,選定旅行包中的住宿酒店; (3) 根據路程確定每天最優行程,得到每個旅行包的預期路程,并結合優先級信息,計 算旅行包推薦指數,排序旅行包; (4) 根據景點位置及用戶的偏好,為用戶選定旅行途中的餐飲服務。2. 根據權利要求1所述的個性化旅行包推薦方法,其特征在于,所述(1)對用戶輸入的 自然語言形式的需求進行分詞等預處理工作包括: 步驟1:對用戶自然語言形式輸入的需求進行分詞處理,進行中文分詞,利用停用詞詞 典去除無關詞語,將用戶輸入需求表示為一串順序的詞匯向量,記作9=4#,...,^}。3. 根據權利要求1至2中任一項所述的個性化旅行包推薦方法,其特征在于,所述(2)根 據關鍵詞字典對提取的關鍵詞進行需求區分,分別得到用戶的硬性需求、軟性需求和負需 求包括: 步驟2:將步驟1中的分詞結果Q與負需求關鍵詞字典進行匹配,負需求關鍵詞字典中存 儲了常見的負需求關鍵詞,即將負需求關鍵詞其后緊跟的名詞列入負需求列表,記作NQ = {nqi,nq2, . . .,nqnp},表示用戶不想得到此服務,在Q中剔除負需求關鍵詞和被列入負需求 列表的詞匯,更新得到Q'; 步驟3:將步驟2中得到的Q'與服務字典進行匹配,服務字典中存儲了數據庫中各服務 的標準名稱及各常用名,當發生匹配后,即將發生匹配的名詞對應的服務標準名稱列入硬 性需求列表,記作MQ={mqi,mq2, . . .,mqmP},表示用戶的這些需求需要得到優先滿足,將針 對性識別用戶的目的地信息(D)和旅行時間信息(N),作為特殊的硬性需求進行處理,也即 將19更新為19={0』,11^1,11^2,...,11^ 1111)},在0'中剔除硬性需求關鍵詞,更新得到0"; 步驟4:將步驟3中得到的Q"與軟性需求字典進行匹配,軟性需求字典中存儲了各常用 偏好性需求關鍵詞,當發生匹配后,即將發生匹配的詞匯列入軟性需求列表,記作SQ = {sqi,sq2, . . .,sqsp},表示用戶希望得到此類服務。4. 根據權利要求1至3中任一項所述的個性化旅行包推薦方法,其特征在于,(1)根據數 據庫中各服務的服務描述文檔,利用LDA(Latent Dirichlet Allocation)文檔主題生成模 型提取各服務到主題的概率分布,并存儲在"服務一一主題字典"庫內包括: 步驟5:基于服務字典及服務數據庫中各服務的文本描述文檔,利用LDA主題概率模型 獲得每個服務的主題分布,用矩陣ST來形式化描述,該ST矩陣即存儲在"服務一一主題字 典"庫內。5. 根據權利要求1至4中任一項所述的個性化旅行包推薦方法,其特征在于,(2)根據得 至_用戶硬性需求和軟性需求,基于LDA主題分析,并借助"服務一一主題字典"庫匹配得出 與這些需求相似的備選服務列表包括: 步驟6:首先,根據步驟3中得到的用戶硬性需求列表MQ={D,N,mqi,mq2, . . .,mqmP}中的 用戶目的地信息(D),在服務數據庫中篩選可用的服務總列表S" ;然后,將步驟3中得到的用 戶硬性需求列表MQ= {D,N,mqi,mq2, . . .,mqmP}和步驟4中得到的軟性需求列表SQ= {sqi, sq2, · · ·,sqsp}進行合并,得到用戶需求總列表Qms= {mqi,mq2, · · ·,mqmP,sqi,sq2, · · ·,sqsp}; 步驟7:利用步驟5中LDA主題分析得出的各服務到主題的分布概率p(T I S')及各主題到 詞匯的分布概率P(Qms |T),計算各服務與用戶需求總列表Qms的相似度;進而根據相似度p (QmsIS、)的大小由高到低對S"中的服務進行排序,得到備選服務列表S al,其中各服務的優 先級即用其歸一化的相似度表示;相似度越大的服務將會在推薦中被優先考慮。6. 根據權利要求1至5中任一項所述的個性化旅行包推薦方法,其特征在于,(3)在備選 服務列表中,補充硬性需求中的服務,再剔除負需求中的服務,將硬性需求服務優先級標記 為高,其他服務優先級標記為低,最終得到旅行包推薦的備選服務集合,以用于旅行包的生 成和推薦包括: 步驟8:將步驟3中得到的用戶硬性需求列表MQ={D,N,mqi,mq2, . . .,mqmP}中的服務 {mqi,mq2,…,mqmP}添加至備選服務列表Sai中,并將{mqi,mq2,…,mqm P}中的全部服務優先 級標記為1;再將步驟2中得到的負需求列表NQ= {nqi,nq2, . . .,nqnp}中的服務從備選服務 列表Sal中剔除,最終得到更新后的備選服務列表S al';每個服務都包含一個優先級的屬性, 取值為0~1,越大表示該服務在組合時的優先級越高;由硬性需求得到的服務優先級為1, 其余為步驟7中計算的相似度的值。7. 根據權利要求1至6中任一項所述的個性化旅行包推薦方法,其特征在于,(1)根據用 戶的天數要求以及上面得到的備選服務集合,生成備選的景點組合,得到備選的一系列旅 行包,在旅行包的生成過程中,用戶的硬性需求會得到優先的滿足包括: 步驟9:根據用戶的旅行天數要求N以及步驟8得到的備選景點服務集合S求解優化問 題,生成用戶在N天內游覽的全部景點集合SF,得到備選旅行包集合SFall={SF1,S F2,..., SFn} 〇8. 根據權利要求1至7中任一項所述的個性化旅行包推薦方法,其特征在于,(2)結合景 點的地理位置信息及用戶的偏好,選定旅行包中的住宿酒店包括: 步驟10:分別對步驟9中求得的備選旅行包集合SFaii = {SF1,SF2,. . .,SFn}中的每一個SFi 計算篩選相應的酒店服務,得到了備選旅行包集合SFall = {SF1,SF2,. . .,SFn}中的每一個SFl 所對應推薦的酒店服務出。9.根據權利要求1至8中任一項所述的個性化旅行包推薦方法,其特征在于,(3)根據路 程確定每天最優行程,得到每個旅行包的預期路程,并結合優先級信息,計算旅行包推薦指 數,排序旅行包包括: 步驟11:對備選旅行包集合SFall={SFl,SF2, . . .,SFn}中的每一個SFi,計算相應的最優路 徑規劃,定義路程函數+心-~+ J 旅行包3「1第」天行程安排所需的最短全部交通路程,其中表示第j天游覽的景點數目;進 而對每一個SFl求解優化問題,以得到最優的旅行包路徑規劃; [s?] Ν' 步驟12:計算每個旅行包的推薦指數I: Z = ,其中b、c為正實數,進 ^=1 Μ 而根據推薦指數I由高到低排序各旅行包,得到旅行包推薦方案sFall'= {SF1',SF2',..., SFn ? } 〇
【文檔編號】G06Q50/14GK105955981SQ201610237787
【公開日】2016年9月21日
【申請日】2016年4月15日
【發明人】范玉順, 郝予實, 郜振鋒, 湯恩清
【申請人】清華大學