No estoy seguro si esta pregunta pertenece aquí y me disculpo si no. Lo que estoy buscando hacer es desarrollar una forma programática en la que pueda determinar probabilísticamente si una cadena dada "pertenece" en una bolsa de cadenas. Por ejemplo, si tengo una bolsa de 10,000 nombres de ciudades de EE. UU. Y luego tengo la cadena "Filadelfia", me gustaría una medida cuantitativa de la probabilidad de que 'Filadelfia' sea un nombre de ciudad de EE. UU. Basado en los nombres de ciudades de EE. UU. Si bien sé que no podré separar nombres de ciudades reales de nombres de ciudades falsas en este contexto, al menos esperaría tener cadenas como "123.75" y "El zorro rojo rápido saltó sobre los perros marrones perezosos" excluido dado Algún umbral.
Para comenzar, miré Levenshtein Distance y examiné un poco cómo se ha aplicado a problemas al menos algo similares a los que estoy tratando de resolver. Una aplicación interesante que encontré fue la detección de plagio, con un artículo que describe cómo se utilizó la distancia de Levenshtein con un algoritmo modificado de Smith-Waterman para calificar los documentos según la probabilidad de que fueran una versión plagarizada de un documento base dado. Mi pregunta es si alguien podría señalarme en la dirección correcta con otros algoritmos o metodologías establecidas que podrían ayudarme. Tengo la sensación de que esto puede ser un problema que alguien en el pasado ha intentado resolver, pero hasta ahora mi Google-fu me ha fallado.