toco Como funciona a classificação de texto? - Unite.AI
Entre em contato
Masterclass de IA:

AI 101

Como funciona a classificação de texto?

mm
Atualização do on

A classificação de texto é o processo de analisar sequências de texto e atribuir-lhes um rótulo, agrupando-as com base em seu conteúdo. A classificação de texto é a base de quase todas as tarefas de IA ou aprendizado de máquina que envolvem Processamento de Linguagem Natural (PNL). 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 classificação de texto? Exploraremos as respostas a essas perguntas abaixo.

Definindo a classificação do texto

É importante dedicar algum tempo e certificar-se de que entendemos o que é classificação de texto, em geral, antes de se aprofundar nos diferentes métodos de classificação de texto. A classificação de texto é um daqueles termos aplicados a muitas tarefas e algoritmos diferentes, por isso é útil garantir que entendemos o conceito básico de classificação de texto antes de prosseguir para explorar as diferentes maneiras pelas quais ela pode ser realizada.

Qualquer coisa que envolva a criação de diferentes categorias de texto e a rotulação de diferentes amostras de texto como essas categorias pode ser considerada classificação de texto. Desde que um sistema execute essas etapas básicas, ele 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 é eventualmente aplicado. 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 exemplos de classificação de texto porque são realizados tomando o texto como entrada e gerando um rótulo 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 trecho de texto deve pertencer, procurando pistas na forma de elementos de texto semanticamente relevantes. Cada regra tem um padrão que o texto deve corresponder para ser colocado na categoria correspondente.

Para ser mais concreto, digamos que você queira projetar um classificador de texto capaz de distinguir tópicos comuns de conversa, como clima, filmes ou comida. Para permitir que seu classificador de texto reconheça a discussão sobre o clima, você pode dizer a ele para procurar palavras relacionadas ao clima no corpo das amostras de texto que está sendo alimentada. 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ê pode instruir o classificador a procurar palavras como “vento”, “chuva”, “sol”, “neve” ou “nuvem”. Você pode fazer com que o classificador examine o texto de entrada e conte o número de vezes que essas palavras aparecem no corpo do texto e, se elas aparecerem com mais frequência do que palavras relacionadas a filmes, você classificaria o texto como pertencente à classe 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 melhoradas por meio da intervenção manual do engenheiro. No entanto, os métodos de classificação baseados em regras também são um tanto frágeis e geralmente têm dificuldade em generalizar porque só podem aderir aos padrões predefinidos que foram programados. Por exemplo, a palavra "nuvem" pode se referir à umidade no céu, ou pode estar se referindo 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 bastante tempo tentando antecipar e ajustar manualmente essas sutilezas.

Sistemas de aprendizado de máquina

Como mencionado acima, os sistemas baseados em regras têm limitações, pois suas funções e regras devem ser pré-programadas. Por outro lado, 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 específica.

Os algoritmos de aprendizado de máquina são alimentados com instâncias pré-rotuladas/pré-classificadas que são analisadas quanto a 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 os padrões associados às diferentes classes. Depois disso, instâncias não vistas são retiradas de seus rótulos e enviadas para o algoritmo de classificação que atribui um rótulo às instâncias. Os rótulos atribuídos são comparados aos rótulos originais para ver a precisão do classificador de aprendizado de máquina, avaliando o quão bem o modelo aprendeu quais padrões prevêem 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 de codificação de dados de texto como dados numéricos e criação de métodos de aprendizado de máquina em torno desses dados. Abordaremos algumas das diferentes maneiras de representar dados de texto abaixo.

Saco de palavras

saco de palavras é uma das abordagens mais comumente usadas para codificar e representar dados de texto. O termo “saco de palavras” vem do fato de que você basicamente pega todas as palavras dos documentos e as coloca todas em um “saco” sem prestar atenção à ordem das palavras ou à gramática, prestando atenção apenas ao frequência de palavras na mochila. Isso resulta em uma longa matriz, ou vetor, contendo uma única representação de todas as palavras nos documentos de entrada. Portanto, se houver um total de 10000 palavras únicas nos documentos de entrada, os vetores de recursos terão 10000 palavras. É assim que o tamanho do vetor bolsa/característica é calculado.

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

Após a determinação do tamanho do vetor de características, 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” aparecer oito vezes em um documento de texto, o vetor/matriz de recursos correspondente terá um oito na posição correspondente.

Dito de outra forma, todas as palavras únicas que aparecem nos documentos de entrada são todas empilhadas em um pacote e, em seguida, cada documento recebe um vetor de palavras do mesmo tamanho, que é 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 exclusivas, mas a maioria delas não é usada com muita frequência. Por esse motivo, o número de palavras usadas para criar o vetor de palavras normalmente é limitado a um valor escolhido (N) e, em seguida, a dimensão do vetor de recursos será Nx1.

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

Outra maneira de representar um documento com base nas palavras nele contidas é chamada Frequência Termo-Frequência Inversa do Documento (TF-IDF). Uma abordagem TF-IDF também cria um vetor que representa o documento com base nas palavras nele contidas, mas, ao contrário do Bag-of-words, essas palavras são ponderado por mais do que apenas sua frequência. O TF-IDF considera a importância das palavras nos documentos, tentando quantificar a relevância dessa palavra para o assunto do documento. Em outras palavras, o 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 do TF-IDF que é calculada em 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 exclusivos aparecem em um documento específico. No entanto, o TF-IDF também toma o cuidado de limitar a influência de palavras extremamente comuns como “o”, “ou” e “e”, pois essas “palavras irrelevantes” são muito comuns, mas transmitem muito pouca informação sobre o conteúdo do documento. Essas palavras precisam ser descontadas, a que se refere a parte da “frequência de documento inverso” do TF-IDF. Isso é feito porque quanto mais documentos uma palavra específica aparece, menos útil essa palavra é para distingui-la dos outros documentos na lista de todos os documentos. A fórmula que o TF-IDF usa para calcular a importância de uma palavra é projetada para preservar as palavras mais frequentes e mais ricas semanticamente.

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

Incorporação de palavras

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

Incorporações de palavras operar por “vetorização” de palavras, o que significa que eles representam palavras como vetores de valores reais em um espaço vetorial. Os vetores existem em uma grade ou matriz e têm 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 com significado semelhante têm direção e magnitude semelhantes. Esse tipo de codificação possibilita que um algoritmo de aprendizado de máquina aprenda relações complicadas entre palavras.

Os embeddings que representam palavras diferentes são criados considerando como as palavras em questão são usadas. Como as palavras usadas de maneiras semelhantes terão vetores semelhantes, o processo de criação de incorporações de palavras traduz automaticamente parte do significado que as palavras têm. Uma abordagem de saco de palavras, em contraste, cria representações frágeis onde palavras diferentes terão representações diferentes, mesmo que sejam usadas em contextos altamente semelhantes.

Como resultado, as incorporações de palavras são melhores para capturar o contexto das palavras dentro de uma frase.

Existem diferentes algoritmos e abordagens usadas para criar incorporações de palavras. Alguns dos métodos de incorporação de palavras mais comuns e confiáveis ​​incluem: camadas de incorporação, word2vec e GloVe.

Incorporando Camadas

Uma maneira potencial de usar a incorporação de palavras ao lado de um sistema de aprendizado de máquina/deep learning é usar uma camada de incorporação. As camadas de incorporação são camadas de aprendizado profundo que convertem palavras em incorporações que são alimentadas no restante do sistema de aprendizado profundo. As incorporações de palavras são aprendidas à medida que a rede treina para uma tarefa baseada em texto específica.

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

Para usar camadas de incorporação, o texto precisa ser pré-processado primeiro. O texto no documento deve ser codificado em um ponto 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.

Palavra2Old

Palavra2Old é outro método comum de incorporar palavras. Word2Vec usa métodos estatísticos para converter palavras em incorporações e é otimizado para uso com modelos baseados em redes neurais. O Word2Vec foi desenvolvido por pesquisadores do Google e é um dos métodos de incorporação mais usados, pois produz incorporações ricas e úteis de forma confiável. As representações Word2Vec são úteis para identificar semelhanças semânticas e sintáticas na linguagem. Isso significa que as representações Word2Vec capturam relações entre conceitos semelhantes, sendo capazes de distinguir que a semelhança entre “Rei” e “Rainha” é realeza e que “Rei” implica “masculinidade” enquanto Rainha implica “Mulher”.

Luva

GloVE, ou Vetor Global para Representação de Palavras, baseia-se nos algoritmos de incorporação usados ​​pelo Word2Vec. Os métodos de incorporação GloVe combinam aspectos de Word2Vec e técnicas de fatoração de matrizes, como a Análise Semântica Latente. A vantagem do Word2Vec é que ele pode capturar o contexto, mas, como contrapartida, ele captura mal as estatísticas globais de texto. Por outro lado, as representações vetoriais tradicionais são boas para determinar estatísticas globais de texto, mas não são úteis para determinar o contexto de palavras e frases. O GloVE utiliza o melhor de ambas as abordagens, criando contextos de palavras com base em estatísticas globais de texto.

Blogueiro e programador com especialidades em Machine Learning e Aprendizagem profunda tópicos. Daniel espera ajudar outras pessoas a usar o poder da IA ​​para o bem social.