Definindo um Type System para o Watson Knowledge Studio
Este é o segundo artigo de uma série sobre o Watson Knowledge Studio (você pode encontrar o primeiro em: Treinando modelos customizados no IBM Watson utilizando machine learning).
Entendendo o problema
O primeiro passo de um projeto utilizando o Watson Knowledge Studio é a definição do Type System, modelo que descreve quais são as entidades e relacionamentos a serem extraídos do texto no momento de processamento.
Um prática muito boa é sentar junto do cliente e entender o problema de negócio a ser analisado antes mesmo de entrar no software. Seguem algumas perguntas que poderão te guiar nesse processo e definir se o WKS é realmente a melhor solução para o problema apresentado:
- Qual informação desejamos extrair dos textos analisados?
- Com essa informação em mãos realmente conseguiremos resolver o problema?
- Os documentos aos quais temos acesso possuem esse tipo de informação?
- Existem exemplos (dados) suficientes para realizar o treinamento? (Um bom treinamento exigirá algumas centenas de documentos).
Se você conseguiu responder a todas essas questões então está em um bom caminho. Podemos então desenhar nosso modelo.
OBS: dedique um bom tempo a essa etapa, se não for feita da maneira correta você terá um grande retrabalho pois necessitará refazer a anotação humana de todos os documentos, até mesmo aqueles que você já fez com o modelo “errado”.
Nosso exemplo
Por questão de simplicidade o domínio que escolhi foi o de comentários sobre celulares em sites de compras nacionais. A informação é de fácil acesso e o modelo não apresenta grandes variações.
Podemos definir o objetivo da nossa análise da seguinte forma:
Análise de comentários (reviews) sobre celulares postados em sites de e-commerce nacional de modo a identificar a popularidade dos modelos e marcas, as funcionalidades que apresentam e se estão falando bem ou mal sobre os mesmos.
Conceitos Teóricos
O WKS funciona utilizando um mecanismo chamado SIRE (Statistical Information and Relation Extraction) criado pela IBM e que consiste em dois tipos de anotações:
Entidades (entity types)
É uma classe ou categoria de um objeto a ser apresentado no texto. Exemplo: Pessoas, Organizações, Locais.
No nosso caso utilizaremos as seguintes entidades (é uma boa prática manter os nomes das entidades todas em maiúsculo):
- MARCA
- MODELO
- FUNCIONALIDADE
- POSITIVO
- NEGATIVO
OBS: Ainda seria possível criar subtipos (subtypes) e papéis (roles) para as suas entidades como, por exemplo, criar uma entidade SENTIMENTO com os subtipos NEGATIVO e POSITIVO.
Relacionamentos (Relation Types)
É uma relação entre duas entidades definidas na etapa anterior. Exemplos de relacionamentos são: empregadoPor (PESSOA-ORGANIZACAO), sediadaEm (ORGANIZACAO-PAIS).
No nosso exemplo teremos seis relacionamentos:
- referenteA (POSITIVO,NEGATIVO-MODELO,FUNCIONALIDADE) que representa quatro relacionamentos diferentes.
- possui (MODELO-FUNCIONALIDADE)
- fabrica (MARCA-MODELO).
É possível perceber que nossa modelagem não responde a todas perguntas possíveis: não temos como verificar se falam diretamente sobre uma marca. Como isso é algo que não era necessário para nosso problema inicial então não alteraremos o modelo, mas normalmente esse é um processo cíclico.
Finalizando
Um erro comum ao montar um type system no WKS é confundi-lo com uma ontologia. Você não quer mapear todo o conhecimento sobre um assunto, você deve inserir apenas aquelas entidades que serão úteis na extração de modo a solucionar o seu problema de negócio.
Não confunda o type system com uma ontologia.
No próximo artigo falaremos sobre a inserção de dados no WKS.