proofread-jlawは、日本の法令のテキストについて、機械学習を行った結果、作成されたモデルです。 このモデルを作成した目的は、法令文その他の文章にある単語について、別の単語を候補としてあげて、かつ、その蓋然性を確率として提示することにあります。 ユースケースとしては、法制執務において、法案をモデルに読み込ませて候補となる単語を含むテキストを作り、校正者に単語を入れ替えるべき単語の選択肢を提示することで、校正者の負担を軽減することが考えられます。 現在のモデルは、2021年5月10日現在の法令データを使用して、2021年7月23日にリリースしました。
Google Colab Pro(有料)
XML一括ダウンロードのページで左側のメニューから「法令分類データ」を選び、50種のデータをそれぞれダウンロードし、伸張します。
XMLファイル(ファイル名の先頭が322から364,401から431,501から503)からSentenceタグの中身を抜き取ります。私の場合はnkfと、xml-twig-toolsパッケージの中にあるxml_grepを使いました。
コマンドを例示すると
nkf -w ./37/332AC0000000035_20200401_429AC0000000045/332AC0000000035_20200401_429AC0000000045.xml | xml_grep 'Sentence' --text_only /dev/stdin > ./37/332AC0000000035_20200401_429AC0000000045.sentence
となります。
文語文になっているため、機械学習の対象としませんでした。
小書きの「っ」は昭和まで使われておらず、このままでは分かち書きに支障が生じるため、「つ」を小書きの「っ」に変換します。
コマンドを例示すると
cat ./37/332AC0000000035_20200401_429AC0000000045.sentence | sh normalize2.sh > ./37/332AC0000000035_20200401_429AC0000000045.sentence.nml
cat - | perl -p -Mutf8 -CSD -e 's/ヽ//g;' -e 's/であつて/であって/g;' -e 's/であつた/であった/g;' -e 's/のあつた/のあった/g;' -e 's/にあつた/にあった/g;' -e 's/あつては/あっては/g;' -e 's/をもつて/をもって/g;' -e 's/によつて/によって/g;' -e 's/しなかつた/しなかった/g;' -e 's/ねじつた/ねじった/g;' -e 's/をはつた/をはった/g;' -e 's/にそつて/にそって/g;' -e 's/にはつて/にはって/g;' -e 's/つづつた/つづった/g;' -e 's/とつた/とった/g;' -e 's/なつた/なった/g;' -e 's/かかつた/かかった/g;' -e 's/いつて/いって/g;' -e 's/(\p{Han})つ([たて])/$1っ$2/g;'
となります。
ここで「既定文章量」とは、モデル作成にあたってメモリ不足にならないことを目的として、分かち書きされた文字列を結合するときの最大値(単位はbyte)をいいます。Google Colab Proの場合は2,160,000bytesにすると最も学習効率が良いのですが、どうしてもメモリ不足になる場合には1,690,000bytesとして作成しています。
ここで「規定文章量ごとのファイル」とは、上記の規定文章量に基づいて作成されたファイルをいいます。このレポジトリでは01-50wakatiallディレクトリに、私が作成したファイルを置いています。
- Mecabとmecab-ipadic-NEologdで個々のファイルを分かち書きしつつ、品詞単位でStopwordを削る。
- 機械学習モデルを規定文章量ごとに作成するため、未施行などにより重複した法令から古いもの1つにし、ファイルサイズを調べてbunruiwall-sort-uniq2.csvを作成する。
- 個々のファイルを結合して規定文章量ごとのファイルを作成する。
- 規定文章量ごとのファイルを対象として、単語をfasttextでベクトル化する。
- 規定文章量ごとのファイルにある単語ごとに前5単語後ろ5単語をくっつけてデータセットを作る。
- 規定文章量ごとに30回のmodel.fit後に機械学習モデルを保存する。
モデルはreleaseファイルとして置いていますので、適宜ダウロードしてください。
モデルは01から50までの法令の分類ごとに作成されており、さらに規定文章量に応じて枝番で分けられています。
分類名称 | 分類番号 | 枝番(「::」で間を省略) |
---|---|---|
憲法 | 01 | 00w |
刑事 | 02 | 00w::03w |
財務通則 | 03 | 00w::02w |
水産業 | 04 | 00w::02w |
観光 | 05 | 00w |
国会 | 06 | 00w::15w |
警察 | 07 | 00w::02w |
国有財産 | 08 | 00w |
鉱業 | 09 | 00w |
郵務 | 10 | 00w |
行政組織 | 11 | 00w::06w |
消防 | 12 | 00w::02w |
国税 | 13 | 00w::17w |
工業 | 14 | 00w::07w |
電気通信 | 15 | 00w::03w |
国家公務員 | 16 | 00w::04w |
国土開発 | 17 | 00w::03w |
事業 | 18 | 00w |
商業 | 19 | 00w::02w |
労働 | 20 | 00w::06w |
行政手続 | 21 | 00w::02w |
土地 | 22 | 00w |
国債 | 23 | 00w |
金融・保険 | 24 | 00w::13w |
環境保全 | 25 | 00w::04w |
統計 | 26 | 00w |
都市計画 | 27 | 00w::02w |
教育 | 28 | 00w::02w |
外国為替・貿易 | 29 | 00w |
厚生 | 30 | 00w::08w |
地方自治 | 31 | 00w::04w |
道路 | 32 | 00w |
文化 | 33 | 00w |
陸運 | 34 | 00w::02w |
社会福祉 | 35 | 00w::06w |
地方財政 | 36 | 00w::07w |
河川 | 37 | 00w |
産業通則 | 38 | 00w::05w |
海運 | 39 | 00w::03w |
社会保険 | 40 | 00w::05w |
司法 | 41 | 00w |
災害対策 | 42 | 00w::02w |
農業 | 43 | 00w::04w |
航空 | 44 | 00w |
防衛 | 45 | 00w::07w |
民事 | 46 | 00w::05w |
建築・住宅 | 47 | 00w::02w |
林業 | 48 | 00w |
貨物運送 | 49 | 00w |
外事 | 50 | 00w::02w |