Processamento de Linguagem Natural – Python NLTK
Processamento de Linguagem Natural (em inglês Natural Language Processing) é a parte central de nossas vidas no dia a dia e pode ser usado para resolver problemas relacionados a linguagem. O Processamento de Linguagem Natural (PLN daqui em diante) é um campo da ciência da computação, inteligência artificial e computação linguística cujo foco está na interação entre computadores e linguagem (natural) humana. São muitos os desafios envolvidos em fazer o computador compreender o significado na geração de linguagem natural. Essencialmente, PLN é a aplicação de aspectos teóricos da linguagem a aplicações de computador.
O desenvolvimento de aplicações PLN é sempre um desafio, pois o computador espera que a linguagem humana seja precisa, não ambígua e altamente estruturada. Mas como sabemos, normalmente é exatamente o contrário. A linguagem humana não é precisa, é frequentemente ambígua, sendo ainda recheada de gírias, dialetos regionais, contexto social e agora abreviações de linguagem, deste novo mundo de redes sociais em que vivemos.
Atualmente a PLN é baseada em Machine Learning, um subconjunto da Inteligência Artificial, que examina e utiliza padrões em dados para melhor compreender a linguagem natural. O PLN é a aplicação de computadores em diferentes nuances da linguagem, para construir aplicações que sejam capazes de processar a linguagem humana e extrair informação relevante, como análise de sentimentos, por exemplo. Em uma analogia simples, PLN é como ensinar uma linguagem a uma criança. Primeiro começamos ensinando as palavras, então as sentenças, a forma gramatical, sentenças gramaticalmente corretas e então a linguagem passa a ser natural para a criança. Todas essas tarefas foram traduzidas para linguagem computador, para que as mesmas atividades pudessem ser ensinadas as máquinas. Conceitos como tokezination, chunking, parsing, etc..são ainda um grande desafio para os computadores. Se nem os seres humanos entendem si próprios, como ensinar isso as máquinas, não é mesmo?
E por que aprender Processamento de Linguagem Natural?
Segundo o Gartner, conforme pode ser visto no gráfico abaixo, o PLN começou a descer a curva. Isso ocorre, quando uma tecnologia sai da fase de deslumbramento e começa a se tornar realidade. Isso está acontecendo. Exatamente agora! Com a adoção em massa do Big Data e finalmente a compreensão dos benefícios que podem surgir da análise desse volume de dados, precisamos agora coletar informação de dados não estruturados e buscar as nuances escondidas entre frases e textos aparentemente desconexos. Estamos gerando Petabytes de tweets, chats, weblogs, timelines (Facebook), e-mail e avaliações online. As empresas estão coletando esses dados para compreender seus clientes e extrair insights preciosos que poderão fazer a diferença no negócio. E o processamento dessa imensidão de textos não estruturados é feito com Processamento de Linguagem Natural.
Estamos na era da informação. Não imaginamos mais nossas vidas sem Google. Usamos os assistentes pessoais em nossos smartphones (Siri), para atividades básicas, como fazer uma ligação telefônica. Usamos cada vez mais os filtros de spam. Empresas buscam analisar os sentimentos dos clientes em relação a produtos ou serviços. Sempre que escrevemos um texto, clicamos no botão do corretor ortográfico para checar se cometemos algum erro de digitação ou mesmo gramatical e podemos fazer isso em diversos idiomas. Existem muitos exemplos de como o PLN já está sendo usado há um bom tempo. Talvez você não saiba, mas você utiliza PLN em aplicações como:
- Corretores Ortográficos (Microsoft Word)
- Engines de Reconhecimento de Voz (Siri, Google Voice)
- Classificadores de Spam
- Mecanismos de Busca (Google, Bing)
Trabalhar na construção de aplicações que envolvem PLN, requer experiência e conhecimentos avançados e este tipo de profissional está em falta no mercado, embora a demanda seja cada vez maior. Essa demanda é causada pelo fato que aplicações de PLN são um “game-changer”. Aprender PLN e aplicar seus conhecimentos em Big Data é sem dúvida um grande investimento que você pode fazer em sua carreira. E para trabalhar com PLN existem diversas ferramentas open-source disponíveis, tais como:
- GATE (General Architecture for Text Engineering) – https://gate.ac.uk/
- Mallet (Machine Learning for Language Toolkit) – http://mallet.cs.umass.edu/
- OpenNLP – https://opennlp.apache.org/
- UIMA – https://uima.apache.org/external-resources.html
- Genism – https://radimrehurek.com/gensim/
- Natural Language Toolkit (NLTK) – http://www.nltk.org/
Muitas dessas ferramentas são escritas em Java e possuem funcionalidades semelhantes. Muitas são também robustas e possuem uma variedade de ferramentas disponíveis. Mas quando falamos de simplicidade e facilidade de uso, o NLTK é a primeira opção. O NLTK é uma ótima opção para quem está aprendendo PLN, por sua facilidade de uso e por ter sido escrito em linguagem Python, uma das linguagens mais populares atualmente.
O NLTK é uma biblioteca da linguagem Python para Processamento de Linguagem Natural e Text Analytics, que foi originalmente criado para o ensino de PLN, mas que vem sendo amplamente adotado no desenvolvimento de aplicações de PLN em geral.
O módulo NLTK é um kit de ferramentas, destinado a ajudar com Processamento de Linguagem Natural (PLN). O NLTK será útil para separar as sentenças em um parágrafo, separar as palavras dentro de cada sentença, reconhecer padrões no texto e criar modelos de classificação que permitam, por exemplo, realizar análise de sentimentos em um conjunto de dados. No curso Big Data Real-Time Analytics com Python e Spark, coletamos streaming de dados do Twitter e em tempo real aplicamos um modelo de Machine Learning que separa as palavras em cada tweet, classifica, aplica um modelo previamente treinado e então marca o tweet como positivo ou negativo. Tudo isso em tempo real, com o NLTK e o Spark Streaming. Isso é que os nossos alunos estão estudando.
Equipe Data Science Academy
Referências:
http://www.gartner.com/newsroom/id/3412017
5