Entenda a Análise de Texto

Concluído

Antes de explorar os recursos de análise de texto do serviço de Linguagem de IA do Azure, vamos examinar alguns princípios gerais e técnicas comuns usadas para realizar análise de texto e outras tarefas de NLP (processamento de linguagem natural).

Algumas das primeiras técnicas usadas para analisar texto com computadores envolvem a análise estatística de um corpo de texto (um corpus) para inferir algum tipo de significado semântico. De maneira simples, se você conseguir identificar as palavras mais utilizadas em um determinado documento, geralmente poderá obter uma boa compreensão do seu conteúdo.

Geração de tokens

A primeira etapa na análise de um corpus é dividi-lo em tokens. Para simplificar, você pode pensar em cada palavra distinta no texto de treinamento como um token, embora na realidade, tokens possam ser gerados para palavras parciais ou combinações de palavras e pontuação.

Por exemplo, considere esta frase de um famoso discurso presidencial dos EUA: "we choose to go to the moon" (“Nós escolhemos ir para a lua”). A frase pode ser dividida nos seguintes tokens, com identificadores numéricos:

  1. we
  2. choose
  3. to
  4. go
  5. the
  6. moon

Observe que "to" (número de token 3) é usado duas vezes no corpus. A frase "we choose to go to the moon" pode ser representada pelos tokens [1,2,3,4,3,5,6].

Observação

Usamos um exemplo simples no qual os tokens são identificados para cada palavra distinta no texto. No entanto, considere os seguintes conceitos que podem se aplicar à geração de tokens, dependendo do tipo específico de problema de NLP que você está tentando resolver:

  • Normalização de texto: Antes de gerar tokens, você pode optar por normalizar o texto, removendo a pontuação e convertendo todas as palavras para letras minúsculas. Para as análises que dependem apenas da frequência de palavras, essa abordagem melhora o desempenho geral. No entanto, pode ocorrer alguma perda do significado semântico. Por exemplo, considere a frase "A Sra. Rosa plantou uma rosa.". Você pode querer que sua análise diferencie entre a pessoa Sra. Rosa e a rosa que ela plantou. Você também pode querer considerar "rosa". como um token separado de "rosa", porque a inclusão de um ponto fornece a informação de que a palavra está no final de uma frase
  • Remoção de palavra irrelevante (stop word). Palavras vazias são palavras que devem ser excluídas da análise. Por exemplo, o, a ou uns facilitam a leitura do texto para as pessoas, mas acrescentam pouco significado semântico. Ao excluir essas palavras, uma solução de análise de texto pode ser mais capaz de identificar as palavras importantes.
  • n-gramas são frases constituídas de vários termos, como "eu tenho" ou "ele andou". Uma frase de uma única palavra é um unigrama, uma frase de duas palavras é um bigrama, uma frase de três palavras é um trigrama e assim por diante. Ao considerar as palavras como grupos, um modelo de machine learning pode entender melhor um texto.
  • A lematização é uma técnica na qual algoritmos são aplicados para consolidar palavras antes de contá-las, de forma que palavras com a mesma raiz, como “poder”, “poderoso” e “empoderado”, sejam interpretadas como sendo o mesmo token.

Análise de frequência

Depois de gerar os tokens das palavras, você pode executar algumas análises para contar o número de ocorrências de cada token. As palavras mais usadas (além de palavras de parada como "a", "o" e assim por diante) muitas vezes podem fornecer uma pista sobre o assunto principal de um corpus de texto. Por exemplo, as palavras mais comuns em todo o texto do discurso "go to the moon", que consideramos anteriormente, incluem "new", "go", "space" e "moon". Se decidíssemos gerar tokens do texto como bigramas (pares de palavras), o bigrama mais comum na fala seria "a lua". A partir dessas informações, podemos facilmente presumir que o texto trata principalmente de viagens espaciais e de ir para a lua.

Dica

Uma análise de frequência simples, em que você apenas conta quantas vezes cada token aparece, pode ser eficaz para analisar um único documento. No entanto, quando você precisa distinguir vários documentos dentro do mesmo conjunto, é necessário encontrar uma maneira de identificar quais tokens são mais relevantes em cada um deles. A técnica de Frequência de Termos – Frequência Inversa de Documentos (TF-IDF) é comumente usada para calcular uma pontuação que leva em consideração o número de vezes que uma palavra ou termo aparece em um documento em comparação com sua frequência geral em toda a coleção de documentos. Usando essa técnica, assume-se um alto grau de relevância para palavras que aparecem com frequência em um documento específico, mas relativamente pouco frequente em uma ampla variedade de outros documentos.

Machine learning para classificação de texto

Outra técnica útil de análise de texto é usar um algoritmo de classificação, como regressão logística, para treinar um modelo de machine learning que classifica o texto com base em um conjunto conhecido de categorizações. Uma aplicação comum dessa técnica é treinar um modelo que classifica o texto como positivo ou negativo para executar a análise de sentimento ou a mineração de opiniões.

Por exemplo, considere as seguintes avaliações de um restaurante, que já estão rotuladas como 0 (negativas) ou 1 (positivas):

  • A comida e o serviço estavam ótimos: 1
  • Uma experiência realmente terrível: 0
  • Hmm! comida saborosa e uma vibração boa: 1
  • O serviço é lento e a comida medíocre: 0

Com revisões rotuladas suficientes, você pode treinar um modelo de classificação usando o texto tokenizado como características e o sentimento (0 ou 1) como um rótulo. O modelo irá encapsular uma relação entre tokens e sentimento. Por exemplo, revisões com tokens para palavras como "ótimo", "saborosa" ou "boa" são mais propensas a retornar um sentimento de 1 (positivo), enquanto revisões com palavras como "terrível", "lento" e "medíocre" são mais propensas a retornar 0 (negativo).

Modelos de linguagem semântica

À medida que a alta tecnologia em NLP avançou, a capacidade de treinar modelos que encapsulam a relação semântica entre os tokens levou ao surgimento de modelos de linguagem poderosos. No cerne desses modelos está a codificação dos tokens de linguagem como vetores (matrizes de valores múltiplos) conhecidos como inserções.

Pode ser útil pensar nos elementos de um vetor de inserção de token como coordenadas no espaço multidimensional, de modo que cada token ocupe um "local" específico. Quanto mais próximos os tokens estiverem entre si ao longo de uma dimensão específica, mais semanticamente eles estão relacionados. Em outras palavras, as palavras relacionadas ficam agrupadas mais próximas. Como um exemplo simples, suponha que as inserções para nossos tokens consistem em vetores com três elementos, por exemplo:

  • 4 ("cachorro"): [10.3.2]
  • 5 ("bark"): [10,2,2]
  • 8 ("gato"): [10,3,1]
  • 9 ("miau"): [10,2,1]
  • 10 ("skate"): [3,3,1]

Podemos plotar o local dos tokens com base nesses vetores no espaço tridimensional, desta forma:

A diagram of tokens plotted on a three-dimensional space.

Os locais dos tokens no espaço de inserções incluem algumas informações sobre o quão próximos os tokens estão relacionados uns aos outros. Por exemplo, o token para "cachorro" fica próximo de "gato" e também de "latido". Os tokens para "gato" e "latido" ficam próximos de "miau". O token para "skate" fica mais longe dos outros tokens.

Os modelos de linguagem que usamos no setor são baseados nesses princípios, mas sua complexidade é maior. Por exemplo, os vetores usados geralmente têm um número de dimensões muito maior. Também existem várias maneiras de calcular as incorporações apropriadas para um determinado conjunto de tokens. Métodos diferentes resultam em previsões diferentes dos modelos de processamento de linguagem natural.

O diagrama a seguir mostra uma visão geral das soluções modernas de processamento de linguagem natural. Um grande corpus de texto bruto é tokenizado e usado para treinar modelos de linguagem, que podem suportar muitos tipos diferentes de tarefas de processamento de linguagem natural.

A diagram of the process to tokenize text and train a language model that supports natural language processing tasks.

Entre as tarefas comuns de NLP compatíveis com modelos de linguagem incluem-se:

  • Análise de texto, como extrair termos chave ou identificar entidades nomeadas no texto.
  • Análise de sentimento e mineração de opiniões para categorizar o texto como positivo ou negativo.
  • Tradução automática, na qual o texto é convertido automaticamente de um idioma para outro.
  • Sumarização, na qual os principais pontos de um grande corpo de texto são resumidos.
  • Soluções de IA de conversação, como bots ou assistentes digitais, nas quais o modelo de linguagem pode interpretar a entrada de linguagem natural e retornar uma resposta apropriada.

Esses recursos e muitos outros são compatíveis com os modelos no serviço de Linguagem de IA do Azure, que vamos explorar em seguida.