李春虎,趙海博,秦豪
(華北理工大學理學院,河北唐山,063210)
情感分析問題本質上是文本分類問題,通常是將文本分為消極情感和積極情感兩類,有監督的文本情感分析主要是運用樸素貝葉斯、支持向量機等有監督學習算法進行情感分類,實驗證明,使用一元詞作為特征的樸素貝葉斯(NB,na?ve Bayes)和支持向量機(SVM,Support Vector Machine)等機器學習算法在文本情感分析中表現出色.Pang、Lee和Vaithyanathan等[1]被認為是最早將原本應用于基于主題分類的機器學習算法應用到文本情感分析研巧中的研巧者,他們使用樸素貝葉斯、最大熵(ME,Maximum Entropy)、支持向量機等機器學習算法將電影評論文本分為褒義和貶義兩類。Mlen和Collier等[2]在此基礎上提出了一種將基于一元詞特征與基于實際特征詞相結合的SVM算法Ye等[3]比較了樸素貝葉斯、支持向量機和基于特征的N-gram模型在旅行博客評論文本上的分類效果,實驗結果表明,支持向量機和N-gram模型準確率高于樸素貝葉斯算法,當訓練集足夠大時,這H種方法均能得到80%的準確率。Martineau和Finin等[4]提出了一種名為DeltaTFIDF的新的加權模式,提高了SVM算法的準確率。
伴隨著聯網的發展、電子商務的興起以及信息的實時與交互化趨勢,網絡書評作為一種重要的書評資源,這些評論為本表達了評論者的觀點和情感,用戶也習慣于從網絡書評中獲取圖書相關信息,為自己的決策尋找相關意見。分析用戶發表在互聯網上的書評,能夠發現用戶對圖書的情感,挖掘其中的潛在信息,具有巨大的應用價值.而現有的文本情感分析中,以網絡書評對象進行的研究很少。基于此,本文通過從互聯網上爬取書評信息,并對其進行基于自然語言理解的統計分析,對圖書做出合理性評價,并通過實例證明了模型的可行性與實用性。
文本情感分析是一個綜合性的Web數據挖掘領域,與之相關的學科有計算機科學、教育學、音理學、語旨學、經濟學等。情感分析(SentimentAnalysis),也被稱為評論挖掘或者意見挖掘(OpinionMining),指的是通過對文本內容的分析,挖掘評論者所表達的情感傾向[5、6]。此技術可在現實生活中的很多方面得到應用,例如,商務智能、民意調查、輿論分析、企業管理等。作為一種綜合性的Web數據挖掘領域,互聯網評論文本情感分析所涉及的研巧內容非常廣泛,比如網絡中評論信息的自動識別、被評論商品的屬性識別、購買者評論的褒貶態度識別、挖掘網上評論和商品銷售情況之間的關系等等。利用互聯網評論文本情感分析的結果,潛在的購買者可以了解其他購買者對該產品的態度以及使用體驗,為自己是否購買提供決策依據; 制造商和經銷商可了解到消費者關于產品和服務的反饋信息,參照消費者對自己以及競爭對手的評價意見,對產品及服務進行改進,從而獲得競爭優勢。目前互聯網評論文本情感分析技術已經得到開發應用,例如,Google Product Search、Bing訊opping等能識別用戶對產品各種屬性的評價,并選擇具有代表性的評論顯示給用戶,國內的亞馬遜、淘寶等購物網站也有類似功能。因此,互聯網評論文本情感分析的研究具有十分重要的現實意義。
目前主流的文本情感分析研究方法分為兩種類型:無監督的文本情感分析和有監督的文本情感分析。無監督的文本情感分析主要是運用情感詞的相關信息進行文本情感傾向判別,有監督的文本情感分析主要是運用樸素貝葉斯、支持向量機等有監督學習算法進行情感分類,一般是將文本集合劃分為訓練集和測試集,再對文本分詞處理、刪除停用詞、選取特征,將文本表示成為文本向量的形式,最后訓練分類器并進行分析。
網絡爬蟲是一個自動提取網頁的程序,它為搜索引擎從網頁上下載網頁,是搜索引擎的重要組成。傳統爬蟲從一個或若干初始網頁的 URL 開始,獲得初始網頁上的 URL, 在抓取網頁的過程中,不斷從當前頁面上抽取新的URL 放入隊列,直到滿足系統的一定停止條件。聚焦爬蟲的工作流程較為復雜,需要根據一定的網頁分析算法過濾與主題無關的鏈接,保留有用的鏈接并將其放入等待抓取的 URL 隊列。然后,它將根據一定的 搜索策略從隊列中選擇下一步要抓取的網頁 URL,并重復上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,并建立索引,以便之后的查詢和檢索; 對于聚焦爬蟲來說,這一過程所得到的分析結果還可能對以后的抓取過程給出反饋和指導。
網絡爬蟲分為以下幾種類型通用網絡爬蟲(General Purpose Web Crawler)、聚焦網絡爬蟲(Focused Web Crawler)、增量式網絡爬蟲(Incremental Web Crawler)、深層網絡爬蟲(Deep Web Crawler)。本文所設計的算法即是通用網絡爬蟲,可以在各大書評網站爬取大量用戶的書評數據。
本文基于python的Requests與Beautiful庫對網頁信息進行爬取。針對網絡書評的網絡爬蟲主要分為確定初始爬取鏈接的 URL 模塊,模擬瀏覽器行為,提取網頁內容的用戶評論模塊,對提取的網頁進行解析,提取出有用信息的網頁解析模塊以及負責存儲已爬取內容的數據庫模塊。網絡爬蟲的具體結構如圖1所示。

圖1 網絡爬蟲結構圖
普通的網絡爬蟲需要選定一組初始鏈接,再從初始鏈接的網頁中提取超鏈接,并順著這些超鏈接爬取下一個網頁內容,如此重復直到達到某種條件為止。而網絡書評的內容頁面中,存在有許多與主題不相關的超鏈接,特別是一些廣告鏈接。如果按照普通網絡爬蟲的 URL 爬取策略,會爬取到很多無用的信息,對于爬蟲的爬取效率以及準確率都有較大的影響。因此,分析目標主題網站 URL 特點,選取適當的初始 URL 集,確定適合的爬行策略是很有必要的。
通過分析豆瓣書評的 URL 可以得知,各貼吧首頁的 URL 都是以特定的域名https://book。douban。com/subject/xxxxx/reviews?start=為頭,加上一個書評的關鍵字構成。例如,《解憂雜貨店》書評的第10頁 URL 關鍵字形式為:

因此,本文選擇以特定的域名 https://book。douban。com/subject/25862578/reviews?start=作為開頭,加上用戶給定的關鍵字,以此得到的貼吧首頁鏈接作為初始 URL。然后通過網頁解析獲取目標貼吧總頁數,來確定最終網絡爬蟲爬行的 URL 集,其形式如下:

Requests是Python 里一個非常方便的客戶端請求代理模塊,是一個輕量的,漸進式 API,是個可以方便處理 Get,Post,Put,Delete,Head 等請求的HTTP 方面的庫。在不同的應用場景發送請求的時候,會選擇一個正確的請求方式,然后返回得到請求后的返回結果。文本利用 Request。get訪問相應的 URL 鏈接,下載對應的 Web 頁面,其核心代碼如下:

網頁解析的主要工作就是從網頁源碼中抽取出有效的文本節點,這個過程分為兩步,第一步是分析網頁的結構,找出 HTML 網頁的結構特性; 第二步是按照結構特性所生成的解析規則,來獲取網頁上指定的文本節點數據。常用來解析HTML 網頁的方法有正則表達式法和調用第三方庫法。正則表達式的方法相較于第三方庫法存在諸多缺陷,最重要的是由于不同的網頁其結構和文本節點的解析規則均不相同,需要撰寫不同的正則表達式來才能得到正確的文本數據,兼容性較差,因此本文使用的是第三方庫來進行網頁的解析。基于 Python對網頁進行解析的第三方庫有很多,其中比較流行的是Beautifulsoup。本文選擇用Beautifulsoup庫來解析網頁獲得文本。本文爬取的豆瓣書評網頁,從書評網頁底部DOM書來開始解析。

圖2 豆瓣書評底部DOM結構
從中可以看出,用戶的書評包含在

停用詞(stop words)是指評論文本數量較多,但對文本的倩感傾向分析沒有幫助的詞語,例如代詞"這"、"那"、"他",語氣助詞"啊"、"唉",副詞"也"、"剛即"等,根據停用詞集合構建的停用詞表刪除停用詞,能夠減少數據噪音,提高文本情感分類的準確率。目前已有的研巧顯示,通過刪除停用詞來提高文本情感分類的準確率的方法對于英文領域和中文領域同樣適用。夏火松等的實驗中分析了不同停用詞表的使用和特征選擇對客戶評論文本情感分類的影響,提出了基于情感文本分類的有效的停用詞表,其實現代碼如下:

文本情感分析的過程主要包括文本預處理、情感極性判別、情感強度評價,普遍認為真正的文本情感分析過程是指文本情感極性判別和文本情感強度的評價。文本情感極性判別是對主觀性文本表這的情感是積極的、正面的、褒義的還是消極的、負面的、貶義的自動識別,本文利用 Character-Based Generative Model對其進行中文分詞,通過隱馬爾科夫模型對其進行情感分析,Python中Snownlp模塊將這兩種方法封裝,該模塊可以對輸入的文本進行情感分析,而后返回一個0-1的值,越接近1則該句子越表現積極,越接近0則消極,本文既用Snownlp庫對文本進行情感分析。
TF-IDF(term frequency–inverse document frequency)詞頻--反轉文件頻率,是一種用于情報檢索與文本挖掘的常用加權技術,用以評估一個詞對于一個文件或者一個語料庫中的一個領域文件集的重要程度。字詞的重要性隨著它在文件中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。通過對用戶書評的詞頻統計,可以獲取大部分用戶對圖書的態度,從而對該圖書做出合理性描述。常用的詞頻統計方法有聚類法、次頻法、突發詞監測法等多種方法,本文利用聚類分析對書評進行詞頻統計。
《解憂雜貨店》是日本作家東野圭吾寫作的奇幻溫情小說。2011年于《小說野性時代》連載,于2012年3月由角川書店發行單行本。
該書講述了在僻靜街道旁的一家雜貨店,只要寫下煩惱投進店前門卷簾門的投信口,第二天就會在店后的牛奶箱里得到回答:因男友身患絕癥,年輕女孩月兔在愛情與夢想間徘徊; 松岡克郎為了音樂夢想離家漂泊,卻在現實中寸步難行; 少年浩介面臨家庭巨變,掙扎在親情與未來的迷茫中……他們將困惑寫成信投進雜貨店,奇妙的事情隨即不斷發生。該書獲得第七屆中央公論文藝獎、蘋果日報翻譯小說銷售排行榜連續兩季第二名,榮登紀伊國屋、誠品、博客來、金石堂各大排行榜第1名,亞馬遜中國2015年度暢銷圖書榜第二。本文以《解憂雜貨店》網絡書評為例,進行了實例分析,具體步驟如下:
(1)利用Python中的Requests庫對1000個豆瓣網中《解憂雜貨店》書評網頁進行爬取,共獲取17843條書評,部分結果如下圖2所示:

圖2 網絡書評部分數據
(2)對書評進行數據去噪、停用詞去除,部分結果如下圖3所示:

圖3 網絡書評停用詞去除后部分數據
(3)對書評進行情感分析,部分結果如下圖4所示:

圖4 網絡書評情感分析部分得分
(4)對所有書評的情感分析得分進行統計,結果如下圖 5所示(圖中 x軸代表評論得分,y軸代表評論條數):

圖5 情感分析統計圖
(5)對書評進行詞頻統計,本文選取頻率出現在前八名的詞匯進行統計,結果如下圖6所示:

圖6 高頻詞匯統計圖
從上面若干圖中可以看出,大部分讀者對《解憂雜貨店》持積極態度,評分較高,該書是關于人生、溫情、治愈等主題的一本圖書。
利用網絡爬蟲技術從豆瓣等網站爬取書評,通過 Character-Based Generative Model對其進行中文分詞,通過隱馬爾科夫模型對其進行情感分析,通過3-gram算法對其進行詞性標注;最后通過書評分析對該書作出合理評價,并以《解憂雜貨店》書評為實例驗證證明了模型的可行性與實用性。本方法可用于圖書分類、圖書推薦、購買圖書等多個方面,為讀者及商家提供了建設性的指導意義.
進一步研究可以進更為復雜和具體的文本情感強度的分析,以及對評價對象的自動識別,或者除了褒貶之外的更復雜的情感自動識別,也可以分年齡段、分人群對其做出的網絡書評進行分類后更深的數據挖掘,同時可以從網絡書評中提取其它圖書書名,從而用于圖書推薦.
[1]王曉東, 劉倩, 陶縣俊.情感Ontology構建與文本傾向性分析.計算機工程與應用, 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.