文字列の編集距離をコレクションに対して計算して、最も近いものを見つけることを試みています。私の現在の問題はコレクションが非常に大きく(約25000アイテム)、セットを同じ長さの文字列に絞り込む必要がありましたが、それでもそれは数千文字列にしか絞られず、依然として非常に遅いです。類似した文字列をすばやく検索できるデータ構造があるのでしょうか、この問題に対処する別の方法がありますか?すぐに文字列をJavaのコレクションと比較します
5
A
答えて
8
BK-treeのようなサウンドがあなたが望むかもしれません。それらについて議論している記事があります:http://blog.notdot.net/2007/4/Damn-Cool-Algorithms-Part-1-BK-Treesquick Googleでは、いくつかのJava実装が生成されます。
2
「類似」の条件で全体の順序が定義されている場合は、Comparatorを定義し、TreeSetを使用して最も近い一致を見つけることができます(天井と床のメソッドを使用するなど)。
6
Levenshtein Automataは、指定された単語から与えられたLevenshtein距離内にあるように大きな辞書から単語のセットを素早く選択することができます。
参照:Schulz K、Mihov S.(2002)Fast String Correction with Levenshtein-Automata。
関連する問題
- 1. Java配列と文字列の比較
- 2. 文字列の比較 - Java
- 3. Java:文字列の比較
- 4. Javaの文字列比較
- 5. Java文字列比較
- 6. 文字列とPHPの文字列を比較しますか?
- 7. 文字列を比較するJava
- 8. Javaの文字列とSQLデータベースの文字列を比較できません
- 9. Javaでの文字列比較
- 10. Gson、JsonElement、Javaでの文字列比較
- 11. Javaスクリプトの文字列比較
- 12. Java文字列の比較が失敗します
- 13. bash:文字列と文字列を比較するには?
- 14. クリップボードの内容を "\ n"の文字列と比較する-Java
- 15. 2つの文字列をJavaのDateと比較する
- 16. アンドロイドの文字列配列名と文字列を比較します
- 17. hackerrank-java部分文字列比較エラー
- 18. Java:文字の比較
- 19. 文字列と文字列とをアンドロイドで比較する
- 20. 文字列の比較。どのようにstd :: wstringと文字列を比較できますか? WRT strcmp
- 21. Guidと文字列を比較する
- 22. パターンと文字列を比較する
- 23. 配列文字列と文字列を比較する
- 24. 文字列と他の文字列をシーケンシャルで比較する
- 25. Cの文字列と文字列を比較する
- 26. Elmの文字列と文字列を比較する
- 27. 文字列比較
- 28. 比較文字列
- 29. 文字列内の文字と文字を比較しますか?
- 30. GUIを使ったJavaメモリゲーム - 文字列と配列の比較
どうやってやっていますか?いくつかのコードを表示できますか? –
「類似」を定義します。 –
同様に、「exanple」や「example」や「weird」や「wierd」などの一般的なスペルミスである単語を比較することを意味します。 – Lezan