Desenvolva um mecanismo de recomendação com Watson Natural Language

8 min de leitura
Patrocinado
Imagem de: Desenvolva um mecanismo de recomendação com Watson Natural Language
Avatar do autor

Equipe TecMundo

@tec_mundo

Por: Kalonji Bankole, Mark Sturdevant

Publicado em: 29 de junho de 2020 

O IBM® Watson™ Knowledge Studio é um serviço que permite criar um modelo de análise de linguagem personalizado para um domínio específico. Em especial, isso é muito útil para áreas especializadas que contam linguagens complexas, como medicina, direito e finanças.

Neste tutorial, aprenda a utilizar o Watson Knowledge Studio para fazer anotações de avaliações de oficinas de reparo de automóveis. Em seguida, você pode treinar um modelo de machine learning capaz de analisar essas avaliações. O modelo consegue determinar quais tipos de reparos foram necessários para o veículo e o grau de satisfação do cliente com a qualidade do trabalho. Ao analisar as avaliações associadas a uma determinada oficina mecânica, você pode gerar insights sobre o desempenho geral dessa oficina a fim de determinar em quais tipos de reparos eles são mais (e menos) qualificados.

Pré-requisitos

Para seguir este tutorial, você precisa de uma conta IBM Cloud. Se você não tem uma, pode criá-la aqui.

Forneça uma instância do Watson Natural Language Understanding

Depois de ter criado uma conta IBM Cloud, navegue até IBM Cloud Console.

1. Clique em Catalog (Catálogo).

2. Pesquise por Natural Language Understanding (Compreensão da Linguagem Natural) e clique no ícone quando ele aparecer.

Resultados de busca sobre

3. Selecione um plano para o serviço Watson Natural Language Understanding e clique em Create (Criar).

Seleção de plano e valor

Depois que o serviço for provisionado, armazene a chave de API e a URL. Essas credenciais serão necessárias posteriormente no tutorial.

Forneça uma instância do Watson Knowledge Studio

Para o fornecimento de uma instância do IBM Watson Knowledge Studio:

1. Clique em Catalog (Catálogo).

2. Pesquise por Knowledge Studio e clique no ícone quando ele aparecer.

Pesquisando pelo Knowledge Studio

3. Selecione um plano ("Lite" é suficiente aqui) e clique em Create (Criar).

Lite

4. Clique em Launch Watson Knowledge Studio (Executar Watson Knowledge Studio) depois que o serviço for fornecido.

4

Tempo estimado

Deve levar aproximadamente 60 minutos para você finalizar o tutorial depois de concluir os pré-requisitos.

Passos

  • 1. Defina os tipos (types) e subtipos (subtypes) de entidades (Entity)
  • 2. Crie Tipos de Relação (Relation Types)
  • 3. Colete documentos que descrevam o idioma do seu domínio
  • 4. Faça anotações em documentos
  • 5. Gere um modelo de machine learning
  • 6. Implemente o modelo para o serviço Natural Language Understanding

Defina os tipos (types) e subtipos (subtypes) de entidades (Entity)

Comece criando  Entity Types (Tipos de Entidade). Uma entidade é uma representação de um objeto ou conceito. Neste caso, você criará entidades relacionadas a reparos de automóveis, como mecânico, veículo e reparo. Primeiro, você criará uma entidade Repair (reparo), que descreve o problema que levou ao serviço prestado.

1. Clique em Entity Types (Tipos de Entidade)  no menu esquerdo.

2. Clique em Add Entity Type (Adicionar Tipo de Entidade).

Tipos de entidade

3. Identifique a nova entidade como Repair (reparo).

4. Adicione subtipos, que permitem classificar ainda mais uma instância de entidade. Por exemplo, uma referência a um alternador ou vela de ignição pode ser rotulada como um subtipo Electrical (elétrico) da entidade Repair (reparo).

Adicionando os subtipos

Agora que você sabe como criar entidades, pode fazer upload de uma lista pré-configurada de tipos de entidade. Baixe os tipos JSON e clique em Upload.

Fazendo o upload de um arquivo JSON

Após fazer o upload e criar os tipos de entidade, clique em Save (Salvar).

Crie Tipos de Relação (Relation Types)

Tipos de Relação (Relation Types) descrevem como duas entidades estão associadas. Por exemplo, se você tem um Veículo, um Cliente e um Mecânico (Vehicle, Customer, Mechanic); o veículo pode ter uma relação OwnedBy ("Pertence a") com o cliente e uma relação RepairedBy ("Consertado por") com o mecânico.

1. Crie relações clicando em Relation Types (Tipos de Relação) no menu.

2. Clique em Add Relation Types (Adicionar Tipos de Relação).

3. Nomeie o tipo de relação e liste os pares de entidades válidos que podem ter essa relação.

Deve haver um conjunto de tipos de relação já carregados da etapa anterior. Os exemplos neste caso podem ser:

  • RepairedBy (o Veículo pode ser reparado por um Mecânico);

  • OwnedBy (o Veículo pode ser propriedade de um Motorista);

  • DamagedBy (o Veículo pode ser danificado por um Motorista ou Mecânico).

Tipos de relação

Colete documentos que descrevam o idioma do seu domínio

Colete arquivos que contenham exemplos de texto que descrevam danos e reparos em automóveis. Esses exemplos permitem que o Watson Knowledge Studio aprenda a linguagem de domínio relevante, que consiste em termos e frases comumente utilizados em oficinas de automóveis. Aqui, usamos comentários de clientes que descrevem experiências com vários mecânicos.

Incluímos um conjunto de análises sintéticas pré-anotadas para começar, da qual você pode fazer o download.

Se quiser treinar um modelo de dados com alguns dados reais de pesquisa, você pode utilizar o conjunto de dados do Yelp, que pode ser acessado de acordo com os Termos de Uso do Yelp. Este conjunto de dados possui um arquivo JSON que inclui milhões de avaliações de oficinas mecânicas de automóveis nos Estados Unidos. Cada avaliação deve ser colocada em arquivos .txt individuais.

Depois de coletar os documentos, eles precisam ser carregados no Watson Knowledge Studio. Efetue o login em sua instância do Watson Knowledge Studio e clique em Documents (Documentos).

1. Clique em Upload Document Sets (Carregar Conjuntos de Documentos).

Realizando o upload de documentos

2. Carregue seus documentos arrastando-os para a seção Add a Document Set (Adicionar um Conjunto de Documentos).

Adicionando um conjunto de documentos

Faça anotações em documentos

Depois de criar os Tipos de Entidade e de Relação, você pode adicionar a anotação, que mapeia as palavras e frases de cada documento para suas entidades definidas.

1. Clique em Machine Learning Model (Modelo de Machine Learning) e, em seguida, em Annotations (Anotações).

Anotações

2. Localize o conjunto de documentos que você carregou anteriormente e clique em Annotate (Anotar).

Localizando o conjunto de documentos

3. Comece anotando todas as menções no documento que fazem referência a uma Entidade definida, selecionando cada palavra ou frase relevante.

4. Clique no Tipo de Entidade correspondente no menu à direita.

Aplicamos as seguintes anotações na imagem:

  • SUVs e Motorcycles (motocicletas) podem ser rotulados como Vehicle (veículo) e subentidade Type (tipo).

  • Glass Repair (reparo de vidro) e Body Work (carroceria) podem ser rotulados como a entidade Repair (reparo) e subtipos Glass/Body (vidro e carroceria).

  • Joe's Auto Repair, Joe, Lydia e they (eles) se referem à oficina.

Anotações na imagem

5. Defina as relações entre as entidades clicando em Relation (Relação), que é mostrado em preto na imagem a seguir.

Neste exemplo, My (meu) é uma referência ao cliente ou àquele que avalia. Car (carro) é propriedade do cliente, por isso é rotulado como uma entidade Vehicle (veículo) e tem uma relação belongsTo ("pertence a") com o cliente. A menção suspension (suspensão) tem a entidade Repair (reparo) e tem uma relação de needsRepairType ("precisa de um tipo de reparo") com o carro.

Relações nas anotações

6. Adicione correferências, que ocorrem quando há várias menções diferentes que fazem referência à mesma entidade. Nesse caso, Joe, his (dele) e he (ele) se referem à mesma entidade Mechanic (Mecânico). Para vinculá-los, selecione Coreference (Correferenciar) e clique em cada referência. Em seguida, clique duas vezes na última menção à entidade para aplicar a correferência.

Depois que isso for aplicado com sucesso, um pequeno número deve aparecer sob cada correferência.

Correferência

Gere um modelo de machine learning

Depois de fazer notas em alguns documentos, você pode treinar um modelo de machine learning para estender as anotações aos documentos não rotulados restantes. Esse modelo também pode ser exposto por meio de uma API, que mostraremos na próxima etapa.

1. Crie o modelo selecionando Performance.

2. Clique em Train and evaluate (Treinar e avaliar).

Performance

3. Clique em Edit Settings (Editar Configurações) se desejar selecionar conjuntos de documentos específicos para treinar ou ajustar seus subconjuntos Test, Training e Blind training (Teste, Treinamento e Treinamento cego).

Subconjuntos de teste, treinamento e treinamento cego

4. Confirme suas configurações de treinamento e clique em Train and evaluate (Treinar e avaliar).

Treinar e avaliar

Após a conclusão do treinamento, você pode implementar seu modelo de machine learning customizado para o serviço Watson Natural Language Understanding. Essa implementação cria seu modelo de machine learning personalizado por meio de uma API.

1. Clique em Versions (versões) para visualizar seus modelos treinados e, em seguida, clique em Deploy (Implementar).

Versões

2. Selecione Natural Language Understanding e clique em Next (Próximo).

Implementando o Natural Language Understanding

3. Selecione sua Region (Região), seu Resource Group (Grupo de Recursos) e Service Name (Nome do Serviço) e clique em Deploy (Implementar).

Após a conclusão da implementação, você deve ver uma nova entrada na lista Deployed Models (Modelos Implementados). Expanda-a para obter a ID do seu Modelo.

ID do modelo

Implemente o modelo no Watson Natural Language Understanding

Neste momento, você deve ser capaz de testar o modelo enviando dados para uma API. Para fazer isso, você precisa das seguintes credenciais.

  • A chave de API do Natural Language Understanding;

  • A URL do Natural Language Understanding;

  • A ID do modelo implementado do Watson Knowledge Studio (obtido do final da seção anterior).

A URL e a chave de API do Natural Language Understanding podem ser encontradas navegando até a página da instância do Watson Natural Language Understanding e procurando na seção Credentials (Credenciais).

API e URL do Natural Languaging Understanding

Crie um arquivo .json usando o código a seguir. Em seu arquivo, substitua o model_id pelo ID de implementação gerado no Watson Knowledge Studio. Além disso, insira o seguinte texto na seção < input text >  ( " < texto de entrada > " ) : My truck windshield was cracked, so I went to Joe’s Auto shop and they replaced it for me. They did an excellent job. I would highly recommend them. (O para-brisa do meu caminhão estava rachado, então fui à oficina do Joe e eles o substituíram para mim. Eles fizeram um excelente trabalho. Eu recomendaria muito os seus serviços).



{

  "text": "",

  "features": {

    "entities": {

      "model": ""

    },

    "keywords": {

      "emotion": true,

      "sentiment": true

    },

    "emotion": {

        "sentiment": true

    },

    "categories": {

      "sentiment": true

    },

    "relations": {

      "model": ""

    },

    "sentiment": {}

  }

}

Execute um comando curl para analisar o texto com o modelo de machine learning gerado. Certifique-se de atualizar os campos nluApiKey e nluUrl com suas credenciais de serviço. Além disso, adicione o caminho ao seu arquivo .json.

curl -X POST \

  -u "apikey":" \  

  -H "Content-Type: application/json" \

  -d @ \

  "/v1/analyze?version=2019-07-12"

Na seção sentiment (sentimento), você verá que a avaliação foi marcada como positiva. Na seção entities (entidades), poderá reconhecer quais reparos foram concluídos.

"sentiment": {

  "document": {

    "score": 0.952598,

    "label": "positive"

  }

},

"entities": [

  {

    "type": "Repair",

    "text": "windshield",

    "disambiguation": {

      "subtype": [

        "Glass"

      ]

    },

    "count": 1,

    "confidence": 0.994622

  },

Conclusão

Neste tutorial, você aprendeu como fazer anotações em um conjunto de documentos para classificar avaliações com precisão. No padrão de acompanhamento, você verá como agregar os resultados de compreensão da linguagem natural para cada mecânico e definir o melhor profissional para um determinado tipo de reparo. Este tutorial faz parte da solução Desenvolver uma solução de atendimento ao cliente a fim de ajudar seus clientes a gerenciarem suas reivindicações de seguros e obterem informações sobre serviços de automóveis.

...

Quer ler mais conteúdo especializado de programação? Conheça o IBM Blue Profile e tenha acesso a matérias exclusivas, novas jornadas de conhecimento e testes personalizados. Confira agora mesmo, consiga as badges e dê um upgrade na sua carreira!

…..

Quer dar o próximo grande passo na sua jornada profissional? Participe do Cloud Training, um curso online e gratuito que vai te preparar para o exame da certificação IBM Cloud Foundations. Inscreva-se já!

Desenvolva um mecanismo de recomendação com Watson Natural Language