2012/6/21のPFI全体セミナー, 「文字列データ圧縮ことはじめ」の内容です。データ圧縮の話とそれに纏わる歴史と最近の話を紹介しています。

2012/6/21のPFI全体セミナー, 「文字列データ圧縮ことはじめ」の内容です。データ圧縮の話とそれに纏わる歴史と最近の話を紹介しています。
最終更新日: 2000-11-14 (公開日: 2000-11-14) Suffix Arrayは巨大なテキストを高速に検索するためのデータ構造 です。テキストのサフィックスを辞書順 (ABC順) に並べ、それに 対するポインタを配列として格納したものが Suffix Array です。 サフィックスとはテキスト中のある位置からテキスト末尾までの文 字列のことをいいます。テキストへの検索は Suffix Array を用い て 2分探索の要領で行います。 では、 Suffix Arrayの構築に移りましょう。ここでは ``abracadabra''というテキストに対して Suffix Array を作成す ることにします。 まず最初に、テキストに対してインデックスポイントを割り当てる 必要があります。インデックスポイントは、検索が行える位置を指 定したものです。この例では、どの位置からでも
FreeBSD - The Power To Serve why GNU grep is fast (なぜGNU grepは高速なのか)といったタイトルの興味深いメールがFreeBSD開発者メーリングリストに投函された。メールを出したのはGNU grepのオリジナル開発者であるMike Haertel氏。Mike Haertel氏はFreeBSDユーザでもあり、FreeBSD開発者メーリングリストで興味深いやりとりがあったため、このメールを流したとしている。Mike Haertel氏の紹介する内容はgrep(1)の実装のみならず、高速な文字列処理を実現するひとつの方法として参考になる。紹介されているGNU grep高速さの秘訣は次のとおり。 GNU grepは入力バイトのすべてをチェックするようなことは避けている。 GNU grepはバイトごとに適用する操作を極力最小限に減らしている。 G
PyData Tokyo 05 でのLTのプレゼン資料です。 絵文字に対応した mecab-ipadic-NEologd は以下からダウンロードできます。 https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md 以下は資料のまとめです。 - mecab-ipadic-NEologdで絵文字に読みを付与するためのエントリを”試験的”に追加したという話 -mecab-ipadicと併用すれることで、絵文字の読み・原型の文字列で検索が可能になりました - 応用 => 言語処理・音声処理・コンテンツ監視等が考えられます - 今後アノテーションは徐々に改善していきます
はじめに この文書は、 Steven Bird, Ewan Klein, Edward Loper 著 萩原 正人、中山 敬広、水野 貴明 訳 『入門 自然言語処理』 O'Reilly Japan, 2010. の第12章「Python による日本語自然言語処理」を、原書 Natural Language Processing with Python と同じ Creative Commons Attribution Noncommercial No Derivative Works 3.0 US License の下で公開するものです。 原書では主に英語を対象とした自然言語処理を取り扱っています。内容や考え方の多くは言語に依存しないものではありますが、単語の分かち書きをしない点や統語構造等の違いから、日本語を対象とする場合、いくつか気をつけなければいけない点があります。日本語を扱う場合にも
本稿では,sasanqua_neufのチューリング完全性を証明します.具体的には,チューリングマシンのエミュレータを構成することでチューリング完全性を示します. 概要 sasanqua_neufのテープTをチューリングマシンのテープと「概ね」同一視し,チューリングマシンの状態をCの値によって「概ね」表現します.C言語風にエミュレータの概要を記すと,全体の構造としては int Cq=1; while(Cq != n+1){ switch(Cq){ case 1: //qの添え字が1 switch(T[H]){ //T[H]にσが格納されている case 1: //σの添え字が1 T[H] = [δ_2(q_1,σ_1)]; //T[H]をテープと同一視 H += [δ_3(q_1,σ_1)]; //ただしLeft=-1,Right=+1と見て while(T[H] == 0){getchar
ふと、ビット並列アルゴリズムを使った編集距離を計算するアルゴリズムを書きたくなったので書いてみた。 まず、通常の編集距離であるLevenshtein Distanceを求めるアルゴリズムは以下のように書ける int levenshteinDistance(String A, String B) { int m = A.length(); int n = B.length(); int dp[] = new int[n + 1]; int next[] = new int[n + 1]; for (int i = 0; i <= n; i++) dp[i] = i; for (int i = 1; i <= m; i++) { next[0] = i; for (int j = 1; j <= n; j++) { if (A.charAt(i - 1) == B.charAt(j - 1))
[pukiwiki] Pythonで名寄せするプログラムを書いてみました。 (まだ年賀状のリスト作りには早いですけれども。) 参考文献 -[[【PDF】 圧縮を用いた類似度判定のための計算実験:http://www.tani.cs.chs.nihon-u.ac.jp/g-2008/shu/tyukan_shu.pdf]] 文字列類似度の判定には、こちらの式を、ほぼ そのまま使用しています。 [/pukiwiki] [pukiwiki] zlib(gzip)による圧縮を利用しているので、たぶん [[Nグラム>ググる:Nグラム]]による比較に近い結果が得られるんじゃないかという期待から、上記のアルゴリズムを使用しました。 —- 具体的には、表記にブレのある住所録ファイルsample.csvについて、似た文字列同士が隣り合わせになるように並べなおします。 (むしろ、クラスタリングに近いかも) 動
Church Numerals と Lambda Calculus アルゴリズムとデータ構造入門 補足 後半は佐藤雅彦先生に教えてもらいました. SICP Exercise 2.4 〜 Exercise 2.6 誤解を恐れずに大雑把にいうと, λ計算では名前つきのシンボル (名前付きの手続き) による再帰呼出しや special form が使えないところが Scheme と違うところです. そのため, λ計算を Scheme で行うためにはいろいろな工夫が必要となります. そのポイントは closure (閉包) と呼ばれる構造です. 自然数 n の Church numeral を c(n) とすると, c(n) f x = (f ... (f x)), ただし, f は n 回出現. となることを利用します. まず, c0 と successor を定義します. (SICP Ex.
本日 1/16(日) にニフティさんにて開催された 第9回 データマイニング+WEB 勉強会@東京 にのこのこ参加してきました。主催の @hamadakoichi さん、運営の @doryokujin さん、講演者、参加者、そして会場を提供して下さったニフティさん、各位ありがとうございました。 前回参加したときに、はまださんに「機械学習の全体像を話して」という無茶振りされて、うーん直球でそれにぶつかるのはさすがに難しすぎる。いろいろ考えてみて、そっちの専門じゃあないエンジニアが機械学習を学ぶには、という話にさせていただいた。 資料はこちら。 機械の代わりに人間が学習入門 from Shuyo Nakatani 前半はパワポの画面切り替えを駆使したちょいとした仕掛けがあったんだけど、slideshare にすると全く意味が無くなってしまうので、バッサリ削除。内容はあんまり変わってないので大丈
ビタビ・アルゴリズム Viterbi algorithm ホーム 情報通信のハイパーテキストは下記へ移動しました。 http://www.mnc.toho-u.ac.jp/v-lab/ お探しの内容は、下記の目次にあります。 http://www.mnc.toho-u.ac.jp/v-lab/yobology/index.htm
前回は単語数最小法によるViterbiアルゴリズムを使って、「猫はうろうろ」を形態素解析しました。 www.yasuhisay.info 単語数最小法では、単語の品詞などは見ておらず、ただただ単語数を最小にするように動的計画法であるViterbiを動かしていきます。品詞を見ていないため、「家におくりました」は「家」、「におくり」、「ました」と間違って形態素解析されていました。 コスト最小法による形態素解析そこで ある単語がある品詞で登場するコスト ある品詞とある品詞の接続するコスト というコストの概念を導入します。 「ある単語がある品詞で登場するコスト」というのは、例えば 「まし」が助動詞で登場するコスト 「まし(増し)」が動詞で登場するコスト というような感じで、単一の言葉でも、品詞が違う場合にはそのコストを区別するような考え方です。 一方、「ある品詞とある品詞の接続するコスト」というの
JAVAでデータマイング! 『情報工学の難しいそうなアルゴリズムをJAVAで実装して、ひたすらその結果を公開する』ブログになる予定。 PR Calendar <<March>> S M T W T F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Theme NaiveBayes ( 2 ) スムージング ( 0 ) はじめに ( 1 ) 計算テクニック ( 0 ) 外れ値除去 ( 0 ) LSH ( 4 ) 協調フィルタリング ( 0 ) ブースティング ( 0 ) Kmeans ( 0 ) 階層的クラスタリング ( 2 ) EMアルゴリズム ( 0 ) BM ( 0 ) SVD ( 0 ) PLSI ( 0 ) LDA ( 0 ) パーセプトロン ( 0 ) A
最近、Q&AコミュニティのQuoraが流行っていますね。Quoraそこで、個人的に興味のある分野のQAについてまとめておきます。 自然言語処理・機械学習系 What is the best way to analyze a corpus of text to determine the most popular phrases? - QuoraWhat is the best open source C++ implementation of a trie? - QuoraMachine Learning: What papers have shown that for machine learning, data set size is more important than the model being trained? - QuoraNatural Language Process
2010年は、パターン認識と機械学習(PRML)を読破して、機械学習の基礎理論とさまざまなアルゴリズムを身につけるという目標(2010/1/1)をたてています。もうすでに2010年も半分以上過ぎてしまいましたが、ここらでまとめたページを作っておこうと思います。ただ漫然と読んでると理解できてるかいまいち不安なので、Python(2006/12/10)というプログラミング言語で例を実装しながら読み進めています。Pythonの数値計算ライブラリScipy、Numpyとグラフ描画ライブラリのmatplotlibを主に使ってコーディングしています。実用的なコードでないかもしれませんが、ご参考まで。 PRMLのPython実装 PRML読書中(2010/3/26) 多項式曲線フィッティング(2010/3/27) 最尤推定、MAP推定、ベイズ推定(2010/4/4) 分類における最小二乗(2010/4/
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く