タグ

algorithmに関するoasis440のブックマーク (5)

  • Gym

    Gym is a standard API for reinforcement learning, and a diverse collection of reference environments# The Gym interface is simple, pythonic, and capable of representing general RL problems: import gym env = gym.make("LunarLander-v2", render_mode="human") observation, info = env.reset(seed=42) for _ in range(1000): action = policy(observation) # User-defined policy function observation, reward, ter

  • b-Bit MinHashによる高速かつ省スペースな類似度判定 - SmartNews Engineering Blog

    ゴクロの浜です。ネットカフェでコードを書くのが好きです。 前回のエントリーでも触れられていますが、SmartNewsはホットな話題をユーザにお届けするために、常時、膨大な数のツイートおよびURLをクロールしています。こうして収集した記事に対し、様々な分析が施されますが、その中でも重要な処理の1つに、記事の類似度判定があります。内容の似通った記事をインデックスから発見し、グループ化する処理です。 毎秒、大量の新着記事が到着することから、この類似度判定は高速に実行する必要があります。また、インデックスを全てメモリに載せているので、類似度判定を実現する際の空間効率も要求されます。 今回は、SmartNewsが高速かつ省スペースな類似度判定のために使用しているb-Bit MinHashと呼ばれる手法を紹介します。2年前に、PFIの岡野原さんが非常に分かりやすい解説記事を書かれており、エントリー

    b-Bit MinHashによる高速かつ省スペースな類似度判定 - SmartNews Engineering Blog
  • 関数プログラミング 珠玉のアルゴリズムデザイン

    演算子以外の構文記号の一部については,GHCの言語拡張UnicodeSyntaxを有効にするとソースコード中に記述可能です. 詳細については,GHCユーザーガイド 9.3.1 Unicode syntaxをご覧ください. 演算子に関しては,Unicodeの記号が使えますので,たとえば,1章については,以下のような定義モジュールをインポートすれば,そのままコードで表現できます. {-# LANGUAGE UnicodeSyntax #-} module Operators where import qualified Data.List infixr 5 \\ (\\) ∷ Eq a ⇒ [a] → [a] → [a] (\\) = (Data.List.\\) infix 4 ∈, ∉ (∈) ∷ Eq a ⇒ a → [a] → Bool (∈) = elem (∉) ∷ Eq a ⇒

  • Jaro-Winkler距離 - kogelab::memo

    以前、スペルミスや「もしかして」系の機能の裏で動く技術としてわりと知られているLevenshtein距離についてちょっと書いてみました。 今回はそれと同様な用途に用いられがちなJaro-Winkler距離。 Jaro-Winkler距離というのは、Levenshtein距離同様に文字列同士の近さを数値化するアルゴリズムです。 距離って言っても、数値が小さいほうが遠いので気をつけましょう。cos距離みたいなかんじです。 こいつは、Jaro距離という、これまた謎の文字列類似度計測指標にすこしだけ改良を加えたもので、肝はJaro距離です。 その少しだけの改良というのは、(式を見る限り)プレフィックスのexact matchは重視しようか、という程度のもの。 で、パパっと作れると思ったら、意外とてこずった。 Jaro距離では文字同士の一致を取るのですが、マッチとする文字の文字位置に一定の範囲をもう

    Jaro-Winkler距離 - kogelab::memo
  • 3ウェイマージというマージアルゴリズム - プログラマの思索

    分散バージョン管理のマージコマンドが優れているのは、3ウェイマージが使われているのではないか、と思った。 3ウェイマージに関する記事をメモ。 【元ネタ】 変更をマージする ? Bazaar v2.6.0dev2 documentation JapaneseTutorialConflict - Mercurial マージ (バージョン管理システム) - Wikipedia 競合の編集~TortoiseMerge 第3章 TortoiseMergeの使い方 Mercurial 2.0?: graft: 3-way マージアルゴリズムを使った cherry-picking - tcha.org 分散バージョン管理はバージョンではなくリビジョンを管理する: プログラマの思索 SVNからMercurialに移行するべき8つの理由: ニュースの社会科学的な裏側 (引用開始) SVNのブランチの様にTr

    3ウェイマージというマージアルゴリズム - プログラマの思索
  • 1