Just $ A sandbox

プログラミングと計算機科学とかわいさ

3.pythonで対話型AI制作[モジュール化]

前回以降の部分で最初に目標として設定していた、最低限の機能を備えた自律学習型AIの中核はほぼ完成しました。

しかしまだコードが読みにくいので*1、モジュール化してみます。
という訳でモジュール化されたコードがコチラ!→https://github.com/myuon/AI/blob/master/Alice_AI.py
(解説はしていませんでしたが、実はモジュール化する前にちょっと単語の選び方を工夫するアルゴリズムを導入しています。気になる方は上のコードのjudgesentense函数をチェックして下さい)

モジュール化されたAliceさんもちゃんと動いてくれていましたので一安心です。*2

さて、今回はコレだけではありません。
モジュール化したのはなぜかというと、これを使ってAIをもうひとつ生成し、互いに喋らせてみようという思惑があるからです!

やってみましょう。モジュール化されているので簡単ですね。

ai2ai.py: https://github.com/myuon/AI/blob/master/ai2ai.py

#! /usr/bin/python
#-*- coding:utf-8 -*-

import random
import sys
import re

import Alice_AI

if __name__ == "__main__":
    AI = []
    AI.append(Alice_AI.AliceEngine("save/alice_2.txt",u"Alice"))
    AI.append(Alice_AI.AliceEngine("save/bob_2.txt",u"Bob"))

    input = u""
    while True:
        input = AI[0].mainloop(input)
        input = AI[1].mainloop(input)

もちろん名前はAliceさんとBobさんですよ!
この人達に文章を与えて喋ってもらったのがコチラ

alice_bob.txt: https://github.com/myuon/AI/blob/master/log/alice_bob.txt

// Alice:吾輩は猫である
// Bob:こころ


Aliceさんがログインしました。
Bobさんがログインしました。
Alice:我は何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している
Bob:でも辺鄙へんぴな方角にあった
Alice:でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している
Bob:だけは保証します奥さんらしい人を常に先生と呼んでいた
Alice:へんぴな方角へ棄てられたのである
Bob:事である
Alice:が迷亭めいていがこの体を捕つかまえて煮にて食うという話である
Bob:体たいが動いていた
Alice:いていた事だけは記憶している
Bob:迷亭めいていがこの体たいが動いていた
Alice:めいていがこの体を捕つかまえて煮にて食うという話である
Bob:捕つらまえようという決心をしてそのまま下宿へ一切いっさいを脱ぬぎ棄すてる事である
Alice:捕つかまえて煮にて食うという話である
Bob:体たいが動いていた
(一部抜粋)


( ゚д゚)ポカーン

日本語でおk\(^o^)/

とっ、とにかく、AIとAIで互いに喋らせる、なんてことも出来るようになりましたよ!
まだまだ完成度が低いとはいえ夢が膨らみますね!

*1:折角、保守性の高いPythonなんて高級言語を用いているのにこれはあまりよくないことです!

*2:そういえばAIの名前をアルファベットにしたのは後でもう一人登場させるという理由からです