タグ

Algorithmに関するytoのブックマーク (6)

  • 【ベイズ】Naive Bayes(単純ベイズ)による文書分類のサンプルプログラム【Perl】

    【ベイズ】Naive Bayes(単純ベイズ)による文書分類のサンプルプログラム【Perl】 2013-07-26-1 [Programming][Algorithm][NLP] かなり昔に作った Naive Bayes(単純ベイズ)による文書分類のサンプルプログラムを整理したので公開しておきます。Perl で書かれています。Pure Perl。 Naive Bayes についての詳細は下記のサイトをどうぞ。 - 単純ベイズ - 機械学習の「朱鷺の杜Wiki」 - Wikipedia:単純ベイズ分類器 さて、Naive Bayes で分類するときには下記の式を用いるわけです。 Pについての定義は下記: 実装を簡単にするために log をとって足し算にしています(argmax ですが実際はマイナスかけて argmin で実装)。 学習データ 分類したいカテゴリごとに1行。 各行はカテゴリのラ

    【ベイズ】Naive Bayes(単純ベイズ)による文書分類のサンプルプログラム【Perl】
  • 【アイディア】圧縮率向上のための構成支援ツール

    【アイディア】圧縮率向上のための構成支援ツール 2011-03-28-1 [Idea][NLP] 日語文字列の場合(に限らないけど)、使う字種を少なくするほど圧縮率が向上する。漢字をひらがなにすると情報量が減るので(「記者」を「きしゃ」と表記すると「汽車?帰社?貴社?」と曖昧性が増える=情報量減少)、当たり前のことだけど。 ということで、圧縮率向上のための構成支援ツールがあると嬉しい。「この文字をひらがなにするとこれだけ圧縮率が上がります」と教えてくれたり。 ひらがな化の推薦順序はどういう漢字がひらがな表記率が高いかの統計データを使う。例えば「面白い」を「おもしろい」と書くのは一般的だけど「東京駅」を「とうきょうえき」とはあまり書かない、みたいな統計データ。コーパスから得ることができる。 既出ネタかな。 ちなみに手元にある100万文字ほどの日語テキストとそれを形態素解析器通して読みだけ

    【アイディア】圧縮率向上のための構成支援ツール
    yto
    yto 2011/03/29
    思いつきレベル。
  • Modern Information Retrieval 第二版をゲット!

    Modern Information Retrieval 第二版をゲット! 2011-02-23-1 [Book][NLP] 発売がのびのびになっていた Modern Information Retrieval (MIR) の Second Edition ですが、やっと入手しましたよ! 初版と比べて厚さ3倍! 参考文献のページのフォントが大きくなってて余分にページ数をっており、そこを除けば厚さは2倍ほど。 ■Berthier Ribeiro-Neto,Ricardo Baeza-Yates / Modern Information Retrieval ref. - [を] Modern Information Retrieval 第二版が2008年5月に出るみたい[2007-10-17-2] - [を] Modern Information Retrieval 第二版の発売が2009年

    Modern Information Retrieval 第二版をゲット!
  • インデックスを使った指定行取り出しプログラム(Pure Perl)

    インデックスを使った指定行取り出しプログラム(Pure Perl) 2010-08-10-1 [Programming][Algorithm] テキストファイルから指定した行を取り出すタスクについて。 頭から走査する方法 まずはファイルの頭から走査していくナイーブな方法。 ■コード(getline-naive.pl): #!/usr/bin/perl use strict; use warnings; my $qidx = shift @ARGV; # start from 0 my $tgtfn = shift @ARGV; open(my $fh, "<", $tgtfn) or die; while (<$fh>) { next if $. != $qidx + 1; print; last; } close $fh; 先頭行は0行目になる仕様。 ■実行例: % cat test.d

    インデックスを使った指定行取り出しプログラム(Pure Perl)
  • 誤り許容カウント法(lossy count method)のサンプルプログラム

    誤り許容カウント法(lossy count method)のサンプルプログラム 2010-05-12-1 [Programming][Algorithm] 1行1ラベル形式で、 1万種類のラベルを持つ、 100万行のデータがあるとします (ラベルの頻度分布はジップの法則にだいたい準拠するとします)。 各ラベルの頻度をハッシュを使ってカウントするとなると、ハッシュエントリ1万個分のメモリ容量が必要になります。(1万じゃたいしたことないな、という人はもっと大きな数に置き換えて読んでください。) しかし、カウント後に高頻度のものしか使わないということも多いと思います。例えば頻度5000以上のもののみ取り出してあとはいらない、とか。 そうなると、全部のラベルのカウントデータを最後まで保持するのは無駄に思えます。 そこで登場するのが「誤り許容カウント法(lossy count method)」。 低

    誤り許容カウント法(lossy count method)のサンプルプログラム
  • 幅優先探索で迷路の最短経路を探す

    幅優先探索で迷路の最短経路を探す 2010-01-14-4 [Algorithm][Programming] 迷路の最短経路を探すプログラムを作成するという問題について。 - 人材獲得作戦・4 試験問題ほか (人生を書き換える者すらいた。) http://okajima.air-nifty.com/b/2010/01/post-abc6.html これは単なる幅優先でOKですね。 足跡を記録していき、すでに別の子が通った道にぶつかるか(足跡の有無で判定)、行き止まりに到達したら枝狩り。 幅優先なんだからこれで見つかるのが最短経路。 後からの「最短性のチェック」は不要です。 「アルゴリズム知らないとできない」とか以前の問題で、正式にプログラミングの基礎を学んだ人ならできて当たり前の問題です。ピンと来ない人は、ポインタわからない、再帰わからない人と同列かなあ。 バリバリプログラミングからは一線

    幅優先探索で迷路の最短経路を探す
  • 1