タグ

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

  • 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
  • perlでテトリス! - download_takeshi’s diary

    偶然おもしろいモノを発見しました。コンソールで遊べるperlテトリスです。 スクリーンショットとってみました。 なんと、macbookのターミナル上でカラフルなテトリスが元気よく動いてます! それにしても、俺テトリス下手だな。。。 ってのはおいといて、ソースを見てみましょう。難読化されてます。 #!/usr/bin/perl $_='A=15; B=30; select(stdin); $|=1; select(stdout);$|=1; system "stty -echo -icanon eol \001"; for C(split(/\s/,"010.010.010.010 77.77 022.020.020 330.030.030 440.044.000 055.550.000 666.060.". "000")){D=0;for E(split(/\./,C)){F=0;for

    perlでテトリス! - download_takeshi’s diary
    croneco
    croneco 2010/06/16
  • 知ってそうで意外と知られていないperlの小技 10選 - download_takeshi’s diary

    意外と知られていないperlテクってのが、意外とあるもんですね。 最近身の回りでいくつか話題に上がったものがあったので、ちょっと書いてみます。 どれも最新のモダパ的なモノではないけども、知っておくと地味に便利かもしれないノウハウです。 中級レベル以上のperlユーザの人たちでも「お、こんなの知らなかった」というのもあるかもね。 複数項目でのソート よくエクセルなんかで「A列を降順、B列を昇順にして並び替え」みたいなことしますよね? perlで複数項目のsortではどうすればできるでしょうか? じつはとっても簡単。sortの次に続くブロックの中でorするだけです。 例えば以下のような4人の子供たちのデータを年齢順、体重順でソートしてみます。 use strict; my @data = ( { name => '太郎', age => 10, weight => 25, }, { name

    知ってそうで意外と知られていないperlの小技 10選 - download_takeshi’s diary
  • perlXSでSTLのstd::mapを使ってみる - download_takeshi’s diary

    ここのところC++でコードを書いているんですが、やっぱりそいつをperlから使いたい。 ということでXSについてお勉強中です。 ごく簡単なものなら書けるようになってきましたが「perlから渡したハッシュをC++側でstd::mapとして受け取りたい」といった特殊なケースではまってしまったのでメモっておきます。 いろいろ悩みはしましたが、結論から言うと「hollyなblog」さんのところでまさにドンピシャな記事を書いてくれていたので、これを参考に頑張ってみました。 以下、サンプルコードと実践手順です。 C++コード hashを渡してstd::mapを返すというケースを想定しているので、以下のようなクラスを準備しました。コサイン類似度を計算するコードです。 vector_tool.hとして以下を用意します。 #include <iostream> #include <map> #include

    perlXSでSTLのstd::mapを使ってみる - download_takeshi’s diary
    croneco
    croneco 2010/06/07
  • bayonやCLUTOが爆速な理由 - download_takeshi’s diary

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

    bayonやCLUTOが爆速な理由 - download_takeshi’s diary
  • ギレンも登場!BM25なPerlモジュール書いたよ - download_takeshi’s diary

    久しぶりに何か書きます。 情報検索のアルゴリズムで「BM25」というものがあります。 何年か前に某研究所に遊びに行ったときに「TF/IDFより精度のいいやつ」みたいな感じでかなりアバウトに教えてもらいました。 その時は「名前だけでも覚えて帰ろう」と思っていたのですが、帰りに安い居酒屋で大酒をのみ、電車のなかで騒いでしまうほど酔っ払ってすっかりその名前を忘れてしまってました。(なにやってんだか・・・) で、最近Web+DB pressをパラパラ見ていたらBM25の名前を発見!ああ、これだこれだ、思い出したよ! というわけで、重い腰を上げてモジュール化してみました。 githubに上げてあります。 Lingua::JA::OkapiBM25 http://github.com/miki/Lingua-JA-OkapiBM25 そのうちCPANからも落とせるようになります。 正式名称は「Okap

    ギレンも登場!BM25なPerlモジュール書いたよ - download_takeshi’s diary
  • 本文抽出モジュールを作り直す - download_takeshi’s diary

    2年ほど前にHTML::FeatureというPerl文抽出モジュールを書きました。 こいつはブログやニュース記事から「文らしき箇所」を適当に推測して抽出してくれるモジュールでして、リリースした当時はライバルもいなかったので、ブログなどでは結構反応がよかったです。外国の方も何人か使ってくれたりして、それなりに充実感のあるモジュールでした。 しかし、昨年HTML::ExtractContentが出現してからは、すっかりその地位を奪われ&忘れられた感がありました。作者としては「ま、いっか」的なノリだったのですが、最近になって急に「文抽出界での復権を目指し全面リメイクを敢行するよ!」と思うに至りました。 改善方針 方針ってほどの方針ではありませんが、 - サイトごとに定義できる部分はすなおに定義する - アルゴリズムに頼りすぎない - google adsenceの人気にあやかる - 全体

    本文抽出モジュールを作り直す - download_takeshi’s diary
    croneco
    croneco 2009/07/22
  • ベイズを学びたい人におすすめのサイト - 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
  • HTML::Feature - 重要部分を抽出するモジュール - - ダウンロードたけし(寅年)の日記

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

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