言語処理学会 第24回年次大会 発表論文集 (2018年3月)

CBOW 言語モデルを用いた契約用語の校正手法
山腰 貴大 1 小川 泰弘 2,3 中村 誠 4 外山 勝彦 2,31
名古屋大学 大学院情報科学研究科 2 同 情報基盤センター 3 同 大学院情報学研究科
4
同 大学院法学研究科
yamakoshi@kl.i.is.nagoya-u.ac.jp

1

はじめに

契約書は，物やサービスの売買，財産の貸借，従業員の雇用などの契約を締結する際に，その内容を表示する書類である．昨今における経済活動の多様化により，契約書を作成する機会は増加の一途をたどっている．しかし，契約書を書き上げることは法律家であっても容易なことではない．契約書を書いた際，提示すべき事柄を法律に則って過不足なく記載しているかどうかだけでなく，契約書特有の専門用語（契約用語）を適切に使用しているかどうかを精査しなくてはならない．しかし，契約書を精査することは専門知識や労力の必要な作業である．また，紙媒体で契約書を作成・精査することが日常的に行われている．
そこで，AI を利用したデータ駆動型の契約書作成支援システムの開発を目指し，その一歩として，使い分けのある契約用語を校正する手法を提案する．具体的には，出現した契約用語の前後の文脈からその契約用語の使い方が適切かどうかを判定し，より適切な契約用語がある場合はそれを提示する．本手法は，このタスクを選択肢つき穴埋め問題とみなし，ContinuousBag-of-Words(CBOW) [1] を用いて解決する．その際，契約書の特徴を加味し，より多くの文脈を扱うために，オリジナルの CBOW に三つの工夫を加える．
本手法と類似したアプローチとして，Long Shortterm Memory (LSTM) を用いた文書校正サービスがすでに存在する 1 ．しかし，LSTM は入力系列を一つずつ順番に処理するため，長い単語列の処理には多大な時間を要する．一方，CBOW は入力系列をまとめて処理するため，LSTM と比べて高速に動作する．

2

問題の概要と定義

契約用語には互いに似た意味を持つものが数多くあるが，使い分けの基準 [2, 3, 4] が存在するため，文脈に応じて正しく使い分ける必要がある．本稿では，これを契約用語の使い分け問題と呼ぶ．
たとえば，三つの契約用語「者」と「物」と「もの」について考える．契約書においては，言及する事物が人や法人の場合は「者」，その他の有体物の場合は「物」，抽象的な概念の場合は「もの」を用いるという使い分けがある．実際の使用例を以下に示す．
1 https://prtimes.jp/main/html/rd/p/000000005.0000298
28.html

者 …解除された者は、解除により生じる損害について、その相手方に対し一切の請求を行わない。
物 …本件建物上に乙が設置した物を乙の費用で全て収去し、…
もの …理由のいかんを問わず本件契約は解除されたものとみなす。
このとき，「…理由のいかんを問わず本件契約は解除された物とみなす。」のように別の用語を使用することは適切でなく，修正する必要がある．この例以外にも，「清算」と「精算」，「課程」と「過程」，「規準」と「基準」，「金額」と「料金」，「違約金」と「損害金」，「過誤」と「瑕疵」と「欠陥」と「欠格」といった契約用語の使い分けが存在する．
本手法では，上述した契約用語の使い分け問題を以下の問題として定義する．

• 使い分けのある契約用語の集合（以降，契約用語の集合）からなる集合 C が与えられる．すなわ
ち，C = {T | T = 契約用語の集合 } である．
• 文 S = w1 w2 . . . w|S| 中に現れる契約用語 t ∈ T ∈C が適切かどうか判定する．t は複数の単語からなる場合も想定する．
• より適切な契約用語 t′ ∈ T (t′ ̸= t) がある場合，それを提示する．
この枠組みによって，本手法は，契約用語の使い分け問題を選択肢つき穴埋め問題とみなす．この問題に関連した研究として，田上 [5] らは大学入試の穴埋め問題を解答する手法を開発した．この手法では，問題のカテゴリを同定する目的で CBOW を用いており，CBOW から解答を直接予測しない．一方，本手法はCBOW から最適な契約用語を直接予測する．

3

CBOW

本手法は，CBOW[1] によって構築した言語モデルを用いて契約用語の使い分け問題を解決する．
CBOW は，ニューラルネットワークの一種であり，
図 1 に 示 す ネット ワ ー ク 構 造 を 持 つ ．入 力 層 は ，
注 目 語 wi の 前 後 D 単 語 か ら な る 単 語 列 W =wi−D . . . wi−2 wi−1 wi+1 wi+2 . . . wi+D を入力とし，単語の意味を含んだベクトルに変換する．なお，入力単語数（この場合 2D）をウィンドウ幅という．投影層は，全入力単語の単語ベクトルの平均をとる．すなわ
ち，単語 wk に対応する単語ベクトルを v(wk ) とする― 1276 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

である．ここで，関数 replace は以下の式で定義する．

ධຊᒙ༢ㄒї䝧䜽䝖䝹ᢞᙳᒙฟຊᒙ䝧䜽䝖䝹䛾䝧䜽䝖䝹ї㊊䛧ྜ䜟䛫 ༢ㄒ䛾☜⋡ศᕸ௜ି஽䠖௜ିଶ

replace(S, (i, j), t)= w1 w2 . . . wi−1 t wj+1 wj+2 . . . w|S|

(4)0
前述の文 SEの場合，TE の各契約用語のうち t0E 以外のもので t0E を置き換えた次の二つの文を新たに生成する．

௜ିଵ௜ାଵ
௜ାଶ䠖௖௕௢௪ ሺ ௜ ȁ ൌ ௜ି஽ ǥ ௜ିଵ ௜ାଵ ǥ ௜ା஽ ሻ௜ା஽

10SE=replace(SE, (16, 16), 者)=前項 に 定める 登記 手続 に 要する 費用 は
図 1: CBOW

義務 の 履行 を 怠っ た 者 の 負担 と する 。 (5)と，W を入力したときの投影層の値 p は以下のとおりである．
∑v(wk )p(W ) = wk ∈W(1)2D
出力層は，投影層の値から注目語 wi を予測し，wi に対する予測語 ŵi の確率分布 Pcbow (ŵi |W ) を出力する．
本手法において CBOW を採用する理由は，意味を含んだ単語ベクトルによって文脈情報を扱えるためである．また，LSTM などの RNN による言語モデルと比べて高速に動作すると期待できるためである．

4

提案手法

本手法は次の手順により，契約用語の使い分け問題を解決する．

20SE=replace(SE, (16, 16), 物)=前項 に 定める 登記 手続 に 要する 費用 は
義務 の 履行 を 怠っ た 物 の 負担 と する 。 (6)4.3

前節における置換前の文 S 0 と置換後の各文 S k の流暢性 flu を CBOW 言語モデルにより計算する．本
手法では，S 中の位置 i0 にある単語 wi0 ，つまり，置換前や置換後の文に現れる契約用語 t の先頭の語を注目語とし，CBOW 言語モデルが出力した wi0 の確率を流暢性とする．すなわち，flu は以下の式で求める．

flu(S, i0 ) =Pcbow (wi0 |W )1. 入力文からの契約用語の抽出
2. 契約用語を別の候補に置き換えた文の生成
4. より適切な契約用語の提示

入力文からの契約用語の抽出

W = wi0 −D . . . wi0 −2 wi0 −1 wi0 +1 wi0 +2 . . . wi0 +D (8)0
入力文 S 0 = w10 w20 . . . w|S|を走査し，契約用語の集
0合 T ∈ C に属する契約用語 t0 = wi0 wi+1
. . . wj0 ∈ T00と S における t の位置 (i0 , j0 ) をすべて抽出する．
0S 0 の例として，以下の単語列 SEを考える．
12111234141556789

なお，wi0 の前後の単語数が D に満たないときは，空白を表すメタ文字でパディングする．
前述の例においてウィンドウ幅を 4 (D = 2) とした
とき，各文の流暢性は次のとおりである．

100SE= 前項 に 定める 登記 手続 に 要する 費用 は 義務
13161718192021の 履行 を 怠っ た もの の 負担 と する 。

(2)

契約用語の集合を TE = { もの, 者, 物 } とするとき，0SEには契約用語「もの」∈ TE が出現するため，「もの」とその位置 (16, 16) を抽出する．

4.2

契約用語を別の候補に置き換えた文の生成

S 0 中の (i0 , j0 ) に出現する t0 を別の契約用語候補t ∈ T に置き換えた文 S ′ を生成する．すなわち，′S ′ = replace(S 0 , (i0 , j0 ), t′ )(7)

ここで，W は CBOW に入力する単語列である．
CBOW のウィンドウ幅を 2D とするとき，W は以下のとおりである．

3. CBOW 言語モデルによる文の流暢性の計算

4.1

CBOW 言語モデルによる文の流暢性の計算(3)0flu(SE, 16) = Pcbow (もの | 怠っ た の 負担),(9)

1flu(SE, 16) = Pcbow (者 | 怠っ た の 負担),2flu(SE , 16) = Pcbow (物 | 怠っ た の 負担)

(10)
(11)

ここで，契約書の特徴を加味し，より多くの文脈を扱うために，CBOW に対して次の三つの工夫を施す．

(1) 契約書類型の入力への追加
本手法では，個々の契約書は何らかの類型に属し，各類型に属する契約書には共通性が存在すると仮定する．そこで，表 1 に示す 24 個の類型によって契約書を分類し，各契約書が属する類型 c を入力に加える．類型 c と式 (8) の単語列 W をこのモデルに入力したときの投影層の値 p類型 は以下― 1277 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

表 1: 契約書類型
大分類
1物
2 債権
3 知財
4 情報

小分類
A 譲渡型
A 発生型
A 譲渡型
A 秘密型

B 貸借型
B 担保型
B 利用型
B 創出型

C 請負型
C 消滅型
C 請負型
C 利用型

大分類
5 サービス
6 労働
7 組織
8 紛争のとおりである．

p類型 (W, c) =v(c) +∑wk ∈W v(wk )2D + 1(12)(3) LR 行列の導入
オリジナルの CBOW[1] では，1 種類の埋め込み行列をすべての単語に対して適用する．それに対して，注目語の前後で異なる埋め込み行列を用いる LR 行列を提案する．これによって，前述の LRベクトルとは異なるアプローチで語順の情報を使用できる．式 (8) の単語列 W をこのモデルに入力したときの投影層の値 p行列 は以下のとおりである．
∑i0 −1∑i0 +D
k=i0 −D vl (wk ) +k=i0 +1 vr (wk )p行列 (W ) =2D(14)
ここで，vl (wk ) は単語 wk が注目語の前方に現れるときの単語ベクトルであり，vr (wk ) は wk が注目語の後方に現れるときの単語ベクトルである．
オリジナルの CBOW にこれら三つの工夫を施して改良したモデルを図 2 に示す．

より適切な契約用語の提示t を別の契約用語候補 t′ ∈ T に置き換えた単語列の流暢性が最も高い場合，すなわち，以下の式が成り立つ場合，t′ に修正すべきである旨の情報を出力する．
0t ̸= arg max flu(replace(S 0 , (i0 , j0 ), t′ ), i)t′ ∈T

B 業務委託B 就業規則等B 提携型
B 解除ධຊᒙ༢ㄒ䞉㢮ᆺї䝧䜽䝖䝹 ᢞᙳᒙ䝧䜽䝖䝹䛾௜ି஽㊊䛧ྜ䜟䛫䠖௜ିଶ(2) LR ベクトルの導入
オリジナルの CBOW[1] では，単語ベクトルの平均から投影層の値を求めるため，語順を完全に無視している．それに対して，語順の情報を使用するために，有賀ら [6] は，注目語 wi の前後で個別に平均を取り，その二つのベクトルを結合したものを投影層の値とする LR モデルを提案した．さらに，Kiryu ら [7] は，このモデルを固有表現検出タスクに利用し，その性能を実証している．後述する LR 行列と区別するために，本稿ではこの工夫を LR ベクトルと呼ぶ．式 (8) の単語列 W をこのモデルに入力したときの投影層の値 pベクトルは以下のとおりである．
∑i0 −1∑i0 +Dv(wk )v(wk )pベクトル (W ) = k=i0 −D; k=i0 +1
DD(13)
ここで，; はベクトルの結合を表す．

4.4

小分類
A 請負型
A 労働A 出資型
A 変更

௜ିଵ

C 委任型
C 出向・派遣
C 譲渡型
C 解決ฟຊᒙ
䝧䜽䝖䝹ї༢ㄒ䛾☜⋡ศᕸ;ϮͿ
>Z䝧䜽䝖䝹䛾ᑟධ௜ାଵ௜ାଶ

䠖௜ା஽௖௕௢௪ ሺ ௜ ȁ ൌ ௜ି஽ ǥ ௜ିଵ ௜ାଵ ǥ ௜ା஽ ǡ ሻ䠖๓᪉༢ㄒ⏝ᇙ䜑㎸䜏⾜ิ䠖ᚋ᪉༢ㄒ⏝ᇙ䜑㎸䜏⾜ิ;ϭͿ ዎ⣙᭩㢮ᆺ䛾ධຊ䜈䛾㏣ຍ䠖㢮ᆺ⏝ᇙ䜑㎸䜏⾜ิ;ϯͿ
>Z⾜ิ䛾ᑟධ

図 2: 改良した CBOW

実験

5

提案手法の性能を評価するために，契約用語の使い分け問題に関する実験を実施した．

5.1

実験設定

実験では 4.3 節で述べた三つの工夫の有無を組み合わせた 8 種類の CBOW 言語モデルを使用した．いずれのモデルも，Chainer(v1.15.0)2 によって実装し，単語ベクトルの次元数を 200 次元，ウィンドウ幅を 20，エポック数を 10 として学習させた．学習に用いたコーパス
は，Web や書籍から取得した 888 件の契約書（57,061文・1,403,567 単語）から作成した．janome3 によって契約書を形態素解析し，契約書に出現した 8,710 種類の語すべてを有効な語彙とした．使い分けのある契約用語は文献 [2, 3, 4] から取得し，契約用語の集合の数|C| は 76，契約用語の総数は 178 となった．
15 件の契約書でオープンテストを実施し，無作為に抽出した 3 件の契約書でクローズドテストを実施した．各手法を用いて，契約書中に出現したすべての契約用語（オープンテストでは 3,216 語，クローズドテストでは 415 語）に対する使い分け問題を解き，その正解率を測定した．
比較のために，LSTM 言語モデルを同様の条件で学習し，CBOW 言語モデルと同様の方法によって性能を評価した．LSTM の隠れ層は，650 次元のものを 2層設けた．実験における LSTM 言語モデルへの入力方法として，注目語とその前後 10 単語を入力する場
合と，単語列全体を入力する場合の 2 通りを試した．

(15)― 1278 ―2 http://chainer.org/
3 http://mocobeta.github.io/janome/

Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

表 3: 各モデルの処理時間 [msec]

表 2: 各手法の正解率
手法
オリジナル類型
ベクトル
行列
CBOW類型＋ベクトル類型＋行列
行列＋ベクトル類型＋行列＋ベクトル
注目語と前後 10 単語
LSTM
単語列全体5.2Open83.9%
82.9%
84.9%
84.4%
84.8%
85.1%
85.4%
86.5%
73.3%
68.2%

Closed
89.4%
88.4%
90.8%
91.3%
92.5%
91.3%
93.7%
93.3%
76.1%
72.8%

CBOW

LSTM

結果

実験の結果を表 2 に示す．
「類型」，「ベクトル」，「行列」はそれぞれ契約書類型の入力，LR ベクトルの導入，LR 行列の導入を表す．オープンテストではすべての工夫を施したモデルが，また，クローズドテスト
では LR ベクトルと LR 行列を導入したモデルがそれぞれ最も高い正解率を示した．また，LSTM 言語モデルを用いたいずれの手法も CBOW 言語モデルを用いた手法の性能に届かなかった．

5.3

考察

すべての工夫を導入したモデルが契約用語の使い分け問題に正答した例を以下に示す．の とおり 契約 （ 以下 「 本 契約 」 と） を 締結 する 。

。

この例における下線部の候補は「言う」と「いう」であり，CBOW 言語モデルが出力した確率はそれぞれ5.12 × 10−13 , 4.10 × 10−1 であった．この例の “イウ”
は「発言する」という意味を持たないため，「いう」が適切であるが，本手法はこれを正しく判断した．
一方，同じモデルが契約用語の使い分け問題に誤答した例を以下に示す．
契約 が 期間 満了 又は 解除 により 終了 しに 存在 する 個別 契約 について はた， 引き続き 本 契約

手法
オリジナル類型
ベクトル
行列類型＋ベクトル類型＋行列
行列＋ベクトル類型＋行列＋ベクトル
注目語と前後 10 単語
単語列全体

平均
7.20
7.56
7.69
7.35
8.07
7.54
7.62
8.06
101
176

最大
7.27
7.67
7.81
7.46
8.24
7.65
7.79
8.20
101
180

10 倍以上，単語列全体を入力とした場合に 20 倍以上となった．この結果より，CBOW 言語モデルによる手法は，LSTM 言語モデルによる手法と比べて高速に処理できることが明らかとなった．

6

まとめ

本論文では，使い分けのある契約用語を校正する手法について述べた．本手法は，三つの工夫を施した
CBOW 言語モデルを用いて契約用語の使い方を判定し，より適切な用語がある場合それを提示する．実験の結果，LSTM 言語モデルの 10%以下の時間で処理し，コーパス外の契約書で 86.5%，コーパス内の契約書で 93.3%の正解率を達成することが分かった．
今後は，モデルの性能向上を図ると同時に，判定対象の契約用語を自動抽出する仕組みを導入したい．

謝辞
本研究を実施するにあたり，表 1 の契約書類型をはじめ，契約書に関する様々な知識をご提供いただいた
山田尚武代表弁護士ほか弁護士法人しょうぶ法律事務所の皆様に深く感謝する．また，本研究は，名古屋大学博士課程教育リーディングプログラム「実世界データ循環学リーダー人材養成プログラム」の支援を受けて行ったものである．

参考文献

この例における下線部の候補は「とき」と「時」と「場合」であり，確率はそれぞれ 1.00 × 10−3 , 6.33 × 10−5 ,6.71×10−2 であった．正解データに現れる用語は「時」であるが，モデルは「場合」が最も適切だと判断した．
その理由として，コーパスにおいて「場合」が「時」よりも頻出するため（それぞれ 8,102 回と 1,123 回），「場合」がより尤もらしいと判断したことが考えられる．
次に，各モデルにおける処理時間を計測した．1 件の契約書を無作為に抽出し，単語列の流暢性に対する平均計算時間を計測した．処理は GPU (NVIDIA Tesla
K40c) 1 枚を用いて行った．この操作を 10 回行ったときの平均値と最大値を表 3 に示す．CBOW 言語モデルと比較すると，LSTM 言語モデルの処理時間は，入力単語列を注目語とその前後 10 単語にした場合に[1] T. Mikolov, K. Chen, G. Corrado, J. Dean. Eﬃcient
Estimation of Word Representation in Vector Space.
In ICLR, 12 pages, 2013.
[2] 高橋均，稲田博志． 契約用語使い分け辞典． 新日本法規出版，2011.
[3] 川崎政司．注釈公用文用字用語辞典〔第七版〕．新日本法規出版，2015.
[4] 礒崎陽輔． 分かりやすい公用文の書き方 改訂版． ぎょうせい，2010.
[5] 田上諒，木村輔，宮森恒．大学入試の穴埋め型問題に対する語順を考慮した自動解答手法．情報処理学会論文誌
データベース，Vol. 10，No. 3，pp. 45–57，2017．
[6] 有賀竣哉，鶴岡慶雅．単語のベクトル表現による文脈に応じた単語の同義語拡張．言語処理学会第 21 回年次大会発表論文集，pp. 752–755，2015．
[7] Y. Kiryu, A. Ito, K. Yamasawa, T. Kasahara. Eﬀective Neural Network Models for Predicting Unprintable Words in Japanse Judicial Precedents. Proc. of
the 11th JURISIN, pp. 36–47, 2017.

― 1279 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.