Born Neet
作詞スル変更履歴
- 2007-12-28 (Fri)
- JavaScript
作詞スル - 歌詞自動生成アプリ - を作った
- 2007-12-27 (Thu)
- JavaScript
[長文注意]
前々から人口無能とかに興味はあったんだけど、
+最近流行りの圧縮新聞に触発されて
僕もJavaScriptでAIっていうかボットなサイトを作ってみた↓
作詞スル
はいはい、ネーミングセンス0ですよ、わかってますよ。
その名の通り、歌詞っぽい文字列を生成します。
作った歌詞を並べたらこんなんできました。
人口無能のシュールさ全快です!?
VOCALOID2:初音ミクとかのお供にどうですか?
(実は昨日初めて聞いた、そのためにニコニコにも今さら(!)入ったり。思ったよりぽくてびっくり。すげーな、YAMAHA…だよなエンジン作ってるの。)
[使い方]
は、ロゴをクリックするだけの、ワンクリックアプリケーション(?)です。
あと、下の方に隠し(てないけど)メニューがあって、「タグにする」ボタンで歌詞のHTMLを表示できます。
他のメニューは、correct.jsサンプルの時と同じくドーピング用で、他のテキストを読ませたりできます。
(重いのとかヤパイのは読み込ませないでくださいね。)
[仕組み]
ソースを見てください…じゃああんまりなので、ちょっと説明します。
他のサイトでも良く使われてる形態素解析+マルコフ連鎖です、たぶん。
あんま理解できてないです、マルコフ連鎖 - Wikipedia(2007年12月27日 21:45:14)見て泣きそうになりました。
要は、文をバラバラに区切って、隣接する確率によって繋げていくっていう単純明快アルゴリズムです。(言い切った!)
サイトにもある通り、解析の正規表現は形態素解析もどきを改良してみた - エブログで紹介されてる方法をほぼそのままパクりました。
※ N-gramもちょっと試してみたら面白そうだったけど…いかんせん重いんです!
そして、Alice's Adventures in Wonderland: Japaneseから拝借した、不思議の国のアリスのテキストを読ませて(重いので1~6、7~12章で分けてランダムでどちらか)、そこから歌詞っぽいデータを作ってるわけです。
元がクリエイティブ・コモンズ(表示-継承)だから、機械的に作ったのもCCになる・・・のかなぁ?
もちろん、他のテキストだけを読み込んだ場合は関係ないけど。
以上、説明でした。
※ 今回は、ちゃんとOOPで作ろうと頑張った
…んだけどだんだん飽きてきて、HTMLを作るころにはもう適当2。
その場しのぎの応急処置を多発してしまう悪い癖が。
(結果ソースは僕以外が見ると意味不明な記述だらけに;)
それでもわりとおもしろいものができたんじゃないかと、自画自賛しなくちゃやってらんない!
ちなみに、これは自分の中で正式サービスと勝手に位置付けてるので、いつものゴミ箱じゃなく、サブドメイン(lyrics)を与えてみました。(のわりにはHTML&css適当すぎとか言わないで…)
[参考]
はじめてのAIプログラミング―C言語で作る人工知能と人工無能
この本がきっかけで、人口無能を面白いと思うようになった。
だいぶ前に読んだんだけど、今回改めて読み直した。やっぱ人口無能の会話は笑っちゃう。
ただ、最近LLっていうかJSばっかやってるからCを読むのがつらかった。本質じゃない文字列処理とかにてこずっちゃってもう…。
ウィキペディアを引用するときは日付を入れよう、なブックマークレット
- 2007-12-27 (Thu)
- bookmarklet
ちょっと自分用に作ったので一応公開。
copipedia?
wikipediaの情報はすぐ変わるので引用するときは日付をつけるべきだと思う。
そうすれば、その人がいつの情報を見たのかがすぐわかるので、履歴からすぐに辿り着ける。
まぁ普通は記事を書いた日なんだろうけど、僕みたいに下書きだけ書いて放置する人だとその間にwikipediaの情報が変わっちゃうことがあるので。
(前に、英語版のブックマークレットの内容が大幅に削除されててびっくりした。作り方がなくなってた。wikipediaはチュートリアルじゃねぇよ、らしい。ユーザにとって便利ならいいんだと思うけど…そうもいかないんだろうなぁ。)
[サンプル]
こんなリンクができます。
クリエイティブ・コモンズ - Wikipedia(2007年12月27日 18:01:59)
ちなみに、どのサイトで使ってもこの形式のリンクになります。
ホントは、リンク作成bookmarkletに追加したかったんだけど、面倒かったのでとりあえず単体で。
どうせwikipediaは、誰にとっても外部サイトだし。
AddClipsを貼ってみた
- 2007-12-25 (Tue)
- 忍者ブログ
AddClips ソーシャルブックマークボタン統合サービス
あわせて読みたいと同じく今さら感はあるけど…。
これでソーシャルブックマークされやすくなればいいなぁ。
あと、宣伝(?)に0 userも表示してみた。やっぱ凹むけど。
その過程で気づいたんだけど、なんかブログ内検索したらJavaScriptエラーが!?
何でだろうと思ってソースを見てみたら、script内にspanタグが混入してる…。
検索結果ページでキーワードに色を付ける機能が原因だった。
…そりゃ動かんわ。
調べたところ仕様らしい。(助太刀忍者)
頼むよ!忍者ブログ。
っつってもスクリプトかどうか見分けるのは面倒そうだから、
せめてこの機能のON/OFFだけでも。か、プラグイン部は対象外にする方向で。
サーバ側じゃなくてJavaScriptでやればこの問題は解決しそうだけど。そういうわけにもいかないか?
今のところサイト内検索されてるような形跡もないし、たまたまscript内にある用語を検索することも…けっこうある気がするんだけど…まぁいいか。
とりあえず、対策を検討中。
外部スクリプト化できないようなやつもあるので困ったなぁ。
タグの属性中は安全っぽいからその辺りを利用してどうにかするか?
とかいいつつ、忍者ブログの新担当に期待。お願いしますm(_ _)m
あと、偶然見つけたマカフィー問題(?)も気になった。
広告が原因だと他人事じゃないのでちょっと嫌な感じ。
そろそろ引越し時かなぁ?
独自ドメインなので忍者やめても危険と思われないか心配ではあるけれど。
なんか後半愚痴みたいになったけど、忍者のサービスには概ね満足してますよ。
本当に深刻ならブログに書かないでサポートに言うしね。
ブックマークレットy←→gがyahoo検索で文字化けすることがある不具合を修正
- 2007-12-21 (Fri)
- JavaScript
だいぶ前に公開したyahooとgoogleを交互に検索するbookmarklet、y←→g。
最近気づいたんだけど、特定の文字をyahooに投げた時に文字化けする。
例えば、「精度」とか。
原因はキーワードをUTF-8でエンコードしてたから。
JavaScriptのencodeURIComponentはそういう仕様だってのは知ってたんだけど…。
yahooはEUC-JPとUTF-8のどっちで投げてもいい感じに処理してくれると勝手に思ってた。
(実際多くのケースではそうしてくれるんだけどね)
他の文字コードとして解釈できちゃうような文字列の場合化けちゃうのかな?
ってことで、yahoo検索のURLに&ei=UTF-8を追加して無事に解決。
修正版を以下に置いておきます。
y←→g
ご面倒かと思いますが、差し替えをお願いしますm(_ _)m
※ userjsに同じようなのものがあると知ってちょっとショックを受けてたりします…。
(8倍速対応 | Google検索結果ページに同キーワードでYahoo!で検索するリンクを貼る-IE7pro+Yahoo! in Google)
あきらかにbookmarkletでやるよりスマートだなぁ。userjsおそるべし。
- Search
-
Loading
- Feeds
- Links
- スポンサードリンク