.NET-library pour le texte des algorithmes?
Savez-vous tout .NET-library pour le texte des algorithmes??
Je suis d'autant plus intéressé par les chaînes de match, et le plein-texte-algorithmes de recherche comme
- Bitap algorithme
- Levenshtein
- Distance de damerau–Levenshtein
Je sais que celui que j'ai mentionné sont assez simple à coder, mais il y a des centaines d'algorithmique du texte, je ne veux pas de code tous par moi-même.
Si il n'y a pas de tel .NET-library connu, vous pouvez mentionner le C, le C++ de la bibliothèque, de codage wrapper sera easer de codage à partir de zéro.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez être intéressé par la vérification de la google-diff-match-patch bibliothèque sur Google Code. Ils ont une mise en œuvre de Myer de l'algorithme de comparaison et il prétend également de mettre en œuvre un Bitap algorithme "au cœur".
Il a la source en C# que vous cherchez ainsi que des implémentations en Java, C++, Lua & Python. Bien que je n'ai pas la meilleure compréhension de la façon d'utiliser Bitap dans la pratique (il y a des démonstrations dans le Google Code du projet) je pense que vous serez plus intéressé par les fonctions de match, à partir de la ligne de 1476 du version actuelle.
Mise à JOUR:
Creuser un peu trouvé une mise en œuvre de Levenshtein en C# sur CodeProject.
Aussi, ce fichier de classe C# contient une implémentation de Levenshtein sur le site de SourceForge. La mise en œuvre fait partie de la Corsis (aka Tenka Texte) projet. Auteur affirme que le YetiLevenshtein méthode (autour de la ligne 741) est 2x à 10x plus rapide que la mise en œuvre utilisé dans le CodeProject version de l'algorithme mentionné ci-dessus.
Mise à JOUR #2:
Je viens de découvrir le wikibook L'implémentation de l'algorithme avec C# version de Levenshtein et a dû l'inclure, car il semble assez simple et au point. Ce wikibook ressemble à une grande référence à garder sous la main en général.
Levenshtein en C# (avec l'aimable autorisation de Wikibooks)
J'ai réussi à trouver les implémentations de la plupart des algorithmes j'ai besoin de l'aide de la combinaison de Wikipédia Google + Code de la recherche.
http://en.wikipedia.org/wiki/Category:Algorithms_on_strings
http://www.google.com/codesearch
Mais il est étrange que personne n'a créé un projet sur ce sujet, où les personnes intéressées peuvent collaborer sur ce.
Si tu fais de la correspondance de chaîne, Lucene.Net vaut le coup d'oeil.
Cependant, je sais que ce n'est pas exactement ce que vous êtes après, et alors que vous pouvez trouver la plupart de ces algorithmes en C# forme autour de moi, je connais pas de bibliothèque à les intégrer (j'ai tendance à garder un couple de ceux-ci dans ma bibliothèque personnelle).
D'intérêt, pourquoi voudriez-vous jamais besoin de plus d'un de ces match algorithmes avec un couple de paramètres de seuil?
ici est celle que j'ai mis en œuvre pour Levenshtein /distance de damerau–Levenshtein:
Je suggère SimMetrics de la bibliothèque, il a beaucoup de différents algorithmes pour la correspondance de chaîne. Disponible également sur NuGet.
Courte description:
Licence GPLv2.
J'ai trouvé et utilisé la suite .NET-library la mise en œuvre de Aho-Corasick texte mathcing de Tom Petricek sur un problème que j'ai eu. Il a très bien fonctionné pour moi.