蔡金勇 羅浩杰 李澤星 沈洋
摘要:本文旨在利用數(shù)據(jù)分析對游客對景區(qū)與酒店的評價進行數(shù)據(jù)挖掘,由于游客滿意度與目的地美譽度緊密相關(guān),游客滿意度越高,目的地美譽度就越大。找出其中穩(wěn)定客源、取得競爭優(yōu)勢、吸引游客到訪消費等的主要原因。這對于旅游企業(yè)科學(xué)監(jiān)管、資源優(yōu)化配置以及市場持續(xù)開拓具有長遠而積極的作用。
關(guān)鍵詞:數(shù)據(jù)分析;jieba分詞; 停用詞; 均方誤差; 編輯距離
一、問題重述
提升景區(qū)及酒店等旅游目的地美譽度是各地文旅主管部門和旅游相關(guān)企業(yè)非常重視和 關(guān)注的工作,涉及到如何穩(wěn)定客源、取得競爭優(yōu)勢、吸引游客到訪消費等重要事項。游客滿意度與目的地美譽度緊密相關(guān),游客滿意度越高,目的地美譽度就越大。
二、景區(qū)及酒店印象分析
(一)使用方法
我們將會用到j(luò)ieba分詞的方法,有三種分詞模式
(1) 精確模式:試圖將句子最精確地切開,適合文本分析;
(2) 全模式:把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義問題;
(3) 搜索引擎模式:在精確模式的基礎(chǔ)上,對長詞再次切分,提高召回率,適合用于搜索引擎分詞。
(二)問題解決
1.目的地TOP20熱門詞
本節(jié)使用jieba模塊中的精準(zhǔn)模式對網(wǎng)評文本進行分詞,再使用中文常用停用詞(中文停用詞表“cn_stopwords.txt”,哈工大停用詞表“hit_stopwords.txt”,百度停用詞表“baidu_stopword.txt”,四川大學(xué)機器智能實驗室停用詞庫“scu_stopwords.txt”)表對文本進行過濾,遍歷所有詞語,每出現(xiàn)一次加一,再將對應(yīng)鍵值轉(zhuǎn)換為列表,根據(jù)詞語出現(xiàn)的次數(shù)進行從到大到小進行排列,將排名前二十的熱詞及熱度輸出。
2. 每家酒店和景區(qū)的印象詞云表
我們將景區(qū)評論及酒店評論使用JupyterNotebook將其轉(zhuǎn)換為矩陣,新建一個空列表list1,創(chuàng)建一個循環(huán),將矩陣中第一列一樣的評論依此增加如list1中,每次添加完一次之后對list1進行分詞及過濾之后將前20個數(shù)據(jù)保存入對應(yīng)名稱的后綴為.csv的文件中。
總結(jié):由于數(shù)據(jù)處理對象為景區(qū)評論和酒店評論,我們選用停用詞表時可以選用針對性較強的,可以過濾更多無關(guān)詞語。分詞方法有很多,可以針對不同情況使用。待分詞的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建議直接輸入 GBK 字符串,可能無法預(yù)料地錯誤解碼成 UTF-8
三、景區(qū)及酒店的綜合評價
1. 數(shù)學(xué)模型及相應(yīng)算法
我們對問題一中的熱度數(shù)據(jù)對景區(qū)及酒店的服務(wù)、位置、設(shè)施、衛(wèi)生、性價比進行分析,在列表中衛(wèi)生熱度只有1931,而與其近似的干凈則占熱度3459,所以我們決定用干凈的熱度來表示衛(wèi)生的熱度。以及列表中性價比的熱度為2237,與其近似的便宜熱度為3190,及免費2360,考慮到有可能會有一句網(wǎng)評中都包含了這幾個詞語,所以我們決定用熱度較高的便宜來表示性價比的熱度。然后對這五個求權(quán)重得到下表:
提取出這五個的權(quán)重生成5×1的矩陣mat3,mat3則為評分權(quán)重矩陣。再將酒店評分提取出來生成5×50的矩陣mat1,將景區(qū)評分提取出來生成5×50的矩陣mat2。
用x1=np.dot(mat1,mat3)求得對酒店評分的預(yù)測矩陣,x2= np.dot(mat2,mat3)求得對景區(qū)的預(yù)測矩陣,在excel表中提取出酒店評分真實值y1及景區(qū)評分真實值y2。然后使用預(yù)測矩陣x減去真實矩陣y,分別得到差值矩陣d1,d2。
然后使用預(yù)測矩陣x減去真實矩陣y,分別得到差值矩陣d1,d2。
最后使用均方誤差進行模型判斷:
MSE:
計算酒店評分的均方誤差:np.dot(np.transpose(d1),d1)/50
計算景區(qū)評分的均方誤差:np.dot(np.transpose(d2),d2)/50
計算酒店加景區(qū)評分的均方誤差:
(np.dot(np.transpose(d2),d2)+np.dot(np.transpose(d1),d1))/100
得到MSE(酒店)≈0.0098
MSE(景區(qū))≈ 0.0121
MSE(酒店+景區(qū))≈ 0.0109
當(dāng)MSE越小,我們建立的模型越好。
四、網(wǎng)評文本的有效性分析
出于各種原因,網(wǎng)絡(luò)評論常常出現(xiàn)內(nèi)容不相關(guān)、簡單復(fù)制修改和無有效內(nèi)容等現(xiàn)象,為了解決這個問題,我們使用了計算編輯距離的方法。
1.算法
編輯距離,又稱Levenshtein距離(也叫做Edit Distance),是指兩個字串之間,由一個轉(zhuǎn)成另一個所需的最少編輯操作次數(shù),如果它們的距離越大,說明它們越是不同。許可的編輯操作包括將一個字符替換成另一個字符,插入一個字符,刪除一個字符。
代碼實現(xiàn):
Levenshtein.distance(’abc’,’cba’)
Levenshtein.distance(’kitten’,’sitting’)
2.問題解決
通過計算編輯距離,我們剔除距離小于0.5的數(shù)據(jù),使得數(shù)據(jù)更加簡潔,提高數(shù)據(jù)有效性。
在執(zhí)行過程中,為了減少計算,我們首先對數(shù)據(jù)進行了清洗,主要用到了去停用詞,結(jié)巴精準(zhǔn)分詞等方法,然后計算編輯距離。但是通過對比較結(jié)果進行分析,我們發(fā)現(xiàn)距離普遍較小,即相關(guān)性普遍較大,無法進行有效剔除。因此我們放棄了此方法,選擇分析文本。
我們將每個文本與后面的文本進行比較,得到對應(yīng)的相關(guān)性(代碼用的是1-aa,因此,值越靠近1相關(guān)性越強):
我們將這些篩選出的相關(guān)度高的數(shù)據(jù)進行剔除,就整理出來了一個更有效的數(shù)據(jù)。