0

事前にトークン化された文のファイルがあり、そのうちのいくつかは命令文です (暗黙の主語、動詞が最初など)。部分的なタグ付けがない場合、スタンフォード パーサーは、これらの命令文のほとんど (すべてではない) の主語の最初の単語 (動詞) を名詞として誤ってタグ付けします。これらの文の最初の単語に、部分的なタグ付け (これは正しく行っていると確信しています。LexicalizedParser を編集および再コンパイルして、関連するコマンド ライン オプションが認識され、最終的に lexicalizedParser.java 内の適切な場所に配置されるようにしました) を使用します。 (_VB を使用)、タグ付けが存在しない場合と同じように動作ます。

lexparser パッケージの概要(「解釈にはいくつかの制限があります...」のページの約 60% を見てください) によると、これは、これらの単語のいくつかに POS タグ VB を配置するのが奇妙すぎるためです。信じるパーサー。

パーサーがすべてのタグを読み取って追跡するようにするにはどうすればよいですか (できればコマンドラインから)。レキシコンを更新しますか?

EnglishPCFG.ser.gz ではなく EnglishFactored.ser.gz を使用すると、この問題は軽減されますが、なくなるわけではありません。

数年前に誰かがスタンフォード [parser-user] メーリング リストに同様の質問を投稿しましたが、この投稿に対する回答が見つからないようです。

編集: パーサーの別のバージョン (2010 年 8 月 20 日以降) を使用すると、この問題は発生しないようです //まったく//。

4

1 に答える 1

1

現時点では、「奇妙すぎる」と見なされる方法でパース タグを作成する方法はありません。単語のタグが不可能と判断された場合、それを可能にすることはできませんが、可能と見なされる範囲内で何を使用するかを指定できます。通常はこれで十分です。ここで十分なはずです。これが例です。お気づきのように、多くの場合、支援なしで命令が間違っています(トレーニングデータで十分に証明されていないためです。常に間違っているとは限りませんが、一般的に間違っているため、間違っている3つを選択しました:

$ cat imper.txt
Use care when opening.
Brush your hair!
Shut the door.
$ java -cp stanford-parser.jar edu.stanford.nlp.parser.lexparser.LexicalizedParser englishPCFG.ser.gz imper.txt 2> /dev/null
(ROOT
  (S
    (NP (NNP Use))
    (VP (VBP care)
      (SBAR
        (WHADVP (WRB when))
        (S
          (VP (VBG opening)))))
    (. .)))

(ROOT
  (NP
    (NP (NNP Brush))
    (NP (PRP$ your) (NN hair))
    (. !)))

(ROOT
  (NP
    (NP (NNP Shut))
    (NP (DT the) (NN door))
    (. .)))

ただし、トークン化され、部分的にタグ付けされたテキストは次のようになります。

$ cat imper.tok
Use_VB care when opening .
Brush_VB your hair !
Shut_VB the door .

すべてが修正されました:

$ java -cp stanford-parser.jar edu.stanford.nlp.parser.lexparser.LexicalizedParser -tokenized -tagSeparator _ englishPCFG.ser.gz imper.tok 2> /dev/null
(ROOT
  (S
    (VP (VB Use)
      (NP (NN care))
      (SBAR
        (WHADVP (WRB when))
        (S
          (VP (VBG opening)))))
    (. .)))

(ROOT
  (S
    (VP (VB Brush)
      (NP (PRP$ your) (NN hair)))
    (. !)))

(ROOT
  (S
    (VP (VB Shut)
      (NP (DT the) (NN door)))
    (. .)))

ただし、適切なタグを使用する必要があります。VBとして「使用中」にタグ付けしません。それはあまりにも奇妙に数えられます。動詞としての「使用」は VBG である必要があります。これは現在分詞形であり、命令形で使用されるそのままの動詞ではありません。

于 2011-06-10T05:56:39.833 に答える