Partilhar via


Como preparar dados e definir um esquema para o NER personalizado

Para criar um modelo NER personalizado, você precisará de dados de qualidade para treiná-lo. Este artigo aborda como você deve selecionar e preparar seus dados, juntamente com a definição de um esquema. Definir o esquema é a primeira etapa no ciclo de vida de desenvolvimento do projeto e define os tipos/categorias de entidade que você precisa que seu modelo extraia do texto em tempo de execução.

Design de esquema

O esquema define os tipos/categorias de entidade que você precisa que seu modelo extraia do texto em tempo de execução.

  • Revise os documentos em seu conjunto de dados para estar familiarizado com seu formato e estrutura.

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

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

  • Evite a ambiguidade dos tipos de entidades.

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

    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, já que os nomes de ambas as partes são semelhantes. Evite a ambiguidade, pois economiza tempo, esforço e produz melhores resultados.

  • Evite entidades complexas. Entidades complexas podem ser difíceis de escolher com precisão do texto, considere dividi-lo em várias entidades.

    Por exemplo, extrair "Endereço" seria um desafio se não fosse dividido em entidades menores. Há tantas variações de como os endereços aparecem, que seria necessário um grande número de entidades rotuladas para ensinar o modelo a extrair um endereço, como um todo, sem quebrá-lo. No entanto, se você substituir "Endereço" por "Nome da rua", "Caixa postal", "Cidade", "Estado" e "Zip", o modelo exigirá menos etiquetas 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 problemas do seu domínio para treinar seu modelo de forma eficaz. Você pode usar dados sintéticos para acelerar o processo de treinamento inicial do modelo, mas eles provavelmente serão diferentes dos dados da vida real e tornarão seu modelo menos eficaz quando usado.

  • Equilibre sua distribuição de dados tanto quanto possível sem se desviar muito da distribuição na vida real. Por exemplo, se você está treinando seu modelo para extrair entidades de documentos legais que podem vir em muitos formatos e idiomas diferentes, você deve fornecer exemplos que exemplifiquem a diversidade como você esperaria ver na vida real.

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

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

  • Considere a origem dos seus dados. Se você estiver coletando dados de uma pessoa, departamento ou parte do seu cenário, provavelmente está perdendo diversidade que pode ser importante para seu modelo aprender.

Nota

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

Preparação de dados

Como pré-requisito para criar um projeto, seus dados de treinamento precisam ser carregados para um contêiner de blob em sua conta de armazenamento. Você pode 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 que você carregue mais dados rapidamente.

Só pode utilizar .txt documentos. Se os dados estiverem em outro formato, você poderá usar o comando CLUtils parse para alterar o formato do documento.

Você pode carregar um conjunto de dados anotado ou pode carregar um conjunto de dados não anotado 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, certifique-se de que o conjunto de testes inclua documentos que representem todas as entidades usadas em seu projeto.

Próximos passos

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