Tudo que você precisa saber sobre IBM Watson

O stack IBM Watson é uma das mais fortes tendências quando o assunto são ferramentas que oferecem suporte para a aplicação de programação cognitiva em grandes quantidades de dados. Mas afinal, vamos ao que interessa! O que é o Watson da IBM e como posso utilizá-lo  

 

 

O que é?

O Watson da IBM é, na verdade, um conjunto de APIs! Simples, né? Cada API é responsável por uma “especialidade” do serviço e você pode utilizá-las para criar seus próprios sistemas cognitivos. Para ficar ainda mais fácil, as APIs Watson estão disponíveis no Bluemix, a plataforma cloud da IBM, que também concentra vários outros serviços, inclusive de código aberto. A diversidade de serviços oferecidos no Bluemix torna mais simples, para você, a construção de aplicações, sem que seja necessário a instalação ou configuração desses serviços.

É possível visualizar alguns exemplos de uso do IBM Watson na página https://www.ibm.com/cognitive/br-pt/outthink/. Além disso, este vídeo comercial dá uma ideia da proposta da IBM para o Watson:

Como faço para utilizar os serviços IBM Watson?

Para utilizar os serviços do IBM Watson é necessário criar uma conta na IBM Cloud. Você pode fazer isso acessando este link: https://console.bluemix.net/. Você deverá se deparar com algo semelhante à tela abaixo.

 

 

 

Depois disso, você terá acesso ao console Bluemix. Ao acessar o console, é possível visualizar todos os serviços ou aplicações que foram instanciados. Para isso, abra a sessão Dashboard, localizada no menu superior esquerdo. Uma tela semelhante a da imagem deverá ser exibida. Caso você tenha instanciado um serviço, e mesmo assim não consiga visualizá-lo no Dashboard, keep calm and don’t panic! Certifique-se de que seu Dashboard está configurado para a Região, o Cloud Foundry Org e o Cloud Foundry Space corretos. Essas opções são definidas quando um novo serviço é instanciado.

 

 

Para instanciar um novo serviço do Watson, acesse a aba Catalog e, em seguida, Watson. É possível visualizar todos os serviços IBM Watson e escolher qual serviço você deseja instanciar. 

Os serviços podem ser subdivididos em 6 grupos de acordo com a área de abrangência:

  1. Conversação
    • Conversation
  2. Conhecimento
    • WKS
    • NLU
    • Discovery
  3. Visão 
    • Visual Recognition
  4. Voz 
    • Speech to Text
    • Text to Speech
  5. Linguagem
    • Language Translator
    • NLC
  6. Empatia
    • Personality Insights
    • Tone Analyzer

Vamos entender um pouco sobre cada um deles!

Confira também o vídeo do OncaseTV falando também sobre o assunto:

 

 

  • Conversação

O Conversation é o serviço utilizado para construir chatbots. A modelagem ocorre utilizando entidades e intenções, e então, para cada requisição do usuário, a API retorna as características identificadas no input e uma resposta do chatbot ao usuário. O mapeamento de input em output é feito através de árvores de diálogo construídas por pessoas como você, que modelam o sistema.

Na página da própria IBM é possível analisar uma demonstração do serviço através do exemplo de Car Dashboard. Neste exemplo, o Watson Conversation é treinado para ser um guia inteligente, com base em um conjunto específico de capacidades que visam atender ao motorista de um carro, como mostrado abaixo.

Se você quiser brincar um pouco com a demonstração, é possível acessá-la aqui: https://conversation-demo.ng.bluemix.net/ .

 

  • Conhecimento

Os serviços que abrangem esta área visam extrair informações dos dados de forma personalizada. Para isso, a IBM dispõe de três ferramentas principais: o WKS (Watson Knowledge Studio), o Discovery e o NLU (Natural Language Understanding). De um modo geral, para muitas aplicações, o WKS será utilizado juntamente com o Discovery ou o NLU (ou até mesmo com os dois).

Mas para que posso utilizar esses serviços?

Vamos supor que você precisa analisar o histórico de medicamentos administrados em cada paciente de um dado hospital, categorizando os medicamentos de acordo com as suas respectivas finalidades de administração. Você possui o registro médico desses pacientes, e são muitos pacientes! Infelizmente, seria necessário trabalhar algumas boas horas a mais por dia para conseguir analisar todos esses registros . Então você pensa:

Como seria bom se tivesse uma ferramenta capaz de “ler” esses registros para mim, identificando esses medicamentos e já categorizando-os de acordo com a finalidade de aplicação!

Uma boa notícia para você: essa ferramenta existe! Você vai conseguir analisar os registros médicos e nem vai precisar fazer aquela hora extra. Top, né ?

Como você fará isso? Através do WKS. Usando a plataforma é possível treinar um modelo de IA ajustado para o domínio da sua aplicação. Nesse caso, você deve:

  1. Importar os Documentos: o registro médico dos pacientes.
  2. Definir um Type System: o Type System é um conjunto de definições importantes para a sua aplicação, composto por entidades e relacionamentos. Então, no seu caso, talvez seja interessante definir entidades que especifiquem os tipos de aplicações de medicamentos. Remédio para: “enxaqueca”, “pressão”, etc. Sendo que, “enxaqueca” seria uma entidade, “pressão” outra e assim sucessivamente.
  3. Anotar os Documentos: Um anotador humano deve anotar alguns documentos manualmente. Anotar documentos significa associar uma palavra ou conjunto de palavras a uma entidade específica. Por exemplo, você encontrou um registro médico que contém o medicamento Migraliv. Esse medicamento é administrado em pacientes que sofrem de enxaqueca, logo deve ser associado à entidade “enxaqueca”.
  4. Treinar o modelo: A partir dos documentos anotados, deve-se treinar o modelo de IA. Esse modelo pode servir de base para o pre-annotator ou, se estiver refinado o suficiente, pode ser aplicado a outros serviços como o NLU ou o Discovery.
  5. Rodar o pre-annotator: O pre-annotator é a mãozinha que você precisava para finalizar a anotação de todos os registros. Lembra que são muitos pacientes? Ele irá fazer uma anotação prévia dos registros, utilizando o modelo treinado anteriormente. As anotações feitas pelo pre-annotator podem ser verificadas por um anotador humano posteriormente para correção e refinamento. Em seguida, é possível treinar o modelo de IA novamente, voltando ao passo 4.

Quando o modelo estiver bom o suficiente para sua aplicação, é possível implementá-lo no NLU ou Discovery. O NLU será capaz de utilizar o modelo treinado no WKS para identificar metadados, como entidades e relações, em textos fornecidos a API. Já o Discovery funciona como um “buscador” cognitivo. O serviço é capaz de ingerir, enriquecer e armazenar dados não estruturados. O enriquecimento pode incluir os modelos treinados no WKS com o objetivo de tornar as consultas ainda mais personalizadas para o domínio da sua aplicação.

A imagem a seguir mostra um exemplo de anotação no WKS.

 

 

Já o NLU funcionaria assim: https://natural-language-understanding-demo.ng.bluemix.net/. Nas figuras abaixo é possível notar que a resposta do serviço inclui detecção de sentimentos, emoções, palavras-chave, entidades, categorias, conceitos e papéis semânticos. Na imagem, preferimos mostrar  a aba “entidades”, na qual observa-se, por exemplo, que Colorado Desert foi identificado como uma “GeographicFeature”, e assim por diante.

 

O Discovery é capaz de entender consultas em linguagem natural, como mostra a próxima imagem. Fazemos uma pergunta: “quem é Harry Potter?”,  o serviço consulta então os documentos armazenados, e nos retorna algumas passagens que podem responder a nossa pergunta.

 

Vale lembrar que tanto o NLU quanto o Discovery possuem uma definição “padrão” e, portanto, podem ser utilizados independente do WKS. Nesse caso, o WKS é fundamental para ajustar esses serviços às especificidades da sua aplicação.

 

  • Visão

O Visual Recognition é um serviço que utiliza técnicas de deep learning para analisar o conteúdo de imagens. O serviço possui um conjunto de “classes padrão” que torna-o capaz de analisar o conteúdo de imagens, identificando palavras-chave que as descrevam.

Além de identificar o conteúdo de imagens utilizando as “classes padrão”, é possível treinar o Visual Recognition com amostras de imagens que você coletou, ajustadas para um domínio específico de aplicação, criando classificadores personalizados. Na página da IBM, você confere a demonstração do Visual Recognition em: https://visual-recognition-demo.ng.bluemix.net/.

 

  • Voz

O Watson possui alguns serviços para integrar texto e voz: o Text to Speech e o Speech to Text. Enquanto o Text to Speech transforma um texto em voz, o Speech to Text, como havíamos de esperar, transforma voz em texto! Fácil, né? Esses serviços são bem simples e diretos de utilizar e não necessitam de nenhum “treinamento” adicional: basta instanciá-los no Bluemix e escolher o idioma. No caso do Text to Speech, dependendo do idioma, também é possível escolher a voz do interlocutor (se masculino ou feminino).

Vale lembrar que o uso geral desses serviços conta com um vocabulário baseado no diálogo cotidiano. Para alguns tipos de aplicação, no entanto, esse vocabulário pode não ser suficiente e requerer refinamentos que o ajustem ao domínio da aplicação. Nesse caso, é possível ajustar o modelo de acordo com os termos e pronúncias utilizados naquele domínio.

Para experimentar o Text to Speech visite: https://text-to-speech-demo.ng.bluemix.net/. Já o Speech to Text pode ser conferido em: https://speech-to-text-demo.ng.bluemix.net/.

 

  • Linguagem

Neste rol de serviços encontramos o Language Translator e o NLC. O Language Translator traduz textos entre diferentes idiomas e pode ser facilmente inserido na sua aplicação. Teste-o aqui: https://language-translator-demo.ng.bluemix.net/. Já o NLC (Natural Language Classifier), é capaz de identificar o tema-chave do conteúdo fornecido à API. Ele funciona assim: você fornece um texto e o NLC retorna a classe (tema) associada à uma porcentagem que indica o grau de confiança naquela classificação. Por exemplo:

 

O NLC pode ser treinado para oferecer melhores resultados em sua aplicação. Nesse caso, você deve submeter um conjunto de textos (geralmente sentenças mais curtas) e associá-los à respectiva classe. Em seguida, treinar o classificador. A imagem abaixo mostra como seria o treinamento, nela é possível visualizar as classes à esquerda e as sentenças à direita.

 

 

Experimente uma breve demonstração do NLC em: https://natural-language-classifier-demo.ng.bluemix.net/

 

  • Empatia

Aqui encontram-se os serviços Personality Insights e Tone Analyzer. O Personality Insights prevê características de personalidade, necessidades e valores a partir de textos escritos. Para isso, o texto deve conter palavras do cotidiano, descrevendo experiências diárias, pensamentos e preferências pessoais. Na página https://personality-insights-demo.ng.bluemix.net/ é possível experimentar o serviço, que oferece como retorno uma breve visão geral da personalidade da pessoa, uma lista de características prováveis e improváveis, além da porcentagem relacionada aos traços de personalidade, necessidades e valores da pessoa em comparação com a população em geral. Por exemplo, se usarmos o Twitter de Oprah https://twitter.com/oprah, vamos obter o seguinte retorno do Personality Insights:

 

 

O retorno indica que Oprah respeita mais as tradições do que 89% da população em geral, por exemplo. Já Imaginou como isso pode ser útil para empresas interessadas em alavancar seus negócios com estratégias de vendas ajustadas para o seu público-alvo!? Legal, né?

O Tone Analyzer, por sua vez, realiza uma análise linguística para identificar tons de alegria, medo, tristeza, raiva, análise, confiança e tentativo. Além disso, é capaz de identificar sentenças “mais fortes” por tom, atribuindo a elas um score. É possível testar o serviço em https://tone-analyzer-demo.ng.bluemix.net/. O serviço funciona assim:

Vamos supor que queremos analisar o conteúdo deste texto:

Então, o Tone Analyzer gera a resposta:

A imagem mostra a análise feita pelo Tone Analyzer no texto fornecido. De acordo com o serviço, foi possível identificar dois tons: o analítico e o de tristeza. As partes sublinhadas no texto mostram o score (a força) com que o tom selecionado foi identificado.

Vale lembrar que os serviços de empatia não podem ser ajustados pelo usuário, e portanto, o treinamento fica por conta da IBM, diferentemente dos outros que vimos até agora, nos quais era possível adicionar novas informações visando ajustar e melhorar a qualidade da resposta gerada.

Conclusão

E aí, curtiu? Essa foi uma rápida introdução aos serviços oferecidos pelo IBM Watson. Cada um desses serviços oferece suporte a configurações que visam potencializar os resultados fornecidos. Neste post, não entramos muito nos detalhes de cada um dos serviços, mas, em breve, podemos rodar uma matéria, explicando de forma mais aprofundada como eles funcionam. Você tem interesse em desbravar ainda mais coisas do universo Watson? Então fique ligado no canal para mais novidades!

Por sinal, por que você não escreve aí nos comentários as suas experiências com o IBM Watson? Adoraríamos trocar uma ideia sobre a plataforma! Vejo vocês na próxima! ;)

 

Leticia Lapenda
Data Scientist at Oncase