ELIZA(エリザ)とは? 初期チャットボットと自然言語処理の歴史
ELIZA(エリザ)の誕生からMITワイゼンバウムの手法、初期チャットボットと自然言語処理の進化を事例付きでわかりやすく解説。
ELIZAは、自然言語を処理できる初期のプログラムである。ELIZAは、スクリプトに対するユーザーの応答を処理することで動作していた。最も有名なスクリプトは「DOCTOR」と呼ばれるもので、ロジャー派の心理療法士(来談者中心療法)の会話を模したものだった。ELIZA自身は人間の思考や感情を理解しているわけではなく、あくまで入力に対するルールに基づいて反応しているにすぎない。しかし、DOCTORスクリプトは人間のように会話をすることもあり、実際に多くの利用者がELIZAに強い感情的反応を示したことで知られている。ELIZAは1964年から1966年にかけてMITでJoseph Weizenbaumによって作られた。
仕組み(簡単な技術的説明)
ELIZAは高度な理解や知識ベースを持っていたわけではない。基本はパターンマッチングとテンプレート置換によるルールベースの処理である。具体的には、ユーザーの入力文からキーワードを検出し、そのキーワードに対応する「分解ルール(decomposition)」で文を分割、続いて再構成ルール(reassembly)に従って応答文を生成する。単語の反転(例えば "I" → "you"、"my" → "your" など)や簡単な文の再構成を行うことで、会話らしい応答を返す仕組みだ。
例として、次のようなやり取りが典型的である:
- "My head hurts" に対して → "Why do you say your head hurts?"
- "My mother hates me" に対して → "Who else in your family hates you?"
これらはすべて事前に定義されたパターンと再構成テンプレートによるもので、ELIZA自体が痛みや家族関係を理解しているわけではない。
歴史的背景と反響
ELIZAが公開されると、多くの人がプログラムに対して深い感情的反応を示すことがあり、作者のワイゼンバウム自身も驚いたと伝えられている。使用者が機械に「打ち明ける」様子や、機械を人間のように扱う傾向は後に「ELIZA効果(ELIZA effect)」と呼ばれるようになった。ワイゼンバウムはその後、人工知能の限界や倫理的な問題について強い関心を示し、著書『Computer Power and Human Reason』(邦訳あり)などでコンピュータの役割と人間的判断の違いを論じている。
限界と意義
- 限界:ELIZAは意味理解や世界知識を持たないため、文脈の継続的理解や複雑な推論はできない。あくまで形式的な応答を生成するのみであり、誤解や矛盾も生じやすい。
- 意義:にもかかわらず、ELIZAは自然言語処理(NLP)と対話システムの研究に重要な刺激を与えた。ルールベースの対話設計、スクリプト管理、ユーザーとの対話で生まれる心理的効果の観察など、多くの教訓を残した。
その後の発展
ELIZAの影響を受け、1970年代以降も対話システムの研究は進み、より複雑な振る舞い(例:パリー(PARRY)――妄想性の患者を模したプログラムなど)が登場した。さらにルールベースから統計的手法、機械学習、そして近年の大規模言語モデル(LLM)へと技術は発展している。現代のチャットボットはELIZA時代の単純なパターンマッチングをはるかに超える能力を持つが、ユーザーが応答をどのように受け取るか、倫理的な問題、誤情報の拡散といった課題は依然として重要である。
まとめると、ELIZAは表面的には単純なプログラムだったが、人間と機械の対話に関する理解を大きく前進させ、現在のNLP・対話システム研究に対して強い影響を与えた歴史的なマイルストーンである。

EmacsでのELIZAの例。
実装内容
- Javaを使って、Weizenbaumが発表したプログラムの説明に忠実に基づいています。http://www.chayden.net/eliza/Eliza.html
- TI-83 Plusでz80アセンブリを使う: ticalc.org
- Trans-Tex Softwareが、Classic Mac OSとMac OS X用のシェアウェア版を公開しています。トランス・テックス・ソフトウェア
doctor.el(circa 1985) in Emacs lisp: http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/classics/eliza/emacs/0.html.- Tclでのソースコード: http://wiki.tcl.tk/9235
- BASICによるソースコード: http://www.atariarchives.org/bigcomputergames/showpage.php?page=22
関連ページ
- 20Q
- 人工知能
- チャターボット
- ローブナー賞
- チューリングテスト
質問と回答
Q: ELIZAとは何ですか?
A: ELIZAは、自然言語を処理することができる初期のプログラムです。
Q: ELIZAはどのように動作していたのですか?
A: ELIZAは、スクリプトに対するユーザーの応答を処理することで動作しました。
Q: ELIZAが使用した最も有名なスクリプトは何ですか?
A: ELIZAで最も有名なスクリプトはDOCTORと呼ばれるものです。
Q:DOCTORスクリプトとは何だったのか?
A: DOCTORスクリプトは、ロジャー派の心理療法士のシミュレーションでした。
Q: ELIZAは誰が、いつ作ったのですか?
A: ELIZAは1964年から1966年にかけてMITでJoseph Weizenbaumによって作られました。
Q: DOCTORは、スモールリストにない単語に対してどのように反応したのか?
A: DOCTORのスモールリストにない単語には、"Why do you say that?" や "Who else in your family hates you?" といった質問を返すことがあります。
Q: ELIZAはどのようにプログラムされたのですか?
A: ELIZAは単純なパターンマッチングの手法でプログラミングされました。
百科事典を検索する