sexta-feira, 16 de fevereiro de 2018

Text mining - coleta de dados




A internet proporciona um volume de informações em formato de texto, por exemplo, comentários em redes sociais e fórum de discussão, e-mails e dentre outros. Através da Mineração de Textos (Text Mining) é possível extrair sentimentos em textos, mas precisamente classificar de acordo com o sentimento (Ex. positivo ou negativo). Com isso, influenciar as organizações que querem encontrar as opiniões dos consumidores e as pessoas também querem saber as opiniões dos usuários existente de um produto antes de comprá-los.

Etapa do Processo
A primeira etapa do processo de mineração é coleta de dados. É possível fazer a coleta automaticamente ou de forma manual. Seja qual for a maneira, após a coleta dos dados no formato de texto é necessário realizar ajustes para melhorar o conteúdo e remover algumas imperfeições que possam vim existir no texto como:

  1. Pontuações; 
  2. Acentuações; 
  3. Caracteres especiais;
  4. Letras maiúsculas.

Linguagem de programação Python?
Por ser gratuita, multiplataforma e de fácil aprendizado é uma das linguagens usadas na área de Inteligência Artificial. Contêm uma infinidade de pacotes desenvolvidos para facilitar as análises de textos.

Texto de exemplo:
texto = '#Eu tenho o meu Notebook faz um ano!. estou gostando muito dele até agora não apresentou              problema'

Letras Maiúsculas
Primeiro vamos converter todo o nosso texto para letras minúsculas. Aproveitando o código do texto anterior que gera uma variável chamada texto_longo:

texto = texto.lower()
print (texto)

Pontuações e Caracteres especiais
Para remover podemos utilizar o comando replace(). Assim remover todas as pontuações e caracteres especiais.

pontos = ['.', '!', '?', ';', '@', '#','$','%','&','*','(',')']

for p in pontos:
 texto = texto.replace(p, '')

print (texto)

Letras Maiúsculas
Para remoção das acentuações temos que substituir cada letra acentuada pela sua correspondente não acentuada utilizando também o comando replace().

acentos = ['á','é','í','ó','ú','à','è','ì','ò','ù',
     'ã','ẽ','ĩ','õ','ũ','â','ê','î','ô','û']
s_acentos = ['a','e','i','o','u','a','e','i','o','u',
    'a','e','i','o','u','a','e','i','o','u']

for i in range(0, len(acentos)):
 texto = texto.replace(acentos[i], s_acentos[i])

print (texto)

No próximo post iremos continua com a preparação dos dados conhecer as técnicas de pré-processamento.

Gostou deste e de outros artigos, então Assine o [Descoberta de Conhecimento] por Email.

quarta-feira, 7 de fevereiro de 2018

Text Mining - parte 1

Text Analytics

O aumento do acesso das pessoas à internet representa um meio natural de armazenar informações em formato textual. Isso contribui para o crescimento da informação produzida e disponível nas mais variadas formas de documento de textos como, livros, revistas, artigos científicos, comentários em rede sociais, e-mails e outros tipos[1]. Deve-se também ao fato de que formato textual representa um meio intuitivo de internalização, quer dizer, registrar em textos livres, pensamentos, ideias, sentimentos e opiniões [2]. Isso foi de grande valia para que as pessoas pudessem dar suas opiniões sobre um produto ou serviços.

A Mineração de Texto (Text Mining) ou mais precisamente Análise de Textos (Text Analytics), visa descobrir informações uteis que ainda não são conhecidas e que a extração é feita de textos livres da Internet através da identificação e exploração de padrões não triviais. Essas fontes de dados dizem respeito às informações não estruturadas e/ou semiestruturadas que o cientista de dados tem que lidar [3].


A Mineração de Textos (MT) vem sendo uma variante da área de Mineração de Dados (Data Mining) é uma solução mais atraente para lidar com fontes que apresentam uma organização bastante heterogênea. Correlacionando com os algoritmos e métodos do KDD, e áreas de Aprendizado de Máquina, Estatística, Processamento de Linguagem Natural (NLP) e Classificação de Documentos (CP). E também faz uso de técnicas de recuperação de informação e extração de informação.

Por exemplo, pense em comentários de rede sociais e fóruns que estão comentando sobre um determinado assunto:

“Lançamento de um produto no mercado”
  1. Qual a reputação dessa marca ou marcas?
  2. Quais os aspectos positivos ou negativos acerca do produto?

Nesses ambientes, é possível verificar de que forma uma determinada marca ou produto estar sendo avaliado e, essa informação pode ser um bem muito valioso tanto para as pessoas quanto dentro de uma organização. Dispondo da informação correta no momento oportuno é caracterizado como um imprescindível diferencial. Mas há um problema, o grande volume de informações faz com que organizações e pessoas tenham dificuldades para gerenciá-las, principalmente, se não tiverem uma estrutura apropriada.
E assim, para sanas essas dificuldades e responder as perguntas acima, o Text Analytics traz um conjunto de técnicas e metodologias automatizadas para extrair informações uteis do texto [3]. Ou seja, você pode aplicar essa técnica para analisar sentimento dos comentários e verificar o feedback dos usuários.

Text Analytics

Isso porque, a análise de textos envolve várias áreas de conhecimento como extração de informação, análise léxica, estudo das distribuições de frequência de palavras, reconhecimento de padrões, tagging, mineração de dados, redes complexas, regre as de associação, visualização de dados e análise preditiva. Em resumo, estamos falando essencialmente de transformar textos em dados para análise, por meio da aplicação de técnicas de processamento de linguagem natural e métodos analíticos.


Essa foi a introdução de uma aplicação prática, onde o cientista de dados poderá aplicar os conceitos da Inteligência Artificial. No próximo post apresentarei a manipulação de textos usando a linguagem Python.


Gostou deste e de outros artigos, então Assine o [Descoberta de Conhecimento] por Email.


Fonte:
[1] Data Mining – [http://ieeexplore.ieee.org/document/8057510/]
[2] ARANHA, C.N. Uma Abordagem de Pré-Processamento Automático para Mineração de Textos em Português: Sob o Enfoque da Inteligência Computacional.
[3] Sentiment analysis - [http://ieeexplore.ieee.org/document/7877424/].

quinta-feira, 1 de fevereiro de 2018

Introdução à Mineração de Dados

mineração de dados

KDD (Knowledge Discovery in Databases) é um processo de descoberta de conhecimento em bases de dados que tem como objetivo principal extrair conhecimento a partir de grandes bases de dados. Esse processo é utilizado na abordagem de Aprendizagem de Máquina, ou seja, cria um modelo (sistema) que aprende com os dados históricos e assim consegue identificar um registro novo como sendo de uma classe preditiva. Para isto ele envolve diversas áreas do conhecimento, tais como: estatística, matemática, bancos de dados, inteligência artificial, visualização de dados e reconhecimento de padrões. São utilizadas técnicas, em seus diversos algoritmos, oriundas dessas áreas.

Esse processo envolve as etapas de coleta (seleção), pré-processamento e/ou transformação, mineração e por último a interpretação/avaliação.

Descoberta de conhecimento em base de dados


Coleta dos dados
A coleta de dados tem como função formar a base dados onde será minerado o conhecimento valioso. A tarefa de coleta dos dados é crítica porque os dados podem não estar disponíveis em formato apropriado para serem utilizados no processo de KDD. Ou, mesmo se disponíveis, os dados podem precisar ser rotulados com o auxílio de um especialista do domínio. Esse auxílio é chamado de supervisionado (acesse o post, Aprendizado de Máquina para entender sobre essa abordagem).

Pré-processamento
O Pré-processamento e/ou transformação são etapas que se aglutinam e que o estado da arte denomina apenas de pré-processamento.
É realizado sobre os dados coletados com o intuito de melhorar a qualidade dos mesmos, afim de prepará-los em uma forma estruturada para serem submetidos à fase de mineração de dados. É a face mais complexa, pois suas atividades são, por exemplo, a integração de dados heterogêneos, eliminação de incompletude dos dados e aplicação de técnicas Processamento de Linguagem Natural (NPL).
A limpeza dos dados envolve uma verificação da consistência das informações, e o preenchimento ou eliminação de valores nulos e redundantes. Nessa fase são identificados e removidos os dados duplicados e/ou corrompidos os chamados “ruídos”. 

Mineração
A mineração de dados é a etapa que é decidida quais os algoritmos serão aplicados. Nessa etapa, pode-se utilizar diferentes áreas do conhecimento, como Aprendizado de Máquina, Estatística, Rede Neurais e dentre outros. Se o objetivo dessa fase é criar um modelo preditivo, então, decidir qual algoritmo é ótimo para o problema que está sendo analisado não é uma tarefa trivial. Esse fato ocorre pois a Aprendizagem de Máquina utiliza diversos tipos de algoritmos que são, Associação, Clusterização, Árvore de decisão, Regressão, Rede neural, Classificação e dentre outros.

Avaliação
Avaliação e interpretação de resultados são as últimas etapas no processo de descoberta do conhecimento. É fase onde se avalia a performance do modelo, onde se extrai o conhecimento.


Referências:

 10 passos para o Big Data


Gostou deste e de outros artigos, então Assine o [Descoberta de Conhecimento] por Email.

Text Mining - preparação dos dados

Antes que o conhecimento seja extraído, é necessário que a qualidade do texto seja melhorada, uma vez que, os textos podem conter carac...