Step 1: 請到下列的網址
http://nlp.stanford.edu/software/lex-parser.shtml#Download
之後會來到這個頁面:
選擇最新的版本,我在這邊要試著使用 Chinese 的,所以點擊下載 chinese。
Step 2: 下載並且 import 到自己的 project 中。
Import parser.jar 與 model.jar 即可。
Step 3:
打開 sample code,sample code 在哪裡呢,它其實就在你剛剛抓下來的 Stanford parser 裡面,有兩個檔案:
ParserDemo.java
ParserDemo2.java
懶得開,就看我下方簡易的 sample code,應該就很夠用了,我下方提供的 sample code 是使用 Stanford parser的方法,注意到,這邊是提供完整的斷詞結果。
import java.util.List;
import edu.stanford.nlp.ling.CoreLabel;
import edu.stanford.nlp.ling.Sentence;
import edu.stanford.nlp.trees.*;
import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
public class stanfordParserUtility {
public static void main(String args[]){
//model路徑
String parserModel = "edu/stanford/nlp/models/lexparser/chinesePCFG.ser.gz";
//讀取model
LexicalizedParser lp = LexicalizedParser.loadModel(parserModel);
demoAPI(lp);
}
public static void demoAPI(LexicalizedParser lp) {
String[] sent = { "我", "喜歡", "吃", "蘋果", "。" };
List rawWords = Sentence.toCoreLabelList(sent);
Tree parse = lp.apply(rawWords);
parse.pennPrint();
System.out.println();
}
}
上述程式碼輸出的結果如下:
這是一個樹狀圖,每個節點是具有詞性的,換句話說,如果使用此 parser,那就可以捨去不用 POS parser 了。
大家一定很好奇,我怎麼選擇 model 檔的,model 檔到底有哪些,請把 model.jar 解壓縮就會知道了。
如果想知道每個節點上面的縮寫英文的意思,可以看下列的網址:
https://gist.github.com/nlothian/9240750
全站熱搜
留言列表