Chatbot NER es un marco de código abierto personalizado para admitir el reconocimiento de entidades en mensajes de texto. Después de realizar una investigación exhaustiva sobre los sistemas NER existentes, el equipo de Haptik sintió la gran necesidad de crear un marco diseñado para la IA conversacional y que también admita los idiomas indios. Actualmente, Chatbot-ner admite inglés, hindi, gujarati, marathi, bengalí y tamil y su código mixto. Actualmente, este marco utiliza patrones comunes junto con algunas técnicas de PNL para extraer las entidades necesarias de lenguajes con datos escasos. La estructura API de Chatbot ner está diseñada teniendo en cuenta la usabilidad para aplicaciones de IA conversacional. El equipo de Haptik trabaja continuamente para adaptar este marco a todos los idiomas indios y sus respectivos dialectos locales .
La documentación detallada sobre cómo configurar Chatbot NER en su sistema usando Docker está disponible aquí.
Tipo de entidad | Referencia de código | Descripción | ejemplo | Idiomas admitidos: código ISO 639-1 |
---|---|---|---|---|
Tiempo | detector de tiempo | Detectar la hora a partir de un texto determinado. | mañana por la mañana a las 5, कल सुबह ५ बजे, kal subah 5 baje | 'en', 'hola', 'gu', 'bn', 'señor', 'ta' |
Fecha | FechaAdvancedDetector | Detectar fecha a partir de un texto dado | el próximo lunes, agle somvar, अगले सोमवार | 'en', 'hola', 'gu', 'bn', 'señor', 'ta' |
Número | detector de números | Detectar el número y las unidades respectivas en un texto dado | 50 rs por persona, ५ किलो चावल, मुझे एक लीटर ऑइल चाहिए | 'en', 'hola', 'gu', 'bn', 'señor', 'ta' |
Número de teléfono | detector de teléfono | Detectar número de teléfono en texto dado | 9833530536, +91 9833530536, ९८३३४३०५३५ | 'en', 'hola', 'gu', 'bn', 'señor', 'ta' |
Correo electrónico | detector de correo electrónico | Detectar correo electrónico en texto | [email protected] | 'es' |
Texto | detector de texto | Detecte entidades personalizadas en cadenas de texto mediante la búsqueda de texto completo en Datastore o según el modelo contextual | Pídeme una pizza , मुंबई में मौसम कैसा है | Búsqueda admitida para 'en', 'hi', 'gu', 'bn', 'mr', 'ta', modelo contextual admitido solo para 'en' |
PNR | PNRDetector | Detecta códigos PNR (serie) en un texto determinado. | Mi PNR de vuelo es 4SGX3E | 'es' |
expresión regular | detector de expresiones regulares | Detectar entidades usando patrones de expresiones regulares personalizados | Mi PNR de vuelo es 4SGX3E | N / A |
Hay otros detectores personalizados, como ciudad y tamaño de compras económicas, que se derivan de los detectores primarios mencionados anteriormente, pero actualmente solo se admiten en inglés y están limitados a usuarios indios únicamente. Actualmente estamos en el proceso de reestructurarlos para adaptarlos a todos los idiomas y geografías y sus versiones actuales podrían quedar obsoletas en el futuro. Por lo tanto, para las aplicaciones que ya están en producción , le recomendamos que utilice únicamente los detectores primarios mencionados en la tabla anterior.
La documentación detallada de las API para todos los tipos de entidades está disponible aquí. La estructura API actual está diseñada para facilitar el acceso desde aplicaciones de IA conversacionales. Sin embargo, también se puede utilizar para otras aplicaciones.
En cualquier aplicación de IA conversacional, hay varias entidades que deben identificarse y la lógica para la detección de una entidad puede ser diferente de la otra. Hemos organizado este repositorio como se muestra a continuación.
Hemos clasificado las entidades en cuatro tipos principales: numéricas , de patrón , temporales y textuales .
numeral: Este tipo contendrá todas las entidades que tratan con el numeral o números. Por ejemplo, detección de números, detección de presupuesto, detección de tamaño, etc.
patrón: Contendrá todas las lógicas de detección donde la identificación se puede realizar mediante patrones o expresiones regulares. Por ejemplo, correo electrónico, número de teléfono, pnr, etc.
temporal: Contendrá lógicas de detección para detectar hora y fecha.
textual: Identifica entidades consultando el diccionario. Esta detección contiene principalmente detección de texto (como cocina, plato, restaurantes, etc.), el nombre de las ciudades, la ubicación de un usuario, etc.
Los números, el tiempo y el patrón se han movido a ner_v2 para la portabilidad del lenguaje con una lógica de detección más flexible. En ner_v1, actualmente solo la entidad de texto tiene soporte de idioma. Lo trasladaremos a ner_v2 sin ningún cambio importante en la API.
Actualmente, puedes contribuir a ner_v2 en Chatbot NER agregando datos de entrenamiento o contribuyendo con patrones de detección en forma de expresiones regulares. Trabajaremos para eliminar algunas limitaciones arquitectónicas que facilitarán el proceso de agregar modelos de ML y nuevas entidades en el futuro.
Consulte los pasos generales de contribución, aprobación y pautas de codificación que se mencionan aquí.