0

スペルの自動修正と Jaro-Winkler 戦略の使用を試みています。私は提案のリストを持っており、タイプの単語は提案の単語でランク付けされています。私が直面している問題は、「ans」/「anf」/「anr」という単語がタイプの場合、比較すると「an」に高さが与えられます。"and" はスコアリストにずっとさかのぼります。したがって、「ans」/「anf」/「anr」は「and」ではなく「an」に置き換えられます。

これをどのように解決すればよいか、または "ans"/"anf"/"anr" を "and" ではなく "an" に完全に置き換える他のアルゴリズムはありますか?

4

1 に答える 1

0

一般的なタイプミスの場合、削除/追加よりも転置を重視することは良い考えのようです。

入力が標準のキーボード レイアウト (qwerty?) で入力されていると仮定すると、キー間の物理的な距離に基づいて追加の重みを付けることができます。論理的にそれを行う最善の方法がわからない。頭のてっぺんから、キーボード マップを含む 2 次元配列を作成し、実際の (ピタゴラスの) 距離を比較できます。

「Q」=[0][0]、「W」=[0][1]、「A」=[1][0] のマップを考えると、A->Q 間の距離は 1、Q- >W = 1、および Q->S = sqrt(2)。これにより、距離に重みを付けることができます。

おそらく、距離計算のはるかにクリーンな実装があるでしょうが、ここでは唾を吐くだけです。

于 2012-07-02T17:30:08.047 に答える