裁判例検索で入手した判例のpdfからフィッシュボーン図を作成する研究です。
- python 3.10.5 (32bit)
- MeCab 0.996
- CaboCha 0.69
- Text Mining Studio
現在大きく分けて2つのプログラムがあります。
- pdfからtextを抽出し、jsonファイルに変換
- jsonファイルから時系列情報を抽出
CaboChaで係り受け解析を行い、その結果をもとにイベントを抽出する。
係り受け解析結果と、PDFの抽出結果を結合し、プログラムで扱える形に変換します。
結合したデータにある、文節に属性を付加させます。
属性名 | 説明 | type |
---|---|---|
is_rentaishi |
連体詞かどうか | bool |
person |
人物 | {text:string} |
time |
時間 | 長いので別途記述 |
その文節が、体言を含む文節に係る文節かどうかをDFSで判定。
時間や人物が連体詞なら無視するようにするために使用。
その文節に時間表現が含まれるかどうかを正規表現で判定。正規表現のルールはjsonで記述。
現在単語単位でテキストを判定。
{
"type": "point"|"begin"|"end"|"other",
"text": string,
"value": number?
}
value
は type
が point
のときのみ。
一点を表す時間表現。
「~から」「~以降」のように、区間の開始を意味する表現。それ単体では時間を表してはいない。
「~まで」「~以前」のように、区間の終了を意味する表現。それ単体では時間を表してはいない。
「~頃」のように、時間に付加される区間以外の表現。
その文節に人物表現が含まれるかどうかを正規表現で判定。正規表現のルールはjsonで記述。
現在単語単位でテキストを判定。 被告
か 原告
が含まれる単語を人物として検出。
{
"text":string
}
文節の属性をもとに、イベントを抽出します。
イベントの条件に会う時間、人物、行動をそれぞれ抽出し、一つのイベントとして紐づけます。
連体詞でない時間について抽出。区間について適切に抽出。
連体詞でない人物について抽出。
イベントとして抽出できた人物を基準に、順番に文節を見る。次の時間表現、人物、文末が来るまでの文節を行動として抽出。