サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
都知事選
blog.broomie.net
thriftとかhadoopなど,何やらいろいろと手を出してしまい,ここのところブログの更新が滞ってしまっていますが,今日は前から書きたかったトピックについて自分へのメモの意味も含めて記しておきたいと思います. はじめに 最近,といっても結構前からなのですが,海外のブログなどで「機械学習の勉強を始めるガイドライン」についてのエントリーがいくつか見られ,かつ,議論も少し盛り上がっています.僕は機械学習が好きなだけで,専門というにはほど遠いのですが,僕も一利 用者としてはこのトピックに関してはとても興味があります. 機械学習というと,色々な数学的な知識が必要であったり,統計学や人工知能の知識も必要になったりしまったりと,専門的に学ぶ機会が無かった人にとっては興味が湧いてもなかなか始めるには尻込みしてしまうことかと思います.今日紹介するエントリーは, そんな方々にヒントになるような内容になっ
[実践]大規模データ分析というテーマで特集を組ませていただき、 1章 データマイニング入門 2章 テキストマイニング 3章 クラスタリング 4章 ログデータマイニング 5章 リンクマイニング という章立てで僕は「テキストマイニング」について書かせていただきました。 テキストマイニングということで、とても幅の広い話なので、どのようにまとめるかに苦難しました。専門家の方には物足りないかもしれませんが、紙面にも限りがあるため、今回はテキストマイニングの概要とhadoopを使った効率的な頻度分析、共起分析についてまとめ、全体的に基本的な内容でまとめさせていただく運びとなりました。 キーワードを抽出し、特徴ベクトルさえできてしまえば、応用できる手法を掲載した書籍がたくさんあることもあり、今回はキーワード抽出のところに重きを置かせていただきました。hadoopを使ってmixiの日記から簡単にキーワード
東工大の奥村先生監修、高村先生著の「言語処理のための機械学習入門」が発売されました。これは読まなければ!と思い、さっそく手に入れました。本書の感想は本当にシンプルな一言に尽きます。 「大学時代にこの本がほしかった。。。」 本書の目次の中見出しまでを以下に引用させていただきます。 言語処理のための機械学習入門 (自然言語処理シリーズ 1) 高村 大也 1. 必要な数学的知識 1.1 準備と本書における約束事 1.2 最適化問題 1.3 確立 1.4 連続確率変数 1.5 パラメータ推定法 1.6 情報理論 1.7 この章のまとめ 2. 文書および単語の数学的表現 2.1 タイプ、トークン 2.2 nグラム 2.3 文書、文のベクトル 2.4 文書に対する前処理とデータスパースネス問題 2.5 単語ベクトル表現 2.6 文書や単語の確率分布による表現 2.7 この章のまとめ 3. クラスタリン
夏いですね.最近この手の記事ばかりで大変恐縮ですが,機械学習に関するウェブ上で手に入る無料のテキストが紹介されていたので,共有したいと思います.ほとんどは以前に僕が紹介している(時々更新しています)「機械学習・自然言語処理のリソースリンク集」に入っているのですが,改めて紹介いたします.おそらく,他ブログでも紹介しているようにも思えますが,このサイトの紹介がてら引用させていただこうと思います. MetaOptimize / 最近ちょっと話題になっている「MetaOptimize /」という機械学習のサイトのQ&Aで紹介されていました.まじめに見ていなかったのですが,このサイト非常に有用でおもしろいですね. 特に同サイトの「qa」はかなり有用かと思いました. フリーの機械学習テキスト 話を戻しますと,興味深いQuestionsがたくさんあるのですが,今回注目したのは「Good Freely A
ほとんどネタ的な話なのですが,最近,OSSツールの多様化にともない,本当に便利になっているのですが,ツールの多様化とともに様々なプログラミング言語でプログラムを書かなかければならないことが増えてきました.Thriftなどを使えば,ある程度限られたプログラミング言語で作業できるので楽なのですが,どうしても特定の言語でツールのAPIを叩かなければならないことが多々あります. 私は,普段はPerlやC++でプログラムを書くことが多いのですが,最近は上記の理由によりJAVAでプログラムを書く機会も増えてきています.それで,JAVAやC, C++などのプログラミングを行き来していると,いつもストレスになるのがビルド環境を構築するのがとてもストレスになるんですね... CやJAVAで開発する場合は,通常まずビルド環境を構築しなければなりません.C, C++であれば,Makefileを.JAVAであれば
いつもネット上で機械学習やNLPに関する便利そうなツールや,有用なドキュメント,動画,ツールなどをメモしているのですが,今後の調査のためにどこかに一つに集約しておきたいなあ,と思い,この記事に集約しておくことにしました.昨今,自動リンク集や,自動インデックス作成に関して研究が盛んにされていますが,これは人力リンク集です!リンク先はほとんどさらっとしか見ていないので本当に有用かどうか保証できませんが,興味を持ったものは掘り下げて別の記事で紹介したいと思います.おもしろいものを見つけしだい,このエントリーは更新していきたいと思います. ※ 有名どころをカバーしているわけではありません,あくまで気まぐれで追加していきます... ※ いくつかカテゴリ間で重複します 解説・読み物系リソース 全般 Statistical Data Mining Tutorials Tutorial Slides by
thriftとかhadoopなど,何やらいろいろと手を出してしまい,ここのところブログの更新が滞ってしまっていますが,今日は前から書きたかったトピックについて自分へのメモの意味も含めて記しておきたいと思います. はじめに 最近,といっても結構前からなのですが,海外のブログなどで「機械学習の勉強を始めるガイドライン」についてのエントリーがいくつか見られ,かつ,議論も少し盛り上がっています.僕は機械学習が好きなだけで,専門というにはほど遠いのですが,僕も一利用者としてはこのトピックに関してはとても興味があります. 機械学習というと,色々な数学的な知識が必要であったり,統計学や人工知能の知識も必要になったりしまったりと,専門的に学ぶ機会が無かった人にとっては興味が湧いてもなかなか始めるには尻込みしてしまうことかと思います.今日紹介するエントリーは,そんな方々にヒントになるような内容になっていると
ここまでの流れ Thriftの調査の続きです。前回のエントリー(Thriftのスピードが改善しました)では、Thriftのperlクライアントが遅いのはNagleアルゴリズムが原因ではないかという仮説をたて、そしてNagleアルゴリズムをオフにした状態で速度が向上したことを書きました。 それに対し、tokuhiromさんにより投稿されたエントリー(ThriftはThrift::BufferedTransport をつかいわすれると 147 倍遅くなってつかいものにならない)では、send(2)のバッファリングをしていないことが原因で、Thriftが吐き出すデフォルトのperlクライアントのスケルトンでは使われていない、 Thrift::BufferedTransport を使うことによってsend(2)がバッファリングされて、高速になることを示してくれました。加えてkazuhookuさんの
今日帰宅したらACMから何やら届け物がきてて,中身をみたらなんとSIGIR 2009の論集でした.SIGIRというのは権威ある情報検索系の国際会議でとてもハイレベルな発表が集まります.僕は会員になっているのですが,ちゃんと論集を海外から送ってくれるなんて律儀ですなあ. 量が多いので全部目を通す自信も体力もないですが,ざーっと見た感じ興味ありそうなのを抜粋. personalize系 最近はやっぱpersonalize系がはやっているんですねえ.というか需要が高いのか. Chen, Chun Personalized Tag Recommendation Using Graph-based Ranking on Multi-type Interrelated Objects (Page 540) Chen, Homer Personalized Music Emotion Recogniti
先週末はThriftのスピード問題にはまり、ガンダム戦記にはまり、ほとんど外に出られませんでした。前回のエントリー(Thriftのスピードについて)の続きとなります。 やっぱりperlのクライアントライブラリに問題がありそう? 多くの有識者の方にアドバイスをいただき感無量でございます。前回のエントリーでは、perlライブラリ、pythonライブラリでThriftが異常なほどに遅いんじゃないか?といった内容でございました。当方のバグではないかと、おそるおそる前回のエントリーをポストしたのですが、tokuhiromさんがこの現象に関して調査と考察の結果を示してくれました(ThriftのPerl Clientが遅すぎる件について)。 クライアントが Pure Perl で書かれており、かつ実装に適当さが感じられ、「速そうには、みえないな。。。」と感じました。 Facebook 内で実際に使用され
shunyaです.最近Crystal Keyのアルバムを聴いていてCrystal Keyが改めて良いと思いました.切なくて甘酸っぱいです. Thriftのパフォーマンスについて さて,前回のエントリー(Thriftが便利すぎる)では,僕が感じたThriftの便利さを熱弁する内容となっておりました.始めて使った感想としてはすごく便利!だったわけですが,実際に何かしらのサービスに導入するためにはThriftのパフォーマンスをチェックしなければなりません. で,今回は簡単なThriftのベンチをとってみることにしました.僕的に気になるのが,前回のエントリーでも書いたようにRESTととの違いです.つまりRESTではCGIを使ってHTTPで通信するので,比較的高速に処理できます.それに対して,Thriftでは独自に定義されたRPCで通信します.とても便利なのはいいのですが,この独自のプロトコルがどれ
ちょっと前に「thriftって便利らしいよー」って話を聞いていたのだけれども、なかなか手をつけられずにいたらはてなブックーマークで使われているらしいという噂を聞いたり、Thriftを使って俺俺Key-Value Storeを作ったのように、TXを使ったThriftの紹介などが出てきたりしたのでそろそろ自分でも試したいなあと思い、試しました。で、先に結論を言っておくとThrift、とても気に入りました。とても簡単に処理用の専用サーバをたてることができて、かつ簡単にクライアントから処理要求が送れます。ボクは今まではRESTFulな感じでhttpでこのタスクをやっていたのですが、RESTFulな専用サーバをたてるのは結構開発コストがかかるんですよね。その点で、Thriftは開発コストはとても落ちると思うのでとても気に入っています。なんといって言語バインディングを自動で生成してくれるのは本当に開発
今日会社で多次元のデータを2次元にクールでベストプラクティスな感じでプロットするにはどうしたらいいんだろうね、やっぱ多次元尺度構成法じゃない?的な会話をしていたのだけれども、2次元にデータを落とし込むと人間にもわかるデータになって本当におもしろいですよね。今日はその一例というか、いくつかの分類器の分類精度を2次元にプロットした結果を示した実験結果を解説したページを紹介します。おおーこうゆうのみたかったんだよなー!と個人的にはかなりエキサイティングな感じでした。 要約というか意訳になってしまうのですが、ページに以下のように説明されています。(細かいところは訳してません) http://home.comcast.net/~tom.fawcett/public_html/ML-gallery/pages/index.html 分類タスクの機械学習の研究では定量的な評価が重要です(精度とかACUと
こんにちわ、shunyaです。 身内の不幸などでどたばたしてしまい、ブログの更新ができていないのです。ということで、今日もどたばたなので小ネタで軽く更新しておきます。 情報検索の教科書で有名なIntroduction to Information Retrieval(略してIIR)は、 Introduction to Information Retrieval 情報検索の基礎から、有名な機械学習のアルゴリズムまで幅広く解説されてあり、いろいろ忘れるたびにお世話になっています。どうお世話になっているかというと、これは結構有名な話なのですが、上記の本が実はPDFで公開されているんですね。すてき。 http://www-csli.stanford.edu/~hinrich/information-retrieval-book.html これは、本当によく使う手法がわかりやすく書かれているのでおす
すごい、有名なアルゴリズムのサンプルプログラムがたくさんあります! http://www.yom-tov.info/Uploads/ # Parent Directory # Ada_Boost.m # Bottom_Up_Parsing.m # C4_5.m # DHSchapter2_fixed.mat # Grammatical_Inference.m # Marginalization.m # PPT.m # SVM.m # Sequential_Feature_Selection.m # calculate_region.m だけどmatlabわからない。。。 いつか解読してみせる。
ハイクオリティの最新の機械学習の論文って入手するのが大変ですよね。僕はよくACM系のちょっと前の論文をあさったりするのですが、やっぱり最新の機械学習ライフをエンジョイするには最新の論文が読みたいですよね。そんな、サイトがありました!ってこれってもしかして常識? Journal of Machine Learning Research これはすごい。最新の機械学習に関する論文が読めまくります。こんなポータルが欲しかったんです。RSS機能もあるようですし、ちょくちょく目を向けたいと思います。おもしろい論文があったら紹介したいですね。
こんばんわ、shunyaです。 突然なのですが、よく分類器などを実装して、その精度をチェックするためにコーパスが必要になることってよくありますよね。 そこで、よく論文などで評価で使われているデータセットを使おうと考える訳ですが、そうゆう時に限ってデータセットの名前が出てこなかったりします。 あと、いつも同じデータセットだとあんまり面白みもかけてきちゃったりして、よーし自分で作っちゃおうぞー!ってなってがんばってクローラーを書いたりして、ウェブコーパスを作ったりしようとするんですが、だいたい途中で飽きちゃったりするんですよね。 さて、前置きが長くなりましたが、machine learningの評価で使われるデータセットがまとめてあるページを見つけたので紹介させていただきます。 UCI Machine Learning Repository: Data Sets ぱぱーっと見た感じで、すごい
Algorithms of the Intelligent Webという情報検索の本がございまして、ずっと読みたいなあと思っていたら、本の内容のサンプルがありました。 http://www.manning.com/marmanis/SampleChapter2.pdf これが、実はサンプルってレベルではなくて2章と3章がまるごとPDFで公開されているんですね。それで軽く読んでみたんですが、すごいわかりやすくて、普通に読み物としておもしろかったのでメモっておきます。 上記のリンクは2章で「searching」という題で、つまり検索エンジンの話がまとめてあります。 さらっと全部読んだんですけど、大雑把に感想を述べるとかなり基礎的な内容ですが、本当にわかりやすく解説してあるので、例えば、あまりこの分野に詳しくない人に説明する時や、自分でさらっと検索エンジンの要素を整理したい時とかには超便利だと思
普段僕はプログラムを書くことが多いのですが, use strict; use warnings; を頭に書くのは当然として,それでもちゃんとできているか心配になることが多々あります. そこで,Lintというプログラムでperlのプログラムを厳密にチェックできるということなので,最近これを使っています.perlではB::Lintというのがあります. 詳しくはB::ListのPODを読むとして,とりあえず使い方としては以下のように使います. perl -MO=Lint,all program.pl allというキーワードはLintにあるチェック機構をすべて適用します.つまり厳しくwarningsを吐き出すようにしています.結構,-w だけでは気づかなかったwarningsを吐き出してくれるの重宝しています.
すごくいまさらなんですが. もう1年以上も前になるかな,GoogleのC++のスタイルガイドというのが公開されて,なかなか読む暇が無くてずっとあとで読む上体だったんだけど,昨日ちらっと読んでみたらなかなかおもしろくて寝不足なのです. いくつか個人的におもしろかったところをピックアップするというか,忘れないためにメモっておこうと思う. ちなみに参照したサイトは以下です. Google C++スタイルガイド 日本語訳 インライン関数 インライン関数を定義するのは関数が小さいときのみ(10行以下)にする。 個人的にはinline関数はほとんど使わないから,このキモチがよくわからないんだよなあ.inlineにしなくてもコンパイラが結構最適化してくれることが多くて,経験上ほとんどスピードが変わらないということが多い.inlineがどういうときにもっとも有効なのかって,まだ僕には結論を言うほどC++に
おかしくなったというのは冗談で。というか語弊があって。 実は今日macにsnow leopardを入れたんですね。そんで、ちょっと調子に乗ってplaggerとかでぷらぷらしようと思ったんです。そこでいつもようにcpanコマンドで依存性と悪戦苦闘しようと思ったんですわ。そしたらびっくりcpanコマンドでモジュールを入れようとすると全部エラーなんですね。makeとかずっこけまくりで一つもモジュールが入れられないんですわ。どんなOSでもステーブルしか使わない主義だったのに主義を曲げたから罰が当たったのかなあなんて思いながらも悪戦苦闘していたんですわ。 そんで色々google先生とぐるぐるぐぐると情報を探していたらどうやらsnow leopardでは、perlのヴァージョンが5.1.0らしいんですね。そこでヴァージョンをチェックしてみたんです。 macbook:~ shunya$ perl --v
ここ何回かgperfのメモを取ってきて,かつここには書かなかったけど個人的にサンプルプログラムを作って改めて思ったんだけど,gperfってルックアップがめちゃくちゃ高速なわけですね.完全ハッシュなので当然っちゃー当然なのですが.早くてお手軽ってのがgperfの良いところなわけですが.さてさて,早いのわかったけど,どれぐらい早いの?ってのは何かの指標がなければわかりませんね.そこで,今のところ最強に早いといわれているTokyo Cabinetのhash DBMとのスピードの比較をしてみようという,結構無意味なベンチテストをやってみた. データの準備 やったことは単純で,ランダムにkey, valueのセットを作成し,それぞれ10セット,100セット,1000セット,10000セット,100000セット,のDBの作成時間と,ルックアップの時間を比較してみた.ちなみにkeyは[A-Za-z1-9
超個人的なエントリで恐縮です。 先日完全ハッシュ関数に関して調査していたのですが、 perfect hash function(完全ハッシュ関数)の概要 そこで、GNU gperfというアプリケーションが完全ハッシュ関数の生成器として存在するって話を少ししだけれども、かくいう僕もgperfを使わせていただいておるのですが、実際にどんなアプリケーションやユースケースで使われているのかなあ、と興味を持ったので軽い気持ちで調べてみた。 gperfの本家のマニュアルを調べてみると確かに、それらしいことが書いてある。 gperf currently generates the reserved keyword recognizer for lexical analyzers in several production and research compilers and language proce
普段emacsを使っている僕らとしては、emacsのkey bindingが無いエディタはエディタとして機能しません。しかし、windowsでもmacでもemacsのkey bindingが使えるソフトはあるので問題ありません。 だけど、webのtext boxとかがインターフェースだと、もう舌打ちしまくることになるのです。そんで、fire foxのadd-onでemacsのkey bindingを実装したいなーって思ってたら、ありました。 https://addons.mozilla.org/ja/firefox/addon/4141 今も、このadd-onを使って書いているのだけど、超快適。emacsを使っている人はぜひ入れてみると良いです。web上に文書残すモチベーションが超あがります。mixiのコメントが億劫だった人もきっと、コメントする率があがるし、はてな日記にまでもコメントしち
お久しぶりでございます。 技術評論者さまのWEB+DB PRESS Vol.59で少しだけ執筆させていただきました。 [実践]大規模データ分析というテーマで特集を組ませていただき、 1章 データマイニング入門 2章 テキ …
Tokyo Cabinetを使ったCMSである、Tokyo Promenadeをさくらのレンタルサーバに導入する方法をまとめておきます。Tokyo Promenadeについて詳しくはこちらをお読みください。 おおまかな手順 Tokyo Cabinetをインストールする Tokyo Promenadeをインストールする Tokyo Promenadeを設置する Tokyo Cabinetのインストール さくっと入ります。気をつけることはmakeではなくてgmakeを使うことだけです。あと、prefixを指定するだけ。今回は仮にhomeディレクトリに$HOME/usr/localを作成し、そこにインストールします。 Tokyo Cabinetのダウンロードとパッケージの解凍をします(最新バージョン推奨) Tokyo Cabinetのパッケージはこちら wget http://tokyocabi
このページを最初にブックマークしてみませんか?
『Blog::Broomie.net - Programming, Web Service, NLP, machine leraning, sometime...』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く