東芝総合研究所;日本語処理の黎明期
話は、また、少し戻る。
私は、1972年当時、唯一、自然言語−−C++、Javaなど計算機言語に対して、日本語、英語のように人間が従来用いてきた言語をこう呼ぶ−−の研究を行うと明言した森さんのいる東芝に行くことに決めた。1973年春、私は東京に来た。東芝に入社し、新人研修の半年をすごしていた。半年後、河田さんと総合研究所情報システム研究所の森さんの研究室で再会、二人の共同研究が始まった。とは言っても、私は、今度は研究室内での教育である。この研究室はパターン認識を主テーマとしていた。それはアルゴリムの研究だから、実現はソフトを書いて行う。しかし、文字認識、画像認識などはソフトだけでは済まず、専用ハードを自分たちで作らなければならない。当時の汎用計算機では遅すぎるのである。そこで、新人は必ず、ハードを一つ作る事が教育の一テーマであった。
TOSBAC40にはこのようなボードの上でコントローラ回路を
作りバスに挿す。PCのPCIバスに挿すカードに相当する。
私は、カセットテープドライブをミニコンピュータに取り付けた。PCにカセットドライブを取り付けるのとは訳が違う。PCなら、scsiカードのコントローラがあってそこにコネクタを差せばすむが(さすがにカセットはもうないだろう。今や、DATである)、当時のミニコン(PCは1981年にならなければ現れない)にはそんな手軽なものは無い。まず、バスに差すコントローラの設計から始まる。バスのタイミングチャートをにらみながら設計。基盤にICをさして結線する。ICといっても、ゲートが4つ程しか入っていないものだ。LSIではない。それをズラッと並べて結線していく。それが出来たら、バスにさし、ミニタワーの上半分を切った位の大きさのある、300万円もするカセットテープドライブにつなぐ。80年代半ばのMSXのパソコンに付けたカセットドライブは2万程度だったが。。。
TOSBAC40(写真は後継機TOSBAC40D)
PCで言えばベアボーンにMPU、
主記憶を付けただけのもの。
OSというものは存在せず、自作した。
さて、OSなどないから、ドライバを裸の状態から作らなければならない。勿論、アセンブラである。動かないと、ドライバが悪いのかコントローラが悪いのかさっぱりわからない。その切り分けをするのが大変である。シンクロスコープを睨みながらプローブをICの足に付け、1ゲートずつ信号がでているのを確かめていく。苦労に苦労を重ねてやっと稼動させる事が出来、MT−OSのようなものを作った。当時のミニコンシステムは紙テープが記憶媒体である。プログラムは紙テープにパンチされた穴でビットを表現して記憶されていた。従って、プログラムの作成、修正、保存、読み込みなどを行うプログラムはすべて紙テープを入出力として書かれている。ソースなどないから、それらを逆アセンブルして紙テープからの入出力部分を磁気テープでの入出力に変換していった。これらのプログラムは少ない主記憶で稼働するように精緻な技術を用いて書かれているので、入出力サブルーチンというまとまった単位できれいに書かれておらず、どこに入出力部分が書かれているかを探し出すだけでも大変な仕事であった。「プログラムの中で自分自身の命令を書き換えるプログラムはバグ取りが大変だからやってはいけない」などと、今では考えられもしないテクニックが行われていた時代である。
この頃、直径40cm厚さ5cmはある2MBのハードディスク(この頃のディスクはまだリムーバブルである。PCのHDDのようなウィンチェスタ型HDDが出るのはまだ先の事である)が隣のチームに入って来た。今度はDOS作りである。私のMT−OSの成果を用いて、画像グループの麻田さんがやった。このディスクドライブの方は洗濯機位の大きさであった。
こうして入社1年目が終わった。この頃、森さんはunder-the-table研究ということをしきりに言っていた。自然言語の研究は、まだ研究所の正式テーマになってはいない。under-the-tableなのである。研究というものは、企業でも大学でもスケジュールというものがある。できるかどうか分からないから研究するのにもかかわらずスケジュールがあって、何時何時までにこれを達成する、という事を約束しなければならない。これは矛盾であるが、世の中は矛盾に満ちているものである。
京都に居た頃、助教授の杉田さんには研究テーマは必ず2つは用意し、本テーマが思うに任せない時に備えておかなければならないと教わっていた。森さんはそれをunder-the-tableと呼んでいたのである。私のon-the-table研究は、漢字認識であった。もっとも、私はこちらは余りしなかった。こちらは河田さんが四辺コード法などを提案して、積極的に行っていた。私は、当面、日本語を研究する道具作りを行っていた。先のDOS−−TOSPICS−Lと命名した−−もその一つである。河田さんが工場から、多分森さんの援助で漢字パターンや、漢字プリンタを仕入れてきたりした。漢字プリンタといっても、小型冷蔵庫のような図体の上にトイレットぺーパのような巻き紙が載っている程度のものであったが、当時は、漢字が出るだけでありがたかった。
私はこの時期、意味解析をどうしてやろうか、というような事を考えていた。国立国語研究所の分類語彙表という、単語を意味で分類した表−−といっても、300ページ位の単行本である−−と睨めっこする日を送っていた。意味解析どころか、もっと基礎的な形態素解析も、構文解析もできていないところで、いきなり発想が意味解析に飛んでしまうところが先進導坑(せんしんどうこう)研究志向の大学ポット出らしいところである。74年度も終わりに近づいた頃のある日、河田さんが、森さんが仮名漢字変換をするように言っている、と言う。河田さんによれば、これは河田さんの提案と言う事である。副所長役の玄地さんと森さんに何ができるかと問われて機械翻訳とか自動要約とか色々応えた中の一つらしい。
仮名漢字変換というのは、すでに九州大学でもNHKでも研究は終わっていた。勿論、研究が終わっていたと言うことと、研究が完成しているということとは全然別の話である。大学は基礎研究を終わると、ペーパ(論文)を書いて終了し、次のテーマに移っていく。後継者は、そのぺーパを読んで、何をどこまでやればどこまでは可能かなどの目処がつくのである。勿論、研究をそこで止めないで続行しても良いのであるが、工学の研究を大学で徹底的に行うのはかなり難しい。たとえば、仮名漢字変換では、今では、10万語、20万語という辞書を用いているが、仮名漢字変換が実現していない時点で、どのようにしてこのような辞書を作ることができるのであろうか。
当時、数千字の漢字コードを全部覚えている特殊技能者がいて英字キーボード程度のキーボードで漢字をタッチメッソドで入力する企業があった。RAINPUTが有名であった。日立やリコーもこのような方式を採用していた。そうして打たれた漢字はキーボードの横に付いている機械式の紙テープパンチャで紙テープに出力された。それでなければ、フルキーボードと呼ぶ2千字程とか4千字程の漢字キーを並べた巨大なキーボードでタイプして入力するしかなかった。12段シフトなどという凄いものであった。入力費は1字2円であった。又、漢字パターンにしても満足にない時代である。デザイナーに1字デザインしてもらうと、1万円程度かかった。フルセットなどとても作れないのである。1970年代初期で、大卒の初任給が5、6万円である。このような経済的な理由もあって、基礎研究で終わる事が多かったのである。
京都大学ではすでに1960年代に、坂井、長尾、杉田さんらが文学部と共同で機械翻訳の研究を終えていた。もう絶版になっているかもしれないが、この時の成果が、講談社のブルーバックスから「翻訳するコンピュータ」1969.9.20として一般向けにも本がでている。仮名漢字変換は、NHKも終了していた。大学の頭がまだぬけていない入社2年目の私には、そんな状況の中で、どうして今、仮名漢字変換か分からなかった。しかし、上に書いたように、相変わらず辞書を作る為の漢字入力すらまともにできない時代であったのである。なによりも漢字をどのようにして入力するのか、それを本当に実現しなければ何事も始まらないのである。機械翻訳の研究も、翻訳とはどのようなメカニズムで行うことが可能なのかというアルゴリズムの研究は行えても、実際の日本語の入出力はローマ字や、カタカナであったのである。それを漢字にしたければ、最後は人間が手で書くより仕方なかった。そのような時代であったことを理解しないと仮名漢字変換の真の意義は分からない。この頃、誰も仮名漢字変換が実用になるとは思っていなかった。その上、研究は一段落して皆、実用化などは考えずに終わってしまっているのである。それをいきなり実用の為に研究開発をするのである。正気の沙汰ではなかった。
仮名漢字変換システムを用いたワードプロセッサ初出論文。1977年夏、東北大学で開かれた電
子通信学会の部門全国大会で発表。この時期から武田さんが河田さんに代わって参加している。
もう少し先、1976年暮れの事になるが、本社が英文ワードプロセッサを導入すると言うことを、知人−−誰だったか覚えていない−−が教えてくれた。ついては、デモを見に行くので一緒に行かないかと言う事であった。ワードプロセッシングという概念は、米国IBMが多分60年代の終わり頃、発表していた。MT/STという大きなシステムを実現していた。ST(Selectric Typewriter)で書いた文書を、MT(Magnetic Tape)に記憶して再利用するという概念であった。MTと言ってもカセットではない。古めのSF映画に出てくるような、人の背程もある大きなドライブである。英語では、入力には何の困難もない。一度、入力した文書をMTに記録しておき、編集が出来るということが画期的な事だったのである。それまでのタイプライタでは、A4、1枚タイプした最後の一字を間違えても、廃棄するか、砂消しゴムで汚くなるのを覚悟で消すしかなかったのである。
私の手元にあるのは、私が書いたMT−OSを、HDD用に麻田さんが書き直したDOSであるTOSPICS−−1975年のことである。IBM PCとPC−DOSが出てくるのは、繰り返すが1981年である−−と、それを更に私が言語処理用に書き直し、漢字を扱えるようにしたTOSPICS-Lがあるだけである。私は、この見学で仮名漢字変換を使って、タイプライタのようにした「日本語ワードプロセッサ」に仕立て上げようと思い付いた。このことは、年が明けた1977年正月から書き始めた研究報告書の中で初めて言及された。まだ三人が三様の思いを持っていた時期である。この後、三人、いや、武田さんを入れた四人の思いが私のワープロ化によりJW−10に向かって一つのイメージに形成されていく。片袖の事務机の形をしたJW−10のイメージが出てくるのはまだまだ先である。この形は部品をどのように収めるかというハードグループの要請から生まれたものである。最初は両袖の案もあった。
1950年代の「少年」や「少年クラブ」を読んでいた人なら記憶があるのではないかと思うが、子供用のかたかなタイプライタの通信販売のページが毎号載っていたものである。確かCD程度の大きさの円盤に活字が載っていて、これをまわして、紙の上で叩いて印字するものであった。私はこれが欲しくて仕方なかったが、相当な値段が付いていたはずで、とても買ってもらえるようなものではなかった。第一、小学生には使い道がない。大学院に入ってすぐしたことは四条河原町の丸善に行き英文タイプライタを買うことであった。京大型カードも勿論忘れない。知的生産の技術の実践である。
さて、話を戻すと、この頃、河田さんは、相沢さんの論文を参考に大型機でFortranを用いて、まず、従来型の仮名漢字変換エンジンを試作していた。私は、ミニコン上での日本語環境の構築を急いでいた。なにしろ、研究室のミニコンというものは裸で、言ってみれば、MPUが載っているマザーボードがあるだけの状態に等しい。ハードもソフトも、一から作らなければならないのである。
河田さんが大型機上で仮名漢字変換のエンジン動かした。これは既に大学やNHKで先進導坑研究が終わっていたので方法は分かっていて、すぐできた。言語学的には形態素解析エンジンという。森さんはそれを見て、ミニコン上に移すように言う。これには2人して抵抗した。主記憶たった32KB、CPUサイクルタイム5マイクロ秒、(200KHz。因みに2000年現在、Pentium4は1.5GHzである。ちょっとしたPCなら、主記憶は最低でも128MB。HDDは40GB位は付いている)のミニコンでどうやって、仮名漢字変換のような複雑なソフトを動かすのか?それに、Fortranは使えない。もっとも私はアセンブラーの方が好きではあったのだが。
1976年。河田、天野の仮名漢字変換初出論文。掲載がワープロと逆順になってしまっているが、こちらが
1年早い。この時期は「序」に書いてあるように、まだ計算機への日本語入力の一手段としか考えていない。
河田さんが形態素解析を大型機からミニコンに移植、私がエディタ開発を担当して、ミニコンの上での最初の試作ソフトが動いた。現在のワープロと同じ形態の日本語ワードプロセッサが誕生したのであった。1976年早々の事である。
カナキーボードは、勿論、106カナキーボードなどある訳がない。私が設計して、アルプスと言う専業メーカに作ってもらった。一台30万円もした。これを2台試作した。漢字ディスプレーはソニーテクトロのもので、蓄積管といって、一度画面に書き込んだら部分書き換えが出来ない。消すときは一度、画面全体をフラッシュさせて全部消さなくてはならないディスプレイであった。それでも研究室レベルで使える最上のものである。解像度は覚えていないが、画像処理に使っていた位だから800x600以上はあっただろう(初期のIBM PC/ATは640x480である)。ただ描画が遅いのには閉口した。何しろ、一点を書くのに、x、y座標値を送らないといけない。輝度が何bitであったか覚えていないが、1点を光らせるだけに5、6byteのデータ転送が必要であった。漢字1字24x24点がポチポチと一点ずつ光って書かれていくのが見えるのである。画面全体で数時間かかったはずである。これでは使い物にならないので、画像処理グループの麻田さんが工夫してブラウン管の偏向部に手を加え、更にコントローラボードを作ってアナログ的に描画するようにした。保証外である。これをパラレルインタフェースと呼んだが、このお陰で、画面一面の表示が2、3秒でできるようになった。
その後、このエディタを使っての実験中に私が思いついて書いた特許が、同音語を一度選択したら、以後その同音語が最初に出てくるというものである。1977年の事である。この特許は極めて強力であった。「暫定辞書を用いた短期学習による同音語選択方式」というものである。一つには、これなしにはワープロは使う気がしないというものが言える。たとえば、「こうしょう」と入力してみよう。MS−IMEでは21個の漢字が出てくる。この内、「工廠」は17番目である。戦艦大和の開発物語を書いたとしたらきっと、「海軍工廠」が頻繁にでてくるだろう。そのたびに、16回も「次候補」あるいはスペースバーを叩くのは耐えられない。
一方、1976年早々のこの時期(出願が1976年4月なので、書き始めたのは75年暮れか、76年早々)、河田さんは辞書を扱っていたので辞書をユーザ向きに最適化することを思いついた。長期学習と呼んでいる。同じ「学習」という言葉を使っているので、私の短期学習と間違われる事がたまにあるが、方式も、発明の経緯も、時期もまったく異なっている。私の発明は私が試作エディタを完成し、大量に入力実験をし始めてから考え付いたものである。河田さんがこの長期学習の特許を書いた時期、私は言語学的な意味を持つ自動分かち書きの特許を書いた。これは学会発表の前に特許を書いておかなければならないという研究所の規則があり、二人でそれぞれの主要な技術を書こうということで同時期に書いたものである。仲良く、同じ日付で出願している。
長期学習の「ユーザ」というのは分野でもよい。総務課、人事課、経理課のように使う部署で同音語が異なるだろうという発想である。この実装には実は難しい問題があった。同音語が選ばれたらその辞書項目の頻度の欄の値に1を加えていく。長く使っていれば、良く使われる同音語の頻度が高くなるので、それを同音語の一位に持ってくれば選択の手間が省ける。
しかし、当時の16ビットコンピュータでは約65000までしか頻度を上げることができない。1語でも最大値に達した後は、どうするのだろうか?これが問題の一つであった。ほっておけば、最後には全ての語が最大値に達してしまい、意味がなくなる。頻度項目を32ビットにすれば約40億まで上げることができるので、一語あるいは数語がその値に達したところで最適化終了として以後は固定すれば良いだろうが、当時の貧弱な性能のコンピュータではそのような贅沢は事実上できなかった。そんなこんなで、すぐには実装されず、後日、名案の無いままに武田さんが実装したが、そんな訳で後続機でも、他社でも使われなかったと思う。