我正在嘗試計算字符串與集合的編輯距離以找到最接近的匹配。我目前的問題是這個集合非常大(大約25000個條目),所以我不得不將它縮小到只有相似長度的字符串,但仍然只能縮小到幾千個字符串,而且這個速度仍然很慢。是否有數據結構允許快速查找類似的字符串,或者有另一種方法可以解決此問題嗎?快速比較字符串與Java中的集合
5
A
回答
8
聽起來像BK-tree可能是你想要的。這裏有一篇文章討論它們:http://blog.notdot.net/2007/4/Damn-Cool-Algorithms-Part-1-BK-Trees。 A quick Google產生一些Java實現。
2
如果您的「類似」條件定義了總排序,您應該能夠定義一個比較器並使用TreeSet來查找最接近的匹配(例如,使用天花板和地板方法)。
6
Levenshtein自動機允許從一個大字典中快速選擇一組單詞,使它們在給定單詞的給定Levenshtein距離內。 (2002)Fast String Correction with Levenshtein-Automata。
相關問題
- 1. Java中的快速字符串集合
- 2. 比較字符串與字符串集合的等同性
- 3. 快速比較字典的方法比使用集合
- 4. 字符數組的快速比較?
- 5. 爲什麼Java中的字符串比較(CompareTo)比C#更快?
- 6. Java Array與字符串的比較
- 7. 比較字符串 - Java的
- 8. 的java字符串比較
- 9. 比較字符串或字節數組的速度更快嗎?
- 10. 如何比較字符與C中給定字符的集合?
- 11. 在快速單元測試中比較字符串
- 12. Java:比較字符串與「 - 」(破折號)
- 13. 字符串/字符比較與python中的按位比較
- 14. Java如何快速比較兩個集合在Java中完全相同?
- 15. 數字比較比字符串比較更快嗎?
- 16. Java比較字符串
- 17. Java字符串比較
- 18. 字符串比較Java
- 19. 比較Java字符串用==
- 20. Java字符串比較
- 21. 與字符串比較字符串值
- 22. nsis中的複合字符串比較
- 23. 字符串比較比字符串長度更快嗎?
- 24. 與字符串比較
- 25. 字符串與node.js比較
- 26. 字符串比較與==
- 27. 比較字符串與document.getElementById()
- 28. PHP字符串與===比較
- 29. 比較datetimepicker與字符串
- 30. Java中字符串的比較
你現在怎麼做?你能顯示一些代碼嗎? – 2012-02-04 08:12:33
定義「相似」。 – 2012-02-04 08:23:59
類似的,我的意思是比較常見的拼寫錯誤,如「exanple」和「example」或「怪異」和「奇怪」。 – Lezan 2012-02-04 09:01:30