機械学習(AI)による単語予測と、法令文を校正するための予測精度の向上についての取組（概要）

##本文書における取組とその新規性
本文書における取組は、データ入力から機械学習による単語予測、結果出力までの全般に渡り、コンピュータプログラムを用いて法令文を校正するための精度を向上させる仕組みを構築し、その成果をオープンソースとして公開する。このような取組は、インターネットで検索する限りではあまりなかったことと考えられる。

##問題
法令文の作成においては変換ミスや単語の誤用といったミスが発生するが、このミスを直す手段は主に人の目によるチェックとなっている現状がある。
しかし、人の目によるチェックは、労力、注意能力や時間といったコストが大きい。
このコストを削減するため、機械が代わりにチェックするか、または、機械が人のチェックをサポートすることが考えられる。[^1]
[^1]: 内閣官房の法案誤り等再発防止プロジェクトチーム:[法案誤り等再発防止プロジェクトチーム取りまとめ](https://www.cas.go.jp/jp/seisaku/houan_ayamaribousi_pt/pdf/torimatome210629.pdf)(2021/6/29)2頁では、「手作業による対応が必要な作業が多く発生するなど、法制執務全般において、デジタル技術や各種システム等の有効な活用ができていなかったこと」を誤り等が生じた主な原因の一つに上げている。

##提案
法令文を校正する際に人が用語の誤りをチェックすることをサポートするため、機械学習を使って予測した単語を原文の単語の置き換え候補として提示するツールを作成する。[^2]
[^2]: 先行研究として、山腰 貴大, 小川 泰弘, 駒水 孝裕, 外山 勝彦:[ランダムフォレストを用いた法令用語の校正](https://doi.org/10.1527/tjsai.H-J53),人工知能学会論文誌35巻1号(2020)、同:[事前学習モデルBERTによる法令用語の校正](https://doi.org/10.11517/pjsai.JSAI2020.0_4P3OS805),人工知能学会第34回全国大会(2020)

##実験
###実験環境
Google Colab Proを利用した。
Google Colab Proの環境は2021/10/13時点でtensorflow 2.6.0、Python3.7.12、RAMは25.46GB、GPUにはTesla P100-PCIEの16,280MiBが割り当てられていた。なお、接続する時々で割当の内容が変わるため、以上は参考値である。


###手法

1. 既存の法令文から、機械学習の学習モデル（以下「モデル」）を作成する。ただし、メモリには限りがあるため、法令の分野ごとに分け、さらに、メモリに合わせて法令文の分量ごとに分けて、分けた数だけのモデルを作成する。
1. 対象となる法令文（以下「原文」）を分かち書きする。
1. 当該法令の分野に属するモデルごとに単語を予測する。
1. 予測された単語のうち、予測確率が高い単語や置き換え候補として適している単語を選び出す。
1. 選び出された単語を、その単語を選びだしたモデルの合計数とともに原文に挿入する。挿入して変更（更新）された法令文をファイルとして保存する。
1. （以下は人間の校正作業）単語を選びだしたモデルの合計数が多いものから優先して、原文の単語が予測された単語に置き換えられないか検討する。

　上記の1のモデル作成の説明については、[機械学習(AI)による単語予測と、法令文を校正するための予測精度の向上についての取組（技術的説明：モデル作成編）](https://qiita.com/chuukai/items/d4a0e4338de1fb4c01f2)を参照されたい。


##試行

###現行法令を使った試行
校正すべき法令文がなかったため、現行の法令を校正の対象として単語の予測等の試行を行った。
置き換え候補として選び出された単語等を挿入し、更新した法令文をファイルとして保存した。ファイルは[githubのディレクトリ](https://github.com/chuukai/proofread-jlaw/tree/master/rxmlall)にまとめて置いている。

###試行の結果
　例として、[関税法施行令](https://elaws.e-gov.go.jp/document?lawid=329CO0000000150)について校正した結果について記述する。
　法令データ上での分類で国税に属する法令文を使用して作成した18個のモデルを使って関税法施行令の文章にある単語を予測させたところ、総候補単語数は5,115となった。
　個々の候補単語は1つもしくは複数のモデルが0.99以上の確率で出現すると予測した単語であり、予測したモデルの数が多ければ多いほど、当該候補単語は原文の単語に置き換えるべき確率が高くなり、校正者にとっては原文の単語が誤用であることを疑うべき優先順位が高くなる。
　以下に、候補単語を予測したモデルの個数と、候補単語の合計数の度数分布表を掲げる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147600/ab92621a-c49b-3530-1e3b-45a2c6836624.png)
　上記の度数分布表のとおり、モデル個数は13が最も多かった。
　このモデル個数13となっている候補単語は2個であり、そのうちの1つは「便益」という原文の単語に対する「規定」という単語であった。該当箇所を下記に示す。

```329CO0000000150_20210101_502CO0000000348.rxml
第六十一条第一項第二号の<span>便益{'規定': 13}</span>の適用を受けようとする場合にあつては、
```
　spanタグで囲んだ部分が置き換え候補の提示部分である。
　提示部分にある記載の中で、「便益」は原文で使用されている単語、「規定」は置き換え候補となる単語、「13」は「規定」を候補単語としたモデルの数である。
　筆者は「便益の適用を受ける」という日本語に強い違和感を覚える。もし筆者が校正者であれば、「適用するのは規定や率などの何かの物差しであって、便益は物差しになりえないため、日本語としておかしいのではないか。他の法令や条約と平仄をあわせた表現かもしれないが、『規定』か『税率』が使えないか。あるいは『便益税率』といった単語を造語してもいいかもしれない」とコメントすることになるだろう。


試行の技術的な説明については、[機械学習(AI)による単語予測と、法令文を校正するための予測精度の向上についての取組（技術的説明：試行編）](https://qiita.com/chuukai/items/787d096c5fcdbe1b37c3)を参照されたい。


##まとめ
　本取組の目標は「原文の単語の置き換え候補として提示することで、人のチェックをサポートすること」であるところ、取り組んだことにより、モデル作成から試行までの手順を公開し、試行結果として機械学習(AI)による単語予測を使って単語の置き換え候補を提示するという成果を得た。
　その一方で、法令文を校正するための機械学習(AI)による単語予測は、法令文の校正という実用に耐えうる程度の精度を持つかどうかという検証が難しく、この取組では検証結果を示すことができなかった。
　しかし、このような取り組み方があり得ることを、示すことができたのではないかと考える。



（筆者注：本文書は作成途中であり、今後において修正を行う可能性がある）