Como preparar dados e definir um esquema para o NER personalizado

Para criar um modelo NER personalizado, precisará de dados de qualidade para o preparar. Este artigo aborda como deve selecionar e preparar os seus dados, juntamente com a definição de um esquema. Definir o esquema é o primeiro passo no ciclo de vida de desenvolvimento do projeto e define os tipos/categorias de entidades que precisa que o seu modelo extraia do texto no runtime.

Estrutura do esquema

O esquema define os tipos/categorias de entidades que precisa que o seu modelo extraia do texto no runtime.

  • Reveja os documentos no conjunto de dados para se familiarizar com o respetivo formato e estrutura.

  • Identifique as entidades que pretende extrair dos dados.

    Por exemplo, se estiver a extrair entidades de e-mails de suporte, poderá ter de extrair "Nome do cliente", "Nome do produto", "Data do pedido" e "Informações de contacto".

  • Evite a ambiguidade dos tipos de entidade.

    A ambiguidade ocorre quando os tipos de entidade que seleciona são semelhantes entre si. Quanto mais ambíguo for o seu esquema, mais dados etiquetados terá de diferenciar entre diferentes tipos de entidades.

    Por exemplo, se estiver a extrair dados de um contrato legal, para extrair "Nome da primeira parte" e "Nome de terceiros", terá de adicionar mais exemplos para ultrapassar a ambiguidade, uma vez que os nomes de ambas as partes têm um aspeto semelhante. Evite ambiguidade, uma vez que poupa tempo, esforço e produz melhores resultados.

  • Evite entidades complexas. As entidades complexas podem ser difíceis de escolher com precisão a partir do texto, considere dividi-las em múltiplas entidades.

    Por exemplo, extrair "Endereço" seria um desafio se não estivesse dividido em entidades mais pequenas. Existem tantas variações de como os endereços são apresentados, que seria preciso um grande número de entidades etiquetadas para ensinar o modelo a extrair um endereço, como um todo, sem o dividir. No entanto, se substituir "Address" por "Street Name", "PO Box", "City", "State" e "Zip", o modelo necessitará de menos etiquetas por entidade.

Seleção de dados

A qualidade dos dados que prepara o seu modelo afeta bastante o desempenho do modelo.

  • Utilize dados da vida real que refletem o espaço problemático do seu domínio para preparar eficazmente o seu modelo. Pode utilizar dados sintéticos para acelerar o processo de preparação do modelo inicial, mas provavelmente será diferente dos seus dados da vida real e tornará o seu modelo menos eficaz quando utilizado.

  • Equilibre a distribuição de dados o máximo possível sem se desviar longe da distribuição na vida real. Por exemplo, se estiver a preparar o seu modelo para extrair entidades de documentos legais que podem ter vários formatos e idiomas diferentes, deve fornecer exemplos que exemplifiquem a diversidade como seria de esperar ver na vida real.

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

  • Evite documentos duplicados nos seus dados. Os dados duplicados têm um efeito negativo no processo de preparação, nas métricas dos modelos e no desempenho do modelo.

  • Considere de onde vêm os seus dados. Se estiver a recolher dados de uma pessoa, departamento ou parte do seu cenário, é provável que lhe falte diversidade que possa ser importante para o 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, os dados de preparação têm de ser carregados para um contentor de blobs na sua conta de armazenamento. Pode criar e carregar documentos de preparação a partir do Azure diretamente ou através da ferramenta Explorador de Armazenamento do Azure. A utilização da ferramenta Explorador de Armazenamento do Azure permite-lhe carregar mais dados rapidamente.

Só pode utilizar .txt documentos. Se os seus dados estiverem noutro formato, pode utilizar o comando de análise CLUtils para alterar o formato do documento.

Pode carregar um conjunto de dados anotado ou pode carregar um conjunto de dados não anotado e etiquetar os seus dados no Language Studio.

Conjunto de testes

Ao definir o conjunto de testes, certifique-se de que inclui documentos de exemplo que não estão presentes no conjunto de preparação. Definir o conjunto de testes é um passo importante para calcular o desempenho do modelo. Além disso, certifique-se de que o conjunto de testes inclui documentos que representam todas as entidades utilizadas no seu projeto.

Passos seguintes

Se ainda não o fez, crie um projeto NER personalizado. Se for a primeira vez que utiliza o NER personalizado, considere seguir o início rápido para criar um projeto de exemplo. Também pode ver o artigo de procedimentos para obter mais detalhes sobre o que precisa para criar um projeto.