Giter VIP home page Giter VIP logo

hanrei-fishbone-rulebase's Introduction

判例フィッシュボーン

裁判例検索で入手した判例のpdfからフィッシュボーン図を作成する研究です。

環境

構成

現在大きく分けて2つのプログラムがあります。

  1. pdfからtextを抽出し、jsonファイルに変換
  2. jsonファイルから時系列情報を抽出

係り受け解析結果からイベントを抽出

CaboChaで係り受け解析を行い、その結果をもとにイベントを抽出する。

process_data.py

係り受け解析結果と、PDFの抽出結果を結合し、プログラムで扱える形に変換します。

mark_data.py

結合したデータにある、文節に属性を付加させます。

付加させる属性

属性名 説明 type
is_rentaishi 連体詞かどうか bool
person 人物 {text:string}
time 時間 長いので別途記述

属性 : 連体詞

その文節が、体言を含む文節に係る文節かどうかをDFSで判定。

時間や人物が連体詞なら無視するようにするために使用。

属性 : 時間

その文節に時間表現が含まれるかどうかを正規表現で判定。正規表現のルールはjsonで記述。

現在単語単位でテキストを判定。

{
    "type": "point"|"begin"|"end"|"other",
    "text": string,
    "value": number?
}

valuetypepoint のときのみ。

point

一点を表す時間表現。

begin

「~から」「~以降」のように、区間の開始を意味する表現。それ単体では時間を表してはいない。

end

「~まで」「~以前」のように、区間の終了を意味する表現。それ単体では時間を表してはいない。

other

「~頃」のように、時間に付加される区間以外の表現。

属性 : 人物

その文節に人物表現が含まれるかどうかを正規表現で判定。正規表現のルールはjsonで記述。

現在単語単位でテキストを判定。 被告原告 が含まれる単語を人物として検出。

{
    "text":string
}

extract_events.py

文節の属性をもとに、イベントを抽出します。

イベントの条件に会う時間、人物、行動をそれぞれ抽出し、一つのイベントとして紐づけます。

抽出 : 時間

連体詞でない時間について抽出。区間について適切に抽出。

抽出 : 人物

連体詞でない人物について抽出。

抽出 : 行動

イベントとして抽出できた人物を基準に、順番に文節を見る。次の時間表現、人物、文末が来るまでの文節を行動として抽出。

hanrei-fishbone-rulebase's People

Contributors

kyoichi001 avatar

Stargazers

 avatar

Watchers

 avatar

hanrei-fishbone-rulebase's Issues

判例の構造化についてかっこの分離をXMLを使って行う

判例の文からかっこを分離するとき、jsonにして挿入位置や文のIDを保存するのではなく、XMLを使い、復元や分離がしやすいようにする。

例:

<text id="0">~~は<serif id="1">「~~」</serif>といった。<kakko id="2">(***)</kakko></text>

XMLにするのは文だけで、ヘッダーなどはそもままJSON

{
  "contents" : [
    {
      "header" : "***",
      "header_type" : "***",
      "texts" : [
        "<text id=\"0\">~~は<serif id=\"1\">「~~」</serif>といった。<kakko id=\"2\">(***)</kakko></text>" ,
        ...
      ]
    },...
  ]
}

判例抽出のための追加学習データ作成

既存のライブラリで固有表現抽出するだけでは、精度に問題がある。
そのため、追加で学習データを作成し、精度を向上させる必要がある。

タグの付与の仕方については問題がある。以下のissue参照

固有表現抽出の際、出来事として適切かの判定まで一緒に行うか否かについて

固有表現抽出のタスクで、単語に対して「人物」か「時間」かの情報を付与することは比較的簡単であることは分かった。
しかし、その「人物」が出来事として適切かどうかについてどちらの手段を取ろうか迷っている。

  • 固有表現抽出のタスク中に行うべきなのか
  • タグが付与された後のデータについてフィルタリングするべきなのか

例えば、

その「人物」の起こした行動について~~~だと感じた

というときの「人物」は出来事の主体としては不適だろう。

このような場合にタグを付与しないことを学習できるのか確証が得られていない。

学習データ作成の際の出来事にそぐわない単語のタグ付与の有無

例えば、

原告の私物

のように、明らかに出来事の主語でない場合にも人物としてのタグを「原告」に付与するべきなのかについて

出来事として抽出するのに適したものだけ学習したいのであれば、付与するべきでない
しかし、既存のモデルを使う場合、モデルは人物に該当する単語をすべて抽出するよう学習されているため、出来事に適しているかの学習は精度に影響する可能性がある

関連issue

先行研究の調査

  • 固有表現抽出のために、どのようなデータを作成するべきなのか
  • 人物のした行動について抽出できるのか
  • どのような学習手法を使うべきなのか

について、先行研究を調査するべき。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.