O Amazon Machine Learning Solutions Lab (MLSL) criou recentemente uma ferramenta para anotar texto com reconhecimento de entidade nomeada (NER) e rótulos de relacionamento usando Verdade no solo do Amazon SageMaker. Os anotadores usam essa ferramenta para rotular texto com entidades nomeadas e vincular seus relacionamentos, criando assim um conjunto de dados para treinar modelos de aprendizado de máquina (ML) de processamento de linguagem natural (NLP) de última geração. Mais importante, isso agora está disponível publicamente para todos os clientes da AWS.
Caso de uso do cliente: Booking.com
Booking.com é uma das principais plataformas de viagens online do mundo. Compreender o que os clientes estão dizendo sobre os mais de 28 milhões de anúncios de propriedades da empresa na plataforma é essencial para manter uma experiência de alto nível para o cliente. Anteriormente, a Booking.com só podia utilizar a análise tradicional de sentimentos para interpretar em escala as avaliações geradas pelos clientes. Procurando atualizar a especificidade dessas interpretações, a Booking.com recentemente recorreu à MLSL para obter ajuda na construção de um conjunto de dados anotado personalizado para treinar um modelo de análise de sentimentos baseado em aspectos.
A análise de sentimento tradicional é o processo de classificar um pedaço de texto como positivo, negativo ou neutro como um sentimento singular. Isso funciona para entender amplamente se os usuários estão satisfeitos ou insatisfeitos com uma experiência específica. Por exemplo, com a análise de sentimento tradicional, o texto a seguir pode ser classificado como “neutro”:
Nossa estadia no hotel foi boa. A equipe foi amigável e os quartos eram limpos, mas nossas camas eram bastante desconfortáveis.
A análise de sentimentos baseada em aspectos oferece uma compreensão mais sutil do conteúdo. No caso da Booking.com, em vez de considerar uma avaliação de cliente como um todo e classificá-la categoricamente, ela pode extrair o sentimento de uma avaliação e atribuí-lo a aspectos específicos. Por exemplo, as avaliações dos clientes de um determinado hotel podem elogiar a piscina imaculada e a área de ginástica, mas fornecer feedback crítico sobre o restaurante e o lounge.
A declaração que teria sido classificada como “neutra” pela análise de sentimento tradicional, com a análise de sentimento baseada em aspectos, se tornará:
Nossa estadia no hotel foi boa. A equipe foi amigável e os quartos eram limpos, mas nossas camas eram bastante desconfortáveis.
- Hotel: Positivo
- Pessoal: Positivo
- Quarto: Positivo
- Camas: Negativas
A Booking.com procurou construir um modelo personalizado de análise de sentimentos baseado em aspectos que informasse quais partes específicas da experiência do hóspede (de uma lista de mais de 50 aspectos) foram positivo, negativoou neutro.
Antes que a Booking.com pudesse criar um conjunto de dados de treinamento para esse modelo, eles precisavam de uma maneira de anotá-lo. A ferramenta de anotação da MLSL forneceu a solução personalizada necessária. A revisão humana foi realizada em uma grande coleção de avaliações de hotéis. Em seguida, os anotadores concluíram a anotação de entidade nomeada nos períodos e frases de texto de sentimento e experiência do hóspede antes de vincular os períodos apropriados.
O novo modelo baseado em aspectos permite que a Booking.com personalize tanto as acomodações quanto as avaliações para seus clientes. Destacar os aspectos positivos e negativos de cada alojamento permite ao cliente escolher o seu par perfeito. Além disso, diferentes clientes se preocupam com diferentes aspectos da acomodação, e o novo modelo abre a oportunidade de mostrar as avaliações mais relevantes para cada um.
Requisitos de rotulagem
Embora o Ground Truth forneça um recurso interno de anotação de texto NER, ele não fornece a capacidade de vincular entidades. Com isso em mente, Booking.com e MLSL elaboraram os seguintes requisitos de alto nível para uma nova ferramenta de rotulagem de texto de reconhecimento de entidade nomeada que:
- Aceita como entrada: texto, rótulos de entidade, rótulos de relacionamento e rótulos de classificação.
- Opcionalmente, aceita como entrada dados pré-anotados com o rótulo anterior e anotações de relacionamento.
- Apresenta o anotador com texto não anotado ou pré-anotado.
- Permite que os anotadores destaquem e anotem texto arbitrário com um rótulo de entidade.
- Permite que anotadores criem relacionamentos entre duas anotações de entidade.
- Permite que os anotadores naveguem facilmente por um grande número de rótulos de entidade.
- Suporta o agrupamento de rótulos de entidade em categorias.
- Permitir relacionamentos sobrepostos, o que significa que o mesmo segmento de texto anotado pode estar relacionado a mais de um outro segmento de texto anotado.
- Permite anotações de rótulos de entidades sobrepostas, o que significa que duas anotações podem sobrepor o mesmo texto. Por exemplo, o texto “Seattle Space Needle” pode ter as anotações “Seattle” → “locais” e “Seattle Space Needle” → “atrações”.
- O formato de saída é compatível com o formato de entrada e pode ser realimentado em tarefas de rotulagem subsequentes.
- Suporta texto codificado em UTF-8 contendo emoji e outros caracteres multibyte.
- Suporta idiomas da esquerda para a direita.
Anotação de Amostra
Considere o seguinte documento:
Adoramos a localização deste hotel! O lounge da cobertura nos deu a visão perfeita da agulha espacial. Também fica a uma curta distância de carro do mercado pike place e da orla.
A comida só estava disponível através do serviço de quarto, o que foi um pouco decepcionante, mas faz sentido neste mundo pós-pandemia.
No geral, uma experiência com preços razoáveis.
Carregar este documento na nova anotação NER apresenta um trabalhador com a seguinte interface:
Neste caso, o trabalho do trabalhador é:
- Identifique entidades relacionadas à propriedade (localização, preço, alimentação, etc.)
- Identifique entidades relacionadas ao sentimento (positivo, negativo ou neutro)
- Vincule entidades nomeadas relacionadas à propriedade a palavras-chave relacionadas a sentimentos para capturar com precisão a experiência do hóspede
A velocidade de anotação foi uma consideração importante da ferramenta. Usando uma sequência de atalhos de teclado intuitivos e gestos do mouse, os anotadores podem conduzir a interface e:
- Adicionar e remover anotações de entidade nomeada
- Adicionar relacionamentos entre entidades nomeadas
- Ir para o início e o fim do documento
- Envie o documento
Além disso, há suporte para rótulos sobrepostos. Por exemplo, Seattle Space Needle
: nesta frase, Seattle
é anotado como um local por si só e como parte do nome da atração.
A anotação concluída fornece uma análise mais completa e diferenciada dos dados:
Os relacionamentos podem ser configurados em vários níveis, de categorias de entidade a outras categorias de entidade (por exemplo, de “comida” a “sentimento”) ou entre tipos de entidade individuais. Os relacionamentos são direcionados, de modo que os anotadores podem vincular um aspecto como comida a um sentimento, mas não vice-versa (a menos que explicitamente habilitado). Ao desenhar relações, a ferramenta de anotação deduzirá automaticamente o rótulo e a direção da relação.
Configurando a Ferramenta de Anotação NER
Nesta seção, abordamos como personalizar a ferramenta de anotação NER para casos de uso específicos do cliente. Isso inclui configurar:
- O texto de entrada para anotar
- Rótulos de entidade
- Rótulos de relacionamento
- Etiquetas de classificação
- Dados pré-anotados
- Instruções do trabalhador
Abordaremos as especificidades dos formatos de documentos de entrada e saída, além de fornecer alguns exemplos de cada um.
Formato do documento de entrada
A ferramenta de anotação NER espera o seguinte documento de entrada formatado em JSON (os campos com um ponto de interrogação ao lado do nome são opcionais).
Em poucas palavras, o formato de entrada tem estas características:
- Ambas
entityLabels
orclassificationLabels
(ou ambos) são obrigados a anotar. - If
entityLabels
são dados, entãorelationshipLabels
pode ser adicionado. - Os relacionamentos podem ser permitidos entre diferentes rótulos de entidade/categoria ou uma mistura deles.
- A “fonte” de um relacionamento é a entidade com a qual a seta direcionada começa, enquanto o “alvo” é para onde ela está indo.
Campo | Formato | Descrição |
texto | corda | Requerido. Texto de entrada para anotação. |
tokenRows | fragmento[][] | Opcional. Tokenização personalizada do texto de entrada. Matriz de matrizes de strings. A matriz de nível superior representa cada linha de texto (quebras de linha) e a matriz de segundo nível representa os tokens em cada linha. Todos os caracteres/runas no texto de entrada devem ser contabilizados em tokenRows, incluindo qualquer espaço em branco. |
id do documento | corda | Opcional. Valor opcional para os clientes acompanharem o documento que está sendo anotado. |
rótulos de entidade | objeto [] | Obrigatório se a classificaçãoLabels estiver em branco. Matriz de rótulos de entidade. |
entityLabels[].nome | corda | Requerido. Nome de exibição do rótulo da entidade. |
entityLabels[].categoria | corda | Opcional. Nome da categoria do rótulo da entidade. |
entidadeLabels[].shortName | corda | Opcional. Exiba este texto sobre entidades anotadas em vez do nome completo. |
entidadeLabels[].shortCategory | corda | Opcional. Exiba este texto na lista suspensa de seleção de anotação da entidade em vez das primeiras quatro letras do nome da categoria. |
entidadeLabels.color | corda | Opcional. Código de cor hexadecimal com prefixo “#”. Se estiver em branco, ele atribuirá automaticamente uma cor ao rótulo da entidade. |
Rótulos de relacionamento | objeto [] | Opcional. Matriz de rótulos de relacionamento. |
relacionamentoLabels[].name | corda | Requerido. Nome de exibição do rótulo de relacionamento. |
RelationshipLabels[].allowedRelationships | objeto [] | Opcional. Matriz de valores que restringem a quais tipos de rótulos de entidade de origem e destino esse relacionamento pode ser atribuído. Cada item na matriz é "OR'ed" em conjunto. |
relacionamentoLabels[].allowedRelationships[].sourceEntityLabelCategories | corda[] | Necessário para definir sourceEntityLabelCategories ou sourceEntityLabels (ou ambos). Lista de tipos de categoria de rótulo de entidade de origem legal para esse relacionamento. |
relacionamentoLabels[].allowedRelationships[].targetEntityLabelCategories | corda[] | Necessário para definir targetEntityLabelCategories ou targetEntityLabels (ou ambos). Lista de tipos de categoria de rótulo de entidade de destino legal para esse relacionamento. |
RelationshipLabels[].allowedRelationships[].sourceEntityLabels | corda[] | Necessário para definir sourceEntityLabelCategories ou sourceEntityLabels (ou ambos). Lista de tipos de rótulo de entidade de origem legal para esse relacionamento. |
RelationshipLabels[].allowedRelationships[].sourceEntityLabels | corda[] | Necessário para definir targetEntityLabelCategories ou targetEntityLabels (ou ambos). Lista de tipos de rótulo de entidade de destino legal para esse relacionamento. |
classificaçãoEtiquetas | corda[] | Obrigatório se entityLabels estiver em branco. Lista de rótulos de classificação em nível de documento. |
entidadeAnotações | objeto [] | Opcional. Matriz de anotações de entidade para pré-anotar o texto de entrada. |
entidadeAnnotations[].id | corda | Requerido. Identificador exclusivo para esta anotação de entidade. Usado para referenciar esta entidade em relacionamentoAnnotations. |
entidadeAnnotations[].start | número | Requerido. Comece o deslocamento da runa desta anotação de entidade. |
entidadeAnnotations[].end | número | Requerido. Deslocamento de runa final desta anotação de entidade. |
entidadeAnnotations[].texto | corda | Requerido. Conteúdo de texto entre o deslocamento da runa inicial e final. |
entidadeAnnotations[].label | corda | Requerido. Nome do rótulo da entidade associada (dos nomes em entityLabels). |
entidadeAnnotations[].labelCategory | corda | Opcional.Categoria de rótulo de entidade associada (das categorias em entityLabels). |
relacionamentoAnotações | objeto [] | Opcional. Matriz de anotações de relacionamento. |
relacionamentoAnnotations[].sourceEntityAnnotationId | corda | Requerido. ID da anotação da entidade de origem para este relacionamento. |
relacionamentoAnnotations[].targetEntityAnnotationId | corda | Requerido. ID de anotação da entidade de destino para este relacionamento. |
relacionamentoAnotações[].rótulo | corda | Requerido. Nome do rótulo de relacionamento associado. |
classificaçãoAnotações | corda[] | Opcional. Matriz de classificações para pré-anotar o documento. |
objetivo | objeto | Opcional. Parâmetros de configuração adicionais. |
meta.instruções | corda | Opcional. Instruções para o anotador de rotulagem no formato Markdown. |
meta.disableSubmitConfirmation | booleano | Opcional. Defina como true para desabilitar o modal de confirmação de envio. |
meta.multiClassificação | booleano | Opcional. Defina como true para habilitar o modo de vários rótulos para classificaçãoLabels. |
Aqui estão alguns documentos de amostra para entender melhor esse formato de entrada
Os documentos que aderem a esse esquema são fornecidos ao Ground Truth como itens de linha individuais em um manifesto de entrada.
Formato do Documento de Saída
O formato de saída foi projetado para fornecer feedback facilmente em uma nova tarefa de anotação. Os campos opcionais no documento de saída são definidos se também estiverem definidos no documento de entrada. A única diferença entre os formatos de entrada e saída é o meta
objeto.
Campo | Formato | Descrição |
meta.rejeitado | booleano | É definido como verdadeiro se o anotador rejeitou este documento. |
meta.rejectedMotivo | corda | Motivo do anotador dado para rejeitar o documento. |
meta.runas | corda[] | Matriz de runas representando todos os caracteres no texto de entrada. Usado para calcular os deslocamentos inicial e final da anotação da entidade. |
Aqui está um documento de saída de amostra que foi anotado:
Nota das runas:
Uma “runa” neste contexto é um único caractere que pode ser destacado no texto, incluindo caracteres de vários bytes, como emoji.
- Como diferentes linguagens de programação representam caracteres de vários bytes de maneira diferente, usar “Runas” para definir cada caractere realizável como um único elemento atômico significa que temos uma maneira inequívoca de descrever qualquer seleção de texto.
- Por exemplo, Python trata a bandeira sueca como quatro caracteres:
Mas o JavaScript trata o mesmo emoji como dois caracteres
Para eliminar qualquer ambiguidade, trataremos a bandeira sueca (e todos os outros caracteres emoji e multibyte) como um único elemento atômico.
- Offset: Posição da runa em relação ao texto de entrada (começando com o índice 0)
Executando anotações NER com Ground Truth
Como um serviço de rotulagem de dados totalmente gerenciado, o Ground Truth cria conjuntos de dados de treinamento para ML. Para este caso de uso, usamos o Ground Truth para enviar uma coleção de documentos de texto a um pool de workers para anotação. Por fim, analisamos a qualidade.
O Ground Truth pode ser configurado para criar um trabalho de rotulagem de dados usando a nova ferramenta NER como um modelo personalizado.
Especificamente, iremos:
- Crie uma força de trabalho de rotulagem privada de trabalhadores para executar a tarefa de anotação
- Crie um manifesto de entrada do Ground Truth com os documentos que queremos anotar e, em seguida, carregue-o para Serviço de armazenamento simples da Amazon (Amazon S3)
- Criar tarefas de pré-rotulagem e tarefas de pós-rotulagem de funções do Lambda
- Crie um trabalho de rotulagem do Ground Truth usando o modelo NER personalizado
- Anotar documentos
- Resultados da revisão
Recursos da ferramenta NER
Uma lista completa de recursos referenciados e documentos de amostra pode ser encontrada no gráfico a seguir:
Criação de força de trabalho de rotulagem
O Ground Truth usa as forças de trabalho de rotulagem do SageMaker para gerenciar trabalhadores e distribuir tarefas. Crie uma força de trabalho privada, uma equipe de trabalho chamada ner-worker-team, e atribua-se à equipe usando as instruções encontradas em Crie uma força de trabalho privada (Amazon SageMaker Console).
Depois de se adicionar a uma força de trabalho privada e confirmar seu e-mail, observe a URL do portal do trabalhador no Console de gerenciamento da AWS:
- Navegar para
SageMaker
- Navegar para
Ground Truth → Labeling workforces
- Selecione os
Private
aba - Anote o URL
Labeling portal sign-in URL
Efetue login no portal do trabalhador para visualizar e começar a trabalhar nas tarefas de rotulagem.
Manifesto de entrada
O manifesto de dados de entrada do Ground Truth é um arquivo de linhas JSON em que cada linha contém uma única tarefa de trabalho. No nosso caso, cada linha conterá um único documento de entrada codificado em JSON contendo o texto que queremos anotar e o esquema de anotação NER.
Baixe um manifesto de entrada de amostra reviews.manifest
da https://assets.solutions-lab.ml/NER/0.2.1/sample-data/reviews.manifest
Note: cada linha no manifesto de entrada precisa de uma chave de nível superior source
or source-ref
. Você pode aprender mais em Use um arquivo de manifesto de entrada no Guia do desenvolvedor do Amazon SageMaker.
Carregar manifesto de entrada para o Amazon S3
Faça upload desse manifesto de entrada para um bucket do S3 usando o Console de gerenciamento da AWS ou a partir da linha de comando, substituindo assim your-bucket
com um nome de bucket real.
Baixar modelo de trabalhador personalizado
Faça o download do modelo de trabalhador personalizado da ferramenta NER em https://assets.solutions-lab.ml/NER/0.2.1/worker-template.liquid.html visualizando a fonte e salvando o conteúdo localmente ou a partir da linha de comando:
Criar tarefas de pré-rotulagem e tarefas de pós-rotulagem de funções do Lambda
Faça o download da função Lambda da tarefa de pré-rotulagem de amostra: smgt-ner-pre-labeling-task-lambda.py
da https://assets.solutions-lab.ml/NER/0.2.1/sample-scripts/smgt-ner-pre-labeling-task-lambda.py
Faça o download da função Lambda da tarefa de pré-rotulagem de amostra: smgt-ner-post-labeling-task-lambda.py
da https://assets.solutions-lab.ml/NER/0.2.1/sample-scripts/smgt-ner-post-labeling-task-lambda.py
- Crie a função Lambda da tarefa de pré-rotulagem no Console de gerenciamento da AWS:
- Navegar para
Lambda
- Selecionar
Create function
- Especificar
Function name
assmgt-ner-pre-labeling-task-lambda
- Selecionar
Runtime
→Python 3.6
- Selecionar
Create function
- In
Function code
→lambda_hanadler.py
, cole o conteúdo desmgt-ner-pre-labeling-task-lambda.py
- Selecionar
Deploy
- Navegar para
- Crie a função Lambda da tarefa de pós-rotulagem no Console de gerenciamento da AWS:
- Navegar para
Lambda
- Selecionar
Create function
- Especificar
Function name
assmgt-ner-post-labeling-task-lambda
- Selecionar
Runtime
→Python 3.6
- Expandir
Change default execution role
- Selecionar
Create a new role from AWS policy templates
- Introduzir o
Role name
:smgt-ner-post-labeling-task-lambda-role
- Selecionar
Create function
- Selecione os
Permissions
aba - Selecione os
Role name
:smgt-ner-post-labeling-task-lambda-role
para abrir o console do IAM - Adicionar duas políticas à função
- Selecionar
Attach policies
- Anexar o
AmazonS3FullAccess
Privacidade - Selecionar
Add inline policy
- Selecione os
JSON
aba - Cole a seguinte política em linha:
- Selecionar
- Navegue de volta para o
smgt-ner-post-labeling-task-lambda
Página de configuração da função Lambda - Selecione os
Configuration
aba - In
Function code
→ euambda_hanadler.py
, cole o conteúdo desmgt-ner-post-labeling-task-lambda.py
- Selecionar
Deploy
- Navegar para
Criar um trabalho de rotulagem do Ground Truth
No Console de gerenciamento da AWS:
- Navegue até a
Amazon SageMaker
serviço - Navegar para
Ground Truth
→Labeling Jobs
. - Selecionar
Create labeling job
- Especifique um
Job Name
- Selecionar
Manual Data Setup
- Especifique o local do conjunto de dados de entrada onde você carregou o manifesto de entrada anteriormente (por exemplo, s
3://your-bucket/ner-input/sample-smgt-input-manifest.jsonl
) - Especifique o local do conjunto de dados de saída para apontar para uma pasta diferente no mesmo bucket (por exemplo,
s3://your-bucket/ner-output/
) - Especifique um
IAM Role
selecionandoCreate new role
- Permita que esta função acesse qualquer bucket do S3 selecionando
S3 buckets you specify
→Any S3 bucket
ao criar a política - Em uma nova janela do AWS Management Console, abra o
IAM
console e selecioneRoles
- Procure o nome da função que você acabou de criar (por exemplo,
AmazonSageMaker-ExecutionRole-20210301T154158
) - Selecione o nome da função para abrir a função no console
- Anexe as três políticas a seguir:
- Selecione Anexar políticas
- Anexar o
AWSLambda_FullAccess
para o papel - Selecionar
Trust Relationships
→Edit Trust Relationships
- Edite o JSON da relação de confiança,
- Substituir
YOUR_ACCOUNT_NUMBER
com o número numérico da sua conta da AWS, para ler: - Salve a relação de confiança
- Permita que esta função acesse qualquer bucket do S3 selecionando
- Retorne ao novo trabalho do Ground Truth na janela anterior do Console de gerenciamento da AWS: em
Task Category
, selecioneCustom
- Selecionar
Next
- Selecionar
Worker types
:Private
- Selecione os
Private team
:ner-worker-team
que foi criado na seção anterior - No
Custom labeling task setup
área de texto, limpe o conteúdo padrão e cole no conteúdo daworker-template.liquid.html
arquivo obtido anteriormente - Especifique o
Pre-labeling task Lambda function
com a função criada anteriormente:smgt-ner-pre-labeling
- Especifique o
Post-labeling task Lambda function
com a função criada anteriormente:smgt-ner-post-labeling
- Selecionar
Create
Anotar documentos
Depois que o trabalho do Ground Truth for criado, podemos começar a anotar os documentos. Abra o portal do trabalhador para nossa força de trabalho criado anteriormente (no AWS Management Console, navegue até o SageMaker
, Ground Truth → Labeling workforces
, Private
, e abra o Labeling portal sign-in URL
)
Entre e selecione a primeira tarefa de rotulagem na tabela e, em seguida, selecione “Começar a trabalhar” para abrir o anotador. Realize suas anotações e selecione enviar em todos os três documentos de amostra.
Resultados da revisão
À medida que os anotadores do Ground Truth concluem as tarefas, os resultados estarão disponíveis no bucket de saída do S3:
Quando todas as tarefas de um trabalho de rotulagem estiverem concluídas, a saída consolidada estará disponível no output.manifest
arquivo localizado aqui:
Este manifesto de saída é um arquivo de linhas JSON com um documento de texto anotado por linha no “Formato do documento de saída” especificado anteriormente. Este arquivo é compatível com o “Input Document Format” e pode ser alimentado diretamente em um trabalho subsequente do Ground Truth para outra rodada de anotação. Como alternativa, ele pode ser analisado e enviado para um trabalho de treinamento de ML. Alguns cenários em que podemos empregar uma segunda rodada de anotações são:
- Quebrando o processo de anotação em duas etapas, onde o primeiro anotador identifica as anotações de entidade e o segundo anotador desenha relacionamentos
- Tomando uma amostra do nosso
output.manifest
e enviá-lo para um segundo anotador mais experiente para revisão como verificação de controle de qualidade
Modelos de anotação de verdade do terreno personalizados
A ferramenta de anotação NER descrita neste documento é implementada como um modelo de anotação personalizado do Ground Truth. Os clientes da AWS podem criar suas próprias interfaces de anotação personalizadas usando as instruções encontradas aqui:
Conclusão
Trabalhando juntos, a Booking.com e a Amazon MLSL conseguiram desenvolver uma poderosa ferramenta de anotação de texto capaz de criar reconhecimento de entidade nomeada complexa e anotações de relacionamento.
Incentivamos os clientes da AWS com um caso de uso de anotação de texto NER a experimentar a ferramenta descrita nesta postagem. Se você quiser ajudar a acelerar o uso do ML em seus produtos e serviços, entre em contato com o Laboratório de soluções de aprendizado de máquina da Amazon.
Sobre os autores
dan nobre é engenheiro de desenvolvimento de software na Amazon, onde ajuda a criar experiências de usuário agradáveis. Nas horas vagas, gosta de ler, se exercitar e se aventurar com a família.
Pri Nonis é um Deep Learning Architect no Amazon ML Solutions Lab, onde trabalha com clientes em várias verticais e os ajuda a acelerar sua jornada de migração para a nuvem e a resolver seus problemas de ML usando soluções e tecnologias de última geração.
Niharika Jayanthi é engenheira de front-end na AWS, onde desenvolve soluções de anotações personalizadas para clientes do Amazon SageMaker. Fora do trabalho, ela gosta de ir a museus e malhar.
Amit Beka é gerente de aprendizado de máquina na Booking.com, com mais de 15 anos de experiência em desenvolvimento de software e aprendizado de máquina. Ele é fascinado por pessoas e idiomas, e como os computadores ainda estão intrigados com ambos.
- '
- 100
- 11
- 7
- Sobre
- Acesso
- Conta
- Contabilidade
- em
- Açao Social
- Adição
- Adicional
- Todos os Produtos
- Amazon
- Aprendizado de máquina da Amazon
- Amazon Sage Maker
- Ambiguidade
- análise
- ÁREA
- disponível
- Disponível para todos
- AWS
- Começo
- ser
- construir
- Prédio
- Cuidado
- casos
- classificação
- Na nuvem
- código
- coleção
- integrações
- computadores
- Configuração
- consideração
- cônsul
- conteúdo
- conteúdo
- poderia
- Criar
- crítico
- experiência do cliente
- Clientes
- dados,
- deep learning
- desenvolver
- Developer
- Desenvolvimento
- diferente
- INSTITUCIONAIS
- Não faz
- facilmente
- efeito
- Emoji
- encorajar
- engenheiro
- etc.
- exemplo
- execução
- espera
- vasta experiência
- Experiências
- família
- Alimentado
- retornos
- Campos
- Finalmente
- Primeiro nome
- fitness
- comida
- formato
- encontrado
- cheio
- função
- gif
- vai
- Locatário
- guia
- ajudar
- ajuda
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Destaques
- hotel
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- IAM
- implementado
- importante
- Incluindo
- índice
- Individual
- IT
- JavaScript
- Trabalho
- viagem
- Chave
- marcação
- Rótulos
- língua
- Idiomas
- grande
- principal
- APRENDER
- aprendizagem
- Legal
- Nível
- níveis
- Line
- LINK
- Líquido
- Lista
- Anúncios
- localmente
- localização
- procurando
- aprendizado de máquina
- de grupos
- marca
- mercado
- Match
- Meta
- mente
- ML
- modelo
- mais
- Museus
- nomes
- Linguagem Natural
- Processamento de linguagem natural
- necessário
- PNL
- números
- Oferece
- compensar
- online
- aberto
- abre
- Oportunidade
- Outros
- Pessoas
- Frases
- plataforma
- Plataformas
- políticas
- Privacidade
- piscina
- Portal
- pós-pandemia
- poderoso
- preço
- Diretor
- privado
- processo
- Produtos
- Programação
- linguagens de programação
- propriedade
- fornecer
- fornece
- Python
- qualidade
- questão
- Leitura
- Relacionamentos
- Requisitos
- recurso
- Recursos
- restaurante
- Resultados
- rever
- Opinões
- Quartos
- sábio
- poupança
- Escala
- sentido
- sentimento
- Serviços
- conjunto
- Baixo
- simples
- So
- Software
- desenvolvimento de software
- Soluções
- RESOLVER
- Espaço
- velocidade
- começo
- Declaração
- ficar
- armazenamento
- ajuda
- Target
- Tecnologias
- A fonte
- tempo
- juntos
- tokenization
- Tokens
- ferramenta
- topo
- nível superior
- pista
- tradicional
- Training
- viagens
- tratar
- trata
- Confiança
- us
- usuários
- valor
- versão
- Ver
- O Quê
- dentro
- Atividades:
- trabalhou
- trabalhadores
- Força de trabalho
- trabalhar
- trabalhando fora
- trabalho
- mundo
- do mundo
- seria
- anos