Café com Código #05: Processamento de Linguagem Natural com NLTK

Salve Minerador!!, no Café com Código #05 vai mais um dica para você aprender Data Science na pausa para o sagrado cafezinho.

Como sempre de forma rápida e objetiva…Processamento de Linguagem Natural com NLTK.

Na rapidinha de hoje usaremos a biblioteca para processamento de linguagem natural NLTK, se você não conhece, veja como instalar e baixar os corpus de amostra no artigo Mineração de Textos: 7 Técnicas e Aplicações para Você Extrair Valor dos Dados e Alavancar Suas Análises.

A NLTK que significa Natural Language Toolkit é uma biblioteca Python para trabalhar com linguagem natural, com ela já estão implementados diversos métodos bem interessantes.

Para começar vamos ver como separar palavras de uma frase, ou seja, pegar cada palavra de uma sentença.

Essa tarefa é chamada também de tokenization. Veja um exemplo com o código abaixo:

No código acima, na primeira linha importamos a biblioteca do NLTK, na segunda linha atribuímos uma frase para a variável “frase” e imprimimos o seu conteúdo.

Na terceira linha usamos um método da NLTK chamado word_tokenize. Esta recebe uma sentença por parâmetro e faz a separação das palavras.

Fica mais ou menos assim:

[‘Aprendendo’, ‘data’, ‘science’, ‘na’, ‘hora’, ‘do’, ‘cafe’]

A frase se transformou em um vetor onde cada posição corresponde a uma palavra.

Outro método bem útil é contar a frequência de palavras em texto, a NLTK tem a função FreqDist() que nos retorna a frequência das palavras de um texto, veja um exemplo:

FreqDist({‘Best’: 1, ‘Iron Maiden’: 2, ‘forever’: 1, ‘six’: 3, ‘the’: 1})

Observe que o retorno agora é um dicionário onde cada palavra é uma chave e sua frequência no texto é o valor.

Para retornar a palavra com a maior frequência apenas usamos o método max().

‘six’

Para visualizar de forma mais clara, vamos plotar essa distribuição de palavras e frequencias com um gráfico usando a Matplotlib, vai ficar bem melhor que esse dicionário feio.

grafico-frequencia-palavras

Bem melhor né?

Para finalizar antes que o nosso café se esfrie outra tarefa extremamente útil é o Stemming, que consiste na redução da palavra até o seu radical.

Isso é possível ao remover seus afixos e vogais temáticas das palavras.

Veja um exemplo abaixo:

u’copi’

u’frequ’

Perceba que as palavras são reduzidas para seu radical

Essa técnica causa uma diminuição das palavras da base de dados, por exemplo, a palavra “copiar” tem seu radical em ‘copi’ o que seria o mesmo no caso de copiou ou copiava, tudo isso seria reduzido a copi..

Deu pra sentir o poder da NLTK ? Se você ficou interessado recomendo mais uma vez a leitura do nosso artigo no blog.

Esse foi mais um Café com Código, toda Quarta as 15h no seu e-mail 😉

Gostou dessa dica? Não esqueça de compartilhar com seus amigos e me conte aqui o que está achando.

Forte abraço!