Chatbot NER é uma estrutura de código aberto personalizada desenvolvida para oferecer suporte ao reconhecimento de entidades em mensagens de texto. Depois de fazer uma pesquisa completa sobre os sistemas NER existentes, a equipe da Haptik sentiu a forte necessidade de construir uma estrutura que fosse adaptada para IA de conversação e também suportasse idiomas indianos. Atualmente o Chatbot-ner oferece suporte a inglês, hindi, guzerate, marata, bengali e tâmil e sua forma mista de código. Atualmente esta estrutura usa padrões comuns juntamente com poucas técnicas de PNL para extrair entidades necessárias de linguagens com dados esparsos. A estrutura da API do Chatbot ner foi projetada tendo em mente a usabilidade para aplicativos de IA conversacional. A equipe da Haptik está trabalhando continuamente para portar esta estrutura para todas as línguas indianas e seus respectivos dialetos locais .
Documentação detalhada sobre como configurar o Chatbot NER em seu sistema usando docker está disponível aqui.
Tipo de entidade | Referência de código | Descrição | exemplo | Idiomas suportados - código ISO 639-1 |
---|---|---|---|---|
Tempo | Detector de tempo | Detecte a hora de um determinado texto. | amanhã de manhã às 5, कल सुबह ५ बजे, kal subah 5 baje | 'en', 'oi', 'gu', 'bn', 'sr', 'ta' |
Data | DataAdvancedDetector | Detectar data de determinado texto | próxima segunda-feira, agle somvar, अगले सोमवार | 'en', 'oi', 'gu', 'bn', 'sr', 'ta' |
Número | Detector de números | Detectar número e respectivas unidades em determinado texto | 50 rs por pessoa. | 'en', 'oi', 'gu', 'bn', 'sr', 'ta' |
Número de telefone | Detector de telefone | Detectar número de telefone em determinado texto | 9833530536, +91 9833530536, ९८३३४३०५३५ | 'en', 'oi', 'gu', 'bn', 'sr', 'ta' |
Detector de e-mail | Detectar e-mail em texto | olá@haptik.co | 'pt' | |
Texto | Detector de texto | Detecte entidades personalizadas em strings de texto usando a pesquisa de texto completo no Datastore ou com base no modelo contextual | Peça uma pizza para mim , मुंबई में मौसम कैसा है | Pesquisa suportada por 'en', 'hi', 'gu', 'bn', 'mr', 'ta', Modelo contextual suportado apenas por 'en' |
PNR | Detector PNR | Detecte códigos PNR (serial) em determinado texto. | O PNR do meu voo é 4SGX3E | 'pt' |
expressão regular | Detector Regex | Detectar entidades usando padrões regex personalizados | O PNR do meu voo é 4SGX3E | N / D |
Existem outros detectores personalizados, como cidade, tamanho de compras econômicas, que são derivados dos detectores primários mencionados acima, mas atualmente são suportados apenas em inglês e limitados apenas a usuários indianos. Atualmente, estamos em processo de reestruturação para escalá-los entre idiomas e regiões geográficas e suas versões atuais poderão ser descontinuadas no futuro. Portanto , para aplicações já em produção , recomendamos usar apenas os detectores primários mencionados na tabela acima.
A documentação detalhada de APIs para todos os tipos de entidade está disponível aqui. A estrutura atual da API foi construída para facilitar o acesso a partir de aplicativos de IA conversacionais. No entanto, também pode ser usado para outras aplicações.
Em qualquer aplicação de IA conversacional, há diversas entidades a serem identificadas e a lógica de detecção em uma entidade pode ser diferente de outra. Organizamos este repositório conforme mostrado abaixo
Classificamos as entidades em quatro tipos principais, ou seja, numeral , padrão , temporal e textual .
numeral: Este tipo conterá todas as entidades que lidam com numerais ou números. Por exemplo, detecção de número, detecção de orçamento, detecção de tamanho, etc.
padrão: conterá todas as lógicas de detecção onde a identificação pode ser feita usando padrões ou expressões regulares. Por exemplo, e-mail, número_telefone, pnr, etc.
temporal: conterá lógicas de detecção para detectar hora e data.
textual: identifica entidades consultando o dicionário. Esta detecção contém principalmente a detecção de texto (como culinária, prato, restaurantes, etc.), o nome das cidades, a localização de um usuário, etc.
Numeral, temporal e padrão foram movidos para ner_v2 para portabilidade de linguagem com lógica de detecção mais flexível. No ner_v1, atualmente apenas a entidade de texto tem suporte a idiomas. Iremos movê-lo para ner_v2 sem grandes alterações na API.
Atualmente, você pode contribuir com ner_v2 no Chatbot NER adicionando dados de treinamento ou contribuindo com padrões de detecção na forma de regex. Trabalharemos na remoção de algumas limitações arquitetônicas que facilitarão o processo de adição de modelos de ML e novas entidades no futuro.
Consulte as etapas gerais de contribuição, aprovação e diretrizes de codificação mencionadas aqui.