Shiki’s Weblog

ひらがなIME — かな漢字(かんじ)変換(へんかん)での大規模(だいきぼ)言語(げんご)モデルの利用(りよう)

2024/10/13

はじめに

 今月(こんげつ)もあたらしいひらがなIMEをリリースしています。最新版(さいしんばん)は、大規模(だいきぼ)言語(げんご)モデルをつかって、文脈(ぶんみゃく)にあった変換(へんかん)候補(こうほ)をはじめから、えらべるようになっています。したの動画(どうが)は、ひらがなIMEに変換(へんかん)候補(こうほ)の選択(せんたく)をまかせて入力(にゅうりょく)しているときの様子(ようす)です。

 ユーザーは提示(ていじ)された変換(へんかん)候補(こうほ)をただそのままつかっています。本文(ほんぶん)の文脈(ぶんみゃく)にあわせて「回答(かいとう)」と「解答(かいとう)」のような同音(どうおん)異義(いぎ)語(ご)をつかいわけることができています。「乗(の)る」と「載(の)る」のようなおくりがなのある和語(わご)についても同様(どうよう)です。今回(こんかい)はそのしくみについてまとめます。

これまでのひらがなIMEの概略(がいりゃく)

 梅棹(うめさお)忠夫(ただお)さんは、漢字(かんじ)のすくない、よみやすい文章(ぶんしょう)をたくさんかきのこしました。ひらがなIMEは、梅棹(うめさお)さんのような表記(ひょうき)法(ほう)をつかった文章(ぶんしょう)をかきやすくするために、2017年(ねん)から開発(かいはつ)をはじめたIMEです。梅棹(うめさお)さんの表記(ひょうき)法(ほう)のいちばんの特徴(とくちょう)は、和語(わご)の用言(ようげん)をかなでかくところです。この文章(ぶんしょう)もそのようにしています。

かな漢字(かんじ)変換(へんかん)によみの入力(にゅうりょく)モードをつかわない

 これまでのIMEでは、おおくの文節(ぶんせつ)をプリエディットにまとめて入力(にゅうりょく)する方法(ほうほう)が主流(しゅりゅう)になってきました。そのかわりに、すこし操作(そうさ)がむずかしい部分(ぶぶん)があります。文節(ぶんせつ)をきる位置(いち)を修正(しゅうせい)する。前方(ぜんぽう)の文節(ぶんせつ)の誤変換(ごへんかん)を修正(しゅうせい)する。こうしたIMEに固有(こゆう)のキー操作(そうさ)は、おもったよりもつかいこなしにくいものです。むずかしい操作(そうさ)をきらって、みじかい文節(ぶんせつ)ごとに確定(かくてい)しながら入力(にゅうりょく)していくひともいます。誤変換(ごへんかん)をみつけたとき、ESCキーをおして、さいしょから入力(にゅうりょく)しなおしているひともいるのではないでしょうか。

 ひらがなIMEは、ひらがなを入力(にゅうりょく)するときプリエディットをつかいません。ひらがなは、プリエディットをはさまずに、直接(ちょくせつ)、本文(ほんぶん)に挿入(そうにゅう)していきます。漢字(かんじ)をつかいたいときは、本文(ほんぶん)中(ちゅう)のひらがなを直接(ちょくせつ)、漢字(かんじ)におきかえることができます。これには、カーソル周辺(しゅうへん)のテキストをしらべたり、削除(さくじょ)したりするIMモジュールの機能(きのう)を利用(りよう)しています。この機能(きのう)は、2017年(ねん)ごろはサポートしているアプリがあまりありませんでした。いまは、さいしょの動画(どうが)のようにLibreOfficeやFirefoxなどもふつうにサポートしています。

前方(ぜんぽう)最長(さいちょう)一致(いっち)法(ほう)によるかな漢字(かんじ)変換(へんかん)

 ひらがなIMEのかな漢字(かんじ)変換(へんかん)には、前方(ぜんぽう)最長(さいちょう)一致(いっち)という方法(ほうほう)をつかってきました。この方法(ほうほう)では、カーソルの位置(いち)からまえにむかって本文(ほんぶん)をみていきます。そして、ひらがなIMEの漢字(かんじ)辞書(じしょ)のなかからよみが一致(いっち)する語(ご)をさがします。そのなかで、いちばん、よみのながい語(ご)を第一(だいいち)候補(こうほ)としていました。

 たとえば、『わたしの生(い)きがい論(ろん)』という本(ほん)のタイトルを入力(にゅうりょく)するとき、「がいろん」の部分(ぶぶん)にはつぎの候補(こうほ)が合致(がっち)します。

  1. わたしの生(い)きがい論(ろん)
  2. わたしの生(い)きが異論(いろん)
  3. わたしの生(い)き概論(がいろん)

 前方(ぜんぽう)最長(さいちょう)一致(いっち)法(ほう)では、よみのながさがいちばんながい「概論(がいろん)」を候補(こうほ)とします。期待(きたい)しているのは「生(い)きがい論(ろん)」なので、この選択(せんたく)はただしくありません。しかし、辞書(じしょ)の学習(がくしゅう)がすすんでいくにつれて、この方法(ほうほう)でも意外(いがい)と問題(もんだい)に気(き)づかなくなります。これはひらがなIMEが「がい論(ろん)」という語(ご)を辞書(じしょ)に追加(ついか)し、それを優先(ゆうせん)するように学習(がくしゅう)するためです。

おくりがなのある語(ご)の変換(へんかん)

 ひらがなIMEでは、漢字(かんじ)でかく部分(ぶぶん)の直後(ちょくご)で変換(へんかん)キーをおすと、かな漢字(かんじ)変換(へんかん)処理(しょり)がはじまります。これは、おくりがなのある語(ご)でも、そのようにしています。たとえば、「手紙(てがみ)を書(か)いた」と入力(にゅうりょく)したいときは、「手紙(てがみ)をか」のあとで[変換(へんかん)]キーをおします。変換(へんかん)はおくりがなの入力(にゅうりょく)が完了(かんりょう)したときに自動的(じどうてき)に確定(かくてい)します。

 そのために、ひらがなIMEは、つぎのような用言(ようげん)の活用(かつよう)表(ひょう)を使(つか)っています。表(ひょう)のなかのおくりがなにつづいてさらに1文字(もじ)入力(にゅうりょく)すると、自動(じどう)的(てき)に変換(へんかん)が確定(かくてい)します。

活用(かつよう) 五(ご)段(だん) 上(かみ)一段(いちだん) 下(しも)一段(いちだん) 形容詞(けいようし)
よみ かく みる たべる しろい
不定(ふてい) 書き 見 食べ 白く
動作(どうさ) 書く 見る 食べる 白い
仮定(かてい) 書けば 見れば 食べれば 白ければ
命令(めいれい) 書け 見ろ 食べろ
意思(いし) 書こう 見よう 食べよう 白かろう
て形(けい) 書いて 見て 食べて 白くて
過去(かこ) 書いた 見た 食べた 白かった
否定(ひてい) 書かな 見な 食べな
希望(きぼう) 書きた 見た 食べた
ます 書きま 見ま 食べま
ず 書かず 見ず 食べず
使役(しえき) 書かせ
尊敬(そんけい) 書かれ
そのほか 白さ 白み 白げ 白そう

 学校(がっこう)文法(ぶんぽう)では、「書(か)く」と「嗅(か)ぐ」の連用形(れんようけい)は「書(か)い」と「嗅(か)い」だとならいます。しかしこれだけでは、かな漢字(かんじ)変換(へんかん)のために必要(ひつよう)な情報(じょうほう)をつかいきれていません。「書(か)いて」や「嗅(か)いで」のように連用形(れんようけい)に1文字(もじ)くわえると、変換(へんかん)対象(たいしょう)となる候補(こうほ)をしぼることができます。ひらがなIMEの活用(かつよう)表(ひょう)はこうした観点(かんてん)からきめたものです。

補足(ほそく): 日本語(にほんご)教育(きょういく)では、「て形(けい)」などは、この表(ひょう)とおなじかたちでひとつの活用(かつよう)形(けい)としておしえています。学校(がっこう)文法(ぶんぽう)だけが日本語(にほんご)の文法(ぶんぽう)をただしく記述(きじゅつ)したものであるというようなことではないようです。『正しい日本文の書き方』といった本(ほん)をみると、国語(こくご)の研究(けんきゅう)はまだまだ途中(とちゅう)のような印象(いんしょう)をうけます。

大規模(だいきぼ)言語(げんご)モデルを利用(りよう)したかな漢字(かんじ)変換(へんかん)

 梅棹(うめさお)さんのような表記(ひょうき)法(ほう)をつかうときは、用言(ようげん)はほとんどひらがなでかきます。また、ことばえらびをして、なるべくやさしいことばをつかいます。同音異義語(どうおんいぎご)をつかうのは、なるべくさけよう。そうした意識(いしき)もはたらいています。結果(けっか)として、IMEの変換(へんかん)精度(せいど)はじつはあまり問題(もんだい)になりません。

 しかし、いまの「やさしい日本語(にほんご)」や公用文(こうようぶん)では、和語(わご)の用言(ようげん)も常用(じょうよう)漢字(かんじ)表(ひょう)の範囲(はんい)内(ない)では漢字(かんじ)をつかいます。同音異義語(どうおんいぎご)を意識(いしき)してさけることもすくないかもしれません。これまでのIMEはこうした文章(ぶんしょう)や、もっと漢字(かんじ)を多用(たよう)する文章(ぶんしょう)に特化(とっか)したかたちで発展(はってん)してきました。このままでは、梅棹(うめさお)さんのようなやさしい表記(ひょうき)法(ほう)をつかう方向(ほうこう)にすすめていくのは困難(こんなん)です。どんな表記法(ひょうきほう)をつかうかは、IMEではなく、ユーザーがえらべるようになっているべきです。

 ひらがなIMEでも公用文(こうようぶん)のような文章(ぶんしょう)を入力(にゅうりょく)しやすくしておけば、すこしは問題(もんだい)を解決(かいけつ)できるのではないか。そうしたことをかんがえて、変換(へんかん)精度(せいど)の向上(こうじょう)にとりくみました。

言語(げんご)モデルでできること

 さいきんのAIはかなり自然(しぜん)な文章(ぶんしょう)を生成(せいせい)することができます。AIでつかわれている大規模(だいきぼ)言語(げんご)モデルを応用(おうよう)すると、IMEの変換(へんかん)精度(せいど)もたかめることができます。

 いまはオープンソースの大規模(だいきぼ)言語(げんご)モデルをPC上(じょう)でかんたんに利用(りよう)することができます。最新(さいしん)のひらがなIMEは、言語(げんご)モデルとしてtohoku-nlp/bert-base-japanese-v3を利用(りよう)しています。このモデルは、日本語(にほんご)の事前(じぜん)学習(がくしゅう)ずみのBERTモデルです。

 BERTモデルは、文章(ぶんしょう)やセンテンスを数値(すうち)のトークンに分解(ぶんかい)して処理(しょり)します。たとえば、「問題(もんだい)の解答(かいとう)」というセンテンスをトークン化(か)すると、つぎのような数値(すうち)の列(れつ)になります。

2, 12829, 464, 20348, 3

 「解答(かいとう)」という語(ご)は20348という数値(すうち)で表現(ひょうげん)されています。このトークンの列(れつ)を文字(もじ)で表現(ひょうげん)すると、つぎのようになります。[CLS],[SEP]は、それぞれ文頭(ぶんとう)と文末(ぶんまつ)をあらわします。

[CLS] 問題 の 解答 [SEP]

 BERTモデルをつかうと、トークンをマスクして、そこにくるトークンを推定(すいてい)することができます。したの[MASK]の部分(ぶぶん)にそれぞれのトークンが出現(しゅつげん)する確率(かくりつ)をもとめることができるのです。

[CLS] 問題 の [MASK] [SEP]

 解答(かいとう)と回答(かいとう)のどちらがよくでてくるかをしらべてみると、つぎのようになります。

トークン 語(ご) 確率(かくりつ) (%)
17412 回答(かいとう) 0.000313
20348 解答(かいとう) 0.002889

 大規模(だいきぼ)言語(げんご)モデルは、大量(たいりょう)の文章(ぶんしょう)をよみこんで学習(がくしゅう)しています。この確率(かくりつ)は、「問題(もんだい)の解答(かいとう)」のほうが「問題(もんだい)の回答(かいとう)」よりもよく文章(ぶんしょう)にでてくるということをしめしています。

 センテンスの前半(ぜんはん)を「問題(もんだい)の」から「アンケートに」にかえると、確率(かくりつ)がかわります。まずトークンに分解(ぶんかい)します。

[CLS] アンケート に [MASK] [SEP]

 [MASK]にくるトークンの確率(かくりつ)をしらべてみます。

トークン 語(ご) 確率(かくりつ) (%)
17412 回答(かいとう) 0.702180
20348 解答(かいとう) 0.006224

 こんどは、「アンケートに回答(かいとう)」のほうが「アンケートに解答(かいとう)」よりもよく文章(ぶんしょう)にでてくるとことがわかります。

 こうしたBERTモデルをかな漢字(かんじ)変換(へんかん)に利用(りよう)するのは自然(しぜん)なことでしょう。「問題(もんだい)のかいとう」を変換(へんかん)するときは、候補(こうほ)ウィンドウのなかで「解答(かいとう)」をあらかじめ選択(せんたく)しておく。「アンケートにかいとう」のときは「回答(かいとう)」を選択(せんたく)しておく。最新(さいしん)のひらがなIMEは、そうした動作(どうさ)をするようになっています。

変換(へんかん)候補(こうほ)のよみのながさが異(こと)なるとき

 前(ぜん)節(せつ)では、同音異義語(どうおんいぎご)の選択(せんたく)に大規模(だいきぼ)言語(げんご)モデルを使用(しよう)できることをたしかめました。かな漢字(かんじ)変換(へんかん)では語(ご)のきれ目(め)の判定(はんてい)もむずかしい部分(ぶぶん)のひとつです。ひらがなIMEでは、語(ご)のよみのながさの判定(はんてい)がそれに相当(そうとう)します。

 「わたしの生(い)きがいろん」というフレーズを変換(へんかん)するときは、つぎの3つの候補(こうほ)がありました。

  1. わたしの生(い)きがい論(ろん)
  2. わたしの生(い)きが異論(いろん)
  3. わたしの生(い)き概論(がいろん)

 トークン化(か)すると、つぎのようになります。##は、直前(ちょくぜん)のトークンとつなげることをしめしています。

[CLS] わたし の 生き ##がい 論 [SEP]
[CLS] わたし の 生き が 異 ##論 [SEP]
[CLS] わたし の 生き 概 ##論 [SEP]

 それぞれの出現(しゅつげん)確率(かくりつ)をしらべるには、まず5トークン目(め)をマスクして(##がい, が, 概)の確率(かくりつ)をしらべる。そのあとで、さらにべつべつに6トークン目(め), 7トークン目(め)の確率(かくりつ)をしらべてかけあわせる。そうすればよさそうです。計算(けいさん)してみると、つぎのようになります。

候補(こうほ) 確率(かくりつ) (%)
[CLS] わたし の 生きがい 論 [SEP] 0.00000014
[CLS] わたし の 生き 概論 [SEP] 0.00000000
[CLS] わたし の 生き が 異論 [SEP] 0.00000000

 このなかでは、「わたしの生(い)きがい論(ろん)」の確率(かくりつ)がたかいことがわかります。

 最新(さいしん)のひらがなIMEでは、こうしたばあい「がい論(ろん)」という語(ご)を学習(がくしゅう)辞書(じしょ)にさきに追加(ついか)します。「わたしの生(い)きがいろん」を変換(へんかん)すると、「がい論(ろん)」という候補(こうほ)がはじめから選択(せんたく)されています。

おくりがなのある語(ご)の出現(しゅつげん)確率(かくりつ)の計算(けいさん)

 おくりがなのある語(ご)の出現(しゅつげん)確率(かくりつ)も大規模(だいきぼ)言語(げんご)モデルをつかって計算(けいさん)することができます。確率(かくりつ)の計算(けいさん)のしかたは、また、すこしかわります。

 ひらがなIMEでは、「手紙(てがみ)を書(か)いた」と入力(にゅうりょく)したいときは「手紙(てがみ)をか」のあとで[変換(へんかん)]キーをおします。トークンのなかでは、つぎのようなものが「か―」というおくりがなのある語(ご)に対応(たいおう)する可能性(かのうせい)があります。

且 交 交え 交わし 代 代わっ 代わり 代わる 借り 兼ね 兼ねる 兼ね備 刈 勝 勝ち 勝ち点 勝ち越し 勝っ 勝つ 勝て 嗅 変 変え 変える 変わっ 変わら 変わり 変わる 懸 掛 掛かる 掛け 掛ける 掛け声 描 描い 描か 描き 描く 換 書 書い 書か 書き 書き下ろし 書き換え 書き込み 書く 替 替え 枯 架 架かる 架け 欠 欠い 欠かせ 欠く 欠け 欠ける 狩 狩り 買 買い 買い物 買う 買っ 買わ 貸 貸し 賭け 飼 飼い 飼っ 駆 駆け 駆けつけ

 ひとつひとつのトークンは、学校(がっこう)でならう文法(ぶんぽう)とはあまり関係(かんけい)がありません。「買(か)い物(もの)」や「書(か)き込(こ)み」なども、それでひとつのトークンになっています。これらのトークンの出現(しゅつげん)確率(かくりつ)の和(わ)を[か―]とすると、確率(かくりつ)はしたの表(ひょう)のようになります。

トークン 確率(かくりつ) (%)
[CLS] 手紙 を 化 [SEP] 0.00062065
[CLS] 手紙 を 下 [SEP] 0.00117484
[CLS] 手紙 を 火 [SEP] 0.00001212
[CLS] 手紙 を 花 [SEP] 0.00132942
[CLS] 手紙 を 日 [SEP] 0.00021494
[CLS] 手紙 を 科 [SEP] 0.00003665
[CLS] 手紙 を 夏 [SEP] 0.00031159
[CLS] 手紙 を 家 [SEP] 0.00355257
[CLS] 手紙 を 歌 [SEP] 0.00216899
[CLS] 手紙 を [か―] [SEP] 16.38025284

 この確率(かくりつ)をみると、ここではおくりがなのある語(ご)として変換(へんかん)するとよさそうだということがいえます。

 つづいて、「かい」までタイプすると、変換(へんかん)する候補(こうほ)は、つぎのおくりがなのある語(ご)にしぼられます。

嗅い 買い 書い 欠い 飼い 交い 描い

 これらに対応(たいおう)する可能性(かのうせい)のあるトークンはつぎのものになります。

おくりがなのある語(ご) トークン
嗅g 嗅
買w 買 買い 買い物
書k 書 書い
欠k 欠 欠い
飼w 飼 飼い
交w 交

 おくりがなのある語(ご)ごとに、これらのトークンの出現(しゅつげん)確率(かくりつ)の和(わ)を計算(けいさん)するとしたの表(ひょう)のようになります。

おくりがなのある語(ご) 確率(かくりつ) (%)
手紙 を [書k] 0.05203808
手紙 を [嗅g] 0.00010608
手紙 を [買w] 0.00218592
手紙 を [欠k] 0.00024449
手紙 を [飼w] 0.00100214
手紙 を [交w] 0.00027161
手紙 を [描k] 0.00302607

 このばあいは「手紙(てがみ)を書(か)い」がもっともらしい候補(こうほ)だということができます。

 「手紙(てがみ)を」を「臭(にお)いを」にかえると、確率(かくりつ)はしたのようにかわります。このばあいは、「臭(にお)いを嗅(か)い」がもっともらしい候補(こうほ)だということになります。

トークン 確率(かくりつ) (%)
臭い を [嗅g] 0.66568311
臭い を [書k] 0.00002579
臭い を [買w] 0.00856550
臭い を [欠k] 0.00005847
臭い を [飼w] 0.00028443
臭い を [交w] 0.00000188
臭い を [描k] 0.00001477

 言語(げんご)モデルを利用(りよう)しているときは、「かい」までで、「書(か)いた」か「嗅(か)いだ」かを予測(よそく)できているわけです。

実装(じっそう)と性能(せいのう)

 ひらがなIMEは、Pythonをつかって実装(じっそう)しているIBus用(よう)のIMEです。エンジン部分(ぶぶん)の行(ぎょう)数(すう)は3,500行(ぎょう)ほどです。

 今回(こんかい)、言語(げんご)モデルをあつかう部分(ぶぶん)は、Hugging Faceの🤗Transformersをもちいて実装(じっそう)しました。🤗Transformersをつかうと、前半(ぜんはん)でのべた「回答(かいとう)」と「解答(かいとう)」の確率(かくりつ)の問題(もんだい)はつぎのようなかんたんなコードでしらべられます。

import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer


MODEL_NAME = 'cl-tohoku/bert-base-japanese-v3'

tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForMaskedLM.from_pretrained(MODEL_NAME)
inputs = tokenizer('問題の[MASK]', return_tensors='pt')
mask_token_index = torch.where(inputs.input_ids == tokenizer.mask_token_id)[0]
with torch.no_grad():
    probabilities = model(**inputs).logits[0, mask_token_index][0]
probabilities = torch.nn.functional.softmax(probabilities, dim=0)
vocab = tokenizer.get_vocab()
for word in ('回答', '解答'):
    print(f'{word}: {probabilities[vocab[word]] * 100:.6f} %')

 ひらがなIMEで言語(げんご)モデルにアクセスする部分(ぶぶん)のコードも360行(ぎょう)ほどのかんたんなコードです。さきに大規模(だいきぼ)言語(げんご)モデルを利用(りよう)したかな漢字(かんじ)変換(へんかん)でのべたような処理(しょり)をそのまま🤗Transformersを利用(りよう)して実装(じっそう)しています。

 いっぽうで、大規模(だいきぼ)言語(げんご)モデルを利用(りよう)した変換(へんかん)処理(しょり)にはやはり時間(じかん)がかかります。「新幹線(しんかんせん)」のようなこぐかんたんな語(ご)を変換(へんかん)するだけでも、CPUだけでは0.1秒(びょう)以上(いじょう)かかることがあります。キー操作(そうさ)の反応(はんのう)に0.1以上(いじょう)かかると、人間(にんげん)はまたされている感覚(かんかく)をもちます。インタラクティブなアプリでは、「0.1秒(びょう)ルール」とよんで、なるべく0.1秒(びょう)以内(いない)に処理(しょり)をおわらせるような工夫(くふう)がよくされています。

 この問題(もんだい)は、GPUやNPUを利用(りよう)することで改善(かいぜん)できます。いまよくつかわれているGeForce RXT 3060ですと、「新幹線(しんかんせん)」の変換(へんかん)も0.1秒(びょう)未満(みまん)でおわります。GeForce RXT 3060の性能(せいのう)は8ビット整数(せいすう)で約(やく)100 TOPsです。今後(こんご)はCPUに内蔵(ないぞう)されるNPUも同様(どうよう)の役割(やくわり)をになえるようになりそうです。そうなると処理(しょり)時間(じかん)がおおきな問題(もんだい)になることはなさそうです。さいきんのAI PCといわれている製品(せいひん)も、高性能(こうせいのう)なGPUやNPUを搭載(とうさい)しているようです。

about

 なお、ひらがなIMEでCUDAを利用(りよう)するばあい、610 MiBほどのGPUメモリを使用(しよう)します。

関連(かんれん)研究(けんきゅう)

まぜがき変換(へんかん)と前方(ぜんぽう)最長(さいちょう)一致(いっち)法(ほう)

 漢直(かんちょく)がまぜがき変換(へんかん)をサポートするようになったとき、前方(ぜんぽう)最長(さいちょう)一致(いっち)法(ほう)で実用(じつよう)上(じょう)うまくいくことに気(き)づいていたようです。T-Codeのまぜがき変換(へんかん)用(よう)の辞書(じしょ)には、まぜがきではなく、ただのひらがなから漢字(かんじ)への変換(へんかん)になっている項目(こうもく)がかなりあります。

共起(きょうき)データベースをもちいたかな漢字(かんじ)変換(へんかん)

 日本語(にほんご)ワープロでは、比較的(ひかくてき)初期(しょき)から同音(どうおん)意義(いぎ)語(ご)の変換(へんかん)に共起(きょうき)データベースをもちいてきました。1992年(ねん)の論文(ろんぶん)「かな漢字変換における共起情報の適用方式の拡張」には、「歌舞伎(かぶき)が人気(にんき)を呼(よ)んでいる。昨日(きのう)行(おこな)われた公演(こうえん)は満員(まんいん)であった」という例文(れいぶん)がでています。この例文(れいぶん)では、歌舞伎(かぶき)という語(ご)に応(おう)じて「公演(こうえん)」という語(ご)が出現(しゅつげん)するように共起(きょうき)データベースがつくられていることが説明(せつめい)されています。むかしの製品(せいひん)では、こうした処理(しょり)のことをAI変換(へんかん)とよんだりしていました。

 大規模(だいきぼ)言語(げんご)モデルは、これと同様(どうよう)の機能(きのう)も提供(ていきょう)します。ひらがなIMEで「こうえん」という部分(ぶぶん)を変換(へんかん)したときの確率(かくりつ)はつぎのようになっています。

トークン 確率(かくりつ) (%)
[CLS] 歌舞伎 が 人気 を 呼ん で いる 。 昨日 行わ れ た こう 宴 [SEP] 0.000000
[CLS] 歌舞伎 が 人気 を 呼ん で いる 。 昨日 行わ れ た 講演 [SEP] 0.000023
[CLS] 歌舞伎 が 人気 を 呼ん で いる 。 昨日 行わ れ た 公園 [SEP] 0.000178
[CLS] 歌舞伎 が 人気 を 呼ん で いる 。 昨日 行わ れ た 公演 [SEP] 0.000258
[CLS] 歌舞伎 が 人気 を 呼ん で いる 。 昨日 行わ れ た 後援 [SEP] 0.000000
[CLS] 歌舞伎 が 人気 を 呼ん で いる 。 昨日 行わ れ た 好演 [SEP] 0.000000
[CLS] 歌舞伎 が 人気 を 呼ん で いる 。 昨日 行わ れ た 高遠 [SEP] 0.000004

 期待(きたい)されるように「公演(こうえん)」の確率(かくりつ)がいちばんたかくなっています。

 ひとつめの文(ぶん)を「先生(せんせい)の著書(ちょしょ)は人気(にんき)である。」とかえると、確率(かくりつ)はつぎのようになります。

トークン 確率(かくりつ) (%)
[CLS] 先生 の 著書 は 人気 で ある 。 昨日 行わ れ た こう 宴 [SEP] 0.000000
[CLS] 先生 の 著書 は 人気 で ある 。 昨日 行わ れ た 公演 [SEP] 0.000239
[CLS] 先生 の 著書 は 人気 で ある 。 昨日 行わ れ た 講演 [SEP] 0.003338
[CLS] 先生 の 著書 は 人気 で ある 。 昨日 行わ れ た 公園 [SEP] 0.000093
[CLS] 先生 の 著書 は 人気 で ある 。 昨日 行わ れ た 後援 [SEP] 0.000008
[CLS] 先生 の 著書 は 人気 で ある 。 昨日 行わ れ た 好演 [SEP] 0.000000
[CLS] 先生 の 著書 は 人気 で ある 。 昨日 行わ れ た 高遠 [SEP] 0.000005

 こんどは「講演(こうえん)」の確率(かくりつ)がいちばんたかくなります。このように大規模(だいきぼ)言語(げんご)モデルは文(ぶん)をまたいだばあいの共起(きょうき)情報(じょうほう)も、もっていることがわかります。

 ひらがなIMEは、本文(ほんぶん)のテキストをみて、それを置換(ちかん)するかたちでかな漢字(かんじ)変換(へんかん)をおこないます。大規模(だいきぼ)言語(げんご)モデルで評価(ひょうか)するときには、変換(へんかん)する部分(ぶぶん)よりまえのテキストもふくめて評価(ひょうか)をしています。その結果(けっか)、入力(にゅうりょく)中(ちゅう)の文(ぶん)よりもまえの文(ぶん)に応(おう)じて変換(へんかん)候補(こうほ)をかえることができています。

まとめ

 最新(さいしん)のひらがなIMEでは、かな漢字(かんじ)変換(へんかん)処理(しょり)に大規模(だいきぼ)言語(げんご)モデルを利用(りよう)できるようにしました。言語(げんご)モデルを利用(りよう)しているときは、変換(へんかん)したとき、いちばん出現(しゅつげん)確率(かくりつ)のたかい語(ご)があらかじめ選択(せんたく)されています。その結果(けっか)、つかいはじめたときから、学習(がくしゅう)のすすんだ漢字(かんじ)辞書(じしょ)をつかっているような感(かん)じになっています。

 ひらがなIMEはもともとは漢字(かんじ)のすくない文章(ぶんしょう)を入力(にゅうりょく)しやすくすることを目的(もくてき)に開発(かいはつ)をしたIMEです。梅棹(うめさお)忠夫(ただお)さんの著書(ちょしょ)にみられるような表記法(ひょうきほう)を日本語(にほんご)入力(にゅうりょく)IMEでつかいやすくしたかったのです。

 これまでのIMEは漢字(かんじ)をつかいすぎてしまうところがありました。「此方」というような表記(ひょうき)をつかっているひとをときどきみかけます。よみかたは「こちら」です。使用(しよう)する漢字(かんじ)を常用漢字(じょうようかんじ)表(ひょう)内(ない)にある漢字(かんじ)にかぎるようにする。それだけでも、学校(がっこう)でならわない、こうした漢字(かんじ)が文章(ぶんしょう)のなかにでてくることをふせげます。いまの本(ほん)のなかには、みたこともない漢字(かんじ)やよめない漢字(かんじ)がたくさんでてくる本(ほん)もあります。そうした本(ほん)は常用漢字(じょうようかんじ)表(ひょう)にない漢字(かんじ)や音訓(おんくん)をつかっているので、よめなくてもしかたがありません。せめてルビがふってあるとよいのですけれども。ひらがなIMEの漢字(かんじ)辞書(じしょ)は、なまえをのぞくと常用漢字(じょうようかんじ)表(ひょう)内(ない)のよくつかわれる語(ご)にしぼりこんであります。

 梅棹(うめさお)さんは「ワープロの出現(しゅつげん)は、問題(もんだい)の一部(いちぶ)を解決(かいけつ)した。と同時(どうじ)に、まだ未解決(みかいけつ)の問題(もんだい)がたくさんのこっていることを国民(こくみん)にわすれさせた」(『日本語(にほんご)と事務(じむ)革命(かくめい)』, p226)とかきしるしました。『新明解国語辞典』の編集(へんしゅう)などでもしられる柴田(しばた)武(たけし)さんも「ワープロは決(けつ)して国語(こくご)問題(もんだい)の終止符(しゅうしふ)じゃないぞ、ということです」(『国語(こくご)施策(しさく)百(ひゃく)年(ねん)の歩(あゆ)み』, 文化庁(ぶんかちょう), 2003, p.34)とのべました。国立(こくりつ)国語(こくご)研究所(けんきゅうしょ)の所長(しょちょう)をつとめた野元(のもと)菊雄(きくお)さんは国語(こくご)を波(なみ)にたとえて「今(いま)は、それが少(すこ)しマイナスの方向(ほうこう)へ動(うご)いている。だけれども、いつまでもマイナスじゃなかろう」(同(どう), p.32)とのべていました。

 国語(こくご)の表記(ひょうき)法(ほう)というのは、まだ進歩(しんぽ)の途中(とちゅう)にあるもののようです。国語(こくご)がプラスの方向(ほうこう)にふたたびすすめるように、ひらがなIMEがなにかの役(やく)にたてばとおもっています。