- Notas de Versão
- Antes de começar
- Introdução
- Projetos
- Conjuntos de dados
- Pacotes de ML
- Pipelines
- Habilidades de ML
- Logs de ML
- Document Understanding no AI Center
- Licenciamento
- Como fazer
- Guia básico de solução de problemas
Classificação do texto leve
Pacotes prontos para usar > Análise de idiomas da UiPath > LightTextClassification
Este é um modelo genérico e retreinável para classificação de texto. Ele oferece suporte a todos os idiomas baseados em caracteres latinos, como inglês, francês, espanhol e outros. Este pacote de ML deve ser treinado e, se implantado sem treinamento primeiro, a implantação falhará com um erro informando que o modelo não foi treinado. Este modelo opera em Bag of Words. Este modelo fornece explicabilidade com base em n-gramas.
JSON com classe e confiança (entre 0 e 1).
{
"class": "7",
"confidence": 0.1259827300369445,
"ngrams": [
[
"like",
1.3752658445706787
],
[
"like this",
0.032029048484416685
]
]
}
{
"class": "7",
"confidence": 0.1259827300369445,
"ngrams": [
[
"like",
1.3752658445706787
],
[
"like this",
0.032029048484416685
]
]
}
Este pacote suporta todos os três tipos de pipelines (Treinamento Completo, Treinamento e Avaliação). O modelo usa técnicas avançadas para encontrar um modelo de alto desempenho usando a pesquisa de hiperparâmetros. Por padrão, a pesquisa de hiperparâmetros (a variável BOW.hyperparameter_search.enable ) está habilitada. Os parâmetros do modelo de maior desempenho estão disponíveis no Relatório de Avaliação.
Estão disponíveis três opções para estruturar seu conjunto de dados para esse modelo: JSON, CSV e o formato JSON do AI Center . O modelo lerá todos os arquivos CSV e JSON no diretório especificado. Para todo formato, o modelo espera duas colunas ou duas propriedades: dataset.input_column_name e dataset.target_column_name por padrão. Os nomes dessas duas colunas e/ou diretórios são configuráveis usando variáveis de ambiente.
Formato de arquivo CSV
Cada arquivo CSV pode ter qualquer número de colunas, mas apenas duas serão usadas pelo modelo. Essas colunas são especificadas pelos parâmetros dataset.input_column_name e dataset.target_column_name.
Verifique as variáveis de amostra e ambiente a seguir para obter um exemplo de formato de arquivo CSV.
text, label
I like this movie, 7
I hated the acting, 9
text, label
I like this movie, 7
I hated the acting, 9
As variáveis de ambiente para o exemplo anterior seriam as seguintes:
- dataset.input_format:
auto
- dataset.input_column_name:
text
- dataset.target_column_name:
label
Formato de arquivo JSON
Vários pontos de dados podem fazer parte do mesmo arquivo JSON.
Verifique o exemplo a seguir e as variáveis de ambiente para obter um exemplo de formato de arquivo JSON.
[
{
"text": "I like this movie",
"label": "7"
},
{
"text": "I hated the acting",
"label": "9"
}
]
[
{
"text": "I like this movie",
"label": "7"
},
{
"text": "I hated the acting",
"label": "9"
}
]
As variáveis de ambiente para o exemplo anterior seriam as seguintes:
- dataset.input_format:
auto
- dataset.input_column_name:
text
- dataset.target_column_name:
label
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:
ai_center
- dataset.input_column_name:
data.text
- dataset.target_column_name:
annotations.intent.choices
- dataset.input_column_name
- O nome da coluna de entrada que contém o texto.
- O valor padrão é
data.text
. - Certifique-se de que esta variável esteja configurada de acordo com seu arquivo JSON ou CSV de entrada.
- dataset.target_column_name
- O nome da coluna de destino que contém o texto.
- O valor padrão é
annotations.intent.choices
. - Certifique-se de que esta variável esteja configurada de acordo com seu arquivo JSON ou CSV de entrada.
- dataset.input_format
- O formato de entrada dos dados de treinamento.
- O valor padrão é
ai_center
. - Os valores suportados são:
ai_center
ouauto
. - Se
ai_center
for selecionado, apenas arquivosJSON
serão suportados. Certifique-se de alterar também o valor de dataset.target_column_name paraannotations.sentiment.choices
seai_center
for selecionado. - Se
auto
for selecionado, os arquivosCoNLL
eJSON
serão suportados.
- BOW.hyperparameter_search.enable
- O valor padrão para este parâmetro é
True
. Se deixado ativado, isso encontrará o modelo de melhor desempenho no período de tempo determinado e os recursos de computação. - Isso também gerará um arquivo PDF
HyperparameterSearch_report
para mostrar as variações dos parâmetros que foram testados.
- O valor padrão para este parâmetro é
- BOW.hyperparameter_search.timeout
- O tempo máximo que a pesquisa de hiperparâmetro pode executar em segundos.
- O valor padrão é
1800
.
- BOW.explain_inference
- Quando isso é definido como
True
, durante o tempo de inferência quando o modelo é servido como ML Skill, alguns dos n-gramas mais importantes também serão retornados junto com a previsão. - O valor padrão é
False
.
- Quando isso é definido como
Variáveis opcionais
True
, os valores ideais dessas variáveis serão procurados. Para os seguintes parâmetros opcionais a serem usados pelo modelo, defina a variável de pesquisa BOW.hyperparameter_search.enable como False
:
- BOW.lr_kwargs.class_weight
- Os valores suportados são:
balanced
ouNone
.
- Os valores suportados são:
- BOW.ngram_range
- Faixa de comprimento de sequência de sequência de palavras consecutivas que podem ser consideradas como recursos para o modelo.
- Certifique-se de seguir este formato:
(1, x)
, em quex
é o comprimento máximo da sequência que você deseja permitir.
- BOW.min_df
- Usado para definir o número mínimo de ocorrências do n-gram no conjunto de dados a serem considerados como um recurso.
- Os valores recomendados estão entre
0
e10
.
- dataset.text_pp_remove_stop_words
- Usado para configurar se palavras de parada devem ou não ser incluídas na pesquisa (por exemplo, palavras como
the
,or
). - Os valores suportados são:
True
ouFalse
.
- Usado para configurar se palavras de parada devem ou não ser incluídas na pesquisa (por exemplo, palavras como
O relatório de avaliação é um arquivo PDF contendo as seguintes informações em um formato legível por humanos:
- ngramas por classe
- Diagrama de recall de precisão
- Relatório da classificação
- Matriz de confusão
- Melhores parâmetros de modelo para pesquisa de hiperparâmetros
ngramas por classe
Esta seção contém os 10 principais n-gramas que afetam a previsão do modelo para essa classe. Há uma tabela diferente para cada classe na qual o modelo foi treinado.
Diagrama de rechamada de precisão
Você pode usar esse diagrama e a tabela para verificar a precisão, compensação de recall, juntamente com pontuações f1 do modelo. Os limiares e os valores correspondentes de precisão e recall também são fornecidos em uma tabela abaixo desse diagrama. Esta tabela escolherá o limiar 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 limiar escolhido, maior será a quantidade de dados roteados para o Action Center para humanos no loop.
Há um diagrama de recordação de precisão para cada classe.
Para obter um exemplo de um diagrama de recuperação de precisão, consulte a figura abaixo.
Para obter um exemplo de uma tabela de recall de precisão, consulte a tabela abaixo.
Precisão | Lembrar | limiar |
---|---|---|
0.8012232415902141 | 0.6735218508997429 | 0.30539842728983285 |
0.8505338078291815 | 0.6143958868894601 | 0.37825683923133907 |
0.9005524861878453 | 0.4190231362467866 | 0.6121292357073038 |
0.9514563106796117 | 0.2519280205655527 | 0.7916427288647211 |
Relatório da classificação
O relatório de classificação contém as seguintes informações:
- Rótulo - a parte do rótulo do conjunto de teste
- Precisão - a precisão da previsão
- Recall - instâncias relevantes que foram recuperadas
- Pontuação F1 - a média geométrica entre precisão e revocação; você pode usar essa pontuação para comparar dois modelos
- Suporte - o número de vezes que um determinado rótulo aparece no conjunto de teste
Para obter um exemplo de relatório de classificação, consulte a tabela abaixo.
Label | Precisão | Lembrar | Pontuação F1 | Suporte |
---|---|---|---|---|
0.0 | 0.805 | 0.737 | 0.769 | 319 |
1.0 | 0.731 | 0.812 | 0.77 | 389 |
2.0 | 0.778 | 0.731 | 0.754 | 394 |
3.0 | 0.721 | 0.778 | 0.748 | 392 |
4.0 | 0.855 | 0.844 | 0.85 | 385 |
5.0 | 0.901 | 0.803 | 0.849 | 395 |
Matriz de confusão
Melhores parâmetros de modelo para pesquisa de hiperparâmetros
True
os melhores parâmetros de modelo escolhidos pelo algoritmo são exibidos nesta tabela. Para treinar novamente o modelo com diferentes parâmetros não cobertos pela pesquisa de hiperparâmetros, você também pode definir esses parâmetros manualmente nas Variáveis de ambiente. Para obter mais informações sobre isso, consulte a seção (doc:light-text-classification#environment-variables).
Para obter um exemplo desse relatório, consulte a tabela abaixo.
Name | Valor |
---|---|
BOW.ngram_range | (1, 2) |
BOW.min_df | 2 |
BOW.lr_kwargs.class_weight | Equilibrado |
dataset.text_pp_remove_stop_words | True |
Relatório de pesquisa de hiperparâmetros
True
. O relatório contém os melhores valores para as variáveis opcionais e um diagrama para exibir os resultados.
Arquivos JSON
Você pode encontrar 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.