どのようには、2つの文字列を比較し、のパーセンテージを出力します。文字列間の類似点を見つけるのは簡単ですが、をパーセンテージで表示するのは難しいです。 達成方法Ruby?2つの文字列を比較して類似度を求める方法は?
-5
A
答えて
2
これを解決する方法の1つは、文字列を別の文字列に変換するために必要な操作がいくつあるかを示すLevenshtein距離から外すことです。
Rubyには、Levenshtein
という名前の宝石があります。
必要な操作数をパーセンテージに変換するには、100%から外に出て、最初からすべての文字列を書き込む必要があり、類似性がありません。これは最長の文字列の長さになります。もう1つの選択肢は、文字列の平均長さを使用することですが、この例では、最も長い文字列を使用します。ここで
はlevenshtein
gemを使用して、彼らがどれだけ近いかの割合を取得する方法である:
require 'levenshtein'
def distance_percent(first,second)
max_distance = [first,second].max_by(&:length).length
distance = Levenshtein.distance(first,second)
(100.0/max_distance * distance).round.to_s + "%"
end
ここではその方法が異なる文字列を返すもののいくつかの例があります。
string_one = "1234567890"
string_two = "1234567890"
puts distance_percent(string_one, string_two)
# => 0%
それらの間の距離が同じ文字のいずれも存在しないので、これは100%
が返される0
string_one = "1234512345"
string_two = "6789067890"
puts distance_percent(string_one, string_two)
# => 100%
であるので、これは0%
を返します。
string_one = "This is a string"
string_two = "This is another string"
puts distance_percent(string_one, string_two)
# => 27%
ストリングの27%が互いに異なっているので、これは27%
を返します。
関連する問題
- 1. 2つの文字列を比較して類似度を求める方法
- 2. 2つの文字列を比較して最も類似している文字列を返す
- 3. 2つのイメージを比較し、類似度の割合を%
- 4. 字句類似度を比較するための数値ハッシュ
- 5. 2つの類似した文字列を比較する最良の方法は?
- 6. 2つの画像の類似度を比較するAPI
- 7. 類似性に関する2つのベクトル文字列の比較C++
- 8. 2つの文字列の類似度を測定するアルゴリズム
- 9. C#類似の文字列を比較する
- 10. mongoDBの2つの文字列を比較する方法は?
- 11. テキスト文字列の類似度を計算する方法は?
- 12. .csvファイルまたは文字列を比較して類似性をどのように比較しますか?
- 13. アイデアの類似性を比較するアルゴリズム(文字列として)
- 14. Pythonの文字列の比較の類似性
- 15. mysqlの2つの文字列を比較する方法
- 16. 類似の文字列の比較と組み合わせ
- 17. C#では、2つの文字列の文字を比較する方法
- 18. 2つの日付文字列を比較する方法
- 19. 2つのHTML文字列を比較する方法
- 20. 類似度の画像の比較
- 21. javaを使用して類似性を比較する方法
- 22. 文字列の比較、最も類似したものを返します
- 23. 2つの結果セットの類似点を比較する
- 24. SPARQL:類似した文字列を見つける方法?
- 25. 類似の文字列オプションを比較するためのパターンの使い方は?
- 26. HashMapとArraylistを比較して類似の値を見つける方法
- 27. 2つの文字列の比較.CSV
- 28. 2つの文字列のBash比較
- 29. 文字列比較、私は2つの文字列を比較しています
- 30. C - 2文字列のインデックスを比較する方法は?
これは実際にはほとんど問題ではありません。 **何を試しましたか?**例を挙げてください。いくつかのコードを表示します。 – tadman
Levenshtein Distanceのような音がして、その結果をソース文字列の文字のパーセンテージと比較します。 – Unixmonkey
あなたが何を求めているのかは不明です。パーセンテージとして測定された文字列を比較するアルゴリズムまたは方法をお探しですか? Rubyで特定のアルゴリズム(あなたが言及していない)を書くのを探していますか? *文字列間の類似性を簡単に見つけることができます。... ...「類似性」はどのように定義されていますか? – lurker