¿Existe algún algoritmo que realice el reconocimiento de entidades con nombre insensible a mayúsculas y minúsculas de oraciones cortas?

Lo que has dado como ejemplo es un clasificador. Una solución NER adecuada debería poder no solo clasificar las palabras que ha enumerado (uno de los pasos que tiene que realizar para crear la lista de candidatos para enviar para la desambiguación), sino que también debe identificarlas adecuadamente. En el ejemplo de Nike, la marca y no la diosa griega.

Ahora, cualquier solución NER respetuosa debe ser insensible a mayúsculas o minúsculas, por lo que la sensibilidad a mayúsculas y minúsculas puede desempeñar un papel durante algunos procesos: división de oraciones, etiquetado de parte del discurso (procesamiento del lenguaje natural), pero durante el proceso de desambiguación, el entubado de palabras no debe jugar un papel importante, así como el orden de las palabras. Merkel, Angela y Angela Merkel deben identificarse adecuadamente como las “etiquetas” de la misma identificación.

Un buen lugar para comenzar es el Reconocimiento de Entidades y Desafío de Desambiguación, especialmente su corta trayectoria. Consulte los documentos y el enfoque de los ganadores.

Ahora todo depende de lo que estés buscando. Si está buscando una aplicación interna, tiene una larga curva de aprendizaje. Si está buscando una biblioteca estándar o API, puede verificar Potenciar la nueva economía de IA o algunas de las nuevas empresas en el campo, incluida la mía: ingen.io o los amigos de AYLIEN.

Un enfoque que puedo recomendar es utilizar el aprendizaje profundo.

Dada una palabra, puede capturar N palabras a su izquierda y N palabras a su derecha. Luego puede representar cada una de estas palabras junto con la palabra dada como un vector Word2vec. Se puede usar una red neuronal convolucional con estos vectores como entrada para clasificar la palabra dada como una clase de entidad con nombre particular o no.

Se puede usar un método uno contra todos para determinar el tipo exacto. Además, intente promediar los vectores de palabras para obtener un solo vector como entrada a la red.