豪鬼メモ

一瞬千撃

和英辞書の語義正規化と伝搬による再現率向上

WordNetWiktionaryから作った統合英和辞書を転置して和英辞書を作る際に、訳語を正規化するとともに、関連語の訳語を伝搬して、再現率を高めようという話。公開運用サイトはこちらなので、使ってみていただきたい。これで再現率に関しては英辞郎に匹敵するようになったかな。
f:id:fridaynight:20201226033929p:plain


年末年始の休みでもあまり外出できない状況なので、家や図書館で読書などする日々である。Kindleで洋書を読むというのもなかなかオツなもので、その際にはKindle内蔵の辞書が役立つ。最近になってやっと英英辞書でも事足りるようになったというか、むしろ英英辞書の方が便利に感じることも多くなってきた。ただ、やっぱり日本語の訳語も同時に表示された方が嬉しいので、英英辞書に訳語をつけた「英英和辞書」が欲しくなってくる。ということで、例の辞書検索システムを改造して、WordNetと日本語WordNetのデータを前面に押し出した表示にしてみた。すなわち、「全データソースから集めた翻訳語のリスト」「発音や屈折等の属性データ」「WordNetの語義」「Wiktionary英語版の語義」「Wiktinary日本語版の語義」という順番に変えた。翻訳語のリストで大意を掴んだあとは、WordNetの語義だけを読めばほとんどの場合に事足りる。訳語は既に提示されているのだから、日本語の語義(主にgross)よりも英語の語義(主にdefinition)の方が有益だ。WordNetがカバーしない語義がもしあっても、ほとんどの場合でWiktionary英語版がカバーしてくれる。その意味でWiktionary日本語版は用済みなのだが、最後に一応記述しておく。

例えば「colonel」という単語を調べると、WordNet由来の「a commissioned military officer in the United States Army or Air Force or Marines who ranks above a lieutenant colonel and below a brigadier general」などという語義が知れる。それだけ読めば、colonelが軍隊の階級であることは理解でき、英文読解を進める上ではそれで問題ない。しかし、日本人としては、やはり日本語で何ていうのか知りたくなる。その方が覚えやすい。なので、「大佐」という訳語が提示されると楽だ。逆に、「attrition」を英和辞書で調べたとして、「摩滅」「摩擦」「消耗」「磨耗」といった訳語だけが並べられるとどうだろう。それでも読解上の問題はない。しかし、訳語の含意と原語の含意は完全に重ならないのが翻訳の宿命であるから、より正確な意味を知るには「a wearing down to weaken or destroy」「erosion by friction」といった英語の語義説明があった方が楽だ。そういうわけで、英和辞書であるところのWiktionary日本語版のデータを最初に以前の挙動を変えて、英英辞書であるところのWordNetのデータを最初に持ってくるようにした。そして訳語はWordNet日本語版とWiktionary日本語版から集めて表示することで「英英和辞書」として使えるようにした。

ところで、英単語を調べる場合に、類義語がすぐに調べられるようにしておくことは重要だと再認識した。英文を読んでいる際に「blaspheme」という単語の意味がわからなくて調べたとする。その意味は「冒涜する」だと分かった後に、たいてい私は思うのだ。あ、冒涜するって意味の英単語を私は他に知っている気がすると。単語集で見たはずだと。でも、かなりの確率ですぐにはそれが思い浮かばなくて気持ち悪くなる。WordNetの同義語情報には「swear, curse, cuss, imprecate」と書いてあるが、その中には私が思っているものはない。結論としては「profane」と「profanity」なのだが、それがわかるととても気持ちがよく、「blaspheme」と「profene」を関連づけて記憶できるので定着もよい。そのため、気になった時にすぐに類語検索できるというのは重要であり、今回その改良も行った。これがその結果であり、ちゃんと「blaspheme」から「profene」が引けるようになっている。


本題である語義正規化の話に入る。WordNet日本語版のおかげでWordNetの語義に訳語がつけられているわけだが、なぜかその訳語は名詞であることが多い。動詞や形容詞や副詞の英単語の訳語として、名詞の日本語が選ばれていることが多いのだ。動詞や形容動詞の語幹であることが多い。例えば「deify」の訳語として「神格化」が収録されていて、「神格化する」ではないのだ。「profane」の訳語としては「冒涜」が収録されていて、「冒涜する」ではない。一方で、Wiktionary等から集めた訳語は英語に品詞が合わせてあることが多くその他の類語には「神格化する」「冒涜する」といった訳語がつけられている。そうすると、和英辞書として「冒涜する」で検索した場合に「blaspheme」はヒットするけど「profane」はヒットしないということになる。細かい話のようだが、これは辞書検索システムとしては由々しき問題だ。

対策として、英単語の品詞に訳語の品詞をできるだけ合わせる努力をする。WordNetに品詞情報がつけられているのはありがたい。動詞の英単語の訳語としてサ変動詞の語幹である名詞が選ばれていた場合、「する」を後置する。例えば「運動」は「運動する」になる。形容詞の英単語の訳語として形容動詞の語幹である名詞が選ばれていた場合、「な」を後置する。例えば「大胆」は「大胆な」になる。副詞の英単語の訳語として形容動詞の語幹である名詞が選ばれていた場合、「に」を後置する。例えば「豪快」は「豪快に」になる。動詞に関してはMecabにかけて「名詞,サ変接続」という品詞情報が出れば「する」がつけられることがわかる。形容動詞に関しては「な」をつけた上でMecabにかけて「名詞,形容動詞語幹」という品詞情報が出れば「な」や「に」がつけられることがわかる。形容詞の訳語が名詞である場合には「の」をつける。

上記の方法でほとんどの場合にうまくいくのだが、例外も多少ある。動詞の場合、「する」でなくて「される」や「させる」をつける方が妥当である場合がある。「overturn」の訳語として「転覆」が記載されているのだが、「転覆する」でなく「転覆させる」にした方が良い。これに関しては機械的な解法はない。対訳コーパスを見て頻度を比較して決めるとかいう方法が考えられなくもないが、複雑になる割に成功率は高くなさそうだ。とはいえ、受動態や使役動詞として訳す方が自然な語に関しては日本語WordNetにおいても「発表される」「満足させる」ともともと書いてあることも多く、全体として見れば「する」をつけることで問題なさそうだ。

動詞や形容動詞の語幹である訳語に接尾辞をつけて収録することには成功した。さて、そうすると今度は語幹で検索できなくなるという問題がある。「冒涜」で検索したら「profanity」だけでなく「profane」もヒットして欲しいのが人情だ。そこで、和英辞書用の転置インデックスを作る際に、サ変動詞と形容動詞に関しては語幹だけのパターンもキーとして登録する。

ついでに「魅力的」「魅力的に」「魅力的な」といった「的」「的に」「的な」で終わる語にも同様のステミング処理を施す。ユーザとしては、基本的には語幹で検索することで最大限の再現率を得ることができる。訳語をリンクとみなした類語展開を行う際にも同じ処理を行なって、再現率の向上が図られる。


日本語WordNetのもう一つの問題として、カバー率が完全でないことが挙げられる。そこで、WordNetの関連語から訳語を伝搬させることを考える。該当の語の訳語とその語の各語義毎の関連語の訳語の積集合をとれば、その語義の訳語が分かるという作戦だ。例えば "title" の語義の一つである "written material introduced into a movie or TV show" には日本語訳がつけられていない。しかし、Wiktionary等を見れば "title" の訳語の一つとして "字幕" が得られる。また "title" の上位語である "writing", "piece of writing", "written material" のそれぞれから訳語を取ってきて、"title" の訳語と積集合を取ると、"字幕" が残る。それがその語義の訳語として適切であると考えられる。同様にして、それぞれの関連語の訳語の頻度を数えて一定数以上の一致が見られれば、それをもってその語義の訳語とみなすこともできる。

この方法はそれなりに妥当ではあるが、欠点もいくつかあり、工夫が必要になる。一つは、品詞が異なる訳語を割り当てる可能性があることである。例えば、"locate" の語義である "determine or indicate the place" の関連語には "place" や "site" があるがそれらに共通する訳語は "場所" である。しかし、その語義は動詞であるので、「場所をつきとめる」「特定する」といった動詞の訳語をつけねばならない。そのため、Mecabを訳語にかけて、動詞の英単語には動詞の日本語訳しかつけられないようする。同様にして、名詞や形容詞や副詞などでも品詞が一致するように努力する。日本語の品詞体系は英語のそれとは異なるので、助詞や助動詞による作用を考えねばならないが、泥臭いルールを幾つか書けばなんとかなる。もう一つの問題は、"view" と "viewing" のように、派生語が関連語として登録されている場合、多くの語義に共通した訳語がつけられてしまうことである。これに関しては、元の語と関連語の編集距離を見て、その割合が語長の半分以下である場合には、その関連語を無視することで回避できる。

さらにまだ問題がある。"have"、"get"、"take"、"make"、"go"、"come" といった基本語は文脈に応じて互いに類義語になりうるので、単にそれらの訳語を合算すると「得る」「持つ」「取る」「作る」といった無意味な語ばかりが訳語として表示されてしまうことになる。それを防ぐためには、出現確率を見て一般語の対を排除すればよい。単語対があったとして、それぞれの単語の出現率の相乗平均が0.0005を上回った場合、その単語対の訳語をそのまま採用するのは控える。同様にして類語同士の単語対の出現率の相乗平均が0.005を上回った場合、その単語対の訳語の頻度を数えるのを控える。これによって、"go" と "come" の組み合わせは捨てられるが、"go" と "destroy" は採用される。"buy" と "purchase" とかも採用される。

結果的に、元々は492476語の訳語が対応づけられていた辞書に97693語が追加されて、590169語になった。訳語が全くなかった93426項目のうち、22784項目に新たに訳語がつくようになった。割合としてはあまり多くないように見えるが、頻出語に焦点を当てて対応がなされているので、実際の利便性の向上はそこそこ大きい。日常的に使う単語のカバー率は全く不満のないレベルになったと思う。"cardinal" の語義の一つである "crested thick-billed North American finch having bright red plumage in the male" の訳語を機械的に推定するのはさすがに難しいが、それが分かる必要は普通ないだろう。もちろん翻訳家にはそれが必要な時もあるだろう。そして、その答えである「ショウジョウコウカンチョウ」を掲載している英辞郎は流石だと言わざるを得ない。一方で、"苛酷な" で類語検索した時の網羅性はこちらの方が上だろう。


話は少しずれるが、英語の勉強として小説を読む場合に、先に日本語版を読んでおいてから英語版に取り組むと楽だという技がある。二度手間にはなるし金もかかるが、その方が効率的だ。私の場合、日本語版は英語版の4倍以上速度で読むことができるというか、英語の読解力が低くて1/4以下の速度でしか読めない現状がある。したがって、日本語版を読むことで英語版の速度が上がるならば、全体のスループットは著しく向上する。さて、その際に、原作が英語の作品が良いのか、原作が日本語の作品が良いのかという問題がある。結論としては前者が良いと思う。日本語独特の言い回しを無理やり訳した英文を読んでいると、辛い。特に会話文の話者が特定しづらいのがイラつく。日本語の原作だと敬語や役割語(上司の「たまえ」とか女性の「わよ」とか)で話者を暗示して円滑に展開させているところが、英語に訳されるとそういった情報が消えて難しくなる。あと、日本語で省略された代名詞が英訳で補完された結果、一文に含まれる複数の「he」や「his」が別のエンティティを指すみたいな難所が出現しがちだ。もともと英語で書いてあればその作者なりの工夫で読みやすく表現されるのだろうが、翻訳だとそうはいかない。というか、英訳だと代名詞の省略に起因する誤訳が往々にしてある。逆に和訳だとそういう問題は起きにくいし、もし問題があっても、日本語の能力には定評がある我々日本人には埋め合わせが比較的容易だ。

まあそういうわけで、日本語版をざっと読んでから、辞書を引き引きしながら英文小説を読むとなかなか捗る。忘年会新年会を遠慮する代わりに読書に取り組むのもまた一興かと。