2016-06-21 25 views
0

私は、CoreNLPを使用してStanford OpenIEプログラムをテスト/実行しようとしています。ここで不完全なスタンフォードOpenIE出力

http://nlp.stanford.edu/software/openie.html

http://stanfordnlp.github.io/CoreNLP/openie.html

私のコマンドです:

:私は次の出力を取得しています

Born in Honolulu, Hawaii, Obama is a US Citizen. 
Born in a small town, she took the midnight train going anywhere. 

java -mx1g -cp stanford-corenlp-3.6.0.jar;stanford-corenlp-3.6.0-models.jar;CoreNLP-to-HTML.xsl;slf4j-api.jar;slf4j-simple.jar edu.stanford.nlp.naturalli.OpenIE

私の入力ファイルは、以下のテキストが含まれています

1.0 Obama is US Citizen 
1.0 she Born in small town 
1.0 she Born in town 

Angeliらによる「オープンドメイン情報抽出のための言語構造の活用」と題した論文に記載されている例によれば、(Obama; born in; Honolulu, Hawaii)(She; took; midnight train)のようなトリプルがさらに増えてくると予想していました。出力が不完全なのはなぜですか?

また、OpenIE実装ではどのような依存解析が使用されていますか?

ありがとうございます!

答えて

0

これは依存関係解析の間違いです。この論文の発表後、我々はUniversal Dependenciesに移りました。これは基本的なパーサを大幅に変更しました。 OpenIEが文のパーズと並んで表示されますhttp://corenlp.run

最初のケースでは、「市民」から「生まれた」へのdepのアークが間違っています。 2番目のケースでは、 "テイク"から "行く"までのエッジが問題を引き起こしています。これは、古い表記では、「取った」から「訓練する」までのvmodでした。次の代わりにお試しください。

Born in Honolulu, Obama is a US Citizen. 
Born in a small town, she took the midnight train. 
+0

ありがとうございます。 注釈を変更する3.6.0のバージョンで古い依存関係を使用する方法はありますか? ここに私がしようとしているものの例があります: http://corenlp.runで「鉄の質量が55amu」または「鉄が質量55amu」のような意味のあるトリプルを抽出したいと思います。しかし、「鉄の質量は55amu」の出力は無意味である_(Mass; is; 55amu)_を生成する。 _(鉄の同分り; 55amu)_のようなものはうまくいったでしょう。 Stanford OpenIEを使用してそのような抽出を作成する方法についてのあなたの考えは何ですか? ご協力いただきありがとうございます。 –

+0

ああ、それはかわいい例です。 GitHubリポジトリのHEAD(およびcorenlp.runの可視化誤差を法とする)では、「鉄の質量は55amu」と認識されます(鉄の質量は55amuです)。関係が「質量を持っていない」という唯一の理由は、「持っている」ためのダミートークンを作成する必要を避けることです。可能な限り、OpenIEは文中の元のトークンへの参照を維持しようとします。 –

+0

コードを更新していただきありがとうございます。 「どこに行っても生まれた」のために、私は「ccomp」エッジのために抜粋が作られていないことを知っています。しかし、「彼がやったと確信している」には、「ある種の」から「できあがったものまで」のccompもあります。それは '(彼;それ;それ)と'(私は、確かな) 'のような2つの文脈のないトリプルを生成するべきではありません - そうですか? 私の問題は、 '..midnight train ... 'のような複雑な入力を独立して解析するトリプルだけが必要なことです。 'clause splitter 'の作業を編集することで、このようにカスタマイズ/変更しますか? ありがとうございました。 –

関連する問題