李春虎,趙海博,秦豪
(華北理工大學(xué)理學(xué)院,河北唐山,063210)
情感分析問題本質(zhì)上是文本分類問題,通常是將文本分為消極情感和積極情感兩類,有監(jiān)督的文本情感分析主要是運(yùn)用樸素貝葉斯、支持向量機(jī)等有監(jiān)督學(xué)習(xí)算法進(jìn)行情感分類,實(shí)驗(yàn)證明,使用一元詞作為特征的樸素貝葉斯(NB,na?ve Bayes)和支持向量機(jī)(SVM,Support Vector Machine)等機(jī)器學(xué)習(xí)算法在文本情感分析中表現(xiàn)出色.Pang、Lee和Vaithyanathan等[1]被認(rèn)為是最早將原本應(yīng)用于基于主題分類的機(jī)器學(xué)習(xí)算法應(yīng)用到文本情感分析研巧中的研巧者,他們使用樸素貝葉斯、最大熵(ME,Maximum Entropy)、支持向量機(jī)等機(jī)器學(xué)習(xí)算法將電影評論文本分為褒義和貶義兩類。Mlen和Collier等[2]在此基礎(chǔ)上提出了一種將基于一元詞特征與基于實(shí)際特征詞相結(jié)合的SVM算法Ye等[3]比較了樸素貝葉斯、支持向量機(jī)和基于特征的N-gram模型在旅行博客評論文本上的分類效果,實(shí)驗(yàn)結(jié)果表明,支持向量機(jī)和N-gram模型準(zhǔn)確率高于樸素貝葉斯算法,當(dāng)訓(xùn)練集足夠大時,這H種方法均能得到80%的準(zhǔn)確率。Martineau和Finin等[4]提出了一種名為DeltaTFIDF的新的加權(quán)模式,提高了SVM算法的準(zhǔn)確率。
伴隨著聯(lián)網(wǎng)的發(fā)展、電子商務(wù)的興起以及信息的實(shí)時與交互化趨勢,網(wǎng)絡(luò)書評作為一種重要的書評資源,這些評論為本表達(dá)了評論者的觀點(diǎn)和情感,用戶也習(xí)慣于從網(wǎng)絡(luò)書評中獲取圖書相關(guān)信息,為自己的決策尋找相關(guān)意見。分析用戶發(fā)表在互聯(lián)網(wǎng)上的書評,能夠發(fā)現(xiàn)用戶對圖書的情感,挖掘其中的潛在信息,具有巨大的應(yīng)用價值.而現(xiàn)有的文本情感分析中,以網(wǎng)絡(luò)書評對象進(jìn)行的研究很少?;诖?,本文通過從互聯(lián)網(wǎng)上爬取書評信息,并對其進(jìn)行基于自然語言理解的統(tǒng)計(jì)分析,對圖書做出合理性評價,并通過實(shí)例證明了模型的可行性與實(shí)用性。
文本情感分析是一個綜合性的Web數(shù)據(jù)挖掘領(lǐng)域,與之相關(guān)的學(xué)科有計(jì)算機(jī)科學(xué)、教育學(xué)、音理學(xué)、語旨學(xué)、經(jīng)濟(jì)學(xué)等。情感分析(SentimentAnalysis),也被稱為評論挖掘或者意見挖掘(OpinionMining),指的是通過對文本內(nèi)容的分析,挖掘評論者所表達(dá)的情感傾向[5、6]。此技術(shù)可在現(xiàn)實(shí)生活中的很多方面得到應(yīng)用,例如,商務(wù)智能、民意調(diào)查、輿論分析、企業(yè)管理等。作為一種綜合性的Web數(shù)據(jù)挖掘領(lǐng)域,互聯(lián)網(wǎng)評論文本情感分析所涉及的研巧內(nèi)容非常廣泛,比如網(wǎng)絡(luò)中評論信息的自動識別、被評論商品的屬性識別、購買者評論的褒貶態(tài)度識別、挖掘網(wǎng)上評論和商品銷售情況之間的關(guān)系等等。利用互聯(lián)網(wǎng)評論文本情感分析的結(jié)果,潛在的購買者可以了解其他購買者對該產(chǎn)品的態(tài)度以及使用體驗(yàn),為自己是否購買提供決策依據(jù); 制造商和經(jīng)銷商可了解到消費(fèi)者關(guān)于產(chǎn)品和服務(wù)的反饋信息,參照消費(fèi)者對自己以及競爭對手的評價意見,對產(chǎn)品及服務(wù)進(jìn)行改進(jìn),從而獲得競爭優(yōu)勢。目前互聯(lián)網(wǎng)評論文本情感分析技術(shù)已經(jīng)得到開發(fā)應(yīng)用,例如,Google Product Search、Bing訊opping等能識別用戶對產(chǎn)品各種屬性的評價,并選擇具有代表性的評論顯示給用戶,國內(nèi)的亞馬遜、淘寶等購物網(wǎng)站也有類似功能。因此,互聯(lián)網(wǎng)評論文本情感分析的研究具有十分重要的現(xiàn)實(shí)意義。
目前主流的文本情感分析研究方法分為兩種類型:無監(jiān)督的文本情感分析和有監(jiān)督的文本情感分析。無監(jiān)督的文本情感分析主要是運(yùn)用情感詞的相關(guān)信息進(jìn)行文本情感傾向判別,有監(jiān)督的文本情感分析主要是運(yùn)用樸素貝葉斯、支持向量機(jī)等有監(jiān)督學(xué)習(xí)算法進(jìn)行情感分類,一般是將文本集合劃分為訓(xùn)練集和測試集,再對文本分詞處理、刪除停用詞、選取特征,將文本表示成為文本向量的形式,最后訓(xùn)練分類器并進(jìn)行分析。
網(wǎng)絡(luò)爬蟲是一個自動提取網(wǎng)頁的程序,它為搜索引擎從網(wǎng)頁上下載網(wǎng)頁,是搜索引擎的重要組成。傳統(tǒng)爬蟲從一個或若干初始網(wǎng)頁的 URL 開始,獲得初始網(wǎng)頁上的 URL, 在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL 放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件。聚焦爬蟲的工作流程較為復(fù)雜,需要根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的 URL 隊(duì)列。然后,它將根據(jù)一定的 搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁 URL,并重復(fù)上述過程,直到達(dá)到系統(tǒng)的某一條件時停止。另外,所有被爬蟲抓取的網(wǎng)頁將會被系統(tǒng)存貯,進(jìn)行一定的分析、過濾,并建立索引,以便之后的查詢和檢索; 對于聚焦爬蟲來說,這一過程所得到的分析結(jié)果還可能對以后的抓取過程給出反饋和指導(dǎo)。
網(wǎng)絡(luò)爬蟲分為以下幾種類型通用網(wǎng)絡(luò)爬蟲(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò)爬蟲(Focused Web Crawler)、增量式網(wǎng)絡(luò)爬蟲(Incremental Web Crawler)、深層網(wǎng)絡(luò)爬蟲(Deep Web Crawler)。本文所設(shè)計(jì)的算法即是通用網(wǎng)絡(luò)爬蟲,可以在各大書評網(wǎng)站爬取大量用戶的書評數(shù)據(jù)。
本文基于python的Requests與Beautiful庫對網(wǎng)頁信息進(jìn)行爬取。針對網(wǎng)絡(luò)書評的網(wǎng)絡(luò)爬蟲主要分為確定初始爬取鏈接的 URL 模塊,模擬瀏覽器行為,提取網(wǎng)頁內(nèi)容的用戶評論模塊,對提取的網(wǎng)頁進(jìn)行解析,提取出有用信息的網(wǎng)頁解析模塊以及負(fù)責(zé)存儲已爬取內(nèi)容的數(shù)據(jù)庫模塊。網(wǎng)絡(luò)爬蟲的具體結(jié)構(gòu)如圖1所示。
圖1 網(wǎng)絡(luò)爬蟲結(jié)構(gòu)圖
普通的網(wǎng)絡(luò)爬蟲需要選定一組初始鏈接,再從初始鏈接的網(wǎng)頁中提取超鏈接,并順著這些超鏈接爬取下一個網(wǎng)頁內(nèi)容,如此重復(fù)直到達(dá)到某種條件為止。而網(wǎng)絡(luò)書評的內(nèi)容頁面中,存在有許多與主題不相關(guān)的超鏈接,特別是一些廣告鏈接。如果按照普通網(wǎng)絡(luò)爬蟲的 URL 爬取策略,會爬取到很多無用的信息,對于爬蟲的爬取效率以及準(zhǔn)確率都有較大的影響。因此,分析目標(biāo)主題網(wǎng)站 URL 特點(diǎn),選取適當(dāng)?shù)某跏?URL 集,確定適合的爬行策略是很有必要的。
通過分析豆瓣書評的 URL 可以得知,各貼吧首頁的 URL 都是以特定的域名https://book。douban。com/subject/xxxxx/reviews?start=為頭,加上一個書評的關(guān)鍵字構(gòu)成。例如,《解憂雜貨店》書評的第10頁 URL 關(guān)鍵字形式為:
因此,本文選擇以特定的域名 https://book。douban。com/subject/25862578/reviews?start=作為開頭,加上用戶給定的關(guān)鍵字,以此得到的貼吧首頁鏈接作為初始 URL。然后通過網(wǎng)頁解析獲取目標(biāo)貼吧總頁數(shù),來確定最終網(wǎng)絡(luò)爬蟲爬行的 URL 集,其形式如下:
Requests是Python 里一個非常方便的客戶端請求代理模塊,是一個輕量的,漸進(jìn)式 API,是個可以方便處理 Get,Post,Put,Delete,Head 等請求的HTTP 方面的庫。在不同的應(yīng)用場景發(fā)送請求的時候,會選擇一個正確的請求方式,然后返回得到請求后的返回結(jié)果。文本利用 Request。get訪問相應(yīng)的 URL 鏈接,下載對應(yīng)的 Web 頁面,其核心代碼如下:
網(wǎng)頁解析的主要工作就是從網(wǎng)頁源碼中抽取出有效的文本節(jié)點(diǎn),這個過程分為兩步,第一步是分析網(wǎng)頁的結(jié)構(gòu),找出 HTML 網(wǎng)頁的結(jié)構(gòu)特性; 第二步是按照結(jié)構(gòu)特性所生成的解析規(guī)則,來獲取網(wǎng)頁上指定的文本節(jié)點(diǎn)數(shù)據(jù)。常用來解析HTML 網(wǎng)頁的方法有正則表達(dá)式法和調(diào)用第三方庫法。正則表達(dá)式的方法相較于第三方庫法存在諸多缺陷,最重要的是由于不同的網(wǎng)頁其結(jié)構(gòu)和文本節(jié)點(diǎn)的解析規(guī)則均不相同,需要撰寫不同的正則表達(dá)式來才能得到正確的文本數(shù)據(jù),兼容性較差,因此本文使用的是第三方庫來進(jìn)行網(wǎng)頁的解析?;?Python對網(wǎng)頁進(jìn)行解析的第三方庫有很多,其中比較流行的是Beautifulsoup。本文選擇用Beautifulsoup庫來解析網(wǎng)頁獲得文本。本文爬取的豆瓣書評網(wǎng)頁,從書評網(wǎng)頁底部DOM書來開始解析。
圖2 豆瓣書評底部DOM結(jié)構(gòu)
從中可以看出,用戶的書評包含在
停用詞(stop words)是指評論文本數(shù)量較多,但對文本的倩感傾向分析沒有幫助的詞語,例如代詞"這"、"那"、"他",語氣助詞"啊"、"唉",副詞"也"、"剛即"等,根據(jù)停用詞集合構(gòu)建的停用詞表刪除停用詞,能夠減少數(shù)據(jù)噪音,提高文本情感分類的準(zhǔn)確率。目前已有的研巧顯示,通過刪除停用詞來提高文本情感分類的準(zhǔn)確率的方法對于英文領(lǐng)域和中文領(lǐng)域同樣適用。夏火松等的實(shí)驗(yàn)中分析了不同停用詞表的使用和特征選擇對客戶評論文本情感分類的影響,提出了基于情感文本分類的有效的停用詞表,其實(shí)現(xiàn)代碼如下:
文本情感分析的過程主要包括文本預(yù)處理、情感極性判別、情感強(qiáng)度評價,普遍認(rèn)為真正的文本情感分析過程是指文本情感極性判別和文本情感強(qiáng)度的評價。文本情感極性判別是對主觀性文本表這的情感是積極的、正面的、褒義的還是消極的、負(fù)面的、貶義的自動識別,本文利用 Character-Based Generative Model對其進(jìn)行中文分詞,通過隱馬爾科夫模型對其進(jìn)行情感分析,Python中Snownlp模塊將這兩種方法封裝,該模塊可以對輸入的文本進(jìn)行情感分析,而后返回一個0-1的值,越接近1則該句子越表現(xiàn)積極,越接近0則消極,本文既用Snownlp庫對文本進(jìn)行情感分析。
TF-IDF(term frequency–inverse document frequency)詞頻--反轉(zhuǎn)文件頻率,是一種用于情報檢索與文本挖掘的常用加權(quán)技術(shù),用以評估一個詞對于一個文件或者一個語料庫中的一個領(lǐng)域文件集的重要程度。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加,但同時會隨著它在語料庫中出現(xiàn)的頻率成反比下降。通過對用戶書評的詞頻統(tǒng)計(jì),可以獲取大部分用戶對圖書的態(tài)度,從而對該圖書做出合理性描述。常用的詞頻統(tǒng)計(jì)方法有聚類法、次頻法、突發(fā)詞監(jiān)測法等多種方法,本文利用聚類分析對書評進(jìn)行詞頻統(tǒng)計(jì)。
《解憂雜貨店》是日本作家東野圭吾寫作的奇幻溫情小說。2011年于《小說野性時代》連載,于2012年3月由角川書店發(fā)行單行本。
該書講述了在僻靜街道旁的一家雜貨店,只要寫下煩惱投進(jìn)店前門卷簾門的投信口,第二天就會在店后的牛奶箱里得到回答:因男友身患絕癥,年輕女孩月兔在愛情與夢想間徘徊; 松岡克郎為了音樂夢想離家漂泊,卻在現(xiàn)實(shí)中寸步難行; 少年浩介面臨家庭巨變,掙扎在親情與未來的迷茫中……他們將困惑寫成信投進(jìn)雜貨店,奇妙的事情隨即不斷發(fā)生。該書獲得第七屆中央公論文藝獎、蘋果日報翻譯小說銷售排行榜連續(xù)兩季第二名,榮登紀(jì)伊國屋、誠品、博客來、金石堂各大排行榜第1名,亞馬遜中國2015年度暢銷圖書榜第二。本文以《解憂雜貨店》網(wǎng)絡(luò)書評為例,進(jìn)行了實(shí)例分析,具體步驟如下:
(1)利用Python中的Requests庫對1000個豆瓣網(wǎng)中《解憂雜貨店》書評網(wǎng)頁進(jìn)行爬取,共獲取17843條書評,部分結(jié)果如下圖2所示:
圖2 網(wǎng)絡(luò)書評部分?jǐn)?shù)據(jù)
(2)對書評進(jìn)行數(shù)據(jù)去噪、停用詞去除,部分結(jié)果如下圖3所示:
圖3 網(wǎng)絡(luò)書評停用詞去除后部分?jǐn)?shù)據(jù)
(3)對書評進(jìn)行情感分析,部分結(jié)果如下圖4所示:
圖4 網(wǎng)絡(luò)書評情感分析部分得分
(4)對所有書評的情感分析得分進(jìn)行統(tǒng)計(jì),結(jié)果如下圖 5所示(圖中 x軸代表評論得分,y軸代表評論條數(shù)):
圖5 情感分析統(tǒng)計(jì)圖
(5)對書評進(jìn)行詞頻統(tǒng)計(jì),本文選取頻率出現(xiàn)在前八名的詞匯進(jìn)行統(tǒng)計(jì),結(jié)果如下圖6所示:
圖6 高頻詞匯統(tǒng)計(jì)圖
從上面若干圖中可以看出,大部分讀者對《解憂雜貨店》持積極態(tài)度,評分較高,該書是關(guān)于人生、溫情、治愈等主題的一本圖書。
利用網(wǎng)絡(luò)爬蟲技術(shù)從豆瓣等網(wǎng)站爬取書評,通過 Character-Based Generative Model對其進(jìn)行中文分詞,通過隱馬爾科夫模型對其進(jìn)行情感分析,通過3-gram算法對其進(jìn)行詞性標(biāo)注;最后通過書評分析對該書作出合理評價,并以《解憂雜貨店》書評為實(shí)例驗(yàn)證證明了模型的可行性與實(shí)用性。本方法可用于圖書分類、圖書推薦、購買圖書等多個方面,為讀者及商家提供了建設(shè)性的指導(dǎo)意義.
進(jìn)一步研究可以進(jìn)更為復(fù)雜和具體的文本情感強(qiáng)度的分析,以及對評價對象的自動識別,或者除了褒貶之外的更復(fù)雜的情感自動識別,也可以分年齡段、分人群對其做出的網(wǎng)絡(luò)書評進(jìn)行分類后更深的數(shù)據(jù)挖掘,同時可以從網(wǎng)絡(luò)書評中提取其它圖書書名,從而用于圖書推薦.
[1]王曉東, 劉倩, 陶縣俊.情感Ontology構(gòu)建與文本傾向性分析.計(jì)算機(jī)工程與應(yīng)用, 2010, 46: 117-120.
[2]Mullen, T.and N.Collier, Sentiment analysis using support vector machines with diverse information sources.In Proceedings of Conference on Empirical Methodsin Natural Language Processing, 2004.
[3]Ye, Q., Z.Zhang and R.Law, Sentiment classification of online reviews to traveldstinations by supervised machine learning approaches.Expert Systems withpplications, 2009, 36(3): 6527-535.
[4]Martineau, J.and T.Finin.Delta TFIDF: An Improved Feature Space for SentimentAnalysis.in ICWSM.2009.
[5]Pang, B., L.Lee and S.Vaithyanathan.Thumbs up?: sentiment classification usingmachinelearning techniques。in Proceedings of the ACL-02 conference on Empirical methods inlanguage processing-Volume 10.2002:Association forLinguistics.
[6]Turney, P., Thumbs Up or Thumbs Down? Semantic Orientation Applied toUnsupervised Classification of Reviews.Proc.40th Annual Meeting of theAssociation for Computational Linguistics (ACL'02), 2002.