NLP e o Jogo “Contexto”

Vitor Batista
A3data
Published in
5 min readFeb 27, 2023

Você conhece o jogo “contexto”? Trata-se de um jogo simples, mas que nos ajuda a compreender alguns conceitos de Processamento de Língua Natural (área da inteligência artificial aplicada à linguagem).

Exemplo ilustrativo de como o jogo funciona (Fonte: https://contexto.me/)

Todos os dias, uma palavra da Língua Portuguesa é selecionada para ser a “palavra secreta”, que deve ser adivinhada pelos jogadores. Assim, para cada palavra digitada, o usuário recebe uma dica do quão próximo ele está de acertar a palavra secreta. Na imagem acima, o jogador já tentou quatro palavras: cidade, pessoa, garfo e comida. O melhor chute foi a palavra “comida”, que é a quadragésima primeira palavra mais próxima da palavra secreta. Após algumas tentativas, o usuário finalmente acerta a palavra do dia.

Mas como é possível definir a ordenação das palavras mais próximas da palavra secreta? Uma forma manual de fazer isso seria criar uma pontuação de proximidade para todas as palavras do dicionário a cada nova palavra secreta. Entretanto, considerando o tamanho do vocabulário de nossa língua, seria humanamente impossível criar uma ordenação dessas a cada dia! E é por isso que a inteligência artificial é aplicada nesse caso.

Processamento de Língua Natural

Processamento de Língua Natural (NLP) é uma subárea da inteligência artificial que busca entender e extrair informação da linguagem humana automaticamente, ou seja, por meio das máquinas. Caso essa definição não tenha deixado claro que tipos de problemas esse ramo busca resolver, aqui vão algumas das principais aplicações:

  • Análise de sentimentos: Trata-se da tarefa de inferir os sentimentos presentes em um texto automaticamente. Pode ser usado para classificar revisões a um produto em uma loja online como boas, neutras ou ruins.
  • Extração de informação: Um texto possui um conjunto totalmente não estruturado de informações, já que é possível transmitir a mesma mensagem escrevendo (ou falando) de diversas formas diferentes. Assim, uma das aplicações de NLP é extrair as informações relevantes de um texto em uma determinada situação. Essa etapa pode ser usada como parte de um Chatbot da área da saúde, no qual um paciente informa quais sintomas está sentido e a máquina fornece orientações sobre o que deve ser feito para se curar.
  • Recuperação de informação: Quando você faz uma pesquisa no Google, como ele faz para retornar as páginas mais relacionadas ao que você procura? Esta também é uma tarefa de NLP, já que a máquina deve entender o que você está buscando para retornar páginas relevantes.
  • Tradução automática: Traduzir um texto automaticamente de uma língua para outra é uma tarefa complexa, já que muitas expressões possuem significados não literais e não podem ser traduzidos palavra por palavra. Assim, esta também é uma tarefa de NLP.

Word Embedding

Quando trabalhamos com palavras, estamos, inicialmente, no mundo das letras. Entretanto, para aplicar alguns dos métodos estatísticos e computacionais que serão usados para extrair informação da linguagem, precisamos que as palavras estejam representadas como números. Assim, explicando de forma simples, word embedding consiste no processo de transformar palavras em números. Mas… como podemos fazer isso?

Bem, cada palavra possui alguns traços semânticos. Traços semânticos são unidades mínimas de significado que, quando combinadas, determinam os itens lexicais. O item “cadeira”, por exemplo, possui traços lexicais como inanimado, sólido, assento etc. Assim, uma forma de transformar as palavras em números é definir várias escalas que representam traços semânticos e posicionar as palavras em cada uma delas. Uma escala poderia, por exemplo, informar o quanto uma palavra se aproxima do gênero feminino ou masculino:

Exemplo de escala que poderia diferenciar algumas palavras

As palavras “cantor” e “cirurgiã”, por exemplo, possuem os gêneros masculino e feminino, respectivamente. A palavra “estudante”, por outro lado, pode fazer referência a um estudante do sexo masculino ou a uma estudante do sexo feminino. Assim, ela está posicionada mais ao centro desta escala.

A escala criada no exemplo acima diferencia as palavras quanto ao gênero. Entretanto, caso apenas essa escala seja usada, palavras do mesmo gênero com significados completamente diferentes seriam identificadas como próximas. Por isso, precisamos criar mais escalas para conseguir diferenciar melhor as palavras quanto ao seu significado.

Outras escalas poderiam representar conjugações e flexões, como singular/plural, ou um critério de campo semântico, como “esporte” ou “política”, quando se avalia o quanto uma palavra se aproxima ou se distancia desta temática.

Se posicionarmos cada uma das palavras em todas essas escalas, teremos uma representação em que cada palavra corresponde a um conjunto de números:

Word Embedding para a palavra “Goleiro”

Na matemática, um conjunto de números que carrega alguma informação pode ser chamado de “vetor”. E um vetor pode ser representado como um ponto no espaço! Assim, é possível representar as palavras como pontos no espaço semântico, e calcular a similaridade entre elas.

Uma das maneiras de medir essa similaridade é por meio da distância euclidiana. No espaço semântico abaixo, como você calcularia a distância entre essas duas palavras?

Exemplo de espaço semântico com apenas duas dimensões

Como temos apenas duas dimensões, basta recorrer ao bom e velho “teorema de Pitágoras” e conseguimos calcular essa distância:

Distância euclidiana entre palavras no espaço semântico

A distância euclidiana é simplesmente uma generalização do teorema de Pitágoras para um espaço com mais de duas dimensões. É como se você estivesse aplicando o teorema consecutivamente.

Outra forma de calcular a similaridade é por meio da distância cosseno. Trata-se de calcular o cosseno do ângulo entre os vetores que representam as palavras. O cosseno varia de 1 (quando o ângulo entre as palavras é 0, ou seja, ambas apontam para a mesma direção) a -1 (quando o ângulo é 180, ou seja, as palavras apontam para direções opostas).

Na figura abaixo, o ângulo entre as palavras “goleiro” e “juiz”, é menor do que o ângulo entre “goleiro” e “prefeito”. Assim, “goleiro” possui uma similaridade maior com a palavra “juiz” do que com a palavra “prefeito”.

Distância cosseno entre palavras no espaço semântico

Atualmente, existem muitas propostas de word embedding. Explicar cada uma delas está fora do escopo deste texto. O jogo “contexto”, especificamente, usa o GloVe, uma representação construída pelo NILC (Núcleo Interinstitucional de Linguística Computacional) da USP de São Carlos. Ela foi treinada em uma base enorme de textos em português para encontrar palavras utilizadas em contextos semelhantes. Assim, todos os dias, basta selecionar uma palavra secreta, calcular a similaridade de todas as outras palavras da língua com esta palavra e, por fim, ordenar as palavras com base nesta medida de similaridade!

Venha Trabalhar Conosco!

A A3Data é uma empresa de consultoria voltada para dados e inteligência artificial. Se você se interessa por essa área, confira nossas vagas abertas no link abaixo:

https://a3data.gupy.io/

--

--