Por: Sean Sodha
Publicado em: 4 de março de 2019
O que é processamento de linguagem natural?
O processamento da linguagem natural é a análise e interpretação semântica de um texto, permitindo que os computadores aprendam, analisem e entendam a linguagem humana. Esses recursos podem ser aplicados a casos de uso como mineração de texto, reconhecimento de pessoas individuais por meio de sua escrita e realização de análise de sentimento. O Watson™ Natural Language Understanding oferece análises de texto avançadas.
O Watson Natural Language Understanding pode analisar texto e retornar uma taxonomia de cinco níveis do conteúdo, bem como conceitos, emoções, sentimentos, entidades e relações. A nova versão de seu recurso de API de sintaxe permite aos usuários extrair muito mais informações semânticas em seu conteúdo, aproveitando tokenização, classes gramaticais, lematização e divisão de frases. Vamos dar uma olhada em cada um desses sub-recursos.
Tokenização
Tokenização é o processo no qual as frases são segmentadas em palavras, frases ou símbolos chamados tokens. Esta é uma etapa crucial e necessária que ocorre antes de qualquer processamento de dados. A tokenização é essencialmente um pré-processamento de dados, identificando as unidades básicas necessárias para serem processadas. Sem essas unidades básicas, é difícil fazer uma análise do conteúdo.
Na maioria dos idiomas, as palavras costumam ser divididas por espaços em branco. A tokenização divide as palavras e os símbolos de pontuação e fornece os blocos de construção do texto.
Lematização
Os documentos terão diversas versões de uma palavra dentro do conteúdo – executar e executando, por exemplo. Essas palavras e suas diferentes formas possuem significados semelhantes apenas em suas formas mais simples. O objetivo da lematização é reduzir a complexidade dessas palavras e dividi-las em suas formas mais simples.
Por meio da lematização, vemos que a versão mais complexa das palavras foi dividida em significados mais simples, embora ainda transmitindo o mesmo pensamento. A lematização permite aos usuários reduzir a complexidade de seus algoritmos, reduzindo as palavras às suas formas mais simples.
Partes do discurso
Depois que uma frase é tokenizada, cada token é categorizado por uma determinada classe gramatical. O Watson Natural Language Understanding utiliza as classes gramaticais universais em todos os idiomas, incluindo substantivo, verbo, adjetivo, pronome, pontuação e substantivo próprio. Partes da fala são extremamente importantes quando se trata de processamento de linguagem natural, podendo ser usadas na desambiguação do sentido da palavra e na compreensão da intenção por trás de cada verbete dentro de uma frase.
Divisão de frases
Haverá vários casos em que os usuários terão que saber quando uma frase termina e quando a próxima começa sem serem confundidos com um nome próprio, como "Sr." ou "Sra." na frase. O Watson Natural Language Understanding determina quando um pensamento completo foi expresso em uma frase e pode dizer quando essa frase termina e quando a próxima começa.
Solicitação de exemplo para API de sintaxe
Para chamar a API de sintaxe usando comandos curl, copie e cole o código a seguir utilizando seu token de autorização de API. Se você se esqueceu como criar um token de autorização de API, pode seguir estas instruções.
curl --request POST \
--url 'https://gateway.watsonplatform.net/natural-language-understanding/api/v1/analyze?version=2019-01-27' \
--header "Authorization: Bearer {your token here}" \
--header 'content-type: application/json' \
--data '{
"text": "Mr. Earl wasn't looking for his wallet. He's searching for his new scarf to fit his look.",
"features": {
"syntax": {
"sentences": true,
"tokens": {
"lemma": true,
"part_of_speech": true
}
}
},
"language": "en"
}'
A API retorna a seguinte saída:
{
"usage": {
"text_units": 1,
"text_characters": 89,
"features": 0
},
"syntax": {
"tokens": [
{
"text": "Mr.",
"part_of_speech": "PROPN",
"location": [
0,
3
],
"lemma": "Mr."
},
{
"text": "Earl",
"part_of_speech": "PROPN",
"location": [
4,
8
],
"lemma": "earl"
},
{
"text": "was",
"part_of_speech": "AUX",
"location": [
9,
12
],
"lemma": "be"
},
{
"text": "n't",
"part_of_speech": "PART",
"location": [
12,
15
],
"lemma": "not"
},
{
"text": "looking",
"part_of_speech": "VERB",
"location": [
16,
23
],
"lemma": "look"
},
{
"text": "for",
"part_of_speech": "ADP",
"location": [
24,
27
],
"lemma": "for"
},
{
"text": "his",
"part_of_speech": "PRON",
"location": [
28,
31
],
"lemma": "his"
},
{
"text": "wallet",
"part_of_speech": "NOUN",
"location": [
32,
38
],
"lemma": "wallet"
},
{
"text": ".",
"part_of_speech": "PUNCT",
"location": [
38,
39
]
},
{
"text": "He",
"part_of_speech": "PRON",
"location": [
40,
42
],
"lemma": "he"
},
{
"text": "'s",
"part_of_speech": "AUX",
"location": [
42,
44
],
"lemma": "be"
},
{
"text": "searching",
"part_of_speech": "VERB",
"location": [
45,
54
],
"lemma": "search"
},
{
"text": "for",
"part_of_speech": "ADP",
"location": [
55,
58
],
"lemma": "for"
},
{
"text": "his",
"part_of_speech": "PRON",
"location": [
59,
62
],
"lemma": "his"
},
{
"text": "new",
"part_of_speech": "ADJ",
"location": [
63,
66
],
"lemma": "new"
},
{
"text": "scarf",
"part_of_speech": "NOUN",
"location": [
67,
72
],
"lemma": "scarf"
},
{
"text": "to",
"part_of_speech": "PART",
"location": [
73,
75
],
"lemma": "to"
},
{
"text": "fit",
"part_of_speech": "VERB",
"location": [
76,
79
],
"lemma": "fit"
},
{
"text": "his",
"part_of_speech": "PRON",
"location": [
80,
83
],
"lemma": "his"
},
{
"text": "look",
"part_of_speech": "NOUN",
"location": [
84,
88
],
"lemma": "look"
},
{
"text": ".",
"part_of_speech": "PUNCT",
"location": [
88,
89
]
}
],
"sentences": [
{
"text": "Mr. Earl wasn't looking for his wallet.",
"location": [
0,
39
]
},
{
"text": "He's searching for his new scarf to fit his look.",
"location": [
40,
89
]
}
]
},
"language": "en"
}
Conclusão
A API de sintaxe é compatível com outros recursos do Watson Natural Language Understanding, como entidades, categorias e assim por diante. Você pode se concentrar mais na necessidade comercial de implementar o processamento de linguagem natural em vez de se voltar à complexidade dos modelos de linguagem. A API de sintaxe está atualmente em uma versão experimental. No momento, esse recurso é de uso gratuito.
Leia mais sobre a API de sintaxe no API Docs e, em seguida, experimente o novo recurso de sintaxe para Watson Natural Language Understanding.
Este artigo faz parte do programa de aprendizado Introdução ao processamento de linguagem natural. Para continuar, experimente Visualizar dados não estruturados usando o padrão de código 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á!