O que é NLP e como usar em seus negócios
O que é Processamento de Linguagem Natural – NLP?
Hoje o tema é o Processamento de Linguagem Natural (PLN, ou do inglês NLP – Natural Language Processing), que pode ser entendido como a tecnologia que permite extrair de textos escritos seu significado. Considerando que temos uma quantidade imensa de textos que precisam ser lidos e interpretados, é humanamente impossível ler todos. Vamos usar um exemplo para deixar clara nossa motivação. Imagine um e-commerce que coleta a opinião dos clientes sobre as compras através de um formulário. Além de questões alternativas, existe aquela caixinha de texto: “Críticas/Sugestões”, onde o cliente pode escrever o que quiser. Nessa caixinha, existem milhares de frases, que podem conter dicas valiosas para o seu negócio. O Processamento de Linguagem Natural tem a intenção de extrair informação relevante desses textos de forma automatizada, sem a necessidade de leitura humana. Vamos entender melhor como isso funciona?
Como o Processamento de Linguagem Natural funciona na prática?
Nada como mais alguns exemplos, para facilitar a compreensão da tecnologia. Imagine que um cliente de e-commerce comprou um celular, e escreveu: “Adorei o aparelho, a tela é ótima. Chegou dentro do prazo, e tudo funcionou direitinho. Vou recomendar aos meus amigos.” Tem muita informação aí. Uma das primeiras técnicas para processar esse texto, é dividi-lo em pedaços. Esse procedimento é chamado de “tokenização”. Existem várias formas de fazer isso, você pode considerar cada elemento do texto como um token diferente, então teríamos o seguinte conjunto:
[“Adorei”, “o”, “aparelho”, “a”, “tela”, “é”, “ótima”, “.”, “Chegou”, “dentro”, “do”, “prazo”, “,”, “e”, “tudo”, “funcionou”, “direitinho”, “.”, “Vou”, “recomendar”, “aos”, “meus”, “amigos”, “.”]
Note que até a pontuação é inserida como token. Dependendo da análise, isso pode fazer sentido, ou não. Se o cliente usa ponto de exclamação várias vezes (!!!!), ele pode estar querendo expressar sentimentos, e a repetição pode significar intensidade. Os sentimentos e suas respectivas intensidades, podem ser informações relevantes, e dar insights para o seu negócio. Então até a pontuação é importante. E pode mudar o significado da frase. Para descontrair, esse meme da internet indica que a falta de uma vírgula, pode te tornar um canibal… rsrsrs…
Aqui consideramos cada elemento como um token distinto, mas ao invés disso, cada sentença poderia ser um token distinto. A granularidade de seu token, depende da sua análise e das características do seu texto.
É comum ocorrer uma análise exploratória nos textos (como um pré-processamento), e para facilitar todas as palavras são escritas em letra minúscula, e as pontuações são extraídas. Nosso texto ficaria assim:
[“adorei”, “o”, “aparelho”, “a”, “tela”, “é”, “ótima”, “chegou”, “dentro”, “do”, “prazo”, “e”, “tudo”, “funcionou”, “direitinho”, “vou”, “recomendar”, “aos”, “meus”, “amigos”]
Ao usar essa técnica, temos que tomar cuidado, pois na linguagem dos textos da web, é comum uma pessoa que está brava escrever em maiúsculo todas as palavras, como “VOCÊS COBRARAM ERRADO, DEVOLVAM MEU DINHEIRO!!!!!” Ao tornar tudo minúsculo, e tirar as pontuações, podemos perder alguns sentimentos importantes.
Outra técnica, é a remoção das palavras que a princípio, não agregariam significado à interpretação da sentença, como “a”, “as”, “de”, etc… Essas palavras são chamadas de stopwords em PLN. Fazendo isso no nosso texto, o conjunto ficaria assim:
[“adorei”, “aparelho”, “tela”, “ótima”, “chegou”, “dentro”, “prazo”, “tudo”, “funcionou”, “direitinho”, “vou”, “recomendar”, “meus”, “amigos”]
E agora, precisamos fazer o computador entender o que aconteceu aqui. Nas frases existem verbos, adjetivos, partículas apassivadoras, objetos diretos, pronomes, … Você não imaginava que esse texto iria se tornar uma aula de português do ensino fundamental, não é? Kkkk… Pois é, quando fiz meu primeiro trabalho em PLN, tive que recordar aqueles conceitos gramaticais que todos nós deveríamos saber, mas quase ninguém sabe…
Podemos analisar cada palavra através de seu radical. Esse processo chama-se stemização (do inglês, stemming). Então as palavras “amigo” e “amiga”, na stemização viraria “amig”. Após reduzir todas as palavras ao seu radical, analisando a frequência em que esses radicais aparecem, poderíamos quantificar, medir com mais clareza o que está acontecendo. Se tivéssemos a ocorrência de 1.000 radicais do verbo atrasar, poderia ser uma indicação que estamos tendo problemas com as entregas de produtos fora do prazo.
Outra técnica muito utilizada, é a lematização (do inglês lemmatization). Nos verbos, o lema é o infinitivo do verbo. Então as palavras “tiver”, “tenho”, “tinha”, o lema transformaria todas elas em “ter”. No caso das palavras “amigo” e “amiga”, o lema seria “amigo”.
Em suma, a stemização e a lematização permitem reduzir o número de palavras no texto, e facilitar a abstração do significado das frases.
Indo mais a fundo, o próximo passo seria identificar a função sintática de cada palavra. Sim, isso mesmo, voltei ao nosso português. Vamos começar a identificar os pronomes, verbos, preposições, artigos, substantivos, etc. e extrair o significado de cada sentença. Essa tarefa, ao mesmo tempo que é fascinante, é dificílima. Para quem gosta de desafios, é uma delícia. E a boa notícia, é que existem várias bibliotecas que podem ajudar nessa análise.
Exemplos de Ferramentas com Processamento de Linguagem Natural – NLP
Como o nosso objetivo aqui não é se aprofundar em como fazer um PLN, mas sim em dar uma visão geral sobre a tecnologia, vamos comentar um pouco sobre as ferramentas disponíveis para tal. Existe um toolkit muito famoso, chamado NLTK (Natural Language Toolkit). São diversas bibliotecas prontas que permitem realizar diversas tarefas em PLN, na linguagem Python. Tudo o que comentamos anteriormente (tokenização, stemização, lematização, stopwords), pode ser feito com bibliotecas prontas.
A língua inglesa possui mais bibliotecas e mais desenvolvimentos computacionais. Nossa língua portuguesa não possui a mesma quantidade de ferramentas, mas já existe documentação mostrando como processar textos em português. Aqui no Brasil, a USP disponibiliza um corpus linguístico chamado de Mac-Morpho, com mais de um milhão de palavras, que podem ajudar no desenvolvimento de aplicações envolvendo PLN.
Podemos dizer que essas técnicas ajudam a desenvolver chatbots, sistemas anti-spam, assistentes virtuais, fazer analise de sentimentos, categorização de textos, entre outras coisas.
Dei alguns exemplos de PLN na linguagem escrita, mas provavelmente você já “falou” com o Google para fazer uma pesquisa, ou então conversou com a Alexa. Estava vendo um vídeo no Youtube, e ao selecionar legendas em inglês, fui informado que um algoritmo iria gerar as legendas analisando o que estava sendo falado. Foi engraçado, pois o algoritmo errava bastante, então algumas legendas estavam completamente fora de contexto. Por outro lado, para quem não sabe o idioma, era uma ajuda relevante em grande parte do vídeo. Todos esses exemplos envolvem processamento de linguagem natural, que pode ser escrita ou falada.
E agora, como você vai usar o processamento de linguagem natural para gerar insights à sua empresa? Espero que de diversas formas. Bons negócios e até a próxima!
0 comentários