Como limpar os dados para PLN

Naoki Yokoyama
4 min readOct 17, 2020

--

Processamento de língua natural (PLN) é uma subárea da ciência da computação, inteligência artificial e da linguística que estuda os problemas da geração e compreensão automática de línguas humanas naturais. Sistemas de geração de língua natural convertem informação de bancos de dados de computadores em linguagem compreensível ao ser humano e sistemas de compreensão de língua natural convertem ocorrências de linguagem humana em representações mais formais, mais facilmente manipuláveis por programas de computador. Alguns desafios do PLN são compreensão de língua natural, fazer com que computadores extraiam sentido de linguagem humana ou natural e geração de língua natural

Esse artigo tem o objetivo de mostrar uma pequena demostração de como funciona o processo de limpeza dos textos para ai sim implantar nos modelos preditivos.

Começando com a importação das bibliotecas necessárias

. pandas pacote já conhecida na analise de dados

. nltk pacote para PLN, muitos recursos de tokenização, stopword, stem e etc

. seaborn pacote derivado do matplotlib de visualização gráfica

. wordcloud o proprio nome já diz tudo nuvem de palavras

. matplotlib principal biblioteca do python para visualização gráfica

. unidecode modulo para retirar acentos

. string modulo para retirar pontuação

Exemplo de uso do unidecode

Como o texto que vamos trabalhar não tem acento então esse modelo acima é só para ilustrar como funciona o unidecode.

Esse é o modelo que vamos trabalha (esse pequeno conjunto de frases com 20 linhas suas frases juntos com seus sentimentos)

Vamos agora começar a conhecer nossas frases !

Para isso vamos juntos todas as frases que estão em listas e unir tudo numa só variável em forma de string pois assim poderemos aplicar o método de frequência.

join , tolkenizado e frequencia

Juntamos as frases, de separamos palavra por palavra e aplicamos a frequência. A quantidade de “palavras” é 156.

Gráfico das palavras que mais aparecem
Word Cloud
Word Cloud
lower()

Colocando o texto todo em caixa baixa (padronizar é importante).

string.punctuation

Retirando a pontuação .

stopword

Retirando as stopword do texto (stopword são palavras que não fazem ‘sentido’ quando trata de texto para analise pelo PLN. repare a diferença do print da primeira posição [0] (o nltk ja tem com pacote de stopword de lingua que queira analisar) .

join

Sempre que usa uma técnica do nltk a lista é ‘desmontada’ então para voltar a fazer analises devemos unir novamente .

stem

O processo de stem é retirar o sufixo das palavras.

EX: correr, correria, correndo todas se transformam em corr.

join

Feito o join novamente como já havia mencionado .

DF novo
organizado
jojn, tolken, freq

Nono join de listas para string, tokenizar e freq para comparar o resultado (repare na quantidade de “palavras” 56)

Novo plot de frequência
tabela de classificação

Criada tabela de classificação para utilizar futuramente em Machine Learning

word cloud
word cloud

Essa foi uma pequena demostração de limpeza no PLN

É claro que para utilizar Machine Learning precisaria de um conjunto de dados muito maior e algumas outras técnicas como bag of words, TFIDF entre outras.

--

--