Analisar o Texto de Sites de Mídia Social com o InfoSphere BigInsights

Usar ferramentas baseadas no Eclipse para criar, testar e publicar extratores de texto

A análise de dados de mídia social frequentemente requer processamento de mensagens baseada em texto para categorizar o conteúdo das mesmas, eliminar falso positivos, avaliar os sentimentos expressados e executar funções relacionadas. Tais esforços requerem extrair contexto dos dados textuais, um capacidade oferecida por meio do InfoSphere BigInsights, uma plataforma IBM baseada no projeto Apache Hadoop. Este artigo apresenta o desenvolvimento de analítica de texto e os ambientes de tempo de execução do BigInsights, destacando como é possível usar ferramentas baseadas no Eclipse para criar, testar e publicar extratores de texto em seu cluster para que seja possível analisar conteúdo relevante para seu aplicativo.

Cynthia M. Saracco, Senior Software Engineer, IBM

photo: Cynthia SaraccoCynthia M. Saracco é arquiteta de soluções senior no Silicon Valley Laboratory da IBM, especializada em tecnologias emergentes e gerenciamento de informações. Ela tem mais de 25 anos de experiência no segmento de mercado de software, escreveu três livros e mais de 70 trabalhos técnicos e possui sete patentes.


nível de autor Master do
        developerWorks

Gary Robinson, Executive Consultant, IBM

Gary RobinsonGary Robinson é consultor executivo no IBM Silicon Valley Laboratory, atualmente trabalhando com big data, especializado em analítica de texto. Ele também gerencia o canal IBM Big Data no YouTube em www.youtube.com/ibmbigdata. Trabalhou em várias funções técnicas em tecnologias de Information Management novas e emergentes para a IBM nos EUA e no Reino Unido.



Vijay Bommireddipalli, Software Engineering Manager, IBM

Vijay BommireddipalliVijay Bommireddipalli gerencia uma equipe de engenharia de big data no Silicon Valley Laboratory da IBM. Atualmente, ele foca análise de dados de mídia social e de texto não estruturado.



31/Jul/2013

Como consumidores postam cada vez mais mensagens digitais sobre produtos comerciais e serviços em sites de mídia social, mais organizações estão lançando projetos de big data envolvendo análise de mídia social. Os objetivos de tais projetos podem incluir entender percepção pública de uma marca, avaliar a eficácia de uma campanha de marketing, identificar novas oportunidades de negócios ou inibidores de negócios, avaliar a posição competitiva de uma marca etc.

Apesar de os objetivos de projetos de análise de mídia social poder ser diverso, os profissionais de TI geralmente descobrem que as tecnologias requeridas para atingir esses objetivos incluem:

  • Uma plataforma que pode processar volumes grandes de dados variados de forma eficiente.
  • Um mecanismo de análise de texto que pode extrair contexto de blogs, quadros de mensagens e outras postagens em sites de mídia social.
  • Um ambiente de desenvolvimento que permite que programadores criem software específico do domínio para análise de dados de texto.
  • Ferramentas que analistas de negócios podem usar para analisar dados de texto.

Este artigo explora o InfoSphere BigInsights, uma plataforma de big data da IBM que fornece essas e outras tecnologias para permitir que organizações tenham um início rápido com projetos de análise de dados de mídia social. Muitos dos recursos de análise de texto descritos aqui também se aplicam a analisar outros tipos de dados de texto além de postagens em mídia social. Além disso, a maioria dos recursos de análise de texto descrita aqui também estão incluídos no InfoSphere Streams, uma oferta complementar para processar grandes volumes de dados de fluxo na memória.

Plano de Fundo

Alavancando Ativos Pré-desenvolvidos para o BigInsights

Este artigo apresenta a tecnologia de análise de texto de big data da IBM e explora como é possível usá-la para criar extratores de texto customizados para analisar dados de mídia social. Em muitos casos, pode ser que você não queira desenvolver toda a analítica desde o início e que é aí que é possível alavancar aceleradores de aplicativos de big data da IBM. O BigInsights inclui o IBM Accelerator for Social Data Analytics (SDA) para ajudar a iniciar a implementação de seus aplicativos de dados sociais. Aceleradores são componentes de software que aumentam a velocidade na qual um caso de uso pode ser implementado na plataforma de big data da IBM. Eles incluem código fonte e de objeto que usuários podem alavancar conforme necessário para seus aplicativos.

SDA inclui aplicativos customizáveis que permitem um usuário final a extrair feedback relacionado a produtos, serviços, eventos etc. usando sinais em mídia social. O acelerador alavanca o BigInsights e o InfoSphere Streams para fornecer análise de dados de mídia social em descanso e em tempo real usando conectores pré-desenvolvidos. SDA inclui vários artefatos de software que ajudam empresas a desenvolver perfis de mídia social e explorar o sentimento, "buzz" e intenção de compra associados a determinadas marcas ou produtos; essa análise pode ajudar com relação a gerenciamento de marca e aplicativos de geração de dicas. Como você provavelmente adivinhou, muitos desses artefatos usam os recursos analíticos de texto que apresentamos aqui.

SDA alavanca a estrutura de aplicativo do BigInsights, o que significa que aplicativos podem ser planejados, parametrizados e executados conforme necessário usando o conjunto de ferramentas da web. Consulte Recursos para obter detalhes.

Caso não esteja familiarizado com o InfoSphere BigInsights, é uma plataforma de software projetada para ajudar organizações a descobrir e analisar insights de negócios ocultos em grandes volumes de uma gama diversa de dados — geralmente ignorada ou descartada por ser muito inviável ou difícil de processar utilizando meios tradicionais. Exemplos desses dados incluem dados de mídia social, feeds de notícias, registros de logs, fluxos de cliques, saída de sensor eletrônico e, até mesmo, alguns dados transacionais.

Para ajudar as empresas a derivarem de formas eficiente valor desses dados, a Enterprise Edition do BigInsights inclui diversos projetos de software livre, incluindo o Apache Hadoop, e diversas tecnologias desenvolvidas pela IBM. Hadoop e seus projetos complementares fornecem uma estrutura de software efetiva para aplicativos com muitos dados que exploram ambientes de computação distribuídos para atingir alta escalabilidade. As tecnologias IBM enriquecem essa estrutura de software livre com software analítico, integração corporativa de software, extensões de plataformas e ferramentas. Entre as extensões fornecidas pela IBM estão um mecanismo de análise de texto e ferramentas de desenvolvimento de aplicativos baseadas no Eclipse. Para mais informações sobre o BigInsights, consulte Recursos.

Para ajudá-lo a entender como organizações podem iniciar a análise de texto com o BigInsights, considere um cenário de negócios comum no qual analistas desejam explorar a visibilidade, a abrangência e o buzz sobre uma determinada marca ou serviço. Vamos usar o IBM Watson como a marca de amostra e explorar um aspectos simples de análise de postagens de mídia social. Se não estiver familiarizado com o IBM Watson, é um projeto de pesquisa que executa analítica complexa para responder perguntas apresentadas em uma linguagem natural. Em 2011, o IBM Watson foi o primeiro colocado no programa de televisão de jogo Jeopardy! , ganhando de dois concorrentes humanos líderes (consulte Recursos).


Aspectos Chave de Analítica de Texto

As ferramentas de análise de texto e tecnologia de tempo de execução fornecidas com o BigInsights incluem diversas tecnologias chave para ajudar organizadores a associarem estrutura e contexto a postagens em blogs, relatórios de notícias e outros dados de texto:

  • Uma linguagem declarativa para identificar e extrair conteúdo de dados de texto — A Annotation Query Language (AQL) permite que programadores criem visualizações (coleções de registros) que correspondem a regras especificadas.
  • Dicionários criados pelo usuário ou específicos do domínio— Dicionários podem identificar contexto relevante entre texto de entrada para extrair insight de negócios de documentos. Por exemplo, um dicionário de segmentos de mercado, como assistência médica, financeiro ou de seguro, pode ajudar usuários a obterem insight em qual a proximidade de uma determinada marca (por exemplo, IBM Watson) com relação a um ou mais segmentos de mercado específicos.
  • Regras criadas por usuários para extração de texto— Ferramentas de desenvolvimento de descoberta de padrão e de expressão regular (regex) permitem que programadores especifiquem como texto deve ser analisado para isolar dados de interesse. Por exemplo, um programador pode especificar que determinadas palavras-chave devem ou não devem aparecer em uma determinada proximidade umas das outras. Se "IBM" e "software" aparecerem em alguns tokens de distância de "Watson", isso pode ser um bom indicador de que o texto é sobre o projeto de software IBM Watson. Se "Bubba" aparecer logo antes de "Watson", isso provavelmente indica que o documento é sobre Bubba Watson (um jogador de golfe profissional), em vez de sobre o projeto de software IBM Watson.
  • Rastreamento e visualização de procedência— A análise de texto é frequentemente de natureza iterativa, requerendo que regras (e dicionários) sejam desenvolvidos uns sobre outros e refinados ao longo do tempo. A necessidade de refinamento frequentemente surge por meio de testes com relação a dados de amostra. O rastreamento e exploração de procedência (ou origem) dos resultados produzidos pela aplicação de um extrator de texto ajuda os programadores a identificarem áreas que podem precisam de refinamento adicional.

A Figura 1 ilustra a arquitetura da solução de análise de texto da IBM fornecida com o InfoSphere BigInsights e o Streams. Desenvolvedores usam uma linguagem declarativa (AQL) e ferramentas fornecidas pela IBM para criar extratores para analisar dados de texto. O mecanismo de tempo de execução otimiza de forma transparente as instruções declarativas expressadas em AQL, muito como um otimizador baseado em custo em um sistema de gerenciamento de banco de dados relacional otimiza SQL. A saída dessa etapa de otimização é um plano compilado, que define como o BigInsights processará a coleção de documentos de entrada em seu sistema de arquivos distribuído.

Figura 1. Arquitetura de Análise de Texto de Big Data da IBM
Arquitetura de Análise de Texto de Big Data da IBM

Ao implementar extratores de texto em seu cluster do BigInsights, é possível chamá-los por meio de BigSheets (uma ferramenta baseada na web com uma interface semelhante a uma planilha), por meio de Jaql (uma linguagem de consulta e script) ou por meio de uma API Java™ .

Este artigo explora um cenário de analítica de texto de ponta a ponta para ajudá-lo a se familiarizar com o processo de desenvolvimento, publicação, implementação e uso de um aplicativo extrator de texto customizado em um cluster do BigInsights. A abordagem descrita aqui inclui:

  1. Coleta e preparação de dados de amostra.
  2. Desenvolvimento e teste de um extrator para analisar texto usando plug-ins do Eclipse.
  3. Publicação e implementação de um aplicativo de análise de texto simples em um cluster do BigInsights.
  4. Aplicação de uma função analítica de texto de BigSheets e inspeção de resultados de amostra.

Vamos explorar estas etapas em mais detalhes.


Etapa 1: Coletar e Preparar seus Dados de Amostra

O desenvolvimento de um aplicativo de análise de texto requer dados de amostra para referência e teste. Geralmente, esses dados de amostra serão um subconjunto do que já foi coletado e armazenado em seu sistema de arquivos distribuído. Dependendo do formato de seus dados de entrada, pode ser necessário preparar ou transformar os mesmos em um de diversos formatos suportados pelo conjunto de ferramentas de análise de texto do BigInsights. O Centro de Informações do BigInsights descreve os formatos de arquivos suportados, assim como fornece uma amostra de script Jaql para converter dados de formatos comuns para um dos formatos necessários (consulte Recursos).

Para o cenário deste artigo, usamos um aplicativo de amostra do BigInsights para procurar em sites de mídia social informações sobre o projeto IBM Watson. "Analisando a Mídia Social e os Dados Estruturados com o InfoSphere BigInsights" explica como chamar o aplicativo de amostra e explorar um subconjunto de sua saída. Este artigo desenvolve sobre esse cenário, realizando drill down ainda mais em postagens de notícias e blogs como uma maneira de ilustrar como criar e executar um aplicativo de análise de texto simples para nossa marca alvo IBM Watson. O arquivo WatsonNewsBlogsData.json anexado contém um subconjunto de informações coletadas pela execução de um aplicativo de coleta de dados de mídia social de amostra fornecido com o BigInsights. Entrada do aplicativo incluído:

  • Procure os termos "IBM", "Watson"
  • Um intervalo de data de 1 de janeiro a 1 de junho de 2012
  • No máximo 25.000 correspondências

Esses parâmetros de entrada fizeram o aplicativo coletar dados de sites de mídia social que mencionam IBM e Watson (apesar de não necessariamente juntos em uma única frase). Obtivemos mais de 10.000 registros de um host de sites de mídia social internacional para o período de tempo especificado.

Para manter coisas simples, o arquivo de amostra contém somente campos selecionados de algumas centenas de registros de blogs e de notícias publicados pelos sites patrocinados da IBM, incluindo IBM.com e ASmarterPlanet.com. O campo TextHtml contém o post de notícias ou de blog; ele funciona como o foco primário de nossos esforços de desenvolvimento. O conjunto completo de saída coletado pelo aplicativo de amostra reside em nosso sistema de arquivos distribuído do BigInsights e funciona como a base para as planilhas do BigSheets.


Etapa 2: Desenvolver e Testar seu Extrator de Texto

O BigInsights fornece assistentes baseados no Eclipse para ajudar a desenvolver e testar software analítico de extratores— de texto que extrai estrutura e contexto de postagens de mídia social e outros dados baseados em texto. É necessário ter um ambiente de desenvolvimento do Eclipse apropriado para que seja possível fazer download e instalar o plug-in de desenvolvimento de aplicativos do BigInsights. O Centro de Informações do BigInsights inclui informações sobre o software Eclipse pré-requisito e a instalação do plug-in do BigInsights (consulte Recursos). Para nosso cenário de teste, usamos o Eclipse Helios Service Release 2 e o Eclipse Data Tools 1.9.1.x em um sistema Linux® . Nosso ambiente de implementação de destino do BigInsights era o t BigInsights Enterprise Edition 2.0.

O plug-in do BigInsights Eclipse inclui um Task Launcher e ajuda online para guiá-lo por meio do processo de desenvolvimento de extratores de texto customizados e publicação desses como aplicativos em um cluster do BigInsights. Apesar de estar além do escopo deste artigo fornecer um tutorial completo sobre como desenvolver extratores de texto, vamos resumir algumas etapas chave aqui. Para obter detalhes, consulte o Centro de Informações do BigInsights.

De forma geral, aqui vão as etapas básicas para desenvolver e testar um extrator de texto:

  1. Crie um projeto do BigInsights.
  2. Importe e identifique dados de amostra para testar. O arquivo WatsonNewsBlogsData.json contém diversas centenas de registros e implementa um formato de dados de array JSON. Para testar em nosso ambiente Eclipse, usamos o recurso de exportação BigSheets para exportar 50 registros de dados como um arquivo de valores separador por vírgula (arquivo CSV) contendo somente os campos ThreadId e TextHtml. Em seguida, executamos um script Jaql para converter esse arquivo no formato de arquivo delimitado suportado pelo conjunto de ferramentas BigInsights Eclipse. Por fim, identificados esse arquivo .del como a coleção de documentos de entrada para o conjunto de ferramentas de analítica de texto Eclipse especificando inglês como o idioma dessa coleção. (Outros formatos de documento e idiomas suportados.)
  3. Crie os artefatos de análise de texto necessários para atender suas necessidades de aplicativos. Isso pode envolver a criação de diversos módulos AQL, scripts AQL, dicionários definidos pelo usuário etc. Em um momento, vamos revisar uma parte de um script AQL que define um extrator simples.
  4. Teste seu código com relação aos documentos de amostra contidos na coleção de entrada importada para o Eclipse. Use recursos integrados, como o Annotation Explorer e a área de janela Error, para inspecionar os resultados da sua execução de teste.

A Figura 2 ilustra a aparência que seu ambiente Eclipse pode ter após o teste de um extrator desenvolvido de forma customizada. A área de janela central contém o Task Launcher, que pode ser usado para chamar assistentes que o guiam por meio de tarefas de desenvolvimento comuns. A área de janela central inferior contém o Annotation Explorer, enquanto que a área de janela direita exibe o Error Log. Na extrema esquerda está o Project Explorer, que exibe o conteúdo de seu projeto.

Figura 2. Ambiente de Desenvolvimento Baseado no Eclipse para Analítica de Texto do BigInsights
Ambiente de Desenvolvimento Baseado no Eclipse para Analítica de Texto do BigInsights

Mencionamos que programadores escrevem AQL para expressar regras e condições para extrair entidades de interesse do texto. Um desenvolvedor de expressão regular e ferramentas de descoberta de padrão fornecidos com o plug-in do BigInsights podem ajudar programadores a construir scripts AQL sofisticados e complexos para atender suas necessidades específicas do aplicativo. Além disso, o tutorial online e os materiais de referência ajudam programadores a entenderem AQL. Embora não possamos abranger AQL neste artigo, a Listagem 1 contém um extrato de um extrator simples para ajudar a identificar quais postagens de mídia social mencionam nossa marca alvo ("Watson") no contexto no segmento de mercado médico ou de assistência médica.

Lista 1. Conteúdo Parcial de um Extrator de Texto para Explorar a Marca IBM Watson
― Section 1:  Set-up and pre-processing work.
― Module declaration and document schema settings (not shown)
 . . . 
― Remove HTML tags from the input documents prior to analysis.
detag Document.text as NoTagDocument 
detect content_type always; 

― Section 2:  Create simple "Watson" dictionary and
― look for matches in document.

― Create a simple dictionary for Watson.
create dictionary AllWatsonDict as ('Watson');

― Create a view of all documents that match the Watson dictionary.
create view AllWatson as
extract 
   R.text as text,
   dictionary 'AllWatsonDict' on R.text as match
from NoTagDocument R;

― Since a single document may contain multiple references that match
― the Watson dictionary, let's consolidate the results.
― In other words, we want at most 1 record returned for each document that
― contains 1 or more matches to our Watson dictionary.
create view Watson as
select R.* 
from AllWatson R
consolidate on R.text using 'ContainedWithin';

― Section 3:  Create a dictionary of medical and health care terms.
― Use this dictionary to further qualify documents
― with Watson dictionary terms.
―
― Create a simple medical dictionary
create dictionary Medical as
('healthcare', 'medicine', 'medical', 'hospital', 'cancer');

― Identify Watson documents that relate to the medical field.   
create view WatsonMed as
extract
   R.text as text,
   dictionary 'Medical' on R.text as match
from Watson R;

― Consolidate the results
create view WatsonMedFinal as
select R.*
from WatsonMed R
consolidate on R.text using 'ContainedWithin';

― Externalize the output.
― This view will be transformed into a BigSheets function later.
output view WatsonMedFinal;

Vamos revisar de forma resumida o código neste extrator de amostra. A Seção 1 da Listagem 1 executa qualquer trabalho de configuração e pré-processamento necessário. Por exemplo, a instrução detag remove tags HTML dos documentos de entrada para que possam ser processados como texto simples.

A Seção 2 define um dicionário sequencial denominado AllWatsonDict para nossa marca. Como nossa marca alvo é simplesmente conhecida como "Watson", esse dicionário não cita nenhum alias, abreviação ou apelido. Assim, o dicionário contém somente uma entrada. A visualização AllWatson faz com que o mecanismo de análise de texto procure os documentos de entrada sem tags para aqueles que contêm uma ou mais correspondências dos termos de AllWatsonDict. (Alguns sites de mídia social fazem referência a "IBM" e "Watson" nos campos de assunto ou de autor, mas não no post em si. Por exemplo, um blogger popular da IBM Todd "Turbo" Watson realiza postagens sobre uma ampla gama de assuntos. Portanto, nosso código precisa descartar as postagens que não mencionam "Watson" no campo TextHtml.) É claro que alguns registros contêm diversas referências a "Watson", portanto, como nós queremos somente preservar uma instância desses registros, a visualização Watson consolida esses registros.

A Seção 3 executa trabalho semelhante ao da Seção 2. Especificamente, define um dicionário e filtra os resultados de qualificar documentos que fazem referência a "Watson" com o conteúdo deste dicionário. Novamente, se qualquer documento resultante contiver diversas referências a termos médicos, queremos retornar somente uma instância desse documento, de forma que o código inclua outra cláusula consolidate on . Por fim, o script exterioriza a saída do processo de extração por meio de uma visualização denominada WatsonMedFinal.

Em um momento, você irá entender como publicar esse extrator de texto para um cluster do BigInsights e chamar o extrator como uma função em BigSheets.


Etapa 3: Publicar e Implementar seu Software

Quando você estiver satisfeito com os resultados produzidos por seu extrator, ele estará pronto para ser publicado no catálogo de aplicativos de um cluster do BigInsights. O conjunto de ferramentas do Eclipse inclui um assistente BigInsights Application Publish para guiá-lo pelo processo. Por exemplo, para publicar um extrator de texto simples que inclui a AQL mostrada na Listagem 1, fornecemos a entrada a seguir ao assistente:

  1. Conexão do servidor do BigInsights
  2. Nome de nosso novo aplicativo (WatsonTextDemo)
  3. Tipo de aplicativo (text analytics)
  4. Nome do módulo de analítica de texto AQL (MyDemo) e nome da visualização de saída AQL (WatsonMedFinal) a serem usados
  5. ID exclusivo do BigSheets para o extrator (WatsonTextDemo)

Aceitamos padrões para os outros parâmetros de entrada e publicamos o aplicativo no cluster do BigInsights especificado na conexão do servidor. Neste ponto, o trabalho no Eclipse foi concluído. As etapas finais — implementar o aplicativo e executá-lo como uma função do BigSheets — foram executadas a partir do console da web do BigInsights.

Para implementar o aplicativo publicado, ativamos o console da web do BigInsights e efetuamos login com um ID que tinha privilégios administrativos apropriados. Na guia Applications, usamos o botão Manage para identificar e implementar nosso aplicativo de destino. A Figura 3 ilustra a visualização de gerenciamento do catálogo de aplicativos, que indica que o aplicativo WatsonTextDemo foi implementado no cluster.

Figura 3. Gerenciando e Implementando Aplicativos a partir do Catálogo de Aplicativos da Web do BigInsights
Gerenciando e Implementando Aplicativos a partir do Catálogo de Aplicativos da Web do BigInsights

Etapa 4: Executar sua Função de Análise de Texto no BigSheets

Após ter desenvolvido, testado e implementado seu extrator de texto desenvolvido de forma customizada, chegou a hora de executá-lo com relação a dados armazenados em seu cluster de destino do BigInsights. Conforme mencionado anteriormente, o BigInsights permite chamar os extratores de texto por meio de uma API Java, por meio de Jaql e por meio de BigSheets. A chamada por meio de BigSheets não requer nenhuma codificação ou script adicional. É algo que qualquer analista de negócios pode executar e é o cenário que vamos descrever brevemente aqui.

Para chamar o extrator de texto de amostra com relação aos dados de mídia social coletados sobre "IBM" e "Watson", siga algumas etapas simples:

  1. Crie uma ou mais planilhas principais no BigSheets com base nos dados de mídia social armazenados no sistema de arquivos distribuído, seguindo o processo padrão de BigSheets (consulte Recursos para obter mais informações).
  2. Desenvolva uma nova planilha filha na(s) planilha(s) principal(ais) criada(s) na etapa anterior. Nessa planilha filha, crie uma nova folha que chame uma função — especificamente, a função de análise de texto desenvolvida de forma customizada que acaba de ser implementada (essa função será localizada no menu Categories sob "textanalytics" ou sob o descritor de categoria que você forneceu ao publicar seu aplicativo). Quando solicitado, especifique a(s) coluna(s) apropriada(s) como entrada para sua função. Criamos nossa função para requerer somente uma única coluna de entrada, portanto, especificamos TextHtml da planilha filha como entrada. Como opção, use a guia Carry over do menu de função para especificar quaisquer colunas que possa desejar reter na folha de resultados, como as colunas ThreadId, TextHtml, Type e Url.
  3. Salve e execute a planilha filha. Os resultados incluirão somente aqueles registros que satisfazem a lógica da função de análise de texto. Em nosso cenário, isso significa que registros que contêm postagens de mídia social que mencionam Watson no contexto dos segmentos de mercado médico ou de assistência médica serão retidos.
  4. Como opção, use a função do BigSheets COMPLEMENT para criar uma planilha separada para capturar as postagens que foram rejeitadas por sua função (ou seja, quais registros não mencionaram Watson e um termo médico ou de assistência médica).

Possivelmente, você está curioso sobre quais insights podem ser compilados com o uso de um extrator tão simples quanto o discutido anteriormente. A Figura 4 mostra como esse extrator permitiu identificar os 10 principais sites de blogs globais relacionados ao IBM Watson no segmento de mercado médico entre 1 de janeiro e 1 de junho de 2012. (Resultados foram restringidos a sites no idioma inglês.) É interessante observar que a abrangência principal não foi de um site patrocinado pela IBM — foi do Forbes.com.

Figura 4. Resultados de Usar um Extrator de Texto Customizado para Filtrar Dados de Blog em BigSheets
Resultados de Usar um Extrator de Texto Customizado para Filtrar Dados de Blog em BigSheets

É possível saber quais sites de notícias no idioma inglês forneceram mais abrangência de IBM Watson e do segmento de mercado médico durante esse mesmo período de templo? A Figura 5 exibe os resultados.

Figura 5. Aprofundando-se na Abrangência de Notícias sobre IBM Watson e Segmento de Mercado Médico
Aprofundando-se na Abrangência de Notícias sobre IBM Watson e Segmento de Mercado Médico

Apesar de nosso extrator de amostra ser trivial, ainda assim permitiu identificar os sites de blog e notícias em potencial que valem a pena os esforços de alcance de relações públicas adicionais em torno do projeto IBM Watson. Imagine as possibilidades se criássemos extratores de texto mais sofisticados para nossa marca. De fato, o BigInsights inclui o IBM Accelerator for Social Media Data (SDA) com artefatos pré-desenvolvidos para ajudar empresas a desenvolver perfis de clientes e explorar o sentimento, "buzz" e intenção de compra associados a determinadas marcas ou produtos. E muitos desses artefatos são baseados nos recursos analíticos de texto que apresentamos anteriormente.


Um Peek em AQL

Apesar de nosso exemplo de AQL ser simples, ele apresentou diversos elementos importantes da linguagem. Dê outra olhada na Listagem 1 e observe o uso das instruções create view, extracte select . Esses são elementos importantes de cada extrator.

Visualizações de AQL são semelhantes a visualizações em um banco de dados relacional. Cada visualização AQL tem um nome, é formada por linhas e colunas e as colunas são digitadas. Além do mais, uma visualização AQL é materializada somente se você emitir uma instrução output view para ela. Todas as suas instruções AQL irão operar em visualizações, incluindo a visualização especial chamada Document, que é mapeada para um documento de entrada por vez de sua coleção de tempo de execução. Ao usar documentos de entrada que estão em conformidade com o esquema padrão, você trabalhará com a coluna chamada "text" da visualização Document. (Também é possível especificar seu próprio esquema de documento em AQL se estiver trabalhando com documentos de entrada JSON e dados de entrada de processo em várias colunas de sua opção.)

O tipo de coluna nativa mais comum para texto extraído é Span. Spans incluem o texto extraído e ponteiros para o documento do qual o texto foi extraído. Isso permite examinar o contexto em torno de qualquer texto extraído.

Nosso AQL extraiu dois recursos básicos usando expressões extract com dicionários — Watson a marca e diversos termos médicos. Esse é um padrão comum; a primeira etapa na maioria dos extratores é criar visualizações usando expressões extract que identificam instâncias de recursos básicos de baixo nível. Em nosso caso, estávamos lidando com um número limitado de cadeias de caracteres bem definidas, portanto, pudemos usar dicionários. Às vezes, é necessário extrair recursos básicos que são mais variáveis, como datas, horas ou números de telefone. Nesse caso, será usada uma expressão regular em vez de um dicionário.

As expressões AQL de seleção incluem as palavras-chave select e from , assim como as cláusulas where, order by e group by . Geralmente as expressões AQL select são usadas para aplicar filtros e agregar recursos básicos extraídos anteriormente.

Uma etapa importante em qualquer aplicativo de analítica de texto é colocar recursos básicos em contexto. Em um conjunto mais amplo de documentos de entrada sobre o Watson, podemos localizar instância de nomes de pessoas (como Thomas J. Watson ou Bubba Watson) ou referências à pesquisa da IBM (como Watson Research Center). Também podemos localizar instâncias de Watson em que o contexto confirmou que estávamos lidando com o Watson certo — Watson da IBM ou sistema de computador Watson, por exemplo. Determinar o contexto de um recurso básico e os relacionamentos entre recursos básicos é uma etapa importante na extração de informações usando AQL.

O idioma fornece duas técnicas que podemos usar para colocar as coisas em contexto. Primeiro, podemos usar expressões extract com padrões de sequência. Padrões de sequência funcionam em uma expressão extract como uma expressão regular, mas, em vez de extraírem um único recurso básico, como uma data ou hora, os padrões de sequência permitem colocar recursos básicos e outros elementos juntos em padrões, colocando os recursos básicos em contexto. Por exemplo, podemos desejar extrair documentos que mencionem Watson, um parceiro de negócios e um aplicativo. Nós extrairíamos primeiramente cada um desses recursos básicos e, em seguida, usaríamos um padrão para procurar instâncias em que todos os três recursos básicos ocorrem juntos em uma ordem específica. Padrões são como expressões regulares; eles nos fornecem a flexibilidade de incluir outros elementos, tornar as coisas opcionais e ignorar tokens que não são relevantes para que possamos localizar uma ampla gama de instâncias em que os três recursos nos quais estamos interessados ocorrem juntos sem saber o padrão absoluto. Em situações como essa, às vezes, pode ser útil dividir ou bloquear os documentos antes de procurar padrões. Há expressões extract para fazer isso para que você possa procurar recursos básicos que ocorrem juntos na mesma frase ou parágrafo.

A segunda maneira que podemos avaliar o contexto de recursos básicos é observando o contexto direito ou esquerdo do recurso. Usando o tipo de dados span e algumas funções AQL, podemos acessar texto à esquerda de um recurso (o contexto esquerdo) e o texto à direita de um recurso (o contexto à direita). Se localizarmos uma instância de Watson que tenha "IBM" no contexto imediatamente à esquerda e "computer" ou "system" no contexto imediatamente à direita, localizamos uma referência forte ao Watson desejado. Se o contexto à direita contiver as palavras "Research Center", provavelmente estamos olhando um falso positivo que devemos remover por filtro.

Além das funções que permitem procurar o contexto de recursos extraídos, AQL contém um conjunto rico de funções de predicado, escalares e agregadas que podem ser usadas em instruções select para filtrar, transformar e agregar resultados.

Materiais de referência de AQL integrais estão nos Centros de Informações do BigInsights e do Streams. Abrangemos resumidamente os elementos mais importantes da linguagem aqui, mas você pode querer dar uma olhada no Centro de Informações para entender a sintaxe e saber mais sobre opções adicionais de extract , como partes do discurso ou o operador detag usado em nosso exemplo para remover tags XML ou HTML de documentos recebidos ou o uso de tabelas para aumentas as informações extraídas.

AQL permite desenvolver e reutilizar módulos para análise de texto. Um módulo pode exportar visualizações que outro módulo pode, então, importar e fazer referência. Dicionários podem ser codificados sequencialmente ou armazenados em um arquivo de texto simples, uma entrada por linha. Se for necessário substituir o conteúdo de um dicionário no tempo de execução sem recompilar seu AQL, será possível usar um dicionário externo. AQL é compilada antes de ser implementada. Parte do ambiente de desenvolvimento é um compilador de otimização, que produz um arquivo .tam que pode ser implementado e executado.


Resumo

Este artigo o levou por um tour rápido do que está envolvido no desenvolvimento, teste, publicação, implementação e uso de software de análise de texto customizado para o BigInsights. Assistentes baseados no Eclipse ajudam a construir scripts e outros artefatos que extraem conteúdo de dados não estruturados, como posts de mídia social. É possível testar seus extratores de texto no Eclipse usando dados de amostra, explorar os resultados e, por fim, publicar o aplicativo em um cluster do BigInsights para que usuários autorizados possam chamá-los. Esses usuários podem ser outros desenvolvedores de aplicativos ou analistas de negócios que estejam trabalhando com BigSheets, uma ferramenta em estilo de planilha para explorar e visualizar big data.

Agradecimentos

Agradecemos àqueles que contribuíram ou revisaram este artigo: Sunil Dravida, Manoj Kumar e Sudarshan Thitte.


Download

DescriçãoNomeTamanho
Sample dataWatsonNewsBlogsData.zip270KB

Recursos

Aprender

Obter produtos e tecnologias

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=939009
ArticleTitle=Analisar o Texto de Sites de Mídia Social com o InfoSphere BigInsights
publish-date=07312013