涂 晨,李 鑫,葉程軼
(江西理工大學(xué) 信息工程學(xué)院,江西 贛州 341000)
隨著近年來互聯(lián)網(wǎng)和自媒體的繁榮,旅游業(yè)不斷發(fā)展的同時(shí)也面臨著諸多需求,特別是每年的旅游市場(chǎng)現(xiàn)狀及未來規(guī)劃因得不到有效游客信息而無法充分分析和改善。由于新冠疫情的原因,在線旅游(Online Travel Agency, OTA)和游客的用戶生成內(nèi)容(User Generated Content, UGC)數(shù)據(jù)成為了解旅游市場(chǎng)現(xiàn)狀的重要信息來源。要使用OTA和UGC的數(shù)據(jù)內(nèi)容對(duì)某一特定旅游目的地進(jìn)行研究,數(shù)據(jù)挖掘及分析則成了必要手段。但在研究中發(fā)現(xiàn),OTA和UGC數(shù)據(jù)極為分散和碎片化,尤其是對(duì)于旅游城市來說,OTA和UGC數(shù)據(jù)包括且不僅限于微信公眾號(hào)文旅文章、酒店評(píng)論、景區(qū)評(píng)論以及游記攻略。對(duì)于如此碎片化的數(shù)據(jù),如何從中提取出旅游產(chǎn)品及其熱度和關(guān)聯(lián)性,從而進(jìn)行良好的數(shù)據(jù)分析,以此根據(jù)旅游產(chǎn)品熱度及關(guān)聯(lián)性對(duì)景區(qū)酒店等進(jìn)行一系列分析規(guī)劃,成為了“互聯(lián)網(wǎng)+旅游”的一大難題。
高新波等人[1]提出的基于社會(huì)媒體的旅游數(shù)據(jù)挖掘與分析方法初步反映了上述問題。目前,不少相關(guān)學(xué)者對(duì)此現(xiàn)象進(jìn)行了深入研究,提出了多種解決方法。例如,以改進(jìn)樸素貝葉斯分類[2]、支持向量機(jī)[3]、邏輯回歸、LSTM與CNN[4]、改 進(jìn) CNN 與 LSTM[5]、ERNIE-CNN[6]、Bootstrapping[7]、FMNN融合多神經(jīng)網(wǎng)絡(luò)[8]、改進(jìn)TF-IDF和ABLCNN[9]等機(jī)器學(xué)習(xí)模型[10]以及基于向量空間模型[11]來解決文本分類問題;以基于情感詞典、傳統(tǒng)機(jī)器學(xué)習(xí)[12]、深度學(xué)習(xí)等方法來解決情感分析問題[13];閆婷婷等人[14]開展的中文情感分析研究則在中文信息處理領(lǐng)域綜述了方法及不足;張昊旻等人[15]提出用權(quán)值算法來解決中文情感分析問題;唐慧豐等人[16]開展了基于監(jiān)督學(xué)習(xí)的中文情感分類技術(shù)比較研究等;以基于Apriori算法[17]的關(guān)聯(lián)規(guī)則挖掘技術(shù)[18]改進(jìn)FP-growth算法[19]的模型來解決關(guān)聯(lián)分析。同時(shí),隨著BERT模型在自然語言處理各領(lǐng)域的廣泛應(yīng)用,又激起了關(guān)于預(yù)訓(xùn)練模型的一系列研究,例如BERT-TECNN文本分類[20]。然而,由于該數(shù)據(jù)集類別失衡、無標(biāo)注且質(zhì)量參差不齊,其在各模型上的表現(xiàn)均得不到很好的效果,具體表現(xiàn)為精度極低、極早過擬合等情況。
為此,針對(duì)數(shù)據(jù)集類別失衡、無標(biāo)注等根源情況,本文采用無監(jiān)督學(xué)習(xí)的LDA主題模型中的主題分布進(jìn)行文本相似度計(jì)算,以此對(duì)文本是否屬于同一類別進(jìn)行區(qū)分,便于游客獲得指定分類信息的準(zhǔn)確性;在解決提取產(chǎn)品問題中,采用TextRank關(guān)鍵詞算法對(duì)其進(jìn)行關(guān)鍵詞提?。欢跓岫确治鰡栴}中,建立以產(chǎn)品評(píng)論為基準(zhǔn)、文本情感分析為輔的多維度產(chǎn)品熱度分析模型;同時(shí)采用關(guān)聯(lián)分析算法(Apriori)的思想,借由產(chǎn)品在文本間所存在的頻率,根據(jù)從指定數(shù)據(jù)中提取出的相關(guān)產(chǎn)品,對(duì)在總次數(shù)中產(chǎn)品出現(xiàn)次數(shù)與出現(xiàn)產(chǎn)品A且可能出現(xiàn)產(chǎn)品B的概率等進(jìn)行加權(quán)求和計(jì)算關(guān)聯(lián)度,說明旅游產(chǎn)品間的關(guān)系。
本文主要運(yùn)用基于LDA的文本分類模型、基于TextRank的關(guān)鍵詞提取和中文情感分析的熱度分析以及基于頻率的產(chǎn)品關(guān)聯(lián)度分析技術(shù),具體思路總結(jié)如下。
LDA(Latent Dirichlet Allocation,隱含狄利克雷分布)[21]是一種主題模型,它可以將文檔集中每篇文檔的主題按照概率分布的形式給出[22]。LDA模型算法是一種無監(jiān)督模型算法,旨在通過無監(jiān)督的學(xué)習(xí)發(fā)現(xiàn)文檔中隱含的主題信息,通過文檔中詞和詞之間的共有特征來發(fā)現(xiàn)文檔的主題結(jié)構(gòu)。同時(shí)它也是一種經(jīng)典的詞袋模型,通過詞袋把文檔看作一個(gè)詞頻向量[23],詞和詞之間沒有先后順序之分。其含義通常是指,文檔到主題服從多項(xiàng)式分布,主題到詞服從多項(xiàng)式分布。
假設(shè)有D個(gè)文檔,其中包含了K個(gè)主題,每個(gè)文檔的主題分布各不相同,且主題分布是多項(xiàng)分布,滿足Dirichlet分布,參數(shù)為α;每個(gè)主題的詞分布也各不相同,詞分布也是多項(xiàng)式分布,同樣滿足Dirichlet分布,參數(shù)為β。那么在語料庫中,α和β是Dirichlet分布的參數(shù),θ是關(guān)于文檔D的主題分布,即一個(gè)K維的向量。對(duì)于第i篇文檔Di,其主題分布為θi,詞分布為γij。運(yùn)用Gibbs采樣得到所有詞的主題,通過主題數(shù)得到每個(gè)主題的γij;再統(tǒng)計(jì)D中各個(gè)文檔里詞的主題數(shù),從而得出每個(gè)文檔的主題分布。
簡(jiǎn)化 Dirichlet公式:
計(jì)算文檔主題條件分布:
其中:為參數(shù);表示在第d個(gè)文檔中第k個(gè)主題詞所對(duì)應(yīng)的多項(xiàng)式分布計(jì)數(shù)。
基于上述內(nèi)容,聯(lián)系實(shí)際數(shù)據(jù)集,本文采用LDA主題模型求解主題分布,再根據(jù)主題分布所轉(zhuǎn)化的向量進(jìn)行運(yùn)算,得到主題相似度[24],由所求出的主題相似度進(jìn)行文本分類。
情感分析(sentiment analysis)是自動(dòng)判定文本中觀點(diǎn)持有者對(duì)某一話題所表現(xiàn)出的態(tài)度或情緒傾向性的過程、技術(shù)和方法。情感分析全稱為文本情感分析,其主要?dú)w納為3項(xiàng)主要任務(wù):情感信息抽取、情感信息分類以及情感信息的檢索與歸納[25]。
中文情感分析屬于情感信息分類這一模塊,即指在中文數(shù)據(jù)集上利用模型進(jìn)行訓(xùn)練,在廣大數(shù)據(jù)評(píng)論中將其分類并進(jìn)行標(biāo)注。常見任務(wù)如酒店評(píng)論為好評(píng)或差評(píng)。
在文本情感分析中,常見的情感分析大致有3類方法:基于情感詞典的情感分析、基于傳統(tǒng)機(jī)器學(xué)習(xí)的情感分析和基于深度學(xué)習(xí)的情感分析[13]。
對(duì)于中文情感分析來說,最簡(jiǎn)要的模型莫過于基于情感詞典的情感分析。本文采用Cnsenti模塊,導(dǎo)入情感詞典,利用情感分析對(duì)產(chǎn)品數(shù)據(jù)評(píng)論進(jìn)行好評(píng)、差評(píng)區(qū)分。簡(jiǎn)要步驟如圖1所示。
圖1 情感詞典情感分析簡(jiǎn)要流程
進(jìn)行情感分析以后,針對(duì)所得到的已經(jīng)貼好標(biāo)簽的好評(píng)和差評(píng)數(shù)據(jù),則可建立一個(gè)由產(chǎn)品評(píng)論總數(shù)、好評(píng)指標(biāo)和差評(píng)指標(biāo)決定的多維度熱度分析模型,從而進(jìn)行年份產(chǎn)品熱度計(jì)算。
關(guān)聯(lián)分析(association analysis)是從大量數(shù)據(jù)中發(fā)現(xiàn)頻繁項(xiàng)集間的關(guān)聯(lián)和相關(guān)關(guān)系,常用于數(shù)據(jù)挖掘,從整體數(shù)據(jù)中挖掘潛在關(guān)聯(lián)。
關(guān)聯(lián)分析運(yùn)用范圍極廣,例如常見的大數(shù)據(jù)推送、QQ中可能認(rèn)識(shí)的人等,都可利用關(guān)聯(lián)分析來實(shí)現(xiàn);同理,在處理游記攻略過程中,也可以利用關(guān)聯(lián)分析對(duì)指定城市中景區(qū)、酒店、餐飲等旅游相關(guān)產(chǎn)品的關(guān)聯(lián)程度進(jìn)行分析,進(jìn)而為城市未來旅游產(chǎn)業(yè)提供有效建議。
較為典型的關(guān)聯(lián)分析算法是Apriori算法。求產(chǎn)品關(guān)聯(lián)度可以嘗試基于該算法實(shí)現(xiàn)。Apriori算法旨在利用項(xiàng)集的支持度,由頻繁項(xiàng)集生成關(guān)聯(lián)規(guī)則,該算法基本步驟如圖2所示。
圖2 Apriori算法簡(jiǎn)要步驟
在Apriori算法中,把所有相互之間包含了關(guān)聯(lián)規(guī)則的產(chǎn)品作為集合,然后從最小k項(xiàng)集開始篩選支持度,得到候補(bǔ)頻繁k項(xiàng)集,再將其集合進(jìn)行合并,再循環(huán),直到得不到集合為止。
在本文中,采用關(guān)聯(lián)分析算法,利用產(chǎn)品支持度、置信度以及提升度進(jìn)行加權(quán)計(jì)算,得到最終關(guān)聯(lián)度。
通過觀察數(shù)據(jù)發(fā)現(xiàn),微信公眾號(hào)文章數(shù)共6 296,且微信公眾號(hào)正文與微信公眾號(hào)標(biāo)題分開,秉持?jǐn)?shù)據(jù)完整的原則,將正文及其標(biāo)題合并。文章內(nèi)容包含奇異字符、電話號(hào)碼等噪音數(shù)據(jù),且停用詞較多,會(huì)對(duì)分類模型產(chǎn)生影響。因此需要對(duì)所有文章進(jìn)行去停用詞以及中文分詞處理,隨后統(tǒng)一存放。同時(shí)發(fā)現(xiàn)景區(qū)評(píng)論中有少數(shù)噪音數(shù)據(jù)(景區(qū)地點(diǎn)未在該旅游城市)。針對(duì)此類噪聲數(shù)據(jù),應(yīng)尋找方法將其去除,避免產(chǎn)生影響。采用百度POI對(duì)景區(qū)地點(diǎn)進(jìn)行定位,去除噪聲數(shù)據(jù)。
在進(jìn)行關(guān)聯(lián)分析時(shí),所得到的數(shù)據(jù)過多過雜,有效項(xiàng)集少,候補(bǔ)頻繁項(xiàng)集難以捕獲,需要進(jìn)行數(shù)據(jù)篩選。
根據(jù)上述所發(fā)現(xiàn)的噪聲數(shù)據(jù),針對(duì)各種不同情況,進(jìn)行以下處理。
2.2.1 中文分詞
中文分詞是指將一個(gè)中文句子視作一個(gè)由漢字組成的序列,為方便計(jì)算機(jī)理解,故而將該序列按一定規(guī)則進(jìn)行重新切分,再重新組成序列的過程。常用的中文分詞工具有jieba、SnowNLP、NLPIR 等。
需要注意的是,如果僅僅是直接進(jìn)行分詞,則可能導(dǎo)致專有名詞的切分錯(cuò)誤,例如“放雞島”,則會(huì)被分成['放','雞','島']。因此,在分詞時(shí),一定要注意專有名詞的導(dǎo)入,避免專有詞的分詞出錯(cuò)。
2.2.2 去停用詞
在數(shù)據(jù)集中,存在大量常用語氣助詞、副詞、介詞等無意義詞匯,為提高關(guān)鍵詞密度,應(yīng)該盡可能將停用詞消去,減少其出現(xiàn)頻率。在本文中,直接采用了幾個(gè)常見的停用詞放入列表進(jìn)行消除,如圖3所示。
圖3 數(shù)據(jù)處理示例
2.2.3 POI景區(qū)定位
采用百度POI地點(diǎn)查詢,利用Selenium模塊的模擬瀏覽器訪問,指定城市;然后進(jìn)行景區(qū)搜索,返回指定地點(diǎn)的具體位置,根據(jù)其返回結(jié)果即可判定是否在該城市中。
2.2.4 頻繁集項(xiàng)獲取
將所得到的所有產(chǎn)品ID存入一個(gè)列表,產(chǎn)品ID與之對(duì)應(yīng)的產(chǎn)品名稱置入另一個(gè)列表。
設(shè)有文本總數(shù)為D,那么當(dāng)前文本為Di,項(xiàng)集為Z,對(duì)其進(jìn)行遍歷,如果產(chǎn)品存在,則將其產(chǎn)品名稱所對(duì)應(yīng)的索引值在產(chǎn)品ID表中求出,放入新的列表。每遍歷完一個(gè)文本Di,就會(huì)得到一個(gè)項(xiàng)集ZDi,該項(xiàng)集即可作為產(chǎn)品的候補(bǔ)頻繁集。
假設(shè)有產(chǎn)品ID[1,2,3,4,5],與之對(duì)應(yīng)的產(chǎn)品名稱為[A,B,C,D,E]。文檔D1=[A,D,G,H],文檔D2=[A,B,C,F(xiàn)]。那么在文檔D1中存在產(chǎn)品ID候補(bǔ)頻繁集ZD1={1,4},文檔D2中存在產(chǎn)品ID候補(bǔ)頻繁集ZD2={1,2,3}。
針對(duì)本研究背景,建立以三個(gè)分塊模型為核心的研究模型,將所得到的OTA和UGC數(shù)據(jù)輸入模型后,可根據(jù)不同需求,獲取不同輸出。具體模型示意圖如圖4所示。
圖4 研究模型流程
采用LDA主題模型進(jìn)行文本分類,根據(jù)該任務(wù)中所涉及到的一些特征詞直接建立LDA模型。該主題模型所涉及公式、詞、文檔以及主題關(guān)系為:
在此模塊中,主要模型流程如圖5所示。
圖5 基于LDA主題模型的文本分類簡(jiǎn)要流程
先進(jìn)行數(shù)據(jù)清洗后,建立主題模型并保存,再對(duì)每個(gè)文本進(jìn)行主題分布的計(jì)算,將得到的文本主題分布以向量的形式進(jìn)行內(nèi)積等計(jì)算,得到文本相似度。若相似度大于0,則視作該文本與LDA模型中涉及到的主題相關(guān),最后進(jìn)行分類。
采用多維度熱度評(píng)價(jià)模型,針對(duì)評(píng)論數(shù)據(jù)進(jìn)行產(chǎn)品的熱度分析。本文基于TextRank算法提出一種運(yùn)用Chinese Sentiment模塊進(jìn)行處理的熱度分析模型。以公式(4)進(jìn)行計(jì)算:
其中:Wi和Wj分別表示評(píng)論為好評(píng)、壞評(píng)時(shí)的權(quán)值;C為該產(chǎn)品評(píng)論數(shù);S為產(chǎn)品評(píng)論最大值。也可以根據(jù)圖6的流程,將公式轉(zhuǎn)化為:
圖6 熱度分析模型簡(jiǎn)要流程
其中:CG、SG為好評(píng)數(shù)及其最大值;CB、SB為差評(píng)數(shù)及其最大值。
由此,本文建立了一個(gè)以總評(píng)論數(shù)、好評(píng)、差評(píng)為自變量的熱度評(píng)價(jià)模型。
在建立模型之前,介紹Apriori關(guān)聯(lián)分析算法中的三個(gè)概念如下:
(1)支持度:是指某項(xiàng)集在數(shù)據(jù)集中出現(xiàn)的概率,以A、B項(xiàng)集為例,支持度表示A和B同時(shí)發(fā)生的概率,即:
(2)置信度:是指在某前提條件下,用關(guān)聯(lián)規(guī)則推出結(jié)果的概率,項(xiàng)集A發(fā)生則項(xiàng)集B發(fā)生的概率,即:
(3)提升度:表示A、B同時(shí)發(fā)生的概率與只發(fā)生B的概率之比,它表示為關(guān)聯(lián)規(guī)則中A與B的相關(guān)性,可表示為:
相關(guān)性根據(jù)提升度值可分為如下三種情況:正相關(guān),Lift(A,B)>1;不相關(guān)(相互獨(dú)立),Lift(A,B)=1;負(fù)相關(guān),Lift(A,B)<1。因此,本文以下面的公式計(jì)算關(guān)聯(lián)度:
對(duì)數(shù)據(jù)集中的文章采用LDA模型分類后,將計(jì)算出的文本相似度轉(zhuǎn)化為指定標(biāo)簽,并以“.csv”的格式保存下來,如圖7所示。
圖7 主題分類模型輸出結(jié)果
將經(jīng)過TextRank分詞處理和熱度分析處理后所得到的產(chǎn)品以及該產(chǎn)品在指定年份中的熱度以“.csv”格式保留下來,如圖8所示。
圖8 熱度分析模型輸出結(jié)果
將所相關(guān)的產(chǎn)品及關(guān)聯(lián)度保存在csv文件中,根據(jù)所得到的csv文件,進(jìn)行圖譜可視化生成。本文采用networkx進(jìn)行生成,以產(chǎn)品ID作為兩個(gè)點(diǎn),關(guān)聯(lián)度作為其權(quán)值進(jìn)行圖譜可視化,得到該圖譜。
根據(jù)模型所得到的輸出數(shù)據(jù),得到了有效且清晰的文本分類標(biāo)簽,使其可以根據(jù)指定主題來獲取更相關(guān)的文本集;對(duì)于熱度分析模型所得到的數(shù)據(jù),主要依據(jù)評(píng)論總數(shù)以及好差評(píng)指標(biāo)來進(jìn)行熱度計(jì)算并排名,由此則可以依據(jù)該模型來獲取產(chǎn)品熱度排行榜,對(duì)熱度低的文旅相關(guān)產(chǎn)品可以更有效地進(jìn)行分析和整改;由關(guān)聯(lián)分析模型可以更好地了解產(chǎn)品間所存在的關(guān)聯(lián)性以及關(guān)聯(lián)模式,從而給予更有效的文旅產(chǎn)品關(guān)聯(lián)推送及市場(chǎng)關(guān)聯(lián)分析。
本文基于LDA文本分類和熱度分析方法以及產(chǎn)品關(guān)聯(lián)度分析模型,將目前所遇到的困難拆解為建模和解決兩個(gè)部分。在建模階段,選取了最適宜數(shù)據(jù)集無標(biāo)注的方法,創(chuàng)新地選用了LDA主題模型進(jìn)行文本分類模型的構(gòu)建,極大地避免了數(shù)據(jù)少、無標(biāo)注等情況;考慮到需要在所給評(píng)論數(shù)據(jù)基礎(chǔ)上對(duì)產(chǎn)品進(jìn)行多維度的熱度分析,采用了中文情感分析模型進(jìn)行評(píng)論分類,從而作為指標(biāo)進(jìn)行評(píng)估;在求解關(guān)聯(lián)度任務(wù)中,采用了基于Apriori算法的關(guān)聯(lián)分析思想,從支持度、置信度、提升度的角度對(duì)產(chǎn)品之間的關(guān)聯(lián)度進(jìn)行評(píng)估。
在未來的工作中,將做出以下改進(jìn):
(1)遷移學(xué)習(xí):采用遷移學(xué)習(xí)[26]的思想將所給訓(xùn)練數(shù)據(jù)集用相同高頻詞的訓(xùn)練集替代,使數(shù)據(jù)集有更好的分布特征,進(jìn)而可采用自監(jiān)督學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)進(jìn)行處理。
(2)改進(jìn)模型:在關(guān)聯(lián)分析Apriori算法上進(jìn)一步改進(jìn),嘗試劉木林等人[27]提出的基于Hadoop的關(guān)聯(lián)規(guī)則挖掘算法進(jìn)行關(guān)聯(lián)分析計(jì)算,繼而提升數(shù)據(jù)分析的效果。