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がなにかの(やく)にたてばとおもっています。