おちんちんは考える
String.chimpo
— ikr7 (@rfc4627) 2014, 3月 31
やるしかない
文字列に対しての勃起率を出すために何から手をつければいいのかわからないのでベイズの定理っぽいものを使って入力された文字列がエロいワードである確率を出してみるものを書いてみる
エロいSSとエロくないSSをそれぞれ2000行ぐらい用意してサンプルデータにするけどこれ全然だめだなって書いてて思った
https://gist.github.com/sasamijp/9913369
文章に対してのスコア
下ネタワードが出てくると高めのスコアが出る
ページのエロさを算出してみる
ページ内の全ての文章に対してスコアを出して平均をとる
エロいページの場合
ttp://ssmatomesokuho.com/thread/read?id=180064
{"score"=>0.2415852892504532}
ttp://ssmatomesokuho.com/thread/read?id=213234
{"score"=>0.18451274890425745}
エロくないページ
ttp://invariant0.blog130.fc2.com/blog-entry-6034.html
{"score"=>0.21386080011166048}
全然ダメでした!!!!
おちんちんもよくできてるなあと思った
おしりからおしり出てきた
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までお願いします。
プロデューサーさん、人工無能ですよ人工無能!
@sasamijp じゃあカツ丼で!
— 天海春香 (@sa2mi) 2014, 2月 9
今 @sa2mi で動作している人工無能天海春香2のおおまかな仕組みについて適当に解説します。
前回のラブライブ!
従来までのささみbotはただ持っている文章データを使って、マルコフ連鎖でめちゃくちゃに組み合わせて文章を作っていました。これではinput(リプライの内容)がほとんど関係なく、ただ実行される度に文章を生成し意味のないことを喋り続ける機械でしかありません。
人工無能が人間とそれらしい会話をするためには、inputに対して会話になるような返答をする必要があります 。
仕組み
というわけで、inputに対してどう返答したらいいかを考えさせます。人工無能において一番重要な部分です。
「天海春香の返答」を学習させるために、2chまとめのSSから文章をスクレイピングします。手動で。
txtファイルにコピペすると、天海春香がこう言われるとこう返すというデータに変換するスクリプトを書きます。
データベースとかよくわからないのでtxtで保存します。
えっ? ||好き
あ、うん、この曲が、この曲がね…… ||曲
「好き」と言われたら「えっ」と返す、「曲」と言われたら「あ、うん、この曲が、この曲がね……」と返す。シンプルな構造です。
しかしこの構造で動かすとなると、膨大な学習データが必要です。頑張ってSSをかき集めましょう。
まとめ
SSからデータを取ることで、天海春香の人格は人工無能に搭載されます(多分)。しかし色々欠点も多いので、天海春香3を製作中です。つらい
update_name誕生秘話
ささみJPです。今回は
update_name Advent Calendar 2013 - Adventar
の5日目分の記事です
自分の名前を変更する「update_name」ですが、どのようにして生まれ、現代に継がれているのでしょうか。
その歴史は、人類の誕生にまで遡ります。
世界最古のupdate_name
旧約聖書の創世記第17章を見てみましょう。
神はまた彼に言われた、
わたしはあなたと契約を結ぶ。
あなたは多くの国民の父となるであろう。
あなたの名は、もはやアブラムとは言われず、
あなたの名はアブラハムと呼ばれるであろう。
わたしはあなたを多くの国民の
父とするからである。
ここでは「神」によりアブラム氏は「アブラハム」に改名させられました。これこそが、update_nameの始まりであり、我々の原点とも言えます。
update後のアブラハム氏。輝きに満ち溢れている。
日本最古のupdate_name
では、日本における最初のupdate_nameとはどのようなものだったのでしょうか。
古事記を読んでみましょう。
そこでそのアシナヅチ神を呼び、「あなたを私の宮の首長に任じよう」と言い、また名を与えて、稲田の宮主須賀の八耳(イナダノミヤヌシスガノヤツミミ)神と名付けました。
この場面では、スサノヲ命がアシナヅチ神の名前を変更します。このようなupdate_nameが古事記では多く見られることから、日本では昔からupdate_namerが多く住んでいたことがわかります。
日本最古のupdate_namerが祀られている島根県の八重垣神社。update_nameの神がここにいる。
現代のupdate_name
しかし最近はどうでしょうか。昔は例の如くアホみたいにupdate_nameが行われてきたのですが、「貰った名前は変えない」という風潮があり(常識である)、update_nameが気軽にできません(当たり前だ)。
update_nameの未来へ向けて
私達は今Twitter上で日常的にupdate_nameを行っています。
@moudamedahige 睡眠中も手は勝手にシコり射精が止まらないに改名しました
— 睡眠中も手は勝手にシコり射精が止まらない (@sasamijp) 2013, 12月 16
実際に改名するには様々な手続きが必要ですが、Twitter上でならAPIが切れない限り何度でもupdate_nameすることが可能です。私は昨日37回のupdate_nameをしました。
我々update_namerには、人類の歴史を創世していった古きupdate_namer達の英霊が宿っているのではないでしょうか。
update_nameの未来のため、今日も私達は名前を変え続けます。戦いはまだ始まったばかりです。
完全勝利したandroid君ICS
いつでもどこでも完全勝利ができるアプリを作りました
ボタンを押すと背景が変わり勝利のBGMが流れます
とっても便利ですね