1 of 43

Modelos de representação de dados em PLN

2 of 43

Identificação de dados

Como sabemos se um conjunto de dados representados por frases se refere a moda ou a esportes?

3 of 43

Identificação de dados

  • Como você classificaria as frases abaixo?
    • A brasileira famosa por seus ensaios fotográficos
    • Neymar jogou hoje na seleção brasileira
    • Hoje começa o campeonato baiano de tênis
    • A brasileira Gisele desfilou hoje

Moda

Esporte

4 of 43

Identificação de dados

Neymar jogou hoje na seleção brasileira

Hoje começa o campeonato baiano de tênis

A brasileira famosa por seus ensaios fotográficos

A brasileira Gisele desfilou hoje

Moda

Esporte

5 of 43

Identificação de dados

  • A identificação dos dados nas frases é fundamental para o Processamento de Linguagem Natural (PLN). Exemplos:

Identificação de Idioma

Sumarização de opiniões

6 of 43

Identificação de dados

  • Bag of Words (BOW – ou, em português, sacola de palavras) é um dos métodos que podem ser usados para identificar dados em textos.
  • Basicamente, o BoW segue as seguintes etapas:
  • Criação do Vocabulário: Primeiro, todos os termos (palavras) únicos presentes em um conjunto de documentos são listados para formar um vocabulário.�
  • Contagem de Palavras: Em seguida, para cada documento, conta-se quantas vezes cada palavra do vocabulário aparece

7 of 43

Identificação de dados

Vamos aprender como faz!

8 of 43

Criação do Vocabulário

Doc 1: A brasileira Gisele desfilou hoje

Doc 2: Neymar jogou hoje na seleção brasileira

Vetor com o vocabulário

a

brasileira

gisele

desfilou

hoje

neymar

jogou

na

seleção

9 of 43

Contagem de Palavras

Doc 1: A brasileira Gisele desfilou hoje

Doc 2: Neymar jogou hoje na seleção brasileira

Matriz de ocorrência

a

brasileira

gisele

desfilou

hoje

neymar

jogou

na

seleção

Doc 1

1

1

1

1

1

0

0

0

0

Doc 2

0

1

0

0

1

1

1

1

1

10 of 43

Contagem de Palavras

Doc 1: A brasileira Gisele desfilou hoje

Doc 2: Neymar jogou hoje na seleção brasileira

Matriz de ocorrência

a

brasileira

gisele

desfilou

hoje

neymar

jogou

na

seleção

Doc 1

1

1

1

1

1

0

0

0

0

Doc 2

0

1

0

0

1

1

1

1

1

Aparecem nos dois documentos

11 of 43

Contagem de Palavras

Doc 1: A brasileira Gisele desfilou hoje

Doc 2: Neymar jogou hoje na seleção brasileira

Matriz de ocorrência

a

brasileira

gisele

desfilou

hoje

neymar

jogou

na

seleção

Doc 1

1

1

1

1

1

0

0

0

0

Doc 2

0

1

0

0

1

1

1

1

1

Somente Doc 1

12 of 43

Contagem de Palavras

Doc 1: A brasileira Gisele desfilou hoje

Doc 2: Neymar jogou hoje na seleção brasileira

Matriz de ocorrência

a

brasileira

gisele

desfilou

hoje

neymar

jogou

na

seleção

Doc 1

1

1

1

1

1

0

0

0

0

Doc 2

0

1

0

0

1

1

1

1

1

Somente Doc 2

13 of 43

Bag of Words - BoW

Doc 3: A seleção brasileira jogou.

O documento acima está mais próximo do Doc 1 (moda) ou Doc 2 (esporte) ?

Quais características levaram a essa conclusão?

Como medimos essa proximidade?

14 of 43

Bag of Words - BoW

Doc 1: A brasileira Gisele desfilou hoje

Doc 2: Neymar jogou hoje na seleção brasileira

Matriz de ocorrência

a

brasileira

gisele

desfilou

hoje

neymar

jogou

na

seleção

Doc 1

1

1

1

1

1

0

0

0

0

Doc 2

0

1

0

0

1

1

1

1

1

Doc 3

1

1

0

0

0

0

1

0

1

Doc 3: A seleção brasileira jogou

15 of 43

Bag of Words - BoW

Doc 1: A brasileira Gisele desfilou hoje

Doc 2: Neymar jogou hoje na seleção brasileira

Matriz de ocorrência

a

brasileira

gisele

desfilou

hoje

neymar

jogou

na

seleção

Doc 1

1

1

1

1

1

0

0

0

0

Doc 2

0

1

0

0

1

1

1

1

1

Doc 3

1

1

0

0

0

0

1

0

1

Doc 3: A seleção brasileira jogou

2 palavras em comum com o Doc 1

16 of 43

Bag of Words - BoW

Doc 1: A brasileira Gisele desfilou hoje

Doc 2: Neymar jogou hoje na seleção brasileira

Matriz de ocorrência

a

brasileira

gisele

desfilou

hoje

neymar

jogou

na

seleção

Doc 1

1

1

1

1

1

0

0

0

0

Doc 2

0

1

0

0

1

1

1

1

1

Doc 3

1

1

0

0

0

0

1

0

1

Doc 3: A seleção brasileira jogou

3 palavras em comum com o Doc 2

17 of 43

Bag of Words - BoW

  • Pela contagem de palavras similares é possível dizer que Doc 3 é mais similar ao Doc 2 do que ao Doc 1.
  • Entretanto, contagem de palavras não é a maneira mais eficiente de encontrar a similaridade entre documentos.
  • Existem outras maneiras de comparar essa similaridade como, por exemplo, a Distância Euclidiana e Similaridade de Cosseno.

18 of 43

Revisão

Precisamos de uma revisão de matemática!

HORA

DA REVISÃO!

19 of 43

O que é seno e cosseno?

20 of 43

Similaridade de cosseno

Similaridade de Cosseno mede o cosseno do ângulo entre dois vetores (que representam os documentos/textos) e pode variar entre 0 (totalmente dissimilar) e 1 (totalmente similar).

21 of 43

Similaridade de cosseno

Agora vamos calcular a similaridade entre o Doc 3 e os documentos Doc 1 e Doc 2.

Nesse caso, cada documento será representado por um vetor de contagem de palavras, como visto nos slides anteriores.

22 of 43

Similaridade de cosseno

a

brasileira

gisele

desfilou

hoje

neymar

jogou

na

seleção

0

1

2

3

4

5

6

7

8

Doc 1

1

1

1

1

1

0

0

0

0

Doc 3

1

1

0

0

0

0

1

0

1

doc 1 * doc 3 = (1x1 + 1x1 + 1x0 + 1x0 + 1x0 + 0x0 + 0x1 + 0x0 + 0x1) = 2

||doc 1|| = (12+12+12+12+12+02+02+02+02)1/2 = √5 = 2,2

||doc 3|| = (12+12+02+02+02+02+12+02+12)1/2 = √4 = 2

s(doc 1, doc 3) = 2/(2,2*2) = 0,45

23 of 43

Similaridade de cosseno

a

brasileira

gisele

desfilou

hoje

neymar

jogou

na

seleção

0

1

2

3

4

5

6

7

8

Doc 2

0

1

0

0

1

1

1

1

1

Doc 3

1

1

0

0

0

0

1

0

1

doc 2 * doc 3 = (0x1 + 1x1 + 0x0 + 0x0 + 1x0 + 1x0 + 1x1 + 1x0 + 1x1) = 3

||doc 2|| = (02+12+02+02+12+12+12+12+12)1/2 = √6 = 2,4

||doc 3|| = (12+12+02+02+02+02+12+02+12)1/2 = √4 = 2

s(doc 2, doc 3) = 3/(2,4*2) = 0,62

24 of 43

Similaridade de cosseno

Pela similaridade de cosseno é possível afirmar que Doc 3 é mais similar ao Doc 2 do que ao Doc 1.

Similaridade(Doc 1, Doc 3) = 0,45

Similaridade(Doc 2, Doc 3) = 0,62

25 of 43

Problemas com Bag of Word - BoW

Apesar de bastante utilizado, o BoW sofre com alguns problemas:

  • Ignora a ordem das palavras: Não considera a sequência das palavras, então “cachorro morde homem” e “homem morde cachorro” parecem iguais.
  • Perde o contexto: Não entende o significado das palavras no contexto, apenas conta quantas vezes cada palavra aparece.
  • Alta dimensionalidade: Pode criar vetores muito grandes, especialmente com muitos documentos, o que pode ser difícil de gerenciar. Imagine, por exemplo, vetor com o dicionário de palavras da língua portuguesa.
  • Não reconhece sinônimos: Trata palavras com significados semelhantes como diferentes, o que pode afetar a precisão. Por exemplo, jogar e jogou seriam consideradas palavras diferentes, apesar de serem variações do verbo jogar.

26 of 43

TF-IDF

  • Uma maneira que resolve parte dos problemas do Bag of Words é o algoritmo TF-IDF (Term Frequency-Inverse Document Frequency).
    • Frequência do Termo (TF)
    • Frequência Inversa do Documento (IDF)
  • TF-IDF é uma técnica usada para avaliar a importância de uma palavra em um documento dentro de um conjunto de documentos (corpus).
  • Isso significa que palavras comuns em um documento, mas raras em outros, recebem uma pontuação alta, indicando que são importantes para aquele documento específico.

27 of 43

TF-IDF

Frequência do Termo (TF): Conta quantas vezes uma palavra aparece em um documento. Quanto mais vezes a palavra aparece, maior é o TF.

Frequência Inversa do Documento(IDF): Avalia a raridade da palavra em todos os documentos. Se a palavra aparece em muitos documentos, o IDF é baixo; se aparece em poucos documentos, o IDF é alto.

tfx,y é a frequência de um termo x no documento y

dfx é o número de documentos contendo o termo x

N é número total de documentos

28 of 43

Revisão

Precisamos de mais uma revisão de matemática!

HORA

DA REVISÃO!

29 of 43

O que é logaritmo?

30 of 43

TF-IDF

Frequência do Termo (TF): Conta quantas vezes uma palavra aparece em um documento. Quanto mais vezes a palavra aparece, maior é o TF.

Frequência Inversa do Documento(IDF): Avalia a raridade da palavra em todos os documentos. Se a palavra aparece em muitos documentos, o IDF é baixo; se aparece em poucos documentos, o IDF é alto.

tfx,y é a frequência de um termo x no documento y

dfx é o número de documentos contendo o termo x

N é número total de documentos

31 of 43

TF-IDF

Como exemplo, vamos calcular o TF-IDF da palavra jogou:

Frequência do Termo (TF):

  • No Doc 1, jogou aparece 0 vezes de um total de 5 palavras: 0/5= 0
  • No Doc 2, jogou aparece 1 vez de um total 6 palavras: 1/6 = 0.16
  • No Doc 3, jogou aparece 1 vez de um total 4 palavras: 1/4 = 0.25

Frequência Inversa do Documento(IDF)

A palavra jogou aparece em 2 documentos. Como temos 3 documentos no total, o IDF é calculado como: log(3/2) = 0.58

Doc 1: A brasileira Gisele desfilou hoje

Doc 2: Neymar jogou hoje na seleção brasileira

Doc 3: A seleção brasileira jogou

32 of 43

TF-IDF

  • Para o Doc 1 o TF x IDF de jogou será: 0 x 0.58 = 0
  • Para o Doc 2 o TF x IDF de jogou será: 0.16 x 0.58 = 0.09
  • Para o Doc 3 o TF x IDF de jogou será: 0.25 x 0.58 = 0.14

Neste exemplo, a palavra jogou aparece em 2 documentos. No Doc 1 o TF é zero, resultando em um TF-IDF igual a zero. Isso mostra que a palavra jogou não é importante para o documento Doc 1.

Já para o documento Doc 2, a palavra jogou é relevante (0.09), no entanto, ela é mais relevante para o Doc 3, cujo TF-IDF foi 0.14.

Doc 1: A brasileira Gisele desfilou hoje

Doc 2: Neymar jogou hoje na seleção brasileira

Doc 3: A seleção brasileira jogou

33 of 43

TF-IDF

Se calculássemos o TF-IDF da palavra Gisele, teríamos um IDF igual a 1.5.

Para o Doc 1, o TF-IDF de Gisele seria igual a 0.39, mostrando que esta é uma palavra muito relevante para esse documento. No entanto, para os documentos Doc 2 e Doc 3, o TF-IDF seria 0. Ou seja, a palavra Gisele não teria relevância para esses documentos.

Portanto, a palavra Gisele é mais rara e tem um IDF mais alto do que a palavra jogou, que é mais comum e aparece em 2 documentos.

34 of 43

TF-IDF

Vantagens

  • Relevância das Palavras: O TF-IDF ajuda a identificar palavras importantes em um documento, atribuindo maior peso às palavras que aparecem frequentemente em um documento, mas raramente em outros documentos.
  • Simplicidade: É relativamente simples de implementar e interpretar, o que facilita sua aplicação em diversos problemas de NLP.
  • Eficiência Computacional: Comparado a métodos mais complexos, o TF-IDF é menos intensivo em termos de recursos computacionais.

35 of 43

TF-IDF

Desvantagens

  • Ignora a Semântica: O TF-IDF não leva em consideração o contexto ou o significado das palavras, o que pode limitar sua eficácia em tarefas que dependem da compreensão semântica.
  • Esparsidade: A matriz TF-IDF pode ser muito esparsa, especialmente em muitos documentos, o que pode levar a desafios computacionais e de armazenamento.
  • Sensível a Ruído: Palavras irrelevantes ou ruído no texto podem afetar os resultados, uma vez que o TF-IDF não possui mecanismos para filtrar automaticamente essas palavras.

36 of 43

Fixando o conteúdo…

37 of 43

Atividade e Discussão

Atividade:

Diferenciar a ideia de contagem simples (BoW) da importância das palavras (TF-IDF).

Instruções:

Cada grupo de 3 a 5 alunos deve considerar as frases:

1 - O jogo foi emocionante. O time marcou dois gols. A torcida comemorou.

2 - O desfile foi elegante. As roupas tinham cores vibrantes. O estilista foi aplaudido.

Calcular o BoW e o TF-IDF de cada uma.

38 of 43

Atividade e Discussão

  • Discussão:

    • Quais palavras são mais específicas de cada texto?
    • Quais palavras aparecem em ambos os textos e não ajudam a diferenciar?
    • Bag of Words ajuda a diferenciar os textos?
    • Quais palavras seriam mais úteis para classificar os textos automaticamente?
    • Por que TF-IDF seria melhor do que só contar palavras?

39 of 43

Referências

40 of 43

Referências

https://brasileiraspln.com/livro-pln/1a-edicao/

FOOTE, K. D. A Brief History of Natural Language Processing. DATAVERSITY, 6 jul. 2023. Disponível em: <https://www.dataversity.net/a-brief-history-of-natural-language-processing-nlp/>. Acesso em: 29 jul. 2024

PLN: o que é Processamento de Linguagem Natural? | Alura. Disponível em: <https://www.alura.com.br/artigos/o-que-e-pln>. Acesso em: 28 jul. 2024.

ROBSJC, R. O. Use o Alexa – Desenvolva assistentes virtuais – ABRACD – ASSOCIAÇÃO BRASILEIRA DE CIÊNCIA DE DADOS. , 25 jan. 2021. Disponível em: <https://abracd.org/2021/01/25/use-o-alexa-desenvolva-assistentes-virtuais/>. Acesso em: 29 jul. 2024

41 of 43

Produção do Material

  • Universidade Federal da Bahia (UFBA)�
  • Universidade do Estado da Bahia (UNEB)�
  • SENAI/CIMATEC�
  • Universidade Estadual de Feira de Santana (UEFS)�
  • Universidade Estadual do Sudoeste da Bahia (UESB)�
  • Universidade Estadual de Santa Cruz (UESC)�
  • Instituto Federal Baiano (IFBaiano)

42 of 43

Apoio

43 of 43

Apoio

43