asumir dos juegos de cuerdas:cadenas coincidentes disímiles
[ "Mr. Jones", "O'Flaherty", "Bob", "Rob Jenkins" ]
[ "Maxwell O'Flaherty", "Robert Jenkins", "Mrs. Smith" ]
Es obvio que estos dos conjuntos tienen Maxwell O'Flaherty y Robert Jenkins en común.
¿Hay algún algoritmo que nos permita hacer tal coincidencia programáticamente? Estoy pensando en escribir algo que recorra cada elemento en una serie de cadenas e intente encontrar cualquier subcadena que sea única y no contenida en ningún otro elemento en ninguno de los conjuntos y luego usar eso como una especie de hash de cada elemento para unir los dos conjuntos.
Debe revelar, qué nombres deben tratarse como iguales. Como no estoy familiarizado con los nombres en inglés, no es obvio para mí que "esos dos conjuntos tienen en común a Maxwell O'Flaherty y Robert Jenkins". Y no es obvio para el compilador de C#. En cuanto a usted, no es obvio que "Sasha Ivanov" y "Alexandr Petrovich Ivanov" sean lo mismo, pero no lo mismo que "Alexey Ivanov". – Vovanium
Estoy de acuerdo, una computadora tendría tan pocas posibilidades de emparejar a Sasha y Alexandr como lo haría con Richard y Dick. El problema no son los apellidos, sino simplemente hacer coincidir cadenas similares. – devprog
Probablemente un duplicado de: [http://stackoverflow.com/questions/83777/are-there-any-fuzzy-search-or-string-similarity-functions-libraries-written-for-c](http:/ /stackoverflow.com/questions/83777/are-there-any-fuzzy-search-or-string-similarity-functions-libraries-written-for-c) –