Chatbot NER est un framework open source conçu sur mesure pour prendre en charge la reconnaissance d'entités dans les messages texte. Après avoir effectué des recherches approfondies sur les systèmes NER existants, l'équipe de Haptik a ressenti le besoin pressant de créer un cadre adapté à l'IA conversationnelle et prenant également en charge les langues indiennes. Actuellement, Chatbot-ner prend en charge l'anglais, l'hindi, le gujarati, le marathi, le bengali et le tamoul ainsi que leur forme mixte de code. Actuellement, ce cadre utilise des modèles communs ainsi que quelques techniques NLP pour extraire les entités nécessaires à partir de langages contenant des données clairsemées. La structure de l'API de Chatbot ner est conçue en gardant à l'esprit la facilité d'utilisation des applications d'IA conversationnelle. L'équipe de Haptik travaille continuellement à la portabilité de ce cadre pour toutes les langues indiennes et leurs dialectes locaux respectifs .
Une documentation détaillée sur la façon de configurer Chatbot NER sur votre système à l'aide de Docker est disponible ici.
Type d'entité | Référence du code | Description | exemple | Langues prises en charge - Code ISO 639-1 |
---|---|---|---|---|
Temps | Détecteur de temps | Détecter l'heure à partir d'un texte donné. | demain matin à 5 heures, कल सुबह ५ बजे, kal subah 5 baje | 'fr', 'salut', 'gu', 'bn', 'mr', 'ta' |
Date | DateAdvancedDetector | Détecter la date à partir d'un texte donné | lundi prochain, agle somvar, अगले सोमवार | 'fr', 'salut', 'gu', 'bn', 'mr', 'ta' |
Nombre | NuméroDétecteur | Détecter le nombre et les unités respectives dans le texte donné | 50 rs par personne, किलो चावल, मुझे एक लीटर ऑइल चाहिए | 'fr', 'salut', 'gu', 'bn', 'mr', 'ta' |
Numéro de téléphone | Détecteur de téléphone | Détecter le numéro de téléphone dans le texte donné | 9833530536, +91 9833530536, ९८३३४३०५३५ | 'fr', 'salut', 'gu', 'bn', 'mr', 'ta' |
Détecteur d'e-mails | Détecter l'e-mail dans le texte | [email protected] | 'fr' | |
Texte | Détecteur de texte | Détecter les entités personnalisées dans une chaîne de texte à l'aide d'une recherche en texte intégral dans Datastore ou en fonction d'un modèle contextuel | Commande-moi une pizza , मुंबई में मौसम कैसा है | Recherche prise en charge pour 'en', 'hi', 'gu', 'bn', 'mr', 'ta', modèle contextuel pris en charge pour 'en' uniquement |
PNR | Détecteur PNR | Détecter les codes PNR (série) dans le texte donné. | Mon PNR de vol est 4SGX3E | 'fr' |
expression régulière | Détecteur d'expressions régulières | Détecter les entités à l'aide de modèles d'expression régulière personnalisés | Mon PNR de vol est 4SGX3E | N / A |
Il existe d'autres détecteurs personnalisés tels que la ville, la taille des achats à petit budget, qui sont dérivés des détecteurs primaires mentionnés ci-dessus, mais ils sont actuellement pris en charge uniquement en anglais et limités aux utilisateurs indiens uniquement. Nous sommes actuellement en train de les restructurer pour les adapter à plusieurs langues et zones géographiques et leurs versions actuelles pourraient être obsolètes à l'avenir. Ainsi, pour les applications déjà en production , nous vous recommandons d' utiliser uniquement les détecteurs primaires mentionnés dans le tableau ci-dessus.
Une documentation détaillée des API pour tous les types d'entités est disponible ici. La structure actuelle de l'API est conçue pour faciliter l'accès à partir d'applications d'IA conversationnelles. Cependant, il peut également être utilisé pour d’autres applications.
Dans toute application d’IA conversationnelle, plusieurs entités doivent être identifiées et la logique de détection sur une entité peut être différente des autres. Nous avons organisé ce référentiel comme indiqué ci-dessous
Nous avons classé les entités en quatre types principaux : numériques , modèles , temporels et textuels .
chiffre : ce type contiendra toutes les entités qui traitent du ou des chiffres. Par exemple, détection de nombre, détection de budget, détection de taille, etc.
pattern : Celui-ci contiendra toutes les logiques de détection où l'identification peut être effectuée à l'aide de modèles ou d'expressions régulières. Par exemple, e-mail, numéro de téléphone, pnr, etc.
temporel : il contiendra des logiques de détection pour détecter l’heure et la date.
textuel : il identifie les entités en consultant le dictionnaire. Cette détection contient principalement la détection de texte (comme la cuisine, le plat, les restaurants, etc.), le nom des villes, la localisation d'un utilisateur, etc.
Les chiffres, les temps et les modèles ont été déplacés vers ner_v2 pour la portabilité du langage avec une logique de détection plus flexible. Dans ner_v1, actuellement seule l'entité de texte prend en charge la langue. Nous le déplacerons vers ner_v2 sans aucune modification majeure de l'API.
Actuellement, vous pouvez contribuer à ner_v2 dans Chatbot NER soit en ajoutant des données de formation , soit en contribuant à des modèles de détection sous forme d'expression régulière. Nous travaillerons à la suppression de quelques limitations architecturales, ce qui facilitera le processus d'ajout de modèles ML et de nouvelles entités à l'avenir.
Veuillez vous référer aux étapes générales de contribution, d'approbation et aux directives de codage mentionnées ici.