春休みの開いた時間を利用して、人工無脳の構築に挑もうかと。
主な目的は自身のスキルアップ。最近ろくにプログラミングやってない。
本当に最近生産性の在ることをやっていない……。
このブログには個人的な忘備録を残そうと思う。

開発環境は
Visual Studio 2010 Express for Desktop
.Netframework 4.5
を用います。

データベース構築

データベースは
SQL Server Compact Edition
System.Data.SQLite
を候補として考えた結果System.Data.SQLiteに決定。

System.Data.SQLiteデータベース基本操作 その1 基本コマンド(C#) | 夏研ブログ
http://c-loft.com/blog/?p=1497
様のところを参考にして、導入。

SQLite参照追加

SQLite参照追加

SQLite.Interop.dllがないため動作しないという報告が複数あったけれど普通にテストプログラムは動作した。
一応SQLite.Interop.dllは、
Precompiled Binaries for 32-bit Windows (.NET Framework 4.0)
sqlite-netFx40-binary-Win32-2010-1.0.84.0.zip
に存在したのでダウンロードしておいた。

人工無脳:データベースで管理するもの

人工無脳の分類について書かれている、
人工無脳レビュー 2005
からどのようなタイプの人工無脳を作るのか考えてみる。

特殊なコマンドや会話は辞書型でいい。まず、これが初めに評価される。
テーブルは、キーワード・応答・動作IDといった単純なもの。
動作IDの部分は、プログラム側で書くしかない。

次に会話文の生成。
新たな文の生成にはマルコフ連鎖を用いる。文章を形態要素解析して語句と品詞を取得。日本語の語順にあった品詞の並び順で文を生成してなるべく自然な文章とすることを目指す。
テーブルは、キーワード・品詞・前のキーワード・前の単語の品詞・次のキーワード・次の単語の品詞・出現確率・等価なキーワードといったところか。
次のキーワードがマッチしなくても、次の単語の品詞によって文章を生成する。
次のキーワードは、会話に出てきたキーワードと関係性の深いものの優先度を高めて選択する。
特に関連するキーワードがない場合は、出現確率を参考に乱数で決定する。
また、等価なキーワードによって、語彙を広げる。

とまぁこんなところか。
特徴のあるキーワード(固有名詞)の取得として、Yahooのキーフレーズ抽出API
文章の不自然さを直すために、同じくYahooの校正支援APIなんかも活用するといいかもしれない。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  プロフィール  PR:無料HP  安い 合宿免許  給与滞納  職業実践専門課程  カー用品の専門店  スタッドレスタイヤ 激安  タイヤ ストリーム 激安  東京 専門学校 就職  エンジンパーツ 中古部品  民泊 収入  業務用食材  株プロフェット 評判  タイヤ取付予約  シアリス 効果