採用Stanford Parser進行中文語法解析

      Stanford Parser是由StanforsNLP Group開發的基於Java的開源NLP工具,支持中文的語法分析,當前最新的版本爲3.3.0,下載地址爲:http://nlp.stanford.edu/software/lex-parser.shtml。下載後解壓。解壓文件中lexparser-gui.bat進行可視化頁面運行,解析需要的模型文件存放在stanford-parser-3.3.0-models.jar,可以對其解壓,方面以後使用。在中文處理方面,提供的模型文件有chineseFactored.ser.gz、chinesePCFG.ser.gz、xinhuaFactored.ser.gz、xinhuaFactoredSegmenting.ser.gz、xinhuaPCFG.ser.gz。factored包含詞彙化信息,PCFG是更快更小的模板,xinhua據說是根據大陸的《新華日報》訓練的語料,而chinese同時包含香港和臺灣的語料,xinhuaFactoredSegmenting.ser.gz可以對未分詞的句子進行句法解析。

運行方式:

1.      命令行

     沒有實際操作過,不是很熟悉。

2.      圖形界面

     直接運行lexparser-gui.bat文件,選擇Load Parser 選擇上文中的模型文件,如果語句未分詞應該選擇具有分詞功能的模型文件,然後Load File或者直接在空白區域內輸入語句。

     其中分詞後的語句進行句法分析示例如下圖所示:


     未分詞的句子解析後如下圖所示:


3.      API調用

      工具同時提供了API的調用方式,在文件夾中也提供了幫助文檔。具體的思路大致是:

1.      指定模型文件,指定一些參數信息。

String grammars = "edu/stanford/nlp/models/lexparser/chinesePCFG.ser.gz";

2.      加載模型文件,初始化用於句法分析的類LexicalizedParser。

LexicalizedParser lp = LexicalizedParser.loadModel(grammars);

3.      調用parse()方法進行解析。

Tree t = lp.parse(s);

4.      後續處理,根據自己的需要生成不同的處理格式。

    ChineseTreebankLanguagePack tlp = new ChineseTreebankLanguagePack();
    GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
    ChineseGrammaticalStructure gs = new ChineseGrammaticalStructure(t);
    Collection<TypedDependency> tdl = gs.typedDependenciesCollapsed();

       我做的東西需要獲取句子的主謂賓結構,但是Stanford Parser的輸出結果中沒發現有直接的標註主謂賓的結果,於是需要自己對於輸出的語法依賴樹結果處理一下。對句子詞語之間的依賴關係如:[nsubj(發出-3, 國務院-1), tmod(發出-3, 日前-2), root(ROOT-0, 發出-3), amod(通知-5, 緊急-4), dobj(發出-3, 通知-5), conj(發出-3, 要求-7), det(地-9, 各-8), dobj(要球-7, 地-9), advmod(落實-11, 切實-10), dep(要求-7, 落實-11), rcmod(政策-18, 保證-12), nn(供應-14, 市場-13), dobj(保證-12, 供應-14), cpm(保證-12, 的-15), det(政策-18, 各-16), clf(各-16, 項-17), dobj(落實-11, 政策-18), dep(落實-11, 維護-20), nn(穩定-23, 副食品-21), nn(穩定-23, 價格-22), dobj(維護-20, 穩定-23)]

       對於標註爲dobj這樣的每一個TypedDependency實體關係爲直接賓語關係,然後獲取實體的支配者和被支配者,遍歷所有依賴關係查看支配者是否存在主語,如存在則構成一個完整的主謂賓結構,否則是一個謂語賓語結構,這種方法不是特別合理,但是暫時還沒想到更好的方法。

      最後附上我整理彙總的一些常用的標註指代。

ROOT:要處理文本的語句
IP:簡單從句
NP:名詞短語
VP:動詞短語
PU:斷句符,通常是句號、問號、感嘆號等標點符號
LCP:方位詞短語
PP:介詞短語
CP:由‘的’構成的表示修飾性關係的短語
DNP:由‘的’構成的表示所屬關係的短語
ADVP:副詞短語
ADJP:形容詞短語
DP:限定詞短語
QP:量詞短語
NN:常用名詞
NR:固有名詞
NT:時間名詞
PN:代詞
VV:動詞
VC:是
CC:表示連詞
VE:有
VA:表語形容詞
AS:內容標記(如:了)
VRD:動補複合詞
CD: 表示基數詞
DT: determiner 表示限定詞
EX: existential there 存在句
FW: foreign word 外來詞
IN: preposition or conjunction, subordinating 介詞或從屬連詞
JJ: adjective or numeral, ordinal 形容詞或序數詞
JJR: adjective, comparative 形容詞比較級
JJS: adjective, superlative 形容詞最高級
LS: list item marker 列表標識
MD: modal auxiliary 情態助動詞
PDT: pre-determiner 前位限定詞
POS: genitive marker 所有格標記
PRP: pronoun, personal 人稱代詞
RB: adverb 副詞
RBR: adverb, comparative 副詞比較級
RBS: adverb, superlative 副詞最高級
RP: particle 小品詞 
SYM: symbol 符號
TO:”to” as preposition or infinitive marker 作爲介詞或不定式標記 
WDT: WH-determiner WH限定詞
WP: WH-pronoun WH代詞
WP$: WH-pronoun, possessive WH所有格代詞
WRB:Wh-adverb WH副詞
 
關係表示
abbrev: abbreviation modifier,縮寫
acomp: adjectival complement,形容詞的補充;
advcl : adverbial clause modifier,狀語從句修飾詞
advmod: adverbial modifier狀語
agent: agent,代理,一般有by的時候會出現這個
amod: adjectival modifier形容詞
appos: appositional modifier,同位詞
attr: attributive,屬性
aux: auxiliary,非主要動詞和助詞,如BE,HAVE SHOULD/COULD等到
auxpass: passive auxiliary 被動詞
cc: coordination,並列關係,一般取第一個詞
ccomp: clausal complement從句補充
complm: complementizer,引導從句的詞好重聚中的主要動詞
conj : conjunct,連接兩個並列的詞。
cop: copula。系動詞(如be,seem,appear等),(命題主詞與謂詞間的)連繫
csubj : clausal subject,從主關係
csubjpass: clausal passive subject 主從被動關係
dep: dependent依賴關係
det: determiner決定詞,如冠詞等
dobj : direct object直接賓語
expl: expletive,主要是抓取there
infmod: infinitival modifier,動詞不定式
iobj : indirect object,非直接賓語,也就是所以的間接賓語;
mark: marker,主要出現在有“that” or “whether”“because”, “when”,
mwe: multi-word expression,多個詞的表示
neg: negation modifier否定詞
nn: noun compound modifier名詞組合形式
npadvmod: noun phrase as adverbial modifier名詞作狀語
nsubj : nominal subject,名詞主語
nsubjpass: passive nominal subject,被動的名詞主語
num: numeric modifier,數值修飾
number: element of compound number,組合數字
parataxis: parataxis: parataxis,並列關係
partmod: participial modifier動詞形式的修飾
pcomp: prepositional complement,介詞補充
pobj : object of a preposition,介詞的賓語
poss: possession modifier,所有形式,所有格,所屬
possessive: possessive modifier,這個表示所有者和那個’S的關係
preconj : preconjunct,常常是出現在 “either”, “both”, “neither”的情況下
predet: predeterminer,前綴決定,常常是表示所有
prep: prepositional modifier
prepc: prepositional clausal modifier
prt: phrasal verb particle,動詞短語
punct: punctuation,這個很少見,但是保留下來了,結果當中不會出現這個
purpcl : purpose clause modifier,目的從句
quantmod: quantifier phrase modifier,數量短語
rcmod: relative clause modifier相關關係
ref : referent,指示物,指代
rel : relative
root: root,最重要的詞,從它開始,根節點
tmod: temporal modifier
xcomp: open clausal complement
xsubj : controlling subject 掌控者

發佈了46 篇原創文章 · 獲贊 14 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章