- Notas de Versão
- Antes de começar
- Introdução
- Instalação do AI Center
- Migração e atualização
- Projetos
- Conjuntos de dados
- Rotulagem de Dados
- Pacotes de ML
- Pacotes para uso imediato
- Pipelines
- Habilidades de ML
- Logs de ML
- Document UnderstandingTM no AI Center
- API do AI Center
- Como fazer
- Licenciamento
- Guia básico de solução de problemas
Reconhecimento da entidade nomeada personalizada
Pacotes prontos para uso > UiPath Language Analysis > CustomNamedEntityRecognition
Esse modelo permite que você traga seu próprio conjunto de dados marcados com as entidades que você deseja extrair. Os conjuntos de dados de treinamento e avaliação precisam estar no formato CoNLL ou JSON. Os dados também podem ser exportados da ferramenta AI Center Data Labeling ou do Label Studio. Esse pacote de ML deve ser retreinado; se for implantado sem treinamento primeiro, a implantação falhará, com um erro informando que o modelo não foi treinado.
Para obter um exemplo sobre como usar esse modelo, veja Extração de produtos químicos do artigo de pesquisa por categoria para um caso de uso.
Quando usar o modelo de Reconhecimento de entidade nomeada personalizada (NER)
Use o modelo NER personalizado para extrair:
-
informações especiais do texto. Essas informações são chamadas de
entity
. -
os nomes de pessoas, lugares, organizações, locais, datas, valores numéricos, etc. As entidades extraídas são mutuamente exclusivas. As entidades estão no nível de uma ou várias palavras, não no nível de subpalavras. Por exemplo, na frase Eu vivo em Nova York , uma entidade pode ser Nova York , mas não na frase Eu leio a Nova York .
Você pode usar as entidades extraídas diretamente nos processos de extração de informações ou como entradas para as tarefas downstream, como classificação do texto de origem, análise de sentimento do texto de origem, PHI etc.
Recomendações do conjunto de dados de treinamento
- Tenha pelo menos 200 amostras por entidade se as entidades forem densas nas amostras, o que significa que a maioria das amostras (mais de 75%) contém de 3 a 5 dessas entidades.
- Se as entidades forem esparsas (cada amostra tem menos de três entidades), ou seja, apenas algumas de todas as entidades aparecem na maioria dos documentos, é recomendável ter pelo menos 400 amostras por entidade. Isso ajuda o modelo a entender melhor os recursos discriminativos.
- Se houver mais de 10 entidades, adicione mais 100 amostras de forma incremental até atingir a métrica de desempenho desejada.
Melhores práticas
- Ter entidades significativas; se um humano não consegue identificar uma entidade, então nenhum modelo pode.
- Ter entidades simples. Em vez de um único endereço de entidade, divida-o em várias entidades: nome da rua, nome do estado, nome da cidade, CEP etc.
- Crie conjuntos de dados de treinamento e teste e use um pipeline completo para treinamento.
- Comece com um número mínimo de amostras para anotação, abrangendo todas as entidades.
- Certifique-se de que todas as entidades estejam representadas na divisão de treinamento e teste.
- Execute um pipeline completo e verifique as métricas de teste. Se a métrica de teste não for satisfatória, verifique o relatório de classificação e identifique as entidades com baixo desempenho. Adicione mais amostras que cubram as entidades com baixo desempenho e repita o processo de treinamento até a métrica desejada.
Esse modelo multilíngue é compatível com os idiomas relacionados abaixo. Esses idiomas foram escolhidos porque são os 100 principais idiomas com as maiores Wikipedias:
- Africâner
- Albanês
- Árabe
- Aragonês
- Armênio
- Asturiano
- Azeri
- Basquir
- Basco
- Bávaro
- Bielorrusso
- Bengalês
- Bishnupriya Manipuri
- Bósnio
- Bretão
- Búlgaro
- Birmanês
- Catalão
- Cebuano
- Checheno
- Chinês (Simplificado)
- Chinês (Tradicional)
- Chuvache
- Croata
- Checo
- Dinamarquês
- Holandês
- English
- Estoniano
- Finlandês
- Francês
- Galego
- Georgiano
- Alemão
- Grego
- Gujarati
- Haitiano
- Hebraico
- Hindi
- Húngaro
- Islandês
- Ido
- Indonésio
- Irlandês
- Italiano
- Japonês
- Javanês
- Canarês
- Cazaque
- Quirguiz
- Coreano
- Latim
- Letão
- Lituano
- Lombardo
- Baixo saxão
- Luxemburguês
- Macedônio
- Malgaxe
- Malaio
- Malaiala
- Marata
- Minangkabau
- Mongol
- Nepalês
- Neuari
- Norueguês (bokmal)
- Norueguês (nynorsk)
- Occitano
- Persa (farsi)
- Piemontês
- Polonês
- Português
- Punjabi
- Romeno
- Russo
- Ânglico escocês
- Sérvio
- Servo-croata
- Siciliano
- Eslovaco
- Esloveno
- Azeri do sul
- Espanhol
- Sundanês
- Suaíli
- Sueco
- Tagalog
- Tajique
- Tamil
- Tártaro
- Telugu
- Tailandês
- Turco
- Ucraniano
- Urdu
- Usbeque
- Vietnamita
- Volapuque
- Waray-Waray
- Galês
- Frísico ocidental
- Punjabi ocidental
- Iorubá
Lista de entidades nomeadas no texto. Cada elemento na lista tem os seguintes itens na previsão:
- Texto que foi reconhecido
- Posições inicial e final do texto, considerando os caracteres
- Tipo da entidade nomeada
- Confidence
{ "response" : [{ "value": "George Washington", "start_index": 0, "end_index": 17, "entity": "PER", "confidence": 0.96469810605049133 }] }
{ "response" : [{ "value": "George Washington", "start_index": 0, "end_index": 17, "entity": "PER", "confidence": 0.96469810605049133 }] }
Todos os três tipos de pipelines (Treinamento completo, Treinamento e Avaliação) são suportados por esse pacote. Para a maioria dos casos de uso, não é necessário especificar parâmetros: o modelo usa técnicas avançadas para encontrar um modelo de bom desempenho. Nos treinamentos subsequentes após o primeiro, o modelo usa aprendizado incremental (ou seja, a versão treinada anteriormente será usada no final de uma execução de treinamento).
É possível usar as APIs do Label Studio para gravação posterior dos dados e previsões com pouca confiança. Então, seus dados podem ser rotulados novamente e exportados no formato CoNLL.
For more information on how to use Label Studio, see Getting started with Label Studio. Also, you can download the UiPath® Studio activity for Label Studio Integration here.
Como alternativa, você pode aproveitar a função de rotulagem de dados no AI Center.
É possível usar GPU ou CPU para treinamento. Recomendamos usar a GPU, pois ela é mais rápida.
Esse modelo é compatível com a leitura de todos os arquivos em um determinado diretório durante todas as execuções de pipeline (treinamento, avaliação e pipeline completo).
Set Date
, use SetDate
.
Formato do arquivo CoNLL
.conll
e/ou .txt
usando o formato de arquivo CoNLL no diretório fornecido.
O formato do arquivo CoNLL representa um corpo de texto com uma palavra por linha, com cada palavra contendo 10 colunas separadas por guias com informações sobre a palavra (por exemplo, superfície e sintaxe).
O reconhecimento treinávelo da entidade nomeada é compatível com dois formatos do CoNLL:
- Com apenas duas colunas no texto.
- Com quatro colunas no texto.
conll
ou label_studio
.
label_studio
é o mesmo que o formato CoNLL
, com a separação entre dois pontos de dados sendo uma nova linha vazia. Para compatibilidade de separação entre dois pontos de dados com -DOCSTART- -X- O O
, adicione dataset.input_format como uma variável de ambiente e defina seu valor como conll
.
Para obter mais informações, veja os exemplos abaixo.
Japan NNP B-NP B-LOC
began VBD B-VP O
the DT B-NP O
defence NN I-NP O
of IN B-PP O
their PRP$ B-NP O
Asian JJ I-NP B-MISC
Cup NNP I-NP I-MISC
title NN I-NP O
with IN B-PP O
a DT B-NP O
lucky JJ I-NP O
2-1 CD I-NP O
win VBP B-VP O
against IN B-PP O
Syria NNP B-NP B-LOC
in IN B-PP O
a DT B-NP O
Group NNP I-NP O
C NNP I-NP O
championship NN I-NP O
match NN I-NP O
on IN B-PP O
Friday NNP B-NP O
. . O OFounding O
member O
Kojima B-PER
Minoru I-PER
played O
guitar O
on O
Good B-MISC
Day I-MISC
, O
and O
Wardanceis I-MISC
cover O
of O
a O
song O
by O
UK I-LOC
post O
punk O
industrial O
band O
Killing B-ORG
Joke I-ORG
. O
Japan NNP B-NP B-LOC
began VBD B-VP O
the DT B-NP O
defence NN I-NP O
of IN B-PP O
their PRP$ B-NP O
Asian JJ I-NP B-MISC
Cup NNP I-NP I-MISC
title NN I-NP O
with IN B-PP O
a DT B-NP O
lucky JJ I-NP O
2-1 CD I-NP O
win VBP B-VP O
against IN B-PP O
Syria NNP B-NP B-LOC
in IN B-PP O
a DT B-NP O
Group NNP I-NP O
C NNP I-NP O
championship NN I-NP O
match NN I-NP O
on IN B-PP O
Friday NNP B-NP O
. . O OFounding O
member O
Kojima B-PER
Minoru I-PER
played O
guitar O
on O
Good B-MISC
Day I-MISC
, O
and O
Wardanceis I-MISC
cover O
of O
a O
song O
by O
UK I-LOC
post O
punk O
industrial O
band O
Killing B-ORG
Joke I-ORG
. O
Formato de arquivo JSON
.json
usando o formato JSON.
Verifique o exemplo a seguir e as variáveis de ambiente para obter um exemplo de formato de arquivo JSON.
{
"text": "Serotonin receptor 2A ( HTR2A ) gene polymorphism predicts treatment response to venlafaxine XR in generalized anxiety disorder . anxiety disorder ( GAD ) is a chronic psychiatric disorder with significant morbidity and mortality .\)
Antidepressant drugs are the preferred choice for treatment ; however , treatment response is often variable .\)
Several studies in major depression have implicated a role of the serotonin receptor gene ( HTR2A ) in treatment response to antidepressants .\)
We tested the hypothesis that the genetic polymorphism rs7997012 in the HTR2A gene predicts treatment outcome in GAD patients treated with venlafaxine XR . Treatment response was assessed in 156 patients that participated in a 6-month open - label clinical trial of venlafaxine XR for GAD . Primary analysis included Hamilton Anxiety Scale ( HAM-A ) reduction at 6 months .\)
Secondary outcome measure was the Clinical Global Impression of Improvement ( CGI-I ) score at 6 months .\)
Genotype and allele frequencies were compared between groups using χ(2) contingency analysis .\)
The frequency of the G-allele differed significantly between responders ( 70% ) and nonresponders ( 56% ) at 6 months ( P=0.05 ) using the HAM-A scale as outcome measure .\)
Similarly , using the CGI-I as outcome , the G-allele was significantly associated with improvement ( P=0.01 ) .\)
Assuming a dominant effect of the G-allele , improvement differed significantly between groups ( P=0.001 , odds ratio=4.72 ) .\)
Similar trends were observed for remission although not statistically significant .\)
We show for the first time a pharmacogenetic effect of the HTR2A rs7997012 variant in anxiety disorders , suggesting that pharmacogenetic effects cross diagnostic categories .\)
Our data document that individuals with the HTR2A rs7997012 single nucleotide polymorphism G-allele have better treatment outcome over time .\)
Future studies with larger sample sizes are necessary to further characterize this effect in treatment response to antidepressants in GAD .",
"entities": [{
"entity": "TRIVIAL",
"value": "Serotonin",
"start_index": 0,
"end_index": 9
}, {
"entity": "TRIVIAL",
"value": "venlafaxine",
"start_index": 81,
"end_index": 92
}, {
"entity": "TRIVIAL",
"value": "serotonin",
"start_index": 409,
"end_index": 418
}, {
"entity": "TRIVIAL",
"value": "venlafaxine",
"start_index": 625,
"end_index": 636
}, {
"entity": "TRIVIAL",
"value": "venlafaxine",
"start_index": 752,
"end_index": 763
}, {
"entity": "FAMILY",
"value": "nucleotide",
"start_index": 1800,
"end_index": 1810
}]
}
{
"text": "Serotonin receptor 2A ( HTR2A ) gene polymorphism predicts treatment response to venlafaxine XR in generalized anxiety disorder . anxiety disorder ( GAD ) is a chronic psychiatric disorder with significant morbidity and mortality .\)
Antidepressant drugs are the preferred choice for treatment ; however , treatment response is often variable .\)
Several studies in major depression have implicated a role of the serotonin receptor gene ( HTR2A ) in treatment response to antidepressants .\)
We tested the hypothesis that the genetic polymorphism rs7997012 in the HTR2A gene predicts treatment outcome in GAD patients treated with venlafaxine XR . Treatment response was assessed in 156 patients that participated in a 6-month open - label clinical trial of venlafaxine XR for GAD . Primary analysis included Hamilton Anxiety Scale ( HAM-A ) reduction at 6 months .\)
Secondary outcome measure was the Clinical Global Impression of Improvement ( CGI-I ) score at 6 months .\)
Genotype and allele frequencies were compared between groups using χ(2) contingency analysis .\)
The frequency of the G-allele differed significantly between responders ( 70% ) and nonresponders ( 56% ) at 6 months ( P=0.05 ) using the HAM-A scale as outcome measure .\)
Similarly , using the CGI-I as outcome , the G-allele was significantly associated with improvement ( P=0.01 ) .\)
Assuming a dominant effect of the G-allele , improvement differed significantly between groups ( P=0.001 , odds ratio=4.72 ) .\)
Similar trends were observed for remission although not statistically significant .\)
We show for the first time a pharmacogenetic effect of the HTR2A rs7997012 variant in anxiety disorders , suggesting that pharmacogenetic effects cross diagnostic categories .\)
Our data document that individuals with the HTR2A rs7997012 single nucleotide polymorphism G-allele have better treatment outcome over time .\)
Future studies with larger sample sizes are necessary to further characterize this effect in treatment response to antidepressants in GAD .",
"entities": [{
"entity": "TRIVIAL",
"value": "Serotonin",
"start_index": 0,
"end_index": 9
}, {
"entity": "TRIVIAL",
"value": "venlafaxine",
"start_index": 81,
"end_index": 92
}, {
"entity": "TRIVIAL",
"value": "serotonin",
"start_index": 409,
"end_index": 418
}, {
"entity": "TRIVIAL",
"value": "venlafaxine",
"start_index": 625,
"end_index": 636
}, {
"entity": "TRIVIAL",
"value": "venlafaxine",
"start_index": 752,
"end_index": 763
}, {
"entity": "FAMILY",
"value": "nucleotide",
"start_index": 1800,
"end_index": 1810
}]
}
As variáveis de ambiente para o exemplo anterior seriam as seguintes:
- dataset.input_format:
json
- dataset.input_column_name:
text
- dataset.output_column_name:
entities
formato de arquivo ai_center
.json
.
Verifique a amostra e as variáveis de ambiente a seguir para obter um exemplo de formato de arquivo ai_center.
{
"annotations": {
"intent": {
"to_name": "text",
"choices": [
"TransactionIssue",
"LoanIssue"
]
},
"sentiment": {
"to_name": "text",
"choices": [
"Very Positive"
]
},
"ner": {
"to_name": "text",
"labels": [
{
"start_index": 37,
"end_index": 47,
"entity": "Stakeholder",
"value": " Citi Bank"
},
{
"start_index": 51,
"end_index": 61,
"entity": "Date",
"value": "07/19/2018"
},
{
"start_index": 114,
"end_index": 118,
"entity": "Amount",
"value": "$500"
},
{
"start_index": 288,
"end_index": 293,
"entity": "Stakeholder",
"value": " Citi"
}
]
}
},
"data": {
"cc": "",
"to": "xyz@abc.com",
"date": "1/29/2020 12:39:01 PM",
"from": "abc@xyz.com",
"text": "I opened my new checking account with Citi Bank in 07/19/2018 and met the requirements for the promotion offer of $500 . It has been more than 6 months and I have not received any bonus. I called the customer service several times in the past few months but no any response. I request the Citi honor its promotion offer as advertised."
}
}
{
"annotations": {
"intent": {
"to_name": "text",
"choices": [
"TransactionIssue",
"LoanIssue"
]
},
"sentiment": {
"to_name": "text",
"choices": [
"Very Positive"
]
},
"ner": {
"to_name": "text",
"labels": [
{
"start_index": 37,
"end_index": 47,
"entity": "Stakeholder",
"value": " Citi Bank"
},
{
"start_index": 51,
"end_index": 61,
"entity": "Date",
"value": "07/19/2018"
},
{
"start_index": 114,
"end_index": 118,
"entity": "Amount",
"value": "$500"
},
{
"start_index": 288,
"end_index": 293,
"entity": "Stakeholder",
"value": " Citi"
}
]
}
},
"data": {
"cc": "",
"to": "xyz@abc.com",
"date": "1/29/2020 12:39:01 PM",
"from": "abc@xyz.com",
"text": "I opened my new checking account with Citi Bank in 07/19/2018 and met the requirements for the promotion offer of $500 . It has been more than 6 months and I have not received any bonus. I called the customer service several times in the past few months but no any response. I request the Citi honor its promotion offer as advertised."
}
}
Para aproveitar o JSON de amostra anterior, as variáveis de ambiente precisam ser definidas da seguinte maneira:
- dataset.input_format para
ai_center
- dataset.input_column_name para
data.text
- dataset.output_column_name para
annotations.ner.labels
-
dataset.input_column_name
- O nome da coluna que contém o texto.
- O valor padrão é
data.text
. - Essa variável só é necessária se o formato do arquivo de entrada for
ai_center
ouJSON
.
-
dataset.target_column_name
- O nome da coluna que contém rótulos.
- O valor padrão é
annotations.ner.labels
. - Essa variável só é necessária se o formato do arquivo de entrada for
ai_center
ouJSON
.
-
modelo.épocas
- O número de épocas.
- O valor padrão é
5
.
-
dataset.input_format
- O formato de entrada dos dados de treinamento.
- O valor padrão é
ai_center
. - Os valores suportados são:
ai_center
,conll
,label_studio
oujson
.Observação: o formatolabel_studio
é o mesmo que o formatoCoNLL
, com a separação entre dois pontos de dados sendo uma nova linha vazia. Para compatibilidade de separação entre dois pontos de dados com-DOCSTART- -X- O O
, adicione dataset.input_format como uma variável de ambiente e defina seu valor comoconll
.
- Relatório de avaliação, contendo os arquivos a seguir:
- Relatório da classificação
- Matriz de confusão
- Informação de recall de precisão
- Arquivos JSON: arquivos JSON separados correspondentes a cada seção do arquivo PDF do Relatório de avaliação.Esses arquivos JSON são legíveis pelo computador e você pode usá-los para canalizar a avaliação do modelo em Insights usando o fluxo de trabalho.
Relatório da classificação
O relatório de classificação é derivado do conjunto de dados de teste ao executar o pipeline completo ou de avaliação. Ele contém as seguintes informações para cada entidade na forma de um diagrama:
- Entidade- O nome da entidade.
- Precisão - A métrica de precisão para prever corretamente a entidade no conjunto de teste.
- Recall - A métrica de recall de prever corretamente a entidade sobre o conjunto de teste
- Pontuação F1 - A métrica de pontuação f1 para prever corretamente a entidade no conjunto de teste; você pode usar essa pontuação para comparar o desempenho baseado em entidade de duas versões treinadas diferentemente desse modelo.
Matriz de confusão
Uma tabela com explicações explicando diferentes categorias de erro também é fornecida sob a matriz de confusão. As categorias de erro por entidade sãocorretas,incorretas,perdidase espúrias são explicadas nessa tabela.
Informações de recall de precisão
Você pode usar essas informações para verificar a precisão e a compensação de recall do modelo. Os limites e os valores correspondentes de precisão e recuperação também são fornecidos em uma tabela acima do diagrama para cada entidade. Esta tabela permitirá que você escolha o limite desejado para configurar em seu fluxo de trabalho para decidir quando enviar os dados para o Action Center para humanos no loop. Observe que quanto maior o limite escolhido, maior será a quantidade de dados roteados para o Action Center for humano no loop.
Há um diagrama de recuperação de precisão e uma tabela para cada entidade.
Para um exemplo de uma tabela de recall de precisão por entidade, consulte a tabela abaixo.
limiar |
precisão |
recall |
---|---|---|
0.5 |
0.9193 |
0.979 |
0.55 |
0.9224 |
0.9777 |
0,6 |
0.9234 |
0.9771 |
0,65 |
0.9256 |
0.9771 |
0.7 |
0.9277 |
0.9759 |
0,75 |
0.9319 |
0.9728 |
0.8 |
0.9356 |
0.9697 |
0.85 |
0.9412 |
0.9697 |
0,9 |
0.9484 |
0.9666 |
0,95 |
0.957 |
0.9629 |
Para um exemplo de um diagrama de recall de precisão por entidade, consulte a figura abaixo.
Arquivo CSV de avaliação
Esse é um arquivo CSV com previsões sobre o conjunto de testes usado para avaliação. O arquivo contém as colunas:
- Texto - O texto usado para avaliação.
- Actual_entities - As entidades que foram fornecidas como dados rotulados no conjunto de dados de avaliação.
- Predicted_entities - As entidades que o modelo treinado previu.
- Error_type_counts - A diferença entre as entidades reais e as entidades previstas categorizadas por tipos de erro.