Compartilhar via


Como preparar dados e definir um esquema para o NER personalizado

Ao criar um modelo de NER personalizado, você precisará de dados de qualidade para treiná-lo. Este artigo aborda como selecionar e preparar seus dados, além de definir um esquema. Definir o esquema é a primeira etapa no ciclo de vida de desenvolvimento do projeto e define as categorias/tipos de entidade em que você precisa do modelo extraia do texto em runtime.

Design de esquema

O esquema define os tipos/categorias de entidade que o modelo precisa extrair do texto durante o tempo de execução.

  • Examine os documentos no conjunto de dados para familiarizar-se com o formato e a estrutura deles.

  • Identifique as entidades que você deseja extrair dos dados.

    Por exemplo, se você estiver extraindo entidades de emails de suporte, talvez seja necessário extrair "Nome do cliente", "Nome do produto", "Data da solicitação" e "Informações de contato".

  • Evite ambiguidade de tipos de entidade.

    A ambiguidade acontece quando os tipos de entidade selecionados são semelhantes entre si. Quanto mais ambíguo for o esquema, mais dados rotulados poderão ser necessários para diferenciar entre tipos de entidade diferentes.

    Por exemplo, se você estiver extraindo dados de um contrato legal, para extrair "Nome da primeira parte" e "Nome da segunda parte", você precisará adicionar mais exemplos para superar a ambiguidade, pois os nomes das partes são semelhantes. Ao evitar a ambiguidade, você economiza tempo, esforço e obtém resultados melhores.

  • Evite entidades complexas. As entidades complexas podem ser difíceis de apontar com precisão no texto. Considere desmembrá-las em várias entidades.

    Por exemplo, extrair "Endereço" seria desafiador se não fosse dividido em entidades menores. Há tantas variações de como os endereços são exibidos, que seria preciso um grande número de entidades rotuladas para ensinar o modelo a extrair um endereço como um todo, sem desmembrá-lo. No entanto, se você substituir "Endereço" por "Nome da rua", "Caixa postal", "Cidade", "Estado" e "CEP", o modelo exigirá menos rótulos por entidade.

Seleção de dados

A qualidade dos dados com os quais você treina seu modelo afeta muito o desempenho do modelo.

  • Use dados da vida real que reflitam o espaço de problema do seu domínio para treinar efetivamente seu modelo. É possível usar dados sintéticos para acelerar o processo inicial de treinamento do modelo, mas eles provavelmente serão diferentes dos dados da vida real e tornarão seu modelo menos eficaz quando usado.

  • Equilibre a distribuição de dados o máximo possível sem se desviar da distribuição na vida real. Por exemplo, se você estiver treinando o modelo para extrair entidades de documentos legais que podem vir em vários formatos e idiomas diferentes, forneça exemplos que exemplifiquem a diversidade como seria na vida real.

  • Use dados diversos sempre que possível para evitar sobreajuste do modelo. Menos diversidade nos dados de treinamento pode levar ao aprendizado de modelo de correlações espúrias que podem não existir nos dados da vida real.

  • Evite documentos duplicados em seus dados. Os dados duplicados têm um efeito negativo no processo de treinamento, nas métricas do modelo e no desempenho do modelo.

  • Considere de onde vêm seus dados. Caso se estiver coletando dados de uma pessoa, departamento ou parte de seu cenário, provavelmente não há diversidade que possa ser importante para seu modelo saber mais.

Observação

Se os documentos estiverem em vários idiomas, selecione a opção habilitar vários idiomas durante a criação do projeto e defina a opção de idioma como o idioma da maioria dos seus documentos.

Preparação de dados

Como pré-requisito para a criação de um projeto, os dados de treinamento precisam ser carregados em um contêiner de blob em sua conta de armazenamento. É possível criar e carregar documentos de treinamento do Azure diretamente ou usando a ferramenta Gerenciador de Armazenamento do Azure. Usar a ferramenta Gerenciador de Armazenamento do Azure permite carregar mais dados rapidamente.

Você pode usar somente os documentos .txt. Se os dados estão em outro formato, você pode usar o comando de análise CLUtils para alterar o formato do documento.

É possível carregar um conjuntos de dados com anotações ou sem anotações e rotular seus dados no Language Studio.

Conjunto de testes

Ao definir o conjunto de testes, certifique-se de incluir documentos de exemplo que não estão presentes no conjunto de treinamento. Definir o conjunto de testes é uma etapa importante para calcular o desempenho do modelo. Além disso, verifique se o conjunto de testes inclui documentos que representam todas as entidades usadas em seu projeto.

Próximas etapas

Se você ainda não fez isso, crie um projeto de NER personalizado. Se esta é a primeira vez que você usa o NER personalizado, considere seguir o guia de início rápido para criar um projeto de exemplo. Veja também o artigo de instruções para obter mais detalhes sobre o que você precisa para criar um projeto.