まさか続くとは。第2回人工無能開発日記

LINEで送る
Pocket

がじでございます。

ネタが消化しきれないうちにどんどん積もっていくパターンです。
だいぶ前に人工無能を開発してみようと思ったというネタを書いていますが、まさかの第2回です。(自分でも続くと思ってなかった)

−−−スポンサードリンク



−−−スポンサードリンク

えー、前回は単純マルコフ連鎖で会話プログラムっぽいものを作ってみたわけですが、文章は生成できるものの、意味が通じる文にはなかなかならず、残念な感じで終了しています。

もうちょっとがんばって会話に反応を返すプログラムにしたいと思い、まずは簡単なプログラムを書いてみました。
設計思想は以下の通り。

  • ある単語が含まれるフレーズが入力されたら、対応する文章を返す
  • 対応する文章は複数用意し、ランダムで文章を選択する

もう安直そのものです。コードも非常に簡単。

# -*- coding: utf-8 -*-
import sys
import codecs
import random
import re

#Textを読み込みリストを返す
def get_source2list(src):
  n = 0
  res_list=[]
  tmp_list=[]
  i = []
  f = codecs.open("resp_list.txt", "r", "utf-8")
  for i in f:
    tmp_list=[]
    tmp = i.split(",")
    tmp_list.append(tmp[0])
    tmp_list.append(tmp[1:])
    res_list.append(tmp_list)
    n += 1
  f.close()
  return res_list

if __name__ == "__main__":
  resp_list=[]
  filename = "resp_list.txt"
  resp_list=get_source2list(filename)

  num=0

  res_len=len(resp_list)
  myname="ぴぴたん"
  print("あなた :", end="")
  input_line1 = input()
  while (input_line1 is not ""):
    for i in resp_list:
      match0=re.search(input_line1, i[0])
      if match0:
        lst_size=len(i[1])
        word = random.randrange(lst_size)
        print(myname + " :" + i[1][word].strip())
    print("あなた :", end="")
    input_line1 = input()
  print(myname + ": バイバーイ")

これでresp_list.txtにcsv形式で記述された単語と応答文のリストを読み込み、コマンドラインから入力に対して、適切な?応答を返すプログラムの完成です。

このプログラムをベースに応答機能を人工無能ぴぴたんに組み込みver0.2としてGithubを更新してみました。

ついでに単純マルコフ連鎖リストの辞書も増強しております。
(地味にミニプログラムもいくつか追加してますが、あまり意味はありません)

なお、実行してみた会話の中から割とマシな例をあげておきます。

$ python pipi_if.py 
ぴぴたん Version: 0.02 Start!!
ぴぴたん:メッセージをどうぞ
あなた :こんばんは
ぴぴたん:こんばんはhttp://seigaji.-5個の?やった火を取りてくるてもらったりするつもりに「apache.4回書こメール
あなた :かわいいね
ぴぴたん:知ってた
あなた :やな奴
ぴぴたん:いかん、ばれた!
あなた :バカでしょ
ぴぴたん:お前がな。
あなた :くそー
ぴぴたん:くそ時間ができずには、居酒屋で最もダメだった。なぜ自分が多い。高いスキルを言ってなお踊れ』『あと
あなた :あと、で止めないでくれ
ぴぴたん:ないのでMax8/wp-5万円近く支払うメールで!【イベントをつく。トリセツメールを述べてい論文メールのだ
あなた :頭が痛い
ぴぴたん:痛い.でがどんなに意味の検索結果、答えなきゃいけなかった完成だ。独立生計メール・・わたり文庫正し効率的なので
あなた :
ぴぴたん:バイばーい

今後も開発は地味ーに続けますが多分稚拙すぎるのでブログにはあまり取り上げないと思います。<といってもすぐ気が変わるから信用ならないけどね。

—-スポンサードリンク

—-スポンサードリンク

LINEで送る
Pocket