9

水に関する事故報告から因果関係を抽出しています。ここではツールとしてNLTKを使用しています。20の因果文構造を使用して正規表現文法を手動で作成しました[以下の例を参照]。構築された文法は次のタイプです

grammar = r'''Cause: {<DT|IN|JJ>?<NN.*|PRP|EX><VBD><NN.*|PRP|VBD>?<.*>+<VBD|VBN>?<.*>+}'''

これで、文法はテストセットで100%リコールされます(私は50の因果的文と50の非因果的文で独自のおもちゃデータセットを作成しました)が、精度は低くなります。質問したいのですが:

  1. 特定のタイプの文を抽出するために正規表現文法を自動的に構築するようにNLTKをトレーニングする方法。
  2. 因果関係のある文章を抽出しようとした人はいますか。因果関係のある文の例は次のとおりです。

    • 村の衛生状態は悪く、その結果、彼女は健康上の問題を抱えていました。

    • 彼女の村の水は不純でした。このため、彼女は寄生虫に苦しんでいました。

    • 彼女は村の衛生状態が悪いために健康上の問題を抱えていました。大きなテキストから上記のタイプの文だけを抽出したいと思います。

4

1 に答える 1

7

「Python Text Processing with NLTK 2.0 Cookbook」という本の著者である Jacob Perkins 氏と簡単なディスカッションを行いました。彼は次のように述べています。文の深い解析ツリーを作成するか、文を識別/抽出しようとしているだけなので、分類の方がはるかに優れたアプローチだと思います.これを試すときは、タグ付きの単語を機能として含めることを検討してください.重要になる可能性があります。」彼の提案を受けて、私が持っていた因果関係の文を調べたところ、これらの文には次のような単語が含まれていることがわかりました

consequently
as a result
Therefore
as a consequence
For this reason
For all these reasons
Thus
because
since
because of
on account of
due to
for the reason
so, that

これらの言葉は確かに文の中で原因と結果を結びつけています。これらのコネクタを使用すると、因果文を簡単に抽出できるようになりました。詳細なレポートは arxiv にあります: https://arxiv.org/pdf/1507.02447.pdf

于 2012-10-25T23:49:39.593 に答える