竹形誠司 ブログ
談話室    »トピック一覧
掲示板へのスパムが多いため、「ご質問」のコーナーはユーザー登録制とさせていただきました。お手数ですが、上の「新規ユーザーの登録」メニューより登録をお願いします。
帳票Web
アプリケーション

受注開発始めました
詳しくは こちら
竹形 誠司 著/ラトルズ刊
JSP帳票アプリケーション実践開発入門
JSP帳票アプリケーション
実践開発入門

JSP業務アプリケーション短期開発入門
JSP業務アプリケーション
短期開発入門

Java+MySQL+Tomcatで始めるWebアプリケーション構築入門
Java+MySQL+Tomcatで始めるWebアプリケーション構築入門

Java+MySQL+Tomcatで作る掲示板とブログ
Java+MySQL+Tomcatで作る
掲示板とブログ
日本語を話す医者を求む
by KILROY[KILROY]
 かれこれ二十年間、抱えている宿題がある。

 たぶん一九八〇年代の前半の話である。島内剛一先生だったか戸川隼人先生だったかが、共立出版のコンピュータサイエンス誌『bit』の『ナノピコ教室』で「日本語を話す医者を求む」というテーマで出題をされた。つまり、「日本語版の "DOCTOR" を作れ」ということである。

  "DOCTOR" とは、対話プログラム(Chatting Program)の一種である。代表的なものはジョセフ・ワイゼンバウムが1966年に開発した ELIZA である。 Wikipedia (日本語)の ELIZA の項でも ELIZA と DOCTOR はごっちゃにされているが、  "DOCTOR" は対話プログラム(Chatting Program)、 ELIZA をベースに、ロジャース流の精神科医のカウンセリング技法を模した会話を行なうようにしたものである。つまり、単に「人間っぽい」だけでは足りず、「それらしい会話」が要求されるのである。
 なお、ELIZA に代表される対話プログラムは、一般に「チャットボット」(「ロボット」の語源がチェコ語の「労働」なので、ある程度実用性を意識している言葉のようです)とか(日本語版に関しては)「人工無脳」と呼ばれている。従来の「人工無脳」は、「日本語版」とはいっても通常「ローマ字表記&分かち書き」の文章しか受けつけない。また、 ELIZA にしろ DOCTOR にしろ、内部的にはレキシカルな(=表記のレベルの)処理しか行なっておらず、意味に踏み込んだ処理は全くといっていいほど行なっていない。したがって、「それらしい会話」といっても、それはあくまで一種の幻想(ファンタジー)である。

 だけど、私は「意味に踏み込んだ対話プログラム」、すなわち「自然言語インタフェースを持った知的情報処理システム」つーものを作っちゃおうかと思ったのね。もちろんそんなに頭のいいシステムができるワケではないので、とりあえず「人工無脳」を越えるもの、すなわち「人工痴能(Artificial Idiot)」あたりを狙ってみようと思ったわけです。

 その前段となるシステム、すなわち「べた書き・漢字かな混じり文による人工無脳」が、かつてニッポン放送の『ケラと犬子のオールナイト・ニッポン』のプログラムコンテストでグランプリを獲得した(つーてもロクな応募がなかった場合を想定して、「賞としての格好がつくようなシステムはないか?」つーんで参加のオファーが来たという、ほとんどヤラセみたいなもんだったが)「A-Idiot」だった。中身は Macintosh 用和英辞書引きユーティリティ「rStone-JE」の形態素解析システムに応答文生成部を付け足したもの。かなり本格的なプログラムではあったものの、その後の発展はまったくなかった。なぜかといえば、アメリカのアップル本社の業績が悪化していて、 Mac の暗黒時代に突入してしまったからである。 iMac およびそれに続く iPod の登場による Mac の奇跡の復活は、当時予想もされていなかった。零細プログラマとしては、趣味で開発を続けるほどの経済的余裕はなかったのである。

 だったら Windows に移植すりゃあいいようなものだが、それがダメだった。困ったことに辞書引き部分は Macintosh の ToolBox のリストマネージャ、可変長データを扱うための動的なメモリ管理は Mac OS にべったり依存していて、移植が困難。結果 Windows 上の C ではメモリ・リークやワイルド・ポインタといった危険要素があって、商用アプリケーションとしての品質が確保できそうになかったのである。さらに開発言語が C だから、マルチバイト処理を行なうコードの開発にやたらに手間がかかる。もちろん現在なら Java がある。 HashMap 等のコンテナクラスがあり、動的なメモリ管理が行なわれている。しかし、 Java が商用アプリケーションの開発環境として広く使われるようになったのはたかだか三年前の話だ。

 で、現在。商用の自然言語処理システムの世界はどうなっているかというと……なんにも変わってないやんけ、と思うわけです。変わったところといえば、マシンパワーの向上と低価格化で、中学生が使ってるようなノートブック型マシンでも実用的なシステムが組め、 Java 5.0 のおかげで商用使用に十分耐えるような安定したアプリケーションが楽に組め、インターネットの普及とブロードバンド回線の低価格化のおかげで何千万円もかけてパッケージ・ソフトウェアを開発しなくても Web アプリとして製品が作れ、 Tomcat や MySQL などのフリーのツールの安定性と使いやすさが向上したおかげでサイト構築が楽になって開発からサイト運営まで一人でやっても十分仕事が回るようになった点である。(-_^)b~*

 『日本ソフトウェア科学会』のニューズレターで「自然言語処理の世界に王道楽土を築こうではないか」とアジ演説をぶち挙げてから二十余年、ようやく宿題に取り掛かれそうな状態になった。五月上旬には自前のサイトも立ちあがる予定である(今月中に回線の工事が終わる予定なので、コンテンツの準備中です)。

 つーわけで、自然言語処理に必要な国文法とその位置づけ(松下文法との関連など)、文字列データの扱いの各種の方法(Java の String の利点と欠点について)、高速な辞書引きアルゴリズムの実現方法(トリプル配列によるディジタル辞書)、意味表現の各種手法とその統合(外延主義の意味論/カタストロフィ理論による動詞の分類/プロダクション・システムと意味フレーム/モンタギュー文法)、実用的な日本語処理システムの構築とかいった話題を、今後どどぉーっと展開してしまおうと思っています。

 でまあ、「コンピュータとネット上の旬な話題について日本語であれこれ雑談できる」というシステムの構築の現実性について明らかにし、「日本語による汎用の自然言語インタフェースの構築と、サイト検索システムとの統合」とかいったテーマで未踏ソフトウェア創造事業の予算を獲得し、沖縄科学技術研究基盤整備機構と共同研究とかいった話も夢ではないっ!

 形態素解析レベルでは、自動点訳システムだって Web ページの自動ルビ振りシステムだって動いています。あらゆる日常的文章の日本語文に幅広く対応する、形態素解析の実環境でのタフさ加減は rStone-JE  で実証済みです。辞書だって地名・人名を除いて一万語以上、それもテキストからの自動語彙抽出に使える、実テキストから抽出したカバレッジ重視の語彙セットという堂々の布陣です。何つったって過去にはアスキーや Apple Computer Japan とだって共同研究を行なっていた実績もあります(アスキーの分裂騒動やアップル本社の業績悪化やバブル崩壊がなければ、そして突発性拡張型心筋症で倒れて六年余も半分寝たきりの廃人生活を強いられていなければ、とつくづく思います。そう、意味表現だって苫米地○人なんぞにいつまでも大きな顔をさせておくことはない(すっげー内輪ネタだな)。

 「真の日本語チャットボットの実現」。一丁やりませんか竹形さん。
投稿:KILROY[KILROY]/2007年 04月 21日 22時 06分 /更新:2007年 04月 21日 22時 07分
RE:日本語を話す医者を求む
by 竹形 誠司[takegata]
やりますとも!。

JAI-PARSERの件でKILROYさんにメールして、チャットボットを作りたいという話をしたのは3年ほど前でしたね。それから自然言語処理を勉強するために2年間大学院へ通いました。そこで分かったことは、今の自然言語処理業界は大量の文書を統計的に処理する手法が幅を利かせていて、チャットボットのような根源的な研究はほとんど顧みられていないということです。人工知能の業界でもミンスキーは変人扱いですし、90年代に失敗の烙印を押されたトラウマから脱却できていない感じですね。

今はメモリ、CPU、ハードディスク、ネットワークなど使えるリソースが当時とは文字通り桁が違いますから、「計算量の爆発」と言われていた問題もかなり小さくなっているはずですし、探索などはハードウェアでロジックを組めばかなり高速になるようです。今こそ再チャレンジの時ですね。考えようによっては、KILROYさんはちょうど良いときに冬眠されていたのではないでしょうか。

ともあれ、自然言語業界にしろ、人工知能業界にしろ、チャットボットをやろうとすれば、しばらくは逆風の中を進まなければならなりませんから、仲間を増やしたいですね。6月に宮崎で人工知能学会の全国大会がありますけど、行ってみませんか?
投稿:竹形 誠司[takegata]/2007年 04月 22日 00時 00分 /更新:2007年 04月 22日 00時 00分
Re^2:日本語を話す医者を求む
by KILROY[KILROY]
 えー、どうでもいいことですが、「花式(花の構造を表わす化学式のようなもの)」について検索していたら、2004年の未踏ソフトウェアのテーマに行き当たり、そこに『bit』にしばしば文章を書いていらした方でもあり、同時に『私はこんな本を読んでプログラミングを勉強した』で紹介したクヌス先生の本の訳者の一人である筧捷彦先生のお名前を発見しました。
 筧先生は、たしか立教大学の島内剛一先生のお弟子さんで、早稲田大学の筧研究室には一度お邪魔したことがあります(『bit』のバックナンバーが全部揃っていたのを見て「やったぜ」と思ったのと、同じ廊下の並びにアンチ・フローチャートの急先鋒である二村先生の研究室があったのを覚えています)。学生さんが「組合せの数」の評価(どのくらいの数になるか)についてあーだこーだ議論していたので、「スターリング公式使えばいいんじゃね?」みたいな話をしたら、「そうじゃなくって、公式使わないで証明したいんだけど……」とかいったツッコミを先生に入れられ、『ナノピコ教室』の解答にあった入山のアルゴリズムみたいに数論的に云々とか森口繁一先生の『数値計算夜話』に似たような話があって云々とかいった話でしばし盛り上がった記憶があります。後で学生さんに「どちらの大学ですか?」と訊かれて「市井のプログラマです」と胸を張って答えたのを覚えています。日本電気で航空自衛隊のバッジシステムの品質管理関係の仕事をしていたので、そのあたりは勉強していました。「研究」よりも「開発」のほうが強い部分は確かにあります。
 ちなみに筧先生、学会などで自己紹介するときに「『か・け・ひ』です」と強調されていらっしゃいました(「かけい」と読むのはNGだそうです)。で、困ったことに「日本ソフトウェア科学会」には中島玲二(なかじま・れいじ)先生と中島秀之(なかしま・ひでゆき)先生がいらっしゃって、ガンダム・ファンの中島(秀之)先生(「僕はイギリスに留学していて見逃したので、『宇宙戦艦ヤマト』の第一回放映組にはコンプレックスがあるんだ!」とか仰っていました)も、自己紹介するときに「『な・か・し・ま』です」と強調するのが常でした。学会の総会の懇親会の席で、ある方に「アレってこの学会の習慣なんですか?」と質問されて苦笑したことが記憶にあります。

 ……思いっきりローカルネタでした。ごめんなさい。
投稿:KILROY[KILROY]/2007年 04月 22日 23時 26分 /更新:2007年 04月 22日 23時 33分
RE^2:日本語を話す医者を求む(おまけ)
by KILROY[KILROY]
> 「花式(花の構造を表わす化学式のようなもの)」について検索していたら、
 私が開発した汎用の自然言語処理システムを、お能の楽譜に相当する『唱歌(しょうが)』を楽譜に変換するシステムとか花式を解析するのに使えないかとかいろいろ考えていたことがあり、それで思いついて検索してみて発見しました。そーか 2004 年に似たようなことをやろうとした奴がいるのか、と思って感無量。筧研究室にお邪魔したのは、「パスパ文学の比較」と「能の作者推定」についての話をするので伺いました。

 なお、なんで「花式」について検索したのかというと、「破瓜」の語源(「破瓜」の「瓜」というのは「野木瓜」、つまり日本でいうアケビのことではないだろうか、と思ったのが発端)について検索してたついでだったりするのだな。(^_^!)

 進めエロス、退けマルス(←読み筋は映画『スパルタカス』)。Do'nt War, Make Love!(←読み筋はフラワー・ムーブメント。映画『ヘアー』等参照)
投稿:KILROY[KILROY]/2007年 04月 22日 23時 44分 /更新:2007年 04月 22日 23時 46分
瓜に爪あり爪に爪なし
by KILROY[KILROY]
> なんで「花式」について検索したのかというと、「破瓜」の語源(「破瓜」の「瓜」というのは「野木瓜」、つまり日本でいうアケビのことではないだろうか、と思ったのが発端)について検索してたついでだったりするのだな。(^_^!)
 辞書を見ると「破瓜」には女子の十六歳/男子の六十四歳の意味があって、理由は「‘瓜’という字を二つに割ると‘八’が二つできるから」だそうなのだが……なあ、それって‘爪’と間違えてねぇか?とかれこれ三十年くらい考えていて、今回は日本語処理への復帰に備えてリハビリを兼ねて再チャレンジでございました。楷書より古い字体も含めてとかいろいろ調べてみたのだけれど、どう考えても「八二つ」にはならんわけです。ひょっとしたら「破爪」の誤記か?とも思ったけどそれもヘン。「瓜切」「瓜剖」「及瓜」とかいった瓜に関係のある単語を端からチェックしたけれど、それらしい語義に当たりません。しかも日本語処理をやってるもんだから関連書籍が半端でなく存在するのが痛し痒し。(T_T)

 ……で、最期に行き当たったのが、「八」と「鉢」が同音だというところでした。漢音「ハチ」、呉音「ハツ」、四声は入声。

 結論。「瓜を二つに割る(切る)と、鉢(八)が二つできる」という洒落なんですな、これが。(-_-;) 藤本裕之が「コンピュータ関連書籍の翻訳をやってて、どうしても意味が分からなくて散々悩んだ挙句、その部分がジョークだと分ったときのガックリ感」について語っていたのを思い出しました。ちなみに辞書によれば、「鉢」とは「皿より深く壷より浅い器」だそうです。ごもっとも。
投稿:KILROY[KILROY]/2007年 04月 24日 08時 37分 /更新:2007年 04月 24日 08時 37分