自然語言處理與分析(one)

edagarli發表於2014-03-24

LingPipe是一個自然語言處理的Java開源工具包。LingPipe目前已有很豐富的功能,包括主題分類(Top Classification)、命名實體識別(Named Entity Recognition)、詞性標註(Part-of Speech Tagging)、句題檢測(Sentence Detection)、查詢拼寫檢查(Query Spell Checking)、興趣短語檢測(Interseting Phrase Detection)、聚類(Clustering)、字元語言建模(Character Language Modeling)、醫學文獻下載/解析/索引(MEDLINE Download, Parsing and Indexing)、資料庫文字挖掘(Database Text Mining)、中文分詞(Chinese Word Segmentation)、情感分析(Sentiment Analysis)、語言辨別(Language Identification)等API。


文字傾向性分析
文字傾向性分析(情感分析)是將使用者的觀點分為“正面”和“負面”,有時候會多出一個“中性”。文字傾向性分析一個比較直觀的應用就是追蹤使用者對於一個事物的

觀點和偏好,比如分析豆瓣上一個電影的評論進行分析。正因為如此情感分析又被稱為觀點挖掘。


linkpipe是alias公司開發的一款自然語言處理軟體包。包含主題分類,句題檢測,字元語言建模等十餘個模組。而且文件完整。而且每一個演算法都有論文參考。更難能可貴的

是它支援中文。

官方地址:http://alias-i.com/lingpipe/

下載地址:http://alias-i.com/lingpipe/web/download.html

LinkPipe分為兩個大塊,一塊是LinkPipe核心檔案,另外一塊是LinkPipe的模型類。需要支援中文的話需要下載chinese word segmentation模組。


準備語料庫

語料庫在語言學上意指大量的文字,通過經過整理,具有既定格式與標記。

一般而言做情感分析有個最重要的步驟就是採集觀點並進行整理,但由於應用場景不同,處理方法也不同。為了方便起見,這裡使用已經處理好的語料庫。

movie review data 的polarity dataset v2.0,包含1000個正面的觀點和1000個負面觀點。當然這個是英文的哈。


基本極性分析

基本極性是指事物從樣本來看所處的整體傾向,比如:一本書,使用者對其的情感傾向是正面的,這樣的斷言就是一個基本極性斷言。

基本極性的分析直接使用lingpipe的dynamicLMClassifier即可。


大致上來講分為兩步,第一步訓練,第二步進行分析。

新建一個類名為PolarityBasic

1
2
3
4
5
6
public PolarityBasic(String basePath) {
		pDir = new File(basePath, "txt_sentoken"); //獲取語料集
		categories = pDir.list(); //獲取類別
		int nGram = 4;
		classifer = DynamicLMClassifier.createNGramProcess(categories, nGram); //新建動態分類器
	}



待續。。。。



相關文章