[Música] Olá pessoal seja bem-vindos novamente Nossa disciplina de processamento de linguagem natural tópico que a gente vai abordar na vídeo aula de hoje é representação vetorial de textos certo então a gente vai falar um pouquinho sobre representação vetorial no geral falar um pouco sobre o hot né representação One Hot em coden e depois sobre matrizes de frequência né como que a gente pode fazer essas representações utilizando frequências de valores de ocorrência como a gente vai ver mais adiante bom de novo voltando um pouquinho a nossa definição de linguagens né agora o contexto que a gente
se insere aqui é justamente no contexto né como é que a gente vai fazer né representação desses nossos textos né e de forma com que a gente da melhor maneira possível a gente busque passar alguma informação né utilizar aquelas representações mais que dão mais significados aos textos né do que do que a gente até o momento tem os textos tudo representados de uma forma não estruturada né a gente vai tentar dar a estrutura a essas representações e ao mesmo tempo ter algumas semântica né alguma representação que diz algo sobre esse nosso texto certo primeiro ponto
Então pessoal falar um pouquinho sobre a diferença entre essa entre representação discreta e representação contínua o que que seria a nossa representação discreta basicamente são essas palavras e toques né O que a gente tem né ou lista de toques é o que a gente tem normalmente nessa nossa representação não estruturada dos textos né E fica difícil a gente trabalhar com esse tipo de representação até o momento que a gente viu na disciplina né porque primeiro que é difícil de fazer manutenção né então a gente for dar como exemplo aqui wordnet e também é difícil para
a gente calcular a similaridade Entre palavras né baseado apenas na ocorrência dessas Termas dessas palavras por exemplo né quando a gente trabalha com essa representação discreta já quando a gente trabalha com representação contínua a gente acaba tendo esses nossos textos representados com valores numéricos né O que nos dá um pouco mais de possibilidade de algumas vantagens principalmente para fazer cálculos de similaridade porque quando a gente trabalha com isso a gente trabalha com funções matemáticas né métricas de distância principalmente para fazer esses cálculos né E isso nos dá um nos dar uma uma grande variedade de
possibilidades aí na hora de fazer esse cálculos desses métrica dessa semilaridade por exemplo né nos permite a aproximações né E a gente vai ter esses nossos textos agora nesse caso representados por vetores numéricos Então essa ideia dessa nossa representação vetorial que a gente vai aprender na aula de hoje né O que que seriam nossos vetores então né são estruturas compostas por várias dimensões nas dimensões são a gente pode dizer que é o tamanho desse desse nosso vetor né o número de elementos que tem esse vetor e cada uma das dimensões Vai representar um pouco do
conteúdo nesse nosso texto Então vou colocar aqui para vocês um exemplo né O que que a gente poderia uma forma bem simples ó como é que a gente começa agora a transformar nesse nosso texto e uma forma diferente de representação a gente pode por exemplo criar dimensões do tipo ao início do caracter ele começa com maiúscula ou minúsculo aqui tô colocando só para representar a palavra né um toque em fazer uma representação é vetorial numérica desse desse cara né Mas isso pode se estender também para textos documentos né Então olha ele tem início com caracter
maiúsculo luminoso sim ou não você é um se tiver se começar com maiúsculo zero se não ah tem quantidade de caráter Qual é a quantidade de caracteres que tem essa palavra ou se é um texto Qual é a quantidade de toques vamos dizer né Qual a quantidade de vogais Qual a quantidade de consoantes vocês percebam que a gente está criando algumas informações aqui quantitativas porque a gente vai determinar a quantidade mas também qualitativas né porque porque a gente tá agregando informações importantes aqui que a gente não tinha no texto né de forma estruturada vamos dizer
né então a gente poderia pegar por exemplo aqui esse nosso termo esse aqui seria um toque só né cachorro como é que ele seria representado por essas dimensões que a gente tá vendo aqui no exemplo ó 081 35 ué mas que que é isso cachorro 0835 é uma representação alternativa que a gente tá brincando e fazendo agora né zero porque ela começa com minúscula a gente viu lá que o primeiro o primeiro dimensão representa isso né zero a um né zero começa a escolher um maiúsculo ó se é oito significa que a quantidade de caracteres
tem oito caracteres cachorro tem oito caracteres tá correto quantidade então é um né não é única palavra nessa sentença aqui quantidade de vogais pode a gente tem três vogais é a o e o né três vogais quantidade de consoantes 5 né se a gente já tem são três vogais as outras cinco são consoantes e a gente poderia ter aqui por exemplo agora uma frase lua de mel como é que a gente representaria essa frase aqui né a gente já viu começa com l maiúsculo então ah que eu já sei que agora no meu primeiro valor
do vetor lá vai ser um né porque ela tá começando com l tô vendo aqui que também tem três Torres né então eu já sei também que o meu terceiro eh elemento aqui desse vetor que é uma quantidade de Tom que eles vai ser três não vai ser só um que nem aquele outro que apareceu ali né então a gente já tá vendo aqui ó tem começa com letra maiúscula Então a primeira característica é um primeiro valor né Desse nosso vetor é um primeiro número né quantidade de caracteres 10 que é lua de mel tem
10 caracteres três tokens quatro vogais e quatro consoantes né porque dois deles não são nem vogais nem consoantes que são os espaços que a gente tem ali né então acaba que a soma não não a soma das vogais antes não necessariamente vai ser igual a ao número de caracteres Ok então enfim Essas são algumas um exemplo de como a gente poderia representar agora a gente vai falar um pouquinho sobre o One Hot né que é uma forma bem utilizada não Não exatamente dessa forma mas ela é base para que a gente possa é utilizar outras
representações né que a gente teria aqui um conjunto de vetores da mesma dimensão né isso aqui estudado em algebra linear a gente tem bastante isso dá para usar de forma bem simples né trabalhar com vetorizando num piá e pacote num piai do Python né então a gente permite que o que a gente faça esses cálculos de similaridade né nesse espaço de dimensões né então a gente tem aqui por exemplo também no Python no site learning nessa nesse pacote que a gente vai acabar usando também durante a nossa disciplina aqui é só para citar um exemplo
de função de similaridade né que é a similaridade cosseno então é uma das formas de verificar similaridade se a gente tiver utilizando o espaço vetorial né O que que seria o nosso code Então pessoal é uma representação que tem o tamanho do Voca basicamente O que que a gente tem aqui as linhas a gente vai ter sentenças ou documentos e nas colunas a gente vai ter todas as palavras que apareceram pelo menos uma vez e um desses documentos ou uma dessas sentença certo e aí nesse vetor a gente vai ter para cada linha que eu
seja cada sentença ou cada documento se aquela palavra está faz parte desse documento dessa sentença vai ter o valor um ali ó esse cara tá aqui e zero se não tiver aqui então por exemplo a gente tivesse aqui bananas e maçãs né então a gente teria lá uma posição para banana primeiro primeiro índice ali o índice zero seria a palavra Apple na palavra maçã e a segunda seria banana então a gente teria um na primeira posição e zero em todas as outras já no outro teria um na segunda posição que é o que é o
que é o vetor que é a posição que representa a banana e zero em todas as outras né Então essa seria a ideia de um hot claro que às vezes pode ter uma palavra num texto aparecer duas palavras tá parecendo banana e maçã vai ter um em um nas duas primeiras é nas duas primeiras posições e zero nas outras por exemplo né e assim por diante tá Então a gente tem aqui Um exemplo aí para vocês verem utilizando uma frase o menino foi para escola bom então a gente teria que como só tem um uma
frase aqui então a gente todas as todos os tokens que a gente tem aqui todas as palavras que estão aqui nos atributos são dessa dessa sentença que a gente está aqui né Tem alguns outros aqui D por exemplo de ônibus O menino foi para escola de ônibus aí no D não tá aparecendo aqui Provavelmente porque teria um outro documento aqui embaixo né representando esse que teria essa palavra dele né E aí o menino foi para escola foi para a escola e aí a gente vai ter aqui ó O menino foi para a escola tem um
em todas essas palavras de zero no Day no ônibus né Aqui tem um exemplo bem bem pequeno né mas vocês entendem que essa representação quanto mais textos eu tiver mais palavras diferentes vão aparecer e mais muito mais atributos né palavras vão aparecer na dimensão vai aumentando da nossa representação né E só vai ter valor um aquelas linhas aquelas palavras cujas linhas aparecem contém essa palavra no texto né que é o caso aqui Desse exemplo né que a gente só tem aqui essas palavras e não tem as palavras d e ônibus então vocês vão ter também
o link aí para vocês darem uma brincada dá uma olhada como é que pode trabalhar com com vetores utilizando o Python tá Então essa é uma representação bem simples né E que a partir disso então a gente pode trabalhar com matrizes de frequência daí é que a gente já mudou um pouco agora em vez de ser um hot para fazer essa representação se tem ou não tem né zero e uns a gente vai para frequência não apenas se tem ou não tem mas quantas vezes aparece né é isso aqui é importante também a gente levar
em consideração quando a gente trabalha com essa Matriz de frequência né então a gente tem aqui que essa é uma hipótese tributiva foi formulada pela primeira vez aí por George em 1950 Harris em 54 eart em 57 então assume né a ideia parte da ideia de que palavras semelhantes tem contextos similares né O que a gente sabe que nem sempre é verdade a gente vê o exemplo lá desde a nossa primeira semana de aula né então base uma frase só diga quem andas eu te direi quem és né então é basicamente baseado nessa ideia aí
tá então o que que seria só na matriz frequência termo documento Matriz sequência documento pessoal que vocês conhecem Como back of Wars certo que que a gente vai ter aqui documentos aqui tá aparecendo as colunas mas pode ser nas linhas mais utilizadas nas linhas e as palavras nas colunas mas tanto faz né como é que a gente faz essa representação a ideia aquele documento e aquele termo a célula por exemplo documento dois o termo a aparecer uma vez mas se aparecer duas vezes até o número dois ali se aparecer as três vezes até o número
três ali essa aqui é a ideia é a frequência né se você a frequência de concorrência internas e documentos na sentenças tá então e ocorre uma vez no documento um que nem a gente tá vendo aqui aqui a representação de onde que o a aparece nesse caso aqui Claro a gente está com documento 5 até n né uma representação genérica né mas a gente olhando aqui o a aparece nos documentos dois 13 e 5 né pode ter aparecido em outros onde estava os três pontinhos ali então aqui a gente vê qual é a representação de
a onde que ele aparece aí no nosso nesse coleção de documentos que eu tenho aí aqui seria representação de um determinado documento aqui o documento n então ele vai vai ter um em todas as palavras que tem naquele documento vai estar com valor um as que não aparece no documento vai estar com o valor Desculpa pessoal vai estar com o valor as que não aparece o documento vai estar com o valor zero as que aparecem um ou mais é o número de vezes que essa palavra aparece no documento é que aqui no exemplo só tem
um exemplo pequeno né difícil a gente colocar um exemplo maior com com nos slides né mas se tivesse um documento no enésimo documento que é o caso aqui tivesse aparecido duas vezes a palavra agora a gente teria que dois três quatro cinco vezes na palavra agora tá outra forma de fazer essa representação vetorial é por Matriz de frequência em vez de ser documento termo ser termos por termo mesmo a gente tem aqui vários ver aqui do lado esquerdo a gente tem aqui várias sentenças E aí a nossa representação agora ela vai associar frequência de concorrência
entre termos ou seja quantas vezes esses caras aparecem no mesmo documento ou na mesma sentença que é o caso que a gente tá vendo agora aqui né e a representação ficaria dessa forma é claro que nesse caso aqui a gente não teria uma representação específica para cada documento a gente teria uma uma representação de uma coleção de documentos aí para verificar a concorrência desses termos que aparecem em todos esses documentos né outra forma de representação vetorial que a gente viu também aí durante a leitura da semana é a representação TF e DF né que é
bem parecida com a bad of World só que ela faz alguns ajustes né É do sentido de que Ela utiliza a dimensão ela utiliza não só o tamanho do texto ou da sentença que que a gente tá colocando tempo porque isso é importante uma coisa é a palavra agora aparecer cinco vezes numa sentença de tamanho 20 outra coisa é a palavra agora aparecer cinco vezes num texto de tamanho 500 pô a importância que a gente tem para essa palavra no primeiro é bem maior porque ela proporcionalmente o tamanho do texto ela apareceu muito mais vezes
do que proporcionalmente ao tamanho do segundo exemplo outra coisa essa palavra agora ela parece enquanto os documentos do total de documentos que eu tenho pô se ela é uma palavra que aparece em poucos documentos ela apareceu cinco vezes naquela minha primeira e no outro caso apareceu cinco vezes mas ela parece em quase todos os documentos a gente tende a entender que é muito mais importante é muito mais representativo No primeiro caso porque é uma palavra que não aparece tantas vezes mas se ela parece em tudo que é documento Então ela acaba não sendo tão relevante
para aquele documento específico né Então isso que o tfdf acaba resolvendo né nesse tipo de representação porque porque ele leva em conta o número de ocorrências é de documentos contendo aquele termo aí E também o número de ocorrência o número total de documentos né então a gente acaba tendo essa informação na representação né então a gente teria lá no nosso Back of Woods e cabearia fazendo um ajuste de acordo com essa fórmula que a gente tá vendo aqui e aqueles valores mudariam um pouco porque porque ficaria em função de quantas vezes esse documento aparece no
número total de documentos e também quantas vezes em relação a proporção do tamanho do documento em que está sendo levado em consideração né fazendo esse ajuste na representação tá Quais são os problemas do que a gente tem nessa representação vetorial e nós vamos ver mais adiante pessoal que atualmente não se usa tanto mais isso né Isso é a gente pode considerar aí como sendo representação clássica e de processos de processamento de linguagem natural né ultimamente esse trabalho diretamente assim como com imagens que muitos de vocês já deve ter feito a disponibilidade computacional vocês devem lembrar
que as imagens eram inicialmente representada por vetores né de características depois tudo começou a utilizar depilani que trabalhava diretamente com os textos com as imagens não estruturadas né ou seja diretamente com as imagens é a mesma coisa acontece com pele também né os trabalhos mais recentes da arte tudo trabalha diretamente com os textos de forma não estruturada né De novo utilizando mais profundas nós vamos falar um pouco mais sobre isso mas adiante mas a gente precisa entender essa representação vetorial é entender que muitas aplicações não precisa utilizar mais profundas né não são tão complexas para
isso então a gente pode continuar utilizando esse tipo de representação vetorial tem suas vantagens né mas a gente também tem que entender que aprender um pouco sobre esses outros tipos de apresentações né Principalmente Porque então Quais são os problemas que a gente tem nessa representação vetorial a esparicidade Por que esparicidade uma matriz esparsa o que que é aquela que tem muitos zeros né Muito mais zeros do que do que valores maiores valor diferentes no nosso caso aqui não tem como ter valor negativo né seria só valores positivos porque isso porque se a gente tem textos
que para cada texto aparece pelo menos uma palavra que são raras vamos dizer assim né vai ter uma atributos só para ele lá na nossa representação e todos os outros textos vai ter zero Então vai criar uma se tem uma palavra Você tem uma coleção de 1.000 textos e tem uma palavra não tem esse específico texto um tem uma palavra lá que só aparece nele não aparece mais nenhum não interessa eu vou ter que criar uma tributo com aquela palavra vai ter a quantidade de ocorrências nesse texto um naquela linha correspondente aquele texto que vai
ter zero em todos os outros textos que não aparece nos outros e isso vai acontecer com várias outras palavras né então apareceu em um dos textos pá é um atributo pareceu pelo menos um dos outros textos pá é uma outra ter boa então a gente vai ter um uma dimensão muito grande né que é o número de atributos muito elevado com a medida que a gente aumenta o número de texto A gente Aumenta também o número de atributos que a gente vai ter na representação e muita quantidade de zero Esse é a espátilidade né e
outra questão é questão de não ser escalável né porque porque a medida que esse número de documento cresce né a dimensão também cresce e a gente sabe que trabalhar com alta dimensionalidade é um grande problema né mas a gente vai ver na próxima aula algumas alternativas né para partir disso diminuir né Essa dimensionalidade e de certa forma também diminuir a esparicidade de forma com que a gente tem essa representação vetorial só que não resolvendo mas mas diminuindo um pouco esses problemas que a gente tá vendo aqui tá bom então na aula de hoje a gente
falou sobre representação vetorial falou sobre o hot and code e sobre a matriz de matrizes de frequência para representação dos nossos textos né e na próxima vídeo aula então a gente vai ter uma aula prática né para falar sobre os modelos de linguagem e essas representações autoriais que são os conteúdos que a gente abordou durante essa semana tá bom obrigado pessoal até mais [Música] [Música]