文/關海楨,包莞暉,羅正,禤世麗
本文以茂名市旅游產品為對象采集了樣本數據,并運用TF-IDF算法和LDA主題模型求得樣本數據的樣本相似度,進行文本分類和數據預處理;運用TextRank算法提取了微信公眾號等平臺有關旅游產品的數據;采用關聯性規則Apriori算法對提取的數據進行關聯度分析,進而明確旅游產品之間的聯系。
隨著互聯網的發展,國內旅游產業逐漸進入“大智慧旅游”和“智慧旅游2.0”時代,網絡評論成為游客表達旅游感想的新形式。但網絡評論數量龐大、內容繁雜,游客面對海量的網絡評論,很難快速找出適合自己的旅游主題和旅游產品。基于此,本文結合多種數據處理與分析手段,以期明確旅游市場的真實需求。
TF-IDF算法的主要邏輯是:如果某個詞語或短語在一篇文章中出現的頻率(TF)高,并且在其他文章中很少出現,則認為該詞或者短語具有很好的類別區分能力,適合用來分類。[1]TF-IDF算法表達式如下:

式中,各參數的具體含義如表1所示。

表1 TF-IDF算法中各參數含義
LDA主題模型是由布萊(Blei)等人在2003年提出的一種無監督的主題模型,這是一個文檔生成概率模型。[2]LDA指的是隱含狄立克雷分布,主題模型則是指基于無監督學習的方法對文檔隱含的語義結構進行聚類的一種模型。
TextRank算法是一種用于文本的基于圖的排序算法。[3]TextRank算法的基本邏輯是:通過把文本分割成若干組成單元并建立圖模型,利用投票機制對文本中的重要成分進行排序,僅利用單篇文檔本身的信息即可實現關鍵詞提取[4],獲得比較高分的N個單詞作為文本關鍵詞。TextRank算法的計算公式如下:

式中,各參數的含義如表2所示。

表2 TextRank算法計算公式各參數含義
Apriori算法是一種挖掘關聯規則的頻繁項集算法,其核心邏輯是通過候選集生成和情節的向下封閉檢測兩個階段來挖掘頻繁項集。[5]在使用Aprior算法時,使用者需要先找出support≥min_support的 頻 繁項集,之后在頻繁項集中生成強關聯規則。
本次分析的數據來源于5個數據集。其中包括50篇游記攻略,共計采集到450條數據,涉及9個指標;50篇酒店評論,共計采集到300條數據,涉及6個指標;50篇景區評論,共計采集到150條數據,涉及3個指標;50篇餐飲評論,共計采集到200條數據,涉及4個指標;80篇微信公眾號文章,共計采集到160條數據,涉及2個指標。
本文首先使用Jieba詞庫對采集到的數據進行預處理。文本分詞結束后,本文利用“哈工大停用詞表”去除停用詞。隨后使用TFIDF相似度模型對處理后的數據進行粗加工,對分詞后的文件進行第一遍相似度檢驗,最后采用LDA主題模型對分詞后的數據做精準度更高的第二遍相似度檢驗。
本文基于酒店評論、景區評論和餐飲評論,通過直接匯總的方式得出旅游產品。以游記攻略為例,本文主要對攻略中展示的旅游產品進行提取。在此過程中,本文利用python(計算機編程語言)從附件提供的OTA(空中下載技術)、UGC(用戶原創內容)數據中提取景區、酒店、民宿、特色餐飲、鄉村旅游等旅游產品的實例和其他有用信息;同時利用PandasDataFrame.columns算數運算,使行、列標簽上的數據全部預處理,并進行分詞、重組之后,最終整理出6286條數據,匯總成一份9469行×5列的表格,部分內容如表3所示。

表3 部分餐飲旅游產品提取表
1.統計情感得分
考慮到中文情感分析庫(cnsenti)能夠對文本進行情緒分析、正負情感分析,本文通過其Sentiment正負情感計算類功能進行計算,以統計相關旅游產品的情感得分(正向為1分,負向為-1分,中性為0分)。該功能支持正負情感詞典自定義,并且可以利用hownet情感詞典對文本中的正、負面詞語進行統計。
2.按年份統計旅游產品出現的次數
旅游產品出現的頻次在一定程度上反映了該產品的受歡迎程度。本文按年份統計了采集數據中各類旅游產品的出現次數,得出如下結果:2018年980次,2019年1228次,2020年2124次,2021年5137次。在此基礎上,本文將旅游產品的情感得分和出現頻次相加,最終得出旅游產品熱度。根據相關數據可知,熱度排名前五的旅游產品均是來自2018年餐飲評論中被多次提及的清香面包店(車田街店),其熱度總分為175分。
為了進一步提高旅游產品熱度的準確度,本文還做了如下處理。(1)對旅游產品熱度得分表的文本進行分詞和去停用詞處理;(2)對旅游產品熱度得分表的文本進行排列;(3)根據不同的年份去除旅游產品熱度得分表中的重復項。經過處理后,本次旅游產品(部分)的類型如表4所示(部分)。

表4 部分旅游產品類型表
1.計算相關度
在相關度計算過程中,本文借助TF-IDF(詞頻與逆向文件頻率)模型和LDA(聚類分析)主題模型對微信公眾號文章進行分類,并根據其內容與文旅的相關性把微信公眾號文章劃分為“相關”和“不相關”兩類(見表5)。

表5 部分微信公眾號文章相關與不相關結果分析表
2.計算關聯度
在計算相似度的基礎上,本文以樣本集的旅游產品為基礎進行one-hot編碼(狂熱編碼),并將編碼轉化為字符串,通過“支持度(數據集D中觀測到的含有A所有項的比例,其表示的是項集{X,Y}在總項集里出現的概率)乘以10作為關聯度”這一公式計算關聯度,(部分)計算過程如圖1所示。圖中,每一個藍色圓圈都代表一個旅游點,圓圈與圓圈間的連線則代表不同旅游點之間的關聯性。連接線越多,說明該旅游點的支持度總和越大、置信度越高、關聯規則越強。

本文基于Python和大數據分析了茂名市旅游產品之間的關聯度,結果顯示,茂名市景點和景區之間相互帶動,酒店和特色餐飲之間相互促成,游客對于某種旅游產品的選擇和喜愛會間接影響對另一種旅游產品的選擇。在這各種關聯性的影響下,茂名市的旅游產業蓬勃發展。
當下,旅游行業需要打破常規開辟新思路。旅游產品之間普遍存在關聯性,一個有特色的景點可以帶動周邊旅游產品的發展,進而提升景區的知名度。從長遠角度來看,景區可以推出特色游覽價格,讓利于民;酒店可與本地特色餐飲店聯合,共同推出優惠套餐,吸引游客體驗;特色的旅游產品可以通過連帶關系帶動著小眾旅游產品吸引游客關注,從而促使當地旅游產業平衡發展。