參考自 這裡
前言 :
stanford parser 是一個可進行短語結構和依存結構分析的parser,網絡上的資料很多,而且在stanford nlp 的網站上也有很多說明,代碼中的 readme 文件數的也很詳細。在這裡簡要記錄一下我學習的一些過程. 這邊紀錄我在使用 "繁體中文" corpus 進行 training 運到的問題與最後使用的參數與測試.
中文語料訓練 :
stanford parser 的源代碼下載後可直接使用,不需要做任何修改。訓練語料默認是英文的wsj語料。在使用中文訓練時需要在參數中指定:
- 訓練 : 使用中文訓練時命令為
其中一定要加 edu.stanford.nlp.parser.lexparser.ChineseTreebankParserParams,否則無法使用中文訓練,我在剛開始使用的時候沒有註意,總是出現 :
在訓練的時候,可以選擇是使用PCFG還是Factored,有很多參數可選擇,具體看readme文件. 使用上面的訓練命令後得到一個.gz文件。接下來可進行測試.
- 測試 :
你可以使用下面的命令列進行測試:
或是自己寫代碼載入 training mode 並進行剖析 :
執行結果 :
前言 :
stanford parser 是一個可進行短語結構和依存結構分析的parser,網絡上的資料很多,而且在stanford nlp 的網站上也有很多說明,代碼中的 readme 文件數的也很詳細。在這裡簡要記錄一下我學習的一些過程. 這邊紀錄我在使用 "繁體中文" corpus 進行 training 運到的問題與最後使用的參數與測試.
中文語料訓練 :
stanford parser 的源代碼下載後可直接使用,不需要做任何修改。訓練語料默認是英文的wsj語料。在使用中文訓練時需要在參數中指定:
- 訓練 : 使用中文訓練時命令為
其中一定要加 edu.stanford.nlp.parser.lexparser.ChineseTreebankParserParams,否則無法使用中文訓練,我在剛開始使用的時候沒有註意,總是出現 :
在訓練的時候,可以選擇是使用PCFG還是Factored,有很多參數可選擇,具體看readme文件. 使用上面的訓練命令後得到一個.gz文件。接下來可進行測試.
- 測試 :
你可以使用下面的命令列進行測試:
或是自己寫代碼載入 training mode 並進行剖析 :
- package stanford.test;
- import java.util.List;
- import edu.stanford.nlp.ling.CoreLabel;
- import edu.stanford.nlp.ling.Sentence;
- import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
- import edu.stanford.nlp.trees.Tree;
- public class Test {
- /**
- * @param args
- */
- public static void main(String[] args) {
- String sentence = "我 到 她 家 等候";
- String sents[] = sentence.split(" ");
- LexicalizedParser lp = LexicalizedParser.loadModel("train3.ser.gz");
- List
rawWords = Sentence.toCoreLabelList(sents); - Tree parse = lp.apply(rawWords);
- System.out.printf("\t[Info] Parsing result:\n%s\n", parse.toString());
- }
- }
This message was edited 16 times. Last update was at 14/08/2012 17:19:20
沒有留言:
張貼留言