タグ

!!研究に関するcomet53pgのブックマーク (19)

  • Perl: 多次元連想配列 - ループの仕方

    Perl で多次元のハッシュ(連想配列)を使うときのメモ。 多次元のハッシュは my %foo; $foo{$id1}{$id2} = $val; で作れることはすぐに分かりましたが、全てのキーを列挙するやり方が分からなくて、大晦日の夜ずっと試行錯誤しながら悩んでいました。 while (my ($key1,$val1)=each(%foo)){ } で1次元目のキーと、対応するハッシュのリファレンスを得ることが分かったのですが、ハッシュのリファレンスからどうやって2次元目のキーを生成すればいいのかが分かりませんでした。keys $$val1 とやってもエラーになります。リファレンスは、それ自身が参照先の型を知っているから $$val1 でハッシュにならないの? 年が明けて、Effective Perl を持っていたのを思い出して、リファレンスの項をみてようやく理解できました。まず、リファ

  • TinySVM - 長岡技科大 自然言語処理研究室

    たいにーえすぶいえむ TinySVM 奈良先端大の松研究室が公開しているSVM学習ツール。様々なカーネルが用意されている。また自作カーネルを使うことも可能である。 とりあえずSVMにつっこんでみようという時に良く使う。 http://chasen.org/~taku/software/TinySVM/ [編集] 使い方 Tiny SVMの簡単な使い方。 ■素性の書き方 1 1:5 2:4 3:2 (正例) -1 4:1 5:3 6:3 (負例) まず、一番左の数字が"1"の場合、正例の素性である。これが"-1"の場合は負例の素性である。 ":"(コロン)の左側の数字が『素性番号』、右側の数字が『素性の重み』である。 素性番号には、単語や品詞を対応させ、重みには出現回数や確率を対応させる。 ■学習データを作成 まずは、学習データとして、テキストファイルを作成する。 例えば、以下

  • なんか3(仮名): TinySVM で足し算のテスト

    svm関係は日語のドキュメントが少な杉。 わけのわからない数式とかはいっぱいあるけど。 どうやって遊べばいいの? 実態(いったい)。 と、はてなマークが点滅しまくります。 一応、こんな風にしたら遊べました。 もしかしたら、間違っているかもしれませんけど、闇の中で迷っているよりはマシかな。 ぱくりインスパイヤ先 SVMlight MySVM に関する Tips TinySVM: Support Vector MachinesのサイトのBinary package for MS-Windowsからバイナリをダウンロードします。 んで、解凍すると、bin というディレクトリの中にプログラムが入っています。 svm_learn.exe 学習プログラム svm_classify.exe 分類プログラム 学習データを用意します。 svm.learn.dat というファイルに以下をコピペしてください。

  • ナイーブベイズ再考 - kogelab::memo

    ナイーブベイズは単純ベイズともいうそうな.ナイーブのウムラウトが気になるのかね. さて,以前非常に冗長な表現でナイーブベイズを説明しましたが, 今度はシンプルに,実装したときに思ったことなどを. 昨日は休日だったので,遊びでComplement Naive Bayesも組みました. こいつは補集合を使うナイーブベイズです. さて,ナイーブベイズはこんなposteriorを推定する問題でした. 1.priorをどうしよう 上の式で言えば,p(class)のところ.他の人たちはどういう設定をしているのか気になった. 軽く調べたところ,実装のためになりそうな記述はあまりありませんでした. 集合知プログラミング 作者: Toby Segaran,當山仁健,鴨澤眞夫出版社/メーカー: オライリージャパン発売日: 2008/07/25メディア: 大型購入: 91人 クリック: 2,220回この商品を

    ナイーブベイズ再考 - kogelab::memo
  • NaiveBayesをRubyで書いてみた - シリコンの谷のゾンビ

    前回Perlで書いたMultivariate Berounoulli Naive BayesをRubyで書いた.多重ハッシュがうまく動かず断念.寝て起きて手直ししたらすぐに動いた.謎.さすがRuby,見た目が綺麗(コードは汚いが).Rubyできちんと?プログラミングするの初めてなので,思ったこと 多重ハッシュを使う際にハッシュの初期化が面倒(テクを知らないだけ?) オブジェクト指向だとどうしてもクラスキャストをしたくなる,入門書には書いてないぞ to_fしないと勝手に切り捨て.Perlに慣れていたのではまった エラーがわかりづらい コンストラクタinitializeはどう考えてもtypo量産だろう(事実すでに2回これではまった) はい,どれも自分の修行不足によるものです. Hash.new(0)のようにハッシュの初期値を決めておけるのはかなり便利だけれど,どのクラスのインスタンスなのかを意

    NaiveBayesをRubyで書いてみた - シリコンの谷のゾンビ
  • ぺるりめも / gzipファイルの入出力 (module)Compress-Zlib

    gzipファイルの入出力 (module)Compress-Zlib back gzip で圧縮されたファイルに対する読込/書込みを行う (read) sample.txt を gzip で圧縮した sample.txt.gz を open/read する ---- use Compress::Zlib; $gz = gzopen("sample.txt.gz", "rb"); while ($gz->gzreadline($line)) { print $line, "\n"; } $gz->gzclose; ---- まぁ、open(F, "/usr/bin/gzip -dc sample.txt.gz | ") で <F> を読んでもいいけど :p (write) sample.txt.gz へ、gzip 圧縮されたデータを書き込む ---- use Compress::Zlib;

  • やればできる卒論の書き方 第1部 論文の書き方

    やればできる 卒業論文の書き方 中田 亨 2003年10月15日初版。2009年4月27日改訂 工学部の標準的な卒論の書き方について説明します。修士論文でも博士論文でも書き方は同じです。 第1部 卒論クイックスタート 卒論とは? 他人の真似ではないアイデアが、 それが理論的に可能である理由、 やってみた証拠、 どんなふうに役に立つか、 とともに記述されている、組織立った文書。 卒論は習作であり、基準は甘い。対外発表論文では第1条が「他人のアイデアより明らかに優れたアイデア」と厳しくなる。 「新しい意味を伝えることが、命題の質である。」(ウィトゲンシュタイン) 標準的な卒論の構成 題目: 説明的なタイトルを付ける。例えば「人体計測装置の研究」では舌足らずであり、「赤外線平行投影法を用いた人体計測装置」とか、「海中でも使用可能な人体計測装置」などがよい。(私の上司の金出武雄氏の方式)。 要約

  • Linuxコマンドでテキストデータを自在に操る - じっくりコトコト煮込んだみかん

    Linuxでテキストデータを扱うときに、コマンドをパイプで繋げるだけでいろいろな処理ができて面白いのですが、綺麗に整理されていない気がするのでまとめてみます。ここでは、cat, paste, join, grep, head, tail, cut, awk, sed, tr, sort, uniq, wc を取り上げます。 ファイルを縦に結合 ファイルを縦に結合します。 コマンド 説明 cat file1 file2 ... file1, file2, ... を縦に結合 cat file | ... としてファイルの中身をパイプに流すのにもよく使います。 ファイルを横に結合 ファイルを横に結合します。あまり使わない?*1 コマンド 説明 paste file1 file2 .. file1, file2, ... を横に結合 join file1 file2 file1 と file2

    Linuxコマンドでテキストデータを自在に操る - じっくりコトコト煮込んだみかん
  • 第3回 ベイジアンフィルタを実装してみよう | gihyo.jp

    さらに詳細な利用方法が知りたい方は、Yahoo!デベロッパーズネットワークのマニュアルを参照してください。 ベイジアンフィルタの実装 ここから格的にベイジアンフィルタの実装に入っていきます。 その前に、まずは先程のリスト1のコードを利用して入力された文章をわかち書きし、単語の集合を返す関数を作成しnaivebayes.pyとして保存しましょう。こちらも先程のmorphological.pyと同様にutf-8で保存してください。 リスト2 文章の分割をする関数(naivebayes.py) # -*- coding: utf-8 -*- import math import sys #yahoo!形態素解析 import morphological def getwords(doc): words = [s.lower() for s in morphological.split(doc)

    第3回 ベイジアンフィルタを実装してみよう | gihyo.jp
  • ベイジアン (bayesian)、ベイズ (bayes)、ナイーブベイズ (naive bayes) ってなんですか? [POPFile Documentation Project]

    ベイジアン (bayesian)、ベイズ (bayes)、ナイーブベイズ (naive bayes) ってなんですか? ベイジアン (bayesian)、ベイズ (bayes)、ナイーブベイズ (naive bayes) という言葉は、POPFile や類似のメールフィルターの議論においてよく使われます。これらはたいていの場合、数学の公式のことを言っています。 Thomas Bayes は 1700 年代に確率論を研究した人で、彼の業績は ベイズ統計(Bayesian Statistics)として知られています。そして、この方法は、最近メールフィルタリングの分野でよくとりあげられるようになってきました。それはグループの異なるメッセージを分類するのに非常によい成績を発揮するからです。 POPFile はベイズの定理を用いて、あるメールが work、personal、spam のどのバケツに分

    ベイジアン (bayesian)、ベイズ (bayes)、ナイーブベイズ (naive bayes) ってなんですか? [POPFile Documentation Project]
  • ナイーブベイズを用いたテキスト分類 - 人工知能に関する断想録

    今までPRMLを読んで実装を続けてきましたが、10章からは難しくて歯が立たなくなってきたのでここらで少し具体的な応用に目を向けてみようと思います。機械学習の応用先としては画像の方が結果を見ていて面白いんですが、当面は自然言語処理を取り上げます。そんなわけで一番始めの応用は機械学習と自然言語処理の接点として非常に重要なテキスト分類(Text Classification, Text Categorization)の技法たちを試していきたいと思います。テキスト分類は文書分類(Document Classification)という呼び方もあります。テキストと文書は同じ意味です。最初なので自分の知識の整理と入門者への紹介のためにちょっと丁寧にまとめてみました。 テキスト分類とは テキスト分類とは、与えられた文書(Webページとか)をあらかじめ与えられたいくつかのカテゴリ(クラス)に自動分類するタス

    ナイーブベイズを用いたテキスト分類 - 人工知能に関する断想録
  • anney's room - ぷめも - ベイズの定理

    2010-05-22 perl 2010-05-08 svn 2010-05-03 ベイズの定理 トップ trac 2010-04-19 UNIXコマンドとか 2010-03-20 CCNA 2009-06-28 DNS 2009-04-15 User-Agent 2009-01-13 UTF-16BE Malformed perl XS 2008-08-22 PHP 2008-08-08 GIF 2008-08-07 ユークリッド距離 2008-07-23 用語 2008-07-22 c 2008-07-21 InterWikiName RecentDeleted 2008-07-19 Ruby へなちょこコーディング規約 ベイズの定理 † P(A|B) = P(B|A) P(A) / P(B) P(A|B) = P(A∧B) / P(B) Bが起きる条件での、Aが起きる確率は… Aが起

  • Algorithm::NaiveBayes

    NAME Algorithm::NaiveBayes - Bayesian prediction of categories SYNOPSIS use Algorithm::NaiveBayes; my $nb = Algorithm::NaiveBayes->new; $nb->add_instance (attributes => {foo => 1, bar => 1, baz => 3}, label => 'sports'); $nb->add_instance (attributes => {foo => 2, blurp => 1}, label => ['sports', 'finance']); ... repeat for several more instances, then: $nb->train; # Find results for unseen instan

    Algorithm::NaiveBayes
  • 正規表現メモ

    \x{} \pは後続する名前が表すクラス(プロパティ、スクリプト、ブロック)に属する文字にマッチし、 \Pは後続する名前のクラスに属さない文字にマッチします。 クラスの名前が一文字のときはブレースを省略できます。 クラス名の前に^を置くことにより否定形の指定を行うことも可能です。 Perl 5.8 での変更点 Perl5.8以降(5.6でも使えたようですが)では \pや\Pで始まるプロパティ指定に標準Unicode属性を使うこともできます。 詳しくは perlunicode perlunicode - Perl における Unicode サポート を参照してください。 日語による説明が Unicodestandard にもあります。 Perl 5.8以降ではユーザーが任意のプロパティを作成することができます (IsまたはInを必ず前置)。 詳しくは perlunicode perluni

  • sedでファイルを上書き保存

    単一ファイルの場合 -i(--in-place)オプションが使えるsedの場合 cygwinのsed(GNU sed 4.1.5版)では,オプション-i(--in-place)を使うと入力ファイルの上書き更新ができる.例として,「filter.propertiesファイルの中の先頭が#で始まる行(コメント行)を削除して上書き」してみよう.今回の場合は以下の通りとなる.ちなみに先頭の$はコマンドプロンプトである. $ sed -i -e '/^#/d' filter.properties または $ sed --in-place --expression=/^#/d filter.properties 上書き前のファイルをバックアップとしてとっておくなら-i(--in-place)にバックアップ用の拡張子を指定する.例えば,上書き前のファイルに拡張子.bakをつけて保管する場合は以下の通り.

  • コマンド:uniq: UNIX/Linuxの部屋

    % cat sample2 abcdefg abcdef abcdef abcde abcdef % uniq sample2 abcdefg abcdef (同じ行が連続している場合は一度しか表示しない) abcde abcdef

    コマンド:uniq: UNIX/Linuxの部屋
  • webhtm.net

    This domain may be for sale!

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • UNIXシェルスクリプトメモ(Hishidama's UNIX shell script Memo)

    -xを付けると実行内容を表示しながら実行する。[2008-11-29] bash -x スクリプトファイル -nを付けると、実行せずにファイル内の構文解析(エラーの有無のチェック)を行う。[2008-11-29] bash -n スクリプトファイル . スクリプトファイル 現在実行中のシェルと同じシェルを使ってスクリプトを実行する。 スクリプトの中で環境変数を設定した場合、現在のシェルの環境にも影響する (スクリプトの中で定義した環境変数が実行元でも有効になる)。 ファイルに実行権限(chmod +x)が付いている場合は、以下のようにして実行できる(相対パスで指定している)。 ./スクリプトファイル ファイルに実行権限(chmod +x)が付いており、かつ環境変数PATHにカレントディレクトリ「.」が含まれている場合は、以下のようにして実行できる。 スクリプトファイル シェルスクリプトの書

  • 1