Amazon Comprehend é um serviço de processamento de linguagem natural (NLP) que você pode usar para extrair automaticamente entidades, frases-chave, linguagem, sentimentos e outros insights de documentos. Por exemplo, você pode começar a detectar imediatamente entidades como pessoas, lugares, itens comerciais, datas e quantidades por meio do Console do Amazon Comprehend, Interface de linha de comando da AWSou APIs do Amazon Comprehend. Além disso, se você precisar extrair entidades que não fazem parte do Tipos de entidade integrados do Amazon Comprehend, você pode criar um modelo de reconhecimento de entidade personalizado (também conhecido como entidade personalizada Reconhecedor) para extrair termos mais relevantes para seu caso de uso específico, como nomes de itens de um catálogo de produtos, identificadores específicos de domínio e assim por diante. Criar um reconhecedor de entidade preciso por conta própria usando bibliotecas e estruturas de aprendizado de máquina pode ser um processo complexo e demorado. O Amazon Comprehend simplifica significativamente o trabalho de treinamento de modelos. Tudo o que você precisa fazer é carregar seu conjunto de dados de documentos e anotações e usar o console do Amazon Comprehend, AWS CLI ou APIs para criar o modelo.
Para treinar um reconhecedor de entidade personalizado, você pode fornecer dados de treinamento ao Amazon Comprehend como anotações ou listas de entidades. No primeiro caso, você fornece uma coleção de documentos e um arquivo com anotações que especificam o local onde as entidades ocorrem dentro do conjunto de documentos. Como alternativa, com listas de entidades, você fornece uma lista de entidades com seu rótulo de tipo de entidade correspondente e um conjunto de documentos não anotados nos quais você espera que suas entidades estejam presentes. Ambas as abordagens podem ser usadas para treinar um modelo de reconhecimento de entidade personalizado bem-sucedido; no entanto, há situações em que um método pode ser a melhor escolha. Por exemplo, quando o significado de entidades específicas pode ser ambíguo e dependente do contexto, é recomendável fornecer anotações porque isso pode ajudar você a criar um modelo do Amazon Comprehend capaz de usar melhor o contexto ao extrair entidades.
A anotação de documentos pode exigir muito esforço e tempo, especialmente se você considerar que tanto a qualidade quanto a quantidade de anotações têm impacto no modelo de reconhecimento de entidade resultante. Anotações imprecisas ou muito poucas podem levar a resultados ruins. Para ajudá-lo a configurar um processo de aquisição de anotações, fornecemos ferramentas como Verdade no solo do Amazon SageMaker, que você pode usar para anotar seus documentos mais rapidamente e gerar um arquivo de anotações de manifesto aumentado. No entanto, mesmo se você usar o Ground Truth, ainda precisará garantir que seu conjunto de dados de treinamento seja grande o suficiente para criar seu reconhecedor de entidade com êxito.
Até hoje, para começar a treinar um reconhecedor de entidade personalizada do Amazon Comprehend, você precisava fornecer uma coleção de pelo menos 250 documentos e um mínimo de 100 anotações por tipo de entidade. Hoje, estamos anunciando que, graças a melhorias recentes nos modelos subjacentes ao Amazon Comprehend, reduzimos os requisitos mínimos para treinar um reconhecedor com arquivos de anotação CSV de texto simples. Agora você pode criar um modelo de reconhecimento de entidade personalizado com apenas três documentos e 25 anotações por tipo de entidade. Você pode encontrar mais detalhes sobre novos limites de serviço em Diretrizes e cotas.
Para mostrar como essa redução pode ajudá-lo a começar a criar um reconhecedor de entidade personalizado, executamos alguns testes em alguns conjuntos de dados de código aberto e coletamos métricas de desempenho. Neste post, mostramos o processo de benchmarking e os resultados que obtivemos ao trabalhar em conjuntos de dados subamostrados.
Preparação do conjunto de dados
Nesta postagem, explicamos como treinamos um reconhecedor de entidade personalizada do Amazon Comprehend usando documentos anotados. Em geral, as anotações podem ser fornecidas como arquivo CSV, um arquivo de manifesto aumentado gerado pelo Ground Truth, Ou um Arquivo PDF. Nosso foco está nas anotações de texto simples CSV, porque esse é o tipo de anotação impactado pelos novos requisitos mínimos. Os arquivos CSV devem ter a seguinte estrutura:
Os campos relevantes são os seguintes:
- Envie o – O nome do arquivo que contém os documentos
- Line – O número da linha que contém a entidade, começando com a linha 0
- Começar Compensar – O deslocamento do caractere no texto de entrada (relativo ao início da linha) que mostra onde começa a entidade, considerando que o primeiro caractere está na posição 0
- Deslocamento final – O deslocamento de caractere no texto de entrada que mostra onde a entidade termina
- Formato – O nome do tipo de entidade que você deseja definir
Além disso, ao usar essa abordagem, você deve fornecer uma coleção de documentos de treinamento como arquivos .txt com um documento por linha ou um documento por arquivo.
Para nossos testes, usamos o SNIPS Natural Language Understanding, um conjunto de dados de enunciados de crowdsourcing distribuídos entre sete intenções de usuário (AddToPlaylist
, BookRestaurant
, GetWeather
, PlayMusic
, RateBook
, SearchCreativeWork
, SearchScreeningEvent
). O conjunto de dados foi publicado em 2018 no contexto do artigo Snips Voice Platform: um sistema integrado de compreensão de linguagem falada para interfaces de voz privadas por design por Coucke, et ai.
O conjunto de dados SNIPS é feito de uma coleção de arquivos JSON que condensam anotações e arquivos de texto bruto. Veja a seguir um trecho do conjunto de dados:
Antes de criar nosso reconhecedor de entidade, transformamos as anotações SNIPS e os arquivos de texto bruto em um arquivo de anotações CSV e um arquivo de documentos .txt.
Segue um trecho do nosso annotations.csv
arquivo:
Segue um trecho do nosso documents.txt
arquivo:
Configuração de amostragem e processo de benchmarking
Para nossos experimentos, nos concentramos em um subconjunto de tipos de entidade do conjunto de dados SNIPS:
- LivroRestaurante – Tipos de entidade:
spatial_relation
,poi
,party_size_number
,restaurant_name
,city
,timeRange
,restaurant_type
,served_dish
,party_size_description
,country
,facility
,state
,sort
,cuisine
- Obter tempo – Tipos de entidade:
condition_temperature
,current_location
,geographic_poi
,timeRange
,state
,spatial_relation
,condition_description
,city
,country
- Tocar música – Tipos de entidade:
track
,artist
,music_item
,service
,genre
,sort
,playlist
,album
,year
Além disso, subamostramos cada conjunto de dados para obter diferentes configurações em termos de número de documentos amostrados para treinamento e número de anotações por entidade (também conhecido como tiros). Isso foi feito usando um script personalizado projetado para criar conjuntos de dados subamostrados nos quais cada tipo de entidade aparece pelo menos k vezes, no mínimo n documentos.
Cada modelo foi treinado usando uma subamostra específica dos conjuntos de dados de treinamento; as nove configurações do modelo estão ilustradas na tabela a seguir.
Nome do conjunto de dados subamostrado | Número de documentos amostrados para treinamento | Número de documentos amostrados para teste | Número médio de anotações por tipo de entidade (tiros) |
snips-BookRestaurant-subsample-A |
132 | 17 | 33 |
snips-BookRestaurant-subsample-B |
257 | 33 | 64 |
snips-BookRestaurant-subsample-C |
508 | 64 | 128 |
snips-GetWeather-subsample-A |
91 | 12 | 25 |
snips-GetWeather-subsample-B |
185 | 24 | 49 |
snips-GetWeather-subsample-C |
361 | 46 | 95 |
snips-PlayMusic-subsample-A |
130 | 17 | 30 |
snips-PlayMusic-subsample-B |
254 | 32 | 60 |
snips-PlayMusic-subsample-C |
505 | 64 | 119 |
Para medir a precisão de nossos modelos, coletamos métricas de avaliação que o Amazon Comprehend calcula automaticamente ao treinar um reconhecedor de entidade:
- Precisão – Isso indica a fração de entidades detectadas pelo reconhecedor que são identificadas e rotuladas corretamente. De uma perspectiva diferente, a precisão pode ser definida como tp / (tp + fp), Onde tp é o número de verdadeiros positivos (identificações corretas) e fp é o número de falsos positivos (identificações incorretas).
- Recordar – Indica a fração de entidades presentes nos documentos que estão corretamente identificadas e rotuladas. É calculado como tp / (tp + fn), Onde tp é o número de verdadeiros positivos e fn é o número de falsos negativos (identificações perdidas).
- Pontuação F1 – Esta é uma combinação das métricas de precisão e recall, que mede a precisão geral do modelo. A pontuação F1 é a média harmônica das métricas de precisão e recall, e é calculada como 2 * Precisão * Recall / (Precisão + Recall).
Para comparar o desempenho de nossos reconhecedores de entidade, nos concentramos nas pontuações F1.
Considerando que, dado um conjunto de dados e um tamanho de subamostra (em termos de número de documentos e fotos), você pode gerar diferentes subamostras, geramos 10 subamostras para cada uma das nove configurações, treinamos os modelos de reconhecimento de entidades, coletamos métricas de desempenho e calcularam a média deles usando micro-média. Isso nos permitiu obter resultados mais estáveis, especialmente para subamostras de poucos disparos.
Resultados
A tabela a seguir mostra as pontuações F1 micromédias calculadas nas métricas de desempenho retornadas pelo Amazon Comprehend após o treinamento de cada reconhecedor de entidade.
Nome do conjunto de dados subamostrado | Pontuação F1 micromédia do reconhecedor de entidade (%) |
snips-BookRestaurant-subsample-A |
86.89 |
snips-BookRestaurant-subsample-B |
90.18 |
snips-BookRestaurant-subsample-C |
92.84 |
snips-GetWeather-subsample-A |
84.73 |
snips-GetWeather-subsample-B |
93.27 |
snips-GetWeather-subsample-C |
93.43 |
snips-PlayMusic-subsample-A |
80.61 |
snips-PlayMusic-subsample-B |
81.80 |
snips-PlayMusic-subsample-C |
85.04 |
O gráfico de colunas a seguir mostra a distribuição das pontuações da F1 para as nove configurações que treinamos conforme descrito na seção anterior.
Podemos observar que conseguimos treinar com sucesso modelos de reconhecimento de entidade personalizados, mesmo com apenas 25 anotações por tipo de entidade. Se nos concentrarmos nos três menores conjuntos de dados subamostrados (snips-BookRestaurant-subsample-A
, snips-GetWeather-subsample-A
e snips-PlayMusic-subsample-A
), vemos que, em média, conseguimos atingir uma pontuação F1 de 84%, o que é um resultado bastante bom considerando o número limitado de documentos e anotações que usamos. Se quisermos melhorar o desempenho do nosso modelo, podemos coletar documentos e anotações adicionais e treinar um novo modelo com mais dados. Por exemplo, com subamostras de tamanho médio (snips-BookRestaurant-subsample-B
, snips-GetWeather-subsample-B
e snips-PlayMusic-subsample-B
), que contém o dobro de documentos e anotações, obtivemos em média uma pontuação F1 de 88% (melhoria de 5% em relação a subsample-A
conjuntos de dados). Finalmente, conjuntos de dados subamostrados maiores (snips-BookRestaurant-subsample-C
, snips-GetWeather-subsample-C
e snips-PlayMusic-subsample-C
), que contêm ainda mais dados anotados (aproximadamente quatro vezes o número de documentos e anotações usados para subsample-A
conjuntos de dados), proporcionou uma melhoria adicional de 2%, elevando a pontuação média da F1 para 90%.
Conclusão
Nesta postagem, anunciamos uma redução dos requisitos mínimos para treinar um reconhecedor de entidade personalizado com o Amazon Comprehend e executamos alguns benchmarks em conjuntos de dados de código aberto para mostrar como essa redução pode ajudar você a começar. A partir de hoje, você pode criar um modelo de reconhecimento de entidade com apenas 25 anotações por tipo de entidade (em vez de 100) e pelo menos três documentos (em vez de 250). Com este anúncio, estamos reduzindo a barreira de entrada para usuários interessados em usar a tecnologia de reconhecimento de entidade personalizada do Amazon Comprehend. Agora você pode começar a executar seus experimentos com uma coleção muito pequena de documentos anotados, analisar resultados preliminares e iterar incluindo anotações e documentos adicionais se precisar de um modelo de reconhecimento de entidade mais preciso para seu caso de uso.
Para saber mais e começar a usar um reconhecedor de entidade personalizado, consulte Reconhecimento de entidade personalizada.
Agradecimentos especiais aos meus colegas Jyoti Bansal e Jie Ma por sua preciosa ajuda na preparação de dados e benchmarking.
Sobre o autor
Lucas Guida é Arquiteto de Soluções na AWS; ele está sediado em Milão e oferece suporte a ISVs italianos em sua jornada na nuvem. Com formação acadêmica em ciência da computação e engenharia, ele começou a desenvolver sua paixão por IA/ML na universidade. Como membro da comunidade de processamento de linguagem natural (NLP) na AWS, Luca ajuda os clientes a serem bem-sucedidos ao adotar serviços de IA/ML.
- AI
- arte ai
- gerador de arte ai
- ai robô
- Amazon Comprehend
- inteligência artificial
- certificação de inteligência artificial
- inteligência artificial em bancos
- robô de inteligência artificial
- robôs de inteligência artificial
- software de inteligência artificial
- Aprendizado de máquina da AWS
- blockchain
- conferência blockchain ai
- Coingenius
- inteligência artificial conversacional
- conferência de criptografia ai
- dall's
- deep learning
- google ai
- Intermediário (200)
- aprendizado de máquina
- platão
- platão ai
- Inteligência de Dados Platão
- Jogo de Platão
- PlatãoData
- jogo de platô
- escala ai
- sintaxe
- zefirnet