人工無脳的なものを作ってみる

Last-modified: 2018-06-24 (日) 19:35:40

人工知能的なものの開発ができるようになってきた今時に、人工無能を自作してみようなどと周回遅れなことをやって見ます。

 

開発に使う言語は常識的にはPython(*)ですが、個人的な好みからRubyを使います(名著「恋するプログラム」でもRubyを使ってますし。)。
なお、コードも晒していきますが、何分にも素人なので、汚かったり文法的に間違っていたりすると思います。Rubyを使いこなせるほどにはDRYになれそうもありません。

 

サンプルコードは、https://github.com/tapaboy/cheaplearning で提供しています。

 

今後の予定

  1. しりとりゲームのようなシンプルなプログラムから、言葉を覚えさせていきます。
  2. 簡単な会話っぽいこともできるようにします。この辺りから、メカブさんとかマルコフさんのお世話になるはずです。
  3. Open Jtoak辺りを使って、抑揚のないおしゃべりをさせます。この辺りからわたしの能力を超えています。
  4. 2次元あるいはMMD的な姿を与えます。完全に私の能力を超えてます。
  5. 最終的には、パソコンに住む魔法使い私の嫁の育成を目指します。
  6. 簡単に言うと、昔(一部で)流行った「伺か」みたいなものと思っていただいて結構です。
     
     
    (*)ずっと「フィトン」と読んでました。これから何かひとつ言語を覚えるなら、これを強くお勧めします。
     

覚え書き

(2018.6.24現在)
これらのソフトのダウンロード方法、インストール方法は、今後変わってくる可能性があります。
ネットは、もう役に立たない古い情報で溢れてます。
それぞれ、本家サイトで確認するのが確実と思われます。

インストール関係

  • ubuntuでRubyをインストールするとき特にバージョンにこだわらなければ
     $ sudo apt install ruby ruby-dev
    でよい。(ruby-devをインストールしなくてもRuby自体は使えるが、後にgemコマンドを使う際にruby-devが必要となってくる。)
     
  • 同じくMecabと辞書は
    (これを忘れると、昔懐かしのEUC-JPの辞書がインストールされてしまい文字化けしてしまう。)
     
  • RubyでMecabを使うためには、
    • あらかじめubuntuにgcc、Mecab(本体とdev)、辞書(libmecab-dev mecab-ipadic-utf8)をインストールする。なお、辞書は、mecab-ipadic-utf8と必ず「utf8」を指定すること。
    • gemでrake、GTK3、mecabの順にインストールする。
       $ sudo apt install mecab libmecab-dev mecab-ipadic-utf8
       $ sudo gem install rake
       $ sudo gem install gtk3
       $ sudo gem install mecab
       
  • ついでにnatto(Rubyでmecabを使うのが多少楽になるらしい。)というものもあるらしいのでインストール
     $ sudo gem install natto
     
  • NEologd(最近の言葉も取り入れた辞書、頻繁に更新されている。)のインストール
    • あらかじめubuntuにcurlがインストールしておく。なお、curlとは、いろいろなプロトコルでファイルの転送ができるコマンドらしいです。プロトコルって何だ?)
       $ sudo apt install curl
    • githubから最新のNEologdをダウンロードしてインストールする。
       $ git clone https://github.com/neologd/mecab-ipadic-neologd.git
       $ cd mecab-ipadic-neologd
       $ sudo bin/install-mecab-ipadic-neologd
      途中でインストールするか確認されるので、「yes」と入力する。
    • 次に /etc/mecabrc を編集して、「dicdir」にNEologdをインストールしたディレクトリを指定する(コメントアウトは#ではなく;らしい。)。
      (インストールしたディレクトリは、bin/install-mecab-ipadic-neologdを実行した時に
       Usage:
           $ mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd ...
      こんなふうに表示される。)ので、/etc/mecabrcには
       dicdir = /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
      と記述する。
    • インストールと設定完了後、端末から
       $  mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd    #(エンター)
       適当な日本語の文章(比較的最近の固有名詞などが入った言葉で試すとよい)
      とやると、neologdが正常にインストールされたか試すことができる。
       
  • (ここでは使わないけど)RubyでTKを使えるようにする。(先にgemでGTK3がインストールされていること)
     $ sudo apt install libtcltk-ruby
    これで require "tk" できるようになる。
     
  • RubyにOpen Jtalkをインストールする
    open_jtalk-rubyをインストールするのが簡単
    インストール方法も同ページに書いてある(ただし英語)。
    なお、インストール例では、バージョンが0.4だが、その後バージョンが上がっているので注意。
     

RUBY の使い方関係

  • Rubyで同じディレクトリにあるrbファイルをrequireする。
    例、「yome.rb」をrequireする場合
    ○ require_relative 'yome'
    × require 'yome'
    (拡張子(.rb)は省略可)
    また、次のように相対パスを指定してもできる。
     require "./yome"