主意:本說明文檔針對stanford-parser-full-2014-06-16。不同版本的parser,其功能和表示形式可能會略有不同。但總體不會有太大差異
Stanford parser是一款較為強大的句法解析工具,他的最初版本是java編寫的,所以JDK是必須的,這玩意怎么弄就不用我說了吧。Stanford parser支持多國語言,並且還在不斷擴張中。幸運的是,由於天朝的強大,中文也早早地加入其中,下面是樹狀圖效果展示:
數據圖是較為直觀的效果展示,當然,他還有其他展示方式:
Oneline:成分句法分析輸出文件的格式為每行一句的廣義表形式的樹結構。上面那句話的結果:(ROOT (CP (IP (NP (DNP (NP (NP (NR 成都)) (NP (NN 小吃街))) (DEG 的)) (NP (NN 美食))) (VP (ADVP (AD 真的)) (ADVP (AD 太)) (VP (VA 好吃)))) (SP 了) (PU !)))
Penn:成分句法分析輸出文件的格式為層次化樹的形式。默認選項為penn。上面那句結果:
(ROOT
(CP
(IP
(NP
(DNP
(NP
(NP (NR 成都))
(NP (NN 小吃街)))
(DEG 的))
(NP (NN 美食)))
(VP
(ADVP (AD 真的))
(ADVP (AD 太))
(VP (VA 好吃))))
(SP 了) (PU !)))
latexTree:格式類似於penn Words:只給出分詞格式。
wordsAndTags:給出分詞文本和詞性標注。
rootSymbolOnly:只給出ROOT結點。
typedDependencies:給出依存句法分析結果。如:
nn(小吃街-2, 成都-1)
assmod(美食-4, 小吃街-2)
assm(小吃街-2, 的-3)
nsubj(好吃-7, 美食-4)
advmod(好吃-7, 真的-5)
advmod(好吃-7, 太-6)
root(ROOT-0, 好吃-7)
dep(好吃-7, 了-8)
conllStyleDependencies、conll2007:conll格式(每行一詞,每詞4項)如下:
1 成都 NR 2
2 小吃街 NN 3
3 的 DEG 4
4 美食 NN 7
5 真的 AD 7
6 太 AD 7
7 好吃 VA 8
8 了 SP 0
9 ! PU 8
還有其他幾種表示方式words,wordsAndTags, dependencies,typedDependenciesCollapsed,latex,Tree, xmlTree, collocations, semanticGraph, conllStyleDependencies。讀者可自行嘗試。
因為我們想要的是詞與詞之間的修飾關系,我們一般用到的就是typedDependencies,這是句法依存最直觀的一種輸出方式。下面給出命令行下的運行方式,因為文件夾下有個lexparser.bat文件,內容如下:
@echo off
:: Runs the English PCFG parser on one or more files, printing trees only
:: usage: lexparser fileToparse
java -mx1024m -cp "*;" edu.stanford.nlp.parser.lexparser.LexicalizedParser -outputFormat typedDependencies du/stanford/nlp/models/lexparser/chineseFactored.ser.gz %1
我們就看最后一行,-mx也是一個參數后面直接跟分配的虛擬內存(不用空格),因為parser要求的內存比較大,小了可能運行不了。-cp是為了加載后面的類,再后面就是我們的輸出方式,最后一個比較重要,是我們要加載的parser模型。當然絕不僅僅這幾個參數,還有其他參數可自行調節。包括:
-maxLength:指定句子單詞長度最大;
-escaper:字符的標准化;
-sentences:指定句子之間的邊界,一般為newline,即一行為一個句子,換行重新開始。
-encoding:指定輸入輸出文件的字符集。
-outputFormatOptions:進一步控制各種–outputFormat選項的輸出行為(可以說是–outputFormat的附加選項)。 當–outputFormat 為typedDependencies時,-outputFormatOptions可有如下選項(默認選項為collapsed dependencyies): basicDependencies:基本格式 treeDependencies:以樹結構保存的壓縮依存關系(去除依存圖中一些邊構成樹)。 collapsedDependencies:壓縮依存(不一定為樹結構) cc(makes-11, and-12) conj(makes-11, distributes-13) 轉化為: Conj_and(makes-11, distributes-13) CCPropagatedDependencies:帶有連詞依存傳播的壓縮依存。
-writeOutputFiles:產生對應於輸入文件的輸出文件,輸出文件名同輸入文件,只是增加了”.stp”的后綴。-outputFilesExtension:指定輸出文件擴展名,默認為”.stp”。
-outputFilesDirectory :指定輸出文件目錄,默認為當前目錄。
parser里面有很多模型:
我們一般用通用的chineseFactored,這個模型比較大,如果准確性要求不是很高,卻對速度要求比較高的話,可以用chinsesPCFG。運行方式:我們cd切換到parser根目錄,輸入:lexparser.bat input.txt>output.txt doc界面下可能輸出的是亂碼,可以無視,我們直接看output.txt就可以了,就是最后的結果。如果要得到語法樹或者依存關系的話,需要強調一下的是,input文件中必須是已經分好詞的語句,用空格分隔。
此外,還有個圖形界面可以給我們嘗試,但是因為有些模型太大,會導致虛擬內存不足,所以提供了一個批處理文件lexparser-gui.bat。內容跟命令行差不多,主要是方便設置虛擬內存大小,直接雙擊該文件,就會出現命令行,選擇“Load parser”,然后打開XX-models.jar,選擇要導入的包即可。同樣,這里輸入的句子,也是要分好詞的。
最后,我們就得到了依存關系的結果,結果中有許多縮寫,這里參考(http://www.hankcs.com/nlp/chinese-sentences-svo-java-extraction.html)解釋一下,可能不同版本會有更改,請自行查閱補充。
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決定詞,如冠詞等
Discourse:discourse element
dobj : direct object直接賓語
expl: expletive,主要是抓取there
Goeswith:go with 主要是用來把本該連起來的詞分開的情況,如‘with out’:gowith(with,out)
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 掌控者
中心語為謂詞
subj — 主語
nsubj — 名詞性主語(nominal subject) (同步,建設)
top — 主題(topic) (是,建築)
npsubj — 被動型主語(nominal passive subject),專指由“被”引導的被動句中的主語,一般是謂詞語義上的受事 (稱作,鎳)
csubj — 從句主語(clausal subject),中文不存在
xsubj — x主語,一般是一個主語下面含多個從句 (完善,有些)
中心語為謂詞或介詞
obj — 賓語
dobj — 直接賓語 (頒布,文件)
iobj — 間接賓語(indirect object),基本不存在
range — 間接賓語為數量詞,又稱為與格 (成交,元)
pobj — 介詞賓語 (根據,要求)
lobj — 時間介詞 (來,近年)
中心語為謂詞
comp — 補語
ccomp — 從句補語,一般由兩個動詞構成,中心語引導后一個動詞所在的從句(IP) (出現,納入)
xcomp — x從句補語(xclausal complement),不存在
acomp — 形容詞補語(adjectival complement)
tcomp — 時間補語(temporal complement) (遇到,以前)
lccomp — 位置補語(localizer complement) (占,以上)
— 結果補語(resultative complement)
中心語為名詞
mod — 修飾語(modifier)
pass — 被動修飾(passive)
tmod — 時間修飾(temporal modifier)
rcmod — 關系從句修飾(relative clause modifier) (問題,遇到)
numod — 數量修飾(numeric modifier) (規定,若干)
ornmod — 序數修飾(numeric modifier)
clf — 類別修飾(classifier modifier) (文件,件)
nmod — 復合名詞修飾(noun compound modifier) (浦東,上海)
amod — 形容詞修飾(adjetive modifier) (情況,新)
advmod — 副詞修飾(adverbial modifier) (做到,基本)
vmod — 動詞修飾(verb modifier,participle modifier)
prnmod — 插入詞修飾(parenthetical modifier)
neg — 不定修飾(negative modifier) (遇到,不)
det — 限定詞修飾(determiner modifier) (活動,這些)
possm — 所屬標記(possessive marker),NP
poss — 所屬修飾(possessive modifier),NP
dvpm — DVP標記(dvp marker),DVP (簡單,的)
dvpmod — DVP修飾(dvp modifier),DVP (采取,簡單)
assm — 關聯標記(associative marker),DNP (開發,的)
assmod — 關聯修飾(associative modifier),NP|QP (教訓,特區)
prep — 介詞修飾(prepositional modifier) NP|VP|IP(采取,對)
clmod — 從句修飾(clause modifier) (因為,開始)
plmod — 介詞性地點修飾(prepositional localizer modifier) (在,上)
asp — 時態標詞(aspect marker) (做到,了)
partmod– 分詞修飾(participial modifier) 不存在
etc — 等關系(etc) (辦法,等)
中心語為實詞
conj — 聯合(conjunct)
cop — 系動(copula) 雙指助動詞????
cc — 連接(coordination),指中心詞與連詞 (開發,與)
其它
attr — 屬性關系 (是,工程)
cordmod– 並列聯合動詞(coordinated verb compound) (頒布,實行)
mmod — 情態動詞(modal verb) (得到,能)
ba — 把字關系
tclaus — 時間從句 (以后,積累)
— semantic dependent
cpm — 補語化成分(complementizer),一般指“的”引導的CP (振興,的)
這里面其實很多中文是用不上的,一些關系多跑一些語料自己也能歸納總結到,這里列舉出來供大家查詢用。