WordPress の Twitter 投稿用プラグインを導入しました

タイトルにあるように、 WordPress にプラグインを導入しました。

WordPress は Twitter 関係のプラグインが多数存在しているのですが、うちのサイトでは Social プラグインを導入しています。

はじめは Simple Tweet が良さそうに思えたのですが、実際に使ってみると自動投稿以外の設定が行えないため、自分の好きなタイミングで投稿可能な Social にしました。

……のですが、こちらもすこしばかり問題があります。

Version 2.7 を使用しているのですが、投稿時の文章の抜粋を作成する際に日本語の文字数を正しくカウント出来ずに、Tweet 時の文章が壊れてしまいます。(詳しく調べたわけではないのですけど、先頭 n 文字で切り出す処理を行っているらしき場所で、文字数ではなくバイト数をカウントしているのではないかと思われます。)

ブログ本文を投稿しない様にすれば問題はないため、件名のみを Tweet する設定で利用しています。

 

今日の RapidMiner

今日もすこしばかり RapidMiner を使用してみました。

前の記事ではデータが何も無いと言う事で Google Trends を使ってデータを生成していたのですけど、 Utility -> Data Generation に色々なデータをランダムに生成してくれる機能がありました。(しかも、チュートリアル用のサンプルデータも幾つか付属してます。)

というわけで…前回よりもまともなものを組んでみました。

s1

やっている事は、

  • Generate Direct Mailing Data を使用してデータを生成。
  • Naive Bayes, Naive Bayes (kernel), Decision Tree のモデル精度を比較。
  • Decision Tree を使用して学習モデルを生成後、別のデータを与えて正答率をチェック。

といったことをしています。

s2s3

自分が組み立てたプログラムでは、100件のサンプルを使ってモデルを生成し、別の100件の予測をしています。

(正解率は 85 〜 90% ぐらいでした。)

使い方がわかってくると面白いかも。

RapidMiner を使ってみました

RapidMiner というのは、データマイニングを行うソフトウェアで、無料版を rapid-i のウェブサイトからダウンロードする事が出来ます。

java で書かれているアプリケーションなので、 MacOSX 上でも動作させる事が出来るのが個人的にも嬉しいところ。また、無料のソフトウェアのわりには便利な GUI が存在しています。(MacOSX 上だと、微妙に動作がおかしいところがあるみたい)

ちなみにこんな画面です。

rm4 rm3

適当な CSV が無かったので、Google Trends から「魔法少女リリカルなのは」「田村ゆかり」「水樹奈々」「植田佳奈」で検索した結果を使用しています。

上図でやっているのは、CSVを読み込んで、Naive Bayes、Decision Tree の結果を確認しているところです。(ネタをリリカルなのはにしてみたかっただけで、実際に何かを調べているわけではないです…)

検索しても日本語のページがほとんど出てこないけど、これを使いたい様な人は R や SPSS といったものを利用しているから、あんまり需要はないのかも。

おまけで使用した CSV ファイルを貼付けておきます。

[wpdm_file id=8]

JBL の J33WHT というのを買ってみました。

自分は音楽を聞きながら何かをする事はほとんど無い[1. 音楽を聞いているとそちらに意識が持っていかれてしまいます。]のですけど、ノートPCやタブレットで音を確認したいときもあるので、カナルタイプのものを買ってみました。

カナルタイプのものは昔持っていたのですけど、その時気になっていたのはケーブルの細さです。(千切れた事はないですけど…)

なんとなく太い方が安心かな…と思い、太めのケーブルがついてたという理由で選択しました。

J33 タイプは Comply イヤホンピースがおまけでついていて、試しに交換してみたところずいぶんと音が変わりました。

音楽を聴く分には良いけど、ケーブルが太いのは iPhone なんかで使うとちょっとかっこわるいかも…

 

 

武装神姫(11)「今夜決定!最強神姫は誰だ!?」

なんだか急に最終回ムードになってしまいました。

どう考えてもアーティルは出なそうだけど、仕方ないか…

話の中は途中からほのぼのムードがなくなり、ヒナ(ストラーフ)がメインとなりました。自分としては最後までほのぼのな感じであって欲しかったけど、こういうのも悪くないかな。なにより、第一話から引っ張っていた設定だし。

新しく登場した神姫としては、ヴァローナ型としてイリスが登場しました。

あんまり好きなデザインじゃなかったというのもあって、ウェルクストラの方しか自分は持ってないのですけど、今は結構なプレミアが付いているみたいですね。

この感じだと、もしかして残り1話ぐらい?

Microsoft Azureの利用料金

このブログを稼動させているサーバーはMicrosoft Azureなのですが、大体5,600〜6,000円ぐらいの料金を請求されています。

現在の利用状況ならXSインスタンスでも大丈夫そうな気がするから、ちょっと考え直した方がいいかも。

 

アインハルトさん@多分ペーパー用

 アインハルトさん

いつもと同じ様に ArtRage Pro 3 で作成しました。グッズ用の画像は完成後のサイズが 4cm x 4cm ぐらいですので、あんまり大きな画像は作成しないのですけど、こちらはペーパー用を考えていたので大きめな画像です。

それにしても下書きからずいぶんと顔が変わってしまいました…

今日のイラスト

 今日のアインハルトさん。

 今日のヴィヴィオ。

もうすぐコミックマーケット83ですね。

水凪工房では新作のシャマルさんグッズと、珍しくペーパー[1. 本当は一周年記念で本を出そうと思っていたのですが、ちょっと無理でした。]を配布する予定です。(既刊のグッズも持っていきます。)

そんなわけで、上の画像はペーパー用の画像として作成しているものです。趣味でこの二人を描く事はありますけど、まだグッズにした事はないですね。描くのが難しいからかもしれません。

形態素解析を利用したウェブサービス

Twitter に形態素解析をしてくれるウェブサービスの事が流れていたので、自作の小説「魔法少女リリカルなのはA’s FanFiction」を試してみました。

説明によると、Yahooデベロッパーネットワークが公開している形態素解析を使っているようです。

結果は以下の様になりました。
地の文中心の文体のようです。
かな:漢字の比率は読みやすい範囲だと思われます。
1つ1つの文章の長さは平均的です。
読みやすいと思います。
文体やテンポにもよりますが、平均と比べやや副詞が少ないようです。
指示語によって文章がうまく流れています。
接続詞が多めに挿入されています。
文章運びがやや論理的かもしれません。
体言止めはほとんど使われていません。
連用中止法の使用頻度は平均の範囲内です。
自立語における名詞の比率は平均の範囲内です。
名詞比率は文章が説明的・要約的かどうかに関係します。
物事を形容する言葉と動きの描写の比率は平均的な範囲です。
MVRが低いと動き中心、高いと形容中心となります。

形態素解析については詳しくないのですけど、上の結果を読むと「平凡な文章だけど理屈っぽい、または説明的」といったところでしょうか。

あくまで解析なので、文章を構成する要素から判定しているだけなのでしょうけど、今読み返してみると情緒的なものはあまりなくて、状況をなぞっているだけな文章ではあるので、わりとあっているかも。

武装神姫(10)「クリスマスソングを君に」

このアニメって全何話なんだろう?

一話完結だから何話でも大丈夫な気はするけど、劇中の季節は冬となり実放送時の12月と同じ時期となりました。この速度だと次は追い越してしまいそう。この流れだと一年間を全13話で描くのかな…と、前にも書いたかも。

 

劇中でツガルが脚部を損傷した際に、神姫ショップで修理してもらうという会話がありましたけど、神姫だけで訪れてもアフターサービスを受けられるって事???(年間保守契約を結んでおけば、神姫自体の製造番号で照合すればいいのかもしれないけど…)

それにしても神姫程度の大きさだと、確かに動物に戯れ付かれたりした際に損傷しちゃうというのはありそう。レーネは犬に咥えられていたし、 Moon Angel ではカグヤがカラスに咥えられちゃってたし。

 

次回はヴァローナが登場するみたい。

武装神姫(9)「レーネの地下帝国ウォーズ」

今回の話を見ると、アニメ版の武装神姫では、野良神姫というが結構存在しているように描かれています。

劇中でも触れられているように、不要になった神姫はメーカーに回収する事になっているようだけど、実際には様々な理由によって野良神姫は増え続けていそう。

例えば、

  • 所有者が引越した際に、置いてけぼりになった。
  • 所有者に捨てられた。
  • 神姫が所有者から逃走した。
  • 所有者と死別した。

と、ちょっと考えただけでも色々な状況が考えられます。

神姫にロボット工学三原則が適用されるかわかりませんけど、自己保存のために[1. 野良神姫同士で助け合ってコロニーを作るというのはありえそうです。

ただ、そうなってくると「人間がいなくてもかまわない」という状況になってしまうような。

…とか考える様なアニメじゃないのでしょうけど。

ジールベルンとオールベルン

 以前にも貼付けたオールベルンさん

今回は、ジールベルンとオールベルンが登場しました。

自分はオールベルンしか持っていないのですが、今思えばジールベルンも買えばよかったかも。(買った当時は、デザインに共通部分が多い為、どちらか片方でいいかなと思っていました。)

この二体は剣士タイプで、劇中でもサーベルで戦っていましたけど、銃器を使用する神姫が相手だとちょっと辛そうかも。

 

あちこちで書かれている事ですけど、武装神姫のアニメをやっていても本物の武装神姫が買えないというのは、ちょっと悲しいですね。

いまから手に入れようとしたら、オークションかまんだらけあたりを探すしかないかな。

 

D3.js の動作確認が手軽に出来るサイト

D3.js の動作を比較的簡単に確認出来るサイトを見つけたので、覚え書きとしてリンク。

Tributary

D3.js に特化した jsdo.it といったところでしょうか。

Rickshaw

時系列で並んだデータをプロットするのに適したライブラリです。 D3.js を直接使用するよりも容易に利用する事が出来ます。

Nvd3

こちらも D3.js を使用したライブラリです。

D3.js でここ10年間のアニメ放送日をプロット

今日も D3.js で遊んでみました。

前回と同じく Example に掲載されている CalenderView そのままです。

 今回は動かないデモ

上図の様な表示は、数年間分の情報をまとめて表示するのに便利ですので、

一年間をプロットするカレンダー表示を使用して

  • TV放送開始(赤)
  • 映画(緑)
  • OVA等の発売

を10年分表示させています。(データは .lain を参考にしました。カテゴリ分類はちょっと適当かもしれません。)

こうやってみると、やはり番組改編期に集中しているのがよくわかります。

前述したページでは、 2000年(74本)から2010年(187本)に増えているのですが、CalenderView をそのまま使用しただけでは、アニメの放映数をうまく表現出来ていないですね。今回の様な場合は、同日に放送する番組数に応じて色を濃くする、といった処理をするのが良さそうです。

D3.js を使ってみる。

データを視覚化すると、よりわかりやすい説明が出来るようになったり、いままで見えなかったものがより見えるようになります。

そういった用途に便利なライブラリのひとつに Data-Driven Documents というものがあります。D3.js は JavaScript ライブラリとして提供されていて、様々なデータを視覚化する際の手助けをしてくれます。

描画ライブラリですので、JSONを渡すだけで奇麗なチャートを描画してくれるわけではなく、どんな図を描くかはSVG等を使用して自前で行う必要があります。

使えると便利だと思うのですが、使えるようになるまではかなり時間がかかりそうです。そんなわけで、まずは既存のコードをいじってみる事にして Les Misérables Co-occurrence のデモを使って遊んでみました。

 実際に動くデモ

上の図は、魔法少女リリカルなのは A’s -THE GEARS OF DESTINY- の対戦カードを表示させてみたものです。左上のリストボックスを使用する事で「名前」「対戦数」「グループ」で並び替える事が出来ます。

ちなみにグループは以下の様にしてみました。

  • 時空管理局
  • フローリアン姉妹
  • 王様とその仲間
  • 八神家
  • 別シリーズ[1. Vivid, Force]の登場人物
  • その他[2. リニスとプレシア]

データ入力に間違っていなければ、八神家同士(ユーリを除くと王様たちも)では戦ってないんですね。

さすが仲良し家族?

武装神姫(8)「ある日どこかで」

前回が夏だったけど、作中では秋。もしかして作中で四季全てやるのかな。

今回の話だけを観るとなら「もしアンが人間だったら…」というもしも話、という面からは楽しめると思うのですけど、武装神姫のエピソードとして見るとなんともコメントしづらい内容でした。

元々武装神姫はフィギュアから始まったので、ストーリーや設定といったものはあんまり決められているわけではないため、今回の話も「武装神姫のひとつ」なのかもしれません。

ただ個人的には、神姫は「小さな相棒」と考えていたので、なんか違う様な気がしてしまいました。(アンの夢でした、ってオチなのかもしれませんけど、そう考えると機械も夢をみるのかどうかって話になって…)

それにしても、アイネスはわりと損な役回りをしている様な気がして、ちょっとかわいそうに見えてきました。

武装神姫(7)「訪問者は雨音と共に…」

今回は怪談風味の話でした。

話の中では季節が夏なのですけど、放送しているのが秋(これを書いているのは2012-11-23)。ですので観ている側としてはちょっと違和感があるような。

幽霊がマスターの神姫という設定はどうなんだろう?

それにどうやって登録したんだろう…等と、色々とツッコミどころがあるような気がするのですけど、もしかしたらこの話全体で一つの怪談話だったのかもしれない。

でも、ゼルルっち(ゼルノグラード型)が登場していたし…あんまり考えない方がいいかな。

フブキ型神姫

今回登場したフブキ型は、かつて存在していた武装神姫のオンラインサービス「ジオラマスタジオ」「バトルロンド」において、初期添付されている神姫だったそうです。(残念ながら私は利用した事がありません。)

バトルマスターズにおいても、捨てられていたのを拾うエピソードがありますので、デジタルデータとしての神姫ではおなじみの神姫かもしれません。

CherryPy を CGI として実行する方法

Python でウェブアプリケーションを作成する方法というのはたくさんあります。

私が好んで使用しているのは Pyramid(Pylons) や Zope なのですが、もっと小さなアプリケーションを作成、言ってしまえば1ファイルで完結してしまう様なものを作るにはちょっと大げさすぎる気もしています。

CGI として Python スクリプトに実行権限を与えてやるのが最も簡易的な方法なのですが、 Python の場合は WSGI という機能があり CGI で直接呼び出すよりも、より良い方法が存在しています。

CGIでの呼び出し
print "Content-type: text/plain"
print
print "Hello World!"
 wsgiでの呼び出し
#!/usr/bin/env python
import wsgiref.handlers

def application( environ, start_response ):
  start_response( "200 OK", [ ( "Content-Type", "text/plain" ) ] )
  return [ "Hello World!\n" ]

if( __name__ == "__main__" ):
  wsgiref.handlers.CGIHandler().run( application )

コードは長くなっていますが、 wsgi の方が単純な標準入出力を返すよりもプログラミングらしいかと思います。

CherryPy

と、前置きが長くなってしまいましたが、 CherryPy という Python モジュールで作成したアプリケーションを CGI で実行したい、という話です。

CherryPyの例
#!/usr/bin/env	python
# -*- coding: utf-8 -*-
#
# ------------------------------------------------------------------ import(s)
import	sys
sys.path.append( "./eggs/CherryPy-3.2.2-py2.7.egg" )
sys.path.append( "./eggs/Jinja2-2.7_devdev_20121117-py2.7.egg" )

import	wsgiref.handlers
import	cherrypy
import	jinja2

# ------------------------------------------------------------------ global(s)
oCJinja2Env	= None

# ------------------------------------------------------------------- class(s)

# ----------------------------------------------------------------------------
##
#
class Test( object ):

	@cherrypy.expose
	def index( self ):
		oCTemplate	= oCJinja2Env.get_template( "index.jinja2" )
		return( oCTemplate.render() )

if( __name__ == "__main__" ):
	global	oCJinja2Env

	oCJinja2Env	= jinja2.Environment( loader = jinja2.FileSystemLoader( "res/templates" ) )

	wsgiref.handlers.CGIHandler().run(
		cherrypy.Application( Test(), script_name = None, config = None )
	)

# ---------------------------------------------------------------------- [EOF]

上記のようにすると、 CherryPy を使用したウェブアプリケーションを CGI として実行する事が可能になります。

でも今は Amazon Web Services や Windows Azure などを利用するのが一般的かもしれませんので「CGI だけでなんとかしなければ…」といった場面は少ないかもしれません。

なのはDAYS’ に参加してきました。

以前の投稿にありますように、なのはDAYS’に参加してきました。

なのはDAYS’は京都のイベントですので、関東に住んでいる自分にとって遠いイベントではあるのですけど、京都旅行を兼ねて行ってみようかな?という思いから今回の参加となりました。

京都には全く土地勘がないのですけど、なんとか迷わずにみやこめっせにたどり着く事が出来ました。

一番の心配は迷う事よりも、朝早く起きれるかどうかだったのですが、そちらは大丈夫でした。

勧業祭

自分が参加した事があるイベントは、リリカルマジカルとコミックマーケットだけなので、他のイベントは実感がないのですけど、勧業祭は机と机の間が広くとってあって、開放感を感じました。

それから京都だからでしょうか、外国人観光客らしき方も何名か訪れていたようで、当サークルのグッズも幾つか手に取って頂けました。

水凪工房のブースに足を運んで頂いた方、どうもありがとうございました。

おまけの旅行

イベントの後は京都を散策…したかったのですけど、結構な雨に降られてしまいました。カメラも持っていったのに結局使わずじまいでした。(太秦萌も見つけられなかったな。)

 

武装神姫(6)「アテンションプリーズ! 当機は地獄へ参ります」

今回のエピソードは、神姫は「機械、あるいは量産品」というのを改めて感じさせる内容でした。

劇中にアンと同じ姿の神姫(アーンヴァル型)が数多く登場する場面等や全員同じ声でしゃべっている、といったシーンで表現されているんだな、と感じました。

最後の場面でアーンヴァル型が並んでいても、ちゃんと主人公は見分ける事が出来たというのも、現実世界ではありそうですしね。(アニメだとまったく同じように描かれていましたけど、第三話ではヒナの塗装もしていた事からも、細かい傷がついていたり修復したりした後なんかがついているのかも。)

 

でも実際に自分の神姫が並んでいたら、見分けられる自信はちょっとないかもしれない。手持ちだとアーティルとシュメッターリングなら見分けられるかな…(アニメと違って自分で動いたりしないから、箱からあまり出していない神姫だとなおさら。)

 

次回はフブキ型神姫が登場。

一話完結型だと続きが気にならないのがうれしいところ。