Boas-vindas ao curso NLP: tradução e resumo de textos utilizando Hugging Face e Gradio.
Meu nome é Marcelo Cruz, sou instrutor na Escola de Dados e vou acompanhar você durante este curso.
Audiodescrição: Marcelo é uma pessoa de pele clara, com cabelos e barba escuros e veste uma camisa preta. Atrás dele há uma parece branca.
Este curso foi desenvolvido para você que deseja dar o próximo passo na sua carreira e ampliar seus conhecimentos com o Hugging Face e com o Gradio.
Durante o curso, vamos criar uma aplicação para resumir e traduzir textos.
A ideia é ajudar Amanda, uma estudante de ciências de dados, que deseja consumir conteúdos escritos disponíveis em blogs, publicações e artigos, pois ela não tem muito tempo disponível.
Para fazer isso, vamos utilizar modelos pré-treinados de NLP disponíveis na plataforma Hugging Face.
Para criar nossa aplicação, vamos utilizar uma biblioteca chamada Gradio.
Para que você possa tirar o máximo proveito do curso, teremos muitas atividades entre um vídeo e outro, como textos complementares, atividades práticas e muita mão na massa. Tudo para que você possa ter uma aprendizagem ativa.
O pré-requisito para este curso é o curso Hugging Face: explorando e aplicando soluções com modelos de IA.
Em caso de dúvidas, fique à vontade para usar o fórum e também participar da nossa comunidade no Discord. Lá você pode ter contato com outras pessoas estudantes e também com pessoas instrutoras.
Então, vamos começar?
A nossa personagem fictícia, chamada Amanda, está interessada em expandir seus conhecimentos na área de Ciência de Dados e, para isso, realiza diversas leituras semanais.
Ela lê publicações online, artigos, blogs, fóruns e tudo o que pode sobre esses assuntos durante a semana. Porém, atualmente, ela não tem muito tempo para ler todo esse conteúdo.
Pensando nisso, nosso objetivo durante o curso será desenvolver uma aplicação utilizando Inteligência Artificial para ajudar a resumir esses textos que Amanda precisa ler.
Para isso, vamos utilizar modelos pré-treinados da biblioteca Hugging Face para ajudar a resumir todo esse conteúdo.
Já estamos no nosso ambiente, que é o Google Colab, e é ele que vamos utilizar durante todo o projeto do curso. Já configuramos algumas coisas no Markdown, como o nome da nossa aula e a parte que vamos começar agora.
Para começarmos a desenvolver nosso projeto, vamos utilizar uma biblioteca chamada Transformers
, que é disponibilizada pelo Hugging Face. Vamos instalar a biblioteca:
!pip install transformers
No meu caso, como já tenho ela instalada, será um processo mais rápido, pois já vai identificar que tenho aqui configurado.
Da biblioteca Transformers
, vamos utilizar uma função específica para carregar os modelos. Essa função se chama Pipeline
, então é isso que vamos fazer agora.
from transformers import pipeline
Com essa função Pipeline
, poderemos acessar os modelos pré-treinados do Hugging Face.
Como podemos utilizar essa função? Ela é bem simples, então vamos chamar o nosso objeto de resumidor_texto
, por exemplo. E dentro dos parênteses do Pipeline
, vamos chamar as aspas duplas. Dentro das aspas, vamos dizer qual tarefa queremos executar.
Nesse caso, queremos fazer uma tradução. Então, para realizar uma tradução, temos que colocar o Summarization
. Essa é a tarefa que queremos realizar. Ele vai entender que queremos acessar essa tarefa e vai armazenar isso dentro do resumidor.
resumidor_texto = pipeline("summarization")
Como não fornecemos nenhum modelo específico para ele, ele avisa aqui que vai usar o padrão, que, no caso, é o distilbart-cnn-12-6
.
No model was supplied, defaulted to sshleifer/distilbart-cnn-12-6 and revision a4f8f3e (https://huggingface.co/sshleifer/distilbart-cnn-12-6). Using a pipeline without specifying a model name and revision in production is not recommended.
Agora que já temos o nosso resumidor pronto, vamos utilizar um exemplo de texto para resumir.
Logo abaixo, vamos criar uma nova célula. Vamos colar o nosso texto de exemplo, que, no caso, fala sobre inteligência artificial, que é como funciona um texto um pouco curto para testar.
texto_exemplo = """
A inteligência artificial (IA) é uma área da ciência da computação que enfatiza a criação de máquinas inteligentes que trabalham e reagem como seres humanos.
Algumas das atividades que os computadores com inteligência artificial são
projetados para fazer incluem: reconhecimento de fala, aprendizado, planejamento e resolução de problemas. A pesquisa associada à inteligência artificial é altamente técnica e especializada.Os principais problemas da inteligência artificial incluem programação de computadores para certos traços como conhecimento,
raciocínio, solução de problemas, percepção, aprendizado, planejamento, habilidade
de manipular e mover objetos.
"""
Vamos obter a saída desse texto com o resumo pronto.
resumo = resumidor_texto(texto_exemplo, max_length = 120, min_length = 70)
Dentro dos parênteses do resumidor_texto
, passamos os parâmetros para gerar esse resumo. O primeiro que passamos é o texto que vamos utilizar. Nesse caso, é a variável texto_exemplo
. Em seguida, passamos o tamanho máximo e mínimo de tokens.
Os tokens são a forma que o modelo consegue configurar, pegar essas palavras e transformar nesse texto. Ele separa essas palavras em pequenas partes para entender e traduzir de uma forma que consiga resumir e voltar para nós o nosso texto.
Podemos entender esses tokens como se fossem palavras ou partes dessas palavras que o modelo separa para depois fazer o resumo e retornar esse resumo para nós.
Então, o tamanho máximo que podemos definir para o token do nosso resumo pode ser 120. E o mínimo será 70.
Com o código executado, podemos exibir o valor do resumo que foi gerado a partir desse texto.
Então, vamos chamar o resumo
.
resumo
{'summary_text': ' A inteligência artificial (IA) enfatiza criação de máquinas inteligentes that trabalham e reagem como seres humanos . Algumas das atividades that os computadores com IAI são projetados para fazer incluem: reconhecimento de fala, aprendizado, planejamento, resolução of problemas .'}
para exibir apenas o texto, podemos usar o seguinte:
print(resumo[0]['summary_text'])
A inteligência artificial (IA) enfatiza criação de máquinas inteligentes that trabalham e reagem como seres humanos . Algumas das atividades that os computadores com IAI são projetados para fazer incluem: reconhecimento de fala, aprendizado, planejamento, resolução of problemas.
Podemos ler agora para ver se realmente ele conseguiu resumir bem o texto que passamos para ele.
Percebemos um detalhe que esse resumo fez. Ele está misturando algumas palavras em inglês com português.
Acontece é que alguns modelos, como esse padrão que já vem no Summarization
do Pipeline
, não foram treinados com algumas outros idiomas como o português, e ele acaba misturando.
Podemos fazer um teste agora com esse mesmo texto em inglês para verificar como ele vai fazer esse resumo.
texto_ingles = """
Artificial intelligence (AI) is a field of computer science that emphasizes the
creation of intelligent machines that work and react like humans. Some of the
activities that computers with artificial intelligence are designed to perform
include speech recognition, learning, planning, and problem-solving. Research
associated with artificial intelligence is highly technical and specialized.
The main problems of artificial intelligence include programming computers for
certain traits such as knowledge, reasoning, problem-solving, perception,
learning, planning, and the ability to manipulate and move objects.
"""
resumo_ingles = resumidor_texto(texto_ingles, max_length = 120, min_length = 70)
print(resumo_ingles[0]['summary_text'])
Artificial intelligence (AI) is a field of computer science that emphasizes the creation of intelligent machines that work and react like humans. The main problems of artificial intelligence include programming computers for certain traits such as knowledge, reasoning, problem-solving, perception, learning, planning, and the ability to manipulate and move objects. Research with artificial intelligence is highly technical and specialized.
Podemos verificar que ele está fazendo o mesmo texto que fizemos anteriormente. Mas não misturou nenhuma palavra em português.
Isso acontece com alguns modelos que não são específicos para algumas linguagens. Nesse caso, ele funciona melhor apenas com o inglês.
Fizemos testes para resumir os textos em português. Verificamos que esse modelo não serve muito bem para o nosso caso, mas podemos trabalhar isso em breve.
Podemos verificar também como funciona a tradução de textos de um idioma para outro.É o que vamos fazer no próximo vídeo!
Além dos textos em Português que a Amanda já lê, existe muito material em outras línguas, principalmente em inglês, que ela pode consumir para a ciência de dados, que é o assunto de seu interesse no momento.
Como podemos encontrar uma forma de utilizar esses modelos de IA para, além de resumir, traduzir textos do inglês para o português?
Para isso, vamos seguir a mesma ideia que fizemos anteriormente.
Vamos criar um subtópico chamado "Começando a traduzir textos", para organizarmos o nosso projeto. No código, vamos criar o nosso objeto tradutor-texto
, e na função pipeline
, vamos passar uma nova tarefa.
Anteriormente chamamos de summarization
, porque queríamos fazer um resumo, agora queremos fazer uma tradução.
Porém, não podemos colocar simplesmente translation
, porque o modelo que vem por padrão no pipeline
precisa que especifiquemos no nome da tarefa, de qual língua queremos traduzir para qual. No caso, queremos traduzir do inglês para o português.
Porém, esse modelo padrão que vem no pipeline
de tradução, não suporta a língua portuguesa, ele só tem algumas outras opções, como inglês e o francês. Então, para testarmos esse modelo, vamos traduzir um texto do inglês para o francês.
Depois de translation
, vamos indicar qual língua queremos traduzir. Então, vamos colocar inglês, que é o EN
, para francês, que é o FR
. Dessa forma, ele vai entender que queremos traduzir um texto do inglês para o francês.
tradutor_texto = pipeline("translation_en_to_fr")
Após executar o código para gerar o nosso tradutor de texto, vamos fazer o mesmo processo que fizemos anteriormente. Colar o nosso texto em inglês.
texto_ingles = """
Artificial intelligence (AI) is a field of computer science that emphasizes the
creation of intelligent machines that work and react like humans. Some of the
activities that computers with artificial intelligence are designed to perform
include speech recognition, learning, planning, and problem-solving.
"""
Agora, podemos usar esse texto para conseguir a tradução dele para o francês.
Vamos chamar a variável de traducao
, e chamar o nosso tradutor_texto
, em seguida vamos definir os argumentos, os parâmetros que fizemos anteriormente com o resumo. Primeiramente, vamos passar o nosso texto em inglês, depois o tamanho máximo, que vai ser 400, e o nosso tamanho mínimo, que vai ser de 100.
traducao = tradutor_texto(texto_ingles, max_length=400, min_length=100)
Nesse caso, colocamos um tamanho maior e menor de token para o tradutor, queremos garantir que ele faça a tradução do texto completo, não corte nenhuma parte do texto que passamos para ele.
Embaixo vamos exibir a tradução, assim como fizemos anteriormente. Podemos usar o print
para deixar a exibição mais bonita. Dessa forma, conseguimos traduzir todo aquele texto do inglês para o francês. Mesmo que não entendamos, podemos conferir algumas partes para garantir que está igual, ele não vai cortar nenhuma parte.
print(traducao[0]['translation_text'])
Com isso, conseguimos ter uma ideia do que podemos fazer com esses modelos de tradução e também de resumo.
Porém, utilizamos esses modelos que já vêm por padrão, e eles não fazem exatamente o que queremos para a Amanda.
Então, a ideia agora é que possamos escolher qual modelo queremos utilizar conforme as nossas necessidades. Lembre-se que nosso objetivo é ajudar a Amanda a traduzir textos do inglês para o português e ter esse texto resumido para ela. É isso que faremos na próxima aula!
O curso NLP: resumindo textos com Hugging Face e Gradio possui 113 minutos de vídeos, em um total de 46 atividades. Gostou? Conheça nossos outros cursos de IA para Dados em Inteligência Artificial, ou leia nossos artigos de Inteligência Artificial.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.