問題タブ [levenshtein-distance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - ドキュメントとほぼ一致するように識別子を分割
ソフトウェア プロジェクトが異なれば、コーディング規約も異なります。同じプロジェクトでも、異なる言語が使用されている可能性があり、異なる慣習があります。ソース コードからの識別子トークンを使用して、ドキュメント (ソース ファイルの外部に表示される) を検索するには何が適していますか?
たとえば、ソースにself._def_passwdまたはthis.defPasswrdがある場合、ドキュメント ツリーのクエリはデフォルトのパスワードと一致するように努力する必要があります。
これまでのところ、編集距離が小さい場合はうまく機能するレーベンシュタイン距離で並べ替えようとしてきましたが、しきい値を大きくすると偽陽性が多すぎて、ドキュメントの空白で問題が発生します。
ここで、最初の値はレーベンシュタイン距離で、2 番目の値は距離を一致した単語の長さで割ったものです。しようと思っています
- Jaccard、Tanimoto アルゴリズムを調べる
- 知性/ちょっとしたコードを提案する
- SO のどこかに、生物学者がシーケンスのマッチングに使用するいくつかのアルゴリズムに関する投稿がありました。
- http://en.wikipedia.org/wiki/Naming_convention_%28programming%29に基づいて、正規表現チェーン ルールを作成します。
最後のオプションは文字通り最後のオプションです。この種のものに対して、他のどのアルゴリズムがより良い結果をもたらすと思いますか?
c++ - スペルチェッカーでのレーベンシュタイン距離の使用
私は C++ でスペル チェッカーに取り組んでおり、実装の特定の段階で立ち往生しています。
正しいスペルの単語と、スペルの間違いをチェックしたい入力文字列を含むテキスト ファイルがあるとします。その文字列がスペル ミスの単語である場合、テキスト ファイル内のすべての単語をチェックし、最小の文字でそれと異なる単語を選択することで、正しい形式を簡単に見つけることができます。そのタイプの入力に対して、2 つの文字列間のレーベンシュタイン編集距離を計算する関数を実装しました。ここまでは順調ですね。
ここで難しいのは、入力された文字列がスペルミスの単語の組み合わせである場合はどうなるかということです。たとえば、「iloevcokies」です。「i」、「love」、「cookie」はテキスト ファイルに含まれる単語であることを考慮して、既に実装されているレーベンシュタイン関数を使用して、ファイルのどの単語が修正に適しているかを判断するにはどうすればよいですか? また、正しい位置に空白を挿入するにはどうすればよいですか?
どんなアイデアでも大歓迎です:)
algorithm - 有効な単語を介したある単語から別の単語への最短経路(グラフなし)
私はこの編集距離の問題のバリエーションに出くわしました:
ある単語から別の単語への最短経路を見つけます。たとえば、storm-> powerのように、isValidWord()
関数を使用して各中間単語を検証します。単語の辞書への他のアクセスがないため、グラフを作成できません。
私はこれを理解しようとしていますが、それ自体は距離に関連する問題ではないようです。多分単純な再帰を使用しますか?しかし、それでは、自分が正しい方向に進んでいることをどうやって知るのでしょうか。
他の誰かがこれを面白いと思いますか?助けてくれるのを楽しみにしています、ありがとう!
haskell - Data.Memocombinators を使用して編集距離アルゴリズムを実装する
レーベンシュタイン距離(編集距離)の通常の動的計画法のアルゴリズムを実装したいとしましょう。再帰を考え出すのはとても簡単です:
これは指数関数的な実行時間の影響を受けるため、関数をメモする必要があります。私は Data.Memocombinators を使用してこれを行いたいと考えており、いくつかの方法を試しました。これが私の現在の試みです:
ただし、少なくとも多項式であるため、メモ化によって実行時間が大幅に改善されると予想されますが、メモ化には何の効果もないようです。実装の何が問題になっていますか? 編集距離の高レベルの定義を可能な限り維持しながら、適切な実行時間を取得するにはどうすればよいですか?
c - 2つの単語がどのくらい離れているかを見つける方法>>これを最短で見つける方法はありますか?
2 つの異なる単語間の距離の計算について、レーベンシュタイン距離について読みました。
ソース文字列が 1 つあり、それを 10,000 のターゲット ワードすべてと一致させる必要があります。最も近い単語が返されます。
問題は、10,000 のターゲット ワードのリストを指定したことと、入力ソース ワードも巨大であることです。ここで適用する最短かつ効率的なアルゴリズムは何でしょうか。n ごとの組み合わせごとのレーベンシュタイン距離の計算 (ブルート フォース ロジック) は、非常に時間がかかります。
ヒントやアイデアは大歓迎です。
python - 単語リストを使用したレーベンシュタイン距離の計算
最初に言いたいのは、私は Python の初心者です。多くの単語リストのレーベンシュタイン距離を計算しようとしています。今まで、単語のペアのコードを書くことに成功しましたが、リストのコードを書くのに問題があります。次のように、単語が上下に並んだ 2 つのリストが必要です: carlos stiv peter
類似性アプローチにレーベンシュタイン距離を使用したいと思います。リストをロードしてから、関数を使用して距離を計算する方法を教えてもらえますか?
感謝します!
2 つの文字列のコードは次のとおりです。
design-patterns - 2 つの文字列間の複数の違いを見つける
2 つの文字列の違いを見つけたい。たとえば、
次に、名前 - 年齢と ABC - xyz の違いを取得できるはずです。
レーベンシュタイン距離を使用できると思いますが、わかりません。どんな助けでも大歓迎です。
algorithm - レーベンシュタイン距離: 行列から編集操作を推測する
C++でレーベンシュタインアルゴリズムを書きました
入力した場合:
文字列 s: 民主主義者
文字列 t: 共和党
行列 D を埋めて、操作の数 (レーベンシュタイン距離) を D[10][8] = 8 で読み取ることができます
。埋められた行列を超えて、最適解を構築したいと考えています。このソリューションはどのように見える必要がありますか? アイデアがありません。
この例では、どのように見える必要があるかだけを書いてください。
algorithm - Getting the closest string match
I need a way to compare multiple strings to a test string and return the string that closely resembles it:
(If I did this correctly) The closest string to the "TEST STRING" should be "CHOICE C". What is the easiest way to do this?
I plan on implementing this into multiple languages including VB.net, Lua, and JavaScript. At this point, pseudo code is acceptable. If you can provide an example for a specific language, this is appreciated too!
php - PHP のレーベンシュタイン
これらの関数をモデルに記述しました (CodeIgniter を使用しています)。
この関数はコントローラにあります
$allingrd
成分名の配列です。$closeword
in javascript アラート メッセージを表示します。私が与えると、$lev=levenshtein($ingrdname,$allingrd[0])
それは完全に機能します。ただし、ループ内では機能しません。理由についてのアイデアはありますか?前もって感謝します。