Modelos de representação de dados em PLN
Identificação de dados
Como sabemos se um conjunto de dados representados por frases se refere a moda ou a esportes?
Identificação de dados
Moda
Esporte
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
Identificação de dados
Identificação de Idioma
Sumarização de opiniões
Identificação de dados
Identificação de dados
Vamos aprender como faz!
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 |
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 |
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
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
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
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?
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
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
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
Bag of Words - BoW
Revisão
Precisamos de uma revisão de matemática!
HORA
DA REVISÃO!
O que é seno e cosseno?
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).
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.
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
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
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
Problemas com Bag of Word - BoW
Apesar de bastante utilizado, o BoW sofre com alguns problemas:
TF-IDF
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
Revisão
Precisamos de mais uma revisão de matemática!
HORA
DA REVISÃO!
O que é logaritmo?
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
TF-IDF
Como exemplo, vamos calcular o TF-IDF da palavra jogou:
Frequência do Termo (TF):
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
TF-IDF
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
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.
TF-IDF
Vantagens
TF-IDF
Desvantagens
Fixando o conteúdo…
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.
Atividade e Discussão
Referências
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
Produção do Material
Apoio
Apoio
43