Boas vindas a mais um curso de Processamento de Linguagem Natural aqui na Plataforma Alura! Sou o instrutor Thiago Santos.
Em nossas aulas, construiremos um corretor ortográfico em português utilizando Python e aplicando técnicas de NLP.
Além disso, discutiremos diversos assuntos como a comunicação entre máquina e humano por exemplo, e verificaremos que não é feita de maneira direta, ou seja, há um intermediário que é justamente o Processamento de Linguagem Natural ou a sigla em inglês NLP.
Esta técnica tem diversas aplicações como os Assistentes Pessoais por exemplo; o Google Assistant, o Siri da Apple, Alexa e etc.
Também faremos a Análise de Sentimento; no caso da opinião de uma pessoa sobre um filme, conseguiremos avaliá-la como positiva ou negativa, os tradutores, e até o buscador do Google utiliza bastante estes recursos, bem como o corretor ortográfico que construiremos.
Para entendermos melhor sua utilidade, imaginemos a seguinte situação: temos uma palavra digitada equivocadamente, como “lgica” por exemplo. Precisaremos passá-la pelos algoritmos de NLP, o qual gerará e retornará a palavra correta, que neste caso é “lógica”.
Para criarmos o corretor, precisaremos de uma base de treinamento com um compilado de todos os artigos da Alura que temos. Porém, também avaliaremos se esta é adequada de fato.
Portanto, discutiremos as métricas que podem nos ajudar a descobrir se a base de dados é boa o suficiente para treinarmos o nosso modelo. Para isso, separaremos o corpus cheio de palavras de nosso texto em pequenas unidades chamados tokens.
Utilizaremos o nltk
para realizar o processo de separação do texto em pequenas strings
conhecido como tokenização. Em seguida, separaremos apenas as palavras desse tokens, formando uma lista.
Com isso, teremos uma quantidade e verificaremos quantos termos nosso algoritmo aprenderá de fato. Também normalizaremos o nosso texto, pois ainda possui palavras maiúsculas e minúsculas.
Em seguida, iniciaremos a construção do nosso corretor; iniciaremos inserindo letras, e sem querer digitamos uma letra a menos, então precisaremos inserir uma letra a mais.
Depois que construirmos esse algoritmo capaz de gerar as palavras com uma letra a mais, avaliaremos o nosso resultado.
Precisaremos de uma base de teste, que em nosso caso é a palavras.txt
, a qual contém a palavra digitada equivocadamente e a correta.
Feita a avaliação, chegaremos à conclusão de que apenas nosso algoritmo com uma letra a mais não está com o resultado muito bom, pois está corrigindo apenas 1% das palavras. Logo, precisaremos tornar o nosso algoritmo mais abrangente.
Para isso, implementaremos diversos outros algoritmos, como por exemplo deletando_caracteres()
, troca_letra()
, inverte_letra()
, e assim sucessivamente até chegarmos em um resultado satisfatório de aproximadamente 77% de acerto.
Depois, testaremos um gerador_turbinado()
e veremos sua performance. Tiraremos conclusões e compararemos os dois corretores, mesmo que este seja aparentemente muito mais robusto.
Ao final, realizaremos alguns testes para digitarmos uma palavra equivocadamente e verificarmos a saída.
Vamos lá!
Neste passo, entenderemos melhor o problema a ser resolvido no curso.
No navegador aberto, digitaremos “alura.com.br” para abrir a página principal da Alura, pois estamos interessados em um tema específico.
Imaginemos que estamos iniciando a nossa carreira e queremos pesquisar por cursos de lógica. Na parte superior da página, encontraremos alguns links e uma pequena lupa que representa a pesquisa. Clicando neste ícone, abriremos a barra de busca.
Então escreveremos “lógica” no campo de texto, afinal queremos descobrir todos os conteúdos deste tema que a Plataforma Alura oferece.
Após buscarmos, seremos direcionados para outra página onde encontraremos todos os resultados deste assunto, exatamente como precisávamos.
Imaginemos o caso de voltarmos para a barra de busca nesta mesma página, e sem querer digitarmos “lgica” ao invés de "lógica".
Com esta consulta, o site retornará a mensagem: “Nenhum resultado encontrado para ‘lgica’. Tente outra busca!”.
Como só deixamos de inserir apenas a letra "O" na palavra, seria interessante que uma sugestão de correção aparecesse para prosseguirmos com a pesquisa correta, como “você não quis dizer ‘lógica’?” por exemplo.
Já o buscador do Google faz exatamente isso; se digitarmos “lgica” na barra de busca da página principal de "google.com" e apertarmos a tecla "Enter" para pesquisarmos a palavra digitada erroneamente, receberemos uma mensagem indicando o erro de digitação e apresentando a palavra correta.
Para entendermos os mecanismos que realizam essa correção ortográfica, começaremos abordando a ciência do Processamento de Linguagem Natural.
A comunicação entre humano e máquina deverá ser de forma natural, e não via código, bytes e etc. Ou seja, queremos escrever ou dizer algo e receber uma resposta deste mesmo tipo.
Porém, isso não é feito de maneira direta, pois há um intermediário que ajudará a máquina a nos entender, e nos auxiliará a compreendê-la também.
Este intermediário é chamado de NLP, ou Processamento de Linguagem Natural em português. Esta ciência une linguística, computação e inteligência artificial, e é responsável por uma série de aplicações no nosso dia a dia, como os assistentes de voz Siri da Apple e o Alexa da Amazon.
Também lida com Análise de Sentimento, como em uma opinião sobre um filme ou uma review por exemplo, indicando se é positiva ou negativa. Já nos tradutores, teremos o conhecido Google Translation.
Poderemos encontrar estas técnicas em diversos buscadores como o Google, e nos chamados corretores ortográficos, a exemplo dos presentes em celulares que oferecem sugestões de correções ou previsões da palavra a ser escrita.
Portanto, o NLP é a ciência que envolve o entendimento entre a linguagem falada e a linguagem de máquina, dando o suporte para os corretores ortográficos.
Para entendermos como funciona, voltaremos à busca da palavra "lógica", porém digitamos "lgica" maneira equivocada. Ao realizarmos a pesquisa, mandaremos o termo errado e teremos um intermediário - que neste caso serão os modelos de Processamento de Linguagem Natural - que nos devolverá a mensagem “Você digitou ‘lgica’, porém você quis dizer ‘lógica’”.
Com isso, realizará a correção da palavra “lógica”.
Cientes disso, poderemos avançar para a construção de fato.
Iniciaremos a construção do corretor ortográfico.
O primeiro passo será abrir o ambiente de desenvolvimento, e neste caso utilizaremos o notebook do Google Colab acessível neste link.
Se tivermos uma conta no Gmail já logada no browser, abriremos automaticamente uma janela com várias opções mostrando os notebooks já existentes. Ao final da lista, teremos o link "New Python 3 Notebook" que abrirá um novo documento .ipynb
e o salvará no drive.
Clicaremos sobre o nome padrão automático e renomearemos esse notebook como Corretor.ipynb
. Com isso, teremos o ambiente para desenvolver nosso modelo capaz de realizar a correção ortográfica.
Sempre quando queremos aprender novos conhecimentos, buscamos mais informações sobre o assunto em livros, vídeos, cursos, palestras, aulas e etc. Para que nosso modelo corrija as palavras, precisaremos primeiro ensiná-lo a escrever através de um vocabulário que cresce conforme aprende.
Logo, iremos precisar de uma base de dados.
Porém, como estamos trabalhando com o buscador do site da Alura, seria interessante também que essa base de conhecimento tivesse termos mais técnicos da área.
A base de dados que utilizaremos neste curso será construída com os próprios artigos do Blog da Alura, pois ensinaremos o nosso corretor a realizar correções específicas para o mundo técnico de desenvolvimento, como Java, programação orientada a objeto, Data Science e etc.
Nesta página de Artigos de Tecnologia e Negócios da Plataforma Alura teremos várias opções com diversos artigos. Como exemplo, abriremos o artigo sobre criação de formulários com Flutter.
Este é um artigo do instrutor Alex Felipe ensinando a criar um formulário utilizando Flutter, o qual possui um volume grande de texto que realmente nos interessa, além de alguns trechos de código e imagens.
Portanto, teremos um arquivo cheio de informações textuais do blog. Precisaremos importar esses dados para começarmos a analisar e trabalhar no nosso corretor. Para isso, os enviaremos para a máquina do Google.
No Google Colab, expandiremos o painel lateral clicando no ícone ">", e encontraremos diversas opções na barra superior. Dentre estas, clicaremos em "Files" e aguardaremos o processo de montagem da máquina.
Após isso, encontraremos os diretórios criados automaticamente e três opções de ações: "Upload", "Refresh" e "Mount Drive". Clicando sobre a primeira destas, poderemos enviar os dados para as máquinas do Google.
No passo "Preparando o Ambiente", encontraremos o link para download do arquivo da base de dados chamada artigos.txt
disponibilizada para este curso.
Com o documento já baixado e salvo no computador, o selecionaremos e faremos seu upload. Desta forma, acessaremos essa database a partir do meu notebook.
Quando trabalhamos em NLP, a nossa base de dados é conhecida como corpus. Ou seja, é um corpo composto por com diversos textos, e cada um corresponde a um artigo do nosso blog, chamado de documento.
Logo, o corpus é um conjunto de documentos em Processamento Linguagem Natural, e no nosso caso, é composto pelos artigos do blog que formam a base de dados artigos.txt
. Em seguida, a leremos no notebook.
Para lermos um arquivo textual em Python, usaremos o comando open()
. Dentro dos parênteses, passaremos dois parâmetros; o primeiro será o nome do arquivo artigos.txt
entre aspas, e o segundo será o que queremos fazer com este último, ou seja, queremos fazer a leitura.
Então passaremos o "r"
de read como segundo parâmetro para lermos o arquivo. Ao executarmos, esperaremos um retorno de um texto como string
.
open("artigos.txt", "r")
Porém, essa linha de código retorna TextIOWrapper
que não é o que esperávamos, pois ainda queremos uma string
.
Para abrirmos o texto, utilizaremos o comando with
antes de open()
. Após essa função, escreveremos as
e diremos que representaremos f:
de file, ou "arquivo" em português.
with open("artigos.txt", "r") as f:
Essa linha de código é bem parecida com um texto escrito em inglês mesmo.
Em seguida, passaremos o que queremos fazer com o artigos.txt
aberto depois dos dois pontos, ou seja, queremos fazer a leitura.
Na linha seguinte, escreveremos f
com .read()
para lermos o arquivo. Também deveremos armazená-lo em uma nova variável chamada artigos
. A imprimiremos com print()
recebendo artigos[]
. Como nosso corpus é bastante grande, visualizaremos apenas os quinhentos primeiros caracteres inserindo :500
dentro dos colchetes.
with open("artigos.txt", "r") as f:
artigos = f.read()
print(artigos[:500])
Como retorno, teremos um arquivo de texto e um tratamento que facilitará nosso trabalho.
A primeira palavra é "imagem" e representa a figura presente na página original de artigos. Onde havia trechos de código, substituímos pela palavra “Java”. Desta forma, ficaremos apenas com termos em português para criarmos o nosso corretor.
A seguir, descobriremos se esse arquivo é de fato um corpus interessante para essa construção; se há um número suficiente de palavras, ou se as repete muitas vezes.
O curso Corretor Ortográfico em Python: aplicando técnicas de NLP possui 211 minutos de vídeos, em um total de 65 atividades. Gostou? Conheça nossos outros cursos de Machine Learning em Data Science, ou leia nossos artigos de Data Science.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
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.
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.
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.
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.
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.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Acesso completo
durante 1 ano
Estude 24h/dia
onde e quando quiser
Novos cursos
todas as semanas