0

私は、鉄道のスケジュールを取得する SMS ベースのアプリケーションを構築しています。今直面している問題は、ユーザーが特定の駅の名前を間違って入力した場合 (「コルカタ」ではなく「コルクタ」と書いたとします)、私のアプリはそれに最も近い一致を得たクエリの結果を転送することはできません.どうすればいいですか?これのためのJavaのAPIはありますか?

4

2 に答える 2

0

Lucence Apache は有望に思えますが、自宅で簡単に調理できるもっと単純なものが必要な場合は、ユーザー入力と鉄道名のセット全体との間の最小編集距離を計算してみてください。これは文字列間の類似性の測定値であり、非常に効率的に計算できます (特に、文字列が非常に短い場合)。

上記のリンクには恐ろしい数式が含まれていますが、これはすべての正式な表現の性質です。彼らは怖いです。少し下にスクロールすると、アルゴリズムの非常に短い擬似コードが表示されます (ほぼコピー ペースト)。

于 2012-08-19T18:21:30.580 に答える
0

Apache Luceneは、Java で必要なサポートを提供すると思います。

于 2012-08-19T17:38:56.340 に答える