Mineração de texto
Roteiro
Motivação
Conceitos básicos
Tarefas de mineração de texto
Tipos de abordagens dos dados
Processo de Mineração de Texto
Preparação dos dados Processamento dos dados
Pós-processamento dos dados
Técnicas de mineração de texto
Motivação
Informações em formato texto
Compõem o dia-a-dia de pessoas e empresas
São produzidas e armazenadas em meio eletrônico
Exemplo: páginas web, posts em blogs e redes sociais, feeds de notícias,
históricos pessoais de navegação na web, e-mails, relatórios de
acompanhamento, atas de reuniões, patentes, resumo ou texto completo de publicações científicas...
Podem ser utilizadas para:
constituir um tipo de vantagem competitiva; suporte à tomada de decisões;
gerar indicadores de sucesso ou fracasso.
O processamento de texto necessita de técnicas específicas, pois o
texto se constitui em um tipo de dado não-estruturado (texto livre) ou
semi-estruturado (campos e valores).
Conceitos básicos
Mineração de texto
É um conjunto de técnicas e processos que possibilita a
descoberta de conhecimento inovador nos textos.
Com mineração de texto pode-se extrair informação
relevante de uma grande base de dados textuais sem
precisar de intervenção humana na leitura de cada
documento.
Tem aplicações na descoberta de fatos na genética, na
pesquisa de proteínas e medicamentos, na modelagem de
sistemas com base em patentes, na gerência de projetos, no
planejamento de marketing, na categorização automática de
mensagens de correio eletrônico, em bancos de
investimento, na extração automática de resumos de
documentos, na análise de sentimento em revisões de
produtos e serviços, etc.
Conceitos básicos
A Mineração de Textos é um processo semelhante à
Mineração de Dados, do inglês
Data Mining.
A
diferença é que data mining opera sobre dados
estruturados.
Mineração de dados
Trabalha com dados
estruturados
Bancos de dados...
Mineração de textos
Os dados são
não estruturados
(texto livre)
Conceitos básicos
Mineração de Textos, do inglês
Text Mining,
em alguns casos
é considerada uma etapa específica da descoberta de
conhecimento em textos. Em outros é considerada sinônimo.
Descoberta de conhecimento em textos (DCT), do inglês
knowledge discovery in texts
(KDT),
é um processo que visa
descobrir padrões não explícitos a partir de documentos
textuais.
Áreas de pesquisa correlatas:
recuperação de informação
extração de informação
processamento de linguagem natural
aprendizagem de máquina
Processo de DCT
O processo de DCT é dividido em cinco fases
O que se pode fazer com mineração de texto ?
8
Tarefas de mineração de texto
Mineração – Indexação automática
O objetivo é reconhecer termos importantes nos
documentos.
em alguns casos se busca também reconhecer o tipo dos termos
(assunto, pessoa, lugar, evento, organização, objeto)
Faz uso das operações sobre o texto, regras de sistemas
especialistas e/ou algoritmos de aprendizagem de
Indexação automática
Tipos de indexação automática:
Indexação do texto completo – realizada automaticamente em várias
ferramentas de análise de texto, cria uma estrutura de índice onde para cada palavra isolada guarda-se informação sobre sua ocorrência e posição em cada documento. Exemplos: criação de índice invertido, criação de nuvem de tags.
Indexação temática – encontrar termos significativos nos documentos. Pode
fazer uso de um dicionário ou tesauro. Exemplo: Indexação automática por extração, indexação automática por atribuição.
Indexação por tópico – faz uso de técnicas estatísticas e de aprendizagem de
máquina para agrupar termos em tópicos com base nos padrões de
coocorrência nos documentos. Exemplos: Indexação por Semântica Latente, e LDA.
Exemplos de Indexação automática
•
Base de índices invertidos
•
Processo de indexar documentos, para que
sejam recuperados de forma rápida e
precisa
11
Mineração -
Categorização
O objetivo é encontrar tópicos chave ou categorias dos
documentos
Visa associar documentos de texto a classes temáticas
pré-definidas
Os documentos são classificados a partir de características
do texto, como termos ou palavras presentes nos
documentos
Abordagem
Algoritmos de Aprendizagem de Máquina supervisionada
13
Mineração -
Agrupamento
O objetivo é tornar explícito o relacionamento de
similaridade entre documentos
Visa identificar grupos de documentos similares entre si
Isto é, encontrar classes ou grupos de documentos não
conhecidos a priori
Envolve o uso de técnicas de Aprendizagem de Máquina
não-supervisionada.
15
Mineração - Agrupamento
Mineração - Sumarização
O objetivo é criar um resumo através da extração de
sentenças importantes de um ou vários documentos
relacionados.
Visa descobrir as sentenças contendo as informações mais
importantes de um texto
para produzir uma versão resumida do referido texto
Visa criar um documento novo
que é menor do que o original em tamanho
mas mantém as principais informações contidas na fonte
original
Mineração - Sumarização
Tipos de sumarização:
Sumarização de documento único
Sintetiza o conteúdo de um documento
Sumarização de múltiplos documentos
Sintetiza e condensa informações a partir de diversos documentos
de entrada
Mineração - Sumarização
Tipos de Sumarização:
Sumarização por abstração – síntese do resumo com base na
determinação do significado das sentenças, simplificação das sentenças, e escrita do resumo.
Sumarização por extração – sentenças inteiras são medidas quanto a
importância relativa, selecionadas e extraídas do texto para compor o resumo. A ideia é construir um texto menor que conserve as ideias-chave originais. Abordagem mais comum nos sistemas.
Quesitos de importância de sentenças: posição no documento, presença
de palavras-chave, presença de expressões indicativas (importante, definitivamente, em particular, a finalidade dessa pesquisa é, nossa investigação mostrou que, etc.), número de links semânticos entre sentenças.
Processo de sumarização
1.
Calcular a relevância de cada conceito;
2.
Determinar as sentenças contendo os conceitos
relevantes;
3.
Agrupar sentenças contendo conceitos relevantes;
4.Selecionar sentenças de cada grupo;
5.
Sintetizar o resumo;
•
O objetivo é tornar explícito o sentimento positivo,
neutro, ou negativo expresso sobre cada aspecto
presente no documento a fim de
observar as opiniões
de um grupo de pessoas sobre temas de interesse (para
pessoas ou organização)
•
A mineração de opinião visa identificar o sentimento que
os usuários apresentam a respeito de alguma entidade
ou aspecto de uma entidade, como:
▫ um produto específico ▫ uma empresa
▫ um lugar
▫ uma pessoa 20
Análise de sentimento (Mineração de
opinião)
•
O objetivo principal é permitir que um usuário obtenha
um relatório (gráfico ou textual) contendo a
opinião/sentimento predominante das pessoas a
respeito de um determinado aspecto ou entidade
21
Análise de sentimento
Extração de informação
Objetivos
Conversão para estrutura tabular
Exibição dos dados de forma legível e facilmente recuperável
Busca identificar dados relevantes presentes em
documentos sem estruturação precisa
•
Busca derivar conhecimento (informações relevantes) de
documentos segundo
•
A forma como o documento está estruturado
Etapas da Mineração de Textos
A Mineração de texto se constitui basicamente em três
etapas sequenciais:
Pré-processamento ou Preparação dos dados
Prepara o conjunto de dados textuais para as fases posteriores
Processamento dos dados
Execução de tarefas de mineração de texto, visando o processamento
dos dados ou extração de conhecimento
Pós-processamento dos dados ou análise dos resultados
Etapas da Mineração de Textos
Pré-processamento ou Preparação dos dados - Prepara o
conjunto de dados textuais para as fases posteriores
Seleção do conjunto de documentos de interesse
Seleção dos termos representativos dos textos - análise léxica,
eliminação de palavras vazias (stopwords), aglomerar termos através da radicalização ou lematização, uso de dicionário ou tesauro,
detecção de grupos nominais ou expressões multipalavras.
Representação de cada documento na forma de vetor através do
modelo sacola de palavras e um modelo de recuperação de informação
Redução de dimensionalidade através da frequência nos documentos
Tipos de abordagens de dados
Análise semântica
Baseada no uso de técnicas de Processamento de Linguagem Natural.
Estas técnicas avaliam a sequência dos termos no contexto das
sentenças do texto, visando a correta identificação do significado ou função de cada termo. Geralmente tais técnicas são específicas para um dado idioma.
Exemplos: uso de léxicos (lista de stopwords, léxicos com polaridade
opinativa), radicalização (stemming), lematização (lemmatizing), etiquetagem morfossintática (POS tagger), análise sintática (parser), uso de dicionários ou tesauros, reconhecimento de entidades,
Tipos de abordagens de dados
Análise estatística
Baseada no uso de técnicas estatísticas, busca determinar a
importância dos termos nos textos com base na ocorrência, posição ou contexto (palavras adjacentes no nível de sentenças). São técnicas independente de idioma.
Exemplos: filtragem de termos com base na frequência de ocorrência
na coleção, captura de expressões multipalavras através de modelos linguísticos (unigrama, bigrama, trigrama),...
Representação dos documentos
Para as tarefas de mineração de texto em que são
utilizados algoritmos de aprendizagem de máquina,
geralmente é exigida a representação dos documentos,
sentenças ou termos como vetores numéricos.
Documentos são geralmente representados como vetores onde
palavras formam eixos em um espaço multidimensional.
Para cada palavra se registra ou sua importância na descrição do
documento, ou sua presença/ausência no documento.
Exemplo de Representação de
Documentos como Vetores Numéricos
word1 word2 word3 word4 word5 ... wordN label
0
1
0
1
0
...
1
1
1
0
1
0
0
...
0
0
1
0
0
1
1
...
0
1
0
1
0
0
1
...
1
0
1
0
0
1
0
...
1
1
0
1
0
0
1
...
0
1
0
0
1
1
0
...
0
0
0
0
1
0
1
...
0
1
29
Dicionário (“dictionary”, “feature”)
Palavras relevantes que podem estar presentes em um documento
word1, word3, word6, ..., wordN
Dado um dicionário e um documento, o documento é
representado por um vetor de números
Na forma mais simples, vetor de 1s e 0s, representando a presença
ou ausência de palavras individuais
Mas os números podem ser quaisquer, desde que semanticamente
válidos
Na tabela do exemplo, cada linha é um vetor
representando um documento, por exemplo, um artigo
científico.
Geração de Vetores
Toquenização (Tokenization)
Cada palavra relevante para o dicionário é um “token”
Para vetores binários, é assinalada a presença ou não de um “token”
(palavra)
Para vetores não-binários, uma função da freqüência do “token” é
utilizada
Radicalização (Stemming) ou Lematização (Lemmatization) para
a conflação de termos
“Tokens” sinônimos “Token”
Note que, se o dicionário for grande, e geralmente o é, os
vetores tendem a ser esparsos
Necessidade de técnicas de compressão de vetores
“Label”
Representa um atributo de classificação, a decisão final ou saída para uma
tarefa de mineração de texto.
Binário
1 (positivo), pertence à classe 0 (negativo), não pertence à classe
Note que a estratégia é aproximar o problema para uma tarefa de
classificação ‘clássica’
Instâncias positivas e negativas
Mais de duas “label”?
Categorias nominais ou vetores binários de categorias
Para algoritmos de aprendizagem de máquina não supervisionados, o
atributo “Label” não é utilizado para o treinamento.
Etapas da Mineração de Textos
Processamento dos dados - Execução de tarefas de
mineração de texto, visando o processamento dos dados
ou extração de conhecimento
Definição do objetivo do processo de mineração de texto
Escolha da tarefa de mineração de texto para promover a extração
de conhecimento: Indexação; Sumarização; Agrupamento;
Categorização; Análise de sentimento; Extração de informação.
Separação dos conjuntos de treinamento, validação e teste ou uso
de validação cruzada.
Técnicas de Mineração de Textos
As tarefas de mineração de textos podem ser modeladas como
problemas de classificação de dados (vetores).
Para tarefas de classificação supervisionada (categorização) são utilizadas técnicas
de aprendizagem de máquina supervisionadas.
Para tarefas de classificação não supervisionada (agrupamento) são utilizadas
técnicas de aprendizagem de máquina não supervisionadas.
Modelagem de tarefas:
Indexação – tarefa de classificação supervisionada de termos de indexação.
Categorização de texto – tarefa de classificação supervisionada de documentos. Agrupamento de texto - tarefa de classificação não supervisionada de documentos.
Sumarização de texto – tarefa de classificação supervisionada e\ou não-supervisionada de
sentenças.
Análise de sentimento – tarefa de classificação supervisionada de termos opinativos e
Classificação supervisionada de vetores numéricos
Cada instância é representada como um vetor numérico
É inferida uma função que mapeia a representação numérica estruturada
para um rótulo
f : w L
w é um vetor em que cada célula indica a presença, ou quantidade, de uma
característica vetor numérico
L é um rótulo (“label”)
Entre os algoritmos de aprendizagem de máquina supervisionados mais
utilizados na mineração de texto temos: árvores de decisão, k-vizinhos
mais próximos, classificador por regressão logística, classificador naive
bayes, e SVM.
Classificação não-supervisionado de vetores numéricos
Cada instância é representada como um vetor numérico
É inferida uma função que mapeia a representação numérica estruturada para um
grupo de uma partição
f : w G
w é um vetor em que cada célula indica a presença, ou quantidade, de uma característica vetor numérico
G é um grupo de uma partição P. P é formada por dois ou mais grupos com vetores associados a
cada grupo e uma descrição contendo as características representativas dos vetores do grupo.
A heurística para criação de grupos é unir no mesmo grupo vetores similares (unir
pelas semelhanças) e separar vetores dissimilares em grupos diferentes (separar
pelas diferenças).
Os algoritmos de aprendizagem de máquina não supervisionados mais utilizados na
mineração de texto são: k-médias (k-means), EM (expectation maximization),
agrupamento hierárquico (hierarchical clustering), SOM (self-organizing maps).
Técnicas de Mineração de Textos
Categorização – encontrar tópicos associados a categorias
pré-definidas de documentos
As categorias são definidas através de um processo intelectual.
Cada documento é descrito por um vetor de termos com pesos
associados.
Para cada categoria são extraídas assinaturas estatísticas da
ocorrência de termos nos documentos associados aquela categoria.
Algoritmos de aprendizagem de máquina supervisionados são
utilizados para criar um modelo contendo as assinaturas
estatísticas.
Trata-se de uma tarefa de classificação supervisionada de
documentos.
Técnicas de Mineração de Textos
Agrupamento (clustering) – tornar explícito o
relacionamento de similaridade entre documentos. Os
grupos são úteis na navegação por uma coleção.
Cada documento é descrito por um vetor de termos com pesos
associados.
Cada grupo é descrito por um vetor de características ou termos
dominantes, com pesos associados a cada termo. Os grupos podem ser organizados em hierarquia ou no plano.
O processo é iterativo até os grupos não mais mudarem e ocorre em
dois passos:
Cada documento é associado a um grupo cuja similaridade entre o vetor
de características do grupo e o vetor documento é a máxima possível
Etapas da Mineração de Textos
Pósprocessamento dos dados ou análise dos resultados
-Validação dos resultados e avaliação da qualidade das
descobertas
Métricas de avaliação dos resultados, ferramentas de visualização
e conhecimento de especialistas ajudam a consolidar os resultados
Métricas de avaliação – matriz de confusão, medidas de relevância
(Precisão, Revocação, F-measure), acurácia, erro de classificação.
Ferramentas de visualização – visualização de dados e análise
exploratória de dados, geralmente a proximidade espacial em gráficos traduzem a similaridade de itens.
Conhecimento de Especialistas – participação essencial dos
especialistas na análise da validade e avaliação dos padrões extraídos (utilidade,novidade, relevância).
Métricas de Qualidade
de Categorização/Agrupamento de
Documentos
Métricas de Avaliação
Valem para documentos estruturados e não-estruturados e para tarefas de categorização ou agrupamento de documentos:
Acurácia
Precisão (“Precision”) Cobertura (“Recall”)
Média Harmônica da Precisão e Cobertura (“F-Measure”)
Se compara a classe informada com a classe predita pelo modelo de aprendizagem de máquina. No agrupamento é utilizada a heurística de voto majoritário para atribuir classe aos grupos de
documentos do conjunto de treinamento.
É importante observar o desvio padrão das métricas
A avaliação é feita utilizando um conjunto de documento independente do conjunto de
documentos utilizado para treinamento, denominado conjunto de teste, ou validação cruzada em 10 subconjuntos (10-fold cross validation).
Detectar “spam e-mail” é uma tarefa de mineração de texto, mais especificamente de categorização de documentos. Como avaliar?
Ferramentas de Mineração de Dados:
KNIME
KNIME (Konstanz Information Miner)
https://www.knime.org/
KNIME Text Processing plugin Suporta as seguintes tarefas:
IO: leitura e parsing de arquivos (txt,cvs,xml,html, pdf, doc), leitura e
escrita de tabelas (data table)
Enrichment: reconhecimento de entidades e pos tagging (para língua
inglesa)
Preprocessing: filtragem e manipulação de características
Frequencies: contagem de frequência de palavras e extração de
palavras-chave
Transformation: representação dos documentos ou termos em vetor
Classification: algoritmos de aprendizagem de máquina para agrupamento e
classificaçao
Visualization: nuvem de tags
Uso do KNIME
Baixar o KNIME: https://www.knime.com/download-installer/2/64bit Instalar o KNIME e execute-lo.
No primeiro acesso serão instaladas as extensões, por isso vai demorar alguns minutos.
Acesse no KNIME Explorer LOCAL > Example Workflows > Social Media > Topic Detection based
on Movie Reviews (duplo clique)
Aceite a instalação do plugin KNIME Text Processing, a finalização da instalação pode ser
observada na barra de status do programa, vai demorar alguns minutos, e depois o programa será reiniciado.
Acesse no KNIME Explorer LOCAL > Example Workflows > Social Media > Topic Detection based
on Movie Reviews (duplo clique)
Execute todos os nodos executáveis do workflow (SHIFT+F7 ou clique no botão >>). Ao finalizar a
execução de um nodo, aparecerá a cor verde na parte inferior do ícone do nodo.
Clicando com o botão direito sobre um nodo é possível reconfigurá-lo (opção Configure) ou ver o
resultado do processamento dele (acesso na última opção do menu).
Ao alterar a configuração de um nodo, ele e os demais nodos no workflow devem ser executados
novamente.
KNIME – Extração de tópicos
43
KNIME - Categorização de Documentos
44
Acesse no KNIME Explorer > Examples >
KNIME - NER e Nuvem de tags
45
http://tech.knime.org/files/009004_nytimesrssfeedtagcloud.zip
KNIME - NER e Nuvem de tags
46
KNIME - Categorização de Documentos
47
Acesse no KNIME Explorer > Examples > _Old Examples (2015 and before)/ 009_TextMining/009001_DocumentClassification
KNIME – Categorização de Documentos
48
KNIME - Agrupamento de Documentos
49
https://tech.knime.org/files/009002_documentclustering.zip
Acesse no KNIME Explorer > Examples > _Old Examples (2015 and before) /009_TextMining/009002_DocumentClustering
KNIME – Agrupamento de documentos
50
Outras Ferramentas
51
R
• Open Source Statistical Platform
• Command driven
Rapid Miner
• Open Source Data Mining Workbench
• GUI
• Built on R and Weka
SPSS Text Analytics for Surveys
• Commercial Text Analytics
• GUI
Softwares utilizados
RapidMiner (http://rapid-i.com)
Programa de código aberto e com plugins para
pré-processamento de texto e consulta ao
WordNet. Permite programação visual do fluxo
de dados da tarefa de descoberta de
conhecimento.
Softwares utilizados
Statistical R (http://www.r-project.org/)
Softwares utilizados
Weka (http://www.cs.waikato.ac.nz/ml/weka/)
Weka
Programa Java de código aberto para mineração de dados. Possui
também recursos para preprocessamento de texto, o que permite
fazer uso dos algoritmos de aprendizado de máquina comuns na
mineração de dados para tarefas de agrupamento e classificação de
textos. Mais detalhes sobre o programa na
página oficial do Weka
.
Instruções de uso do weka para mineração de textos podem ser
obtidas na
weka wiki
.
Algoritmos de Classificação Supervisionada
J48, MNB, SVM, KNN...
Algoritmos de Agrupamento
Simple K-means, SOM
Problemas
Não trabalham com vetores esparsos
Não se dão bem com alta dimensionalidade
Alguns algoritmos Inferem ... Word
i= ‘0’ ..., o que
não queremos
Outros softwares livres
U-Compare: é um sistema integrado para processamento de linguagem
natural e mineração de texto baseado no UIMA Framework. Permite
programação visual do fluxo de dados. Mais detalhes veja na página do
U-Compare.
Orange: Programa C++ de código aberto e acessível via código pyton. Permite
programação visual do fluxo de dados da tarefa de descoberta de
conhecimento. Possui plugins para mineração de texto. Mais detalhes no
site ORANGE.
Softwares livres para mineração de dados: ELKI
TANAGRA
SIPINA
ALPHA MINER
Referências
Rezende, S.O. Sistemas inteligentes: fundamentos e
aplicações, Ed. Manole, São Paulo, 2003.