おしりからおしり出てきた
SS(ショートストーリー)を人工無能に変換するツールを作ったので使い方を説明します
1. ダウンロード
githubから本体をダウンロードするかcloneしてください。
2. 解凍
zipかなんかで落としたら解凍しましょう。レンジでチンすると爆発します。
解凍するとファイルがいっぱい出てきますね。
3. SSをかき集める
今回は例としてアイドルマスターの音無小鳥さんを作っていくので、小鳥さんが登場するSSを集めます。
収集にはSSまとめサイトを使うと便利です。サイト内検索で「小鳥」とか入れると小鳥さんが出てくるSSを抽出できます。
最新のSSから順に中身をコピペします。この時、本文のみをコピーするようにしてください。名前欄ぐらいなら学習時に自動的に省いてくれるようになっていますが、本文以外のテキストもコピーしてしまうと正常に動かない可能性があります。
こんな感じで本文だけ選択してコピーします。
コピーした本文は、先ほど解凍したフォルダの中にあるss.txtに貼り付けていきます。
本文をコピーしてss.txtに貼り付けてを繰り返し、ss.txtのサイズを大きくしていきます。
この過程で注意するべきなのは、下のような「名前「セリフ」」形式ではないSSを選ばない、ということです。
SStoAIは"「"の前の文字列を名前と認識して処理するので、名前が書かれないようなSSは学習データになりませんので注意してください。間違ってss.txtに入れてしまっても学習時にスルーされるので消す必要はないです。
5スレ分ほど集めました。今回はこれだけのデータでやりますが、集めれば集めるほど返答パターンが増えるので、この作業は全力で望みましょう。@sa2miは100スレ分程読み込んでます。
4.SSから学習データを生成する
SSを集めてtxtに書き込んだら、学習データに変換していきます。
ターミナルから作業するので、まずSStoAIのディレクトリに移動します。
saveSS.rbを実行すると、ss.txtからセリフがない行を除去してsaved.txtに保存してくれます。saveSS.rbを実行してエラーが出た場合は環境がダメです。Gemfileやらを読んで出直してきてください。
complete!と表示されたら完璧です。おめでとう!
saved.txtの中身はこんな感じになります。 2chの名前欄や改行が取り除かれています。
次にstudy.rbを実行します。study.rbはsaved.txtの内容を学習データに変換してdata.txtに書き込みます。
キャラ名を入れろと言われるので、「小鳥」と入力します。
こんな感じの画面が出れば大丈夫です。
学習できたら、talk.rbを実行して話しかけてみましょう。
小鳥さんと会話ができました。返答パターンが見つからないと「nil」と表示します。
5. botとして動かす
コンソールで動かしてニヤニヤするのも楽しいですがせっかくなのでTwitterのbotとして動かします。
key.rbを開き、botとして動かしたいアカウントのCK/CSとトークン、トークンシークレット、screen_nameを入れます。
最後にbot.rbを実行してうまく動けば勝ちです。あなたの勝ちです。
お疲れ様でした
わからないことがあれば@sasamijpまでお願いします。