Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

algorithmに関するtotonのブックマーク (46)

  • Aho Corasick 法 - naoyaのはてなダイアリー

    適当な単語群を含む辞書があったとします。「京都の高倉二条に美味しいつけ麺のお店がある」*1という文章が入力として与えられたとき、この文章中に含まれる辞書中のキーワードを抽出したい、ということがあります。例えば辞書に「京都」「高倉二条」「つけ麺」「店」という単語が含まれていた場合には、これらの単語(と出現位置)が入力に対しての出力になります。 この類の処理は、任意の開始位置から部分一致する辞書中のキーワードをすべて取り出す処理、ということで「共通接頭辞検索 (Common Prefix Search)」などと呼ばれるそうです。形態素解析Wikipediaはてなキーワードのキーワードリンク処理などが代表的な応用例です。 Aho Corasick 法 任意のテキストから辞書に含まれるキーワードをすべて抽出するという処理の実現方法は色々とあります。Aho Corasick 法はその方法のひと

    Aho Corasick 法 - naoyaのはてなダイアリー
    toton
    toton 2010/09/18
    はてなキーワードを高速に付与するAC(Aho Corasick)法のやつ
  • 遺伝的アルゴリズムを楽しく理解できるサイトをまとめてみた - download_takeshi’s diary

    女優の菊川怜さんが学生時代に研究テーマにしていたという事で有名な「遺伝的アルゴリズム」ですが、名前の仰々しさとは裏腹に、意外と直感的に理解できる取っ付きやすいアルゴリズムだったりします。 それにしても菊川怜さん、美人ですねー。こんな先生にイロイロと教えてもらいたかったなぁ。。。 という願望はおいといて、「遺伝的アルゴリズム」を目で見て&手で触って、直感的に「理解したつもり」になれそうなサイトをまとめてみました! 学術的なことはガン無視でいきます。 動画で見て雰囲気を知る まずは動画で見て楽しみましょう。ニコ動から何か動画を紹介します。 【人工知能】物理エンジンで人工生命つくって学習させた http://www.nicovideo.jp/watch/sm6392515 いきなりですが、強烈なインパクトをはなつ動画です。 人工生命がうにょうにょ動きながら、勝手に「歩き方」を学んでいきます。超

    遺伝的アルゴリズムを楽しく理解できるサイトをまとめてみた - download_takeshi’s diary
  • Google の秘密 - PageRank 徹底解説

    INDEX はじめに PageRank の基概念 どうやって PageRank を求めるか 現実に適用する際の問題 Namazu での実装実験 PageRank に対する個人的見解 参考文献 おまけ:「グーグル?/ゴーグル?」 Since: Thu Feb 1 18:22:44 JST 2001 Last Refreshed: Sat Jan 24 18:30:35 JST 2004 ★(2004/1/24) Yuan Huanglin氏によって ページの中国語訳 が作成されました。 ★(2003/7/1) 拙著『Namazuシステムの構築と活用』を改訂しました。 詳しくは サポートページをご覧ください。 ★(2003/5/20) Google に関するオンラインニュース記事一覧(日語記事のみ)を 別ページ(googlenews.html) として分離しました。 ★(2001/2/

  • PDL で PageRank - naoyaのはてなダイアリー

    id:smly さんが PageRank や HITS を Python で実装 されているのに触発されて、自分も PageRank を Perl で実装してみました。 PageRank の計算の中心になるのは Power Method (べき乗法) です。べき乗法では行列とベクトルの積を計算しますので、手軽に使える行列演算ライブラリがあると楽でしょう。 色々調べてみたところ、PDL (The Perl Data Language) が良く使われているようでしたので、これを選択しました。PDL では各種行列演算が簡単に行える他、文字列評価をオーバーライドして行列の文字列出力を良い具合で定義してくれていたりと、なかなかに便利です。PDL は行列計算以外にも色々な科学技術計算やグラフ描写などの操作をサポートしているようです。 さて、PDL を使った PageRank 計算のコードは以下のように

    PDL で PageRank - naoyaのはてなダイアリー
    toton
    toton 2009/06/23
    "id:smly さんが PageRank や HITS を Python で実装 されているのに触発されて、自分も PageRank を Perl で実装してみました。"
  • 西川善司の大画面☆マニア 第102回:超解像技術とはなにか? ~ 各社が取り組む新映像技術を解説 ~

    東芝REGZAのCMに福山雅治が登場していることが話題になっているが、そこでアピールしているのが、2008年の秋冬モデルのREGZA ZH7000/Z7000/FH7000に搭載した超解像技術。 “超”の響きがややセンセーショナルだが、この“超解像”というキーワードは、採用第一号の東芝が考えたものではなく、画像電子学会などの映像系学術界で用いられる一般技術用語である。だから、ソニーやシャープからも独自の超解像技術を採用した製品が出てくる可能性もあり、実際、東芝も独自の超解像技術に対し「レゾリューション・プラス」というブランド名を付けている。 では、この「超解像」とはどんなテクノロジーなのか。今回の大画面☆マニアでは、この「超解像技術」にスポットをあてた。 ■ 解像度変換技術と超解像技術の違い 超解像技術質を解説する前に、ここにきて、超解像技術が急激に注目されるようになったのか、その理由

    toton
    toton 2009/01/30
    アップスケーリング関係 超解像 拡大アルゴリズム バイキュービック法 再構成法 MotionDSP
  • ピッチを変えずにテンポを変更する方法を教えてください。…

    ピッチを変えずにテンポを変更する方法を教えてください。 WAVEファイルの音の高さは変えずに倍速再生をしたいと考えています。 知りたいのは、音の高さを変えずに倍速再生ができるソフトではなく、そのアルゴリズムです。 実際にどのような処理をすれば音の高さを変えずに再生速度を変えられるのか、その理論がわかるサイトや書籍を教えてください。

    toton
    toton 2009/01/21
    倍速再生アルゴリズム。フーリエ変換を使う。
  • 伝説のお茶の間 No007-07 直線描画 Bresenham(ブレゼンハム)

    Bresenham(ブレゼンハム)の直線描画を行います。 Jack Bresenham さんはアメリカのWinthrop(ウィンスロップ)大学のコンピュータ科学の教授だそうです。 (ちなみにBresenhamアルゴリズムをgoogleで検索するとかなりコード間違えてるサイトが上位にくるので注意してね。 2005.5) 直線描画において、一般的な数学の公式を使うと、傾きなどを求めるときにどうしても誤差がでてしまいます。 また誤差がでないように全長からの比率で位置計算を行うと、割り算を使う都合上、非常に遅いルーチンになります。 なのでブレゼンハム方式で直線描画を行います。 ブレゼンハム方式は全てが整数演算で、割り算もないので非常に正確高速です。

    toton
    toton 2009/01/09
    Bresenham(ブレゼンハム)アルゴリズムによる描画
  • GitHub - livedoor/cicindela2: a highly customizable recommendation engine written in perl + MySQL

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - livedoor/cicindela2: a highly customizable recommendation engine written in perl + MySQL
    toton
    toton 2008/12/25
    Cicindela(シシンデラ/チチンデラ)ライブドアのレコメンデーションエンジン
  • GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)

    GCアルゴリズム詳細解説 日語の資料がすくないGCアルゴリズムについて詳細に解説します トップページページ一覧メンバー編集 GC 最終更新: author_nari 2010年03月14日(日) 20:47:11履歴 Tweet このWikiが目指す所 GCとは? GCを学ぶ前に知っておく事 実行時メモリ構造 基アルゴリズム編 Reference Counter Mark&Sweep Copying 応用アルゴリズム編 IncrementalGC 世代別GC スナップショット型GC LazySweep TwoFinger Lisp2 Partial Mark and Sweep -Cycle Collection- Mostly Parallel GC train gc MostlyCopyingGC(Bartlett 1989) TreadmillGC(Barker 1992) 補足

    GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)
  • CNET Japan Blog - 先端研ブログ:画像処理的アプローチによるWeb情報処理

    Icon, Others そしてこれらをベースに自動的に画像要素を分類しました。 分類エンジンは SVMLight + RBF Kernel を使用。 SVM (サポートベクターマシン) は機械学習の手法の一つです。 あらかじめ与えられた正解例・誤り例から、何が正誤の判断の決め手になる要素なのかを自動的に学習し、その学習結果を用いて新たな事例に対して正誤の判断を与えます。 学習に使う特徴量(正誤判断の決め手となる要素の候補)として、ピクセル数・色数・DCT等の画像に基づくものと、周辺文字列・リンク有無等のテキストに基づくものを使用しています。 画像に基づく特徴量の一つとして、その画像に文字が含まれるか否かが重要です。 文字があれば見出しとして使われている画像の確率が高くなるわけですし。 ただし、OCRを用いても文字を認識するのは難しいので、「文字認識」ではなく画像パターンを用

    toton
    toton 2008/12/15
    nlpだけでなく画像情報もwebページの分析に
  • 人力検索はてな - 二枚の画像が似ているかどうかを高速に判定するアルゴリズムを探しています。

    二枚の画像が似ているかどうかを高速に判定するアルゴリズムを探しています。 通常は画素ごとに差分をとって平均二乗誤差やSN比を計算するのが一般的だと思いますが、これだと2乗計算を画素数分行うため計算量が多くなってしまい、比較する画像が複数ある場合だと計算時間が多大に増えてしまうことが問題になります。そこで画像比較の計算時間を削減できるアルゴリズムを探しています。 例えば、文字列処理では正規表現を用いることで高速に文字列探索が行えると聞いたのですが、画像処理の場合にはこのような強力な手法はあるのでしょうか? 一つ画像にモザイクをかけて比較する画素数を減らして計算時間を削減する手法を行ったのですが、これだと計算時間は削減されるものの比較精度が落ちることが問題でした。あまり精度を落とすことはできません。 私は現在大学生でして、ある自作のソフトウェアを作成している所なのですが、上記の問題のため先に進

    toton
    toton 2008/10/26
    類似画像検索アルゴリズム
  • Lock-freeとWait-freeアルゴリズム - Wikipedia

    Lock-freeとWait-freeアルゴリズムとは、共有データにロックをかけてアクセスを防ぐアルゴリズムとは違い、複数のスレッドが同時並行的に、ある対象データを壊すことなしに読み書きすることを可能にするアルゴリズムである。Lock-free とはスレッドがロックしないことを意味しており、全てのステップにおいてシステムが必ず進行する。これはLock-free ではミューテックスやセマフォといった、排他制御のためのプリミティブを使ってはならないことを意味する。なぜならロックを持っているスレッドの実行が中断した場合、全体の進行を阻止しうるからである。Wait-free とは、他のスレッドの動作に関係なく、スレッドがいかなる操作も有限のステップで操作を完了させられることを指す。あるアルゴリズムがLock-freeであるがWait-freeでないことはありうる。Wait-free なアルゴリズム

    toton
    toton 2008/10/20
    並列処理
  • mixi Engineers’ Blog » 圧縮データベースを使おう

    チャリンコ通勤による滝のような汗で、朝からTシャツがシースルーになってしまうmikioです。さて今回は、Tokyo Cabinet(TC)のデータベースを各種のアルゴリズムで圧縮して利用する方法についてご紹介します。 圧縮B+木 B+木とは、比較関数の値による順序が近いレコード群を単一のページにまとめ、各ページにB木(multiway balanced treeの略であり、二分木(binary tree)とは違います)の索引を張ったものです。理論的にはレコードの探索も更新も O(log n) の時間計算量で行え、内部ノード(B木)の操作をキャッシュすると実質的には O(1) の時間計算量で探索や更新が行えるという、かなり安定した性能を備えるデータ構造です。その上、レコードが一定の順序に基づいて並べられているので、数値の範囲検索や文字列の前方一致検索が高速に行えたり、カーソルによって順序に基

    mixi Engineers’ Blog » 圧縮データベースを使おう
    toton
    toton 2008/10/19
    "更新が頻繁ならLZO、更新をほとんどしないならLZMA、その中間ならZLIBやBZIP2がおすすめです。"
  • P2Pと分散ハッシュテーブル〜その1

    さて、P2Pでは最近「分散ハッシュテーブル」というキーワードをよく聞きます。分散ハッシュテーブルついては後で紹介しますが、これを用いるとルーティング、検索が高速に、しかもP2Pネットワーク全体に対して適用することができます。例えば既にeMuleと呼ばれるファイル共有システムでは分散ハッシュテーブルの一種であるkademliaが使われています。ではそもそも分散ハッシュテーブルとはどういうものなのでしょうか?それを説明するにはまず検索で使われるハッシュ法を説明する必要があります。 [お知らせ]分散ハッシュテーブル(DHT)についてわかりやすく解説したページを作りました。 DHTに興味のある方はまずこちらをご覧下さい。 分散ハッシュテーブル(DHT)入門〜その1 ハッシュ法 今、あるデータベースを考えてください。ここには人の名前と身長が書いてあるテーブルとしましょう。例えば table_1={

    toton
    toton 2008/10/19
    分散ハッシュテーブル(DHT)”これを用いるとルーティング、検索が高速に、しかもP2Pネットワーク全体に対して適用することができます。”
  • Amazon.co.jp: JavaScriptによるアルゴリズムデザイン: オブジェクト指向からDB・Web・マイニングまで: 石川博: 本

    Amazon.co.jp: JavaScriptによるアルゴリズムデザイン: オブジェクト指向からDB・Web・マイニングまで: 石川博: 本
    toton
    toton 2008/09/30
  • steps to phantasien(2008-08-14) Netflix Prize 外野席

    "集合知プログラミング" というが出たらしい. 私の積読には元の "Programming Collective Intelligence" があって, 途中まで読んだまま放置していたら日語訳が出てしまった. (オライリーのアンチパターンと命名.) 悔しいのでは処分. そのうち日語版で続きを読もう.... 興味を持っていたのは推薦エンジン(協調フィルタ)だった. 私の中では検索エンジンに匹敵するウェブのハイテクという位置付けなんだけど, 草の根には普及しておらず悲しい. 検索エンジンでの Hyper Estraier や senna に相当する協調フィルタの立ち位置は デッドヒートが予想される...とだいぶ前から思ってるんだけど, いまのところ閑古鳥気味. まったく, 出し抜くだけの実力があればなあ. 先の皇帝ペンギンでは, 一章にさっそく協調フィルタが登場する. 読んでみると

    toton
    toton 2008/09/14
    集合知プログラミング Netflixが商品へのレーティングのデータを無償で公開 オープンソースの推薦エンジン
  • N-gramモデルを利用したテキスト分析 ―インデックスページ―

    ↑ページ先頭 N-gramモデルを利用した事例 あるテキストから、任意のN-gram単位で共起頻度を集計し(N-gram統計を取る)、その結果を利用してテキストや言語の性格を見いだす研究によく利用される。 N-gramモデルで、ある文字列の直後に、特定の別な文字列は出現する確率を求める。 「an」の後には、必ず母音(aiueo)で始まる単語が結びつく確率が100% 「q」の後には、「u」が結びつく可能性が高い。 『論語』では「子」の後に「曰」が結びつく可能性が高い。 「百人一首」を平仮名に開いた場合の延べ数は、上位十五位までで全体の五割の使用量を占める(全部で六十八種の異なる平仮名(濁点含む)が使われている) 音声認識やOCR(原稿読みとりソフト)での利用 読みにくい文字でも、共起頻度の発生確率を考慮すれば、正しく原稿を可読出来る ↑ページ先頭 人文学的へのN-gramモデル導入 近藤みゆ

    toton
    toton 2008/09/14
    あるテキストから、任意のN-gram単位で共起頻度を集計し(N-gram統計を取る)、その結果を利用してテキストや言語の性格を見いだす研究によく利用される。
  • 著名ソーシャルメディアが使っているアルゴリズムを大公開! | Moz - SEOとインバウンドマーケティングの実践情報

    “アルゴリズム”は、もっとも非人間的なものの代表だともいえる。ソーシャルメディアにとって、そのアルゴリズムが不可欠だというのは、実に皮肉めいている。 僕はこの間、グーグルがどうやってユーザーデータを集めているかについて書いた記事を掲載した(前編、後編)。今回は、著名なソーシャルメディアサイトが、ユーザーデータを活用する上でどのようにアルゴリズムを用いているのか、白日の下にさらそう。 ソーシャルメディアを成り立たせているのは人間の力だが、ユーザーが入力したデータを利用できる状態にする仕組みは、アルゴリズムによって作られている。現在活動している無数のソーシャルメディアサイトで実証済みのことだが、ユーザーの関与とアルゴリズムによる処理ルールの上手いバランスを見出すことは、とても難しくなりがちだ。これから紹介するアルゴリズムは、悪意のないユーザーと結びついて初めてうまくいくものだ。 人気ソーシャル

    著名ソーシャルメディアが使っているアルゴリズムを大公開! | Moz - SEOとインバウンドマーケティングの実践情報
    toton
    toton 2008/08/19
    Y CombinatorのHacker News, Reddit, StumbleUpon, Del.icio.us, Digg.com
  • Twitter ベイジアンフィルタプロキシ

    Twitter で following が増えてくるにつれて、タイムラインに目を通すのが大変になってきた(という程きちんと見ている訳ではないが)。 さっとタイムラインをなめて面白そうな情報をピックアップしたい時は、「おはよう」とか「風呂入った」とか「トイレ」とかは除外して読みたい(そういう書き込み自体は嫌いじゃないのだが、人生はあまりにも短い)。 Twit や P3:PeraPeraPrv では NG ワード指定ができて、それらを含むステータスは表示しないようにできるのだが、Twitter の書き込みは揺らぎが激しすぎて指定しきれないという弱点がる。 ということでベイジアンフィルタでフィルタリングしてみることにした。 自前で Twitter クライアントを作る気はないので、proxy の形でさっと実装してみた。 #!/usr/bin/perl use strict; use warning

    Twitter ベイジアンフィルタプロキシ
    toton
    toton 2008/08/16
    フィルタプロキシ
  • マージ・ソート : 巨大データのソート法:CodeZine

    はじめに まずはともあれ腕試し、この問題を解いてみてくださいな:【問1】 デタラメな順序で並んだ文字列の集合がテキストファイル「input.txt」に収められています。この文字列群を辞書順(昇順)に並び換えたテキストファイル「sorted.txt」を作りなさい。 ※各文字列は改行で区切られています。  プログラミング教の練習問題、あるいは学校の課題で出てきそうな“お馴染み”の問題です。ソート(整列)アルゴリズムの実装には配列/代入/条件分岐/ループなどなどプログラミングの基中の基となる構文を総動員するため、練習問題としてよく使われますね。 早速解いてみましょう、ソート・アルゴリズムにはこれまたお馴染みのバブル・ソートを使います。C#、VB.NETC++/CLIの3まとめて一気にいきますよ: using System; using System.IO; using System