日本語入力を支える技術という本を書きました

 (追記):「この本に書かれていないこと」という項を追加しました。
 以前も告知しましたが、日本語入力を支える技術という本を書きました。技術評論社から2012年2月8日に発売されます。(私の知っている限りでは、ジュンク堂池袋店、有隣堂AKIBA店、丸善丸の内店、書泉ブックタワーでは既に先行販売しているよう…でしたが、ジュンク堂池袋店、有隣堂AKIBA店、書泉ブックタワーは先行販売分は売り切れの模様です。)どんな本なのか、目次などについては公式ページを参照していただくとして、以下ではどんな本なのか宣伝したいと思います。

 この本のキーワードは「実装」と「初心者向け」です。初心者でも実装ができるようにサンプルコードを多用し、また数式が出てくる部分に関してはちょっとしつこいぐらいに説明を加えました。私自身の経験からすると、本を読んだで理解したと思っていても、大抵の場合、細かいところはわかっていないものです。実際に自分で作ってみることは、そういった理解があやふやなところを浮き彫りにするにはとてもよい手段です。本書を読んだ人にはぜひ、実際にプログラムを書いていただきたいです。一度書いてみると、以後その分野については想像力が大幅に増しますので、そのような観点からも、書いてみることは重要です。

ここがポイント

  • 日本語入力の歴史を説明する部分は地味にがんばっていて、九州大学の栗原教授の論文まで確認しました。NHK技研の相沢, 江原らの論文は、入手するためにNAISTの小町さん経由でNTTの永田さんを紹介していただき、さらにそこから山梨英和大の江原さんを紹介していただいた、というような複雑なルートをたどったりしました。そうやって頑張った割には、ちょっとしか書いてないけど…。あと、MS-IMEATOKに関しては、MicrosoftやJust Systemの人にお聞きした知識が入っています。
  • データ構造に関して、特にLOUDSを使ったトライを紹介しているような日本語で書かれた書籍はまだ他にないはず。
  • ビタビアルゴリズムについては動的計画法とかメモ化再帰とかをからめて詳細に説明しました。ちょっと詳しすぎるかもしれない。すいません、書きたかったんです。
  • 機械学習に関して、構造化パーセプトロンや構造化SVMを説明している書籍はまだないはず。また、CRFについても前向き後ろ向きアルゴリズムの説明に6ページ使うとか、かなり力を入れて紹介しました。

 上記の通り、日本語入力を軸として、いくつかのトピックが詰め込まれています。大雑把に構成を説明すると、日本語入力の話がまず最初にあって、その後は日本語入力を実現するための要素技術としてデータ構造と機械学習についての説明がある、というような感じです。

こういう人にオススメ

  • 日本語入力に興味がある人
    • 日本語入力について歴史から実装まで、一通り知ることができます。日本語入力の技術的なところにまで突っ込んだ本って、たぶん今世紀初なはず。
  • 自然言語処理に興味がある人
    • 形態素解析器や係り受け解析器も応用として自分で実装できるようになります。(※効果は個人差があります)
  • 機械学習に興味がある人
    • 高次元かつスパースという性質を持った問題は多いですが、そのような場合に効果的な実装が紹介してあります。短い行数で実際に使える機械学習のプログラムを書くことができます。

この本に書かれていないこと

  • 文字入力用のAPI(IMMとかTSFとか)については、概念は紹介していますが、具体的な説明は書いていません。具体的なAPI仕様はOSによって変わるし、同一OSでもバージョンによって変わってくるからです。
  • 歴史的な用語などについては、有名なものは紹介してありますが、やや手薄です。
  • 個別のかな漢字変換エンジンの話はあまり載っていません。ある程度ページを割いているのはATOKMicrosoft IMEGoogle日本語入力Baidu IMEの4種類です。詳しい中身はわからないので、全部あわせても数ページ程度の紹介です。
  • 日本語の文法の話についてはほぼ触れていません。もちろん、実用的な物をつくろうとすると日本語そのものと向き合うことはどうしても避けられないのですが、それだけで一冊の本になってしまうこと、今の私には書ききる力が無いことから、バッサリと省略しました。

感謝

 謝辞にも書きましたが、多くの方にレビューしていただき、多くの改善がなされました。特に小町さんには全体にわたって何度もチェックしていただきました。レビューによるクオリティの向上は通常どれぐらいのものなのかはわかりませんが、この本に関して言うと相当な向上が行われました。大変感謝しております。もちろん、残った間違いやわかりづらい部分は筆者の責任です。
 また、すでに何人かの方には 宣伝 して いただいて おり、ちょっとハードル上げすぎな感もありつつ、感謝しております。また、ステマと言いながら全然ステルスではない宣伝をしてくださった にも感謝しております。