Je ne sais pas si cette question appartient ici et je m'en excuse sinon. Ce que je cherche à faire est de développer une manière programmatique dans laquelle je peux déterminer de manière probabiliste si une chaîne donnée "appartient" dans un sac de chaînes. Par exemple, si j'ai un sac de 10 000 noms de villes américaines et que j'ai ensuite la chaîne «Philadelphie», je voudrais une mesure quantitative de la probabilité que «Philadelphie» soit un nom de ville américain basé sur les noms de villes américaines que je connais déjà. Bien que je sache que je ne serai pas en mesure de séparer les vrais noms de ville des faux noms de ville dans ce contexte, je m'attendrais au moins à avoir des chaînes telles que "123.75" et "Le renard roux rapide a sauté par-dessus les chiens paresseux". un certain seuil.
Pour commencer, j'ai regardé Levenshtein Distance et fouillé un peu sur la façon dont cela a été appliqué à des problèmes au moins quelque peu similaires à celui que j'essaie de résoudre. Une application intéressante que j'ai trouvée était la détection du plagiat, avec un article décrivant comment la distance de Levenshtein a été utilisée avec un algorithme de Smith-Waterman modifié pour noter les articles en fonction de leur probabilité d'être une version plagarisée d'un papier de base donné. Ma question est de savoir si quelqu'un pourrait m'orienter dans la bonne direction avec d'autres algorithmes ou méthodologies établis qui pourraient m'aider. J'ai l'impression que cela peut être un problème que quelqu'un dans le passé a essayé de résoudre, mais jusqu'à présent, mon Google-fu m'a échoué.