/minerador-emocoes

Simples minerador de emoções de textos livres com Python. Simple text emotion miner with Python. Created just to study how this approach works.

Primary LanguagePython

minerador_emocoes

Mineração de texto

Visando a ideia de customer success dentro da startup, decidi que o meu projeto será com enfâse na análise mais precisa e detalhada do customer success.

Este projeto é uma solução com inteligência artificial para analisar o sentimento do cliente em um texto formatado (JSON, XML) ou um texto livre (Post do facebook, tweet, etc).

Técnicas de classificação:

Classificação:

E-mail: Entrada(post, tweet) -> Algoritmo classficador -> Spam, Normal

Notícia: "Fred passa por cirurgia no joelho direito e tem alta prevista para esta quinta-feira" -> Algoritmo classificador multirrótulo -> Esporte, Cone, Lesão

Agrupamento (Clustering):

Agrupamento de pratos, por exemplo. Um funcionário caixa da Sapore sempre insere no app o prato que o cliente comeu na hora do pagamento. O prato é "arroz com feijão" mas o funcionário coloca "arrz e feij" ou "arros e fejao". Conseguimos detectar e agrupar todo mundo como "Arroz com Feijão".

Detecção de plágio

Extração de informação:

Em nosso cenário, eu recebo um comentário do facebook e consigo extrair: Nome, Sobrenome, Data, Hora, Opinião, Prato em questão, restaurante, Sentimento identificado e etc..

Utilização de ontologias, representando conceitos e relacionamentos em um domínio(section2, lecture3)

Associações:

Correlação entre palavras (Associações):

É basicamente identificar padrões -regras de associações- em textos:

=======

É basicamente identificar padrões em textos:

"60% dos textos que contém a palavra Internacional também contém a palavra Grêmio. 3% de todos os textos contém ambas as palavras. Case baseado nisso: O walmart identificou que quando eram vendido fraudas também eram vendido cerveja. Aí eles colocaram uma seção de cerveja próxima de fraudas e maximizaram a venda desses produtos.

A presença do termo Pelé aumenta em 5 vezes a chance de ocorrência dos termos Copa e 1970

Regra deInterpratação sintica e semântica das frases associação: Pelé => Copa e 1970

A polícia usa esse tipo de algoritmo para varrer redes sociais e identificar se terá briga em jogos de futebol

Correspondências semânticas

Migração de base de dados(sec 2 aula 4)

matcher para consulta de dados no banco (Monta um select automático com base no que o usuário digitou)

Recuperar informação:

Indexação API Lucene(Java)(sec 2 aula 4)

Resumo de documentos:(sec 2 aula 4)

Abordagem estatística

Frequência de termos, ignorando informações semânticas

Processamento de lingaugem natural

Interpratação sintica e semântica das frases

Fazer o computador entender a frase

Mineração de emoção

Classificação: texto -> algoritmo -> alegria, tristeza, medo

Monitoramento de sentimento das pessoas em relação a marcas, entidades, figuras sociais, etc

Gestão de crises (% de alegria, tristeza em comentários ou sei lápara tomada de decisões estratégicas)

Entender o que o consumidor está pensando

Classificação por polaridade

texto -> Algoritmo de machine learning -> classificação em positivo, neutro ou negativo

Classificação por Emoção

Surpresa, alegria, tristeza, medo, nojo e raiva

Classificação:

Com base nos atributos previsores eu crio uma classe.

Esses atributos previsores são atributos de uma base de dados histórica

Aprendizado supervisionado de máquina. Ele analisa todos os atributos previsores da pessoa e com base nisso, define como a pessoa foi categorizada.

Eu coloco uma base histórica com muitos registros e gero uma classe para a informação que eu quero(sec2 ep6) e, para prever o movimento dos próximos clientes, eu submeto as informações dos clientes que eu quero prever em um algoritmo de aprendizado de máquina com base nessa base histórica que foi processada.

Cada registro pertence a uma classe e possui um conjunto de atributos previsores

Objetiva-se descobrir um relacionamento entre os atributos previsores e o atributo meta(classe)

O valor do atributo meta é conhecido (aprendizagem supervisionada)

Representação da classificação(método indutivo)(img sec2ep78)

Classificação de textos

Os atributos previsores na classificação de textos são as próprias palavras

É feito um pivoteamente de frase para coluna. Cada palavra da frase vira uma coluna. Stop-words são eliminadas e são apenas palavras únicas permitidas. Logo após isso, para cada coluna eu coloco uma flag booleana para identificar se a palavra está na frase daquele registro

=======

Como funciona:

Temos uma base de frases e uma coluna com o sentimento que ela representa.

Removemos stop-words (o, a, agora, agora, algum, alguma, aquele, aqueles, de, deu, do, e) pois diminui o processamento e deixa a tabela menor.

(Steeming) Extraímos os radicais das palavras para reduzir a dimensionalidade dos dados. A raiz da palavra é um elemento originário e irredutível em que se encontra a significação das palavras.

Desvantagens de usar stemming: Palavras com sentido opostos possuem o mesmo radical: Novamente e novo, por exemplo.

A tabela final é feita apenas com radicais únicos de palavras. Não posso ter cabeçalhos iguais.