水に関する事故報告から因果関係を抽出しています。ここではツールとしてNLTKを使用しています。20の因果文構造を使用して正規表現文法を手動で作成しました[以下の例を参照]。構築された文法は次のタイプです
grammar = r'''Cause: {<DT|IN|JJ>?<NN.*|PRP|EX><VBD><NN.*|PRP|VBD>?<.*>+<VBD|VBN>?<.*>+}'''
これで、文法はテストセットで100%リコールされます(私は50の因果的文と50の非因果的文で独自のおもちゃデータセットを作成しました)が、精度は低くなります。質問したいのですが:
- 特定のタイプの文を抽出するために正規表現文法を自動的に構築するようにNLTKをトレーニングする方法。
因果関係のある文章を抽出しようとした人はいますか。因果関係のある文の例は次のとおりです。
村の衛生状態は悪く、その結果、彼女は健康上の問題を抱えていました。
彼女の村の水は不純でした。このため、彼女は寄生虫に苦しんでいました。
彼女は村の衛生状態が悪いために健康上の問題を抱えていました。大きなテキストから上記のタイプの文だけを抽出したいと思います。