タグ

類似度に関するyukinoiのブックマーク (3)

  • 類似文字列検索ライブラリResemblaを公開しました - LINE ENGINEERING

    LINEでClovaの開発をしている上村です。これはLINE Advent Calendar 2017の13日目の記事です。今日は文字列の話をします。 はじめに 与えられた文字列によく似たものを大きな文字列集合から探すということは、古典的でありふれていながら奥が深く難しい問題です。文字列の類似度を正確に見積もるには複雑な計算が必要ですが、膨大な量のコーパスが与えられたときも可能な限り高速に応答を返す必要があります。 検索する文字列の性質をよく把握することも、品質のよい類似文字列検索を行うためには極めて大切です。ここで、今回考える問題の例を見てみます。 この例では、1文字ずつ違いを見つけ出したり、単語単位で見たり、文全体が疑問文や否定文であるかどうかを調べ、それらを総合的に見ることで最終的な判断を下しています。文字だけを見た場合、1文字の違いによって全く違う単語になることは見つけられませんし

    類似文字列検索ライブラリResemblaを公開しました - LINE ENGINEERING
  • 高速な編集距離の計算方法 - Qiita

    今日紹介するコードはここにおいてあります。 https://gist.github.com/aflc/6482587 編集距離(levenshtein距離)の計算方法で一番有名なのが動的計画法を使ったもので、これはWikipediaにも載っているお手軽でよく使われているものです。 しかし、この方法は結構時間がかかるので、他にも高速な手法がいくつか提案されています。 NOXさんのブログエントリを読んでいただくのが一番手っ取り早いのですが、ビットパラレル法というのが上手くハマると10倍以上高速です。 ここで紹介されている論文では64文字以上の比較ができないのですが、今回は Heikki Hyyrö, "Explaining and extending the bit-parallel approximate string matching algorithm of Myers", 2001 と

    高速な編集距離の計算方法 - Qiita
  • 集合とかベクトルの類似度の計算のメモ - 唯物是真 @Scaled_Wurm

    Pythonで実装する類似度計算 - Screaming Loud #1283. 共起性の計算法 ↑この辺りの記事を見て、集合とかベクトルの類似度の計算の記事を下書きのまま放置していたことを思い出したので書き上げた。 類似度の計算のコードを書いたのでそれを載せるだけにしようかと思ったのですが、知っている人にしか伝わりそうにないので自然言語処理でよく使う話の概要だけでも書いときます。 導入 自然言語処理の分野では単語の意味を比較するときに、ある単語の周り(文脈)に出てきた単語のベクトル(文脈ベクトル)の類似度を計算することがある。 これは「ある単語の意味はその周囲に出現する単語によって特徴づけられている」という仮説に基づいていて、文脈ベクトルが似ていれば似たような意味、似たような状況で使われる単語が多いということが言えるからである。 Distributional semantics - Wi

  • 1