単語修正/提案システムを処理するプログラムまたは方法を私に提案してください。-入力が「Suggset」として指定されているとすると、「Suggest」を提案する必要があります。
よろしくお願いします。そして、私はpythonとAJAXを使用しています。アルゴリズムの部分が必要なので、jqueryモジュールを提案しないでください。
単語修正/提案システムを処理するプログラムまたは方法を私に提案してください。-入力が「Suggset」として指定されているとすると、「Suggest」を提案する必要があります。
よろしくお願いします。そして、私はpythonとAJAXを使用しています。アルゴリズムの部分が必要なので、jqueryモジュールを提案しないでください。
「距離の編集」と呼ばれる問題を解決するアルゴリズム。ある言語の単語のリストとタイプミス/不完全な単語を考えると、それに最も近い特定の辞書から単語のリストを作成する必要があります。たとえば、「suggest」と「suggset」の間の距離は2に等しく、1つの削除と1つの挿入が必要です。最適化として、各操作に異なる重みを割り当てることができます。たとえば、置換は削除よりも安価であり、キーボードに近い2つの文字(たとえば「v」と「b」)間の置換はそれらの間よりも安価であると言えます。離れている(たとえば、「q」と「l」)。
スペルと修正のアルゴリズムの最初の説明は1964年に登場しました。1974年に、動的計画法に基づく効率的なアルゴリズムが、RobertA.WagnerとMichaelJ.Fischerによる「文字列から文字列への修正問題」と呼ばれる論文に登場しました。アルゴリズムの本には、多かれ少なかれ詳細な扱いがあります。
Pythonの場合、それを行うためのライブラリがあります。レーベンシュタイン距離ライブラリ また、StackOverflowに関するこの以前の説明も確認してください。
それらの1つを自分で作成するには多くの作業が必要になります。PyEnchantと呼ばれるPythonで書かれた本当に素晴らしいスペルチェッカーライブラリがあります。これが彼らのウェブサイトからの例です:
>>> import enchant
>>> d = enchant.Dict("en_US")
>>> d.check("Hello")
True
>>> d.check("Helo")
False
>>> d.suggest("Helo")
['He lo', 'He-lo', 'Hello', 'Helot', 'Help', 'Halo', 'Hell', 'Held', 'Helm', 'Hero', "He'll"]
>>>