2009-08-12 17 views
6

言語/ライブラリの推奨事項は次のように文を変換する:処理英語文

は、「Xは、順番にZ.を蹴ったYを、ぶつかりました」

    1. にX:
    2. ぶつけY:ぶつかった、Natural Language Toolkitをしようとしない理由を、Z
  • +0

    X:バンプされたX:バンプ – Ricket

    +2

    私はnlpについて考えていませんが、Xはその文にぶつかりませんでしたか?それはYにぶつかった。 –

    答えて

    7

    オープンソースで比較的シンプルなスタンフォードパーサー(http://nlp.stanford.edu/software/lex-parser.shtml)を使用することをお勧めします。それを使って、型付き依存解析を抽出することができます。文の解析依存性は基本的に単語、文法的に単語B.に依存

    は、Xが順番にZ.

    を蹴ったYを、ぶつけあなたの文章

    を取るバイナリ関係r(B, A)のセットの中に文を分解します

    この文では、XとYは、この文で文法上の関係を得るためにバンプに依存しています。スタンフォードパーサは、彼らのために以下の関係を抽出します:bumped(X, Y)

    nsubj(bumped, X) 
    dobj(bumped, Y) 
    

    はこれがあるバンプXの主題とあなたはその後、文法的関係を作るために、この情報を使用することがあるバンプY.の直接のオブジェクトを意味します。同様に、スタンフォードパーサが文の残りの部分については、以下の関係抽出します。この場合

    nsubj(kicked, who) 
    rcmod(Y, kicked) 
    dobj(kicked, Z) 
    

    を、あなたは蹴らrcmodとしてY(関係節修飾子)で、「誰が」という主題を持っています。あなたのシステムの目標は何か分かりませんが、状況をカバーするために手作業でルールを構築する必要があるでしょう。この場合、kicked(Y, Z)を生成するために、あなたのルールはrcmodnsubjを等しくすることができます。

    Stanford Parser型依存関係の使用方法の詳細については、Stanford ParserのWebサイト(http://nlp.stanford.edu/software/dependencies_manual.pdf)のトピックに関する優れたチュートリアルがあります。 ealdentによって示唆されるよう

    1

    スタンフォードパーサが仕事をするだろう、私はそれをエンコードすることを好むだろうとして:

    • バンプ(X、Y、過去)
    • キック(Y、Z、過去)

    POSタグリーダーも動作する可能性がありますが、文章は複雑です( "who in turn")。

    +0

    緊張を反映するための関係に注釈を付けると良いだろう、私は例を挙げていた。他の注釈(文章内の索引、品詞など)を追加することもできます。 POSタグリーダーは、POSタグを順番に提供しますが、何かが直接オブジェクトであるかサブジェクトであるかを判断するルールが必要です。構文ルールジャンキーでなければ、 。 – ealdent

    0

    スタンフォードパーサー以外にも、RASPも可能です。出力の一部として文法的な関係のリストを生成することができます。 this questionを参照してください。

    0

    あなたは文章中のセマンティックな役割を特定することに興味があるように見えます。 SRLツールはエンティティに対応する役割をタグ付けします。いずれかのツールのdemoで遊ぶことができます。

    のバンプにおいて、XはA0(薬剤)としてタグ付けされ、YはA1(患者)としてタグ付けされる。