機械学習
あるタイミングでどのような漢字変換が正しいのかを判定するには、前後にある文章(文脈)や話者の使用する単語の傾向(背景)を分析することで得られます。
この分析をする上で欠かせないのが過去の入力履歴や、関係のある人物や会社名などのアドレス帳(名簿)データの存在です。
特に日本人の氏名や地名には、標準の常用漢字には無い特異な読みを持つものが多数あります。小鳥遊と書いてタカナシとか、読めたものではありません。
また日本語に限らず あらゆる言語では新しい単語が毎日のように産まれます。
したがって それらの新しい単語を辞書に日々追加していくアップデートが必要になります。
しかしながら ある人物が使用する単語は それらの中の ごく一部です。
よって、毎日入力する文章の中から、その人が過去に選択した(または選択肢から外した)履歴から、辞書に含まれる単語の中の優先順位を常に増減させていくという仕組が必要で、この過程を「学習」と呼びます。
プライバシー上の懸念
辞書を日々アップデートする必要があるという理由から、コンピュータは基本的にインターネットを通じて配給元との通信経路が保たれた状態でなければなりません。
このことは必ずしも良いことばかりとは限りません。
もしその配給元の中に悪意のある人物が紛れていたら、入力した文章情報を抜き取って盗むことも可能だからです。
もちろん技術的に可能だからといっても、法律や その他第三者の監視もありますから、そう簡単には実行されないでしょう。
ですが、入力したテキストと背景情報が無ければ、より良い辞書を提供することもできません。
良い変換結果を出したいという技術的な目標を達成するため、できるだけ多くの情報を掻き集めようとするのは必然的な流れです。
現在日本語変換システムを提供しているのはMicrosoft、Google、Appleの3つの主要OSメーカーに加え、オープンソース版であるMozcなどに加え、ATOKを提供する日本のJustSystemなどいくつかの少数のメーカーに限られますが、JustSystemを除くと国内にデータが とどまっているかどうかは追跡困難です。
国外に持ち出されたものについて監視することはさらに難しく、何らかの望ましくない扱いがされても分からないということになります。
この流れに抵抗することができるとしたら、国民の入力の不便を承知の上で国などが情報の吸い上げを防ぐ法規制をかけるしかありません。
集合知と漢字変換
現在インターネット上のデータを漢字変換辞書の一部に採用するシステムがあります。
たとえばGoogle などはGoogle日本語入力というソフトを提供しており、これは検索エンジンをもつGoogleならではと言えるでしょう。Googleは世界中のWebサイトを常にデータ収集の対象としており、その中で ある主題にそって登場する特定の単語(関連語句)を把握しています。
前に登場する文で関連語句が拾えれば、そこから話のテーマを理解し、よりよい変換候補をサジェスト(提案)することができます。
同じようにWindowsを提供するMicrosoftはBingという検索エンジンを運用しています。ここで取得したデータは日本語変換にも再利用可能でしょう。
これらのシステムは変換精度の観点では かなり有用で、実際非常に多くのユーザーがいます。
特にニュースなどで突然流行した単語については、非常に早くアップデート辞書を提供できるというメリットがあります。
とはいうものの、一部でその危険性も指摘されています。
インターネット上には、ある種の差別や攻撃的な単語も数多く存在し、よく使われているからといって変換上位に出すべきとは必ずしも言えないからです。
このため各社 集めてきたデータの中から不適切な単語を排除するなど いくらかの細工を行なった上で辞書を提供しています。
この「細工」の過程が不透明であるがゆえ、例えば自社製品やスポンサーとなっている企業に有利になるように辞書の優先度を調整しているかもしれず、ある種の「広告」として機能している可能性が排除できません。
細工をしなければ不適切な語句が乱舞し、細工をすると自社に都合の良い単語をピックアップしているのではないかという疑惑が生じ、板挟みになってしまうのです。
オープンな辞書で固定されたものとして提供されていれば、そこに登場する単語に企業名や特定の商品名が偏って入っているかどうか調べることは比較的簡単です。
しかしインターネットから適宜 取ってくるとなると、分析は単純ではありません。
過去に入力した単語の傾向から、それぞれの人に対して違う辞書を提供することもできますから、自分の辞書と他の人の辞書が全く違っているかもしれません。そうなると 自分の辞書に たとえ偏りがあっても、「偏りは利用者の入力の結果である」と言い訳ができるからです。
オンプレミス・データベース
企業が持つ情報の中には、オンプレミスという自社のデータベースシステムの中に溜め込むタイプで運用されていることがあります。
たとえば自社の製品を購入した顧客との間で、過去にどういった問い合わせを受けたかなどのやり取りの履歴を溜めていたりするなどです。
このようなデータは一般に企業の競争上 競合他社に取られないようにすることと、くわえて個人情報保護の観点から厳重に管理されています。
ここには顧客の氏名などの情報も当然に含まれていることから、うまく活用されれば漢字変換の効率を高めることに有用なものもあるかもしれません。
ですが情報保護の観点で、これらのデータはインターネットに公開することは絶対にできません。
またアクセス権の問題もあります。
大きな企業ではいくつかの担当部門ごとに、見て良いデータと見てはいけないデータとに、アクセス権限が細かく設定されているケースがあります。
この場合 別の部門に有用な情報があっても それを勝手に取り出すことは できません。
この辺りに変換辞書システムの限界があります。
教えて良い単語かどうかを設定するのはコンピュータではなく、部門の管理者であり、コンピュータはそれを超えて侵入することはできません。
集合知による変換には無限の可能性がありますが、それをブロックする人が途中に介在する以上は、あくまで人の運用能力にかかっているのです。
文脈解析と短文指向
近年のインターネット上での文書の やり取りは、以前のメールや添付ファイルをベースとしてものから、より会話に近い いわゆる チャット型コミュニケーションへと移行しています。
これにはインターネットの回線が昔よりも高速かつ切れにくく安定したことも関連していると思われます。細かいメッセージをやり取りするには次のメッセージが届いているかどうかを小刻みに確認しに行かなければならないためです。
このような傾向は、日本語学習システムに対して新たな課題を突きつけています。例えば次のようなやり取りです。
Aさん「明日の打ち合わせは何時にしましょうか?」
Bさん「ではニジにしましょう」
ここで、Bさんのいうニジ
は当然「2時」です。
ですが日本語のニジ
には虹
、尼寺
、二次
、二字
、二児
、二時
のように、またしても多量の同音異義語があります。
パソコンの場合はニ
の部分のみを数字で2
と入れれば虹
と尼寺
は対象から外れますが、それでも後の4つは衝突を回避できません。スマートフォンともなると 数字で入力するには一旦キーボードを数字入力モードに切り替えなければなりませんから、ひらがなでにじ
と入力する方が早いのは明らかです。
ところが ここで新たな問題が生まれます。
このニジ
が時間を指しているものと判定するためには、Bさん自身の発言ではなく、先のAさんの発信した文を理解するところまで行わなければなりません。
前の文章で「x
=打ち合わせの時間」という未解決の問いが出現し、それを解釈できて初めてニジ
は時間だと分かるのです。
自分自身が入力したテキストではなく、別の人が入力したテキストを引き受けて処理するというのは技術的にもかなり複雑です。少なくとも入力枠の範囲からでは判定はできませんし、会話履歴の通信の結果が取得できなければなりません。
もしかすると、1つ上は「ご回答をよろしくお願いします」という一文が挟まっているかもしれません。そうなればいくつ上の文章までを解析対象とすれば良いのか無限に遡らなければなりません。
またもしかするとチャットの中ではなく、電話など口頭で質問したことが どこか間にあるかもしれません。そうするとどれだけ遡ったとしても”未解決の問い”が発見されることはなく、単に無駄に過去のやり取りを探す通信だけが発生することになります。
もちろんここでもプライバシーがネックになります。
誰とどんなやり取りしたかという情報を、変換のためにシステムがどこまで吸い上げるべきかということです。
学習の限界をわきまえる
相手が目上ならば敬語的表現を使用すべきですし、社外の人物とのやりとりでは社内の別の人物の呼び方に敬称を使用しないなどルールが変わります。
「イバラキサンはどうしますか?」
社内の名簿に茨城さん
がいたとして、社外の人と やりとりする際には茨城産
よりも優先度は下でなくてはならず、いっぽう茨城さん
と やりとりしている時は茨城産
は出てはいけない候補です。
茨城でなくても山口でも長崎でも熊本でも秋田でも岡山でも、地名と人名は たびたび衝突を起こします。
きっちり提案しようとすると、誰とやり取りしているかも把握しなければならず、その相手が社外か社内かも学習対象にしなければなりません。
これを機械的に解消するのは容易ではありません。
なぜなら相手の所属のような情報は保護の観点からオープンにできないからです。個人が所有するアドレス帳の全てに社名や上下関係が登録されているかどうかも正確ではありません。
データを運用しているのが人である限り、その情報は常に取得できるかどうかは分からず、また必ずしも正確に立場を反映しているとは限りません。
繰り返しになりますが、日本語そのものを改定して、変換ミスの生じない強い言語へと変えてしまうことはセットで行われるべきです。
上記の問題の解決は 極めてシンプルです。
茨城産(イバラキサン)という漢字読みを廃止し、茨城産(イバラキザン)と濁音(連濁)を用いればいいのです。
漢字変換によって「サン」が地名の後に登場せず、常に「ザン」と入力しなければならないとすれば、このような衝突は発生のしようがありません。
人名の方は “様”(さま) あるいは “君”(くん) を 付ければ、誤変換にはなりません。ただ、“君” は男女差別や、年功序列がなくなってきたこと等の理由で 現在は 避けられる傾向があり、もっぱら「さん」が使われます。これが産
や山
との紛らわしさを生みます。
こちらに対する解としては「さん」に代わる新しい語を生み出すか、「〇〇 さん」のように人名には スペースを開けることを礼儀とするなどです。これを実現するには日本語入力中にスペースを入れやすいシステムが必要ですが、膨大なデータ解析が必要な 対話文脈解析よりも、ずっと開発は簡単でしょう。
文法的規則に手を加えるのは日本語を使う人々の社会的合意が必要で、道のりは厳しいです。しかし AIで あらゆるデータを解析可能なように特定の会社にすべて情報を差し出すのと、容易でオープンな解析方法が 広く平等な形で実現されるのと、どちらが良いでしょうか。