69 votes

recherche de chaîne fuzzy en Java

Je suis à la recherche de haute performance de la bibliothèque Java floue chaîne de recherche.

Il existe de nombreux algorithmes pour trouver des chaînes similaires, Levenshtein, Daitch-Mokotoff Soundex, n-grammes, etc.

Ce que Java implemenations existe? Avantages et inconvénients pour eux? Je suis conscient de Lucene, toute autre solution ou Lucene est le meilleur?

J'ai trouvé ceux-ci, quelqu'un a une expérience avec eux?
SimMetrics
NGramJ

39voto

JodaStephen Points 6357

Commons Lang a une mise en œuvre de Levenshtein.

Communes Codec a une mise en œuvre de soundex et metaphone.

8voto

Darren Points 966

SimMetrics est probablement ce dont vous avez besoin: http://sourceforge.net/projects/simmetrics/

Il a plusieurs algorithmes pour calculer différentes variantes de distance d'édition.

Lucene est un moteur de recherche plein texte très puissant, mais la recherche de mots clés n'est pas exactement la même chose que la recherche de chaînes fuzzy (par exemple, une liste de chaînes me permet de trouver celle qui ressemble le plus à une chaîne candidate).

3voto

Mond Raymond Points 115

1voto

Vugluskr Points 346

Apache Lucene est le seul moyen, je pense. Je ne connais pas de meilleure recherche lib.

Apache Lucene (TM) est une bibliothèque de moteur de recherche de texte complète hautes performances entièrement écrite en Java. Cette technologie convient à presque toutes les applications nécessitant une recherche en texte intégral, en particulier multiplate-forme.

1voto

Mojo Risin Points 5471

Vous pouvez essayer bitap. Je jouais avec bitap écrit en ANSI C et c'était assez rapide, il y a l'implémentation de Java dans http://www.crosswire.org .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X