タグ

algorithmとAlgorithmに関するHeavyFeatherのブックマーク (161)

  • クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた - てっく煮ブログ

    集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作ってみました。クリックすると1ステップずつ動かすことができます。クラスタの数や点の数を変更して、RESET を押すと好きなパラメータで試すことができます。こうやって1ステップずつ確認しながら動かしてみると、意外に単純な仕組みなのが実感できました。K-means 法とはK平均法 - Wikipedia に詳しく書いてあるけど、もうすこしザックリと書くとこんなイメージになります。各点にランダムにクラスタを割り当てるクラスタの重心を計算する。点のクラスタを、一番近い重心のクラスタに変更する変化がなければ終了。変化がある限りは 2. に戻る。これ

  • MapReduce on Tyrant - mixi engineer blog

    先日、隅田川の屋形船で花見と洒落込んだのですが、その日はまだ一分咲きも行ってなくて悲しい思いをしたmikioです。今回はTokyo Tyrant(TT)に格納したデータを対象としてMapReduceのモデルに基づく計算をする方法について述べます。 MapReduceとは Googleが使っているという分散処理の計算モデルおよびその実装のことだそうですが、詳しいことはググってください。Googleによる出自の論文やApacheプロジェクトによるHadoopなどのオープンソース実装にあたるのもよいでしょう(私は両者とも詳しく見ていませんが)。 今回の趣旨は、CouchDBMapReduceと称してJavaScriptで実現しているデータ集計方法をTTとTCとLuaでやってみようじゃないかということです。簡単に言えば、以下の処理を実装します。 ユーザから計算開始が指示されると、TTは、DB内の

    MapReduce on Tyrant - mixi engineer blog
  • Aho Corasick 法 - naoyaのはてなダイアリー

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

    Aho Corasick 法 - naoyaのはてなダイアリー
  • 自然言語処理は Python がいちばん - 武蔵野日記

    現在大学1年生の人で3年後には NAIST に (というか松研に) 来たいという人から「どんなプログラミング言語やっておくといいですか」と質問されたりするのだが、なかなか答えるのは難しい。自分は PerlPython がメインでときどき C++/C# を使ったりするのだが、どれが一番いいかはなんとも言えないので、自然言語処理以外に転向する可能性も考えると、C とか C++ とか Java とか(授業でそちらをやるのであれば)を最初の武器に選んだ方がいいのでは、と思ってはいる。 そんなこんなで最近 Hal Daume III (機械学習を用いた自然言語処理では非常に有名な人) のブログで Language of Choice というタイムリーなエントリーが出ていたので、紹介すると、「それなりに大きな自然言語処理のプロジェクトでどのプログラミング言語を使うのか」というアンケート結果が出

    自然言語処理は Python がいちばん - 武蔵野日記
  • 編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー

    昨日 最長共通部分列問題 (LCS) について触れました。ついでなので編集距離のアルゴリズムについても整理してみます。 編集距離 (レーベンシュタイン距離, Levenshtein Distance) は二つの文字列の類似度 (異なり具合) を定量化するための数値です。文字の挿入/削除/置換で一方を他方に変形するための最小手順回数を数えたものが編集距離です。 例えば 伊藤直哉と伊藤直也 … 編集距離 1 伊藤直と伊藤直也 … 編集距離 1 佐藤直哉と伊藤直也 … 編集距離 2 佐藤B作と伊藤直也 … 編集距離 3 という具合です。 編集距離はスペルミスを修正するプログラムや、近似文字列照合 (検索対象の文書から入力文字にある程度近い部分文字列を探し出す全文検索) などで利用されます。 編集距離算出は動的計画法 (Dynamic Programming, DP) で計算することができることが

    編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー
  • 最長共通部分列問題 (Longest Common Subsequence) - naoyaのはてなダイアリー

    部分列 (Subsequence) は系列のいくつかの要素を取り出してできた系列のことです。二つの系列の共通の部分列を共通部分列 (Common Subsecuence)と言います。共通部分列のうち、もっとも長いものを最長共通部分列 (Longest Common Subsequence, LCS) と言います。 X = <A, B, C, B, D, A, B> Y = <B, D, C, A, B, A> という二つの系列から得られる LCS は <B, C, B, A> で、その長さは 4 です。長さ 2 の<B, D> の長さ 3 の <A, B, A> なども共通部分列ですが、最長ではないのでこれらは LCS ではありません。また、LCS は最長であれば位置はどこでも良いので、この場合 <B, D, A, B> も LCS です。 LCS は動的計画法 (Dynamic Prog

    最長共通部分列問題 (Longest Common Subsequence) - naoyaのはてなダイアリー
  • Google Matt Cutts、アルゴリズム変更について説明 - 信頼や権威、評判を重視 ::SEM R (#SEMR)

    Google Matt Cutts、アルゴリズム変更について説明 - 信頼や権威、評判を重視 Googleの社員・Vince氏がかかわった検索ランキングアルゴリズムの変更(Vince's algo Change)について、Matt Cuttsが動画で解説をした。権威や評判、PageRankをより重視。 公開日時:2009年03月11日 09:11 米GoogleのMatt Cutts氏は2009年3月4日、Google Webmaster Central Channel にて、最近のGoogleランキングアルゴリズムの変更について動画で説明を行った。 Is Google putting more weight on brands in rankings? この話題は、ブログ「SEO Book」のAaron Wall氏が「Googleは検索ランキングにおいてブランドを従来よりも重視するように

    Google Matt Cutts、アルゴリズム変更について説明 - 信頼や権威、評判を重視 ::SEM R (#SEMR)
  • 大規模データを基にした自然言語処理 - DO++

    人工知能問題研究会 (SIG-FPAI)でタイトルの題目で一時間ほど話してきました。 発表資料 [pptx] [pdf] 話した内容は - 自然言語処理における特徴ベクトルの作り方と、性質 - オンライン学習, Perceptron, Passive Agressive (PA), Confidence Weighted Learning (CW) 確率的勾配降下法 (SGD) - L1正則化, FOLOS - 索引を用いた効率化, 全ての部分文字列を利用した文書分類 で、スライドで70枚ぐらい。今までの発表とかぶっていないのはPA CW SGD FOLOSあたりでしょうか オンライン学習、L1正則化の話がメインになっていて、その両方の最終形の 確率的勾配降下法 + FOLOSの組み合わせは任意の損失関数に対してL1/L2正則化をかけながらオンライン学習をとても簡単にできるという一昔前

    大規模データを基にした自然言語処理 - DO++
  • HITS, 主成分分析, SVD - naoyaのはてなダイアリー

    ウェブグラフのリンク解析によるページの評価と言えば PageRank が著名ですが、もうひとつ Jon Kleinberg による HITS (Hyperlink-induced topic search)も有名です。最初の論文 Authoritative Sources in a Hyperlinked Environment は 1999年です。IIR の 21章で、この PageRank と HITS についての解説がありました。 HITS HITS はウェブページの評価に二つの軸を用います。一つが authority スコア、もう一つが hub スコアです。 例えば「Perl の情報が欲しい」という検索要求に対しては CPAN や 開発者である Larry Wall のホームページなどが重要度の高いページかと思います。これらのページは「Perl に関して信頼できる情報源」ということ

    HITS, 主成分分析, SVD - naoyaのはてなダイアリー
  • ようこそ [POPFile]

    POPFile は自動メール振り分けツールです。一旦、設定とトレーニングがきちんとされれば、あなたのパソコンのバックグラウンドで動き続け、到着したメールを読み取って、好きなように振り分けてくれます。ゴミメールを選り分けるといった簡単な仕事から、十数個のフォルダにメールを振り分けるといった複雑な仕事までこなすことができます。いわば、あなたの受信メールボックスを管理してくれるあなた専用のアシスタントです。 このページは日語版 POPFile ドキュメンテーションプロジェクトのページです。オリジナルの POPFile Documentation Project を日語に訳したものです。 現在このプロジェクトは進行中なので、いくつかのページはまだ未完成です。Wiki システムを使っているのでどなたでも翻訳・編集作業に参加することができます。参加する場合には、 POPFileのドキュメントをより

    ようこそ [POPFile]
  • 確率論、統計学関連のWeb上の資料 - yasuhisa's blog

    確率論と統計学は俺がまとめるから、他の分野はお前らの仕事な。 確率論 Index of /HOME/higuchi/h18kogi 確率空間 生成されたσ-加法族 確率の基的性質 確率変数とその分布 分布の例 分布関数 期待値、分散、モーメント 期待値の性質 独立確率変数列の極限定理 大数の弱法則(Weak Law of Large Numbers) 確率1でおこること 大数の強法則 中心極限定理 特性関数 Higuchi's Page Brown運動 Brown運動のモーメントの計算 連続性 Brown運動の構成:Gauss系として Brown運動に関する確率積分 空間L^2の元の確率積分 伊藤の公式(Ito formula) 日女子大学理学部数物科学科の今野良彦先生のところにあった資料 最尤法とその計算アルゴリズム 収束のモード 大数の法則と中心極限定理 指数分布族モデルにおける最

    確率論、統計学関連のWeb上の資料 - yasuhisa's blog
  • 人工無能の作り方

    書いた人 INA 人工無能とは? 人間っぽく話すプログラムのこと。会話を理解しているというよりは、なんかそれっぽいことを話すだけのものが多い。 今回は「日語のようなものを話す人工無能」を作ってみたので、その簡単な仕組みと工夫した点について少し書いてみることにする。 動機 うちのサークルのメンバーがよく集まってるチャット。とてもマニアックな どうしようもない 会話が繰り広げられているわけだが、ちょっと物足りない。 そうだ! 萌キャラがいないじゃないか! 「ないなら作ればいいじゃない?」 材料 MeCab 形態素解析エンジン 難しいことは知らなくても問題ない。 「私は変な人ではない」 ↓ 私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 変 名詞,形容動詞語幹,*,*,*,*,変,ヘン,ヘン な 助動詞,*,*,*,特殊・ダ,体言接続,だ,

  • CNET Japan

    人気記事 1 テスラの「紛らわしい機能名」めぐりカリフォルニア当局が30日の販売停止を要求 2025年07月22日 2 「Pixel 10」の姿が明らかに、グーグルが映像公開--8月20日発表へ 2025年07月22日 3 「たんぱく質がとれる水」発売--500mlペットボトルに5g配合 1178円 2025年07月22日 4 マニアック過ぎたソニーXperia、変わり始めた矢先の不具合--文鎮騒動を解説(石川温) 2025年07月22日 5 山手線で5人負傷--発火相次ぐモバイルバッテリー、注意すべき8つのポイント 2025年07月22日 6 「ドン・キホーテ」初の無人店舗--商品を手にとって店を出るだけでOK セルフレジ不要 2025年07月22日 7 サムスン最新折りたたみスマホを入手も、すぐ「コンクリ地面」に落としてしまった話 2025年07月19日 8 アップル「AirPods

    CNET Japan
  • 大規模データ処理のための行列の低ランク近似 -- SVD から用例ベースの行列分解まで -- - 武蔵野日記

    id:naoya さんのLatent Semantic Indexing の記事に触発されて、ここ1週間ほどちょくちょく見ている行列の近似計算手法について書いてみる。ここでやりたいのは単語-文書行列(どの単語がどの文書に出てきたかの共起行列)や購入者-アイテム行列(どの人がどのを買ったかとか、推薦エンジンで使う行列)、ページ-リンク行列(どのページからどのページにリンクが出ているか、もしくはリンクをもらっているか。PageRank などページのランキングの計算に使う)、といったような行列を計算するとき、大規模行列だと計算量・記憶スペースともに膨大なので、事前にある程度計算しておけるのであれば、できるだけ小さくしておきたい(そして可能ならば精度も上げたい)、という手法である。 行列の圧縮には元の行列を A (m行n列)とすると A = USV^T というように3つに分解することが多いが、も

    大規模データ処理のための行列の低ランク近似 -- SVD から用例ベースの行列分解まで -- - 武蔵野日記
  • 正規表現に見切りをつけるとき

    Perl, Rubyなど手軽に使えるプログラミング言語に慣れてくると、あらゆるテキストデータの処理に正規表現(regular expression)を使ってしまいがちです。 けれど実は、正規表現の処理能力を超えるフォーマットというのが存在します。その典型的な例が、XMLやJSONのように、入れ子になったデータフォーマットです。

  • アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 : 404 Blog Not Found

    2009年01月31日01:00 カテゴリLightweight LanguagesMath アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 これなのですが.... 同じ文字列のn回繰り返しを作る最速の方法を探求してみた - muddy brown thang ちょっとした事情により、ある文字列のn回繰り返しを作る関数 (PHPでいうところのarray_repeat(), Perlで言うところの「"..." x n」、RubyPythonで言うところの「"..." * n」) を高速に実装しなければならない状況に遭遇したのでベンチマークをとってみたところ、その結果がとても新鮮で驚いたので、これを共有しつつもダメ出ししてもらえないかなーと思って晒してみることに。 なぜかもっとシンプルな奴がなかったので。 以下、比較。初期値はIEにあわせてあります。Firefox/Saf

    アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 : 404 Blog Not Found
  • DBMによるテーブルデータベース その弐 - mixi engineer blog

    インフルエンザで休んだ影響で仕事が鬼のように溜まって消化不良のmikioです(こんな記事を書いている場合じゃない)。さて今回は、Tokyo Cabinetでリレーショナル風データベースを実現したテーブルデータベース(TCTDB)の実装について説明します。 SQLiteとの違いは? SQLiteはアプリケーション組み込み型のSQL対応リレーショナルデータベースのライブラリです。TCのテーブルデータベースよりもはるかに高機能で、それでいて性能も大変優れています。いわゆるデスクトップアプリケーションに組み込むデータベースをお探しであれば、TCなんかではなく、断然SQLiteがおすすめです。 一方で、TCなどのDBMは、より単純なデータ操作をより高速に実行できるように設計および実装されています。典型的なユースケースとして、大規模Webサイトのアカウント管理や、データマイニングに伴う集計操作が挙げら

    DBMによるテーブルデータベース その弐 - mixi engineer blog
  • 自然言語処理における類似度学習(機械学習における距離学習)について - 武蔵野日記

    Twitter でグラフ理論に関する話題が上がっていたので、最近調べている距離学習(distance metric learning)について少しまとめてみる。カーネルとか距離(類似度)とかを学習するという話(カーネルというのは2点間の近さを測る関数だと思ってもらえれば)。 この分野では Liu Yang によるA comprehensive survey on distance metric learning (2005) が包括的なサーベイ論文として有名なようだが、それのアップデート(かつ簡略)版として同じ著者によるAn overview of distance metric learning (2007) が出ているので、それをさらに簡略化してお届けする(元論文自体文は3ページしかないし、引用文献のあとに表が2ページあって、それぞれ相違点と共通点がまとまっているので、これを見ると非

    自然言語処理における類似度学習(機械学習における距離学習)について - 武蔵野日記
  • 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
  • scale out の技術 〜 consistent hashing 編 (cloud 研究会, December 19, 2008)

    scale out の技術 〜 consistent hashing 編 首藤 一幸 2008年 12月 19日 cloud 研究会 (丸山不二夫氏主宰) スライド: shudo-cloud-scaleout-20081219.pdf (PDF ファイル, 840 KB) 関連資料: オーバレイによる分散キャッシュ: ウェブページ (21 pages, HTML) Unstructured overlay と Sturectured overlay: ウェブページ (34 pages, HTML) Back to Publications のページ 首藤のページ scale out の方策