95

人工知能授業における人工無能作成
峯脇 さやか＊Chatterbot Creation in the Class of Artificial
Intelligence
Sayaka Minewaki＊
Abstract
The author is taking charge of the class of artificial intelligence (I5, 2 credits). In this class, chatterbot
which is a conversation program without intelligence is created. In order to make chatterbot, the technology ofnatural language processing, speech processing, and knowledge representation is required. This paper describes
the system configuration and processing process of chatterbot which were created last year. Chatterbot
experience was performed as one of the events of an open college this year. The result of the questionnaire ofthis experience to participants is shown.

１．はじめに筆者は，情報工学科５年における人工知能（２単位）の授業を担当している．文献［1］では人工知能の定義を，「人工知能は，人間の知能を生み出している諸機能をコンピュータ上に実現することを目的として生まれた学問である」としており，人工知能の研究テーマは多岐にわたる．図1に人工知能の研究テーマを示す．図1にあるようなテーマの全てを，１年間で講義（座学形式）を行っても，面白みに欠け，授業に対して高いモチベーションを期待することもできず， 心に残った授業 とは縁遠いものになってしまう．よって，筆者は，『人工無能』を作成することで，人工知能の一部の研究テーマについて学ぶことを目標とした演習形式の授業を行っている．ここで，人工無能とは，知能を持たない会話プログラムであり，様々な人工知能の研究テーマによって作られるものである．
本稿では，昨年の授業で作成した人工無能について述べる．また，今年度のオープンカレッジにおける情報工学科の催しで，人工無能体験を行ったので，参加者の感想について紹介する．
２．人工無能２．１ 人工無能の概要［2］人工無能（人工無脳）とは，自然言語を用いてコンピュータが人間と会話するシステム（会話プログ＊情報工学科探索 知識表現 推論 機械学習 認知モデリング
哲学的基礎 ニューラルネットワーク 進化的計算
人工生命 免疫システム 問題解決 プランニング
スケジューリング モデリング 設計 診断
自然言語処理 画像処理 音声処理 感性処理
バーチャルリアリティ データマイニング
テキストマイニング マルチメディアデータマイニング
ユーザモデリング 知的インタラクション
ヒューマンインターフェース 知的エージェント
マルチエージェント 分散人工知能
エキスパートシステム ロボティクス ゲーム
e-ラーニング Webインテリジェンス
セマンティックWeb オントロジー 情報検索

図1

人工知能の研究テーマラム）である．人工無能という言葉は，比較的新しい言葉で，最近では，人工無脳という表記もされている．多くの人工無能は，人間がキーボードから入力した内容について，何らかの応答文を出力するものである．現在では，うずら1，ししゃも2，ロイディ3など様々なものが存在する．
人工無能の発展形に対話システム研究がある．
1966年のELIZAや1972年のSHRDLUに始まり，現在
では，音声で対話を行う音声対話システムや人間の体の動作など言語以外の情報も認識するマルチモーダル対話システムの研究が盛んに行われている．さらに，対話システムを搭載したロボットの開発も行われている．
1 http://www.din.or.jp/˜ohzaki/uzura.htm
2 http://yowaken.dip.jp/sixamo/
3 http://www.rogiken.org/SSB/reudy.html

平成20年９月30日受理

96

弓削商船高等専門学校 紀要 第31（平成21年）

２．２ 人工無能作成に必要な人工知能の要素技術
人工無能を作成するには，いくつかの人工知能の要素技術が必要である．ここでは，授業で解説した
人工知能の要素技術［2］［3］について述べる．
２．２．１ テキスト処理
テキスト処理とは，文章を文字の並びで扱い，その特徴を抽出したり，新たな文字列を生成するための技術である．授業では，n-gramおよびマルコフ連鎖について解説した．また，演習では，配布プログラムを用いて，n-gram解析や２-gramの遷移確率計算を行った．さらに，２文字のマルコフ連鎖による文生成に関するレポート課題を与えた．

ース，さらに，文献［2］における人工無能の応答方法について解説した．
２．３ システム構成
図2に一般的な対話システム構成を示す．この構成は，人工無能にも共通する．一般的な処理過程では，まず，入力内容を入力理解部で解析し，対話管理部で，データベースを参照しながら入力に対する応答内容を推論する．データベースには，入力解析や応答生成のための辞書や言語モデル，応答内容選択のための辞書などが存在する．そして，応答生成部で応答文を生成し出力する．対話システムで最も多く使用されているインターフェースは，キーボードやディスプレイである．これは，自然言語による対話を前提としたものである．近年，盛んに研究が行われている音声対話システムや，マルチモーダル
対話システムでは，音声入力のためのマイクや目線や表情の認識のためのカメラ，身体動作認識のための装着型装置などのインターフェースが使用されている．
授業で作成した人工無能は，入力はキーボードによる文字入力であり，出力は，文字および音声出力である．

２．２．２ 自然言語処理
自然言語とは，日本語や英語など人間が普段使っている言葉である．自然言語処理とは，自然言語をコンピュータで処理しようという研究である．身近な自然言語処理技術として，仮名漢字変換，情報検索，機械翻訳がある．人工知能と同様に，自然言語処理の研究テーマも広い．授業では，形態素解析，構文解析（係り受け解析），言語モデル，書き換え規則および統計的アプローチによる文生成について解説した．また，演習では，Web上に公開されてい２．４ 処理過程
る係り受け解析器CaboCha 4を使用して，自然言語文献［2］における人工無能の応答方法を以下に示文の係り受け解析行ったり，配布プログラムを用いす．（1）〜（6）の順に，より 知的な 応答をする．て文生成実験を行った．さらに，統計的アプローチ（1）定型的な応答のみを出力する．
による文生成に関するレポート課題を与えた．
常に同じ応答を繰り返すだけのものである．
（2）文字のマルコフ連鎖に基づいて応答文を生成する．
２．２．３ 音声処理
文字単位のマルコフ連鎖で応答文を生成するもの
このテーマにおける授業では，標本化および量子である．この方法では，あらかじめ，文字の連鎖の化，フーリエ変換，音声認識の原理，音声合成につ確率をシステムに与えていなければならない．正しいて解説した．また，演習では，Windowsサウンドレコーダーを使用した音声の録音と，配布プログラムを用いた音声合成実験を行った．
୰ั２．２．４ 知識表現
言語や対象世界に関する知識を，何らかの形で表現する方法には様々なものがある．このテーマの授業では，意味ネットワーク，フレーム，スクリプト，プロダクションルール（if-thenルール）について解説を行い，プロダクションシステムに関するレポート課題を与えた．
２．２．５ 対話システム
対話システムとは，人間とコンピュータが対話を行うシステムであり，人工無能の発展形である．授業では，対話システムの基本的構成やインターフェ
4 http://chasen.org/˜taku/software/cabocha/୰ักЌಀ৊຃ҟกಀǪ»ǢǼ»ǜκ଎ࣶ࣬ಀߴั
図2

対話システムの構成

97

人工知能授業における人工無能作成（峯脇）い単語（形態素）が生成されることが少なく，文法的に成り立つ文が生成されることも非常に少ない．
（3）形態素のマルコフ連鎖に基づいて応答文を生成する．
形態素単位のマルコフ連鎖で応答文を生成するものである．この方法では，言語モデル（形態素連鎖の確率）をあらかじめシステムに与えておく必要がある．文法的・意味的に成り立つ文が生成されるかどうかは，言語モデルに依存する．
（4）プロダクションルールにより応答文を生成する．
あらかじめ作成したプロダクションルール（ifthenルール）に従って，応答文を出力するものである．すなわち，入力文中にルールの前件部がマッチした場合，後件部を応答として出力する．プロダク
ションルールにある応答文は，あらかじめ人間が作成しているため，文法的・意味的に全く問題はない．
ルールに従って入力文に対応した応答を出力するため，会話らしい応答を行うことが可能である．
（5）形態素のマルコフ連鎖を暗記学習し，応答文を生成する．
（3）に暗記学習を追加したものである．暗記学習
では，人間の入力を解析し，言語モデルを更新する．
（3）では，あらかじめ与えられた言語モデルにある形態素でしか応答文が生成できなかったが，暗記学習では，語彙を増やすことにより，より多くの対話を行うに従って，新しい語彙，新しい応答文を生成できる．
（6）文脈を意識した応答文を生成する．
文脈（話の流れ）を保存するために，数回前までの応答文を応答生成の解析対象としたものである．
ここで，対話システム研究者からしてみれば，（6）の方法で文脈が保存できたとはとても言えない．対話システム開発において，最も難しいテーマが文脈処理である．一貫した話の流れで対話を行うには，文脈の範囲を限定し，様々な要素を定式化しなければならないだろう．また，突然話題が変わっても，それに耐えうるシステムでなければならない．現在の対話システムの多くがタスク依存型であるのは，開発のしやすさが主な理由である．あらかじめタスク（話題）を決めておくと，文脈の範囲が限定され，開発がしやすい．
授業で作成した人工無能は，（4）による応答方法を採用している．図3に処理過程を示す．図3における応答文候補抽出では，応答辞書から応答文候補を抽出する．応答辞書は，キーワードと応答文をTSV形式（タブ区切り）のテキストファイルで保存したものである．応答辞書の内容の一部を表1に示す．
抽出される応答文候補は，対応するキーワードが入力文中に含まれるものである．例えば，入力文「広島観光したい」の場合，「広島」および「観光」の୰ัಢκ଎ಢ‫ك‬೎ੂߴκ଎‫ࠕݳ‬κ଎ಢ 1κ଎ಢ‫ك‬೎κ଎ಢॆ৬κ଎ಢ¥ϕࣺߴั
図3

人工無能の処理過程

表1

応答辞書の内容の一部

ǐ»Ȓ»Ǭ κ଎ಢƃǃƛƑƟ źŶ¡ƃǃƛƑƟ¢ƃǃƛƑƿ źŶ¡ƃǃƛƑƟ¢ٙૻٙૻƛƔŴƖϙżਦƺƏŴǃ¨ҧ‫م‬ٙૻƗҧ‫م‬ƉƻƚƹԐૻƘŻ͖ૻżŸŸƸ¢૕଑૕଑ƓƖ؎ƓƏƹ¡̭‫ع‬ƘŻ఺ƘŻƈƳƝŷ¢̭‫ع‬ത͖೿ߌ‫܀‬ƞఘż͖ૻƞШͶƛŲƻƸ¢఺఺ƓƖ؎ƓƏƹ¡֗ඔ఺żන൤Ɨ¢ٙૻƞ×ҧ‫م‬Ø¡×ࢉƩಔØ
¡×૕଑Ø
¡×‫׍‬஍ØƛƔŴƖ຃ƍŶƴ¢ǐ»Ȓ»ǬżƚŴƿ¢

表2

音声ファイルリストの内容の一部
౉ӡǸǄǇȎ൤

Ų

a.wav

Ŵ

i.wav

Ŷ

u.wav

Ÿ

e.wav

ź

o.wav

ࣅ֣࡭

suigunjou.wav

ŶƮŴ

umai.wavԐૻ

miyajima.wav

98

弓削商船高等専門学校 紀要 第31（平成21年）

性格，特徴を考える．また，性格を表す言語表現である役割語についても考える．
（2）配布プログラムのカスタマイズ
ni.wav
ƛ
授業で作成する人工無能プログラムは，学生が初めから作成するものではなく，筆者があらかじめ作tuite.wav
ƔŴƖ成したものをカスタマイズする．配布プログラムはJavaで記述されている．主にカスタマイズする部分
nani.wavϙは，対話の主導権を人工無能と人間のどちらにするかである．この作業は，eclipseを使用してJavaプロ
ga.wavż
グラミングを行った．
（3）応答辞書作成
shiritai.wavਦƺƏŴ
表1にあるようなキーワードと応答文のペアを作成する．辞書の規模が大きく，また，豊富な内容でn.wavǃ
あれば，クオリティの高い人工無能が期待できる．
図4 最長一致法による音声ファイル選択（4）音声録音
応答を音声で出力するための音声ファイルを作成
キーワードが含まれるため，「広島について何が知する．録音に使用したマイクは，サンワサプライりたいん？」および「広島で観光するなら宮島とかノイズ防止ヘッドセットMM-HS08である．録音は，因島がええよ。」が応答文候補として抽出される． Windowsサウンドレコーダーを使用した．このとき，ここで，入力文中にキーワードがない場合を考慮しサンプリング周波数は8[kHz]，量子化ビット数はて，空文字列（長さ０の文字列）をキーワードとし8[bit]，チャンネルはモノラルを指定した5．録音すて登録しておく．例えば，入力文「尾道に行きたい」 る音声は， あ 〜 ん の107音と，応答辞書でよの場合，「広島の『観光』、『食べ物』、『伝統』、『芸く使われる単語や文とした．録音した音声は，有音能』について話そうや。」および「キーワードがな区間の前後にある無音区間の除去を行う．
いわ。
」が応答文候補として抽出される．
抽出された応答文候補の中からランダムに1つ選
３ オープンカレッジにおける人工無能体験択し，これを応答文として出力する．応答文のディスプレイ表示と同時に，音声出力も行う．出力され今年度のオープンカレッジにおいて，情報工学科る音声は，あらかじめ録音されており，自然言語表の催しの１つとして人工無能体験を行った．参加者
記と対応する音声ファイル名をTSV形式のテキストは，２日間で53名であった．この催しでは，まず，ファイルに登録されている．音声ファイルリストの人工無能について簡単に紹介した後，実際に昨年度内容の一部を表2に示す．応答文の自然言語から音の作品を使ってもらった．最後に，人工無能体験に声への変換では，最長一致法を使用する．すなわち， 関するアンケートを実施した．オープンキャンパス
応答文の先頭から解析を行い，音声ファイルリストで紹介した人工無能の実行例を図5に示す．また，にある最も長い表記に対応する音声ファイルを選択
アンケート結果の一部を図6に示す．アンケート結する．例えば，応答文「広島について何が知りたい果にもあるように，参加者には楽しんでいただけたん」の場合，図4で示すように，hiroshima.wav， ように感じた．
ni.wav，tuite.wavの順で音声ファイルを再生する．
４ おわりに
２．５ 人工無能作成における作業
人工無能は，３〜７名で構成されるグループで作
本稿では，昨年度の情報工学科5年の人工知能授成した．各グループ内でグループリーダーと作業担当
業で作成した人工無能について，関連する人工知能を決め，グループリーダーが中心となって，作業を進の要素技術とともに，人工無能のシステム構成や処めた．各時間において，授業開始時に，作業目標を立理過程について述べた．また，今年度のオープンカて，授業終了時に，その時間の作業の成果と反省を記
レッジにおける人工無能体験に関する参加者のアン述した報告書の提出を義務付けた．授業で指示した人ケート結果を紹介した．
工無能作成のための作業について以下に示す．いずれ
5 この設定が，最もファイルサイズを抑えることができの作業においても，Windows上で行った．
る．一般的に，サンプリング周波数や量子化ビット数の（1）人工無能の設計
値が大きいほうが，音質は良いが，音声出力の場合，こ人工無能作成にあたり，まず，人工無能の名前， の設定でも十分聞くに堪えうる．

ٙૻhiroshima.wav

人工知能授業における人工無能作成（峯脇）

参考文献［1］荒屋 真二：人工知能概論（第２版），共立出版（1992）［2］小高 知宏：始めてのAIプログラミング，オーム社（2006）99［3］峯脇 さやか：人工知能講義資料，
http://www.yuge.ac.jp/home/˜minewaki/teaching/
I5̲AI/［4］金水 敏：ヴァーチャル日本語 役割後の謎，岩波書店（2003）

どの人工無能と会話しますか？番号を入力してください．
［1］リー大島（性格：外国かぶれ，陽気）［2］ペプシちゃん（性格：優しい）［3］白滝さん（性格：広島をこよなく愛している，基本的に気分屋）［4］ひきこもりニート君（性格：なげやり，無愛想，ネガティブ）［0］会話しないで終了する．
>3
あなたの名前を入力してください． > user--- 白滝さんとの対話開始 --白滝さん > 広島について何が知りたいん？
user > 食べ物は何がおいしい？
白滝さん > 広島の食べ物って言ったら、八朔とかもみじ饅頭とかお好み焼きがあるねぇ。
user > もみじ饅頭おいしいね．
白滝さん > こしあん、つぶあん、抹茶あん、カスタード、チーズ、チョコとかあるけど、やっぱこしあんがおいしいよ。
user > 私もこしあんがいい．
白滝さん > キーワードがないわ。
user > アンガールズどう？
白滝さん > 二人組みのお笑いコンビよ。因島にも来たことあるんで。
user > バイバイ
白滝さん > おう、じゃあの。
図5

人工無能実行例--- Wed Aug 6 10:32:25 2008
めちゃ面白かッた！
家でもこういうん作れたらなー思いました！
だよねーゎウケウケです♪^＾
ひきこもりニート君早く出れるといぃな☆★
外の世界も楽しいもんです＄--- Wed Aug 6 10:33:28 2008
自分の言ったことに反応してきてくれるので、本当に誰かと話してるみたいで面白かったです。私もさまざまな対応ができる、やってて飽きないものを作ってみたくなりました。
--- Wed Aug 6 11:14:41 2008
前来たときより分かりやすかったし楽しかったです--- Wed Aug 6 11:15:37 2008
すごくおもしろかった。ちゃんとキーワードもあってやりやすかった。なにより声がでるのがすごかった。
--- Wed Aug 6 11:15:40 2008
とても面白かった。
自分でも作ってみたいと思った。
（＾−＾）笑--- Wed Aug 6 11:15:41 2008
けっこう面白かったと思います。
よくできてるなぁと思いました。
--- Wed Aug 6 11:15:42 2008
なかなかよかったと思いますよ。
欲を言えば、キーワードの組み合わせで言葉を変えるようにしたらいいかも・・・--- Wed Aug 6 11:16:07 2008
会話をもっと楽しみたかった。受け応えが少しものたりなっかった。
--- Wed Aug 6 11:46:41 2008「すごいなあ」と思いました。僕もああゆうのを作ってみたいです。
--- Wed Aug 6 11:47:13 2008
自分であんなことができたらいいだろうなぁとおもった。
図6

人工無能体験に関するアンケート結果