ユーザーテキスト入力に基づいてリストから最も可能性の高いオプションを選択する方法


11

ユーザーのテキスト入力に基づいてオプションを選択する必要があるOCRアプリケーションで作業しています。

Ex:
Available Options:
["python", "ruby", "java", "clojure", "haskell"]

Input: kava
Output: java

Input: ruby
Output: ruby

Input: clujuro
Output: clojure

etc.. 

私のアプリケーションはPythonベースですが、この問題を解決するためのアルゴリズムがすでに存在しますか?


1
今すぐ修正する価値はないかもしれませんが、IMOのより適切なタイトルは「文字列間の距離(差)を決定する方法」
ジェフウェリング

3
@ジェフ:そして、私はこの質問を見つけることはありません。なぜなら、必要なものが「距離差」と呼ばれるかもしれないという考えがないからです...そして、それがあなたが必要な解決策を入れない唯一の理由ではありません質問。あなたが実際に抱えている問題の代替解決策を提案することを人々を妨げるかもしれません。適切な例:ラウドサイトの答え。
マルジャンヴェネマ

1
私のポイントは、あなた知っているように、より正確なタイトルを使用すると、「最も可能性の高い...を選択する方法」が何を意味するのかわからないが、「文字列間の距離」を認識する人からの回答を集めるのに役立つかもしれませんが、それぞれ自分自身に。それは単なる提案でした。私はあなたが何を意味するのか分かりませんでした、そして、それがすべてであるので、ほとんどあなたの質問をクリックしませんでした。
ジェフウェリング

回答:


10

これは、「近似文字列一致」カテゴリのアルゴリズムによって行われます。2つの文字列を比較する一般的な尺度は、レーベンシュタイン距離と呼ばれます。ここで利用可能なpython実装があります

基本的に、入力を可能な出力と比較し、目的の出力までの距離が最も短いものを選択します。

ウィキペディアの記事には、より具体的な何かが必要な場合に試すことができる他のさまざまなアルゴリズムも記載されています。


ルビーでも同様の問題がありましたが、これがまさにそれを解決した方法です。
ジェフウェリング

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.