自分の分身を作りたい

自分の分身を作りたい

理系の大学院生だよ

11行のpythonコードで人工知能と喋る

ぜひフォローしてください

f:id:daigakukabuu:20180601150245p:plain

 

僕も今日初めて知ったのだが、リクルート内にA3RT(ANALYTICS & ARTIFICIAL INTELLIGENCE API VIA RECRUIT TECHNOLOGIES)というプロジェクトがあり、機械学習を用いてテキスト処理や画像処理を行うAPIを公開しているようだ。

 

 

a3rt.recruit-tech.co.jp

 

そこでA3RTのプロジェクトのうちのひとつであるTalkAPIを利用して、僕が暇なときにおしゃべりしてくれるコードを11行で書いてみた。

 

 

 

APIとは

Wikipediaより引用

アプリケーションプログラミングインタフェース(API、英: Application Programming Interface)とは、ソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様である。

 

というよくわからぬ説明だが、要するに

ソフトウェアをweb上で公開し共有できるようにしたもののことである。

 

ということで、APIを使用すれば自分で1から作り始めなくても、外部の企業やグループが作ったリソースを活用できるのだ。

 

今回でいうとA3RTが開発したチャットボットを自分で利用することができるということだ。

 

A3RTのAPIは無料登録してAPIキーをゲットすれば誰絵も使うことができる。

 

Pythonでコーディングしてみた

Pythonを用いてターミナル上でのチャットボットを作ってみた。

 

ぶっちゃけお喋りするだけならSiriの方が数倍楽しいと思うが、まあいいだろう。

 

調べたところ、APIを使うにはwebスクレイピングなどでも用いられるrequestモジュールを使うのが一般的のようだが、A3RTでは専用のpya3rtモジュールが用意されているようだったのでそちらを使ってみた。

 

↓参考にさせていただきました。

機械学習API群A3RTをPythonから使う

 

そして今回作ってみたのがこちらである。


# -*- coding: utf-8 -*-
import pya3rt
if __name__ == '__main__':
    words = input("->")
    while words!="":
        apikey = "XXxxXXXXX自分のキー"
        client = pya3rt.TalkClient(apikey)
        response = client.talk(words)
        print("ドラえもん : "+((response['results'])[0])['reply'])
        words = input("->")
    print("さようなら") 

 

(初心者なので、間違っている部分があったら指摘してほしいです)

 

 中身としては、こちらがなにもコメントしなかった場合に「さようなら」と出力し会話が終了する形になっている。

 

これで誰でもドラえもんと話している気分になれるというわけだ。

 

結果はこの通りである。

f:id:daigakukabuu:20180601150003p:plain

 

ドラえもんはこんな敬語を使わないし、関西弁も使わないと思いました。

 

->

さようなら