<TOP>

プログラムと会話(チューリップ(人工無能)

目次

●成長記録

・チューリップ(人工無能)とは
  ・使い方
  
・チューリップ(人工無脳)の歴史

●実装できていない理論(関連研究)
・チューリングテストとは
  ・ELIZA
・人工無脳(能)とは
・形態素解析
・知識の表現
  ・辞書
  
・関連検索ワードネットワークを作成するページ
・文の理解
・返事・回答

●リンク・参考文献

 


チューリップ(人工無能)とは

とりあえず、使い方を読んでリンクをたどってみてください。

コンピュータ(プログラム)と対話するページです。皆様が入力した言葉に対して、相づちなどをうったり、質問したりします。腹が立つようなこともあるかもしれませんが大人の対応をお願いします。

 

【使い方】

【通常の使い方】

1.JAVAスクリプトが正常に動作していたらカーソルが赤枠にあります。
  カーソルがなければ、マウスで文字入力ができるようにしてください。

2.文章を入力します。

3.「Enter」キーを押します。
  または「書き込み」ボタンを押します。

4.1にもどります。

【ハンドル名(名前)を変更する方法】
1.「初期化」のボタンを押します。

 

【環境】

【ブラウザ】
Microsoft Internet Explorer Ver6
Mozilla Firefox バージョン1.0

注)
JAVAスクリプトとクッキーが使える環境にしておきます。
ネスケは一部動作がおかしいらしいです。


チューリップ(人工無脳)の歴史

 で、人工無脳に興味をもって作り出したのですが・・・・。
 まだまだ先は遠い。

2004年?月 スタート!

 当時は「人工無能 なんで」でした。今もパス名がそのまんまになっています。
 発言があれば、「なんで」としか発言しなかったからです。

 

20051

某掲示板の評価コーナで、評価を依頼して書き込んでもらいだしました。

【コメントとしてあったこと】

・何を評価すればいいのか説明がない。
・会話のログをみせないほうがいいのでは?
・会話とあわせたイラストをだしては?
・ある文を入力すると動作がおかしい。

 

2005220

再訪問の時にハンドル名の入力を省略するため。クッキーを使用するようにしました。

 

20052

某掲示板に案内文を載せたんですが、あんまり効果がなーい。

 

20053月 

RSSファイルの機能(停止しています)
2005/03/28
 占い機能

 

20055

 一定の時間に発話者が入力しなかった場合に自動で人工無能が発話する機能

 

200577

・過去の会話を蒸し返す機能を追加しました。
・自動更新の時間を任意に変更できるようにしました。

「過去の会話を蒸し返す機能」、というのは・・・

 過去に話されことをそのまんま聞き返す機能です。マルコフモデルでは現在のところございません。
 ログでいいますと・・・

 クッキー : 以前ね「何?」と話してたけど、もう少し詳しく教えて!
  :
  :
 さくら   : 何?
 クッキー : でもね
 さくら   : 僕も
 クッキー : 金が欲しー

 

200594

入力画面会話記録画面の分離など

 (初期化ボタンなどがうまく動作しないことがあります。原因調査中!)

 

2006330

HttpCookieSessionのどっちも使っていましたが、HttpCookieのみを使うようにしました。
・辞書の中身を追加しました。

 

200667

 http://exp018.dataweb.ne.jp/statistics1/WebForm1.aspxのページで
集計結果を閲覧できるようにしました。

 

2006625

MSAgentが動作するようにしました。
http://www2s.biglobe.ne.jp/~yukio_s/sunday/agent060303.htmも参考にしてください。

 

2006629

MSAgentが動作するようにしました。ただし、デフォルトでは使用しないに変更しました。MSAgentが利用できる場合は、人工無脳の上段にある<設定>を選択して、MSAgenを使用にチェックを入れてください。エラーがでる時は、チェックをはずしてみてください。

また、MSAgentに関することは
http://www2s.biglobe.ne.jp/~yukio_s/sunday/agent060303.htmを参考にしてください。

2008727

 http://yurei.iobb.net/nannde/nannde.aspx

2011年7月3日

 http://yurei.iobb.net/のアドレスなのですが、
 http://www.iobb.net/にあるサービスを利用していたのですが、2010年の夏に家で利用していたルーターが破損しまして、実験をしていない状態となりました。

 デバッグする時に「 Windows 統合認証が無効」が発生して、http://msdn.microsoft.com/ja-jp/library/x8a5axew.aspxを参考にして格闘しているのですが・・・。

 

チューリングテストとは

 イギリスの学者、チューリング氏が考えたテスト。
 以下のようなテストをして、「コンピュータは知能がある」と判断するテストです。

準備

 人間とコンピュータを壁の向こうに待機またはおきます。
 壁の反対に、なにも知らない被験者を配置します。
 被験者は、人間またはコンピュータに質問します。

実験後

 被験者が質問などをした後で、被験者がどちらが人間か分からない。

結論

 コンピュータは知能があるとします。

 


ELIZA

 チューリングテストに合格したプログラム。

 


人工無脳(能)とは

 ELIZAは、ある形式に対してパターンで答えていたらしい。このようなのをある日本人が人工無能とよんだらしい。

 


形態素解析

 文から単語を作る作業。茶筌などが有名。
 どう作ればいいのかさっぱり分からないので、正直なとこ茶筌を使いたい気分です。
 容量の問題から使用していません。

 文章を入力する時に、「私は仕組みが理解できないです。」という文章を「私 は 仕組み 〜」というように英語みたくスペースを空けて欲しいとして欲しいと感じてしまいます。

 とりあえず「は、が〜」を「Replace」で「?」におきかえてとか思ってます。 
 そんでもって、「〜の意味を教えてちょ!」と返事するのが精一杯。

 

辞書

人工無能が発する言葉を集めたデータベースには、

1.文章
2.単語
 ?
 マルコフ
 連想
3.そのた?

というものがあるように思われます。


辞書つくり

チューリップ(人工無能)には組み込んでいない辞書です。というよりここからどうすればいいのかよくわからない。もしかして考え方が間違っているのかな? 将来、組み込みたいのですが・・・。

 

テーブルの作成

dictionary.mdbのファイルに以下のテーブルを作成します。

【テーブル:T_Work2】

フィールド名

データ型

番号

オートナンバー

文節

テキスト(255バイト)

表1

【テーブル:T_Work2のデータの例】

番号

文節

マルコフモデル

辞書

表2

【テーブル:T_Markov】

フィールド名

データ型

ID

オートナンバー

テキスト(255バイト)

テキスト(255バイト)

テキスト(255バイト)

表3

dictionary.udlのファイルの中身】

[oledb]
; Everything after this line is an OLE DB initstring
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\dictionary.mdb;Persist Security Info=False

 

【変換プログラム C#コンソールアプリケーション】

using System;
using System.Data.OleDb;

namespace ConsoleApplication6

{
    /// <summary>
    /// Class1
の概要の説明です。
    /// </summary>
    class Class1
    {
        /// <summary>
        ///
アプリケーションのメイン エントリ ポイントです。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            string setteiS="";
            string setteiI="";
            string word1="";
            string word2="";
            string word3="";
            if(setteiS == "")
            {
                setteiS="File Name='d:\\dictionary.udl'";
            }
            if(setteiI == "")
            {
                setteiI="File Name='d:\\dictionary.udl'";
            }
 
            OleDbConnection ConnectionS = new OleDbConnection(setteiS);
            OleDbConnection ConnectionI = new OleDbConnection(setteiI);
            string SelectQuery  ="select
番号,文節 from T_Work2 order by 番号 asc";
            OleDbCommand CommandSelect  = new OleDbCommand(SelectQuery,ConnectionS);
            ConnectionS.Open();
            OleDbDataReader ReaderSelect= CommandSelect.ExecuteReader();
            string InsertQuery  = "INSERT INTO T_Markov (1,2,3) Values('" + word1 + "','" +
                   word2+ "','"+word3+ "')";
            
            while(ReaderSelect.Read())
            {
                word3=ReaderSelect.GetString(1);
                System.Console.WriteLine(word1);
                //try
                //{
                    ConnectionI.Open();
                    InsertQuery = "INSERT INTO T_Markov (1,2,3) Values('" + word1 + "','" + word2+                                       "','"+word3+ "')";               
                    OleDbCommand Command    = new OleDbCommand(InsertQuery,ConnectionI);
                    Command.Connection = ConnectionI;                   
                    Command.ExecuteNonQuery();
                    ConnectionI.Close();
                    word1=word2;
                    word2=word3;
                //}
                //catch
                //{
                //}
            }
            ConnectionS.Close();
        }
    }
}

 

【上の変換プログラムの結果】

表2は表4のようになります。

で、この辞書をどう使っていけば、文章を生成するの??

 

ー>

マルコフモデル

マルコフモデル

マルコフモデル

辞書

辞書

表4

 

 

関連検索ワードネットワークを作成するページ

使い方を読んでから関連検索ワードネットワークを試してみてください。

Yahooを利用していますと関連検索ワードというのがでていると思います。
これを図1のような単語の系図にできればと思い作成したのが図2です。人工知能の3世代目に歌詞になるのは、なんか不思議な感じがしますが・・・。WindowsアプリのTreeView Controlとか使ったら、もっとかこがいいのですが、WEBではうまくできませんでした。(1.1では)

図1

 

使い方

図2

2006/7/6

 

 

会話の仕組み

  ???????


文の理解

 検討もつかない。


返事・回答

 さっぱりわからない。データにあるものを適当に出力しとこ。適当に相づちうったりしたら、人間があわしてくれるんでは?

 というのはダメだな。

 いま思っていっるのは・・・。

 C:こんにちは お名前は?
 H:私 は たま です。
 C:あなたは、ボールなの?

 というようなのを作ろうとしたら、
 辞書に、キーワードを「たま」−>「あなたは、ボールなの?」とかにしたらいいのかなぁ。

 

リンク・参考文献(夢は相互リンクなのですが・・・。勝手にリンクさせて頂いています。)

 書籍(7&Y)

 人工無能は考える

 人工知能学会

 奈良先端科学技術大学院大学 松本研究室

 トーくん