Análise estatística de texto.

Concluído

Observação

Consulte a guia Texto e imagens para obter mais detalhes!

Depois de decompor um corpus textual nos seus tokens constituintes e prepará-los para análise; Existem algumas técnicas comuns de análise estatística que pode usar para inferir significado a partir do texto.

Análise de Frequência

Talvez a forma mais óbvia de apurar os temas discutidos num documento seja simplesmente contar o número de vezes que cada token normalizado aparece. Parte-se do pressuposto de que termos usados com mais frequência no documento podem ajudar a identificar os temas ou temas discutidos. Simplificando, se conseguir identificar as palavras mais usadas num determinado documento, muitas vezes pode ter uma boa ideia do que trata o documento.

Por exemplo, considere o seguinte texto:

AI in modern business delivers transformative benefits by enhancing efficiency, decision-making, and customer experiences. Businesses can leverage AI to automate repetitive tasks, freeing employees to focus on strategic work, while predictive analytics and machine learning models enable data-driven decisions that improve accuracy and speed. AI-powered tools like Copilot streamline workflows across marketing, finance, and operations, reducing costs and boosting productivity. Additionally, intelligent applications personalize customer interactions, driving engagement and loyalty. By embedding AI into core processes, businesses benefit from the ability to innovate faster, adapt to market changes, and maintain a competitive edge in an increasingly digital economy.

Após tokenizar, normalizar e aplicar lematização ao texto, a frequência de cada termo pode ser contada e tabulada; produzindo os seguintes resultados parciais:

Term Frequência
ai 4
business 3
benefit 2
customer 2
decision 2
market 2
ability 1
accuracy 1
... ...

A partir destes resultados, os termos mais frequentes indicam que o texto discute a IA e os seus benefícios empresariais.

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

Uma simples análise de frequência, na qual se conta o número de ocorrências de cada token, pode ser uma forma eficaz de analisar um único documento, mas quando é necessário diferenciar entre vários documentos dentro do mesmo corpus, é preciso uma forma de determinar quais os tokens mais relevantes em cada documento individual.

Por exemplo, considere os seguintes dois exemplos de texto:

Exemplo A:

Microsoft Copilot Studio enables declarative AI agent creation using natural language, prompts, and templates. With this declarative approach, an AI agent is configured rather than programmed: makers define intents, actions, and data connections, then publish the agent to channels. Microsoft Copilot Studio simplifies agent orchestration, governance, and lifecycles so an AI agent can be iterated quickly. Using Microsoft Copilot Studio helps modern businesses deploy Microsoft AI agent solutions fast.

Exemplo B:

Microsoft Foundry enables code‑based AI agent development with SDKs and APIs. Developers write code to implement agent conversations, tool calling, state management, and custom pipelines. In Microsoft Foundry, engineers can use Python or Microsoft C#, integrate Microsoft AI services, and manage CI/CD to deploy the AI agent. This code-first development model supports extensibility and performance while building Microsoft Foundry AI agent applications.

Os três termos mais frequentes nestas amostras estão apresentados nas tabelas seguintes:

Exemplo A:

Term Frequência
agent 6
ai 4
microsoft 4

Exemplo B:

Term Frequência
microsoft 5
agent 4
ai 4

Como pode ver pelos resultados, as palavras mais comuns em ambas as amostras são as mesmas ("agent", "Microsoft", e "AI"). Isto indica-nos que ambos os documentos abordam um tema geral semelhante, mas não nos ajuda a discriminar entre os documentos individuais. Examinar as contagens de termos menos usados pode ajudar, mas pode facilmente imaginar uma análise de um corpus baseada na documentação de IA da Microsoft, o que resultaria num grande número de termos comuns a todos os documentos; tornando difícil determinar os temas específicos abordados em cada documento.

Para resolver este problema, a Frequência de Termos - Frequência Inversa de Documentos (TF-IDF) é uma técnica que calcula as pontuações com base na frequência com que uma palavra ou termo aparece num documento, em comparação com a sua frequência mais geral em toda a coleção de documentos. Utilizando esta técnica, assume-se um elevado grau de relevância para palavras que aparecem frequentemente num determinado documento, mas relativamente raramente numa vasta gama de outros documentos. Para calcular TF-IDF para termos num documento individual, pode usar o seguinte processo em três etapas:

  1. Calcular a Frequência do Termo (TF): Isto é simplesmente o número de vezes que uma palavra aparece num documento. Por exemplo, se a palavra "agent" aparecer 6 vezes num documento, então tf(agent) = 6.

  2. Calcular a Frequência Inversa de Documentos (IDF): Isto verifica quão comum ou rara é uma palavra em todos os documentos. Se uma palavra aparece em todos os documentos, não é especial. A fórmula usada para calcular IDF é idf(t) = log(N / df(t)) (onde N é o número total de documentos e df(t) é o número de documentos que contêm a palavra t)

  3. Combine-os para calcular TF-IDF: Multiplicar TF e IDF para obter a pontuação: tfidf(t, d) = tf(t, d) * log(N / df(t))

Uma pontuação TF-IDF elevada indica que uma palavra aparece frequentemente num documento, mas raramente noutros. Uma pontuação baixa indica que essa palavra é comum em muitos documentos. Em duas amostras sobre agentes de IA, porque "AI", "Microsoft" e "agent" aparecem em ambas as amostras (N = 2, df(t) = 2), o seu IDF é log(2/2) = 0, pelo que não têm peso discriminativo em TF-IDF. Os três principais resultados TF-IDF das amostras são:

Exemplo A:

Term TF-IDF
copilot 2.0794
studio 2.0794
declarative 1.3863

Exemplo B:

Term TF-IDF
code 2.0794
develop 2.0794
foundry 2.0794

A partir destes resultados, é mais claro que a amostra A é sobre criação declarativa de agentes com o Copilot Studio, enquanto a amostra B é sobre desenvolvimento de agentes baseados em código com Microsoft Foundry.

Técnicas de aprendizagem automática «saco de palavras»

Saco de palavras é o nome dado a uma técnica de extração de características que representa tokens de texto como um vetor de frequências ou ocorrências de palavras, ignorando a gramática e a ordem das palavras. Esta representação torna-se a entrada para algoritmos de aprendizagem automática como Naive Bayes, um classificador probabilístico que aplica o teorema de Bayes para prever a classe provável de um documento com base na frequência das palavras.

Por exemplo, pode usar esta técnica para treinar um modelo de aprendizagem automática que realize filtragem de spam por email. As palavras "miracle cure", "lose weight fast", e '"anti-envelhecimento'' podem aparecer com mais frequência em emails de spam sobre produtos de saúde duvidosos do que nos seus emails regulares, e um modelo treinado pode sinalizar mensagens contendo estas palavras como potencial spam.

Pode implementar a análise de sentimento usando o mesmo método para classificar o texto pelo tom emocional. O pacote de palavras fornece as funcionalidades, e o modelo usa essas características para estimar probabilidades e atribuir rótulos de sentimento como "positivo" ou "negativo".

TextRank

O TextRank é um algoritmo não supervisionado baseado em grafos que modela o texto como uma rede de nós ligados. Por exemplo, cada frase num documento pode ser considerada um nó, e as ligações (arestas) entre elas são pontuadas com base na semelhança das palavras que contêm. O TextRank é comumente usado para resumir texto com base na identificação de um subconjunto de frases dentro de um documento que melhor representam o seu assunto global.

O algoritmo TextRank aplica o mesmo princípio do algoritmo PageRank da Google (que classifica páginas web com base em ligações entre elas) ao texto. A ideia chave é que uma frase é importante se for semelhante a muitas outras frases importantes. O algoritmo funciona através dos seguintes passos:

  1. Constrói um grafo: Cada frase transforma-se num nó, e as arestas que as ligam são ponderadas pela semelhança (geralmente medida pela sobreposição de palavras ou similaridade de cosseno entre vetores de frases).

  2. Calcular as classificações iterativamente: A pontuação de cada nó é calculada com base nas pontuações dos nós a ele ligados. A fórmula é: TextRank(Sᵢ) = (1-d) + d * Σ(wⱼᵢ / Σwⱼₖ) * TextRank(Sⱼ) (onde d é um fator de amortecimento, tipicamente 0,85, wⱼᵢ é o peso da aresta da frase j para a frase i, e a soma itera sobre todas as frases ligadas a i).

  3. Extrair as frases mais bem classificadas: Após a convergência, as frases com as pontuações mais altas são selecionadas como resumo.

Por exemplo, considere o seguinte documento sobre computação em nuvem:

Cloud computing provides on-demand access to computing resources. Computing resources include servers, storage, and networking. Azure is Microsoft's cloud computing platform. Organizations use cloud platforms to reduce infrastructure costs. Cloud computing enables scalability and flexibility.

Para gerar um resumo deste documento, o processo TextRank começa por dividir este documento em frases:

  1. Cloud computing provides on-demand access to computing resources.
  2. Computing resources include servers, storage, and networking.
  3. Azure is Microsoft's cloud computing platform.
  4. Organizations use cloud platforms to reduce infrastructure costs.
  5. Cloud computing enables scalability and flexibility.

Em seguida, são criadas arestas entre orações com pesos baseados na semelhança (sobreposição de palavras). Neste exemplo, os pesos das arestas podem ser:

  • Frase 1 <-> Frase 2: 0,5 (partilhas "computing resources")
  • Frase 1 <-> Frase 3: 0,6 (partilhas "cloud computing")
  • Frase 1 <-> Frase 4: 0,2 (partilhas "cloud")
  • Frase 1 <-> Frase 5: 0,7 (partilha "cloud computing")
  • Frase 2 <-> Frase 3: 0,2 (sobreposição limitada)
  • Frase 2 <-> Frase 4: 0,1 (sobreposição limitada)
  • Frase 2 <-> Frase 5: 0,1 (partilhas "computing")
  • Frase 3 <-> Frase 4: 0,5 (partilhas "cloud platforms")
  • Frase 3 <-> Frase 5: 0,4 (partilha "cloud computing")
  • Frase 4 <-> Frase 5: 0,3 (sobreposição limitada)

Diagrama de nós de frases conectados.

Após calcular iterativamente as pontuações do TextRank usando estes pesos, as frases 1, 3 e 5 podem receber as pontuações mais altas porque se ligam bem a outras frases através de terminologia e conceitos partilhados. Estas frases seriam selecionadas para formar um resumo conciso: "Cloud computing provides on-demand access to computing resources. Azure is Microsoft's cloud computing platform. Cloud computing enables scalability and flexibility."

Observação

Gerar um resumo do documento selecionando as frases mais relevantes é uma forma de resumo extrativo . Nesta abordagem, não é gerado novo texto – o resumo consiste num subconjunto do texto original. Desenvolvimentos mais recentes na modelação semântica também permitem a sumarização abstrata , na qual é gerada nova linguagem que resume os temas-chave do documento de origem.

O TextRank também pode ser aplicado ao nível da palavra para extração de palavras-chave, onde as palavras (em vez de frases) se tornam nós e as arestas representam a coocorrência dentro de uma janela fixa. As palavras com classificação mais alta são extraídas como termos-chave que representam os principais temas do documento.