Desenvolvimento

24 mai, 2017

Criando um sinal de sentimento para empresas negociadas publicamente utilizando IBM Watson no Bluemix

Publicidade

No mundo de hoje, somos sobrecarregados com estatísticas sobre a quantidade de informações desestruturadas que são criadas e publicadas diariamente na Internet. Por exemplo, em um dia pode haver centenas de artigos publicados pela mídia tradicional, e centenas de milhares de tweets sobre a gigante do café, Starbucks. Para extrair informações sobre o sentimento que é relacionado ao Starbucks dessa quantidade de dados impossível de ser lida, utilizamos o IBM Watson para buscar informações valiosas e resumi-las para que possamos entender a tendência dos dados com um relance. Para criar esse sinal de sentimento, nós utilizamos o Bluemix como nossa plataforma como serviço para executar nosso sistema e integramos várias APIs, incluindo a API de Compreensão de Linguagem Natural do Watson. Além do Starbucks, miramos outras 15 empresas em diferentes setores. Depois nós demonstramos como criar e navegar por um sinal de sentimento para uma empresa, agora nós vamos mostrar dois exemplos de como você pode utilizar essa informação em ações de pesquisa.

Anatomia do sinal de sentimento

Twitter

O Twitter tem sido uma fonte de sentimentos públicos postados na Internet desde que explodiu na conferência SXSWi 2007. Uma das razões pelas quais ele é tão atrativo para as pessoas que estão estudando as opiniões dos frequentadores da Internet é que ele tem uma excelente API; a API permite que os programadores sistematicamente baixem e processem informações do site. Além disso, dados históricos estão disponíveis, o que significa que você pode construir sinais que se estendem no histórico e buscar a performance anterior. Para nosso projeto, nós reunimos nossos tweets utilizando a sintaxe GNIP Power Track disponibilizada pelo IBM Insights para o serviço Bluemix para o Twitter. Para cada uma das empresas de interesse do nosso estudo, nós criamos uma regra PowerTrack para aumentar a relevância dos tweets de cada empresa. As referências para a sintaxe das regras do PowerTrack estão disponíveis no site do GNIP. As regras do PowerTrack são tão poderosas que você consegue buscar os tweets sobre as empresas de interesse quase em tempo real, criando um sinal que se atualiza contínua e automaticamente.

Conteúdo web

Para minerar o conteúdo web, nós utilizamos um rastreador de notícias que foi configurado com uma lista de conteúdos de notícias confiáveis. Depois que cada artigo foi rastreado, os metadados relevantes sobre os artigos foram extraídos, incluindo:

  • Data de publicação;
  • URL.

Os dados rastreados são encapsulados por uma chamada de API. Nós podemos buscar por exemplos explícitos de citações da empresa para exibir na interface de usuário hospedada no Bluemix, ou buscar pelo número agregado de menções da empresa que são consideradas positivas (resultado de sentimento maior do que zero), neutras (resultado de sentimento igual a zero), ou negativas (resultado de sentimento menor do que zero).

Como você pode imaginar, o conteúdo web arquivado é muito grande, com mais de 80 milhões de artigos no banco de dados.

Aumentando tweets e conteúdo web utilizando o Watson

Conforme os tweets aparecem no PowerTracks e nós analisamos a web, aumentamos o texto com o Watson Sentiment Analysis, que está disponível através do serviço de Compreensão de Linguagem Natural do Watson. Os dados são classificados em três categorias: positivo, neutro e negativo. Um sinal com uma frequência diária é criado agregando o número de menções positivas, neutras e negativas em um dia específico, t, e é definido pela equação:

Onde:

  • np(t) = Número de menções positivas em um dia específico t
  • nn(t) = Número de menções negativas em um dia específico t
  • nm(t) = Número de menções neutras em um dia específico t

Esse cálculo acontece em um horário fixo todos os dias, e os número da agregação diária são disponibilizados na interface do usuário imediatamente. Os dados estão continuamente sendo coletados e estão disponíveis para a análise para clientes selecionados. Como você pode ver na equação, o sinal é normalizado, mas resulta em um sinal distintamente diferente do que se analisarmos o volume do Twitter para as empresas de interesse.

Empresas de interesse

Nós utilizamos 16 empresas nesse projeto, que estão divididas em dois grupos. 10 empresas do grupo AA têm dados do Twitter de 01 de janeiro de 2017 a 01 de março de 2017. Seis empresas do grupo A têm dados do Twitter de 01 de dezembro de 2015 a 01 de março de 2017. As empresas e o código da bolsa dos grupos:

Grupo AA

  • Buffalo Wild Wings: BWLD
  • Chipotle Mexican Grill: CMG
  • Domino’s: DPZ
  • Fitbit: FIT
  • GoPro: GPRO
  • Garmin: GRMN
  • HP Inc: HPQ
  • McDonalds: MCD
  • Panera Bread: PNRA
  • Starbucks: SBUX

Grupo A

  • Dunkin’ Donuts: DNKN
  • Tableau Software: DATA
  • Imperva: IMPV
  • Splunk: SPLK
  • Salesforce: CRM
  • Apple: AAPL

Visualização de dados relacionados a sentimentos

Nossa equipe construiu uma interface de usuário (UI) que está hospedada no Bluemix para navegar no histórico e nas tendências atuais para os sinais de sentimento para todas as 16 empresas em três setores. A página principal tem um resumo dos setores, e cada empresa tem uma página de detalhe que contém exemplos das menções no período de tempo dos parâmetros, tais quais esta página de detalhes para o Chipotle American Grill.

Utilizando a interface do usuário, qualquer um que esteja interessado nos sentimentos sobre uma empresa pode ver as tendências de sentimento em um relance, e então se aprofundar em menções específicas sobre a empresa para realizar uma análise de qualquer mudança repentina de sentimento ou volume.

Além da habilidade de navegar pelos dados, a UI permite exportar os dados de sentimentos para cada empresa diariamente. Esse sinal de sentimentos pode ser utilizado para análises futuras. Por exemplo, você pode correlacionar com métricas de dados antigos de interesse (como faturamento) e utilizar o sinal como um indicador de previsão para o crescimento do faturamento para o próximo trimestre. Você também pode detectar eventos no sinal de sentimentos que tenham correlação com a alta volatilidade dos preços nos mercados de curto prazo.

Casos de uso

Previsões de faturamento trimestral

Para cada empresa nas listas AA ou A, nós encontramos a data inicial e final para seus trimestres fiscais. Utilizando essas datas, nós integramos o resultado de sentimento durante o trimestre inteiro. Quando as receitas foram anunciadas após o fim do trimestre, nós comparamos a mudança ano a ano no faturamento trimestral e encontramos correlação com o cálculo do resultado de sentimento do Watson.

Enquanto podemos ver algumas exceções que refutam a correlação, para a maioria das empresas no estudo o resultado de sentimento do Watson ajudou na previsão do crescimento de faturamento ano a ano. Integrado com outras funcionalidades em um modelo de aprendizado de máquina, isso pode ser uma ferramenta poderosa para cientistas de dados.

Detector de eventos para volatilidade dos preços das ações

O sinal de sentimentos também pode ser monitorado para encontrar anomalias, ou eventos, que tenham correlação com a volatilidade dos preços das ações. Existem muitas maneiras de realizar a detecção das anomalias na análise de sinais, a mais simples delas é definir um limite e declarar um evento todas as vezes que um sinal passar a fronteira do limite definido. Para propósitos de detecção de eventos no sinal de sentimentos, nós entendemos que isso seria um ajuste fraco. As empresas de interesse têm características distintas que tornam o sinal muito diferente de empresa para empresa. A imagem a seguir mostra um exemplo de duas empresas, Chipotle (CMG) e Dominos (DMZ). A Dominos tem uma variação dia a dia muito maior, mas permanece a maior parte do tempo centrada em próximo a zero. A Chipotle começa com um alto valor de sentimento no início da série, que cai no fim de 2015 durante seus problemas de segurança com os alimentos, e nunca mais recupera totalmente o nível de janeiro de 2015. Um corte no limite poderia satisfazer a Dominos, porque tudo da Chipotle era um evento até que ocorreu o evento de segurança alimentícia.

Para definir um evento para nosso estudo, nós examinamos a primeira derivativa dos sinais de sentimentos, e verificamos se eles excediam a variável, Tau:

Em outras palavras, estamos olhando para uma mudança no sentimento de ontem, comparando com o sentimento de hoje, e chamamos isso de um evento, se a mudança for significantemente fora do normal. Dos 5.918 pontos de dados únicos em nosso estudo, 202, ou 3,4% desses dias resultaram em uma detecção de evento. A imagem a seguir mostra as empresas Chipotle e Dominos com os eventos que são detectados por esse algoritmo.

Evento hoje, volatilidade amanhã

Um evento é determinado pelas mudanças do sinal de sentimento de ontem em relação ao de hoje. Mas o mais interessante é o que isso significa para os preços das ações para amanhã.

Deixe que os índices de todos os eventos em s(i) estejam contidos no conjunto I. E deixe que o preço da ação em um dia específico seja p(i). Agora, defina a mudança no preço das ações de hoje para amanhã para todos os eventos como delta.

E a mudança do preço das ações para qualquer dia específico (a hipótese nula) no estudo é:

Se os eventos são indicadores da volatilidade de preços de ações, então a função de densidade da probabilidade de δe é diferente da hipótese nula, δa.

Utilizando o Dunkin (DNKN) como exemplo, você vê na imagem anterior que em qualquer dia específico existe uma probabilidade de 24% de que a mudança no preço seja de 20 – 40 centavos. Depois um evento, a probabilidade de que a mudança no valor das ações seja de 20 – 40 centavos, dobra para 50%.

É claro, as empresas operam em preços diferentes, então, para algumas, uma mudança de 20 centavos pode ser significante, mas não para outras. Para ver todas as empresas em todos os dias do estudo medindo as mudanças na mesma escala, nós utilizamos a mudança relativa no valor das ações para os eventos:

E a mudança relativa no valor das ações para qualquer dia específico (a hipótese nula) no estudo é:

A figura a seguir é a função de densidade cumulativa de re e ra. A separação entre as duas curvas, com o re abaixo do ra, indica em nosso conjunto de dados que uma mudança maior no preço das ações é mais provável após um evento do que na hipótese nula. Para algumas empresas, esse efeito é maior do que para outras. Se pegarmos somente as empresas que responderam melhor aos eventos, a maior possibilidade de volatilidade seria ainda mais notável. Uma mudança no valor das ações acima de 0,024% é 10% mais provável depois de um evento detectado pelo Watson quando comparado com algum dia específico.

Conclusão

Utilizando o IBM Bluemix e a API Watson Natural Language Understanding, dados do Twitter e da web, nós criamos uma interface para acompanhar os sinais de sentimentos agregados para mais de 16 empresas em nosso projeto. A interface do usuário permite uma navegação e a visualização natural dos dados junto com a possibilidade de baixar os dados dos sinais de sentimentos. Utilizando os dados dos sinais de sentimentos disponibilizados através da interface, nós encontramos dois fortes casos de uso para esses dados: previsões de faturamento trimestral e indicadores de volatilidade diária para os preços das ações.

Recursos para download: Conteúdo em PDF.

***

Anna Chaney faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://www.ibm.com/developerworks/library/cc-sentiment-signal-watson-bluemix/index.html.