Procesamiento de lenguaje natural: ¿Cuál es la mejor manera de calcular la similitud de cadenas?

Hicimos una similitud de “contexto” para una aplicación de IA (vea su demostración de video en http://Smarter.Codes) y obtuvimos el 87% siguiendo estos pasos
1. Obtenga un buen Reconocimiento de entidad con nombre (Stanford NLP no lo hará. Considere personalizar dbpedia spotlight o alguna solución patentada si desea ahorrar tiempo). Este paso es la base, por lo tanto, una marca o ruptura
2. Entrenador de la entidad reconocida. La cantidad de capacitación depende de la variedad de sus aportes.
3. Mantener una base de datos de taxonomías del conocimiento humano.
Wikidata.org es un buen volcado de datos tanto para taxonomías como para datos de capacitación NER

Sabrá si sus 2 cadenas están hablando de lo mismo si las entidades devueltas por NER para 2 cadenas de entrada coinciden. Sabrá que 2 cadenas tienen el mismo contexto si las taxonomías devueltas por ellas tienen una corta distancia y tienen una relación hijo / padre / abuelo.

Los mismos pasos son seguidos por proveedores propietarios de API AI como Alchemist API o Smarter.Codes. Se prefiere usarlos si es nuevo en NLP y NLU. Le ahorrará meses de tiempo en llegar a tal precisión

Tengo curiosidad por saber de otras respuestas sobre cualquier algoritmo alternativo y su precisión

La similitud basada en los algoritmos de ‘Editar distancia’ no ayudará. Son mejores para el caso de uso de ortografía y autocompletado, en lugar del caso de uso de contexto