最近關于NLP(Natural Language Processing)中情感分析的問題做了一些調研乱陡,現在記錄一下有關的知識點以便總結和以后復習。
這是什么
情感分析顧名思義是要分析作者對于某件事情或者某個商品的態(tài)度仪壮。隨著各種網絡平臺的搭建憨颠,每個人都可以“自由地”抒發(fā)自己的想法,買件東西可以評論睛驳,讀條新聞可以評論烙心,看個電影照樣可以評論膜廊。網絡上,文字無處不在淫茵,從這些文字中我們可以從一個側面了解到大家對于這件事情或者這個商品的看法爪瓜,以便更好地改進產品。這也就是情感分析的目的匙瘪。
一點歷史
Sentiment Analysis這個詞第一次出現在(Nasukawa and Yi, 2003 ),類似地Opinion Mining第一次出現在(Dave, Lawrence and Pennock, 2003)铆铆。雖然2000年之前也有一些對情感分析的工作,但是由于互聯網沒有廣泛普及丹喻,可以用到的數據并不多薄货,情感分析并沒有得到大家的重視和大規(guī)模研究。在它發(fā)展至今的這十幾年也是大數據發(fā)展最火的十幾年碍论,從開始采用最基本的機器學習算法(例如logistic regression, SVM, Naive Bayes, Maximum Entropy)到現在更多的人采用深度神經網絡谅猾。來自伊利諾伊大學的劉老師提出了LifeLong Learning的概念,更是引起了我極大的興趣鳍悠。若機器可以和人類一樣活到老學到税娜,那么離真正的人工智能可能又進了一大步。
解決方法
解決這類問題的方法可以從多個角度入手藏研,如果有大量標記好的數據敬矩,那么可以從監(jiān)督學習角度入手。但現實情況更多的是我們需要面對很多無標記的數據蠢挡,如果沒有人力進行標注弧岳,那可能就需要從無監(jiān)督學習角度入手。學術界還衍生出半監(jiān)督學習(有部分標簽數據业踏,但會利用很多無標簽數據來提供算法精確度的方法)禽炬,自我學習等算法。在情感識別的問題上堡称,大部分采用了監(jiān)督學習的方法瞎抛,因為大部分利用了IMDB中有標簽的電影評論數據。
Supervised Learning
情感分析可以被看做基本的分類問題却紧,大部分的研究中都會將文本分為postive或者negative桐臊。Pang, Lee and Vaithyanathan (2002)? 第一次采用了經典的Naive Bayes, Maximum Entropy和SVM對電影評論進行了分類,并且比較了幾個分類器的性能晓殊。他們的數據來源是IMDB断凶,并且所有數據都是標注好是positive或者negative,這給監(jiān)督性學習省了很多人力工作巫俺。采用的feature是unigram认烁。從他們的比較結果來看,SVM的表現是最好的。在后幾年的研究中却嗡,逐漸引入了其他有用的feature舶沛,例如TF-IDF, POS, Sentiment Shifter等來提高分類器的精度。
除了使用經典的機器學習算法窗价,Dave, Lawrence and Pennock, 2003 根據正面負面詞匯組織了一個score function對整個文檔進行打分如庭,若高分為正面反之為負面。
Unsupervised Learning
Turney, 2002 介紹了一種基于句法規(guī)則的無監(jiān)督學習方法撼港,具體規(guī)則并沒有仔細研究坪它。另外一種無監(jiān)督學習的角度是基于詞典的,利用一些情感詞的詞性帝牡,語氣強度往毡,和一些否定詞匯計算出整個文檔的情感。
現有工具(專注于情感識別功能)
LingPipe: http://alias-i.com/lingpipe/demos/tutorial/sentiment/read-me.html 基本上實現了上文提到的Pang and Lee論文中提到的算法靶溜,當然是從監(jiān)督學習的角度出發(fā)开瞭。所以在用之前應該有標記好的數據。只適用于英文罩息。
Stanford CoreNLP:http://nlp.stanford.edu/sentiment/code.html Stanford用到了時下最流行的深度學習惩阶,創(chuàng)業(yè)公司metamind? 也是用了相同的模型,因為創(chuàng)始人就是整個coreNLP中sentiment analysis的發(fā)明人扣汪。跑了一下demo,可以很詳細分析出每句話是正面或負面锨匆,效果很好崭别。但貌似只能適用英文,雖然Stanford有強大的中文自然語言處理小組http://nlp.stanford.edu/projects/chinese-nlp.shtml恐锣,也提供了很多有用的工具例如分詞茅主,POS,NER等土榴。但在情感識別上還沒有對中文進行支持诀姚。
現有的一些情感分析工具大部分都基于英文,分析的方法也很類似玷禽。在中文的方面赫段,情感分析工具還是個空缺。
有關中文
面臨的一些主要挑戰(zhàn):1.中文相對英文首先不同的是需要分詞矢赁,分詞的好壞直接決定了后面做分析的精確度糯笙。在分詞方面倒是有些工具可以利用,Stanford Chinese Segmenter撩银, 哈工大的LTP都可以做到给涕。2.若采用經典監(jiān)督學習角度分析,缺失有標記的數據庫,無法完成訓練够庙。3.英文中很多的現成成果無法對中文使用恭应。
有很多學者也專注與這個問題做了很多cross language的研究,就是如何應用英語中很多的成果到其他語種中去耘眨。大都基于機器翻譯做一次中間步驟昼榛,例如將語料庫翻譯成中文作為訓練集或者將無標簽數據翻譯成英文做為待預測數據,但都跟機器翻譯的準確度緊密相連毅桃,所以不是很成熟褒纲。
關于未來
深度學習慢慢在滲透著AI的各個領域,NLP自然也不例外钥飞。深度學習大師Yoshua Bengio 也預測NLP會是深度學習下一個爆發(fā)的點莺掠。不過上文提到的劉老師提出的lifelong learning貌似更高大上。在自然語言處理上读宙,雖然已經有很多研究彻秆,當然有很多不足。尤其是在對英語以外的語種上结闸,可以做的事情還有很多唇兑。
Never Stop Thinking! Peace!
?