R語言自然語言處理:情感分析

2021-03-02 表哥有話講

作者:黃天元,復旦大學博士在讀,目前研究涉及文本挖掘、社交網絡分析和機器學習等。希望與大家分享學習經驗,推廣並加深R語言在業界的應用。

郵箱:huang.tian-yuan@qq.com

前文推送:

R語言自然語言處理:中文分詞

R語言自然語言處理:詞性標註與命名實體識別

R語言自然語言處理:關鍵詞提取(TF-IDF)

R語言自然語言處理:關鍵詞提取與文本摘要(TextRank)

R語言自然語言處理:文本向量化——詞嵌入(Word Embedding)

情感分析,就是根據一段文本,分析其表達情感的技術。比較簡單的情感分析,能夠辨別文本內容是積極的還是消極的(褒義/貶義);比較複雜的情感分析,能夠知道這些文字是否流露出恐懼、生氣、狂喜等細緻入微的情感。此外,情感的二元特性還可以表達為是否含有較大的感情波動。也就是說,狂喜和暴怒都屬於感情波動,而寵辱不驚則屬於穩定的情感狀態。

情感分析方法主要分為兩種:1.詞法分析;2.機器學習

其中,機器學習需要依賴於標註和特徵提取,這裡大有文章可做,但是很難提煉出共性,因此這裡不進行特殊的介紹。主要就是以人工標註的情感數值作為響應變量,然後另一方面對於文本進行向量化處理(詞嵌入),然後用模型進行擬合,最後得到一個好的模型對新的文本進行情感的評估。需要注意的是,對文本進行情感特徵的提取也是有文章可以做的,只要能夠正確認識哪些文本能夠提供情感信息,就能夠更好地捕捉文本的情感方向和程度。

tidytext進行詞法分析的技術路線

另一個方法,就是詞法分析。它的原理非常簡單,事前需要定義一個情感詞典。比如「喜歡」這個詞我們定義為1分。那麼「我喜歡你」這句話,「我」和「你」都是中性詞,均為0分,「喜歡」為1分,這句話的總分就是1分。「我喜歡你,但討厭他」,這樣一句話中有「討厭」這個詞,在情感詞典中分數為「-1」,那麼整句話的得分就是0。這樣,我們就可以對每一個文本進行分詞,然後使用內連接(inner join)來提取其中的情感詞語,並根據情感詞語的得分,來評估這段文本的情感得分。我找了兩個我認為比較好的R包來實現這個功能:

1.tidytext(juliasilge/tidytext); https://github.com/juliasilge/tidytext

2.SentimentAnalysis(sfeuerriegel/SentimentAnalysis)https://github.com/sfeuerriegel/SentimentAnalysis

這些包基本能夠通過複製粘貼代碼就能夠實現對文本情感的分析,這裡不進行贅述。不過這些包都是針對英文的,中文的情感詞典則比較匱乏。經過搜索,比較好的有大連理工大學提供的情感詞彙本體庫(大連理工大學信息檢索研究室(DUTIR)-搜人搜物搜信息,重情重義重認知)http://ir.dlut.edu.cn/EmotionOntologyDownload。不過我認為這些中文詞庫還是遠遠無法達到應用級的水準,真的要用,就需要自己構建情感詞庫。經過思考,我擬定的方法如下:1.對需要分析的文本進行分詞,並進行詞頻的分析(TF);2.根據出現最多的一些詞,對它們可能代表的情感進行評估;3.構建自定義情感詞典,導入分詞器中進行分詞,並通過詞典表對其進行情感打分。

只有了解這些文本的特點,才能夠更好地進行分詞並提取出情感信息。這種分析可以廣泛應用到用戶評價分析、輿情分析,能夠成為一個非常重要的輔助參考。針對個性化的詞典,還能夠精準評估一些文本是否出現了「特殊的」情感,比如極端情緒或我們特別感興趣的情緒(不滿?特別滿意?威脅恐嚇?)。這種分析還可以擴展到句法分析,也就是什麼句型與相應的情緒具有強烈的相關性,未來這個領域大有可期。

——————————————

往期精彩:

相關焦點

  • 【R案例】R語言中的情感分析與機器學習
    本篇文章將介紹在R語言中如何利用機器學習方法來做情感分析。
  • R語言自然語言處理:文本向量化——詞嵌入(Word Embedding)
    作者:黃天元,復旦大學博士在讀,目前研究涉及文本挖掘、社交網絡分析和機器學習等。
  • 自然語言處理的應用前景
    情感分析不僅可以處理社交媒體上的文字,還可以分解詞語出現的語境。對於分析機構Periscopic公司的數據可視化工具SkyeMorét來說,只有30%的英語單詞是正面的,其餘的是中性或負面的。因此,自然語言處理(NLP)可以幫助企業更全面地理解一個帖子:在這些中性詞彙背後,消費者表達的情感是什麼? 傳統上,企業使用自然語言處理將反饋分為積極和消極兩類。
  • 從零開始學自然語言處理(七)—— 句法結構分析
    在之前的 從零開始學自然語言處理
  • R語言-stringr-字符串處理
    R包stringr處理字符相對簡單,尤其是我常用Power BI,但是對M語言不熟悉,不會處理字符數據,往往我就先利用R清洗字符數據列。本文記錄工作中常用的字符處理函數,部分案例照搬R for Data Science的字符部分。
  • Python自然語言處理(NLP)入門教程
    NLTK是Python的自然語言處理工具包,在NLP領域中,最常使用的一個Python庫。什麼是NLP?簡單來說,自然語言處理(NLP)就是開發能夠理解人類語言的應用程式或服務。這裡討論一些自然語言處理(NLP)的實際應用例子,如語音識別、語音翻譯、理解完整的句子、理解匹配詞的同義詞,以及生成語法正確完整句子和段落。
  • 一本書精通Python自然語言處理
    NLP主要關注人機互動,它提供了計算機和人類之間的無縫交互,使得計算機在機器學習的幫助下理解人類語言。今天小編就給大家介紹一本《精通Python自然語言處理》,感受用Python是如何開發令人驚訝的NLP項目的。自然語言處理(Natural Language Processing,NLP)關注的是自然語言與計算機之間的交互。
  • 人工智慧難點之——自然語言處理(NLP)
    (人工智慧主要包含以下幾個方面: 自動推理-計算語言學-計算機視覺-進化計算-專家系統-自然語言處理-機器人學)自然語言處理(NLP)是資訊時代最重要的技術之一。理解複雜的語言也是人工智慧的重要組成部分。NLP的應用無處不在,因為人們用語言進行大部分溝通:網絡搜索,廣告,電子郵件,客戶服務,語言翻譯,發布學報告等等。NLP應用背後有大量的基礎任務和機器學習模型。
  • NLP(自然語言處理)掃盲
    自然語言處理(簡稱NLP),是研究計算機處理人類語言的一門技術,是人工智慧(AI)的一個子領域,包括:1.句法語義分析:對於給定的句子,進行分詞、詞性標記、命名實體識別和連結、句法分析、語義角色識別和多義詞消歧。
  • 自然語言處理——人工智慧戰略的重要方向
    而自然語言處理(Natural Language Processing,簡稱NLP)已成為計算機科學領域與人工智慧領域中的一個重要方向,它推動著智能時代的持續發展和突破,並越來越多地應用於各個行業。自然語言處理:AI皇冠上的明珠自然語言處理是研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。 既是一門科學,也是一門應用技術,試圖讓機器去模擬人類的語言能力。
  • 自然語言處理(NLP)的一般處理流程!
    什麼是NLP自然語言處理 (Natural Language Processing) 是人工智慧(AI)的一個子領域。自然語言處理是研究在人與人交互中以及在人與計算機交互中的語言問題的一門學科。為了建設和完善語言模型,自然語言處理建立計算框架,提出相應的方法來不斷的完善設計各種實用系統,並探討這些實用系統的評測方法。2.
  • 自然語言處理的十個發展趨勢
    本次大會的第一場分論壇討論是關於語言智能領域的八大問題。討論期間,哈爾濱工業大學劉挺教授對自然語言處理的發展趨勢做了一次精彩的歸納,他把這裡的趨勢分成了十個方面。哈爾濱工業大學教授劉挺趨勢1:語義表示——從符號表示到分布表示
  • 自然語言處理深度學習的7個應用
    自然語言處理領域正在從統計方法轉變為神經網絡方法。自然語言中仍有許多具有挑戰性的問題需要解決。然而,深度學習方法在一些特定的語言問題上取得了最新的成果。這不僅僅是深度學習模型在基準問題上的表現,基準問題也是最有趣的;事實上,一個單一的模型可以學習詞義和執行語言任務,從而消除了對專業手工製作方法渠道的需要。
  • 自然語言處理,到底在「處理」些什麼?
    隨著自然語言處理技術的發展,計算器對文字對處理能力也達到了一個新的層次。本文中,筆者將為我們解答:自然語言處理究竟擁有什麼「能力」,結合具體應用場景能做哪些事兒?技術邊界在哪?一、詞法分析基於大數據和用戶行為的分詞後,對詞性進行標註、命名實體識別,消除歧義 。
  • 人工智慧自然語言處理技術哪家靠譜?珍島有話說
    自然語言處理是人與機器人的溝通橋梁   語言是思維的載體,而自然語言處理作為人工智慧與語言學領域的分支學科,主要研究如何讓計算機處理和運用自然語言,實現人機之間的"語言"互通。這就意味著既要讓機器能理解自然語言文本的意義,還能以自然語言文本來表達既定的意圖、思想等。
  • 自然語言處理的發展簡史
    自然語言處理的主要內容 自然語言處理的主要內容包括但不限於如下分支領域:文本分類、文本生成、文本分析、信息抽取、自動摘要、智能問答、話題推薦、機器翻譯、主題詞識別、知識庫構建、深度文本表示、深度學習算法、命名實體識別、語音識別與合成等。自然語言處理主要研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。
  • 自然語言處理的十大應用
    介紹自然語言處理是數據科學領域最熱門的課題之一。公司在這一領域投入大量資金進行研究。每個人都在努力了解自然語言處理及其應用,並以此為生。你知道為什麼嗎?因為僅僅在短短幾年的時間裡,自然語言處理已經發展成為一種無人能想像的強大而有影響力的東西。為了了解自然語言處理的力量及其對我們生活的影響,我們需要看看它的應用。
  • AI皇冠上的明珠:人工智慧自然語言處理技術
    在人工智慧出現之前,機器能夠自動處理少量結構化的數據。隨著網絡的普及,人類進入了信息爆炸的時代,機器需要處理的數據越來越多、類型越來越豐富。而網絡中大量存在的文本、圖片、視頻往往都屬於非結構化數據。在這之中,文本的數量又是非常多的,且其中大部分都屬於上文提到的自然語言。雖然信息量大,但由於計算機無法理解,這時為了能夠分析和利用這些文本信息,就需要用到NLP技術。
  • 讓產品更了解世界,自然語言處理掀開人工智慧新篇章
    自然語言處理是人與機器人的溝通橋梁語言是思維的載體,而自然語言處理作為人工智慧與語言學領域的分支學科,主要研究如何讓計算機處理和運用自然語言,實現人機之間的"語言"互通。這就意味著既要讓機器能理解自然語言文本的意義,還能以自然語言文本來表達既定的意圖、思想等。
  • 中文自然語言處理雲平臺 訊飛語言云
    2014年11月28日,由科大訊飛和哈爾濱工業大學聯合推出的全球首個中文自然語言處理雲服務平臺「哈工大訊飛語言云」正式發布。作為科大訊飛現有智能語音交互技術服務平臺--「訊飛語音雲」的重要拓展,該「語言云」將與「語音雲」一起為廣大網際網路及移動網際網路的開發者提供從語音到語言的全面的、頂級的、一站式的核心技術服務支撐。