Fundamentos de IA

Como Funciona a Classificação de Texto?

mm
Adicione Unite.AI às suas fontes preferidas no Google

A classificação de texto é o processo de analisar sequências de texto e atribuir-lhes uma etiqueta, colocando-as em um grupo com base em seu conteúdo. A classificação de texto subjaz a quase qualquer tarefa de inteligência artificial ou aprendizado de máquina que envolva processamento de linguagem natural (NLP). Com a classificação de texto, um programa de computador pode realizar uma ampla variedade de tarefas diferentes, como reconhecimento de spam, análise de sentimentos e funções de chatbot. Como funciona exatamente a classificação de texto? Quais são os diferentes métodos de realizar a classificação de texto? Vamos explorar as respostas a essas perguntas abaixo.

Definindo Classificação de Texto

É importante dedicar algum tempo para entender o que é classificação de texto em geral, antes de mergulhar nos diferentes métodos de realizar a classificação de texto. A classificação de texto é um desses termos que é aplicado a muitas tarefas e algoritmos diferentes, então é útil garantir que entendamos o conceito básico de classificação de texto antes de prosseguir para explorar as diferentes maneiras pelas quais pode ser realizada.

Qualquer coisa que envolva criar categorias diferentes para texto e, em seguida, rotular amostras de texto como essas categorias, pode ser considerada classificação de texto. Desde que um sistema execute esses passos básicos, pode ser considerado um classificador de texto, independentemente do método exato usado para classificar o texto e independentemente de como o classificador de texto é aplicado eventualmente. Detectar spam de e-mail, organizar documentos por tópico ou título e reconhecer o sentimento de uma revisão de um produto são todos exemplos de classificação de texto porque são realizados tomando texto como entrada e produzindo uma etiqueta de classe para esse pedaço de texto.

Como Funciona a Classificação de Texto?

Foto: Quinn Dombrowski via Flickr, CC BY SA 2.0 , (https://www.flickr.com/photos/quinnanya/4714794045)

A maioria dos métodos de classificação de texto pode ser colocada em uma das três categorias diferentes: métodos baseados em regras ou métodos de aprendizado de máquina.

Métodos de Classificação Baseados em Regras

Os métodos de classificação de texto baseados em regras operam por meio do uso de regras linguísticas explicitamente projetadas. O sistema usa as regras criadas pelo engenheiro para determinar a qual classe um determinado pedaço de texto deve pertencer, procurando por pistas na forma de elementos de texto semanticamente relevantes. Cada regra tem um padrão que o texto deve atender para ser colocado na categoria correspondente.

Para ser mais concreto, vamos dizer que você queria projetar um classificador de texto capaz de distinguir tópicos comuns de conversa, como o clima, filmes ou comida. Para permitir que o classificador de texto reconheça discussões sobre o clima, você poderia instruí-lo a procurar por palavras relacionadas ao clima no corpo das amostras de texto que está sendo alimentado. Você teria uma lista de palavras-chave, frases e outros padrões relevantes que poderiam ser usados para distinguir o tópico. Por exemplo, você poderia instruir o classificador a procurar por palavras como “vento”, “chuva”, “sol”, “neve” ou “nuvem”. Em seguida, você poderia ter o classificador procurar pelo número de vezes que essas palavras aparecem no corpo do texto e, se elas aparecem com mais frequência do que palavras relacionadas a filmes, você classificaria o texto como pertencente à classe do clima.

A vantagem dos sistemas baseados em regras é que suas entradas e saídas são previsíveis e interpretáveis por humanos, e podem ser melhorados por meio de intervenção manual do engenheiro. No entanto, os métodos de classificação baseados em regras também são um pouco frágeis e têm dificuldade em generalizar, pois só podem aderir aos padrões pré-definidos que foram programados. Por exemplo, a palavra “nuvem” pode se referir à umidade no céu ou a uma nuvem digital onde os dados são armazenados. É difícil para os sistemas baseados em regras lidar com essas nuances sem que os engenheiros gastem um tempo considerável tentando antecipar e ajustar essas sutilezas.

Sistemas de Aprendizado de Máquina

Como mencionado anteriormente, os sistemas baseados em regras têm limitações, pois suas funções e regras devem ser pré-programadas. Em contraste, os sistemas de classificação baseados em aprendizado de máquina operam aplicando algoritmos que analisam conjuntos de dados em busca de padrões associados a uma classe particular.

Os algoritmos de aprendizado de máquina são alimentados com instâncias pré-rotuladas/pré-classificadas que são analisadas em busca de recursos relevantes. Essas instâncias pré-rotuladas são os dados de treinamento.

O classificador de aprendizado de máquina analisa os dados de treinamento e aprende padrões que estão associados às diferentes classes. Em seguida, instâncias não vistas são despojadas de suas etiquetas e alimentadas no algoritmo de classificação, que atribui às instâncias uma etiqueta. As etiquetas atribuídas são então comparadas com as etiquetas originais para ver quão precisa foi a classificação do classificador de aprendizado de máquina, avaliando quão bem o modelo aprendeu quais padrões preveem quais classes.

Os algoritmos de aprendizado de máquina operam analisando dados numéricos. Isso significa que, para usar um algoritmo de aprendizado de máquina em dados de texto, o texto precisa ser convertido em um formato numérico. Existem vários métodos para codificar dados de texto como dados numéricos e criar métodos de aprendizado de máquina em torno desses dados. Vamos cobrir alguns dos diferentes métodos para representar dados de texto abaixo.

Bolsa de Palavras

A bolsa de palavras é uma das abordagens mais comuns para codificar e representar dados de texto. O termo “bolsa de palavras” vem do fato de que você basicamente pega todas as palavras nos documentos e as coloca em uma “bolsa” sem prestar atenção à ordem das palavras ou à gramática, prestando atenção apenas à frequência das palavras na bolsa. Isso resulta em um longo array, ou vetor, que contém uma representação única de todas as palavras nos documentos de entrada. Então, se houver 10.000 palavras únicas no total nos documentos de entrada, os vetores de recursos terão 10.000 palavras de comprimento. É assim que o tamanho da bolsa de palavras/vetor de recursos é calculado.

Foto: gk_ via Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)

Depois que o tamanho do vetor de recursos é determinado, cada documento na lista de documentos totais recebe seu próprio vetor preenchido com números que indicam quantas vezes a palavra em questão aparece no documento atual. Isso significa que, se a palavra “comida” aparece oito vezes dentro de um documento de texto, o vetor de recursos correspondente terá um oito na posição correspondente.

De outra forma, todas as palavras únicas que aparecem nos documentos de entrada são todas empilhadas em uma bolsa e, em seguida, cada documento recebe um vetor de palavras do mesmo tamanho, que é então preenchido com o número de vezes que as diferentes palavras aparecem no documento.

Os conjuntos de dados de texto geralmente contêm um grande número de palavras únicas, mas a maioria delas não é usada com frequência. Por esse motivo, o número de palavras usadas para criar o vetor de palavras é geralmente limitado a um valor escolhido (N) e, em seguida, a dimensão do vetor de recursos será Nx1.

Frequência de Termo-Inversa de Frequência de Documento (TF-IDF)

Outra forma de representar um documento com base nas palavras que ele contém é chamada de Frequência de Termo-Inversa de Frequência de Documento (TF-IDF). Uma abordagem TF-IDF também cria um vetor que representa o documento com base nas palavras que ele contém, mas, ao contrário da bolsa de palavras, essas palavras são pesadas por mais do que apenas sua frequência. A TF-IDF considera a importância das palavras nos documentos, tentando quantificar quão relevante é essa palavra para o assunto do documento. Em outras palavras, a TF-IDF analisa a relevância em vez da frequência e as contagens de palavras em um vetor de recursos são substituídas por uma pontuação TF-IDF que é calculada com relação a todo o conjunto de dados.

Uma abordagem TF-IDF opera calculando primeiro a frequência do termo, o número de vezes que os termos únicos aparecem dentro de um documento específico. No entanto, a TF-IDF também se esforça para limitar a influência das palavras extremamente comuns, como “o”, “ou” e “e”, pois essas “palavras de parada” são muito comuns, mas transmitem muito pouca informação sobre o conteúdo do documento. Essas palavras precisam ser descontadas, o que é o que a parte “frequência de documento inversa” da TF-IDF se refere. Isso é feito porque, quanto mais documentos um palavra específica aparece, menos útil é essa palavra para distinguir entre os outros documentos na lista de todos os documentos. A fórmula que a TF-IDF usa para calcular a importância de uma palavra é projetada para preservar as palavras que são mais frequentes e semanticamente ricas.

Os vetores de recursos criados pela abordagem TF-IDF contêm valores normalizados que somam um, atribuindo a cada palavra um valor ponderado calculado pela fórmula TF-IDF.

Embeddings de Palavras

As embeddings de palavras são métodos de representar texto que garantem que as palavras com significados semelhantes tenham representações numéricas semelhantes.

As embeddings de palavras operam “vetorizando” palavras, ou seja, representam palavras como vetores de valor real em um espaço de vetor. Os vetores existem em uma grade ou matriz e têm uma direção e comprimento (ou magnitude). Ao representar palavras como vetores, as palavras são convertidas em vetores compostos por valores reais. Cada palavra é mapeada para um vetor e as palavras que são semelhantes em significado têm vetores semelhantes em direção e magnitude. Esse tipo de codificação torna possível para um algoritmo de aprendizado de máquina aprender relações complicadas entre palavras.

Os embeddings que representam diferentes palavras são criados com relação a como as palavras em questão são usadas. Como as palavras que são usadas de maneira semelhante terão vetores semelhantes, o processo de criar embeddings de palavras traduz automaticamente algum significado que as palavras têm. Uma abordagem de bolsa de palavras, por outro lado, cria representações frágeis onde palavras diferentes terão representações dissemelhantes, mesmo que sejam usadas em contextos muito semelhantes.

Como resultado, as embeddings de palavras são melhores em capturar o contexto de palavras dentro de uma sentença.

Existem diferentes algoritmos e abordagens usados para criar embeddings de palavras. Alguns dos métodos de embeddings de palavras mais comuns e confiáveis incluem camadas de embeddings, Word2Vec e GloVe.

Camadas de Embeddings

Uma forma potencial de usar embeddings de palavras junto com um sistema de aprendizado de máquina/deep learning é usar uma camada de embeddings. As camadas de embeddings são camadas de deep learning que convertem palavras em embeddings que são então alimentados no resto do sistema de deep learning. As embeddings de palavras são aprendidas à medida que a rede treina para uma tarefa de texto específica.

Em uma abordagem de embeddings de palavras, palavras semelhantes terão representações semelhantes e estarão mais próximas umas das outras do que de palavras dissemelhantes.

Para usar camadas de embeddings, o texto precisa ser pré-processado primeiro. O texto no documento precisa ser codificado one-hot e o tamanho do vetor precisa ser especificado com antecedência. O texto one-hot é então convertido em vetores de palavras e os vetores são passados para o modelo de aprendizado de máquina.

Word2Vec

O Word2Vec é outro método comum de embeddings de palavras. O Word2Vec usa métodos estatísticos para converter palavras em embeddings e é otimizado para uso com modelos baseados em redes neurais. O Word2Vec foi desenvolvido por pesquisadores do Google (GOOGL ) e é um dos métodos de embeddings mais comuns, pois confiavelmente produz embeddings úteis e ricos. As representações do Word2Vec são úteis para identificar semântica e sintaxe comuns na linguagem. Isso significa que as representações do Word2Vec capturam relações entre conceitos semelhantes, sendo capaz de distinguir que a commonalidade entre “Rei” e “Rainha” é a realeza e que “Rei” implica “homem” enquanto Rainha implica “mulher”.

GloVe

O GloVe, ou Vetor Global para Representação de Palavras, constrói sobre os algoritmos de embeddings usados pelo Word2Vec. Os métodos de embeddings do GloVe combinam aspectos dos algoritmos usados pelo Word2Vec e técnicas de fatoração de matrizes, como a Análise de Semântica Latente. A vantagem do Word2Vec é que ele pode capturar o contexto, mas como um tradeoff, ele captura mal as estatísticas de texto globais. Por outro lado, as representações de vetores tradicionais são boas em determinar as estatísticas de texto globais, mas não são úteis para determinar o contexto de palavras e frases. O GloVe aproveita o melhor de ambas as abordagens, criando um contexto de palavra com base em estatísticas de texto globais. GloVe combina o melhor de ambas as abordagens, criando um contexto de palavra baseado em estatísticas de texto globais.

Blogueiro e programador com especialidades em Machine Learning e Deep Learning tópicos. Daniel espera ajudar os outros a usar o poder da IA para o bem social.