Guia de início rápido: reconhecimento personalizado de entidade nomeada
Use este artigo para começar a criar um projeto NER personalizado onde você pode treinar modelos personalizados para reconhecimento de entidade personalizada. Um modelo é um software de inteligência artificial que é treinado para fazer uma determinada tarefa. Para este sistema, os modelos extraem entidades nomeadas e são treinados aprendendo com dados marcados.
Neste artigo, usamos o Language Studio para demonstrar conceitos-chave de Reconhecimento de Entidade Nomeada (NER) personalizado. Como exemplo, construiremos um modelo NER personalizado para extrair entidades relevantes de contratos de empréstimo, tais como:
- Data do acordo
- Nome, morada, cidade e estado do mutuário
- Nome, morada, cidade e estado do credor
- Montantes de empréstimos e juros
Pré-requisitos
- Subscrição do Azure - Criar uma gratuitamente
Criar um novo recurso de linguagem de IA do Azure e uma conta de armazenamento do Azure
Antes de poder usar o NER personalizado, você precisará criar um recurso de linguagem de IA do Azure, que lhe dará as credenciais necessárias para criar um projeto e começar a treinar um modelo. Você também precisará de uma conta de armazenamento do Azure, onde poderá carregar seu conjunto de dados que será usado para criar seu modelo.
Importante
Para começar rapidamente, recomendamos a criação de um novo recurso de linguagem de IA do Azure usando as etapas fornecidas neste artigo. Usar as etapas neste artigo permitirá que você crie o recurso de idioma e a conta de armazenamento ao mesmo tempo, o que é mais fácil do que fazê-lo mais tarde.
Se você tiver um recurso pré-existente que gostaria de usar, precisará conectá-lo à conta de armazenamento. Consulte as orientações para usar um recurso pré-existente para obter informações.
Criar um novo recurso a partir do portal do Azure
Entre no portal do Azure para criar um novo recurso de linguagem de IA do Azure.
Na janela exibida, selecione Classificação de texto personalizada & reconhecimento de entidade nomeada personalizada nos recursos personalizados. Selecione Continuar para criar seu recurso na parte inferior da tela.
Crie um recurso de idioma com os seguintes detalhes.
Nome Descrição Subscrição A sua subscrição do Azure. Grupo de recursos Um grupo de recursos que conterá seu recurso. Você pode usar um existente ou criar um novo. País/Região A região do seu recurso Idioma. Por exemplo, "West US 2". Nome Um nome para o seu recurso. Escalão de preço A camada de preço para seu recurso de idioma. Você pode usar a camada Gratuito (F0) para experimentar o serviço. Nota
Se você receber uma mensagem dizendo "sua conta de login não é proprietária do grupo de recursos da conta de armazenamento selecionada", sua conta precisará ter uma função de proprietário atribuída no grupo de recursos antes de poder criar um recurso de idioma. Entre em contato com o proprietário da assinatura do Azure para obter assistência.
Na seção Classificação de texto personalizada & reconhecimento de entidade nomeada personalizada, selecione uma conta de armazenamento existente ou selecione Nova conta de armazenamento. Esses valores são para ajudá-lo a começar, e não necessariamente os valores da conta de armazenamento que você desejará usar em ambientes de produção. Para evitar latência durante a criação do projeto, conecte-se a contas de armazenamento na mesma região do recurso Idioma.
Valor da conta de armazenamento Valor recomendado Nome da conta de armazenamento Qualquer nome Storage account type LRS padrão Certifique-se de que o Aviso de IA Responsável está verificado. Selecione Rever + criar na parte inferior da página e, em seguida, selecione Criar.
Carregar dados de amostra para o contêiner de blob
Depois de criar uma conta de armazenamento do Azure e conectá-la ao seu recurso de idioma, você precisará carregar os documentos do conjunto de dados de exemplo para o diretório raiz do contêiner. Estes documentos serão posteriormente utilizados para treinar o seu modelo.
Baixe o conjunto de dados de exemplo do GitHub.
Abra o arquivo .zip e extraia a pasta que contém os documentos.
No portal do Azure, navegue até a conta de armazenamento que você criou e selecione-a.
Na sua conta de armazenamento, selecione Contêineres no menu à esquerda, localizado abaixo de Armazenamento de dados. Na tela exibida, selecione + Contêiner. Dê ao contêiner o nome example-data e deixe o nível de acesso público padrão.
Depois que o contêiner for criado, selecione-o. Em seguida, selecione o botão Carregar para selecionar os
.txt
arquivos que.json
você baixou anteriormente.
O conjunto de dados de amostra fornecido contém 20 contratos de empréstimo. Cada acordo inclui duas partes: um mutuante e um mutuário. Você pode usar o arquivo de exemplo fornecido para extrair informações relevantes para: ambas as partes, uma data de contrato, um valor de empréstimo e uma taxa de juros.
Criar um projeto personalizado de reconhecimento de entidade nomeada
Depois que sua conta de recursos e armazenamento estiver configurada, crie um novo projeto NER personalizado. Um projeto é uma área de trabalho para criar seus modelos de ML personalizados com base em seus dados. O seu projeto só pode ser acedido por si e por outras pessoas que tenham acesso ao recurso linguístico que está a ser utilizado.
Entre no Language Studio. Será exibida uma janela para permitir que você selecione sua assinatura e recurso de idioma. Selecione o recurso de idioma que você criou na etapa acima.
Na seção Extrair informações do Language Studio, selecione Reconhecimento personalizado de entidade nomeada.
Selecione Criar novo projeto no menu superior da página de projetos. Criar um projeto permitirá que você marque dados, treine, avalie, melhore e implante seus modelos.
Depois de clicar em Criar novo projeto, aparecerá uma janela para permitir que você conecte sua conta de armazenamento. Se você já tiver conectado uma conta de armazenamento, verá o armazenamento contabilizado conectado. Caso contrário, escolha sua conta de armazenamento na lista suspensa exibida e selecione Conectar conta de armazenamento, isso definirá as funções necessárias para sua conta de armazenamento. Esta etapa possivelmente retornará um erro se você não estiver atribuído como proprietário na conta de armazenamento.
Nota
- Você só precisa fazer essa etapa uma vez para cada novo recurso usado.
- Esse processo é irreversível, se você conectar uma conta de armazenamento ao seu recurso de idioma, não poderá desconectá-la mais tarde.
- Você só pode conectar seu recurso de idioma a uma conta de armazenamento.
Insira as informações do projeto, incluindo um nome, uma descrição e o idioma dos arquivos em seu projeto. Se você estiver usando o conjunto de dados de exemplo, selecione Inglês. Você não poderá alterar o nome do seu projeto mais tarde. Selecione Seguinte
Gorjeta
Seu conjunto de dados não precisa estar totalmente no mesmo idioma. Você pode ter vários documentos, cada um com diferentes idiomas suportados. Se o conjunto de dados contiver documentos de idiomas diferentes ou se você esperar texto de idiomas diferentes durante o tempo de execução, selecione a opção habilitar conjunto de dados multilíngue ao inserir as informações básicas para seu projeto. Esta opção pode ser ativada posteriormente na página Configurações do projeto.
Selecione o contêiner onde você carregou seu conjunto de dados. Se você já tiver rotulado dados, certifique-se de que eles seguem o formato suportado e selecione Sim, meus arquivos já estão rotulados e eu formatei o arquivo de rótulos JSON e selecione o arquivo de rótulos no menu suspenso. Selecione Seguinte.
Revise os dados inseridos e selecione Criar projeto.
Preparar o modelo
Normalmente, depois de criar um projeto, você vai em frente e começa a marcar os documentos que você tem no contêiner conectado ao seu projeto. Para este início rápido, você importou um conjunto de dados marcado de exemplo e inicializou seu projeto com o arquivo de tags JSON de exemplo.
Para começar a treinar o seu modelo a partir do Language Studio:
Selecione Trabalhos de treinamento no menu do lado esquerdo.
Selecione Iniciar um trabalho de treinamento no menu superior.
Selecione Treinar um novo modelo e digite o nome do modelo na caixa de texto. Você também pode substituir um modelo existente selecionando essa opção e escolhendo o modelo que deseja substituir no menu suspenso. A substituição de um modelo treinado é irreversível, mas não afetará os modelos implantados até que você implante o novo modelo.
Selecione o método de divisão de dados. Você pode escolher Dividir automaticamente o conjunto de testes dos dados de treinamento, onde o sistema dividirá seus dados rotulados entre os conjuntos de treinamento e teste, de acordo com as porcentagens especificadas. Ou você pode usar uma divisão manual de dados de treinamento e teste, essa opção só é habilitada se você tiver adicionado documentos ao seu conjunto de testes durante a rotulagem de dados. Consulte Como treinar um modelo para obter informações sobre a divisão de dados.
Selecione o botão Trem .
Se você selecionar o ID do Trabalho de Treinamento na lista, um painel lateral aparecerá onde você poderá verificar o progresso do Treinamento, o status do Trabalho e outros detalhes para este trabalho.
Nota
- Apenas trabalhos de formação concluídos com sucesso gerarão modelos.
- O treinamento pode levar algum tempo entre alguns minutos e várias horas com base no tamanho dos dados rotulados.
- Só pode ter um trabalho de preparação em execução de cada vez. Não pode iniciar outro trabalho de preparação no mesmo projeto sem que o trabalho em execução esteja concluído.
Implementar o modelo
Geralmente, depois de treinar um modelo, você revisaria seus detalhes de avaliação e faria melhorias , se necessário. Neste início rápido, você apenas implantará seu modelo e o disponibilizará para experimentar no Language studio, ou poderá chamar a API de previsão.
Para implantar seu modelo a partir do Language Studio:
Selecione Implantando um modelo no menu do lado esquerdo.
Selecione Adicionar implantação para iniciar um novo trabalho de implantação.
Selecione Criar nova implantação para criar uma nova implantação e atribuir um modelo treinado na lista suspensa abaixo. Você também pode substituir uma implantação existente selecionando essa opção e selecionando o modelo treinado que deseja atribuir a ela na lista suspensa abaixo.
Nota
A substituição de uma implantação existente não requer alterações na chamada da API de previsão, mas os resultados obtidos serão baseados no modelo recém-atribuído.
Selecione Implantar para iniciar o trabalho de implantação.
Depois que a implantação for bem-sucedida, uma data de expiração aparecerá ao lado dela. A expiração da implantação é quando o modelo implantado não estará disponível para ser usado para previsão, o que normalmente acontece doze meses após a expiração de uma configuração de treinamento.
Testar o seu modelo
Depois que o modelo for implantado, você poderá começar a usá-lo para extrair entidades do texto por meio da API de previsão. Para este início rápido, você usará o Language Studio para enviar a tarefa de reconhecimento de entidade personalizada e visualizar os resultados. No conjunto de dados de exemplo que você baixou anteriormente, você pode encontrar alguns documentos de teste que você pode usar nesta etapa.
Para testar seus modelos implantados de dentro do Language Studio:
Selecione Testando implantações no menu do lado esquerdo.
Selecione a implantação que você deseja testar. Você só pode testar modelos atribuídos a implantações.
Para projetos multilingues, na lista pendente de línguas, selecione a língua do texto que está a testar.
Selecione a implantação que você deseja consultar/testar na lista suspensa.
Pode introduzir o texto que pretende submeter ao pedido ou carregar um
.txt
ficheiro para utilizar.Selecione Executar o teste no menu superior.
Na guia Resultado, você pode ver as entidades extraídas do seu texto e seus tipos. Você também pode exibir a resposta JSON na guia JSON .
Clean up resources (Limpar recursos)
Quando você não precisar mais do seu projeto, poderá excluí-lo usando o Language Studio. Selecione Reconhecimento personalizado de entidade nomeada (NER) na parte superior, selecione o projeto que deseja excluir e selecione Excluir no menu superior.
Pré-requisitos
- Subscrição do Azure - Criar uma gratuitamente
Criar um novo recurso de linguagem de IA do Azure e uma conta de armazenamento do Azure
Antes de poder usar o NER personalizado, você precisará criar um recurso de linguagem de IA do Azure, que lhe dará as credenciais necessárias para criar um projeto e começar a treinar um modelo. Você também precisará de uma conta de armazenamento do Azure, onde poderá carregar seu conjunto de dados que será usado na criação de seu modelo.
Importante
Para começar rapidamente, recomendamos criar um novo recurso de Linguagem de IA do Azure usando as etapas fornecidas neste artigo, que permitirão criar o recurso de Idioma e criar e/ou conectar uma conta de armazenamento ao mesmo tempo, o que é mais fácil do que fazê-lo mais tarde.
Se você tiver um recurso pré-existente que gostaria de usar, precisará conectá-lo à conta de armazenamento. Consulte criar projeto para obter informações.
Criar um novo recurso a partir do portal do Azure
Entre no portal do Azure para criar um novo recurso de linguagem de IA do Azure.
Na janela exibida, selecione Classificação de texto personalizada & reconhecimento de entidade nomeada personalizada nos recursos personalizados. Selecione Continuar para criar seu recurso na parte inferior da tela.
Crie um recurso de idioma com os seguintes detalhes.
Nome Descrição Subscrição A sua subscrição do Azure. Grupo de recursos Um grupo de recursos que conterá seu recurso. Você pode usar um existente ou criar um novo. País/Região A região do seu recurso Idioma. Por exemplo, "West US 2". Nome Um nome para o seu recurso. Escalão de preço A camada de preço para seu recurso de idioma. Você pode usar a camada Gratuito (F0) para experimentar o serviço. Nota
Se você receber uma mensagem dizendo "sua conta de login não é proprietária do grupo de recursos da conta de armazenamento selecionada", sua conta precisará ter uma função de proprietário atribuída no grupo de recursos antes de poder criar um recurso de idioma. Entre em contato com o proprietário da assinatura do Azure para obter assistência.
Na seção Classificação de texto personalizada & reconhecimento de entidade nomeada personalizada, selecione uma conta de armazenamento existente ou selecione Nova conta de armazenamento. Esses valores são para ajudá-lo a começar, e não necessariamente os valores da conta de armazenamento que você desejará usar em ambientes de produção. Para evitar latência durante a criação do projeto, conecte-se a contas de armazenamento na mesma região do recurso Idioma.
Valor da conta de armazenamento Valor recomendado Nome da conta de armazenamento Qualquer nome Storage account type LRS padrão Certifique-se de que o Aviso de IA Responsável está verificado. Selecione Rever + criar na parte inferior da página e, em seguida, selecione Criar.
Carregar dados de amostra para o contêiner de blob
Depois de criar uma conta de armazenamento do Azure e conectá-la ao seu recurso de idioma, você precisará carregar os documentos do conjunto de dados de exemplo para o diretório raiz do contêiner. Estes documentos serão posteriormente utilizados para treinar o seu modelo.
Baixe o conjunto de dados de exemplo do GitHub.
Abra o arquivo .zip e extraia a pasta que contém os documentos.
No portal do Azure, navegue até a conta de armazenamento que você criou e selecione-a.
Na sua conta de armazenamento, selecione Contêineres no menu à esquerda, localizado abaixo de Armazenamento de dados. Na tela exibida, selecione + Contêiner. Dê ao contêiner o nome example-data e deixe o nível de acesso público padrão.
Depois que o contêiner for criado, selecione-o. Em seguida, selecione o botão Carregar para selecionar os
.txt
arquivos que.json
você baixou anteriormente.
O conjunto de dados de amostra fornecido contém 20 contratos de empréstimo. Cada acordo inclui duas partes: um mutuante e um mutuário. Você pode usar o arquivo de exemplo fornecido para extrair informações relevantes para: ambas as partes, uma data de contrato, um valor de empréstimo e uma taxa de juros.
Obtenha suas chaves de recursos e ponto de extremidade
Vá para a página de visão geral dos recursos no portal do Azure
No menu do lado esquerdo, selecione Teclas e Ponto de extremidade. Você usará o ponto de extremidade e a chave para as solicitações de API
Criar um projeto NER personalizado
Depois que sua conta de recursos e armazenamento estiver configurada, crie um novo projeto NER personalizado. Um projeto é uma área de trabalho para criar seus modelos de ML personalizados com base em seus dados. O seu projeto só pode ser acedido por si e por outras pessoas que tenham acesso ao recurso linguístico que está a ser utilizado.
Use o arquivo de tags que você baixou dos dados de exemplo na etapa anterior e adicione-o ao corpo da solicitação a seguir.
Acionar trabalho de projeto de importação
Envie uma solicitação POST usando a seguinte URL, cabeçalhos e corpo JSON para importar seu arquivo de etiquetas. Certifique-se de que o ficheiro de etiquetas segue o formato aceite.
Se já existir um projeto com o mesmo nome, os dados desse projeto serão substituídos.
{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
Marcador de Posição | valor | Exemplo |
---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticar sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
{API-VERSION} |
A versão da API que você está chamando. O valor referenciado aqui é para a última versão lançada. Consulte Ciclo de vida do modelo para saber mais sobre outras versões de API disponíveis. | 2022-05-01 |
Cabeçalhos
Use o cabeçalho a seguir para autenticar sua solicitação.
Key | valor |
---|---|
Ocp-Apim-Subscription-Key |
A chave para o seu recurso. Usado para autenticar suas solicitações de API. |
Corpo
Use o JSON a seguir em sua solicitação. Substitua os valores de espaço reservado abaixo pelos seus próprios valores.
{
"projectFileVersion": "{API-VERSION}",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectName": "{PROJECT-NAME}",
"projectKind": "CustomEntityRecognition",
"description": "Trying out custom NER",
"language": "{LANGUAGE-CODE}",
"multilingual": true,
"storageInputContainerName": "{CONTAINER-NAME}",
"settings": {}
},
"assets": {
"projectKind": "CustomEntityRecognition",
"entities": [
{
"category": "Entity1"
},
{
"category": "Entity2"
}
],
"documents": [
{
"location": "{DOCUMENT-NAME}",
"language": "{LANGUAGE-CODE}",
"dataset": "{DATASET}",
"entities": [
{
"regionOffset": 0,
"regionLength": 500,
"labels": [
{
"category": "Entity1",
"offset": 25,
"length": 10
},
{
"category": "Entity2",
"offset": 120,
"length": 8
}
]
}
]
},
{
"location": "{DOCUMENT-NAME}",
"language": "{LANGUAGE-CODE}",
"dataset": "{DATASET}",
"entities": [
{
"regionOffset": 0,
"regionLength": 100,
"labels": [
{
"category": "Entity2",
"offset": 20,
"length": 5
}
]
}
]
}
]
}
}
Chave | Marcador de Posição | valor | Exemplo |
---|---|---|---|
api-version |
{API-VERSION} |
A versão da API que você está chamando. A versão usada aqui deve ser a mesma versão da API na URL. Saiba mais sobre outras versões de API disponíveis | 2022-03-01-preview |
projectName |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
projectKind |
CustomEntityRecognition |
O seu tipo de projeto. | CustomEntityRecognition |
language |
{LANGUAGE-CODE} |
Uma cadeia de caracteres especificando o código de idioma para os documentos usados em seu projeto. Se o seu projeto for multilingue, escolha o código linguístico da maioria dos documentos. | en-us |
multilingual |
true |
Um valor booleano que permite que você tenha documentos em vários idiomas em seu conjunto de dados e, quando seu modelo é implantado, você pode consultar o modelo em qualquer idioma suportado (não necessariamente incluído em seus documentos de treinamento. Consulte Suporte de idiomas para obter informações sobre suporte multilíngue. | true |
storageInputContainerName |
{NOME DO CONTÊINER} | O nome do contêiner de armazenamento do Azure onde você carregou seus documentos. | myContainer |
entities |
Matriz contendo todos os tipos de entidade que você tem no projeto. Estes são os tipos de entidade que serão extraídos dos seus documentos. | ||
documents |
Matriz contendo todos os documentos em seu projeto e lista das entidades rotuladas dentro de cada documento. | [] | |
location |
{DOCUMENT-NAME} |
A localização dos documentos no recipiente de armazenamento. Como todos os documentos estão na raiz do contêiner, este deve ser o nome do documento. | doc1.txt |
dataset |
{DATASET} |
O conjunto de testes para o qual este arquivo irá quando dividido antes do treinamento. Consulte Como treinar um modelo para obter mais informações sobre como seus dados são divididos. Os valores possíveis para este campo são Train e Test . |
Train |
Depois de enviar sua solicitação de API, você receberá uma 202
resposta indicando que o trabalho foi enviado corretamente. Nos cabeçalhos de resposta, extraia o operation-location
valor. Será formatado da seguinte forma:
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
{JOB-ID}
é utilizado para identificar o seu pedido, uma vez que esta operação é assíncrona. Você usará essa URL para obter o status do trabalho de importação.
Possíveis cenários de erro para esta solicitação:
- O recurso selecionado não tem permissões adequadas para a conta de armazenamento.
- O
storageInputContainerName
especificado não existe. - Código de idioma inválido é usado, ou se o tipo de código de idioma não é string.
multilingual
value é uma cadeia de caracteres e não um booleano.
Obter status de trabalho de importação
Use a seguinte solicitação GET para obter o status da importação do projeto. Substitua os valores de espaço reservado abaixo pelos seus próprios valores.
URL do Pedido
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de Posição | valor | Exemplo |
---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticar sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
{JOB-ID} |
O ID para localizar o status de treinamento do seu modelo. Esse valor está no valor do location cabeçalho que você recebeu na etapa anterior. |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
A versão da API que você está chamando. O valor referenciado aqui é para a última versão lançada. Consulte Ciclo de vida do modelo para saber mais sobre outras versões de API disponíveis. | 2022-05-01 |
Cabeçalhos
Use o cabeçalho a seguir para autenticar sua solicitação.
Key | valor |
---|---|
Ocp-Apim-Subscription-Key |
A chave para o seu recurso. Usado para autenticar suas solicitações de API. |
Preparar o modelo
Normalmente, depois de criar um projeto, você vai em frente e começa a marcar os documentos que você tem no contêiner conectado ao seu projeto. Para este início rápido, você importou um conjunto de dados marcado de exemplo e inicializou seu projeto com o arquivo de tags JSON de exemplo.
Iniciar trabalho de formação
Depois que seu projeto for importado, você poderá começar a treinar seu modelo.
Envie uma solicitação POST usando a seguinte URL, cabeçalhos e corpo JSON para enviar um trabalho de treinamento. Substitua os valores de espaço reservado abaixo pelos seus próprios valores.
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Marcador de Posição | valor | Exemplo |
---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticar sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
{API-VERSION} |
A versão da API que você está chamando. O valor referenciado aqui é para a última versão lançada. Consulte Ciclo de vida do modelo para saber mais sobre outras versões de API disponíveis. | 2022-05-01 |
Cabeçalhos
Use o cabeçalho a seguir para autenticar sua solicitação.
Key | valor |
---|---|
Ocp-Apim-Subscription-Key |
A chave para o seu recurso. Usado para autenticar suas solicitações de API. |
Corpo do pedido
Use o JSON a seguir no corpo da solicitação. O modelo será dado assim que o {MODEL-NAME}
treinamento for concluído. Só empregos de formação bem sucedidos produzirão modelos.
{
"modelLabel": "{MODEL-NAME}",
"trainingConfigVersion": "{CONFIG-VERSION}",
"evaluationOptions": {
"kind": "percentage",
"trainingSplitPercentage": 80,
"testingSplitPercentage": 20
}
}
Chave | Marcador de Posição | valor | Exemplo |
---|---|---|---|
modelLabel | {MODEL-NAME} |
O nome do modelo que será atribuído ao seu modelo depois de treinado com sucesso. | myModel |
trainingConfigVersion | {CONFIG-VERSION} |
Esta é a versão do modelo que será usada para treinar o modelo. | 2022-05-01 |
avaliaçãoOpções | Opção para dividir seus dados entre conjuntos de treinamento e teste. | {} |
|
variante | percentage |
Métodos de divisão. Os valores possíveis são percentage ou manual . Consulte Como treinar um modelo para obter mais informações. |
percentage |
formaçãoSplitPercentage | 80 |
Porcentagem dos dados marcados a serem incluídos no conjunto de treinamento. O valor recomendado é 80 . |
80 |
testingSplitPercentage | 20 |
Porcentagem dos dados marcados a serem incluídos no conjunto de testes. O valor recomendado é 20 . |
20 |
Nota
O trainingSplitPercentage
e testingSplitPercentage
só são necessários se Kind
for definido como percentage
e a soma de ambas as percentagens deve ser igual a 100.
Depois de enviar sua solicitação de API, você receberá uma 202
resposta indicando que o trabalho foi enviado corretamente. Nos cabeçalhos de resposta, extraia o location
valor. Será formatado da seguinte forma:
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
{JOB-ID}
é utilizado para identificar o seu pedido, uma vez que esta operação é assíncrona. Você pode usar essa URL para obter o status de treinamento.
Obter status de trabalho de treinamento
O treinamento pode levar entre 10 e 30 minutos para este conjunto de dados de amostra. Você pode usar a solicitação a seguir para continuar pesquisando o status do trabalho de treinamento até que ele seja concluído com êxito.
Use a seguinte solicitação GET para obter o status do progresso do treinamento do seu modelo. Substitua os valores de espaço reservado abaixo pelos seus próprios valores.
URL do Pedido
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de Posição | valor | Exemplo |
---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticar sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
{JOB-ID} |
O ID para localizar o status de treinamento do seu modelo. Esse valor está no valor do location cabeçalho que você recebeu na etapa anterior. |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
A versão da API que você está chamando. O valor referenciado aqui é para a última versão lançada. Consulte Ciclo de vida do modelo para saber mais sobre outras versões de API disponíveis. | 2022-05-01 |
Cabeçalhos
Use o cabeçalho a seguir para autenticar sua solicitação.
Key | valor |
---|---|
Ocp-Apim-Subscription-Key |
A chave para o seu recurso. Usado para autenticar suas solicitações de API. |
Organismo de resposta
Depois de enviar a solicitação, você receberá a seguinte resposta.
{
"result": {
"modelLabel": "{MODEL-NAME}",
"trainingConfigVersion": "{CONFIG-VERSION}",
"estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
"trainingStatus": {
"percentComplete": 3,
"startDateTime": "2022-04-18T15:45:06.8190649Z",
"status": "running"
},
"evaluationStatus": {
"percentComplete": 0,
"status": "notStarted"
}
},
"jobId": "{JOB-ID}",
"createdDateTime": "2022-04-18T15:44:44Z",
"lastUpdatedDateTime": "2022-04-18T15:45:48Z",
"expirationDateTime": "2022-04-25T15:44:44Z",
"status": "running"
}
Implementar o modelo
Geralmente, depois de treinar um modelo, você revisaria os detalhes da avaliação e faria melhorias, se necessário. Neste início rápido, você apenas implantará seu modelo e o disponibilizará para experimentar no Language Studio, ou poderá chamar a API de previsão.
Iniciar trabalho de implantação
Envie uma solicitação PUT usando a seguinte URL, cabeçalhos e corpo JSON para enviar um trabalho de implantação. Substitua os valores de espaço reservado abaixo pelos seus próprios valores.
{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
Marcador de Posição | valor | Exemplo |
---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticar sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
{DEPLOYMENT-NAME} |
O nome da sua implantação. Esse valor diferencia maiúsculas de minúsculas. | staging |
{API-VERSION} |
A versão da API que você está chamando. O valor referenciado aqui é para a última versão lançada. Consulte Ciclo de vida do modelo para saber mais sobre outras versões de API disponíveis. | 2022-05-01 |
Cabeçalhos
Use o cabeçalho a seguir para autenticar sua solicitação.
Key | valor |
---|---|
Ocp-Apim-Subscription-Key |
A chave para o seu recurso. Usado para autenticar suas solicitações de API. |
Corpo do pedido
Use o JSON a seguir no corpo da sua solicitação. Use o nome do modelo que você atribui à implantação.
{
"trainedModelLabel": "{MODEL-NAME}"
}
Chave | Marcador de Posição | valor | Exemplo |
---|---|---|---|
trainedModelLabel | {MODEL-NAME} |
O nome do modelo que será atribuído à sua implantação. Você só pode atribuir modelos treinados com sucesso. Esse valor diferencia maiúsculas de minúsculas. | myModel |
Depois de enviar sua solicitação de API, você receberá uma 202
resposta indicando que o trabalho foi enviado corretamente. Nos cabeçalhos de resposta, extraia o operation-location
valor. Será formatado da seguinte forma:
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
{JOB-ID}
é utilizado para identificar o seu pedido, uma vez que esta operação é assíncrona. Você pode usar essa URL para obter o status da implantação.
Obter o status do trabalho de implantação
Use a seguinte solicitação GET para consultar o status do trabalho de implantação. Você pode usar a URL recebida da etapa anterior ou substituir os valores de espaço reservado abaixo por seus próprios valores.
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de Posição | valor | Exemplo |
---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticar sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
{DEPLOYMENT-NAME} |
O nome da sua implantação. Esse valor diferencia maiúsculas de minúsculas. | staging |
{JOB-ID} |
O ID para localizar o status de treinamento do seu modelo. Isso está no valor do location cabeçalho que você recebeu na etapa anterior. |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
A versão da API que você está chamando. O valor referenciado aqui é para a última versão lançada. Consulte Ciclo de vida do modelo para saber mais sobre outras versões de API disponíveis. | 2022-05-01 |
Cabeçalhos
Use o cabeçalho a seguir para autenticar sua solicitação.
Key | valor |
---|---|
Ocp-Apim-Subscription-Key |
A chave para o seu recurso. Usado para autenticar suas solicitações de API. |
Organismo de resposta
Depois de enviar o pedido, obterá a seguinte resposta. Continue pesquisando este ponto de extremidade até que o parâmetro de status mude para "bem-sucedido". Você deve obter um 200
código para indicar o sucesso da solicitação.
{
"jobId":"{JOB-ID}",
"createdDateTime":"{CREATED-TIME}",
"lastUpdatedDateTime":"{UPDATED-TIME}",
"expirationDateTime":"{EXPIRATION-TIME}",
"status":"running"
}
Extrair entidades personalizadas
Depois que o modelo for implantado, você poderá começar a usá-lo para extrair entidades do texto usando a API de previsão. No conjunto de dados de exemplo que você baixou anteriormente, você pode encontrar alguns documentos de teste que você pode usar nesta etapa.
Enviar uma tarefa personalizada do NER
Use esta solicitação POST para iniciar uma tarefa de classificação de texto.
{ENDPOINT}/language/analyze-text/jobs?api-version={API-VERSION}
Marcador de Posição | valor | Exemplo |
---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticar sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API-VERSION} |
A versão da API que você está chamando. O valor referenciado aqui é para a última versão lançada. Consulte Ciclo de vida do modelo para saber mais sobre outras versões de API disponíveis. | 2022-05-01 |
Cabeçalhos
Key | valor |
---|---|
Ocp-Apim-Subscription-Key | A sua chave que fornece acesso a esta API. |
Corpo
{
"displayName": "Extracting entities",
"analysisInput": {
"documents": [
{
"id": "1",
"language": "{LANGUAGE-CODE}",
"text": "Text1"
},
{
"id": "2",
"language": "{LANGUAGE-CODE}",
"text": "Text2"
}
]
},
"tasks": [
{
"kind": "CustomEntityRecognition",
"taskName": "Entity Recognition",
"parameters": {
"projectName": "{PROJECT-NAME}",
"deploymentName": "{DEPLOYMENT-NAME}"
}
}
]
}
Chave | Marcador de Posição | valor | Exemplo |
---|---|---|---|
displayName |
{JOB-NAME} |
O nome do seu trabalho. | MyJobName |
documents |
[{},{}] | Lista de documentos para executar tarefas. | [{},{}] |
id |
{DOC-ID} |
Nome ou ID do documento. | doc1 |
language |
{LANGUAGE-CODE} |
Uma cadeia de caracteres especificando o código de idioma para o documento. Se essa chave não for especificada, o serviço assumirá o idioma padrão do projeto que foi selecionado durante a criação do projeto. Consulte Suporte a idiomas para obter uma lista de códigos de idiomas suportados. | en-us |
text |
{DOC-TEXT} |
Documentar a tarefa na qual executar as tarefas. | Lorem ipsum dolor sit amet |
tasks |
Lista de tarefas que queremos realizar. | [] |
|
taskName |
CustomEntityRecognition |
O nome da tarefa | CustomEntityRecognition |
parameters |
Lista de parâmetros a serem passados para a tarefa. | ||
project-name |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
deployment-name |
{DEPLOYMENT-NAME} |
O nome da sua implantação. Esse valor diferencia maiúsculas de minúsculas. | prod |
Response
Você receberá uma resposta 202 indicando que sua tarefa foi enviada com sucesso. Nos cabeçalhos de resposta, extraia operation-location
.
operation-location
está formatado assim:
{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}
Você pode usar essa URL para consultar o status de conclusão da tarefa e obter os resultados quando a tarefa for concluída.
Obter resultados de tarefas
Use a seguinte solicitação GET para consultar o status/resultados da tarefa de reconhecimento de entidade personalizada.
{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de Posição | valor | Exemplo |
---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticar sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API-VERSION} |
A versão da API que você está chamando. O valor referenciado aqui é para a última versão lançada. Consulte Ciclo de vida do modelo para saber mais sobre outras versões de API disponíveis. | 2022-05-01 |
Cabeçalhos
Key | valor |
---|---|
Ocp-Apim-Subscription-Key | A sua chave que fornece acesso a esta API. |
Organismo de resposta
A resposta será um documento JSON com os seguintes parâmetros
{
"createdDateTime": "2021-05-19T14:32:25.578Z",
"displayName": "MyJobName",
"expirationDateTime": "2021-05-19T14:32:25.578Z",
"jobId": "xxxx-xxxx-xxxxx-xxxxx",
"lastUpdateDateTime": "2021-05-19T14:32:25.578Z",
"status": "succeeded",
"tasks": {
"completed": 1,
"failed": 0,
"inProgress": 0,
"total": 1,
"items": [
{
"kind": "EntityRecognitionLROResults",
"taskName": "Recognize Entities",
"lastUpdateDateTime": "2020-10-01T15:01:03Z",
"status": "succeeded",
"results": {
"documents": [
{
"entities": [
{
"category": "Event",
"confidenceScore": 0.61,
"length": 4,
"offset": 18,
"text": "trip"
},
{
"category": "Location",
"confidenceScore": 0.82,
"length": 7,
"offset": 26,
"subcategory": "GPE",
"text": "Seattle"
},
{
"category": "DateTime",
"confidenceScore": 0.8,
"length": 9,
"offset": 34,
"subcategory": "DateRange",
"text": "last week"
}
],
"id": "1",
"warnings": []
}
],
"errors": [],
"modelVersion": "2020-04-01"
}
}
]
}
}
Clean up resources (Limpar recursos)
Quando você não precisar mais do seu projeto, poderá excluí-lo com a seguinte solicitação DELETE . Substitua os valores de espaço reservado por seus próprios valores.
{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
Marcador de Posição | valor | Exemplo |
---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticar sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
{API-VERSION} |
A versão da API que você está chamando. O valor referenciado aqui é para a última versão lançada. Consulte Ciclo de vida do modelo para saber mais sobre outras versões de API disponíveis. | 2022-05-01 |
Cabeçalhos
Use o cabeçalho a seguir para autenticar sua solicitação.
Key | valor |
---|---|
Ocp-Apim-Subscription-Key | A chave para o seu recurso. Usado para autenticar suas solicitações de API. |
Depois de enviar sua solicitação de API, você receberá uma 202
resposta indicando sucesso, o que significa que seu projeto foi excluído. Uma chamada bem-sucedida resulta com um cabeçalho Operation-Location usado para verificar o status do trabalho.
Próximos passos
Depois de criar o modelo de extração de entidade, você pode:
Quando você começar a criar seus próprios projetos NER personalizados, use os artigos de instruções para saber mais sobre marcação, treinamento e consumo de seu modelo com mais detalhes: