「ニューラルネットを用いた多方言の翻訳と類型分析」を読んだ
/icons/hr.icon
1. はじめに
日本語方言を共通語へ翻訳するための試みは,言語処理分野の中で度々行われているが,その多くは方言に関する言語資源が少ないという問題に直面する.
そこで
方言文と共通語文の大規模な疑似対訳コーパスを獲得する研究
小規模な「方言<->共通語」の対訳コーパスから、事前に変換ルールを抽出しておく
この変換ルールを用いて擬似的にコーパスを獲得する
方言コーパスの収集手法
各方言の特徴語を検索クエリとして使って、その方言を含んだ文書をWeb から検索・抽出する
一般的な文字レベルのニューラル機械翻訳(NMT)システムに対して2つの工夫を加える
2つの工夫?
第1に,我々は複数方言の対訳コーパスを同時に学習に利用し,多方言を翻訳する単一の NMT モデルを構築する.一般に,方言間には語彙や音韻変化の特徴が共通するものがあることが知られている.
翻訳がわかんなくなったら他の方言っぽく訳しとけ!ということか
単に他の方言を無規則に真似ろ、ということではなく
方言間の共通性
方言話者の地域ラベル
を使って、近しい方言と似たような言語変化をすると仮定して翻訳するっぽい
鹿児島弁を翻訳しようとしたら、地域ラベル的には宮崎弁や熊本弁が効いてくる感じかな
第2に,文単位の翻訳の代わりに文節単位での逐語翻訳を行うことで,言語モデルの学習におけるデータ疎問題を軽減し,翻訳精度を向上させる.本研究では,日本語の方言翻訳では方言文と共通語文の間で語順変化は起こらないと仮定し,1文節ごとに翻訳する.
文 と 文節 の大小関係は?
語 < 句 ≒ 文節 < 文 かな。
日本語の方言翻訳では方言文と共通語文の間で語順変化は起こらないと仮定 するということは
例えば和->英の翻訳(=語順が変わる翻訳)の場合は「文単位」で翻訳するよ
でも日本語の方言->共通語の翻訳(=語順が変わらない翻訳)の場合は「文節単位」で翻訳するよ
ということ。つまり、
翻訳前後で語順の変化が起こる場合は、文全体で翻訳しないとうまく訳せない
翻訳前後で語順の変化が無い場合は、もっと小さい単位で翻訳しても大丈夫
ということ
/icons/hr.icon
2. 全国方言談話データベース
このデータには,48地域(47都道府県,沖縄県のみ本土と離島の2地域)の方言による対話とその共通語訳が収録されている.
なるほど便利そうだが?
方言話者の発話を表音的カタカナ表記*1で文字に書き起こした文(便宜上,方言文と呼ぶ)と,その共通語訳文(漢字かな混じり文)が追加されている
注意すべきことがいつくかあるっぽい
1. 分かち書きされているけど、厳密な形態素区切りでは無い
3. 様々な注釈が括弧書きで書き加えられている(もともと方言学研究のために作成されたため)
これをいい感じに処理してあげる必要がある
/icons/hr.icon
3. ニューラル多方言翻訳器
3.1. ひらがな文からひらがな文への方言翻訳
本研究では方言から共通語への翻訳のタスクを,ひらがな表記の方言文からひらがな表記の共通語文への翻訳タスクとして定義する
なぜだろう?
一般的な機械翻訳は、漢字表記への翻訳までを実施する
漢字表記の方言 -> ひらがな表記の方言 -> ひらがな表記の共通語 -> 漢字表記の共通語 という感じか
この辺あんまり考えてなかったなぁ。鹿児島弁翻訳gemを作る!をやるにあたって、もう少し対象(=鹿児島弁)に向き合わないとなぁ。from 漢字 to 漢字 だと、キツそうかも。 でもgemとして有用なものを目指すなら "from 漢字 to 漢字" を実現しないとダメなのでは...!?!?
せめて "from 漢字 to ひらがな" を実現しないと!
今回は 漢字表記の共通語 --(1)--> ひらがな表記の共通語 --(2)--> ひらがな表記の方言 かな
(1)はどうだ?割と簡単にできるのかな?それこそMeCabを使って辞書にある単語が使われる分には大丈夫そう
(2)はこの研究みたいなアプローチで解いていく感じかな
漢字から漢字までやると...?
かな表記から漢字表記への変換
かな表記による語義曖昧性の解消
など、方言翻訳以外の問題を持ち込んでしまう ...‼︎‼︎
なるほど確かに。「今回の土俵はここじゃ」というのを明確にしている。
データの問題もある
方言研究では発話音声に忠実な表記が重要視されるため,発話の記録にカナ表記を利用することが多い.
from 漢字 to 漢字 の学習データがあんまりない
し、あったとしても発話の忠実性が表現できないので、漢字表記上は同じ、みたいなことにもなりかねないよね。
本研究で利用するコーパスは,方言文がカタカナ,共通語訳文が漢字かな混じり文で記述されているため,これらをひらがな表記へと変換する(図 1).方言文をひらがなに変換する際は日本語のかな文字変換モジュールcnvk*3を用い, 共通語訳文をひらがなに変換する際は形態素解析器 MeCab を用いた.
やってること
方言文: from カタカナ to ひらがな by cnvk 共通語: from 漢字かな混じり文 to ひらがな by MeCab 結局色々変換してるんか〜い、という感じだ。まあデータの前処理は仕方ないよなぁ。
カタカナからひらがなへの変換、必要なのかな。
rubygemsだと
code:rb
text = 'アイガトサゲモシタ' # 鹿児島弁の"ありがとうございました"
text.tr('ァ-ン','ぁ-ん') #=> 'あいがどさげもした' cnvk とやらのコードを読んだけど、これとやってることは大差なさそう 和製英語(?)のカタカナ表記と、発話のカタカナ表記とを区別できないとまずいのでは?
例えば、カップ、ミラー、スマホ、テーブル、バッグとか?(目についたものをカタカナ語にしてみた)
どうなんだろ。感じも全部ひらがなに変換してるんだから、全部ひらがなでいいのかな?
ひらがなにしちゃうと形態素解析するとき辛そうだけど良いのかなぁ
3.2. 文節単位の文字レベル方言翻訳
本研究では,方言・共通語間の音韻的な変化をとらえることを念頭に,一般的な NMT システムに対して,1文字を系列の1要素とし,1文字ずつ単語を翻訳する文字レベル翻訳を採用する.
1文字ずつ単語を翻訳する文字レベル翻訳 なるほどまじか。
あれれー、文節単位での逐語翻訳を行う って言ってなかったっけ
1文字ずつの翻訳を文節単位で繰り返すっていうことかな?
このアプローチは,Twitter上の崩れた日本語表記を正規化する研究など,音韻の変化を捉えるモデルとして成功が報告されている
ヘェ〜
通常,NMT では 1 文を入力系列とする(図 2(a)).しかし,英日翻訳など語順や文化圏が異なる言語間の翻訳に比べ,方言翻訳は入出力系列の間で大きな語順変化が生じることは少なく,訳し分けの問題が発生する事例も少ないと推測される.
そうだね、そんな気がする。
そこで,本研究では翻訳時に入力文全体の文脈を考慮する必要がないと考え,文全体を入力系列とするかわりに,文を文節ごとに区切り,1 文節を 1 入力系列として文節単位での翻訳を繰り返すことで文全体の翻訳を行う(図 2(b)).
あ、ちょっとわかったかも。
入力系 と 入力系の要素 という概念があるのか
通常のNMTでは 入力系 = 文 , 入力系の要素 = 文節(? or 単語?) とするのが一般的 この研究では 入力系 = 文節 , 入力系の要素 = 文字 とする
各地域ごとに翻訳モデルを構築するのではなく,全地域の翻訳を一つのモデルで同時に学習し,日本語としての共通の特徴を捉えることを試みる.
方言間には語彙や音韻変化の特徴が共通しているものがある ため
翻訳している方言の地域を区別するためのラベルを入力系列と出力系列の先頭に追加することで,地域ごとの方言の特徴をモデルに学習させる
/icons/hr.icon
4. 実験
実験では,文節単位で翻訳することの効果と地域ラベルの効果を定量的,定性的に検証する.また一般的な統計的機械翻訳(SMT)システムとの性能の比較を行う.
比較表を作るんだろうなぁと予想してみる
table:比較表(予想)
手法 入力系 地域ラベル
一般的なSMT 文節 ?
NMT(1) 文 なし
NMT(2) 文節 なし
NMT(3) 文 あり
MNT(提案) 文節 あり
4.1. 実験設定
「全国方言談話データベース ふるさとことば集成」の全地域の書き起こし文に対して前処理を行い,得られた計34, 117 文(116, 928 文節)を実験に使用した.ここで,文節の単位にはコーパスであらかじめ与えられる分かち書きの区切りを利用した*5.このコーパスを 8 : 1 : 1 の割合で分割し,訓練・開発・評価セットを作成した.
こういう文章な、大事な。懐かしい。
NMTシステムには OpenNMT-py*6をデフォルト設定で使用し,SMT システムには Moses*7を使用した.Moses における共通語訳言語モデルは KenLM で学習したものを用い,distortion limit は 0 に設定した.
4.2. 定量評価
お、比較表あった。
table:比較表(本文のものを改変)
手法 入力系 地域ラベル BLUEスコア
NMT(A) 文節 なし 72.66
NMT(B) 文 あり 67.77
NMT(提案) 文節 あり 77.10
SMT 文節 なし 74.74
SMT強くない?SMTに地域ラベル入れたら提案手法に勝てるんちゃう?
一般に,学習コーパスが小規模の場合には NMT よりSMT の方が優れた性能になると報告されている 4.そこで,提案手法と SMT の比較も行った. SMT は地域ラベルに相当する情報を導入する手段が自明ではなく,結果として地域の情報を利用できる文節単位の NMT が最高性能を示す結果となった.
なるほど?
4.3. 定性評価
table:実際の翻訳例(例1,例3)
例 1 兵庫県(相生)方言 例 3 岩手県(遠野)方言
方言文 むかしの/ひとは/えーんやけんど/いまわ/もー がが/とった/どきぁ/えま/えってる
参照文 むかしの/ひとは/いいのだけど/いまは/もう つま/もらった/ときは/いま/はなしている
地域 + 文節 (N) むかしの/ひとは/いいんだけれど/いまは/もう かか/とった/ときは/いま/いっている
table:実際の翻訳例(例2,例4)
例 2 青森県(津軽)方言 例 4 沖縄本土(今帰仁)方言
方言文 あげぁ/いろこ/つだり/すて/それか゜/ほら わったー/いー
参照文 あかい/いろ/ついたり/して/それが/ほら わたしたち/おまえたち
地域 + 文節(N) あかい/いろ/ついたり/して/それが/ほら わたしたち/おまえたち
文節(N) あかい/いろ/つだり/して/それが/ほら わたしたち/いい
地域 + 文(N) あかい/いろ/ついて/それが/ほら わたしたち/は
文節(S) あかい/いろこ/ついたり/して/それが/ほら わたしたち/いい
*(N)はNMT、(S)はSMTのこと
例 1,2,4は...(中略)...参照文と非常に近い翻訳文が出力された例である.
確かに結構良い感じだな。例2と例4は完全に一致してるし。例1は けど と けれど の差だけ
SMTは惜しいな
例2の「いろこ」を「いろ」と訳せてない
例4の「いー」を「おまえたち」と訳せてない
例 3 に,提案手法で正しく翻訳できなかった例を示す.この岩手方言文の例では,提案モデルが東北弁の特徴の一つである濁音化や,「い」→「え」のような音韻変化を正しくとらえていることが観測できるものの,「かか」が「妻」という意味を表す単語であることは捉えきれていない.今回の学習データの規模では,このような語彙的な知識を十分に学習できなかったと考えられる.
なるほどなぁ。語彙のデータが足りないとこういうことが起こるのか。 「かか」と「妻」は「異表記の語彙」に該当するのかな? 一方で,「えってる」に対応する出力「いっている」のように,正解文の「はなしている」と意味的に一致しているものの,表層的な文字列の違いから BLEU スコアが低下してしまうといった事例も観測された.
ほぼ意味が一致してるんだから良くない?という気持ちになるね
意味的に一致している翻訳結果をどのように評価するかという点は今後の課題である.
このモデルが地域ごとの共通性をとらえながら学習を行っているかを分析するために,地域ラベルに対応する埋め込み表現(地域ベクトルと呼ぶ)を t-SNE を用いて二次元空間に写像したものを図4 に示す.我々の手法では,学習時に地域の地理的な情報を一切埋め込んでいないにも関わらず,各地域ベクトルの位置関係は概ね東北・九州などの地理的な地方区分に対応することが読み取れる.
学習時に地域の地理的な情報を一切埋め込んでいないにも関わらず,各地域ベクトルの位置関係は概ね東北・九州などの地理的な地方区分に対応する 面白いなぁ〜
また,興味深いことに,東北地方と九州地方の方言の距離が近いという,周圏分布 5 のような特徴もみられる.さらに,秋田・石川・富山・鳥取などの地域が九州地方の方言に近いといった特徴は,周圏分布だけでなく,九州地方の方言が交易関係にある地域に飛火的に伝播したとする遠隔地分布のパターン 8 を支持する結果であり,既存の方言分布に関する様々な知見との興味深い一致が見られる. 方言が交易関係にある地域に飛火的に伝播した 面白いなぁこの分野、と思わせるような考察だ
/icons/hr.icon
5. おわりに
国立国語研究所の「全国方言談話データベース」を学習データとして,複数地域の方言を共通語に翻訳する文字ベースのニューラル多方言翻訳器を作成した.
ふむ、そうだね
この翻訳器では,1 地域ごとの方言共通語対訳コーパスが小規模でも,複数地域のコーパスを合わせて学習することで,方言間で共通している音韻変化を学習することができ,さらに翻訳元の文頭に地域ラベルを追加することで各方言の特徴を考慮して翻訳できることを示した.
1 地域ごとの方言共通語対訳コーパスが小規模でも,複数地域のコーパスを合わせて学習することで
『みんなで力を合わせれば』的な。文殊の知恵的な。ね。
また,学習によって得られる地域ベクトルを分析することにより,方言の類型分析へ応用できる可能性を示した.
副次的な効果もあったよ〜、というストーリーにしている。
一方で,現状のコーパス規模では低頻度の方言語彙知識を獲得することが難しいことも確認された.今後は,方言語彙を含む辞書を訓練データに取り入れるなどして方言翻訳のさらなる精度向上を目指したい.
方言語彙を含む辞書を訓練データに取り入れる これやりたいね。自分の場合はターゲットを鹿児島に絞ってるわけだし。鹿児島弁として明確になってる語彙は事前に取り入れておきたいな。