タグ

ブックマーク / shuyo.hatenablog.com (12)

  • 第2回 Tokyo.SciPy で「数式を numpy に落としこむコツ」を発表してきました - 木曜不足

    10/15 に IBM さんの渋谷オフィスにて開催された 第2回 Tokyo.SciPy にのこのこ参加してきました。主催の @sla さんはじめ、参加者・発表者各位おつかれさまでした&ありがとうございました。 せっかく行くならなんか発表したいよね、ということで「数式を numpy に落としこむコツ 〜機械学習を題材に〜」なんてタイトルで、数式(あるいは数式入りのアルゴリズム)を実装するときに、どういう点に注目すれば易しくコードを書けるか、についてちらちら語ってみた。 こちらがその資料。 数式をnumpyに落としこむコツ View more presentations from Shuyo Nakatani 例えば、機械学習の(多クラス)ロジスティック回帰という技術では、次のような数式が登場する。 (PRML (4.109) 式) これを一目見てすらすらとコードが書けるなら苦労はないが、慣

    第2回 Tokyo.SciPy で「数式を numpy に落としこむコツ」を発表してきました - 木曜不足
  • 隠れマルコフ実装してみた。 - 木曜不足

    PRML 13章読んで、隠れマルコフモデルを実装してみた。今回は Python + numpy の習作も兼ねている。 http://github.com/shuyo/iir/blob/master/sequence/hmm.py 今回実装してみたアルゴリズムは以下の通り。数字は PRML の章番号。 まあなんて盛りだくさん。 最尤推定(EM アルゴリズム) (13.2.1) Baum-Welch(フォワード・バックワード)アルゴリズム (13.2.2) スケーリング係数(13.2.4) Viterbi アルゴリズム(13.2.5) 複数系列を用いた学習 (演習 13.12) HMMからサンプリング(生成モデル) (13.2) left-to-right HMM (13.2) テキストファイルを与えると、1行1系列とみなして、アルファベットからなる単語を抽出し、HMM で学習&文章をサンプリ

    隠れマルコフ実装してみた。 - 木曜不足
  • gihyo.jp の連載「機械学習 はじめよう」の第11回「線形回帰を実装してみよう」が公開されました - 木曜不足

    gihyo.jp の連載「機械学習 はじめよう」の第11回「線形回帰を実装してみよう」が公開されました。 機械学習 はじめよう 第11回「線形回帰を実装してみよう」 https://gihyo.jp/dev/serial/01/machine-learning/0011 今回は、第8回と9回で紹介した線形回帰をおなじみの Python / numpy / matplotlib で実装する内容となっています。 実践編を担当するのは今回が初めてなので、どういう書き方にしようかいろいろ迷ってしまいました。 ノリが以前と変わっているから調子が狂っちゃうかもしれませんが、ご容赦ください(笑)。 見せ方は変えてありますが、今回の連載記事の内容は、先日 Tokyo.SciPy #2 で発表した内容と一部被っています。 数式をnumpyに落としこむコツ View more presentations fr

    gihyo.jp の連載「機械学習 はじめよう」の第11回「線形回帰を実装してみよう」が公開されました - 木曜不足
  • 「数式を numpy に落とし込むコツ」を HMM に当てはめてみる - 木曜不足

    数式をnumpyに落としこむコツ View more presentations from Shuyo Nakatani という発表を Tokyo.SciPy #2 でさせてもらったのだが、発表&資料作成の時間の関係で、実際に数式を解釈する例を2つしか入れられなかったのが残念なところ。 今、社内 PRML 読書会で 13章の隠れマルコフをやっつけていて、その Baum-Welch の更新式がちょうどいい題材になっていることに気付いたので、ここで取り上げてみる。 (PRML 式 13.36) 結構複雑な印象のある数式だが、こいつも資料の流れに従えば簡単に実装できてしまうことを見ていこう。 数式を読み解く 数式を書き換える numpy に「逐語訳」する というわけでまず「読み解き」だが、これが一番重要なステップ。 特に今回の式の場合は , , の正体をちゃんと見極めておかないといけない。 「正

    「数式を numpy に落とし込むコツ」を HMM に当てはめてみる - 木曜不足
  • CRF を使った Web 本文抽出 - 木曜不足

    とある確率でカオスでタイムマシンな勉強会を 7/30 にサイボウズにて開催。 お疲れ様でした&ありがとうございました>各位 会のテーマに合うかなあと心配しつつ、以前 TokyoNLP #1 にて発表させていただいた、CRF(Conditional Random Fields) を使った Web 文抽出ネタを焼き直し&プチバージョンアップして発表した。 その資料がこちら。 CRF を使った Web 文抽出 View more presentations from Shuyo Nakatani 最初は、元の資料そのまま持って行こうかな、と思っていたのだけど、結局結構それなりに改訂版に。 実装の方も少し更新してあって、最急降下法+FOBOS L1 に対応していたり、素性も約3倍に増えていたり。 データは……相変わらず少ないけど(苦笑)、訓練データとテストデータを分けて、定量的な結果を資料にま

    CRF を使った Web 本文抽出 - 木曜不足
  • 「はじめての生成文法・後編」を TokyoNLP で発表してきました。 - 木曜不足

    早第6回となった自然言語処理勉強会@東京(#TokyoNLP)にのこのこ行ってきた。 主催者の id:nokuno さん、会場を提供して下さった EC ナビさん(@ajiyoshi さん)、発表者参加者の各位、お疲れ様でした&ありがとうございました。 第6回 自然言語処理勉強会 #TokyoNLP : ATND 今回は、前回に引き続き「はじめての生成文法」の後編を発表。 はじめての生成文法 《後編》 はじめての生成文法 《後編》 View more presentations from shuyo 資料の後半は未完成気味。前編で相当痛い目にあったので、2週間前から資料を作り始めてこのていたらく。直前までなんとか発表を形にしようともがいていたから、楽しみにしていた niam さんの発表も中途半端にしか聞けず。 そもそも生成文法を30〜40分(質疑込み1時間)で紹介するというのが無謀すぎ。内容

    「はじめての生成文法・後編」を TokyoNLP で発表してきました。 - 木曜不足
  • はじめての生成文法・前編 - #TokyoNLP 5 - 木曜不足

    第5回 自然言語処理勉強会@東京 にのこのこ行ってきました。 いつもいつもありがとうございます>主催の @nokunoさん、会場の ECナビさん(@ajiyoshiさん)、発表者、参加者の皆さん 今回も、いつものように新境地で「生成文法」について発表させてもらった……という予定だったのだが、資料作りが間に合わず*1&分量がインフレを起こして、急遽前後編にわけさせてもらったら、生成文法が出てくる直前で「次回に続く」。ほんとすんません&次回もよろしく。 【追記】 後編はこちら。 「はじめての生成文法・後編」を TokyoNLP で発表してきました。 - Mi manca qualche giovedi`? 【/追記】 こちらが資料。眠くて変なテンションで、ずっとネイティブの関西弁でしゃべりとおしてたような気がする。まあ過ぎたことだし。 はじめての生成文法・前編 - #tokyonlp 5 Vi

    はじめての生成文法・前編 - #TokyoNLP 5 - 木曜不足
    rokujyouhitoma
    rokujyouhitoma 2011/04/26
    言語学者のソシュールさん。やっちまったなフリードリヒ2世。
  • Apache Nutch のプラグインの作り方 - 木曜不足

    オープンソース Web 検索エンジン Apache Nutch の概要 - Mi manca qualche giovedi`? と Apache Nutch のプラグインと言語判別 - Mi manca qualche giovedi`? の続き。 Apache Nutch 1.2 をベースに、 IndexingFilter extension-point へのプラグインを作成する例で、プラグインを作り方をみていく。 IndexingFilter extension-point IndexingFilter extension-point はメタデータをインデックスへ追加するプラグインで、Hadoop 上で動作する Indexer の MapTask から呼び出される。 他の extension-points も Injecter, Generator, Fetcher, Parser

    Apache Nutch のプラグインの作り方 - 木曜不足
  • オープンソース Web 検索エンジン Apache Nutch の概要 - 木曜不足

    Apache Nutch はオープンソースの Web 検索エンジン。 今年になってバージョン 1.0 が出て、Apache の TLP(トップレベルプロジェクト) になった。現在最新は v1.2。 Apache Nutch http://nutch.apache.org/ 乱暴に言うと、「検索エンジン Lucene +全文検索 Solr + Web クローラー+スコアリング(Page Rank)+分散実行の仕組み」が Nutch。 ちなみに検索インデックスを作成&格納するための mapper / reducer および分散ファイルシステムが Nutch から spin out したのが話題の Hadoop。 の割りには知名度が低い気がするのは、Web 検索エンジンを作りたいという要求が少ないせい?(サイト内全文検索なら Solr でいい) プラグインの組み合わせで virtical sea

    オープンソース Web 検索エンジン Apache Nutch の概要 - 木曜不足
  • 「Zipf則はなぜ成り立つのかの理論的裏付け」の続き - 木曜不足

    Zipf則はなぜ成り立つのかの理論的裏付け」の続き。おもしろいことになってきました。 FSNLPに書いてあった「ランダムにアルファベット+空白を生成、それを空白区切りの「単語」の列と考えると、それらの単語の頻度分布が Zipf に従う」を試したところ、アルファベットの生成率に実際の分布を用いると確かにベキ分布になったよ、というのが前回確かめたこと。 では、その性質は文字の分布によるのか、というあたりは気になっていて、光成さんにも同じ事を指摘されたので、他の分布でも確かめてみた。 用意したのは以下の4つの分布。 実際の使用頻度分布 一様分布(分布図が横一直線)。 等差な多項分布(分布図が斜め直線) ベキ分布(Zipf) ただし、一様分布では空白の生成確率を少し上げて 0.2 に、残りの文字の確率を 0.8/26 にしている。そうしないと単語の長さが長くなりすぎて、他の分布の場合との比較がや

    「Zipf則はなぜ成り立つのかの理論的裏付け」の続き - 木曜不足
  • 自然言語処理勉強会@東京 第1回 - 木曜不足

    id:nokuno さん主催の自然言語処理勉強会@東京にのこのこ行ってきた。 主催者、発表者、参加者、そして会場を提供してくださった mixi さん、みなさんありがとうございました。 こんな機会を自分で作ることは出来ないので、次回も是非何か作って参加したい。 今回は、Conditional Random Fields(条件付き確率場)という機械学習の系列ラベリングの手法を使って、Project Gutenberg や html文を抽出する、という試みについて話をさせてもらった。 【追記】おっと、そういえば Project Gutenberg はあまり知られていないんだった。著作権フリーのテキストを集めたデータベース。主に英語だが、ドイツ語やフランス語、スペイン語、中国語なども徐々に。海外版の青空文庫といえば多少通りがいい?【/追記】 Web文抽出 using crf from Sh

    自然言語処理勉強会@東京 第1回 - 木曜不足
  • Project Gutenberg のテキストデータから本文を抽出する - 木曜不足

    Project Gutenberg は小説や詩、論文、教養書、演説原稿などなどなど、著作権切れあるいは著作権のないテキストの一大データベース。主にはやはり英語だが、他の諸言語のデータもそこそこある。 このテキストはまるっと自由に使えるので、文章解析などをやるには宝の山。 だけど、肝心のテキストの前後にヘッダやフッタや、とにかく様々な情報がくっついているのが、かなり難。 ある程度書式を決めといてくれれば良かったのに*1、誰もが自由気まま勝手に制作していて、めっちゃフリーダムでアナーキーなことになっている。 区切りのフォーマットがそもそもファイルによってバラバラだし。 そんな区切りもあればいい方で、なんの区切りもなく「誰がスキャンしました」だの「間違ってるかもしれないからチェックしてね!」だの書いてあったり、最悪の場合、それが文と空行1つしかあいてないという。 しかたなくそのまま解析したりな

    Project Gutenberg のテキストデータから本文を抽出する - 木曜不足
  • 1