quarta-feira, 22 de maio de 2013

Processo de BI Reativo X Pró-ativo: começar com indicadores ou sem hipóteses


Normalmente o processo de BI (Business Intelligence) recebe como entrada indicadores quantitativos tais como níveis de venda e custos (por produto, loja, vendedor, departamento, etc). Neste caso, o objetivo do BI é apresentar graficamente os indicadores e monitorá-los, atualizando-os em tempo real. Estes indicadores são também chamados KPI (Key Performance Indicators), um termo que vem da metodologia de planejamento e gestão chamada BSC (Balanced Scorecard).

Para apresentar tais indicadores, então são utilizados os famosos DASHBOARDS, que são painéis visuais (como na figura 1). Nestes painéis, os indicadores são apresentados de diferentes formas gráficas (linhas, barras, mostradores, mapas, etc). O interessante é que os dados podem ser apresentados em diferentes granularidades de tempo, ou seja, por semana, mês, semestre, ano, etc, e os painéis podem usar mostradores diferentes para cada período (por exemplo, ano a ano). o que permite ao usuário comparar indicadores temporais (ex.: comparar as vendas nos últimos 5 anos).

Os indicadores podem ser apresentados como números (ex. total de vendas), escalas numéricas ou nominais (ex.: bom, médio, ruim, inclusive com cores tais como verde, amarelo e vermelho), direcionais (ex.: setas indicando tendência de subida ou descida no número de clientes), mapas (ex: cores indicando níveis de venda por região). Menos comuns mas também úteis podem ser representações de variáveis qualitativas, como por exemplos as tag clouds (ex.: palavras mais frequentes nas reclamações dos clientes).
Este tipo de abordagem pode ser considerada reativa, pois há uma entrada bem definida e o analista de BI sabe exatamente o que procurar e o que apresentar para o cliente.

A minha crítica a este tipo de processo de BI é que ele é apenas uma evolução dos antigos SIGs (Sistemas de Informações Gerenciais) e dos EISs (Executive Information Systems). A meu ver, o verdadeiro processo de BI deve procurar causas para o que está acontecendo.
Os SIGs têm seu valor pois ajudam a apontar qual o produto mais vendido, em que épocas saem mais ou menos, qual o melhor vendedor, qual o setor que mais gasta, etc. Já o verdadeiro BI deve procurar encontrar o porquê de um produto vender mais que outro, de sair mais numa época que noutra, o porquê de um vendedor ser melhor que outro.
Aí então é que entram as técnicas de análise multidimensional ou cúbica (OLAP) e as técnicas de Data Mining. Mas o processo passa a ser um processo de descoberta, como uma investigação ou pesquisa científica. Em outro capítulo, metodologias para tal processo serão abordadas.



Figura 1: Exemplos de dashboards


Outra forma de fazer BI reativo é analisando a organização, conversando com clientes e usuários e daí então definindo os indicadores. Isto acontece porque muitas vezes o cliente não sabe exatamente o que deve monitorar. Ele tem objetivos ou preocupações (aumentar vendas, diminuir custos, reduzir reclamações de clientes, etc) mas não sabe bem por onde começar. Aí o trabalho do analista de BI é procurar entender que tipo de informações seriam úteis para o gestor atingir seus objetivos.

Agora vamos falar de BI pró-ativo, uma abordagem não muito comum. Neste caso, a entrada é puramente uma base de dados. O cliente não diz o que está procurando, quais seus objetivos ou problemas, mas apenas informa que deseja encontrar algo interessante nos dados. Este paradigma seria bem representado pela seguinte questão: "o que há de interessante nos meus dados".
Neste tipo de abordagem, o objetivo não está bem definido. Ele existe (encontrar algo útil e novo), mas não está claro ou bem detalhado. Isto funciona como uma busca exploratória, onde o analista está procurando encontrar coisas interessantes, sem bem saber por onde ir ou como fazer isto. E não há hipóteses iniciais; o objetivo é justamente tentar descobrir hipóteses para poder depois testar.
Uma forma de fazer isto é utilizar técnicas de Data Mining próprias para tal. A técnica de associação, por exemplo, procura correlação entre variáveis. Foi com este tipo de técnica e uma abordagem pró-ativa que o Walmart descobriu que quem comprava cerveja na 6a-feira também comprava fraldas (a famosa lenda do Data Mining).
Neste tipo de Data Mining, um software é utilizado para encontrar padrões estatísticos nos dados. 

Entretanto, outro problema surge que é selecionar as amostras corretas, pois normalmente não se consegue analisar todos os dados disponíveis.
E também porque é perigoso trabalhar com uma amostra única (o conjunto todo de dados). Por exemplo, uma loja analisou 10 anos de vendas e descobriu um padrão: 90% das mulheres com perfil A compravam o produto X. Ao analisarem amostras ano a ano, descobriram que a probabilidade do padrão era de 100% nos 9 primeiros anos (ou seja, todas as mulheres do perfil A compraram o produto X nos 9 primeiros anos). Mas no último ano, nenhuma das mulheres do perfil A comprou o produto X. A lição é que devemos analisar diversas amostras e comparar os padrões encontrados em cada uma.
As amostras podem ser definidas por tempo (ano a ano, mês a mês, etc) ou por algum outro atributo que permita separar os dados com significado e não aleatoriamente. Por exemplo, pode-se comparar as vendas feitas por homens X vendas feitas por mulheres, adultos X jovens X 3a idade, vendas separadas por tipo de produto ou por loja ou por região, etc. Em outro capítulo, discutiremos técnicas para seleção de amostras.
Assim, pode-se descobrir que um padrão aparece numa amostra e não aparece noutra (ex.: o caso acima citado do produto X), ou que um padrão aparece com uma probabilidade numa amostra (ex.: 80% dos clientes do bairro K utilizam serviço Z) e com outra probabilidade em outra amostra (ex.: apenas 40% dos clientes do bairro L utilizam o serviço Z).

Normalmente, o ser humano tem a tendência de procurar por padrões que se repetem, ou seja, que sejam comuns ou mais frequentes. Por exemplo, quais os produtos mais vendidos, qual o tipo de cliente mais comum, qual o comportamento típico dos consumidores. Mas algumas vezes o incomum também é interessante. Por exemplo, investigar por que somente uma pessoa comprou o produto Y no último mês, por que um vendedor não atingiu a meta (o normal seria premiar o melhor vendedor e descobrir o que os melhores fizeram de bom e em comum para que tais melhores práticas sejam repetidas).

Estas peças fora do padrão são chamados de Outliers. Em alguns casos, eles são mais importantes que o normal. Por exemplo, analisando saídas de um determinado material do almoxarifado de uma empresa, tem-se uma padrão de saída (uma quantidade média ou intervalo normal). Entretanto, num determinado mês, houve muito mais saídas que o normal. Isto deveria gerar um alerta na empresa. Isto pode estar acontecendo por roubo ou pode estar indicando uma tendência que a empresa não soube prever.

Concluindo, pode-se dizer que a abordagem pró-ativa é mais difícil de ser conduzida e até mesmo pode não levar a descobertas interessantes. A princípio, deve-se sempre procurar iniciar com indicadores bem definidos, ou seja, usando uma abordagem reativa. A pró-atividade é útil quando os indicadores já foram esgotados ou quando se quer descobrir algo realmente novo e inesperado. Muitas empresas utilizam abordagens para Gestão da Inovação baseadas em descobertas por acidente ou acaso (o que os americanos chamam de serendipity), e este "pulo do gato" pode fazer a grande diferença  em mercados competitivos. Mas isto é papo para outro capítulo.

terça-feira, 13 de setembro de 2011

Call for Chapters - book on Social CRM

We are editing a new book on Social CRM (Customer Relationship Management) and inviting authors to contribute to it.
The Call for Chapters is available at (and link to information about the book):
http://www.invenio.com.br/cfc.htm

sábado, 28 de maio de 2011

Análise de sentimentos em textos (sentiment analysis)

O que é ?
Uma recente aplicação das técnicas de Text Mining é analisar o sentimento presente em textos. Ou seja, saber qual o sentimento do autor quando escreveu um texto. A tarefa parece meio esotérica, mas a ideia é mais simples. Analisar as palavras no texto e entender o tipo de sentimento que o texto quer expressar.
Em geral, as ferramentas analisam somente 2 tipos de sentimentos: positivo e negativo. Ou seja, saber se o texto está falando bem (positivamente) ou mal (negativamente) sobre um certo tema.

Sinônimos ?
Outro termo utilizado é Mineração de Opiniões (opinion mining).

Para quê ?
Muitas empresas estão preocupadas em saber o que as pessoas estão falando dela ou de seus produtos ou serviços. Querem saber se estão falando bem ou mal e qual o sentimento predominante.

Ferramentas para Análise de Sentimentos ?
Uma das ferramentas que faz análise de sentimentos (positivos ou negativos) está em
http://www.youtube.com/profstanleybrasil#p/u/3/94CyzMxItxk
O usuário entra com palavras-chave para definir um tema ou assunto, a ferramenta captura textos na web sobre este tema (blogs, notícias, páginas e posts do twitter) e depois analise o tipo de sentimento presente no texto. No final, a ferramenta diz quantos textos positivos, negativos ou neutros foram encontrados (além de listar os textos de cada categoria).

Como fazem isto ?
Em geal, são utilizadas ontologias de tarefa para tanto. Este tipo de ontologia possui uma lista de palavras (simples e expressões) que servem como indicadores do sentimento. Além disto, são utilizadas graus numéricos para indicar o quanto a palavra ou expressão indica o sentimento. Estes graus serão utilizados em processos probabilísticos pois palavras de 2 tipos podem estar presentes no texto (e mesmo um termo pode ser usado positiva ou negativamente). Assim, o processo probabilístico consegue identificar o sentimento predominante mesmo que palavras dos 2 tipo estejam presentes (qual a probabilidade de cada sentimento estar presente no texto).

Analisam conteúdo ?
Na verdade, as ferramentas não analisam o que exatamente os textos estão falando, apenas procuram encontrar o sentimento pela análise de indicadores (palavras positivas ou negativas).

E outros tipos de sentimentos além de positivo ou negativo ?
Existem ontologias mais detalhadas, ou seja, que permitem identificar sentimentos mais precisos.
O modelo OCC é um modelo psicológico e cognitivo que contém descrições de 22 tipos diferentes de emoções (por exemplo, “happy for”, “resentment”, “gloating”, “pity”, “joy”, “distress”, “pride”, “shame”, “admiration”, “reproach”, “love”, “hate”, “hope”, “fear”, “satisfaction”, “fears-confirmed”, “relief”, “disappointment”, “gratification”, “remorse”, “gratitude” e “anger”).
Ref.: Ortony, A.; Clore, G.L.; Colins, A. (1988). The Cognitive Structure of Emotions, Cambridge University Press. 1988

Outras referências ?
Um bom survey sobre o assunto encontra-se em:
Pang, Bo and Lee, Lillian. (2008, January). Opinion Mining and Sentiment Analysis.
Foundations and Trends in Information Retrieval, v.2, n.1-2. Delft, Netherlands.

Existe outra ontologia (Affect Base) criada pelo grupo “The Cognitive and Communication Technologies” (http://tcc.itc.it/), baseada no Wordnet.
E há também a WordNet Affect (http://wndomains.itc.it).

terça-feira, 29 de junho de 2010

Demonstração em vídeos de software para Text Mining

A InText Mining disponibilizou no youtube vídeos de demonstração do seu software Text Mining Suite.
Veja no canal www.youtube.com/intextmining

terça-feira, 1 de dezembro de 2009

Erros ortográficos, qualidade de textos

Um dos entraves à mineração de textos são os erros encontrados em textos.
Todo processo de mineração envolve uma etapa inicial de preparação dos dados. Não é diferente no processo de Text Mining.

Certa vez estava tentando minerar prontuários médicos de pacientes numa clínica. Eram tantos erros que distorciam os resultados. Os médicos registravam as informações com muita rapidez, sem voltar para corrigir erros (já que o trabalho deles não é este). Corretores ortográficos poderiam ajudar, mas eram erros de digitação na maioria das vezes. Tivemos que criar uma ontologia (ou thesaurus) para agrupar palavras relacionadas a um mesmo conceito, incluindo ali os erros.

Em outro projeto, um sistema de recomendação para um chat, fizemos um corretor ortográfico simples, estatístico, baseado na Sabedoria das Massas (mais ou menos como o Google usa). Usando um algoritmo de similaridade entre palavras (a função de Edit Distance chamada Levenshtein), era possível comparar as palavras digitadas no chat com todas as já utilizadas em sessões anteriores. As mais similares eram levadas para análise; a grafia mais comum era considerada a correta. Tudo isto em real time.

Abaixo vão alguns textos interessantes sobre este assunto de erros em textos.

Text Data Quality: Mistakes and More
Posted by Seth Grimes
http://intelligent-enterprise.informationweek.com/blog/archives/2009/11/text_data_quali.html;jsessionid=H0RZQT5Q2UZKPQE1GHPSKHWATMY32JVN
Text Data Quality
by Seth Grimes
http://www.b-eye-network.com/channels/1394/view/12072

On Text Data Quality
Posted by Manya Mayes
http://blogs.sas.com/text-mining/index.php?/archives/48-On-Text-Data-Quality.html

5th Text Analytics Summit SAS and Teragram Workshop
by Manya Mayes
http://www.textanalyticsnews.com/usa/presentations/SASTeragramWorkshop.pdf

Recuperação de Informações Geográficas Parte 3 - por Cleber Gouvêa

Para viabilizar a Resolução de Topônimos torna-se necessário, portanto conforme ilustrou o post anterior identificar as localidades relacionadas nos textos para posteriormente desambiguá-las visando verificar o seu sentido correto. Para viabilizar isso são utilizadas técnicas de Processamento de Linguagem Natural (ex: REM ou WSD) as quais baseiam-se na verificação de evidências (ex: termos co-ocorrentes às localidades) que possam auxiliar na identificação do sentido das localidades. Para a resolução de cada tipo de ambiguidade são utilizadas evidências específicas.

Para a ambiguidade geo/não-geo são analisadas evidências (denominadas de expressões de contexto) que aparecem junto dos topônimos alvo (ex: "cidade de", "nos arredores de") que auxiliem na identificação de seu caráter geográfico. Já para a ambiguidade geo/geo torna-se necessário a verificação de entidades que auxiliem na identificação correta da posição geográfica da localidade, para isso as estratégias baseiam-se na identificação de evidências que representem o estado ou país relacionado a localidade a ser desambiguada, como ilustra o exemplo abaixo.

Exemplo Desambiguação Geo/Geo

Para a desambiguação geo/geo outra estratégia comum é a utilização de heurísticas (ex: considerar como sentido correto a localidade que possuir maior número de habitantes, ou a que representa alguma capital).

Para possibilitar a inferência dessas evidências nos textos estas são armazenadas em gazetteers, podendo ser incluídas nessas estruturas de forma manual (abordagem baseada em conhecimento) ou automaticamente (aprendizagem automática). O primeiro método depende de um especialista humano, já o segundo busca a obtenção automática dessas evidências utilizando pra isso análise de corpora previamente anotada.

A abordagem manual é útil apenas para domínios específicos (ex: para o georreferenciamento de textos de um conjunto limitado de informações ou linguagens específicas), para viabilizar a identificação de evidências em larga escala torna-se necessário, no entanto a utilização de métodos automáticos. Para serem viáveis estes devem, contudo serem simples e extensíveis, não necessitando de anotação de grandes quantidades de textos e também permitindo o suporte a variados tipos de idiomas, o que devido às características específicas das linguagens apresenta-se como um desafio importante.

Após a resolução dos topônimos encontrados nos textos estes podem ser representados com o auxílio dos gazetteers a partir de coordenadas geográficas, viabilizando assim todas as aplicações apresentadas no primeiro post.

Para a identificação das coordenadas geográficas relacionadas às localidades vários serviços de geo-codificação encontram-se disponíveis, dentre os principais estão o Geonames e a Yahoo Geo-Coding API.

Para mais informações sobre geotagging e os desafios envolvendo o georreferenciamento de textos os seguintes livros são importantes referências:

Georeferencing: The Geographic Associations of Information

The Geospatial Web

Há também várias conferências e workshops sobre o assunto, os principais são o GIS e o GIR (foco acadêmico) e Where 2.0 (foco comercial).

Na web utilizem algumas destas palavras-chave (em inglês porque o conteúdo em português ainda é limitado):

- Geographic Information Systems
- Geographic Information Retrieval
- Geolocation
- Geotagging
- Geobrowsers
- Neogeography
- Geospatial Web
- Geoweb
- Georeferencing

Recuperação de Informações Geográficas Parte 2 - por Cleber Gouvêa

Conforme ilustrou o post anterior, como na web não há nativamente mecanismos para a identificação do contexto geográfico das informações, a Recuperação de Informações Geográficas (RIG), área surgida a partir da demanda por uma pesquisa integrada entre os Sistemas de Informação Geográfica e a Recuperação de Informações tradicional[1] tem sido alvo de intensa pesquisa, podendo integrar-se também a outras áreas específicas.




Figura Áreas Relacionadas à RIG
Fonte: https://dspace.ist.utl.pt/bitstream/2295/154018/1/GeographicalR.ppt

O foco central é lidar com todos os problemas da Recuperação de Informações que envolvam algum tipo de consciência espacial (spatial awareness), ou seja, que incluam referências geográficas (georreferências), visando auxiliar dessa forma na identificação e recuperação das informações de acordo especificamente com seu contexto geográfico.

O processo de identificação do contexto geográfico de textos é denominado de (geotagging [2] e envolve duas etapas principais:

Geo-Parsing - tem o objetivo de reconhecer as referências geográficas nos textos ignorando nomes de localidades que não possuam sentido geográfico (ex: nomes de pessoas com o mesmo nome de localidades).

Geo-Coding - busca desambiguar as localidades recuperadas, ou seja, associar cada localidade a apenas uma única localização geográfica (footprint). Como os textos podem possuir mais que uma localidade desambiguada torna-se necessário também definir algoritmos de ranqueamento específicos visando qualificar as localidades de acordo com o seu grau de associação com o texto.

Para viabilizar a execução destas etapas os dois principais componentes utilizados são:

Gazetteer / Ontologia Geográfica - Os quais buscam representar e estruturar os relacionamento semânticos entre as localidades, incluindo também outros detalhes relacionados a elas (ex: coordenadas geográficas, e outras entidades que auxiliem nos processos de georreferenciamento). Dependendo da complexidade da sua estrutura podem ser simples dicionários geográficos (gazetteers) ou complexas ontologias geográficas.

Índice Espacial - O qual tem o objetivo de auxiliar no processo de recuperação de informações geográficas representando as informações georreferenciadas. Associam dessa forma os documentos às localidades representadas por eles, podendo utilizar também algum algoritmo de relevância para qualificar esse relacionamento. O objetivo é permitir com isso a recuperação de documentos de acordo com a sua relevância para determinada localidade(relevância spacial) utilizando os mesmos princípios da recuperação de informação tradicional (que utiliza, no entanto a relevância temática).

Como os topônimos (ex: cidades, países, etc.) conseguem identificar precisamente determinada região espacial eles têm sido priorizados para a identificação do contexto geográfico dos textos. Esse processo denominado de Resolução de Topônimos [3] traz, contudo desafios específicos já que principalmente do ponto de vista linguístico um topônimo pode possuir variados tipos de ambiguidade. Essas ambiguidades são divididas habitualmente em [2]:

Ambiguidade Geo/Não-Geo - quando uma localidade possui ambiguidade com outro tipo de entidade não-geográfica (ex: São Paulo cidade e São Paulo time de futebol).

Ambiguidade Geo/Geo - ocorre quando uma localidade possui ambiguidade com outro tipo de localidade (homonímia), por ex: Belém (no Pará) e Belém (na Paraíba) ou mesmo ambiguidade entre cidades/estados por ex: Rio de Janeiro (cidade) e Rio de Janeiro (estado). Outra ambiguidade desse tipo é quando uma localidade pode ser identificada por meio de outras definições (sinonímia), ex: Rio de Janeiro e "Cidade Maravilhosa" ou "Rio".

As técnicas utilizadas para a Resolução de Topônimos são apresentadas no próximo post.

Referências

1. Larson, R.R., Geographical information retrieval and spatial browsing. Geographical Information Systems and Libraries: Patrons, Maps, and Spatial Information. pp. 81-124. 1996.

2. Amitay E., Har’el N., Sivan R., Soffer A., Web-a-where: Geotagging Web Content. In Proceedings of the 27th SIGIR, pages 273–280, 2004.

3. Leidner J. L., Toponym Resolution in Text - Annotation, Evaluation and Applications of Spatial Grounding of Place Names. Edinburgh: Institute for Communicating and Collaborative Systems, 287p. 2007 (Tese, Doutorado em Ciências da Comunicação).