Por: Horea Porutiu
Publicado em: 10 de abril de 2020
Este artigo faz parte do Programa de aprendizado Introdução ao processamento de linguagem natural.
Introdução
Conforme exibido na demonstração anterior, com os recursos de processamento de linguagem natural IBM® Watson™, você pode analisar com eficiência grandes quantidades de texto para produzir insights acionáveis. Forneça ao Watson uma URL ou um site de notícias popular, e o Watson será capaz de receber o texto da fonte e analisá-lo em segundos, muito mais rápido do que um humano. O texto é analisado por categorias, conceitos, emoções, entidades, relações, sentimentos e muito mais, opções que você pode personalizar. As informações extraídas deste serviço permitem que você encontre mais significado no texto, compreenda tendências e recomende conteúdo semelhante a partir de grandes quantidades de dados.
Este artigo explica como o IBM Watson pode ajudá-lo a utilizar serviços de processamento de linguagem natural para desenvolver aplicativos cada vez mais inteligentes. Embora se concentre principalmente nos serviços Watson Natural Language Understanding e Watson Knowledge Studio, você pode aprender sobre o Watson Discovery por meio do caminho de aprendizado do Watson Discovery.
Dê uma olhada em uma rápida demonstração para ver as habilidades do serviço Watson Natural Language Understanding.
Termos específicos do Watson Natural Understanding
O processamento de linguagem natural é um subcampo da linguística, da ciência da computação e da inteligência artificial que estuda a interação entre computadores e linguagens humanas; mais especificamente, como programar computadores para processar e analisar grandes quantidades de dados de linguagem natural. Esta seção explica os termos que são específicos do Watson Natural Language Understanding.
Natural Language Understanding (Entendimento de linguagem natural): um subtópico de processamento de linguagem natural em IA que trata do modo como as máquinas interpretam textos e entendem significados com base no contexto.
Recursos: as classificações possíveis que o Watson Natural Language Understanding é capaz de produzir a partir da entrada de texto fornecida. Isso inclui categorias, conceitos, emoções, palavras-chave, metadados, relações, funções semânticas e sentimento.
Entidades: pessoas, empresas, localização e classificações feitas pela Watson. Uma lista completa de tipos e subtipos de entidades pode ser encontrada na documentação Natural Language Understanding.
Categorias: cinco níveis de hierarquias que o Watson pode identificar a partir do texto de entrada. A seguir, um exemplo para um "aparelho de fax".
Nível 1 – tecnologia e computação
Nível 2 – hardware
Nível 3 – periféricos de computador
Nível 4 – impressoras, copiadoras e fax
Nível 5 – aparelhos de fax
Conceitos: conceitos de alto nível que não são necessariamente referenciados diretamente no texto.
Metadados: um conjunto de dados que descreve e fornece informações sobre outros dados. Por exemplo, para uma determinada URL de entrada, os campos de metadados podem incluir data de publicação, título e autor.
Relações: o reconhecimento de quando duas entidades estão relacionadas e a identificação do tipo de relação.
Watson Knowledge Studio
Depois de entender os fundamentos do Watson Natural Language Understanding, você verá que o poder do Watson está na precisão de seus resultados. O Watson é ótimo desde o princípio, mas não é treinado em todos os domínios de conhecimentos específicos da indústria. Por conta disso, pode ser necessário ensinar ao Watson nuances, relações e significados linguísticos específicos para seu segmento de mercado. Por exemplo, se você estiver trabalhando com uma startup que está avaliando o risco de crédito, não só precisa ensinar ao Watson o nome de sua startup para que ele a reconheça como um tipo de entidade "Organização", mas também as nuances da terminologia financeira, como crédito, quebra e juros. Cada uma dessas palavras pode ter significados diferentes com base em seu contexto e, quanto mais anotações você puder utilizar para treinar o Watson, mais precisos serão seu modelo e seus resultados.
A figura a seguir fornece uma representação visual das etapas necessárias para treinar o Watson em seu domínio de conhecimento utilizando o Watson Knowledge Studio.
Termos específicos do Watson Knowledge Studio
Anotação: o processo de selecionar um texto específico de um documento e associá-lo a entidades predefinidas. Por exemplo, "IBM" seria associado ao tipo de entidade “Organização”, conforme mostrado na figura a seguir (em inglês).
Conjunto de anotações: documentos que você atribui a uma pessoa para fazer anotações.
Watson Knowledge Studio: uma ferramenta que permite a construção de um modelo de aprendizado de máquina para identificar entidades e relacionamentos sem qualquer conhecimento de codificação. Ele permite que você faça anotações em documentos e treine o Watson em seu domínio de conhecimento.
Verdade absoluta: o conjunto de dados examinados, consistindo em anotações incluídas por anotadores humanos, que é usado para adaptar o modelo de aprendizado de máquina para um domínio específico.
Modelo de aprendizado de máquina: um componente que identifica entidades e relacionamentos de entidade de acordo com um modelo estatístico que é baseado na verdade absoluta. O modelo aplica experiência passada, como dados de treinamento, para determinar ou prever o resultado correto de experiências futuras com base nas características dos dados. Essas experiências passadas são capturadas na forma de um modelo, calculando pontuações de recurso para cada resposta ou evidência candidata e combinando isso com resultados conhecidos. Às vezes referido como anotador de aprendizado de máquina.
Treinar: O processo de configuração de uma instância do Watson com componentes que permitem que o sistema funcione em um domínio específico (por exemplo: conteúdo do corpus, dados de treinamento que geram modelos de aprendizado de máquina, algoritmos programáticos ou outros componentes de verdade absoluta) e, em seguida, fazendo melhorias e atualizações para esses componentes com base na análise de precisão.
Casos de uso
Diversos casos de uso para processamento de linguagem natural incluem:
Resumo automatizado para identificação antecipada de tendências: resuma artigos de notícias ou mídias sociais para extrair informações sobre um determinado produto ou empresa específica e identificar tendências no sentimento do cliente.
Chatbots de assistente virtual, como Watson Assistant, Siri, Alexa ou Google: esses assistentes populares podem converter áudio em texto e, em seguida, analisá-lo usando processamento de linguagem natural a fim de entenderem o contexto. Eles podem responder às suas perguntas em tempo real. O processamento de linguagem natural Watson pode enriquecer a entrada do cliente, entendendo a linguagem do seu domínio e adicionando análise de sentimento e emoção.
Preenchimento automático de e-mail: quando você vê que seu aplicativo de e-mail é capaz de prever o final da frase, o aplicativo está extraindo contexto conforme você digita e é capaz de compreender a probabilidade de palavras que seguem as anteriores. Recursos de compreensão do Watson Natural Language que permitem extrair rapidamente o contexto são bons para ajudá-lo a implementar recursos de preenchimento ou correção automática.
Acessando o processamento de linguagem natural IBM Watson
Existem várias maneiras de acessar os serviços do Watson Natural Language Processing para melhorar a maneira como você faz negócios. Aqui estão algumas:
Watson Assistant e os serviços de processamento de linguagem natural Watson estão intimamente relacionados e costumam ser utilizados juntos. Você pode experimentar o Watson Assistant e construir um chatbot gratuitamente no IBM Cloud.
Este vídeo informativo oferece uma visão geral dos recursos do IBM Watson Natural Language Understanding.
Quando você estiver pronto para criar seu próprio modelo customizado, este vídeo o conduz pelos recursos do Watson Knowledge Studio e ensina como anotar, treinar e implementar um modelo de aprendizado de máquina para melhorar a precisão do Watson Natural Language Understanding e do Watson Discovery.
Há um caminho de aprendizado no Watson Discovery se você quiser saber mais sobre este serviço.
SDKs
Para acesso programático, os SDKs do Watson fornecem suporte para um grande número de idiomas. A lista a seguir mostra os SDKs do desenvolvedor atuais.
APIs
Para obter mais informações sobre as APIs, consulte a documentação da API Discovery.
Amostra de código
O exemplo de código Node.js a seguir mostra como autorizar e analisar texto para emoção, sentimento, entidades e palavras-chave.
Na parte superior do arquivo, importamos o Watson Natural Language Understanding Node.js SDK e um módulo de autenticação a fim de garantir que tenhamos acesso ao serviço Watson do IBM Cloud.
Em seguida, passamos nossa chave de API (API key), que é gerada no IBM Cloud quando você cria o serviço Watson Natural Language Understanding, para criarmos uma instância em nosso código Node.js. Também passamos a URL da instância, encontrada, inclusive, na guia Credentials (credenciais) do IBM Cloud Service, conforme mostrado na figura a seguir.
Sabemos que o Watson pode analisar um site, portanto, submetemos a URL www.nytimes.com. Submetemos também os recursos de entidades e palavras-chave e informamos ao Watson que queremos apenas as duas principais palavras-chave e resultados de entidade, definindo o limite para 2. Também ativamos os recursos de emoção e sentimento para que o Watson também os forneça.
Por fim, utilizamos a função de análise do serviço Watson para analisar o site nytimes.com e gerar as duas principais palavras-chave e entidades que foram encontradas.
Siga adiante e copie o código a seguir, abra um editor de código, crie um novo arquivo chamado nlu.js e execute o npm install no diretório que contém esse arquivo. Isso instala as dependências do ibm-watson, que permitem acessar a API Watson Natural Language Understanding. Em seguida, insira sua chave de API e a URL nas primeiras linhas da função.
const NaturalLanguageUnderstandingV1 = require('ibm-watson/natural-language-understanding/v1');
const { IamAuthenticator } = require('ibm-watson/auth');
async function analyze() {
const naturalLanguageUnderstanding = new NaturalLanguageUnderstandingV1({
version: '2019-07-12',
authenticator: new IamAuthenticator({
apikey: '
}),
url: 'https://api.us-south.natural-language-understanding.watson.cloud.ibm.com/instances/
});
const analyzeParams = {
'url': 'www.nytimes.com',
'features': {
'entities': {
'emotion': true,
'sentiment': true,
'limit': 2,
},
'keywords': {
'emotion': true,
'sentiment': true,
'limit': 2,
},
},
};
naturalLanguageUnderstanding.analyze(analyzeParams)
.then(analysisResults => {
console.log(JSON.stringify(analysisResults, null, 2));
})
.catch(err => {
console.log('error:', err);
});
}
analyze();
Vá em frente e execute o código node nlu.js. A demonstração a seguir traz um exemplo de saída da execução do script.
https://developer.ibm.com/developer/default/articles/introduction-to-watson-natural-language-processing/images/figure6.gif
O código anterior mostra o mínimo para que você comece a trabalhar com o Watson. Para ver os usos mais avançados do Watson Natural Language Processing, consulte nossos padrões de código do IBM Developer.
Resumo
Este artigo forneceu uma visão geral dos serviços de processamento de linguagem natural do Watson. Ele explicou como o IBM Watson pode ajudá-lo a utilizar serviços de processamento de linguagem natural para desenvolver aplicativos cada vez mais inteligentes, com foco no uso dos serviços Watson Natural Language Understanding e Watson Knowledge Studio.
O artigo faz parte do caminho de aprendizado Introdução ao processamento de linguagem natural, que o orienta na construção de aplicativos da web com recursos completos por meio dos serviços de processamento de linguagem natural do Watson. Para continuar, estude mais a fundo o recurso Syntax API no Watson Natural Language Understanding.
...
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á!