12. 対訳コーパスの自動作成
内山将夫@NICT
mutiyama@nict.go.jp

1

対訳コーパスの自動作成
対訳関係にある文章から対訳関係にある文対応を同定することにより対訳コーパスを自動作成する

2

対訳文対応同定の手順
1. 英語文章 E と日本語文章 J を用意する
2. E を辞書引きして，日本語単語に変換する
3. J を単語に分割する
4. 単語同士の対応を利用して，文同士の対応をみつける3日本語テキスト の例
j0 天文学者
j1 ある天文学者は、夜になるとしょっちゅう、星を観測しに郊外へと出かけて行った。
j2 ある晩、彼は、星に気を取られていて、誤って深い井戸に落ちてしまった。
j3 彼は、打ち身や切り傷をつくって、悲鳴を上げた。
j4 その声を聞きつけて、近所の人が井戸へと飛んできた。
j5 そして何が起きたのかを知ると、こんな事を言った。
j6 「天国を覗くことばかりに、うつつを抜かしてないで、少しは足下に注意を払いなさいな」

4英語テキスト の例
e0 The Astronomer
e1 AN ASTRONOMER used to go out at night to observe
the stars.
e2 One evening, as he wandered through the suburbs withhis whole attention fixed on the sky,
e3 he fell accidentally into a deep well.
e4 While he lamented and bewailed his sores and bruises,
e5 and cried loudly for help,
e6 a neighbor ran to the well,e7 and learning what had happened said:
e8 ”Hark ye, old fellow, why, in striving to pry into what
is in heaven,e9 do you not manage to see what is on earth?
e10 ”

5

日本語テキスト を単語に分割し 内容語をとる
j0 天文学 天文学
j0 者 者...
j1 出かけ 出かける
j1 行っ 行くj2 晩 晩j2 彼 彼...
j2 井戸 井戸j2 落ち 落ちる
j3 彼 彼...
j3 上げ 上げる
j4 声 声j4 聞きつけ 聞きつける
j4 近所 近所...
j5 起き 起きる
j5 知る 知る
j5 事 事...
j6 注意 注意
j6 払い 払う6

英語テキスト を辞書引きする
e0 astronomer 者 天文学 astronomer
e1 go_out_at_night 戸出 夜 夜歩き
e1 observe マーク 意見 監視 観ずる 観る ...
e1 stars 星屑 星辰 天涯孤独 到達 不可能 ...
....
e2 fixed あてがう こわばる 一定 確固たる...
e2 sky お天気 たる ひばり スカイ ...
e3 fell すさまじい たくましい ぴりっと ...
...
e4 lamented 哀悼 故人 死者 惜し む ...
e4 bewailed bewail 哀 号 号泣 愁傷 ...
e4 sores sore しゃくにさわる ただれる ...
...
e6 neighbor 近く 近所 近付ける 近傍 ....
e6 ran くつ下 ぶつける バス 引く ...
e6 well い いい す たんまり ...
e7 learning 憶 憶える 科学 会釈 ...
...
e8 striving 合 辛苦 戦 張 張りあい ...
e8 pry こじあける せんさく てこ ...
...
e9 see お目もじ ご覧 しばしば ...
...
7

文同士の対応をみつける
天文学者
The Astronomer
ある天文学者は、夜になるとしょっちゅう、星を観測しに郊外へと出かけて行った。
AN ASTRONOMER used to go out at night to observe thestars.
ある晩、彼は、星に気を取られていて、誤って深い井戸に落ちてしまった。
One evening, as he wandered through the suburbs with hiswhole attention fixed on the sky,
he fell accidentally into a deep well.
彼は、打ち身や切り傷をつくって、悲鳴を上げた。
While he lamented and bewailed his sores and bruises,
その声を聞きつけて、近所の人が井戸へと飛んできた。
and cried loudly for help,a neighbor ran to the well,
そして何が起きたのかを知ると、こんな事を言った。
and learning what had happened said:「天国を覗くことばかりに、うつつを抜かしてないで、少しは足下に注意を払いなさいな」”Hark ye, old fellow, why, in striving to pry into what is inheaven,do you not manage to see what is on earth?
”8どういう文同士の対応をみつけるか可能な対応例はたくさんあるそのうちで最適なものを見つけたい

j0
e0
j1
e1
j2 e2, e3
j3
e4
j4 e5,e6
j5
e7
j6 e8,e9,e10

j0
e0,e1
j1,j2 e2, e3
j3
e4
j4 e5,e6,e7
j5,j6 e8,e9,e10

9最適性の定義
arg

Xmax

文対応例 ∈ 可能な文対応集合 各文対応

SIM(各文対応)• いくつもの文対応例があるが，そのうち，上式を満すものをとる• このとき，SIM は，ある文対応例における，各文対応の類似度である．
• よって，上式における和は，ある文対応例のスコアとして，• 各文対応の類似度の和を採用している．
要するに，類似度最大となるような文対応例を求める

10

数式表現
i-m=4-3=1i=0i=1
i-m+1ii=2

i=3i=4

i=4m=3

まず，複数文を表現するために，i が 日文i と 日文i+1 の間にあるとすると
日 (i − m, i) = 日i−m+1日i−m+2...日i英 (j − n, j) = 英j−n+1英j−n+2...英j
は，日i 以前の m 単語と，英j 以前の n 単語である．そうすると J を日本語文数，E を日本語文数として，

max

JX

EXiXjX

i=0 j=0 m=0 n=0SIM(日 (i − m, i), 英 (j − n, j))となるような類似度の中で，ちゃんと対応の整合性がとれているようなものをとる．

11再帰式による最大スコアの計算
今計算したいものは，S(i, j) である．
S(i, j) とは，日本語文が i 文，英語文が j 文並べられたときの最適スコアである．
i-m=4-3=1

i=0i=1
i-m+1ii=2

i=3i=4

i=4m=3 j-n=1

j=3n=2

このとき，S(i − m, j − n) が既に求まっていると仮定する．つまり，日本語の i − m 文までと，英語の j − n 文までは，対応済みとする．上例だと，「 日1日2日3日4 」と「英1英2英3 」のスコアを求めるとき，m = 3, n = 2 のときには，日1 と 英1 のスコアは計算済とする．すると

S(i, j) = S(i−m, j −n)+SIM(日 (i−m, i)+ 英 (j −n, j))
により S(i, j) が求まる．
12

つまり

S(日1日2日3日4 ，英1英2英3)= S(日1 ，英1) + SIM(日2日3日4, 英2英3)(1)である．これは，m と n が与えられている場合であるが，m と n については，固定されていないので，全ての m と n を考える必要がある．ただし ，あまり多くすると計算量が多くなるので，たとえば，(n, m) ∈ {(1, 0), (1, 1), (1, 2), (1, 3), (0, 1), (2, 1), (3, 1), (2, 2)}とする．そのとき，S(i, j) = max
S(i−m, j−n)+SIM(日 (i−m, i), 英 (j−n, j))m,nである．また，

S(0, 0) = 0
なので，帰納的に最適スコアを定義できる．

13

S(i, j) の計算法
テーブル S を用意して，それを小さい方から埋めていく
日1(a, b), 日2(c), 日3(d)英1(a, b), 英2(c, d)について，1 対 1，1 対 2，2 対 1 の対応を許すときに，どのような文対応があるかをみる．a,b,c,d は単語とする．
類似度は2|J ∩ E|
SIM(J, E) =|J| + |E|により計算する．ただし，J,E は日英における単語集合．

14

テーブル Sj               
2
S(1,2)

1

path1

S(3,2)

path5

path6

path4  c,dS(2,2)         S(1,1)



path2

S(2,1)

a,b
path3
0

S(0,0)=00  

1a,bc

152d3i

テーブル S の埋め方
• まず，S(0, 0) = 0 とする
次に，i, j の小さい方から S(i, j) を埋めていく．このとき，1 対 1，1 対 2，2 対 1 の文対応のみを許すので，図のパスのように，斜め方向に進む対応のみが許される．
したがって，i = 1 のときには，

path1 SIM(日 1, 英 12) = SIM({a, b}, {a, b, c, d}) =2×2
4=2+4
6 = 0.67
path2 SIM(日 1, 英 1) = SIM({a, b}, {a, b}) = 2×2
2+2 = 1
よりS(1, 1) = S(0, 0) + SIM(日 1, 英 1) = 1
S(1, 2) = S(0, 0) + SIM(日 1, 英 12) = 0.67

16i = 2 のときには，path3 SIM(日 12, 英 1) = SIM({a, b, c}, {a, b}) = 2×2
3+2 =4
5 = 0.82
path4 SIM(日 2, 英 2) = SIM({c}, {c, d}) = 2×1=
1+2
3 =0.67

path1 から S(2,2) に移るためには，真横に移動しないといけないが，これは，日本語文は消費されるが，英語文は消費されないので，1 対 0 の対応となる．この対応は許されていない．よって，
S(2, 1) = S(0, 0) + SIM(日 12, 英 1) = 0.8
S(2, 2) = S(1, 1) + SIM(日 2, 英 2) = 1 + 0.67 = 1.67

17

i = 3 のときには，path5 SIM(日 23, 英 2) = SIM({c, d}, {c, d}) = 2×2
2+2 = 12=
path6 SIM(日 3, 英 2) = SIM({d}, {c, d}) = 2×1
1+2
3 =0.67

よって，path5 を通ったときにはS(3, 2) = S(1, 1) + SIM(日 23, 英 2) = 1 + 1 = 2
path6 を通ったときにはS(3, 2) = S(2, 1) + SIM(日 3, 英 2) = 0.8 + 0.67 = 1.47
これらの最大値をとって，S(3, 2) = 2

18

S(0, 0) から path2 と path5 を通って S(3, 2) に至るパスが最適解である．そのときの対応は，
S(3, 2) = S(1, 1) + SIM(日 23, 英 2)
= S(0, 0) + SIM(日 1, 英 1) + SIM(日 23, 英 2)
= 0+1+1=2
より，「 日 1 と英 1 」「日 23 と英 2 」が対応している．
j               

S(2,2)

2
S(1,2)

1
path4
path50.67

  c,d1

path1

S(3,2)

path60.67

         S(1,1)

0.67



path2

S(2,1)

1a,b0

path30.8

S(0,0)=00  1a,bc192

d3i文対応のまとめ日本語文数を J，英語文数を E とするとS(J, E)
は最大スコアによる文対応のスコアとなる
このとき，各文対応を a1, a2, ..., aN とするとS(J, E) =N
Xi=1

SIM(ai)

ただし ，ai は，前述の path にあたると考えてよく，SIM(ai) は，対応 ai を構成する日本語文と英語文の類似度である．
このとき，S(J, E)AVSIM =
N
は，各対応 ai の類似度 SIM の平均値である．

20

対訳コーパスの自動構築
新聞記事のように，必ずしも直訳されていない対訳テ
キスト T1, T2, ... があるとする．
各 Ti に つ い て ，文 対 応 を 求 め る と ，そ れ に よ り
AVSIM(Ti) が求まる．
AVSIM(Ti) が大きい Ti は良く似た文対応からなると考えられる．
したがって，この値の大きいテキストをとることにより，対訳の度合が高いテキストを取ることができる．
また，良い対応のテキストに含まれる文は，良い文対応だと考えられるので，文対応のスコア = SIM × AVSIM
は，テキストの類似度までを考慮した文対応スコアである．
この文対応スコアが大きいものから対訳コーパスに採用する．

21

対訳コーパスについてのまとめ• 現状で利用可能な対訳コーパスとして，NICT で公開しているものを紹介した．
• 対訳コーパスは機械翻訳以外にも使えることを示した．
• 対訳テキストから対訳コーパスを自動作成する方法を示した．

22