A. R語言中的情感分析與機器學習
來源 | 雪晴數據網
利用機器學習可以很方便的做情感分析。本篇文章將介紹在R語言中如何利用機器學習方法來做情感分析。在R語言中,由Timothy P.Jurka開發的情感分析以及更一般的文本挖掘包已經得到了很好的發展。你可以查看下sentiment包以及夢幻般的RTextTools包。實際上,Timothy還寫了一個針對低內存下多元Logistic回歸(也稱最大熵)的R包maxtent。
然而,RTextTools包中不包含樸素貝葉斯方法。e1071包可以很好的執行樸素貝葉斯方法。e1071是TU Wien(維也納科技大學)統計系的一門課程。這個包的主要開發者是David Meyer。
我們仍然有必要了解文本分析方面的知識。用R語言來處理文本分析已經是公認的事實(詳見R語言中的自然語言處理)。tm包算是其中成功的一部分:它是R語言在文本挖掘應用中的一個框架。它在文本清洗(詞干提取,刪除停用詞等)以及將文本轉換為詞條-文檔矩陣(dtm)方面做得很好。這里是對它的一個介紹。文本分析最重要的部分就是得到每個文檔的特徵向量,其中詞語特徵最重要的。當然,你也可以將單個詞語特徵擴展為雙片語,三連詞,n-連詞等。在本篇文章,我們以單個詞語特徵為例做演示。
注意,在R中用ngram包來處理n-連詞。在過去,Rweka包提供了函數來處理它,感興趣的可以查看這個案例。現在,你可以設置RTextTools包中create_matrix函數的參數ngramLength來實現它。
第一步是讀取數據:
創建詞條-文檔矩陣:
現在,我們可以用這個數據集來訓練樸素貝葉斯模型。注意,e1071要求響應變數是數值型或因子型的。我們用下面的方法將字元串型數據轉換成因子型:
測試結果准確度:
顯然,這個結果跟python得到的結果是相同的(這篇文章是用python得到的結果)。
其它機器學習方法怎樣呢?
下面我們使用RTextTools包來處理它。
首先,指定相應的數據:
其次,用多種機器學習演算法訓練模型:
現在,我們可以使用訓練過的模型做測試集分類:
准確性如何呢?
得到模型的結果摘要(特別是結果的有效性):
結果的交叉驗證:
結果可在我的Rpub頁面找到。可以看到,maxent的准確性跟樸素貝葉斯是一樣的,其它方法的結果准確性更差。這是可以理解的,因為我們給的是一個非常小的數據集。擴大訓練集後,利用更復雜的方法我們對推文做的情感分析可以得到一個更好的結果。示例演示如下:
推文情感分析
數據來自victornep。victorneo展示的是用python對推文做情感分析。這里,我們用R來處理它:
讀取數據:
首先,嘗試下樸素貝葉斯
然後,嘗試其他方法:
這里,我們也希望得到正式的測試結果。包括:
1.analytics@algorithm_summary:包括精確度,召回率,准確率,F-scores的摘要
2.analytics@label_summary:類標簽摘要
3.analytics@document_summary:所有數據和得分的原摘要
4.analytics@ensemble_summary:所有 精確度/覆蓋度 比值的摘要
現在讓我們看看結果:
與樸素貝葉斯方法相比,其它演算法的結果更好,召回精度高於0.95。結果可在Rpub查看
原文鏈接:http://www.xueqing.cc/cms/article/107
B. 自然語言處理怎麼最快入門
自然語言處理(簡稱NLP),是研究計算機處理人類語言的一門技術,包括:
1.句法語義分析:對於給定的句子,進行分詞、詞性標記、命名實體識別和鏈接、句法分析、語義角色識別和多義詞消歧。
2.信息抽取:從給定文本中抽取重要的信息,比如,時間、地點、人物、事件、原因、結果、數字、日期、貨幣、專有名詞等等。通俗說來,就是要了解誰在什麼時候、什麼原因、對誰、做了什麼事、有什麼結果。涉及到實體識別、時間抽取、因果關系抽取等關鍵技術。
3.文本挖掘(或者文本數據挖掘):包括文本聚類、分類、信息抽取、摘要、情感分析以及對挖掘的信息和知識的可視化、互動式的表達界面。目前主流的技術都是基於統計機器學習的。
4.機器翻譯:把輸入的源語言文本通過自動翻譯獲得另外一種語言的文本。根據輸入媒介不同,可以細分為文本翻譯、語音翻譯、手語翻譯、圖形翻譯等。機器翻譯從最早的基於規則的方法到二十年前的基於統計的方法,再到今天的基於神經網路(編碼-解碼)的方法,逐漸形成了一套比較嚴謹的方法體系。
5.信息檢索:對大規模的文檔進行索引。可簡單對文檔中的詞彙,賦之以不同的權重來建立索引,也可利用1,2,3的技術來建立更加深層的索引。在查詢的時候,對輸入的查詢表達式比如一個檢索詞或者一個句子進行分析,然後在索引裡面查找匹配的候選文檔,再根據一個排序機制把候選文檔排序,最後輸出排序得分最高的文檔。
6.問答系統:對一個自然語言表達的問題,由問答系統給出一個精準的答案。需要對自然語言查詢語句進行某種程度的語義分析,包括實體鏈接、關系識別,形成邏輯表達式,然後到知識庫中查找可能的候選答案並通過一個排序機制找出最佳的答案。
7.對話系統:系統通過一系列的對話,跟用戶進行聊天、回答、完成某一項任務。涉及到用戶意圖理解、通用聊天引擎、問答引擎、對話管理等技術。此外,為了體現上下文相關,要具備多輪對話能力。同時,為了體現個性化,要開發用戶畫像以及基於用戶畫像的個性化回復。隨著深度學習在圖像識別、語音識別領域的大放異彩,人們對深度學習在NLP的價值也寄予厚望。再加上AlphaGo的成功,人工智慧的研究和應用變得炙手可熱。自然語言處理作為人工智慧領域的認知智能,成為目前大家關注的焦點。很多研究生都在進入自然語言領域,寄望未來在人工智慧方向大展身手。但是,大家常常遇到一些問題。俗話說,萬事開頭難。如果第一件事情成功了,學生就能建立信心,找到竅門,今後越做越好。否則,也可能就灰心喪氣,甚至離開這個領域。
C. 自然語言處理為什麼要分詞
當然需要。 既然是「文本挖掘」,自然語言處理最基本的功能點肯定都要做: 新詞發現、分詞、詞性標注、分類、自動提取標簽、實體自動發現和識別。 最基本的這些功能點做了之後,可以用統計方法完成簡單文本挖掘應用,統計方法比如: TF/IDF、Map/Rece、貝葉斯。 再深入一些,就需要: 聚類(層次聚類、SVM、VSM)、情感趨勢分析。 再想提高: 語法分析、句式判斷。 但一般做到NLP最基本功能點+統計方法即可搞定一般的互聯中國應用。 本回答由電腦中國絡分類達人 董輝推薦
D. 情感解析技術現在能做到什麼
情感解析技術實質上也就是人工智慧中的自然語言處理技術中的一種。
也許前兩年我還很難回答你這個問題,不過隨著機器學習技術、硬體迭代等因素這兩年人工智慧得到了極大的發展,自然語言處理也就有了越來越多地實用價值。
在正式回答你的問題之前,我們先要明白,作為人工智慧技術基礎的機器學習,其最重要的就是需要有充分大的樣本數據進行訓練,即需要先給機器一些已知「情感」的語言數據,才可以獲取最終的解析引擎。這一點尤為重要,因為這決定了能產生使用價值的領域一定存在著易獲取、易分析的語言數據才行。當然同時又要對顧客/消費者的情感反饋有著積極地需求。
以這兩個為條件,那麼結果顯而易見了:
1、對話機器人。諸如微軟小冰、蘋果siri等。非常容易理解,因為「對話」本身就是語言數據之間的溝通,而情感數據作為從語言數據中提煉出來的附加價值信息,對智能對話機器人的「人性化」來說當然是有百利而無一弊。而且,對於這些大企業來說,巨量的語言數據也相當容易獲取。
3、情緒客服質檢。這是一個很容易被忽略的行業,但是確實人工智慧情感解析最直接最有效的應用之一。試想一下,客服質檢需要做的是什麼工作:判斷客服人員工作是否到位……傳統的客服質檢只能通過堆疊人力的方式,主觀、抽樣判斷。而現有的所謂「客服質檢」系統也只不過是關鍵詞提取、匹配,根本不是質檢。但是情緒解析的出現徹底改變了這一狀況,其實也不難理解,因為判斷客服工作最直接的指標不就是顧客的「滿意程度」嘛,而通過情緒解析獲取的顧客通話或文本輸入中的「情感狀態及變化趨勢」不就滿足了這一條件。唯一的一個問題就是這需要很強的情緒解析實踐能力,對准確率和技術基礎有著很高的要求,故目前為止也只有很少幾家諸如語憶科技等提供商才有這樣的技術。但事實上,客服質檢一定會是最需要情緒解析的細分行業之一。
2、各種評論分析。這點也不難理解,在當今電商消費已經變成主流的網路時代,電商上會產生海量的評論數據。在以前,由於評論量不多,且是非結構化數據,文本處理能力又有限,導致品牌方們很難從中獲取有用的信息,從而有巨量的評論數據被浪費。但是如今已經不一樣了,像以上所提到的一些優秀的引擎提供商,不僅可以從評論中提取關鍵詞、還能通過情緒解析明白用戶的滿意程度。一些上文提到的供應商有的還能做到對特定關鍵詞的觀點提取。這些都能幫助甲方從評論中挖掘非常有價值的消費者洞察。不難想像,一旦技術成熟,像評論一樣的非結構化數據作為用戶想法的直接傳遞,其價值將會遠超那些「瀏覽量」「互動率」等結構化數據……
……
除此之外,還有如書籍分析歸類、教育輔導優化、歌詞台詞總結等等很多應用場景,只不過有些商業價值不明顯的領域仍然需要大膽的創新者去研究和開拓。不過無論如何,在這個人工智慧興起的時代,情緒解析仍處於朝陽時代,還具備著極大的潛力等待被挖掘~
E. AI技術之自然語言處理(NLP)如何應用
按照技術實現難度的不同,這類系統可以分成簡單匹配式、模糊匹配式和段落理解式三種類型。簡單匹配式輔導答疑係統主要通過簡單的關鍵字匹配技術來實現對學生提出問題與答案庫中相關應答條目的匹配,從而做到自動回答問題或進行相關輔導。模糊匹配式輔導答疑係統則在此基礎上増加了同義詞和反義詞的匹配。這樣,即使學生所提問題中按原來的關鍵字在答案庫中找不到直接匹配的答案,但是假若與該關鍵字同義或反義的詞能夠匹配則仍可在答案庫中找到相關的應答條目。段落理解式輔導答疑係統是最理想的、也是真正智能化的輔導答疑係統(簡單匹配式和模糊匹配式,嚴格說只能稱之為「自動輔導答疑係統」而非「智能輔導答疑係統」)。但是由於這種系統涉及自然語言的段落理解,對於漢語來說,這種理解涉及自動分詞、詞性分析、句法分析和語義分析等NLP領域的多種復雜技術,所以實現難度很大。迄今為止,在國內的網路教學中還沒有一個實用化的、能真正實現漢語段落理解的智能輔導答疑係統。但是在我國有些大學的人工智慧實驗室或中文信息處理實驗室中,已有少數研究人員正在研發這類系統的實驗原型。相信在不久的將來,就會有這一類的實用性智能系統問世。這是優質網路課程的重要研究方向之一。
F. 自然語言處理有哪些商用進展
現如今自然語言處理的常用方法是:分詞標注,文本分類,關鍵詞分析,敏感用語識別,詞頻統計,觀點歸納,情緒解析…也許很多號稱自己是人工智慧企業都會和你標榜他們有如上功能,然而其中真正有價值的卻為數不多。舉例來說,「觀點歸納」和「文本分類」很多時候是依附在「關鍵詞分析」之上;「敏感用語識別」更多是和行業相關,技術難度不大;「情緒解析」大多數AI只能做到正負極判斷,無法識別具體情緒…換句話說,自然語言處理的難點或正真拉開差距的是如何做到關鍵詞提取、結構分析、情緒識別等...而題主所問的自然語言處理的商業用途其實更適合落實到具體一個或幾個文本處理功能可以帶來怎麼樣的商業價值更合適。當然具體演算法、怎樣的神經網路、機器學習等這里就不具體展開了。由於筆者是專注於文本分析中的「情緒解析」一塊,且恰所研發的AI可能是全國最好中文文本情緒解析引擎,故這里提一下我的思路。大數據營銷解決方案一提到大數據(人工智慧依賴大數據),有那麼幾個行業是怎麼也避開不掉的:徵信、醫葯、遙感、天文、交通以及營銷等。其中自然語言處理可能會帶來巨大變革的便是營銷。之所以這樣說,首先我們要明白營銷的首要也是最重要的要素就是理解消費者。在如今互聯網時代下,相較於以前傳統的調研方式,營銷人也的確擁有了更多的手段去洞察他們潛在的消費者肖像。然而,這樣的方式始終只是機械化地從消費者行為記錄中去提取,猜測他們的「相貌」,這樣做不僅缺乏准確性,也同樣因為無法直接和他們「交流」知曉他們真正的訴求。文本以及情感分析此時就很有必要了,現在巨量的消費行為都發生在電商上,這種現象帶來的一個好處是品牌方有了一個渠道去整合、收集並分析消費者對產品的評價。基於自然語言處理技術,這些評價很有可能被提煉出非常有價值的商業洞察。而情緒解析,又可以為這些評價提供一個天然的真實的「標簽」,我們可以知道哪些評論是「憤怒」的,哪些是「興奮」的,又有哪些評論是「焦慮」的或「驚喜」的,來對評價進行更准確地分類及加權……除了電商評論,品牌方任何公關及廣告都能幫助獲取有用的文本數據,加上相應自然語言處理系統,這些文本數據能幫助品牌方去更直接更准確地理解消費者訴求。客服質檢變革客服質檢是個相對較小的行業,但是它卻因為自然語言處理的成熟化而產生了質的變革,可以說他是被自然語言處理技術改變最多的行業之一也不為過。其實大家仔細想一想也就不難理解了,往常來說對客服人員的績效考核都是難上加難。即便你有全程錄音,但是由於數量關系更本無法做到去回顧每個客服人員的每一次通話,甚至是抽樣都會消耗巨量的時間和人力。同時,客服質檢擁有著很嚴重的滯後性,當客戶對客服人員產生不滿時,或客服的表現不夠專業時,往往缺少有效的手段及時發現,從而導致事態的嚴重化…… 之前市場上最多的客服質檢手段便是讓用戶在通話完畢後進行打分,然而想想我們自己是如何對待這件事的吧,且不說反饋率極低,這種打分極致嚴重缺少標准化,感性意識極強,對客戶績效考核、質檢影響有限。而自然語言處理加上情緒識別已能很好的解決這個問題,通過關鍵詞提取和敏感詞預警能很好的規范客服人員的專業性,實時的雙向情緒監控則能把控住通話局面,情緒解析系統特有的情緒波動指數能幫助制定規范公平的績效考核制度……
G. python 自然語言分析
你這是要做一個 能預測分類的 模型
分詞只是第一步,為了把文本結構化,也就是轉換成向量。
然後你需要先為每個向量做一個分類標注,這個標注相當於正確答案,用來讓模型學習規律的,也就是一句話對應什麼情感類型
回到正題,使用Python怎麼做?訓練用sklearn包,可以用樸素貝葉斯,或者支持向量機模型做分類。
sklearn裡面都有的,代碼怎麼寫,說不清,你得網路
H. 怎樣用python處理文本情感分析
Python 有良好的程序包可以進行情感分類,那就是Python 自然語言處理包,Natural Language Toolkit ,簡稱NLTK 。NLTK 當然不只是處理情感分析,NLTK 有著整套自然語言處理的工具,從分詞到實體識別,從情感分類到句法分析,完整而豐富,功能強大。
I. NLP(自然語言處理)技術的NLP 相關API調用舉例
調用示例
這里將以一個簡單的情感分析任務為例,調用騰訊文智SDK來處理NLP問題的方法。
首先請在相關雲的官網下的sdk下載中心,下載或更新最新版本的sdk,本次以php-sdk為例,修改demo.php文件,修改點如下:a)SecretId,SecretKey改為自己相應的值,這里查看:b)$package=array('offset'=>0, 'limit'=>3); 改為:$package = array(content=>李亞鵬挺王菲:加油!孩兒他娘。);說明:這是情感分析介面的參數。
c)$a=$cvm->DescribeInstances($package); 改為:$a = $wen->TextSentiment($package);說明:這是模塊的相關介面,具體請查看介面列表:d)其他所有地方的$cvm改為$wen,即替換為文智模塊。
修改後的demo.php如下:
<?php
error_reporting(E_ALL ^ E_NOTICE);
require_once './src/QcloudApi/QcloudApi.php';
$config = array('SecretId' => '在你下載或更新SDK的那個官網上的SecretId',
'SecretKey' => '在你下載或更新SDK的那個官網上的SecretId',
'RequestMethod' => 'POST',
'DefaultRegion' => 'gz');
$wen = QcloudApi::load(QcloudApi::MODULE_WENZHI, $config);
$package = array(content=>李亞鵬挺王菲:加油!孩兒他娘。);
$a = $wen->TextSentiment($package);
if ($a === false) {
$error = $wen->getError();
echo Error code: . $error->getCode() . .
;
echo message: . $error->getMessage() . .
;
echo ext: . var_export($error->getExt(), true) . .
;
} else {
var_mp($a);
}
echo
Request: . $wen->getLastRequest();
echo
Response: . $wen->getLastResponse();
echo
;
J. 情感分析技術有哪些應用
情感分析(又稱為觀點挖掘或感情AI)是指使用自然語言處理、文本分析、計算語言學和生物特徵識別來系統地識別、提取、量化和研究情感狀態和主觀信息。情感分析廣泛應用於分析客戶的心聲,如評論和調查回復,在線和社交媒體,以及從市場營銷到客戶服務再到臨床醫學的保健材料。
情感分析的一個基本任務是在文檔、句子或特徵/方面級別對給定文本的極性進行分類,判斷在文檔、句子或實體特徵/方面中表達的意見是積極的、消極的還是中性的。高級的「超越極性」情感分類著眼於諸如「憤怒」、「悲傷」和「快樂」等情緒狀態。
進行情感分析的先驅包括「一般詢問者」(General Inquirer),它提供了量化文本模式的線索,另外,還提供了基於對人的言語行為進行分析來檢查一個人的心理狀態的心理學研究。