タグ

ブックマーク / download-takeshi.hatenablog.com (20)

  • websequencediagrams をPerlでごにょごにょ - download_takeshi’s diary

    http://www.websequencediagrams.com というサイトを知ってますか?ZIGOROuさんがブログで使っていたので知ったんですが、実に便利っぽいです。専用のダイアグラム構文を書いてサイトにHTTP POSTするとPNGやPDFでシーケンス図を生成して返してくれる代物です。 構文自体とてもシンプルです。 Alice->Bob: Authentication Request Bob->Alice: Authentication Response こんな感じでとても簡単&スマートなものなんですが、さらにこいつをプログラマブルに書けたら便利かなー、なんて思ってしまい、Perlでモジュール化してみました。 WebService::WebSequenceDiagrams github: http://github.com/miki/WebService-WebSequence

    websequencediagrams をPerlでごにょごにょ - download_takeshi’s diary
    yuiseki
    yuiseki 2011/12/01
  • 手軽に関連語を取得するモジュール - download_takeshi’s diary

    1つ前のエントリで「特徴語を抽出するモジュール」のことを書いたらそこそこ好評だったみたいなので、調子に乗ってもう1モジュールを紹介しておきます。 Lingua::JA::Expand - word expander by associatives http://search.cpan.org/~miki/Lingua-JA-Expand/ Expandってあたり、命名センスないのがバレバレですが、、 これは何をするものかと言うと、任意のキーワードを適当な数の関連語セットに膨らませてくれるモジュールです。 使い方と結果サンプル 使い方はこうです。 use strict; use Lingua::JA::Expand; my $str = 'ラーメン'; my $exp = Lingua::JA::Expand->new; my $result = $exp->expand($str); #

    手軽に関連語を取得するモジュール - download_takeshi’s diary
    yuiseki
    yuiseki 2011/06/13
  • ベイズを学びたい人におすすめのサイト - download_takeshi’s diary

    ベイジアンフィルタとかベイズ理論とかを勉強するにあたって、最初はなんだかよくわからないと思うので、 そんな人にお勧めのサイトを書き残しておきます。 @IT スパム対策の基技術解説(前編)綱引きに蛇口当てゲーム?!楽しく学ぶベイズフィルターの仕組み http://www.atmarkit.co.jp/fsecurity/special/107bayes/bayes01.html いくつかの絵でわかりやすく解説してあります。 自分がしるかぎり、最もわかりやすく親切に解説してる記事です。数学とかさっぱりわからない人はまずここから読み始めるといいでしょう。 茨城大学情報工学科の教授のページから http://jubilo.cis.ibaraki.ac.jp/~isemba/KAKURITU/221.pdf PDFですが、これもわかりやすくまとまってます。 初心者でも理解しやすいし例題がいくつかあ

    ベイズを学びたい人におすすめのサイト - download_takeshi’s diary
  • 「みんなの検索」リリースしました - download_takeshi’s diary

    昨日、仕事で開発をすすめていた検索機能をリリースしたので、ちょっと紹介します。 「gooウェブ検索」で、自分に似た検索をしている人たちの関心事が見える機能「みんなの検索」を提供開始 gooのweb検索で適当なキーワードで検索すると、結果表示面の一番したの方に「みんなが検索中」というボックスが表示されます。 これは何かというと、いま入力したキーワードと同じような意味や関心ごとを持って検索している人たちの検索キーワードがストリームっぽく表示される、というモノです。 http://search.goo.ne.jp/option/topics/2011/ 「みんなの検索」は、同じまたは類似した検索キーワードを入力して検索している他のユーザが、どんな検索キーワードを入力しているのかを表示する機能です。あなたに似た人たちが、たった今しらべているキーワードのストリームが表示されます。 これまでの関連ワー

    「みんなの検索」リリースしました - download_takeshi’s diary
    yuiseki
    yuiseki 2011/02/01
  • クラスタリングツールbayonを便利に使うText::Bayonを書きましたよ - download_takeshi’s diary

    JPerl Advent Calender 2009 のhacker trackに「Perlではじめるテキストマイニング」というタイトルで記事を書きました。テキストマイニング系のモジュールを色々紹介しているので、興味ある人はぜひご覧ください。 さてさて、記事の最後の方で軽くふれましたが、つい先日 Text::Bayon というモジュールをリリースしました。 Text::Bayon - Handling module for the clustering tool 'bayon' CPAN : http://search.cpan.org/~miki/Text-Bayon/ Github : http://github.com/miki/Text-Bayon それの具体的な使い方を紹介します。 何をするものか? Text::Bayonはクラスタリングツールbayonをperlスクリプトからス

    クラスタリングツールbayonを便利に使うText::Bayonを書きましたよ - download_takeshi’s diary
    yuiseki
    yuiseki 2010/10/22
  • 噂のnode.websocket.jsでサーバサイドJSとHTML5 WebSocketを体験してみたの巻 - download_takeshi’s diary

    WebSocketを体験してみたいのと、サーバサイドJSを試したいのと、さらにはmac版のChromeをインストールしてみたという条件が重なり、これはもう深夜だけどnode.websocket.jsを試してみるしかないな、という状況に追い込まれました。 構成 最近あたらしく調達したばかりのmacbook air にvirtualboxを入れています。その上でCentOSが動いています。 macbookをクライアントに、CentOS側をサーバとみたてて話を進めていきます。 ちなみに、virtualboxではアダプタ1をNATに、アダプタ2をホストオンリーアダプタ(IPはstaticに設定)としているので、CentOSからは外にも抜けられるしmacbook側からも自由にアクセスできます。ごきげんな環境です。 Node.JSのインストール まずは土台となるnode.jsが必要。ソースをダウンロー

    噂のnode.websocket.jsでサーバサイドJSとHTML5 WebSocketを体験してみたの巻 - download_takeshi’s diary
    yuiseki
    yuiseki 2010/10/08
  • 行列分解ライブラリredsvdで潜在的意味インデキシングを試してみたの巻 - download_takeshi’s diary

    久しぶりに自然言語処理的な話です。 すこし前にPFIの岡野原さんが公開されたredsvdを試してみました。 redsvd は行列分解を解くためのC++ライブラリであり、特異値分解(SVD)、主成分分析(PCA)、固有値分解などをサポートしています (中略) 例えば、行と列がそれぞれ10万、非零 の要素が100万からなる行列に対する上位20位までの特異値分解を1秒未満で行うことができます. 1秒未満って、す、す、すごくねぇだべか? というわけで早速導入してみますた。 インストール redsvdは内部の行列演算などにeigen3を使っているとのことなので、まずはこいつをセットアップ。あ、そうそうCMAKEも必要だよ。 ちなみに自分の環境でmake checkしたらエラーが少し出てたけど、気にせずそのまま突っ込んでみました。 続いてredsvdをインストール。 マニュアルサイト見ながらやれば問題

    行列分解ライブラリredsvdで潜在的意味インデキシングを試してみたの巻 - download_takeshi’s diary
    yuiseki
    yuiseki 2010/09/22
  • Hadoopに入門してみた - セットアップからHadoop Streaming まで - - download_takeshi’s diary

    大規模データを処理する必要が出て来たので、Hadoopを導入してみることになりました。 以下、導入メモです。 セットアップ 以下のような構成で試してみます。環境はCentOSです。 マスター(host001) ━┳ スレーブ(host002) ┣ スレーブ(host003) ┣ スレーブ(host004) ┗ スレーブ(host005) まずは各マシンにJavaをインストール。JDK1.6を落として来てrpmでインストールするか、yum install java-1.6.0*などとたたけばOKです。(rpmでインストールする場合は http://java.sun.com/javase/ja/6/download.html から jdk-6u18-linux-i586-rpm.binをダウンロードして、実行権限を与えてルートで実行すればインストールできます。) 続いてマスターノードにHado

    Hadoopに入門してみた - セットアップからHadoop Streaming まで - - download_takeshi’s diary
    yuiseki
    yuiseki 2010/09/10
  • bayonやCLUTOが爆速な理由 - download_takeshi’s diary

    クラスタリングツールbayonを使っていて、常々「どうしてこんなに高速に処理できんのかなぁ」と疑問に感じていました。repeated bisectionという手法自体がk-means法などと比べると効率がいいのですが、それにしても、それだけでは説明がつかないほど爆速なわけです。 うまく例えられませんが、自前でk-meansのスクリプトを書いて比べてみると、自転車と新幹線くらいちがうという印象です。はじめてCLUTOを触った時、数万件程規模のクラスタリング処理が当に「あっ」という間に終わってしまい、びっくりした記憶があります。 きっと実装面でなにか特殊なことがあるんだろうなと思い、mixiエンジニアブログでbayonの記事を改めて読み漁っていたら、以下の部分が目に止まりました。 このクラスタの評価は、クラスタの各要素とクラスタの中心とのcosine類似度の和としています。この和が大きいほど

    bayonやCLUTOが爆速な理由 - download_takeshi’s diary
  • Yahoo-APIを無制限に叩くためのモジュール書いた - download_takeshi’s diary

    ふと気づくとYahooの「ウェブ検索API」の利用制限が変わっていて、今までは同一IPからの利用は5万回/24時間でしたが、10月13日から同一appidからの利用が5万回/24時間となっていました。 http://developer.yahoo.co.jp/newslist/1#64 つまりappidを複数用意して数珠つなぎに使って行けば、同一IPからの利用が事実上無制限となるんだよね!?ということで、久しぶりにPerl Module書きました。 WebService::APIKeys::AutoChanger github: http://github.com/miki/WebService-APIKeys-AutoChanger CPAN : http://search.cpan.org/~miki/WebService-APIKeys-AutoChanger まだCPANにあがって

    Yahoo-APIを無制限に叩くためのモジュール書いた - download_takeshi’s diary
    yuiseki
    yuiseki 2009/10/29
    appidを10個登録してローテーション
  • ローカルポートを食いつぶしていた話 - download_takeshi’s diary

    ここのところ、お仕事で管理しているシステムで、夜中に負荷が急上昇する事象が発生しており、夜な夜な対応に追われていました。 (このブログ書いている今も、負荷がじわじわ上昇中なんですが・・・) で、いろいろと調査した結果、ようやく糸口がわかってきました。 結論から言うと、ローカルポートなどのネットワーク資源をいつぶしていたようです。 以下、調べていってわかったことなどのメモです。 トラブルの事象 運用しているのは Apache2.2 + mod_perl2 なwebサーバで、リスティング広告システムの配信系です。 リスティング広告の配信のシステムって一般的にロジックが複雑でいやーな感じなんですが、このシステムもご他聞に漏れずかなりのひねくれ者で、しかもトラヒックは結構多めです。システム全体で、日に1000万〜2000万クエリくらいかな。幸か不幸か、このご時勢においてもトラヒック的には成長し続

    ローカルポートを食いつぶしていた話 - download_takeshi’s diary
    yuiseki
    yuiseki 2009/10/14
  • 名義尺度間の連関係数を算出するperlモジュール - ダウンロードたけし(寅年)の日記

    データマイニングを行う際に、適当な2つの変数にどれだけの相関関係があるのか確かめたくなったとします。 それらのデータはいわゆる「名義尺度」なデータ(地域別の野球チームの好き嫌いなど)だとしましょう。 名義尺度なデータ間における連関係数と言えば「クラメール係数」。 これをぱっと算出してくれるモジュールが欲しくなったので書いてみました。 Statistics::Associations - Calculates Association Coefficients of Nominal Scale. http://search.cpan.org/~miki/Statistics-Associations/ 使い方はこう。 use strict; use Statistics::Associations; my $asso = Statistics::Associations->new; my $m

    名義尺度間の連関係数を算出するperlモジュール - ダウンロードたけし(寅年)の日記
    yuiseki
    yuiseki 2009/07/12
  • クラスタリングツール「bayon」を試してみた - download_takeshi’s diary

    夜中の3時半過ぎですが、久しぶりになんか書こうと思います。 ちょっと前にmixiのfujisawaさんという方がすごくナイスなソフトウェアをリリースしてくれました。 「軽量データクラスタリングツールbayon」 http://alpha.mixi.co.jp/blog/?p=1049 今までにもCLUTOというすごく高精度なクラスタリングツールがありましたが、こいつはライセンス的にちょっとイケズな感じでした。そこにbayonがスーパーマンのように登場してくれました!「商用利用OKだよ」ということで、仕事の上での悩みが解決しました。当にありがたいことです。 さてさて、早速使ってみたいんですが、ブログに書くのにちょうどいい題材がなかったので、以前に自分が書いたエントリからデータを持ってくることにしました。 「芸能人の相関関係を探ってみるスクリプト」 http://d.hatena.ne.jp

    クラスタリングツール「bayon」を試してみた - download_takeshi’s diary
    yuiseki
    yuiseki 2009/07/12
  • 芸能人の相関関係を探ってみるスクリプト - download_takeshi’s diary

    ちょっとした実験をしてみました。芸能人の相関関係を機械的に探索してみます。 具体的には「○○というタレントと関係が深い芸能人は?」といった、芸能人にフォーカスした類似検索みたいな実験です。 技術的には「潜在的意味インデキシング」(Latent Semantic Indexing)といった手法を使います。 これは普通は自然言語処理の世界で使われるテクニックですが、なにも言語だけでなく他のデータ素材でも面白い結果が得られるかもしれないので、やってみようという試みです。 以下に大まかな手順をまとめます。 wikipedia から有名人のリストを抽出 それらの有名人リストについて、一人ずつ「誰と関連が深いか」を集計。具体的には有名人個々のwikipediaのページ中に、先ほど抽出しておいた人名リストとマッチする人名がどれだけ掲載されているかをピックアップしていきます。 上記の方法で有名人の間の相関

    芸能人の相関関係を探ってみるスクリプト - download_takeshi’s diary
  • 汎用的なXMLSocketサーバを書いた - download_takeshi’s diary

    FlashのXMLSocketサーバ「Hoppy」をリリースしました。 Hoppy - Flash XMLSocket Server http://github.com/miki/Hoppy/tree/master githubにあげてあります。そのうちCPANにも反映されると思います。 HoppyはFlashのXMLSocketサーバのperl実装です。いわゆるプッシュ型のwebアプリケーションを簡単に実装することを目標としたTCPサーバです。 内部はperlのPOEによるイベントドリブンな実装なので、POEの知識がある方であれば、かなり柔軟にサーバの振る舞い自体を変更したり拡張したりすることができます。逆にPOEを知らない人でも、いくつかの決めごとに従うだけで、簡単に機能を搭載していく事ができます。 基的な決めごと Hoppyはある程度の「決めごと」を前提とした、汎用的で拡張可能なX

    汎用的なXMLSocketサーバを書いた - download_takeshi’s diary
    yuiseki
    yuiseki 2009/04/26
  • 潜在的意味インデキシング - download_takeshi’s diary

    id:naoyaさんやたつをさんなどの超有名人な方々が以前から実施されている「IIR輪読会」というものがありまして、どうやら今回は第18章の "Matrix decompositions and latent semantic indexing"を輪読したようです。 http://d.hatena.ne.jp/naoya/20090208 http://chalow.net/2009-02-08-2.html Latent Semantic Indexingとは、通称LSIとかLSA(Latent Semantic Analysis)とかいいますが、日語だと「潜在的意味インデキシング」なんて呼びますね。 簡単に言ってみると でっかいマトリックス(数万×数万とかの行列)をたとえば「数百×数万」ぐらいにまで、ぎゅぎゅっと横に押しつぶすように圧縮してみると、あら不思議、のこった行列はとても意味

    潜在的意味インデキシング - download_takeshi’s diary
    yuiseki
    yuiseki 2009/02/11
  • RTMPパケットの仕組み - download_takeshi’s diary

    Flash Media Serverで使われているRTMPプロトコルのことを知りたくてOpenSourceFlashにのってる「Mick’s Breakdown of RTMP」を訳しながら自分でも試してみました。 まずはRTMPサーバを動かしているサーバでtcpdumpしてみてます。 tcpdump -s 1600 -x -i eth0 src port 1935 ちなみに、ここで動かしてるRTMPサーバはKamaitachiです。 サンプルとして提供されているチャットサーバを起動しているサーバでのtcpdumpの結果は以下のようなものとなりました。(説明しやすくするために色をつけています) 0x0000: 4500 004a 5f2d 4000 4006 221d c0a8 0164 0x0010: cae5 2c72 078f f7fc 483c d4e8 2a1c 2f1d 0x0

    RTMPパケットの仕組み - download_takeshi’s diary
    yuiseki
    yuiseki 2009/01/21
  • 「日本語テキストを分類するベイジアンフィルタ」を簡単につくるyo - download_takeshi’s diary

    数週間前の話になりますが、「はてブのリニューアル会見」の記事を読んでいたところ、はてブにも「自動カテゴライズによる記事分類」の機能が搭載されるとか。。。 同じようなタイミングで「似たようなモノ」というか「ほぼ同じようなモノ」を作っていたので、すごーくインスパイアされてしまいました。ジュワ〜。(アドレナリンの放出音) 数週間たってもいまだ興奮冷めやらぬ状態なので、今日はその件について書いてみようと思います。 Lingua::JA::Categorize - a Naive Bayes Classifier for Japanese document. http://search.cpan.org/~miki/Lingua-JA-Categorize-0.00001/ 「はてブのパクリ」ではありません。「ベイジアンによる日語テキスト分類器」を「簡単に作る」ことを目的としたモジュールです。 も

    「日本語テキストを分類するベイジアンフィルタ」を簡単につくるyo - download_takeshi’s diary
    yuiseki
    yuiseki 2008/11/28
  • 手軽にTF/IDFを計算するモジュール - download_takeshi’s diary

    情報検索の分野でよく使われるアルゴリズムで「TF/IDF」というものがあります。 ドキュメントの中から「特徴語」を抽出する、といったような用途でよく使われています。 TF/IDFアルゴリズムのくわしい解説はこことかここを見てください。 今回はこのTF/IDFの計算を「簡単」に実現するためのperlモジュールをCPANに上げましたので、ご紹介します。なまえはLingua::JA::TFIDFといいます。 Lingua::JA::TFIDF - TF/IDF calculator based on MeCab. http://search.cpan.org/~miki/Lingua-JA-TFIDF TF/IDF実装の困りどころ TF/IDFの実装を試みた方であればわかると思うのですが、実際にやろうとすると、TF(Term Frequency)の計算はなんら難しくありませんが、IDF(Inve

    手軽にTF/IDFを計算するモジュール - download_takeshi’s diary
  • HTML::Feature - 重要部分を抽出するモジュール - - ダウンロードたけし(寅年)の日記

    以前からCPANで公開していたモジュールがあるんですが、日語での解説ドキュメントがなかったのと、最近大幅にブラッシュアップしたので、せっかくなので紹介記事を書きます。 HTML::Feature - Extract Feature Sentences From HTML Documents 「えいちてぃえむえる::ふぃーちゃー」と読みます。 ブログやニュース記事など様々なHTML文書から「重要部分」を推測して抽出してくれる perl モジュールです。 「重要部分」とはいわゆる「文」のことですね。文抽出とか焦点抽出とか色々な言い方があるかと思いますが、まぁ要するに特徴的な部分を推測して抽出するわけです。 どういうものか。 例えばブログ記事からヘッダーやフッター、その他のナビゲーションブロックを除いた「記事らしき部分」だけを切り取りたい、とします。 ぱっと思いつくのは「特定のコメントタグ

    HTML::Feature - 重要部分を抽出するモジュール - - ダウンロードたけし(寅年)の日記
    yuiseki
    yuiseki 2007/10/28
  • 1