ブックマーク / tsubosaka.hatenadiary.org (7)

  • [機械学習] LDAのコードを書いてみた - tsubosakaの日記

    昔書いたことがあったけど、どこかにいってしまったのでもう一度書いてみた。推論方法にはギブスサンプリングと変分ベイズの2つがあるけど、導出も実装もより楽なcollapsed gibbs sampling(Griffiths and Steyvers, PNAS, 2004)の方を採用。 Token.java package lda; public class Token { public int docId; public int wordId; public Token(int d , int w){ docId = d; wordId = w; } } LDA.java package lda; import java.util.*; public class LDA { int D; // number of document int K; // number of topic int

    [機械学習] LDAのコードを書いてみた - tsubosakaの日記
  • Interleavingについて - tsubosakaの日記

    情報検索において検索手法の結果を評価する方法の手法の一つにInterleavingという方法がある。最近その辺についてちょっと読んでいたのでまとめておく。 検索エンジンにおいては何らかのRanking Function(http://en.wikipedia.org/wiki/Ranking_function)を用いて、与えられたクエリに対する検索結果を並び替える。 例えば"餃子 レシピ"というクエリでGoogleで今検索したところ 1. http://cookpad.com/recipe/316319 (☆ほっぺが落ちちゃう 餃子☆) 2. http://cookpad.com/category/836 (餃子・シュウマイ レシピ 306品) 3. http://matome.naver.jp/odai/2133424266153597701 (絶品餃子!!肉汁がやばい究極のギョーザのレ

    Interleavingについて - tsubosakaの日記
  • [機械学習] A few useful things to know about machine learning - tsubosakaの日記

    タイトルの論文はCommunication of the ACM, 2012のレビュー記事 ドラフトバージョンは下のリンクから読める。 http://homes.cs.washington.edu/~pedrod/papers/cacm12.pdf 割と面白かったのでいくつか内容を紹介 概要 機械学習システムはデータから自動でタスク(スパムフィルタ、レコメンドなど)をどうやって実行するかを見出すことができます。 しかしながら機械学習システムを成功させるには教科書を読んだだけではなかなか見つけづらいお約束事とかがあって、思うようには行かないことが多い。 文献では機械学習の研究者および実務に携わる人間が知っておくべきである事柄を12個に要約しています。 一般化が重要 機械学習のゴールは訓練データにはないデータに対しても一般化して推定ができるという点になります。単に訓練データのみ分類できればよ

    [機械学習] A few useful things to know about machine learning - tsubosakaの日記
  • [IR] 転置インデックスとtop-k query - tsubosakaの日記

    転置インデックスから上位k件の文章を取ってくる手法について、知ってる範囲でまとめてみました。 転置インデックスとTop k-query View more presentations from tsubosaka この辺の話は教科書だと Information Retrieval: Implementing and Evaluating Search Engines (MIT Press) 作者: Stefan Buettcher,Charles L. A. Clarke,Gordon V. Cormack出版社/メーカー: The MIT Press発売日: 2010/07/23メディア: ハードカバー購入: 2人 クリック: 78回この商品を含むブログ (8件) を見る のChapter 5とかに疑似コードなども含め載っているので、参考になるかと思います。

    [IR] 転置インデックスとtop-k query - tsubosakaの日記
  • WikipediaのデータをLuceneのindexに入れるコード - tsubosakaの日記

    以前書いたけどいつもjavaのXMLライブラリの使い方とか忘れるので備忘録用に上げておく import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.store.Directory; import org.apa

    WikipediaのデータをLuceneのindexに入れるコード - tsubosakaの日記
  • Lucene ソースコードリーディングメモ - tsubosakaの日記

    今日はmixiでLuceneソースコードリーディングに参加して、Scorerの部分を読んでました。 Scorerについて Scorerは与えられたクエリに対して文章をidの昇順で返すような抽象クラスです。 検索で使われるメインの部分は以下のようになっており、collectorに対してnextDoc()によって求まる適合した文章を渡すというのを繰り返しています。 protected boolean score(Collector collector, int max, int firstDocID) throws IOException { collector.setScorer(this); int doc = firstDocID; while (doc < max) { collector.collect(doc); doc = nextDoc(); } return doc != N

    Lucene ソースコードリーディングメモ - tsubosakaの日記
  • Simple-9について解説 - tsubosakaの日記

    前回に引き続き転置インデックスの圧縮を実装してみる。今回紹介するのは[2]で提案されているSimple-9というアルゴリズムである。 Simple-9は32bitのwordにできるだけ数字を詰めていくという圧縮アルゴリズムである。例えば2bitの数が16個ならんでいれば32bitで表現できる。しかし、実際は大きい数字も出現するため数字の長さの情報も格納する必要がある。Simple-9では4bitを用いて残りの28bitがどう詰められているかを表す。 28bitの表し方としては 上位bit 符号の個数 符号のビット長 0000 28 1 0001 14 2 0010 9 3 0011 7 4 0100 5 5 0101 4 7 0110 3 9 0111 2 14 1000 1 28 の9通りがあり、これがSimple-9の名前の由来となっている。 例えば ( 3 , 5 , 0 , 0 ,

    Simple-9について解説 - tsubosakaの日記
  • 1