Views

Protege Cópia

O que é PLN - Processamento de Linguagem Natural?


PLN - Processamento de Linguagem Natural - utiliza técnicas de Machine Learning para encontrar padrões em grandes conjuntos de dados puros, reconhecendo sua linguagem natural.

Um dos exemplos de aplicação do PLN é a análise de sentimentos, onde os algoritmos podem procurar padrões em postagens de Redes Sociais para compreender como os Clientes sentem-se em relação a Marcas e Produtos específicos.

Leia também:
Mesmo com o avanço no relacionamento homem-máquina, a comunicação via Linguagem Natural continua sendo um desafio: Como criar programas capazes de interpretar mensagens codificadas em LN e decifrá-las para a linguagem de máquina? Com o passar dos anos, houveram muitas pesquisas e desenvolvimentos nos mais diversos ramos do processamento de Linguagem Natural, destacando-se a tradução automática, considerada pela maioria como o marco inicial na utilização dos computadores para o estudo das línguas naturais.

De modo geral, no Processamento de Linguagem Natural, buscam-se soluções para questões computacionais que requerem o tratamento computacional de uma ou mais línguas naturais, quer sejam escritas ou faladas. Mais precisamente, o PLN dedica-se a propor e desenvolver sistemas computacionais que têm a língua natural escrita como objeto primário. Para tanto, linguistas e cientistas da computação, buscam fundamentos em várias disciplinas: Filosofia da Linguagem, Psicologia, Lógica, Inteligência Artificial, Matemática, Ciência da Computação, Linguística Computacional e Linguística.

Para modelar a língua e possibilitar que a máquina a entenda, são necessários pré-processamentos que abstraiam e estruturem a língua, deixando apenas o que é informação relevante. Esse pré-processamento reduz o vocabulário e torna os dados menos esparsos, característica conveniente para o processamento computacional. Algumas das tarefas muito utilizadas no pré-processamento textual são:


Normalização

A normalização abrange tratativas como a tokenização, transformação de letras maiúsculas para minúsculas, remoção de caracteres especiais, remoção de tags HTML/Javascript/CSS, dentre outras. O processo de tokenização tem como objetivo separar palavras ou sentenças em unidades. A tokenização lexical marca cada palavra como um token no texto, identificando-a mesmo se tiver encostada em alguma pontuação. Um exemplo de texto tokenizado lexicalmente seria:


A tokenização sentencial identifica e marca sentenças. Um exemplo seria:



A normalização é importante por começar a estruturar o texto, já que os processamentos seguintes atuam em cima de unidades sentenciais e lexicais.


Remoção de Stopwords

Outra tarefa muito utilizada no pré-processamento de textos é a remoção de stopwords. Esse método consiste em remover palavras muito frequentes, tais como “a”, “de”, “o”, “da”, “que”, “e”, “do” entre outras, pois na maioria das vezes não são informações relevantes para a construção do modelo. Remova stopwords somente quando não forem relevantes para a tarefa. No caso da Análise de Sentimentos, não poderíamos remover a stopword “não”, pois traz uma conotação de negatividade para a sentença, indicando justamente o sentimento transmitido. Uma lista de stopwords pode facilmente ser encontrada disponível na internet.


Remoção de numerais

Outra remoção necessária é dos numerais presentes no texto. Eles não agregam informação relevante por não trazerem carga semântica. Remova também os símbolos que os acompanham, como “R$”, “$”, “US$”, “kg”, “km”, “milhões”, “bilhões” dentre outros.


Correção Ortográfica

Os corretores ortográficos (Spell Checkers) são muito usuais para tratar um dataset que contém erros de digitação, abreviações e vocabulário informal. Esses erros são prejudiciais por gerarem novos tokens, aumentando a esparsidade dos dados. Uma boa introdução à verificação ortográfica pode ser encontrada na página da Peter Norvig (http://norvig.com/spell-correct.html). O artigo apresenta uma simples implementação de um corretor ortográfico de 21 linhas em Python, combinando modelos simples de linguagem e erro para prever a palavra que um usuário pretende digitar. É necessário ter um grande córpus no idioma para o qual o corretor ortográfico será projetado, o qual precisa ser contemporâneo e de linguagem formal. Uma sugestão são córpus de gênero jornalístico e literário. Estima-se a probabilidade de uma determinada palavra ‘C’ estar no córpus, que pode ser escrita como ‘P(C)’. O modelo de erro estima a probabilidade ‘P(W|C)’ do usuário digitar a versão incorreta ‘W’ condicionalmente à intenção de digitar a palavra correta ‘C’. O corretor ortográfico retorna a palavra ‘C’ correspondente ao valor mais alto de ‘P(W|C) P(C)’ entre todas as palavras presentes no córpus.


Stemização e Lematização

O processo de stemização (do inglês, stemming) consiste em reduzir uma palavra ao seu radical. A palavra “meninas” se reduziria a “menin”, assim como “meninos” e “menininhos”. As palavras “gato”, “gata”, “gatos” e “gatas” reduziriam-se para “gat”. A lematização reduz a palavra ao seu lema, que é a forma no masculino e singular. No caso de verbos, o lema é o infinitivo. Por exemplo, as palavras “gato”, “gata”, “gatos” e “gatas” são todas formas do mesmo lema: “gato”. Igualmente, as palavras “tiver”, “tenho”, “tinha”, “tem” são formas do mesmo lema “ter”. A vantagem de aplicar a stemização ou lematização é clara: redução de vocabulário e abstração de significado.

Esses pré-processamentos são de cunho morfossintático, que atuam em cima de itens lexicais, ou seja, palavras.

Comente e compartilhe este artigo!

Nenhum comentário:

Postar um comentário