PCFG模型訓練
Java -Xmx7g edu.stanford.nlp.parser.lexparser.LexicalizedParser -tLPP edu.stanford.nlp.parser.lexparser.ChineseTreebankParserParams -train data/source/dataCTBZh//bracketed -saveToSerializedFile data/models/pcfgZH.ser.gz
其中:
-tLPP,用來選定訓練樹庫的語言,中文選擇edu.stanford.nlp.parser.lexparser.ChineseTreebankParserParams
說明:
輸入的語料共1677971個句子,去重後詞爲67811
輸入的文件格式爲:
<DOC>
<DOCID>XIN.19960210.0178</DOCID>
<HEADER>
<DATE>1996-02-10</DATE>
</HEADER>
<BODY>
<HEADLINE>
<S ID=1>
( (IP-HLN (NP-SBJ (NP-PN (NR 上海)
(NR 浦東))
(NP (NN 開發)
(CC 與)
(NN 法制)
(NN 建設)))
(VP (VV 同步))) )
</S>
</HEADLINE>
<TEXT>
<P>
<S ID=2>
( (FRAG (NN 新華社)
(NR 上海)
(NT 二月)
(NT 十日)
(NN 電)
(PU ()
(NN 記者)
(NR 謝金虎)
(PU 、)
(NR 張持堅)
(PU )) ))
</S>
CoreNLP FPEG模型測試和效果
public static void main(String[] args) {
LexicalizedParser lp;
boolean newFlag= true;
if (newFlag){
String parserModel = "data/models/pcfgZH.ser.gz";
lp = LexicalizedParser.loadModel(parserModel);
}
else {
String basedir = "D:/WorkSpaceIntelliJ/coreNLP/stanford-chinese-corenlp-2016-10-31-models/";
String parserModel = "edu/stanford/nlp/models/lexparser/chinesePCFG.ser.gz";
lp = LexicalizedParser.loadModel(basedir+parserModel);
}
String line = "統計還 顯示 , 臺商 投資 祖國 大陸 正 趨向 大型化 。";
String line2="俄國希望 伊朗 沒有 製造 核武器 計劃 。";
Tree parser = lp.parse(line);
parser.pennPrint();
//dependency
ChineseGrammaticalStructure gs = new ChineseGrammaticalStructure(parser);
Collection<TypedDependency> tdl =gs.typedDependenciesCCprocessed();
System.out.println(tdl.toString());
}
輸出結果爲:
(ROOT
(IP
(NP (NN 統計))
(VP
(ADVP (AD 還))
(VP (VV 顯示) (PU ,)
(IP
(IP
(NP (NN 臺商))
(VP (VV 投資)
(NP (NN 祖國) (NN 大陸))))
(VP
(ADVP (AD 正))
(VP (VV 趨向)
(NP (NN 大型化)))))))
(PU 。)))
[nsubj(顯示-3, 統計-1), xsubj(趨向-10, 統計-1),advmod(顯示-3, 還-2), root(ROOT-0, 顯示-3), nsubj(投資-6, 臺商-5), dep(趨向-10, 投資-6), nn(大陸-8, 祖國-7), dobj(投資-6, 大陸-8), advmod(趨向-10, 正-9), ccomp(顯示-3, 趨向-10), dobj(趨向-10, 大型化-11)]