ノート/テキストマイニング
訪問者数 3483      最終更新 2009-12-13 (日) 15:08:56

> ノート/テキストマイニング
> ノート/テキストマイニング/Stanfordパーザーを使ってみる1
> ノート/テキストマイニング/Stanfordパーザーを使ってみる2

Penn TreeBank

Stanford Typed Dependencies

論文: Generating Typed Dependency Parses from Phrase Structure Parses

マニュアル: Stanford Typed Dependencies Manual より抜粋

現在の表現は、55の文法的な「関係」を含んでいる。すべての「関係」は2項関係で、ガバナー(governer、支配者)とデペンデント(dependent、依存者)からなる。

下記の定義記述では、Penn Treebank part-of-speech tagとphrasal labelsを使っている。

Definitions

Typed Dependencyの階層について

上にリストした文法的依存関係は、階層的である。もっともジェネリックなdependent(dep)は、階層内のより細かい関係が存在しないか、システムによって 取り出すことができなかったとき、使われる。

dep - dependent
     aux - auxiliary
           auxpass - passive auxiliary
           cop - copula
     arg - argument
           agent - agent
           comp - complement
                acomp - adjectival complement
                attr - attributive
                ccomp - clausal complement with internal subject
                xcomp - clausal complement with external subject
                compl - complementizer
                obj - object
                     dobj - direct object
                     iobj - indirect object
                     pobj - object of preposition
                mark - marker (word introducing an advcl)
                rel - relative (word introducing a rcmod)
           subj - subject
                nsubj - nominal subject
                     nsubjpass - passive nominal subject
                csubj - clausal subject
                     csubjpass - passive clausal subject
     cc - coordination
     conj - conjunct
     expl - expletive (expletive "there")
     mod - modifier
           abbrev - abbreviation modifier
           amod - adjectival modifier
           appos - appositional modifier
           advcl - adverbial clause modifier
           purpcl - purpose clause modifier
           det - determiner
           predet - predeterminer
           preconj - preconjunct
           infmod - innitival modifier
           partmod - participial modifier
           advmod - adverbial modifier
                neg - negation modifier
           rcmod - relative clause modifier
           quantmod - quantier modifier
           tmod - temporal modifier
           measure - measure-phrase modifier
           nn - noun compound modifier
           num - numeric modifier
           number - element of compound number
           prep - prepositional modifier
           poss - possession modifier
           possessive - possessive modifier ('s)
           prt - phrasal verb particle
     parataxis - parataxis
     punct - punctuation
     ref - referent
     sdep - semantic dependent
           xsubj - controlling subject

依存性(dependency)の異なる表記方法

typed dependencyには4つの異なる記法がある。これらは同じ形式、つまり 関係名(ガバナー, デペンデント)、但しガバナーとデペンデントは文中での語の番号を付してあるが、に従っている。表記法の違いは、表層的な表記に近いところ(各トークンがトリー上のデペンデントとして見える)から、より意味的に解釈されたところ(ある種の語の関係(たとえば前置詞のような)が依存性として表現されたり、依存性が循環グラフになり得たりする)まで異なる、といったものである。

1)基本(Basic)表現

基本表現は、上記のリストにある依存関係を用いたもので、木を構成する。文のそれぞれの語は(文のヘッドを除いて)他の1つの語に依存する。たとえば、文
  "Bell, a company which is based in LA, makes and distributes computer products"
に対して、基本表現のdependencyは

nsubj(makes-11, Bell-1)
det(company-4, a-3)
appos(Bell-1, company-4)
rel(based-7, which-5)
auxpass(based-7, is-6)
rcmod(company-4, based-7)
prep(based-7, in-8)
pobj(in-8, LA-9)
cc(makes-11, and-12)
conj(makes-11, distributes-13)
nn(products-15, computer-14)
dobj(makes-11, products-15)

である。

2)Collapsed Dependency 折りたたんだ表現

折りたたんだ表現では、依存性が追加される。それらは、木の構造を壊し、単なる有向グラフになってしまうかもしれない(がそれは構わないとする)。上記の例では、次の依存関係が追加される。

ref(company-4, which-5)
nsubjpass(based-7, which-5)

これらは、元の基本Basic関係には存在しなかったものである。なぜなら、rcmodとrel関係がサイクルを生じるからである。木の構造を壊す(無視する)依存関係は、この例に見られるような関係節とその先行詞の関係を取り込んだ場合や、コントロール関係(xsubj)を取り込んだ場合である。

更に、前置詞を含む依存関係では、接続詞や、関係節の参照対象の情報は、語の間の直接の依存関係を記述するために、折りたたまれる。この折りたたみは、関係を抽出する利用法に対しては便利なことがある。たとえば、上記の例で前置詞"in"を含む依存性は、以下のような1つの関係に折りたたまれる:

prep(based-7, in-8)
pobj(in-8, LA-9)

prep in(based-7, LA-9)

となる。

同じことが、接続詞を含む依存関係についても起こる。

cc(makes-11, and-12)
conj(makes-11, distributes-13)

conj and(makes-11, distributes-13)

になる。

関係節の先行詞に関する情報(ref(company-4, which-5))は、以下の依存性を展開するのに役立つ:

nsubjpass(based-7, which-5)

nsubjpass(based-7, company-4)

となる。

最終的には、この文に対するシステムが導出する折りたたまれた依存性は、次のような形になる:

nsubj(makes-11, Bell-1)
det(company-4, a-3)
appos(Bell-1, company-4)
nsubjpass(based-7, company-4)
rel(based-7, which-5)
auxpass(based-7, is-6)
rcmod(company-4, based-7)
prep_in(based-7, LA-9)
conj_and(makes-11, distributes-13)
nn(products-15, computer-14)
dobj(makes-11, products-15)

なお、ある場合には、依存関係の折りたたみ操作によって文の意味が多少異なってくることがある。これはたとえば、"Bill went over the river and through the woods"のようなPP接続の場合で、2つの前置詞"over"と"through"が接続され、動詞"went"によってガバーンされている。関係(前置詞と接続詞)を折りたたむときに2つの別々の部分グラフを作るのを避けるために、このような例では単語"went"のコピーを追加して、同等なVPの形に変形される(システムの出力ではアポストロフィによってマークされる)。これによって次のような表現が得られる

prep over(went-2, river-5)
prep through(went-2', woods-10)
conj and(went-2, went-2')

が、これは"Bill went over the river and went through the woods"という("went"をコピーした)文に対応している。

3)Collapsed dependencies with propagation of conjunct dependencies (折りたたんだ表現で接続依存性を伝播させたもの)

接続詞があると、その接続詞を含む依存性を伝播させることができる。ここの文の例では、この伝播は元の折りたたんだ依存性に2つの依存関係を追加する。それは、動詞"makes"と"distributes"の間の接続関係により、最初の語"makes"にある主語・目的語関係が、2番目の語"distributes"に伝播するからである。

nsubj(distributes-13, Bell-1)
dobj(distributes-13, products-15)

これは、元の折りたたまれた依存関係からの拡張に当たり、トリー構造に納まる保証はない。

4)Collapsed dependencies preserving a tree structure (トリー構造を守った、折りたたんだ依存関係)

この表現法では、トリー構造を守らない依存関係は、捨てられる。今まで説明したとおり、これは関係節とその先行詞の間の関係、またはcontrolling subject relation (xsubj)の間の関係にかかわっている場合である。また、これは接続詞関係の伝播は許さない。上記の例で、この表現法を使うと、

nsubj(makes-11, Bell-1)
det(company-4, a-3)
appos(Bell-1, company-4)
rel(based-7, which-5)
auxpass(based-7, is-6)
rcmod(company-4, based-7)
prep_in(based-7, LA-9)
conj_and(makes-11, distributes-13)
nn(products-15, computer-14)
dobj(makes-11, products-15)

となる。

この4種の表現法の比較を表にすると下記のようになる。

basic                    collapsed                    propagation                 collapsed tree
nsubj(makes, Bell)       nsubj(makes, Bell)           nsubj(makes, Bell)          nsubj(makes, Bell)
                                                      nsubj(distributes, Bell)
det(company, a)          det(company, a)              det(company, a)             det(company, a)
appos(Bell, company)     appos(Bell, company)         appos(Bell, company)        appos(Bell, company)
rel(based, which)        rel(based, which)            rel(based, which)           rel(based, which)
auxpass(based, is)       auxpass(based-7, is)         auxpass(based, is)          auxpass(based, is-)
rcmod(company, based)    rcmod(company, based)        rcmod(company, based)       rcmod(company, based)
                         nsubjpass(based, company)    nsubjpass(based, company)   
prep(based, in)
                         prep_in(based, LA)           prep_in(based, LA)          prep_in(based, LA)
pobj(in, LA)
cc(makes, and)
                         conj_and(makes, distributes) conj_and(makes, distributes) conj_and(makes, distributes)
conj(makes, distributes)
nn(products, computer)    nn(products, computer)      nn(products, computer)      nn(products, computer)
dobj(makes, products)     dobj(makes, products)       dobj(makes, products)       dobj(makes, products)
                                                      dobj(distributes, products)

実際に使う上では

実際に使う上では、2つのクラスを使うことができる。

edu.stanford.nlp.parser.lexparser.LexicalizedParser

テキストを構文解析し、構文木の異なるフォーマットオプションを得たいときは、このクラスを使う。依存関係を得たいときには、-outputFormatオプションにtypedDependenciesを加えればよい。デフォルトでは、これは接続依存の伝播を伴う折りたたまれた依存関係を出力する。もし他の表現が欲しければ、-outputFormatOptionに、次のコマンドを使って指定すればよい。

basicDependencies        basic dependencies
collapsedDependencies    collapsed dependencies (not necessarily a tree structure)
CCPropagatedDependencies collapsed dependencies with propagation of conjunct

dependencies (not necessarily a tree structure)

                         [他のオプションが指定されてないとき、これがデフォルトとなる]
treeDependencies         collapsed dependencies that preserve a tree structure

また、時間的依存性を識別したいとき、-retainTmpSubcategories オプションを指定すると最大の性能が得られる。以下のコマンド例では、file.txtには1行ごとに1つの文が入っているとする。また、pennオプションは、文の文脈自由文法による表現を出力する。

java -mx100m edu.stanford.nlp.parser.lexparser.LexicalizedParser
-retainTmpSubcategories -outputFormat "penn,typedDependencies"
-outputFormatOptions "collapsedDependencies" englishPCFG.ser.gz file.txt

edu.stanford.nlp.trees.EnglishGrammaticalStructure

もし既にPenn TreeBankスタイルのトリーができている場合(手でアノテーションを作った場合か、他の構文解析プログラムの出力である場合)、このクラスを使ってStanford dependencyを生成することができる。下記の例のように、-treeFileオプションを使えばよい。

java -mx100m edu.stanford.nlp.trees.EnglishGrammaticalStructure
-treeFile file.tree -collapsedTree -CCprocessed

他のdependency typeの出力表現を得たい場合には、次のように指定する。

-basic         basic dependencies
-collapsed     collapsed dependencies (not necessarily a tree structure)
-CCprocessed   collapsed dependencies with propagation of conjunct
               dependencies (not necessarily a tree structure)
-collapsedTree collapsed dependencies that preserve a tree structure

このクラスを使って、テキストを構文解析することができるが、構文木出力選択のオプションを指定することができない。dependency typeの表現の変更しかできない。
ファイルが1行に1文を書いたものの場合、オプション-treeFileの代わりに-sentFileを使う。オプション-parserFileを使ってパーザーファイルを指定する必要がある。構文木は-parseTreeオプションによって出力することができる。たとえば

java -mx100m edu.stanford.nlp.trees.EnglishGrammaticalStructure
-sentFile file.txt -collapsedTree -CCprocessed -parseTree -parserFile
englishPCFG.ser.gz

grammerbrowser

Bernard Bouは、Stanford Dependencies representationに対するGUIインターフェースを書いた。これは、依存関係を表示するだけでなく、その定義を書き換えることができる。これは、別にダウンロードする。ダウンロード先は、http://grammarbrowser.sourceforge.net/

Stanford Dependenciesに関する他の参考文献 (略)


添付ファイル: filearpa94.pdf 405件 [詳細] filePRSGUID1.PDF 1197件 [詳細] filetagguide.pdf 519件 [詳細] fileroot.pdf 678件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-12-13 (日) 15:08:56 (2777d)