Resumos de aula: PLN - 2019


Nota: Arquivo gerado por um programa.

Nome Resumo
Michelle Kaori Hamada O tema da aula (11/07) foi Semântica e similaridade de palavras: Parte III - Matriz termo-contexto. Iniciamos a aula com a apresentação do desafio 2 que a entrega está marcada para o fim do quadrimestre. Nele devemos fazer o resumo no moldes dos que realizamos para cada aula de um artigo da lista de publicações mais importantes da ciências da computação dado no Wikipedia. Como continuação da aula passada onde vimos a matriz de co-ocorrência: termo- documento, em que é dito que dois documentos/palavras são similares semanticamente se os seus vetores forem similares. Sendo cada linha dessa matriz representante de cada termo e a coluna os documentos, dessa forma temos que o número de linhas é o tamanho do vocabulário uma vez que consideramos apenas palavras únicas. A dimensão dos vetores para compararmos semanticamente as palavras é o número de documentos N^|D|, enquanto que para documentos a dimensão é o tamanho do vocabulário N^|V|. Essa matriz utiliza-se de abordagens simples mas possui alguns pontos negativos: - A similaridade entre palavras considera todas as palavras presentes em todos os documentos; - Os vetores tem muitos elementos nulos (vetores esparsos); - O tamanho do vetor depende do número de documentos. Ao termos vetores com muitos elementos nulos, surgem as matrizes esparsas, são matrizes que possuem em sua composição mais elementos nulos do que valores. Podemos explorar essa matriz para diversas áreas mas para isso precisamos utilizar estruturas de dado mais sofisticadas para usar menos espaço para dimensões muito grandes pois não seria representável. Uma das aplicações seria utilizar malhas para achar a menor quantidade de triângulos para encontrarmos a forma do objeto desejado, como o do golfinho que aparece no slide 8 dessa aula. Para determinarmos a similaridade entre termos/palavras comumente poderíamos considerar uma matriz de dimensão |V| x |V| dita matriz termo-termo/palavra-palavra/termo-contexto. Nesta matriz cada célula registra o número de vezes que a palavra da linha co- ocorre com outra palavra da coluna em um determinado contexto, dado um corpus de treinamento. Definindo um contexto, ele poderia ser um documento onde cada célula representa o número de vezes que duas palavras estão presentes no documento, ao utilizarmos um contexto queremos palavras semanticamente parecidas mas que a escrita seja diferente. Para o treinamento utilizamos contextos grandes pois obras similares normalmente são próximas assim palavras que estão em contextos similares tendem a ser semanticamente similares. Exemplos de uso de contexto: parágrafos ou utilizar uma vizinhança em que dada uma determinada palavra usar 4 palavras antes e depois dela, por exemplo esse contexto local de palavras: "O carro é rápido? Sim, ele é muito veloz!" nele rápido e veloz são semelhantes. Um exemplo de corpus muito utilizado é o Corpus Brown, ele foi o primeiro criado na década de 1960, sendo o pioneiro na área de linguística computacional. Corpus Brown é um corpus geral que contém 500 amostras em inglês, ao todo possui 1.014.312 palavras de trabalhos publicados nos EUA (500 textos, cada um com mais de 2000 palavras e organizados em 15 categorias). Além desse, podemos encontrar outros corpora na comunidade on-line de cientistas de dados Kaggle ao buscarmos por corpus. Usando o Corpus Brown para analisarmos e entendermos melhor a matriz termo- contexto, a matriz formada será de palavra x palavra de forma que mostra a relação de como uma palavra está ligada às outras. Dado quatro exemplos do corpus brown, determinamos uma vizinhança de +- 7 palavras. Na matriz, uma palavra passa a ser representada por um vetor de números que consideram um contexto. No exemplo dado, obtemos um vetor de tamanho 6, mas a dimensão é proporcional ao tamanho do vocabulário considerado. A estrutura de dados a ser utilizada deverá ser a mais eficiente possível para armazenar um vetor esparso de tamanho por volta de 20 a 50 mil elementos. Dependendo do tamanho do contexto a ser considerado podemos obter similaridades diferentes, quanto menor a janela (palavras antes ou depois) mais sintática será o resultado obtido quanto maior mais semântico. Como prática aplicamos o algoritmo Teste1.py dessa aula, nele é retirado as stopwords já que estas não significância nesse momento para avaliarmos. De forma geral, o algoritmo recebe uma pasta, realiza a leitura dos arquivos, cria-se um vocabulário com as palavras presentes nos documentos e então avalia-se da seguinte forma: dado um K (palavras antes e depois), um Mcontexto (matriz termo-contexto) e um dicionário de vocabulário (este é dado em termos de eficiência). A variável context vai conter todas as palavras que estão no contexto, e seguida é realizado o tratamento das bordas, caso uma palavra não possua janelas de algum dos lados. O Teste1.py foi aplicado em sete notícias entre Fapesp, Folha e Sensacionalista. Podemos observar na saída a janela de cada termo e também os termos que estão na borda que só possuem 3 palavras. Ao analisarmos graficamente vemos claramente que quanto menor o K mais esparsos as matrizes são, quanto maior o K melhor as relações obtidas. Isso ocorre devido a similaridade baseada em em distribuição de palavras, na literatura vemos isso como distributional semantics/vector semantics/vector-space semantics, dessa forma o significado de uma palavra é calculada a partir da distribuição de palavras ao redor dela. Nas metodologias anteriores as palavras eram representadas por um índice em um vocabulário, aqui nesta abordagem a palavra passa a ser representada por um vetor de números. Cada célula do vetor indica uma frequência de uma palavra com a outra, contudo apenas a contagem de palavras não é o suficiente para determinar se elas são similares, pois existem palavras que são muito frequentes e que podem não ajudar em discriminar a similaridade entre palavras. A solução para esse problema é o PMI (Pointwise Mutual Information) e o PPMI (Positive Pointwise Mutual Information), estes são medidas que permitem mensurar quão informativa é a palavra de contexto dada uma palavra alvo. Existem palavras que não são informativas mesmo não sendo stopwords pois estão presentes em quase todos os contextos, por exemplo: "de", "em", "para", "quem"... ou também quando dado um determinado contexto (de pesquisa, por exemplo) há também palavras ("método", "proposta", "metodologia", ) que não são informativas pois estão presentes em quase todo contexto de pesquisa. Para isso usamos medidas que nos trazem a melhor ponderação ou medida de associação entre palavras deve nos dizer com que frequência mais do que o acaso as duas palavras co-ocorrem. PMI é baseado na medida de informação mútua que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória, é também uma medida de dependência entre variáveis aleatórias e de sobreposição de informações entre duas variáveis aleatórias. Ou seja, é uma medida de associação que mede quão frequente dois eventos (x,y) ocorrem se ambos são independentes, no caso o quanto duas palavras estão associadas. PMI (w, c) = log2(P(w,c) / ( P(w, c)*P(c)), seus valores tendem do menos infinito para o mais infinito, se negativo implica que as relações estão ocorrendo com menos frequência do que esperávamos por acaso, no caso de calcularmos PPMI o mais comum é substituir os valores negativos de PMI por zero. Aplicamos esse conhecimento em uma atividade dada na aula para calcularmos o PPMI de duas palavras (w=information ou w=digital) dado um documento (c=data). Com os resultados pudemos observar que o PPMI tem valores altos para eventos pouco frequentes, uma estratégia para diminuir o PPMI é começar com 2 ao invés de 0. O Teste3 apresentado calcula o PPMI dado um contexto, ou seja, a matriz PPMI nos trás as palavras que semanticamente são próximas.
Rodrigo Hiroaki Ideyama Na aula de número dez, o tema foi "Semântica e similaridade de palavras: Parte III: Matriz termo-documento.". Primeiramente, o professor deu uma breve revisão da aula anterior ao explicar sobre a matriz de co-ocorrência: termo- documento, nesse tipo de matriz, verifica-se a similaridade por meio da comparação entre os vetores tanto na vertical quanto na horizontal e a dimensão do vetor é o tamanho do vocabulário, NV para vertical, onde dois documentos são similares (semântica) se os vetores são similares, e ND para horizontal, onde duas palavras são similares (semântica) se os vetores são similares. Ela apresenta as seguintes características: a similaridade entre palavras considera todas as palavras presentes em todos os documentos, os vetores tem muitos elementos nulos (vetores esparsos) e o tamanho do vetor depende do número de documentos. Depois dessa revisão, ele começou a falar sobre matrizes esparsas que são matrizes que possuem na grande maioria dos seus elementos formados por zeros. Nelas, podemos economizar um espaço significativo de memória se apenas os termos diferentes de zero forem armazenados. Caso não armazenar as posições que têm zeros, as operações usuais sobre essas matrizes (somar, pivotar, inverter e multiplicar) também podem ser feitas em tempo muito menor. Voltando a discutir sobre a matriz termo-documento, normalmente ela é citada como matriz termo-termo-termo ou matriz palavra-palavra ou matriz termo- contexto, onde as colunas são rotuladas pelas palavras ao invés de documentos. Nela a dimensionalidade é de |V| x |V| e cada célula registra o número de vezes que a palavra da linha (alvo) e a palavra da coluna (contexto) co- ocorrem em algum contexto em algum corpus de treinamento. O contexto pode ser o documento, caso em que a célula representa o número de vezes em que as duas palavras aparecem no mesmo documento. Isso é comumente, todavia, usado em contextos menores, geralmente em janela da palavra, por exemplo, de quatro palavras à esquerda e quatro palavras à direita, caso em que a célula representa o número de vezes (em algum corpus de treinamento) a palavra da coluna ocorre em uma janela de mais ou menos quatro palavras ao redor da palavra de linha. Então, o professor falou de exemplos de contexto local de palavras, como “O carro é rápido? Sim, ele é muito veloz!”, e quatro exemplos de Corpus Brown, como “their enjoyment. Cautiously she sampled her first pineapple and another fruit whose taste she likened”. Esse último foi criado na década de 1960, é considerado um corpus geral que contém 500 amostras em inglês. Ao todo 1,014,312 palavras de trabalhos publicacos nos Estados Unidos em 1961 (500 fontes, cada um contendo mais de 2000 palavras), organizado em 15 categorias. É um corpus pioneiro na área de linguística computacional. Porém, outros corpora podem ser encontrados nesse link: . No exemplo citado anteriormente do Corpus Brown, analisando em uma matriz termo-contexto, onde uma palavra é representada por um vetor de números que consideram um contexto, temos um vetor de tamanho seis, porém a dimensão é proporcional ao tamanho do vocabulário considerado. A estrutura de dados deve ser a mais eficiente possível para armazenar um vetor esparso de tamanho 20 ou 50 mil elementos. No tópico seguinte, ele falou dos códigos teste1.py e do teste2.py e comparou- os utilizando como de exemplo as notícias extraídas da Fapesp, Folha e Sensacionalista e a obra de Machado de Assis. Pode-se perceber que quanto maior o k, maior o número de palavras dentro daquele contexto e além disso, pelos grafos mostrados em aula, pode-se concluir que os pesos das arestas são bem significativas comparado quando os k são menores. Em seguida, o Jesús falou da similaridade baseada em distribuição de palavras, na literatura pode ser também chamada de semântica distribuída, semântica do vetor, semântica do vetor-espaço. Por meio disso, é analisada a distribuição das palavras entorno de uma palavra para medir o significado de uma palavra. Em tópicos anteriores, uma palavra era representada por um índice em um vocabulário, nesta abordagem, as palavras são representadas como um vetor de números (embedding into a vector). Entretanto, a fim de utilizar esse método, é preciso ter cautela, pois, por exemplo, “de” e “em” que são um dos stopwords e muito frequentes, podem não ajudar em discriminar similaridade entre palavras, logo apenas contagem de palavras não é boa escolha para determinar se duas palavras são similares. No último tópico, “Pointwise Mutual Information (PMI) Positive Pointwise Mutual Information (PPMI)”, o professor explicou sobre essas duas medidas, onde elas permitem mensurar quão informativa é a palavra de contexto, dada uma palavra (alvo). Porém, lembrando que as stopwords e algumas palavras em um contexto de pesquisa científica (método, proposta, metodologia, análise, estudo, ...) não são informativas pois estão presentes em quase todos os contextos, deve-se considerar como melhor ponderação ou medida de associação entre palavras deve trazer como resultado com que frequência mais do que o acaso de duas palavras quando co-ocorrem. Na primeira medida, Pointwise Mutual Information (PMI), é baseada no cálculo da informação mútua onde esta representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória, é uma medida de dependência entre variáveis aleatórias e da sobreposição de informações entre duas variáveis aleatórias. Portanto, PMI é uma medida de associação que mede quão frequente dois eventos, no caso palavras, ocorrem se ambos são independentes. Se ela for negativa, isso indica que as coisas estão ocorrendo com menos frequência do que esperávamos por acaso. A fim de colocar em prática esse conceito, o professor passou uma atividade para os alunos resolverem em cinco minutos, nela pedia o cálculo do ppmi (w=information, c=data) e ppmi (w=digital, c=data) dada uma matriz termo- contexto, utilizando as fórmulas do pmi e ppmi fornecida pelos slides. Além disso, ele mostrou no código teste3.py como faz o cálculo do PMI usando as notícias da FAPESP, Folha e Sensacionalista, a obra de Machado de Assis e as ementas de algumas das disciplinas do bacharelado em ciência da computação. Depois disso, ele citou outras medidas de similaridade como t-test, cosine, Jaccard, Dice, JS, onde cosine e Jaccard foram explicadas brevemente no resumo anterior. Para finalizar a aula, o professor Jesús falou de outro Desafio que o alunos devem fazer para valer como bônus, valendo meio ponto na média final, nela vai precisar fazer um resumo de uma publicação, nos mesmos moldes dos resumos de aula, descrita na lista presente nesse link [https://en.wikipedia.org/wiki/List_of_important_publications_in_computer_science](https://en.wikipedia.org/wiki/List_of_important_publications_in_computer_science), e nela vai, necessariamente, responder a seguinte pergunta: “Por que o trabalho é considerado importante para a área de de computação?” A aula utilizou a bibliografia do livro Speech and language processing: An introduction to natural language processing, computational linguistics, and speech recognition da editora Pearson/Prentice Hall dos autores Daniel Jurafsky & James H. Martin e o capítulo seis como título vetor semântico.
Mauro Mascarenhas de Araujo Aula de 11/07: "Semântica e similaridade de palavras: Parte III: Matriz termo- contexto". A aula iniciou-se com a explicação do segundo desafio (que também terá peso de 0.5 pontos na média final), que deve ser entregue ao final do quadrimestre. Trata-se de entregar um resumo, via Tidia, de algum artigo da "Lista de artigos mais importantes na ciência da computação" e, junto com ele, responder à pergunta : "Porque o trabalho é considerado importante para a área de computação?" (disponível na Wikipedia). Também ficou combinado que a entrega do desafio 1 fosse adiada para o fim do quadrimestre. A seguir, houve uma breve retomada a respeito de conteúdos de aulas anteriores: Matriz de co- ocorrência termo-documento: Dois documentos são similares se as colunas da matriz forem similares (a dimensão do vetor deve ser o tamanho do vocabulário N^|V|); e quanto às palavras, elas são similares semanticamente se as linhas da matriz forem similares (a dimensão do vetor deve ser o número de documentos N^|D|). Porém, estas abordagens apresentam alguns problemas: o primeiro deles é que a similaridade entre palavras considera todas as palavras presentes em todos os documentos; os vetores têm muitos elementos nulos; o tamanho do vetor depende do número de documentos. Para resolver alguns destes problemas, usa-se a matriz esparsa que é uma matriz onde a maior parte dos elementos são nulos (foram apresentados alguns exemplos de matrizes esparças e de suas versões compactadas, vide slides), sendo que elas também são muito usadas para aplicações em computação gráfica (para representação dos vértices de uma figura, por exemplo). Já os outros problemas apresentados poderiam ser lidados com o uso de matrizes termo-contexto (também conhecida como matriz termo- palavra ou matriz palavra-palavra), que possui dimensão |V|X|V|, onde cada celula da matriz registra o número de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto, dado em um corpus de treinamento (O contexto poderia ser o documento: Cada célula representa o número de vezes que duas palavras estão presentes no documento). Sendo assim, pode-se reduzir o contexto, uma vez que obras similares tendem a estar "próximas", sendo que as palavras que estão em contextos similares tendem a ser semanticamente similares. Para isso, pode-se usar a técnica de comparar k palavras vizinhas (tanto à esquerda, quanto à direita) em um parágrafo. Foram dados dois exemplos de aplicação, onde rápido e veloz eram semantivamente similares nas seguintes frases: "O carro é rápido?", "Sim, ele é muito veloz!"; e longo e tamanho estão correlacionadas: "O manuscrito é longo.", "Geralmente o tamanho é menor.". Também foram mostrados exemplos retidados do Corpus Brow, um corpus pioneiro criado na década de 1960, que contém 500 amostras em inglês (cada um com mais de 2000 palavras), com 1014312 palavras de trabalhos publicados nos Estados Unidos em 1961 (500 fontes), organizado em 15 categorias por especialistas (existem vários outros lugares onde existem corpus livres, como o Kaggle, por exemplo): "sugar, a sliced lemon, a tablespoonful of apricot preserve or jam, a pinch each of," (sugar, apricot, pinch), "their enjoyment. Cautiously she sampled her first pineappleand another fruit whose taste she likened" (pineapple, fruit), "well suited to programming on the digitalcomputer. In finding the optimal R-stage policy from" (programing, digital, computer), "for the purpose of gathering data and information necessary for the study authorized in the" (data, information). A seguir foi apresentada uma matriz de termo-contexto, onde uma palavra é representada por um vetor de números que consideram um contexto (Deve-se notar que a estrutura de dados deve ser a mais eficiente possível para armazenar um vetor esparso de tamanho ~20 ou 50 mil elementos). Os tamanhos mais comuns para as janelas de k palavras vizinhas são 1, 3 e 7, onde o tamanho total do contexto é (2*k)+1. A seguir foi apresentado o algoritmo Teste1.py, sendo mostrado a importância de cuidar das bordas da matriz (para não acessar posições do vetor fora dos limites). Já no Teste2.py foi possível definir o valor de k, neste caso, foi possível ver que relações foram desfeitas (fapesp com disponíveis) e outras foram criadas (ano com valor) conforme o valor de k era alterado: A aplicação rodou sobre um corpus de notícias e de obras do machado de assis (machado-db). Na similaridade baseada em distribuição de palavras (também chamada de Distributional semantics, vector semantics ou ainda vector-space semantics), o significado de uma palavra é calculada a partir da distribuição de palavras ao redor dela, sendo que nesta abordagem, as palavras são representadas como um vetor de números. Para evitar problemas com palavras que se repetem muito, mas não podem agregar muito significado, usa-se o Pointwise Mutual Information (PMI) ou o Positive Pointwise Mutual Information (PPMI). O PMI é uma medida de associação que mede quão frequente dois eventos (x e y) ocorrem se ambos são independentes, onde, a informação mútua é uma medida que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória; uma medida de dependência entre variáveis aleatórias e uma medida da sobreposição de informações entre duas variáveis aleatórias. A informação mútua é dada por I (X,Y)=sum(sum(P(X,Y)*log2(P(X,Y)/(P(X)*P(Y))),Y),X). Note que é possível que o valor seja negativo, isso implica que as coisas estão ocorrendo com menos frequência do que esperávamos por acaso (o que não é muito bom): é aí que entra o PPMI, que é o PMI com a condição que, se PMI for menor que 0, então PPMI = 0. A seguir foi aplicada a atividade que consistia em calcular o PPMI de information com data e de digital com data: o resultado foi de 0,5764 para o primeiro caso. Por fim, considerpi-se que o PPMI tem valores altos para palavras muito raras, assim, o ideal é considerar um fator de penalidade alpha que, empiricamente, o valor ideal obtido foi de 0,75. Outras estratégias com efeito similar também podem ser usadas (Add-k smoothing e Laplace Smoothing). Finalmente, foi apresentado o algoritmo teste3.py, aplicado sobre o corpus de notícias e dos textos de machado de assis (medidas de similaridade vistas em aulas anteriores também podem ser consideradas).
Jair Edipo Jeronimo Dando continuidade ao estudo de semântica e similaridade de palavras, tínhamos que a matriz termo-documento utilizada nas análises era formada por vetores esparsos, pois nem todas as palavras do vocabulário poderiam estar presentes em todos os documentos. Dessa forma, para evitar que as matrizes possuam uma grande quantidade de zeros, ocupando um grande espaço com ausência de dados, temos de usar estruturas de dados mais sofisticadas, evitando o desperdício, pois em geral devemos tratar de maneira eficiente vetores de tamanhos entre 20 e 50 mil elementos. Uma outra forma para tentar evitar esse problema é utilizar uma matriz termo- termo, também chamada de matriz termo-contexto, a qual possui dimensão de |V|x|V|, onde V = vocabulário. Está matriz representa em cada célula o número de vezes que em uma palavra (da linha) co-ocorre com outra palavra (da coluna) num mesmo contexto, que seria o corpus fornecido como treinamento. Assim, ao invés de utilizarmos cada documento, podemos levar em conta somente as k palavras mais próximas, ou seja, os k sucessores e antecessores da palavra em análise. Por exemplo, na frase “O manuscrito é longo. Geralmente o tamanho é menor.”, ao avaliar a palavra “longo” com o k = 3 (normalmente é um valor ímpar), temos como uma de suas palavras relacionadas o termo “tamanho”, o que faz sentido dado que ambas possuem certa relação em seu significado. Um dos corpora pioneiros na área de linguística computacional foi criado pela Brown University na década de 1960. Ele contém 15 categorias e um total de 1.014.312 palavras em inglês em 500 textos. Além desse, existem diversos outros corpora disponíveis, como os dos comentários no New York Times, letras de músicas, notícias, entre outros. Após isso, vimos a aplicação de como avaliar as palavras através da matriz termo-contexto, utilizando um código em Python que realizava a leitura do corpus, removia as stopwords e realizava a contagem dos pares de palavras, partindo de um contexto, com o valor de k palavras sucessoras/antecessoras. Primeiro foi aplicado em um corpus contendo 7 notícias com um vocabulário de 1580 palavras, onde foi feita uma comparação de matrizes geradas com o k=3 e o k = 10 e foi possível observar que quanto maior o número do k, tende a diminuir o quanto a matriz termo-contexto é esparsa. Além disso, foi feito uma outra análise com relação as palavras que possuíam maior relação umas com as outras, através de um grafo. Por exemplo, neste caso, no grafo com as maiores relações da palavra “fapesp”, encontramos as palavras “www”, “bolsa”, “disponíveis” e “oportunidades”. Também foram gerados os grafos variando o k = 10 e utilizando também o corpus que contém as obras do Machado de Assis. Entretanto, utilizar apenas contagem de palavras não é o suficiente para determinar a similaridade entre duas palavras. Dessa forma, para medir o quão informativa uma palavra é em um contexto dada outra palavra, podemos utilizar o Pointwise Mutual Information (PMI) e o Positive Pointwise Mutual Information (PPMI). Existem palavras que podem estar presentes em quase todos os contextos, como “de”, “para”, “eles”, entre outras, mas que não nos levam a nenhuma informação pertinente. Assim a ponderação da relação entre as palavras deve levar em consideração com que frequência, mais do que o acaso, duas palavras co-ocorrem. O PMI é baseado em informação mútua, representando a quantidade de informação que uma palavra contém sobre a outra, medindo a dependência entre elas, através da sobreposição de informações. Assim, o PMI é calculado através da fórmula PMI(w, c) = log2 P(w, c) / P(w) . P(c). Porém, devido a operação de logaritmo, se a probabilidade for menor que 1, então o valor resultante será negativo, indicando que a frequência está menor do que o esperado, mas esta função decai rapidamente para o infinito negativo. Para tratar estes casos temos o PPMI, que é dado por PPMI(w, c) = max (PMI(w, c), 0), evitando os valores negativos. Após isso, realizamos a atividade dada em aula, que tinha como objetivo calcular o PPMI entre duas palavras, dada uma matriz termo-contexto. Entretanto, vimos que o PPMI resulta em valores altos para eventos que são pouco frequentes (palavras muito raras) e uma das estratégias para tratar estes casos é somar um valor k em todas as posições da matriz, tornando assim o resultado mais proporcional. Por fim, vimos a aplicação do cálculo do PPMI em um código feito em Python, utilizando como corpus as notícias de diferentes jornais, a ementa das disciplinas do Bacharelado em Ciências da Computação e as obras do Machado de Assis, sendo que em cada um desses corpus testados foi gerado um grafo representando as palavras e os valores de PPMI das suas relações. Também foi apresentado o desafio 2 da matéria de PLN, onde teremos que fazer um resumo de um artigo de qualquer área da computação respondendo a pergunta “Porque o trabalho é considerado importante para a área de computação?”.
July Anne Pinheiro Aula 10: Semântica e similaridade de palavras: Parte III: Matriz termo- contexto Revisão aula anterior Revisão do conceito de Matriz de co-ocorrência, termo-documento dois documentos são similares (semântica) se os vetores são similares. Além disso o conceito de vetores esparsos foram apresentados, vetores tem muitos elementos nulos. Matriz esparsa É uma matriz possui com elementos nulos, com dimensão |V| x |V|. Cada célula da matriz registra o número de vezes que a palavra (linha) co-ocorre com outra palavra (coluna) em um contexto, dado em um corpus de treinamento. O contexto pode ser o documento, ou seja, cada célula representa o número de vezes que duas palavras estão presentes no documento. Analisando a ideia de contexto, é importante se atentar que o mesmo pode ser menor, visto que palavras que estão em contextos similares, tendem a ser semanticamente similares. Corpus Brown Criado em 1960 é um corpus geral que contém 500 amostras em inglês, organizado em 15 categorias. É um corpus pioneiro na área de linguística computacional. Considerando que a dimensão do vetor é proporcional ao tamanho do vocabulário, é necessário que a estrutura de dados deve ser a mais eficiente possível para armazenar um vetor esparso de tamanho ~20 ou 50 mil elementos, considerando a amostra do Corpus Brown. Durante a aula foi apresentado 3 códigos de aplicações, sendo o nomeados como Teste 1, Teste 2 e Teste 3. Os dois primeiros analisam documentos e apresentava informações sobre o vocabulário referente a quantidade e exibe através de grafos com peso a relação entre as palavras mais comuns nos documentos. Similaridade baseada em distribuição de palavras Na literatura também é conhecido como: Distributional semantics. Vector semantics. Vector-space semantics. IMPORTANTE: O significado de uma palavra é calculada a partir da distribuição de palavras que ao redor dela. Anteriormente uma palavra era representada por um índice dentro de um vocabulário. Para a abordagem de distribuição de palavras as mesmas são representadas como um vetor de números.(embedding into a vector). Para mensurar quão informativa é a palavra de contexto, dada uma palavra (alvo), utilizamos a Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI) como medidas. A melhor ponderação ou medida de associação entre palavras deve nos dizer com que frequência mais do que o acaso as duas palavras co-ocorrem. Pointwise Mutual Information (PMI) Antes de definirmos a medida PMI é necessário a definição de Informação Mútua, na qual é uma medida que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória, ou seja, uma medida de sobreposição ou dependência de informações entre variáveis aleatórias. O PMI é uma medida baseada na medida de Informação Mútua que varia entre [-?, +?], onde a associação que mede quão frequente dois eventos (x, y) ocorre se ambos são independentes. O cálculo resulta na razão entre a probabilidade e conjunta dos eventos e suas probabilidades separadas. Cálculo: PMI(w,f)= Log2 (P(w,f)/ P(w)P(f)) IMPORTANTE: Se <1 o PMI será negativo implica que as coisas estão ocorrendo com menos frequência do que esperávamos por acaso. E valores não confiáveis para corpus pequeno! O mais comum é substituir os valores negativos do PMI por zero. Pointwise Mutual Information Positive Calculando PPMI em uma matriz termo-contexto. Seja F a matriz com W linhas (palavras) e C colunas (contextos) Cálculo: PMI(i,j) = log2(pij/Pi Pj) Pij = fij/somatórioW somatórioC fij Pi = somatórioC fij/ somatórioW somatórioC fij Pj = somatórioW fij/ somatórioW somatórioC fij ppmi(ij) = pmi(i,j), se pmi(i,j) > 0 0, outro valor Quando o PPMI ppossui valores altos para eventos pouco frequentes (palavras muito raras) Uma maneira de reduzir esse viés é considerar: PPMI(w,c) = max( log2(P(w,c)/(P(w)P(c), )) P(c) = count(c) / Somatório(count(c)) Através dessa expressão é possível diminuir o PPMI, sendo uma alternativa usar uma estratégia que tenha um efeito similar: Suavização. Suavização * Add-k smoothing * Laplace smoothing. No Teste 3 é apresentado o cálculo de PPMI para os documentos de notícias, ufabc e obras de machados de assis e os pesos em grafos com a maior relevância de ligação entre as palavras. Outras medidas de similaridade PMI(w,f)= Log2 (P(w,f)/ P(w)P(f)) t-test(w,f) = P(w,f) - P(w)P(f)/ raiz(P(f)P(w)) Similaridade do Cosseno: sin(A,B) = cos() = A.B / ||A||.||B|| Similaridade de Jaccard: J(A,B) = | Intersecção(A,B) / ||União (A,B)| Dice: 2X Somatória(min(vi,wi))/ Somatória(vi + wi) JS: D(v|(v+w)/2) + D(w |(v+w)/2)
Elsio Antunes Junior 10/07/2019; Semântica e similaridade de palavras: Parte III: Matriz termo- contexto; A aula começa relembrando os conceitos Matriz termo-documento onde dois documentos são similares se os vetores são similares, sendo que a dimensão do vetor é o tamanho do vocabulário; Analogamente, duas palavras são similares se os vetores são similares, sendo que a dimensão do vetor, neste caso, é o número de documentos; Lembramos que a similaridade entre palavras considera todas as palavras presentes em todos os documentos e os vetores tem muitos elementos nulos, gerando o que estamos chamando de vetores esparsos e consequentemente matrizes esparsas; Matrizes esparsas são matrizes com uma quantidade grande de valores nulos o que gera uma certa dificuldade em armazenar de forma eficiente os dados úteis; muita memória é simplesmente desperdiçada nos forçando a usar estruturas de dados mais sofisticadas e dinâmicas; Matriz termo-termo e matriz palavra-palavra, segundo o professor, são sinônimos, mas o mais natural seria considerar matrizes termo-contexto; Uma matriz de dimensão |v| x |v| (onde |v| é o tamanho do vocabulário) onde cada célula registra o número de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto dado em um corpus de treinamento; Obras similares estão, geralmente, próximas; Palavras que estão em contextos similares tendem a ser semanticamente similares; O exemplo é a utilização de palavras do mesmo parágrafo ou quatro palavras antes ou depois de outra na mesma frase; O professor nos apresenta o 'Corpus Brown' criado na década de 60 que contém 500 obras de diversos assuntos em inglês; Matriz termo-contexto (mais ou menos 7 palavras); Uma palavra é representada por um vetor de números que considera um contexto; A estrutura de dados deve ser eficiente pois o vetor tem mais de 20 mil elementos; Considera-se janelas de tamanho 1, 3, 7 palavras ao redor da palavra estudada; A similaridade varia de sintática a semântica conforme o tamanho desta janela cresce; O código Teste1.py feito em python nos permite processar uma série de documentos, contar as stopwords, montar um vocabulário e contabilizar os pares de palavras; Aplicado a sete documentos com um vocabulário de 1580 palavras, analisamos os resultados para determinadas palavras escolhidas; Com a ajuda de uma biblioteca gráfica, plotamos a matriz esparsa para que possamos comparar resultados com k=3 e k=10; Em seguida, os grafos com as ligações entre as palavras é exibido; as ligações mostram palavras que frequentemente são vistas dentro de um mesmo contexto (não necessariamente sinônimos, mas participantes de um mesmo contexto); Na literatura isso é conhecido como distributional semantics; O significado de uma palavra é calculado a partir da distribuição de palavras ao redor dela; Nesta abordagem, as palavras são representadas como um vetor de números; A conclusão é que apenas a contagem de palavras não é boa escolha para determinar se duas palavras são similares; Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI); medidas que permitem mensurar quão informativa é a palavra de contexto, dada uma palavra alvo; As stopwords e as palavras num contexto profissional ou acadêmico (por exemplo, termos usados em muitas pesquisas científicas) não são informativas pois estão em todos os contextos; A melhor medida de associação deve nos dizer com que frequência (mais do que o acaso) as duas palavras co-ocorrem; O PMI é uma medida de informação mútua; que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória; é uma medida de dependência (da sobreposição de informações) entre variáveis aleatórias; quão frequente dois eventos ocorrem se ambos são independentes; isso é, a razão entre a probabilidade conjunta dos eventos e suas probabilidades separadas; isso nos permite calcular o quanto duas palavras estão associadas; PMI segue uma curva logaritmica e por isso, possui valores negativos entre zero e um; numero negativo indica que os eventos estão ocorrendo com menos frequência do que esperávamos por acaso; estes valores não são confiáveis para corpus pequenos; no PPMI substituiremos os valores negativos por zero; O PPMI tem valores altos para eventos pouco frequentes (palavras muito raras); Uma maneira de reduzir este viés é considerar um certo alfa na equação que altera um dos fatores; outra alternativa para mitigar esse efeito é fazer a suavização dos dados; em uma das abordagens, simplesmente soma-se 2 a cada elemento da matriz; Finalmente, na atividade em sala, recebemos as folhas com as fórmulas para aplicarmos a dois casos; e fim.
Renato de Avila Lopes Resumo 10 Semântica e similaridade entre palavras Parte 3 Da aula anterior Matriz de co orrência termo documento Dois documentos são similares (semanticamente) se os vetores são similares Colunas: A dimensão do vetor é o tamanho do vocabulário N^|V| Linhas: A dimensão do vetor é o número de documentos N^|D| Similaridade entre palavras considera todas palavras em todos documentos Vetores são esparsos Tamanho do vetor depende do número de documentos Matriz esparsa Matriz termo, palavra-palavra, termo contexto (sinônimos) Dimensão |V| x |V| Cada célula registra o número de vezes que a palavra (da linha) co ocorre com outra palavra (da coluna) em um contexto (que poderia ser o documento), dado um corpus de treinamento Cada célula representa o número de vezes que duas palavras estão presentes no documento Matriz termo contexto Contexto menor? Palavras em contextos similares tendem a ser semanticamente próximas Parágrafos Usar 4 palavras antes e depois de uma determinada palavra O carro é rápido? Sim, ele é muito veloz! O manuscrito é longo Geralmente o tamanho é menor Corpus Brown The Brown University Standard Corpus of Present-Day American Engish Criado na década de 1960 Corpus geral contem 500 amostras em inglês 1014312 palavras de trabalhos publicados nos Estados Unidos em 1961 (500 fontes) 15 categorias Pioneiro em linguística computacional sugar, a sliced lemon,a tablespoonful of apricot preserve or jam, a pinch of, Matriz termo contexto (+- 7 palavras) Palavra é representada por vetor de números que considera o contexto No exemplo temos um vetor de tamanho 6, mas a dimensão é proporcional ao tamanho do vocabulário considerado A estrutura de dados deve ser a mais eficiente possível para armazenar um vetor esparso de 20 a 50 mil elementos Menor janela similaridade mais sintática, maior janela similaridade mais semântica Foi executado o programa teste1.py e teste2.py sobre um corpus de sete notícias e o resultado demonstrado em forma de matriz esparsa e grafos Apenas contagem de palavras não é uma boa escolha para determinar similaridade entre palavras Exemplo "de" e "em" são muito frequentes, e não ajudam a discriminar similaridade Similaridade baseada em distribuição de palavras Conhecido como Distributional semantics, Vector semantics, Vector-space semantics Significado é calculado a partir da distribuição de palavras que está ao redor dela Antes palavra era representada por um índice em um vocabulário. Agora são representadas como um vetor de números (embedding into a vector) Pointwise Mutual Information (PMI) Baseado em informação mútua Quantidade de informação que uma variável aleatória contém sobre outra variável aleatória Medida de dependência entre variáveis aleatórias Sobreposição de informações entre duas variáveis aleatórias Medida de associação que mede quão frequente dois eventos x e y ocorrem se ambos são independentes I (x, y) = log2 P (x, y) / P (x) P (y) A razão entre a probabilidade conjunta dos eventos e suas probabilidades separadas PMI (w, c) log2 P (w, c) / P (w) P (c) PMI terá valores entre menos infinito e mais infinito Valores negativos implica que as coisas estão ocorrendo com uma frequência menor que a esperada Valores não confiáveis para corpus pequenos Programa teste3.py Positive Pointwise Mutual Information (PPMI) Permitem mensurar quão informativa é a palavra de contexto, dada uma palavra alvo. As palavras "de em para quem está eles nossos" não são informativas pois estão em quase todos os contextos. A melhor ponderação ou medida de associação entre palavras deve nos dizer com que frequência mais do que o acaso as duas palavras ocorrem. Contexto de pesquisa científica "método proposta metodologia análise estudo" não são informativas Atividade Calcular PPMI (w = information, c = data) P (w = information, c = data) = 6 / 19 = 0.32 P (w = information) = 11 / 19 = 0.58 P (c = data) = 7 / 19 = 0.37 PPMI (w = information, c = data) = log2 (0.32 / (0.58 * 0.37)) = 0.5764 PPMI possui valores muito altos para eventos pouco frequentes (palavras muito raras) Maneira de reduzir PPMI (w, c) = max ( log2 P (w, c) / P (w) P (c) ) Suavização Add-k smoothing Laplace smoothing
Igor Neres Trindade Na aula de hoje, 11/07/2019, continuamos a estudar sobre semântica e similaridade de palavras. Até o momento, tivemos contato com duas abordagens: usando um tesauro e usando uma matriz termo-documento. Essa última, se por um lado evita a dependência da completude do tesauro, por outro, necessita de um grande corpus. Mais que isso, há ainda o mau aproveitamento dos recursos alocados, uma vez que essas matrizes podem ser esparsas. Assim, podemos pensar em formas alternativas de atacar esse problema. Comecemos, então, por uma definição-chave: uma matriz-esparsa é aquela cujos elementos nulos são maioritários. Quando usamos uma matriz termo-documento para aferir a similaridade entre palavras, consideramos todas as palavras presentes em todos os documentos. Naturalmente, alguns documentos podem não possuir algumas palavras em seu corpo e, por consequência, alguns elementos na matriz serão nulos. Ora, lembremos que, nessa matriz, cada elemento computa a quantidade que uma palavra aparece em um documento. Devemos, portanto, pensar em outras maneiras de representar essas relações, utilizando estruturas de dados sofisticadas para utilizar o menor espaço possível. A computação gráfica é uma ótima área para se tomar de exemplo. Imagine computar uma quantidade absurda de triângulos para obter a forma de um objeto! Tenta-se, nesse caso, utilizar a menor quantidade possível. Em python, há algumas estruturas já implementadas, como as matrizes esparsas, que são listas duplamente encadeadas. Mas, em vez de usar essas estruturas, podemos usar uma abordagem diferente. Poderíamos trocar a matriz-termo documento por uma forma mais natural. Tal forma é denominada de matriz palavra-palavra, termo-termo ou termo-contexto. Nessa abordagem, cada célula da matriz é responsável por computar a frequência que uma palavra co-ocorre com outra em um dado contexto qualquer. Esse contexto pode ser um parágrafo, ou mesmo uma janela, considerando n palavras atrás e à frente. Nessa nova abordagem, portanto, queremos aferir se uma palavra é parecida com a outra baseada em quão distante uma está da outra, analisando a vizinhança. Se temos controle do tamanho da vizinhança, dizemos que o contexto é local. Em caso contrário, como parágrafos, dizemos que o contexto é dinâmico. Essa abordagem é interessante e aproveita melhor as informações de um corpus, apesar ainda precisar de bastante recurso (a dimensão da matriz escala de forma quadrática em relação ao vocabulário). Na literatura, isso é conhecido como “distributional semantics” ou “vector semantics”. Mas, ao analisar melhor, veremos que apenas contar pode não ser suficiente. Talvez fosse interessante filtrar as palavras que são muito frequentes como “em” e “de”, pois elas podem não ajudar a discriminar similaridade entre palavras. Denominamos essas palavras de não-informativas. Para verificar o quão informativa uma palavra de contexto é, dada uma palavra- alvo, vimos duas medidas. Pointwise Mutual Information (PMI) é uma delas e baseia-se na medida de informação mútua. De maneira geral, ela computa o quanto de informação uma variável aleatória possui sobre outra. Para isso, divide-se a probabilidade da palavra estar no mesmo contexto de outra pelo produto da probabilidade da palavra com a probabilidade do contexto, retirando-se o logaritmo na base 2 de tudo isso. Parece difícil, mas é uma simples consulta à matriz. O Positive Pointwise Mutual Information (PPMI), por sua vez, é a versão truncada, seguindo a mesma fórmula e convencionando que quando o valor é negativo, considera-se zero. Calculando as similaridades e fazendo o devido filtro, pode-se chegar a resultados muito bons. Alguns programas em python foram mostrados em sala. Em suma, vimos nessa aula uma nova forma de representar palavras. Agora, a palavra não é mais um número ou um índice do vocabulário. Ela, agora, é representada como um vetor de números, no qual cada célula indica uma frequência. Isso revela mais informações sobre a palavra, pois o significado dela é calculado a partir da distribuição de palavras ao seu redor. Entretanto, com o idioma completo, dependendo da forma implementada, esse vetor pode ser enorme
Luiz Gabriel Correia Parte 3 de semântica e similaridade de palavras. Matriz de co-ocorrência e é boa para mostrar a frequência de palavras em documentos, considerando todas as palavras do vocabulário. Por conta disso, os vetores resultantes são considerados vetores esparsos, pois os elementos nulos são majoritários. E o tamanho do vetor depende do número de documentos. Se visualizarmos a matriz em um mapa de calor, veremos em alguns casos em que apenas alguns pontos aparecem como brancos, indicando um matriz esparsa. Representar uma matriz esparsa pode ser impossível, pois frequentemente elas são muito grandes, mesmo para os computadores atuais. Felizmente, temos muitas técnicas de processamento de matrizes esparsas, como por exemplo representar internamente como listas ligadas. Consideramos até agora matriz termo-documento, seria natural considerar matriz termo-termo, palavra-palavra ou termo-contexto. Ou seja registrar o número de vezes que uma palavra ocorre juntamente com outra dentro de um contexto. Este contexto pode ter haver com a distância entre as palavras, por exemplo. Qual o tamanho do contexto utilizar? Podemos usar um documento inteiro, ou parágrafos individualmente, ou uma janela de n palavras a frente e atrás de uma palavra específica. Analisando o contexto podemos perceber que palavras da semelhança são similares semanticamente como rápido e veloz, que por terem significado próximo, aparecem frequentemente próximos uma da outra. No corpus da universidade de Brown, da década de 1960, foi bastante utilizado em linguística computacional, que tem 500 textos, cada um com mais 2000 palavras, todas categorizadas de forma manual. O site kaggle também possui inúmeros corpora disponíveis. Na matriz termo-termo teremos linhas e colunas como palavras do vocabulário, e o conteúdo será o número de vezes que aquela palavra ocorre juntamente com a outra naquele contexto. Quanto maior o tamanho da janela, maior a similaridade obtida será semântica, quanto menor, mais será sintática. No programa da aula de hoje, teste1.py, implementamos uma matriz termo-termo. Retiramos as stopwords, já que não faz sentido avaliar sua similaridade. Lemos o arquivo e criamos o vocabulário. A matriz termo-contexto é feita com uma matriz do numpy, e usamos um dicionário para associar cada palavra ao seu índice na matriz. A análise do contexto é feita iterando por cada palavra do documento, representado por um dicionário que guarda todas as palavras em ordem, e adicionando os k elementos antes e depois de cada palavra no vocabulário em um vetor de contexto, checando antes as bordas do documento. Quanto maior a janela k menos esparsa será a matriz. Nesta abordagem as palavras são representadas por um vetor, e não mais por um índice em um vocabulário. Por isto o melhor termo para esta estrutura é matriz vocabulário-vocabulário. Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI) medidas para mensurar o quão informativa é uma palavra. Sabemos que stopword, por exemplo, não são informativas. Precisamos ponderar essas palavras. Em contexto de pesquisa científica por exemplo, não apenas stopword, como palavras como "método", "análise", "metodologia" são pouco informativas. Ou seja este critério depende do contexto. PMI é baseada na medida de informação mutua. Pode ser encarado como um medida de dependência entre variáveis aleatórias. Contamos a ocorrência das duas palavras juntas (normalizado pelo total) e dividimos pela ocorrência de cada palavra separadamente. Passamos estre produto no log na base 2, se esta divisão for maior do 1. Senão, definimos como 0. O PMI tem valores altos para eventos pouco frequentes. Podemos alterar a alteração utilizando um parâmetro exponencial alpha, que experimentalmente foi determinado em ser 0.75 para ser ter um bom efeito. Em vez de começar a contagem com zero, podemos começar com um valor k (Add-k smoothing) ou usar uma suavização de Laplace (Laplace Smoothing). O pacote NLTK tem métodos para dado um corpus gerar a matriz PPMI.
Giselle Silva de Santana Nesta décima aula, do dia 11/07, abordando o tema “Semântica e similaridade de palavras: Parte III: Matriz termo-contexto”, com exposição de alguns códigos ao longo da aula. A aula foi iniciada com a proposta de um novo desafio, desafio 2, que assim como o primeiro valerá meio ponto na média final da disciplina. O desafio se trata de um resumo de uma publicação descrita na lista de trabalhos mais relevantes para a computação presente no link <[https://en.wikipedia.org/wiki/List_of_important_publications_in_computer_science](https://en.wikipedia.org/wiki/List_of_important_publications_in_computer_science)> e responder a pergunta “Porque o trabalho é considerado importante para a área de computação?” com prazo de entrega até o fim do quadrimestre. Em seguida, foi realizada uma breve recapitulação da aula anterior, sobre matriz de co- ocorrência: termo-documento para se introduzir o assunto sobre matriz esparsa. A similaridade entre palavras considera todas as palavras presentes em todos os documentos. Os vetores têm muitos elementos nulos (vetores esparsos) e o tamanho do vetor depende do número de documentos. Foi apresentado um plot de exemplo de matriz esparsa, onde os valores nulos são pretos e os não-nulos são brancos. Para se realizar uma análise mais sofisticada, o mais natural seria considerar uma matriz termo-termo, matriz palavra-palavra e matriz termo- contexto, com dimensão |V| x |V|. Cada célula da matriz registra o número de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto, dado em um corpus de treinamento. O contexto poderia ser o documento, cada célula representa o número de vezes que duas palavras estão presentes no documento. É interessante considerar-se um contexto grande pois palavras similares estão geralmente próximas e palavras que estão em contextos similares, tendem a ser semanticamente similares. Foi apresentado o Corpus Brown, que é um pioneiro na área de linguística computacional, contendo 500 amostras em inglês, com cada uma contendo mais de 2000 palavras, além de ter sido recomendado o site kaggle para obtenção de outros corpora, no endereço <[https://www.kaggle.com/datasets?search=corpus](https://www.kaggle.com/datasets?search=corpus)>. Uma palavra é representada por um vetor de números que consideram um contexto, com dimensão proporcional ao tamanho do vocabulário. Considerando-se um contexto com janela de tamanho um, uma palavra antes e uma depois da palavra analisada, a similaridade é mais sintática, enquanto um contexto total de 15 palavras possui uma similaridade mais semântica. Também vimos a similaridade baseada em distribuição de palavras, que na literatura é conhecida como: Distributional semantics, vector semantics ou vector-space semantics. Nesse método, o significado de uma palavra é calculada a partir da distribuição de palavras que ao redor dela, sendo que anteriormente vimos métodos onde uma palavra era representada por um índice em um vocabulário. Nesta abordagem, as palavras são representadas como um vetor de números (embedding into a vector). Por fim, fora apresentadas duas medidas que permitem mensurar quão informativa é a palavra de contexto, dada uma palavra alvo, que são elas a Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI). A PMI é uma medida baseada na medida de informação mútua, que é uma medida que representa a quantidade de informação que uma variável aleatória contém sobre outra variável. A PPMI consiste em substituir os valores negativos do PMI por zero.
Marcela Akemi Yamashita Matriz de co-ocorrência: termo-documento/palavra-palavra/termo-contexto. Dimensão |V|x|V|. Documentos são similares se vetores são similares. Similaridade entre palavras considera todas as palavras presentes em todos os documentos. Vetores tem muitos elementos esparsos e o tamanho depende do número de documentos. Cada celula da matriz registra número de vezes que a palavra da linha co-ocorre com outra palavra da coluna dentro de um contexto dado em um corpus de treinamento. Contexto pode ser o próprio documento. Corpus menor não indicado: obras similares estão próximas, palavras que estão em contextos similares tendem a ser semanticamente similares. Site para encontrar datasets de corpus: kaggle. Dimensão da matriz é proporcional ao tamanho do vocábulo considerado, portanto a estrutura de dados deve ser mais eficiente para armazenar um vetor esparso com milhares de elementos: janelas de comando: similaridade mais sintática a similaridade mais semântica. Exemplo do código em python com chamadas de notícias de diferentes portais. Grafo com similaridades entre termos e diferentes k. Similaridade baseada em distribuição de palavras: Na literatura: distributional semantics, vector semantics ou vector space semantics. Significado de uma palavra é calculado a partir da distribuição de palavras ao redor dela. Antes: palavra representada por índice em um vocábulo. Abordagem atual: representadas como um vetor de números(embedding into a vector). Cada célula da linha de uma matriz indica a frequencia. Contagem de palavras não é boa escolha para determinar se duas palavras são similares. PMI e PPMI: medidas que permitem mensurar quão informativa é a palavra de contexto, dado uma palavra alvo. Palavras como “de”, “em”, “para” etc não são informativas, estão presentes em quase todos contextos. Melhor ponderação: deve nos dizer a frequência mais do que acaso que as palavras co-ocorrem. PMI(Pointwise Mutual Information): medida baseada em informação mutua; I(X,Y)=(Soma em x)(Soma em y)P(X,Y)log2(P(x,y)/P(x)P(y)): medida que representa a quantidade de informação de uma variável aleatória contém sobre outra. Medida de dependência entre variáveis aleatórias. Razão entre probabilidade conjunta dos eventos e suas probabilidades separadas. Para palavras mede o quão estão associadas: PMI(word1,word2)=log2((P(word1,word2)/P(word1)P(word2)). Terá valores de -infinito até +infinito. Negativos: implica que as frequencias são menores do que o esperado por acaso. Não confiável para corpus pequeno. Retificar valores negativos para 0. PPMI em uma matriz termo-contexto: pmi(ij) = log2(p(ij)/p(i)*p(j)). ppmi(ij) = pmi(ij) se pmi(ij)>0 e 0 caso contrário. Atividade 1. O PPMI tem valores altos para eventos poucos frequentes(palavras muito raras), uma maneira de reduzir é considerar PPMI(alpha)(w,c) = max (log2 (P(w,c)/P(w)*P(alpha)(c)),0). P(alpha) = count(C)^(alpha)/(soma em c) count(c)^(alpha). Quando c é raro, esta expressão permite diminuir o PPMI. Uma alternativa é usar estratégia com efeito similar. Suavização: add-k smoothing, laplace smoothing. Exemplos de implementação em códigos em Python. Outras medidas de similaridade: PMI, t-test, cosine, Jaccard, dice, JS. Desafio 2: Bonus de 0.5 na MF. Resumo nos moldes da aula de uma publicação na lista de artigos mais importantes para computação. Enviar pelo tidia. Desafio para o final do quadrimestre.
Thiago Henrique Gomes Panini Resumo 10 – PLN A décima aula de Processamento de Linguagem Natural foi iniciada com uma breve revisão da aula anterior, contemplando temas como a matriz de co-ocorrência onde era possível olhar linhas (como forma de verificar similaridade entre documentos) e colunas (como forma de verificar similaridade entre palavras). Essa matriz é chamada de matriz esparsa, uma vez que possui muitos elementos nulos. Até o momento, vimos a matriz termo-documento. O mais natural seria considerar as definições de matriz termo-termo, matriz palavra-palavra ou matriz termo- contexto. Cada célula da matriz registra o número de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto, dado em um corpus de treinamento. E assim, temos a matriz-contexto. Analisando apenas a vizinhança do contexto, ou seja, apenas um número fio de palavras antes e depois em um trecho para identificar palavras semelhantes não em termos de grafia, mas sim em termos de semelhança. Como exemplo prático, o professor Jesús mostrou a frase relacionadas. “O carro é rápido? Sim, ele é muito veloz”. As palavras “rápido” e “veloz” possuem relação. Dessa forma, podemos definir que palavras similares estão circundadas (ao redor). Como exemplo de corpus, o professor indicou o site do Kaggle como forma de obtenção de alguns corpus selecionados para que se possa trabalhar em um projeto relacionado. Existem dados de nomes, comentários, notícias, músicas, tweets, reviews em produtos e outros. Grande parte destes datasets estão fielmente documentados e estão disponíveis de forma gratuita. No decorrer da aula, foram apresentados programas de teste contendo com informações sobre o número de documentos, o tamanho do vocabulário e o número de stopwords. Um código utilizando o matplotlib também foi utilizado para mostrar a plotagem de uma matriz esparsa (termo-documento) com diferentes números de “k”, parâmetro que, se maior que o vocabulário, menos esparsa a matriz e mais pontos preenchidos temos (estamos olhando menos palavras). Em um segundo momento da aula, foram abordadas duas medidas para identificar o quão informativa é a palavra do contexto, sendo estas: Pointwise Mutual Information PMI e PPMI. Por conta de níveis próximos de proximidade, como no caso de preposições, algumas palavras precisam ser ponderadas (para, de, nosso) por não serem informativas pelo fato de estarem presentes em quase todos os contextos. A medida Pointwise Mutual Information, ou PMI, é uma medida baseada na medida de Informação Mútua. A fórmula da Informação Mútua é construída sob o somatório de duas palavras (x e y) que identifica a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória. O PMI terá valores entre menos infinito e mais infinito. Como a fórmula contém uma função logaritma, se o termo for menor que 1, o resultado é uma probabilidade negativa. Como tomar decisões a partir de probabilidades negativas? Para sanar este pequeno percalço, foi criado o Positive Pointwise Mutual Information, ou PPMI, o que restringe a função logaritima apenas a parcela positiva, substituindo valores negativos por zero. A aula teve sequência a partir da execução de uma atividade rápida para o cálculo dos conceitos dados em sala. Na atividade, calculamos as métricas PPMI para um conjunto de vocabulário, montando combinações entre linhas e colunas, as quais eram compostas por palavras similares, de certa forma.
Matheus Tulio Pereira da Cruz Matrizes esparsas são matrizes onde a maioria dos valores são nulos. Para casos onde a maioria dos elementos são nulos, se faz necessário a utilização de estrutura de dados mais sofisticadas do que matrizes, uma vez que uma matriz gastaria muita memória guardando elementos nulos. Até hoje, vimos mais sobre matrizes termo-documento, mas o mais natural é considerarmos: - Matriz termo-termo - Matriz palavra-palavra - Matriz termo-contexto. Palavras que estão em contextos similares, tendem a ser semanticamente similares. Exemplo, biblioteca que organiza os livros por contexto. Entretanto não podemos controlar o tamanho dos elementos dentro de um contexto. O corpus Brown é pioneiro na área de linguística computacional. Ele é composto de mais de 500 textos com mais de 500 palavras. Na matriz termo-contexto, as linhas e colunas são as palavras e o elemento é o número de vezes que a palavra da linha está ligada com a palavra da coluna. Janela é a distância de palavras que será analisado o contexto. Por exemplo, uma janela de 3, significa que a análise será feita nas 3 palavras a direta e nas 3 a esquerda. Para a análise de contexto de matrizes termo-contexto é muito importante retirar as stopwords para não atrapalhar a análise. É preciso tratar a condição das bordas. Caso a palavras seja uma das primeiras ou das últimas, dependendo da sua janela o algoritmo não vai conseguir pegar o mesmo número de palavras do lado direito e do esquerdo. Portanto, é necessário tirar a comparação com a parte esquerda caso seja uma das primeiras e as da direita caso sejam uma das últimas. Quanto maior a minha janela, menos esparsa é a minha matriz. Em similaridade baseada em distribuição de palavras o significado da palavra é calculado a partir da distribuição das palavras que estão ao redor dela. Contagem de palavras é uma boa escolha apenas para uma primeira abordagem. A contagem não consegue determinar bem se duas palavras são similares. PMI e PPMI permitem mensurar quão informativa é uma palavras. Palavras que são presentes em quase todos os contextos não são muito informativas, uma vez que são muito repetidas. Muitas dessa palavras são stopwords mas não necessariamente são. Essas palavras mudam muito dependendo do contexto em que está inserido, por exemplo num contexto de pesquisa científica , “pesquisa” e “metodologia” são palavras não muito informativas. A melhor ponderação ou medida de associação entre palavras deve nos dizer com que frequência mais do que o acaso as duas palavras co- ocorrerem. Pointwise Mutual Information (PMI) é uma medida baseada na medida de Informação Mútua. É uma medida de associação que mede o quão frequente dois eventos (x e y) ocorrem se ambos são independentes. Informação Mútua é uma medida que representa a quantidade de informação que uma variável aleatória contém sobre outra palavra. PMI tem valores entre -infinito e +infinito. Valores negativos indicam que as coisas estão ocorrendo com menos frequência do que se esperava. O PPMI é igual ao PMI, a não ser pelo fato de que os valores negativos do PMI são substituídos por zero. PPMI tem valores altos para valores poucos frequentes. Podemos utilizar outros conjuntos de dados no projeto, não necessariamente o mesmo conjunto de dados que o próprio artigo utiliza.
Paula Keiko Miyashita A aula 10 de Processamento de Linguagem Natural abordou a parte três do tópico “Semântica e similaridade de palavras”, desta vez com foco na matriz termo- contexto. Após uma rápida revisão da matriz termo-documento, e as maneiras de detecta similaridade entre palavras e documentos transformando as informações da tabela em vetores e comparando-os. A matriz esparsa é uma matriz que tem mais elementos nulos/sem informação, do que elementos com valor. Para matrizes com esta configuração, existem maneiras mais sofisticadas de guardar a informação. O tema da aula, a matriz termo-contexto, guarda a informação do número de vezes em que duas palavras apareceram juntas num mesmo contexto. Um contexto pode ser definido como um parágrafo, uma linha ou, de maneira mais comum um intervalo de N palavras antes e depois da palavra examinada. Ao utilizar este conceito de vizinhança torna-se até possível calcular a distância entre as duas palavras relacionadas considerando cada palavra entre elas como uma unidade de distância. Em seguida foi apresentado o Corpus Brown, um corpus com 500 amostras, cada um com mais de 2000 palavras, em inglês, é pioneiro na área de linguística computacional. Também foram introduzidos diferentes corpus que podem ser utilizados pelos alunos para testar algoritmos. No exemplo aplicado sobre a base do Corpus Brown, utilizou-se um vetor para cada palavra para guardar o número de interações entre estas, como explicado na aula este método não é muito eficiente pois cada vetor terá o tamanho do vocabulário. Em seguida foram apresentados diferentes códigos para fixar e estender o conteúdo da aula. O primeiro código (Teste1) utilizou vizinhança 3 e focou no tratamento das bordas, quando as palavras não possuem três palavras à sua direita ou esquerda, diminuindo sua vizinhança. O código gera as palavras consideradas para cada uma das palavras do texto, o número de documentos considerado, tamanho do vocabulário e número de stopwords. Ainda com auxílio deste código, foi explicada como o tamanho da vizinhança considerada influencia no preenchimento da matriz: vizinhanças maiores tem menos espaços em branco em sua matriz termo-contexto. O Teste2.py monta um grafo para representar as palavras e suas similaridades, o valor de k pode ser modificado e influencia diretamente o resultado final. Esta medida de similaridade baseia-se na distribuição das palavras ao redor de cada palavra, representadas por um vetor numérico. Mas para alguns casos somente a contagem não é um fator suficiente para determinar similaridade entre palavras, para casos como palavras frequentes como “em” e “de”. Para eliminar a similaridade por acaso utilizamos Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI) que indicam com que frequência mais do que o acaso as duas palavras co-ocorrem. A fórmula utilizada é PMI(w,x) = log2[P(w,c)/(P(w)P(c))], e PPMI(w,c)= max{PMI(w,c),0}, ou seja, é zero para situações em que PMI é menor que zero. Foram feitos exercícios e mostrados exemplos em python que realizam os cálculos e desenham grafos com o resultado e foi explicado o desafio 2 que deve ser entregue até o fim do curso.
Renan Baisso Continuando nosso estudo de processamento de linguagem natural (PLN), quando analisamos textos ou documentos, podemos estruturar uma matriz de co- ocorrência chamada de termo documento, a qual auxilia na análise entre os documentos estudados e também das palavras encontradas nesses textos, sendo que a dimensão dessa estrutura é palavras x documentos. Porém, nem todas as palavras aparecem em todos os documentos, deixando a nossa matriz com “espaços vazios”, isto é, tornando-a esparsa, o que pode dificultar, ou até mesmo impossibilitar, o processamento computacional em grandes dimensões, por isso, faz-se necessário o uso de estruturas de dados mais sofisticadas, as quais contornam este problema com eficiência, não deixando “espaços vazios” e utilizando melhor o poder computacional. Além disso, a estrutura matricial ainda pode descrever um cenário em que podemos relacionar palavras de forma conjunta (co-ocorrência) para um dado contexto, essa matriz é chamada de termo-contexto, ou ainda termo-termo ou palavra-palavra, e sua dimensão é VxV, em que V é o tamanho do vocabulário do contexto (texto, documento, corpus). Mas ainda precisamos definir uma dimensão para nosso contexto, que pode ser um texto completo, parágrafos ou uma janela de palavras (e.g. as quatro palavras anteriores e as 4 palavras posteriores), pois obras similares tendem a estar próximas, assim como acontece com as palavras que têm similaridade de semântica. Contudo, ainda não sabemos qual o tamanho ideal a ser considerado para verificar as ocorrências conjuntas das palavras, sendo assim, podemos realizar teste para cada caso que nos deparamos ao longo das análises. Lembrando que quanto maior a janela, mais palavras estaremos considerando na co-ocorrência e podemos ter maior abrangência na relação entre as palavras. Para efeito de visualização desta técnica, podemos citar o Corpus Brown de 1960, que foi um estudo pioneiro na época e que hoje já serviu como base para diversos estudos da área de linguística e PLN, com mais de 1 milhão de palavras de trabalhos publicados no Estados Unidos. Através deste dataset podemos observar que as técnicas citadas realmente trazem resultados coerentes. Entretanto, apenas a contagem de palavras não é suficiente para determinar uma forte relação de contexto entre as palavras, pois palavras muito recorrentes em um texto de assunto específico, pode ter um baixo significado no contexto, dificultando a discriminação. Para resolver tal problema podemos utilizar as técnicas Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI), as quais têm função de mensurar o quão informativa são as palavras de contexto dada uma palavra alvo. O PMI é baseado na teoria de informação mútua entre duas palavras, isto é, mede a quantidade de informação que depende de duas variáveis aleatórias, logo, podemos deduzir que é medida de quão associadas dias palavras estão dado um contexto. Porém, por se tratar de uma fórmula logarítmica, valores negativos podem ocorrer para valores próximos de zero da relação de probabilidade, i.e, para corpus pequenos pode não funcionar corretamente. Por isso, o uso do PPMI se faz mais eficaz, pelo fato de considerar qual a informação mútua é zero nos casos em que o PMI é negativo.
Tamiris Gabriele da Silva Lira Na décima aula de Processamento de Linguagem Natural o professor iniciou, mais uma vez, retomando alguns conceitos importantes abordados na aula anterior. Assim, o conceito de matriz termo-documento - isto é, uma matriz que representa o número de vezes que um termo (linhas) foi encontrado em um documento (colunas) - foi revisitado, com foco em sua característica de possuir vetores esparsos, isto é, muitos elementos nulos (já que alguns termos podem não estar presentes em um dos documentos). A dimensão de uma matriz termo-documento é dada por |V| x |D|, ou seja, o produto entre o número de palavras únicas (vocabulário) e o número de documentos. Uma representação de matriz esparsa foi apresentada como exemplo onde pudemos ver que o número de elementos nulos era muito maior que os elementos não-nulos. Considerando uma matriz termo-contexto (também chamada de matriz palavra-palavra ou matriz termo-termo), isto é, uma matriz que representa o número de vezes que uma palavra (linha) ocorre em conjunto com outra palavra (coluna), teríamos uma matriz de dimensão |V| x |V| e, considerando o documento como contexto, teríamos uma matriz muito grande. Uma solução para isso poderia ser, portanto, a utilização de um contexto menor, como por exemplo um dos parágrafos do documento. Isso se justifica pelo fato de palavras em contextos similares tenderem a ser semanticamente similares. Alguns exemplos de Corpus foram apresentados, com o professor sugerindo que estes podem ser usados para a implementação do projeto. Em seguida o professor apresentou o programa Teste1.py, que mostra a relação entre palavras de um corpus. Se definirmos um número k de palavras próximas observadas, temos que quanto maior o k, ou seja, maior o número de palavras observadas, menos esparsa será a matriz. A similaridade baseada em distribuição de palavras indica que o significado de uma palavra é calculado a partir da distribuição de palavras ao redor dela. As medidas Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI) servem para medir "quão informativa é a palavra de contexto, dada uma palavra", o que evita que palavras muito frequentes sejam utilizadas para determinar se duas palavras são similares. Assim, PMI calcula a frequência de ocorrência de dois eventos independentes (ou, em palavras, o quanto elas estão associadas) através da fórmula PMI(w,c) = log_2 P(w,c)/(P(w)P(c)) e, como esse valor está entre [-?, +?], utilizamos que PPMI (w,c) = max(PMI(w,c), 0), substituindo os valores negativos do PMI por 0. Após essa explicação foi proposta uma atividade para que calculássemos o PPMI de duas palavras dados o contexto e a matriz termo-contexto. Eventos pouco frequentes geram valores de PPMI altos e um valor alfa (calculado por uma pesquisa em 0,75) pode ser utilizado para reduzir esse viés. Por fim, um segundo desafio valendo um bônus de 0,5 pontos na nota final foi proposto, no qual devemos entregar um resumo de uma publicação (que deve ser selecionada a partir de uma lista de publicações importantes em ciência da computação da wikipédia) até o final do quadrimestre.
Arthur Veloso Kamienski Nesta aula foram expandidos os conceitos de similaridade de textos e palavras já explorados em aulas anteriores. Como visto anteriormente, podemos utilizar matrizes de co-ocorrência para mensurar a similaridade entre termos e documentos, ao contar a ocorrência de cada palavra do vocabulário (gerado a partir da união dos vocabulários para todos os documentos em questão) para cada documento. Geramos assim uma série de vetores, que podem ser posicionados em forma de uma matriz, a qual indica tanto a ocorrência de uma palavra em um documento, quanto a ocorrência de uma palavra em todos os documentos e a ocorrência de todas as palavras de um documento. Ao selecionarmos os vetores que representam documentos, podemos compará-los de forma geométrica (utilizando métricas discutidas anteriormente) para determinar sua proximidade. O mesmo pode ser feito para as distintas palavras. No entanto, o conceito de matrizes de termo-documento (que relacionam palavras a textos) não é intuitivo. Para realizar uma análise mais detalhada das relações entre palavras, devemos construir uma matriz de termo-termo (que relaciona palavras a outras palavras). Para realizar tal tarefa, devemos contar a quantidade de vezes que palavras ocorrem em conjunto para um determinado corpora. As situações em que as palavras ocorrem são chamadas de contexto. O contexto pode ser modelado como uma vizinhança de palavras em um determinado corpus, sendo composto por um número N de palavras que ocorrem ao redor da palavra a ser analisada. Utilizando essa definição, podemos construir a matriz desejada ao contar o número de palavras que ocorrem no mesmo contexto que uma palavra, preenchendo desta maneira a matriz. Definimos, então, que palavras são similares caso frequentemente apareçam em um mesmo contexto, sendo esta postulação similar àquela apresentada anteriormente para matrizes de termo- documento. É importante ressaltar que o tamanho da janela pode variar, de modo que janelas maiores (que englobam mais palavras no contexto) capturam uma análise mais semântica do relacionamento de palavras, enquanto janelas menores capturam uma análise mais sintática das palavras. O tamanho da janela de contexto pode variar em distintos tamanhos, sendo os mais comuns de 1 a 7 palavras antes e depois da palavra em questão (de 3 a 15 palavras no total). No entanto, apenas a ocorrência de palavras não é um bom parâmetro para a análise de similaridade de palavras, dado que muitas palavras podem ocorrer frequentemente, mas não ter necessariamente importância semântica (é o caso de stopwords). Para combater este efeito, utilizam outras métricas de similaridade, como o PMI e o PPMI. O PMI é uma medida que mede a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória, indicando a dependência entre elas. Essa medida é dada pelo logaritmo na base dois da probabilidade de duas palavras ocorrerem em conjunto (P(w1,w2)), dividida pela multiplicação das probabilidades de cada uma ocorrer separadamente (P(w1)*P(w2)). Assim, obtem-se a fórmula PMI = log2 (P(w1,w2)/(P(w1)*P(w2))). Quando essa medida é menor que zero, opta-se por substituir seu valor por zero, definindo-se assim o PPMI.
Joao Victor Fontinelle Consonni A décima aula de PLN deu continuidade ao conteúdo visto nas últimas duas últimas aulas, abordando semântica e similaridade de palavras. Na aula anterior a esta vimos a matriz termo-documento, uma matriz de co-ocorrência que apresenta cada documento analisado em uma coluna da matriz, enquanto cada linha é uma palavra que aparece ao menos uma vez em ao menos um dos documentos. O vetor formado por uma coluna da matriz compreende o vocabulário do documento. Dois documentos são ditos similares se tais vetores forem similares. Analogamente, duas palavras são ditas relacionadas semânticamente se os vetores formados por cada linha correspondente sejam similiares. Essa abordagem é um tanto simplista e pode conduzir a alguns problemas, pois a matriz cresce com o número de documentos e a matriz resultante é esparsa, ou seja, a maioria de seus elementos são nulos. Dessa forma, se faz importante a utilização de estruturas de dados eficientes para armazenar tal conteúdo. Nessa aula demos mais atenção à matriz termo-contexto, que também pode ser referenciada como matriz termo-termo, ou matriz termo-palavra. A dimensão dessa matriz é |V|x|V|, onde |V| é o tamanho do vocabulários do corpus analisado. Assim, cada célula da matriz registra o número de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto. O contexto pode ser um documento, de tal forma que a matriz represente o número de vezes que duas palavras estão presentes no documento, como também pode ser um contexto menor, como parágrafos, frases ou os x vizinhos da palavra. Estes contextos menores são bastante úteis para encontrar palavras semânticamente similares. Após alguns exemplos, fomos formalmente apresentados ao Corpus Brown, um corpus pioneiro na área de linguistica computacional, criado na decada de 1960, com 1,014,312 palavras de trabalhos publicados nos Estados Unidos em 1961 (500 fontes) organizado em 15 categorias. O kaggle também foi apresentado como fonte para outros corpus. Dentre as opções de contextos pequenos, vimos o conceito de janelas de tamanho, que consiste em avaliar x vizinhos de uma dada palavra como o seu contexto. Uma janela de tamanho 3, por exemplo, avalia as três palavras a esquerda e as três palavras à direita da palavra em analise. Janelas menores (1, 3) tendem a ser mais úteis para identificar similaridade sintática, enquanto janelas maiores (7, por exemplo) permitem identificar similaridade mais semântica. Vimos um código em python para demonstrar a aplicação de uma janela de tamanho 3 sob um corpus com sete notícias de três diferentes fontes. Foi feita a remoção das stopwords antes do processamento. Mais exemplos foram apresentados na forma de grafos para representar a similaridade computada para diferentes janelas e corpora. A similaridade também pode ser baseada em distribuição de palavras, de forma que o significado de uma palavra é calculado a partir da distribuição de palavras ao redor dela. Como medidores de similaridade vimos métodos para calcular o Pointwise Mutual Information (PMI) e o Positive Pointwise Mutual Information (PPMI). Ambas permite mensurar quão informativa é a palavra num contexto.
Bruno Menezes Gottardo Ladeia Continuando da última aula e ainda falando sobre semântica e similaridade de palavras, a aula de hoje abordou o tema Matriz termo-contexto. Da última aula foi apresentado a estrutura de matriz de co-ocorrência: termo-documento, que serve para comparar a semântica entre diferentes documentos, de acordo com os termos escolhidos. Temos que dois documentos são semanticamente similares, se os vetores são similares. Esta estrutura é muito eficiente e prática para comparações, porém ela possui muitos elementos nulos (é uma matriz esparsa), o que a torna computacionalmente cara e difícil de manipular. Neste cenário é onde entra a vantagem da matriz termo-contexto (também sendo chamada de matriz termo-termo e palavra-palavra). Ela possui dimensão |V| x |V| e sua estratégia consiste de, em cada célula da matriz, registrar o número de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto, dado em um corpus de treinamento. Este contexto pode ser o próprio documento. O contexto pode ser de tamanho variável e depende da escolha durante implementação. A vantagem de utilizar um contexto menor é que obras similares estão "geralmente" próximas e, por conseguinte, palavras que estão em contextos similares, tendem a ser semanticamente similares. Considerando corpus foi apresentando um muito famoso, datado desde a a decada de 1960, que é o Corpus Brown. Ele é um corpus pioneiro na área de linguística computacional e ao todo apresenta 1,014,312 palavras de trabalhos publicados nos Estados Unidos, que totalizam 500 fontes organizadas em 15 categorias. Cada texto possui mais de 2000 palavras. As janelas de tamanho matriz termo contexto geralmente são compostas por números ímpares e, quanto menor for o número escolhido, mais sintática será a similaridade já, quanto maior for o número escolhido, mais semântica será a similaridade. Na literatura essas técnicas são conhecidas como Distributional semantics, Vector Semantics ou Vector-space Semantics. Cada célula da matriz representa uma frequência e só se concentrar na contagem de palavras não é uma boa escolha para determinar se duas palavras são similares (e.g. "de" e "em"). Ai entram os índices PPI e PPMI, medidas que permitem mensurar o quão informativa é uma palavra do contexto, dada uma palavra. Em suma procura-se calcular: que frequência, mais do que o caso, as duas palavras co-ocorrem. PMI mede quão frequentes (x e y) ocorrem se ambos são independentes, sendo uma medida de informação mútua. Esta medida nos fornece informações como: dependência entre variáveis aleatórias, sobreposição de informações entre duas variáveis aleatórias e a quantidade de informação que uma variável aleatória tem sobre outra. PMI é dado por I(x,y) = log2(P(x,y)/P(x)*P(y)), se <1 o PMI é negativo, que implica que ocorrem com menos frequência do que esperávamos por acaso. Estas medidas não são confiáveis para corpus pequeno. O PPMI é PPMI(w,c) = max(log2(P(w,c)/P(w)*P(c)), 0), servindo como uma medida normalizadora (w e c são palavras e contextos respectivamentes).
Laura Cestavo Borges Dos Santos Essa aula foi a parte 3 do assunto semântica e similaridade de palavras. Como visto anteriormente, dois documentos são similares se os vetores são similares semanticamente e duas palavras são similares semanticamente se os vetores são similares. Para checar a similaridade entre palavras, todas as palavras do documento são levadas em consideração, o que acarreta em vários termos nulos nos vetores (vetores esparsos). A matriz termo-documento tem dimensão V x V, onde V é o tamanho do vocabulário. Cada célula da matriz registra o numero de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto, dado um corpus de treinamento. Palavras que estão em contextos similares, tendem a ser semanticamente similares. Um exemplo de contexto local de palavras seria a frase “O carro é rápido? Sim, ele é muito veloz”, pelo contexto sabemos que rápido e veloz são similares. Um exemplo conhecido, é o Corpus Brown de 1960, que é um corpus geral que tem 500 amostras em inglês e é organizado em 15 categorias. É um corpus pioneiro na área de linguística computacional. Como dito anteriormente, uma palavra é representada por um vetor de números que consideram um contexto. Porém, em uma matriz-contexto haverão vários vetores espaços e portanto é preciso ter a estrutura de dados mais eficiente possível, pois podemos trabalhar com vetores esparsos de tamanho 20 ou 50 mil elementos. Podemos checar a similaridade de palavras através da técnica baseada em distribuição de palavras, onde o significado de uma palavra é calculada a partir da distribuição de palavras ao redor dela. Anteriormente, as palavras eram representadas por um índice em um vocabulário, agora as palavras são representadas como um vetor de números. Uma matriz termo-contexto armazena as frequências em cada célula, porem essa não é uma boa abordagem para determinar se duas palavras são similares. Por exemplo, palavras “de” , “em”, “para”, “quem”, entre outras, são frequentes, e podem não ajudar em discriminar a similaridade entre palavras. A melhor ponderação ou medida de associação entre palavras deve nos dizer com que frequência mais do que o acaso as duas palavras co-ocorrem. Existem duas medidas que permitem mensurar quão informativa é a palavra de contexto dada uma palavra alvo, são elas Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI). O PMI é uma medida baseada na Informação Mútua, que é uma medida que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória. É uma medida de dependência entre variáveis aleatórias e da sobreposição de informação entre elas. É uma medida de associação que mede quando frequente dois eventos ocorrem se ambos são independentes. A PMI tem valores entre negativo infinito e positivo infinito, os negativos implicam que as coisas estão ocorrendo com menos frequência do que esperávamos por acaso. O PPMI é feito com base no PMI. Ele pega o resultado do PMI e checa o máximo entre o resultado e 0, dessa forma substituindo os negativos por zero.
Leonardo Nascimento A matriz de coocorrência termo-documento é uma abordagem simples para definir a similaridade entre documentos. Entretanto, existem alguns problemas, como a similaridade entre palavras considerar todas as palavras presentes em todos os documentos, os vetores terem muitos elementos nulos, isto é, serem vetores esparsos, e o tamanho do vetor depender do número de documentos. Em uma matriz termo-contexto, também conhecida como matriz termo-termo e matriz palavra-palavra, temos dimensões que dependem apenas do tamanho do vocabulário, e cada célula da matriz registra o número de vezes que a palavra coocorre com outra palavra em um contexto. O contexto poderia ser o documento, e cada célula representaria o número de vezes que duas palavras estão presentes no documento, mas também poderia ser empregado um contexto menor, como um parágrafo, dado que palavras que estão em contextos similares tendem a ser semanticamente similares. Avaliando os exemplos de contexto local de palavra, verificamos que contextos menores denotam as associações “rápido” com “veloz” e “longo” com “tamanho”, o também pôde ser percebido no Corpus Brown. Criado na década de 1960, o Corpus Brown é pioneiro na área de linguística computacional, são 500 textos de trabalhos publicados em 1961 nos Estados Unidos, organizado em 15 categorias, somando 1.014.312 palavras em inglês. Outros corpora podem sem encontrados no Kaggle, onde se pode encontrar desde o corpus da Bíblia até os comentários de vídeos em alta no YouTube. No script usado para exemplificar a criação de uma matriz termo-contexto, considera-se como contexto as 3 palavras anteriores e posteriores a uma determinada palavra, descartando vizinhanças menores do que 3 palavras. Na similaridade baseada em distribuição de palavras, conhecida na literatura como distributional semantics, vector semantics e vector-space semantics, o significado de uma palavra é calculado a partir da distribuição de palavras que estão ao redor dela. A diferença é que em tópicos anteriores uma palavra era representada por um índice em um vocabulário, nesta abordagem as palavras são representadas como um vetor de números. Para esta técnica apenas a contagem de palavras não é uma boa escolha para determinar se duas palavras são similares. Por exemplo, “de” e “em” são muito frequentes e podem não ajudar a discriminar similaridade entre palavras. Para isso são utilizadas medidas que permitem mensurar quão informativa é a palavra do contexto dada uma palavra alvo, como a Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI). A informação mútua é uma medida que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória, dependência entre variáveis aletórias e sobreposição de informações entre duas variáveis aleatórias. PMI é uma medida de associação que mede quão frequente dois eventos ocorrem se ambos são independentes, e valores negativos implicam que as coisas estão ocorrendo com menos frequ?ncia do que esperávamos ao acaso, não sendo confiável para um corpus pequeno. Nesse caso os valores negativos são substituídos por zero e então temos a medida PPMI.
Felipe de Campos Mesquita Na aula 10 de Processamento de Linguagem Natural o tema foi semântica e similaridade de palavras parte III: Matriz termo-contexto. Na primeira parte da aula foi acordado que os desafios podem ser entregues no final do curso e o desafio número dois foi comentado em aula que consiste de um resumo de uma publicação descrita na lista dos slides da aula do wikipedia a respeito de publicações importantes na área de ciência da computação, o bônus é de meio ponto. Da aula anterior, foi visto matriz de co-ocorrência: termo-documento. O primeiro conceito abordado na aula foi o de matriz esparsa, que é uma matriz que tem muitos zeros em sua composição. Em um plano, o plot de uma matriz esparsa traz poucos pontos porque a maioria deles representam zeros no plano. Neste tópicos, existem estruturas mais sofisticadas de grade para representações de imagens em um plano. Os termos matriz termo-termo, matriz palavra-palavra e matriz termo-contexto são similares, a dimensão neste caso é o tamanho do vocabulário versus o tamanho do vocabulário (|V|x|V|). Como visto nos slides da aula, cada célula da matriz registra o número de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto, dado um corpus de treinamento (o contexto poderia ser o documento, cada célula representa o número de vezes que duas palavras estão presentes no documento). O exemplo dado em aula sobre contexto local de palavras foram as frases: O carro é rápido? Sim, ele é muito veloz. Nesse caso temos interesse na associação da palavra rápido com veloz. Um exemplo de corpus famoso para o nosso exemplo deste tópico é o corpus de Brown de 1960 com 500 amostras em inglês, ao todo são 1014312 palavras de trabalhos publicados nos Estados Unidos organizado em 15 categorias, este é um corpus famoso por ser pioneiro na área de linguística computacional. A matriz termo-contexto contém normalmente mais ou menos 7 palavras, mas esse número pode variar e é proporcional ao tamanho do vocabulário considerado. Uma palavra neste caso é representada por um vetor de números que consideram um contexto. A similaridade de palavras baseada em distribuição de palavras também é conhecido na literatura como Distributional Semantics, Vector Semantics ou Vector-space Semantics. O significado de uma palavra é calculado a partir da distribuição de palavra ao redor dela. Em tópicos anteriores uma palavra era representada por um índice em um vocabulário. Nesta abordagem as palavras são representadas como um vetor de números. Outros conceitos abordados em aula e que foram alvo dos exercícios aplicados no teste são Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI), e neste caso, ambas medidas permitem mensurar quão informativa é a palavra de contexto, dada uma palavra alvo. Também vimos na aula alguns trechos de código e resultados de aplicações em python que mostram gráficos com as relações dos tópicos abordados em sala de aula.
Eracton Ferreira Ramalho O tema da aula 10 é semântica e similaridade de palavras, matriz termo- contexto. Antes de tudo foi explicado sobre o desafio 2 da disciplina. Onde será necessário reduzir um artigo entre 500 e 1000 linhas. Ele deverá ser retirado de: list of important publications in computer science, da wikipedia. Lá há diversas áreas de estudo da ciência da computação e pode ser escolhido o que mais interessa a cada aluno. O objetivo é dar familiaridade com esses tipos de escritos científicos. Valerá 0,5 pontos na média e pode ser entregue até o final do quadrimestre, de forma similar ao desafio 1. O que são matrizes esparsas? São matrizes que os elementos nulos são maioria. Se fosse colocado em um gráfico, seria um vértice a palavra e o outro seria um documento. E os pontos seriam bem raros, pois a maioria é nula. Isso pode ser visto na página 7 do slide da aula. Essas matrizes são ineficientes, pois tem poucos elementos úteis. Até agora estudamos matrizes termo-documento, mas agora vamos ver as matrizes termo-palavra, ou melhor, termo-contexto. Onde cada célula da matriz registra o número de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto, dado em um corpus de treinamento. Por que fazer essa analise? Pois palavras que estão em contextos similares, tendem a ser semanticamente similares. Exemplo: em parágrafos, analisando 4 palavras antes e 4 depois da palavra de estudo. Para ficar mais claro, pensemos na frase a seguir: “O carro é rápido? Sim, ele é muito veloz.” Podemos perceber a proximidade dessas palavras que estão tão próximas num mesmo paragrafo (rápido – veloz). Um exemplo clássico neste tema é o corpus Brown, que surgiu na universidade de Brown e é muito utilizado. Na analise palavra-contexto a estrutura de dados deve ser eficiente, utilizando um vocabulário eficiente de, aproximadamente, 20 a 50 mil elementos. A próxima etapa da aula foram os códigos que exemplificavam o que foi dito até então. Como sempre os mesmos devem ser testados em casa para aprofundar os estudos e ver o funcionamento na prática. Este programa elimina as stopwords. Quanto maior o k, mais o espaço. Não é bom abordar apenas com a similaridade entre palavras. Por isso vimos as Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI). Ambas as medidas permitem mensurar quão informativa é a palavra de contexto, dada uma palavra (alvo). Apesar de não serem stopwords há palavras que não são informativas, como por exemplo, “de”, “em”, “para”, “que”, entre outras. A melhor ponderação ou medida de associação entre palavras deve dizer com que frequência mais do que o acaso as duas palavras co-ocorrem. O PMI é uma medida baseada na medida de informação mutua. Modelo matemático com base logaritmo que ajuda muito neste estudo. Mais informações devem ser vistas nos slides, para ver as formulas e a aplicação (exercício) que foi proposto em aula.
Lucas Kenzo Kurokawa Após uma breve revisão dos conceitos da aula passada, continuamos e abordamos as matrizes esparsas, que são as matrizes que em sua maior parte possui valores nulos, o que é custoso e nos leva a buscar uma nova estrutura de dados. Isso ocorre pois nas matrizes que usamos temos dimensão de tamanho proporcional ao do vocabulário, por exemplo: numa matriz termo-documento, cada célula guarda o número de vezes que aquela palavra co-ocorre com outra palavra em um contexto, dado em um corpus de treinamento. O contexto poderia ser o documento e cada célula seria o número de vezes que ambas estão no documento e é o que chamamos de matriz termo-contexto. Palavras que estão em contextos similares, tendem a ser semanticamente similares. Corpus Brown foi criado em meados de 1960 e contem 500 amostras em inglês, totalizando 1.014.312 palavras de trabalhos nos EUA em 1961, separados em 15 categorias (notícias, análises, romances, etc). Ao testarmos o uso da matriz- contexto no corpus brown, vimos que algumas palavras como, por exemplo, “data” e “information” estão no mesmo contexto e possuem semântica similar. Numa matriz-contexto, a dimensão também será proporcional ao vocabulário utilizado, portanto a estrutura de dados que vamos utilizar deve ser o mais eficiente possível, pois deve suportar vetores esparsos de tamanho de cerca de 20 à 50mil elementos. Após isso, vimos alguns algoritmos para uso de matriz- contexto e um exemplo com 7 notícias, onde vimos exemplos de termos e seus contextos (no caso usamos contexto tamanho 7). Para facilitar visualização dos resultados, foi utilizado grafos. Existe a similaridade baseada na distribuição de palavras, também chamada de “Distributional semantics” ou “Vector semantics”, que diz o significado de uma palavra é estimado a partir da distribuição das palavras ao redor dela. Anteriormente, a palavra era um índice e agora as palavras são representadas como um vetor de números. Para calcularmos, tiramos as stop-words, pois não são informativas, uma vez que estão em quase todos os contextos. Também em casos de um contexto específico, como de pesquisa científica, algumas palavras como “método”, “proposta”, “metodologia”, “análise”, “estudo” também não serão muito informativas. Uma definição de medida de informação mútua, que representa a quantidade de informação, dependência e sobreposição de informações entre variáveis aleatórias. Fórmula é dada pela chamada Pointwise Mutual Information (PMI), que é “PMI(palavra1, palavra2) = log2 ( P(palavra1, palavra2) / P(palavra1)*P(palavra2))” para medir o quanto as 2 palavras estão associadas. Dado a fórmula do PMI, vemos que os valores estão no intervalo de negativo e positivo no infinito, sendo que negativo implica que a frequência é menor do que esperávamos. Por isso, foi criado uma nova versão, o PPMI (Positive Pointwise Mutual Information), a diferença é que caso tenhamos um valor negativo, usamos o zero. Vimos alguns exemplos com textos de Machado e nos foi apresentado o desafio 2, que consiste em resumir um artigo científico.
Jean Augusto de Araujo Resumo da aula de Processamento de Linguagem Natural do dia 11/07: Semântica e similaridade de palavras: Parte III: Matriz termo-contexto. A aula iniciou com uma retomada das duas aulas anteriores, em relação a parte I - Definições e similaridade usando tesauro e a parte II - Matriz termo-documento e termo- termo, de semântica e similaridade de palavras. Resumo sobre a Matriz de co-ocorrência: termo-documento, onde dois documentos são similares se seus vetores são similares. A similaridade entre palavras considera todas as palavras presentes em todos os documentos. A análise considera as ocorrências no documento. Assim, em um documento, o termo Julius Caesar aparecerá mais relacionado com as palavras battle e soldier do que com fool e clown. Essa relação, representada por um vetor, pode ter muitos elementos nulos, tornando-o um vetor esparso. São sinônimos matriz termo- termo, matriz palavra-palavra e matriz termo-contexto, com dimensão |V|x|V|. A definição da matriz é de que cada célula irá registrar a quantidade de vezes que a palavra da linha (na horizontal) co-ocorre, ou seja, é encontrada no mesmo contexto em que a palavra da coluna (vertical), para o corpus utilizado no treinamento. Uma alternativa proposta é a matriz termo-contexto, visto que existe a tendência de palavras de contexto similar serem semanticamente similares. A diferença na matriz é dada na construção. Ao invés de utilizar todo o documento para a contagem de co-ocorrências e geração da matriz, considera apenas o contexto próximo – por exemplo, utilizando a unidade de parágrafos para determinar o contexto – 4 parágrafos à frente e 4 atrás. Com essa regra se identifica as palavras “longo” e “tamanho” no seguinte exemplo: “O manuscrito é longo. Geralmente o tamanho é menor.”. É citado também os exemplos Corpus Brown. Inclusive, citado sua história, criado em 1960, com trabalhos publicados nos Estados Unidos, como pioneiro na área de linguística computacional, e sua base contando com 500 fontes, distribuídas em 15 categorias. Em seguinda foram apresentados 2 algoritmos de teste em python, no primeiro, utilizou-se um corpus com manchetes de notícias de agências nacionais, como Fapesp, Folha e Sensacionalista. O algoritmo foi capaz de montar a matriz com boa precisão, considerando o tamanho do corpus de treinamento e suas ocorrências. No segundo exemplo, determinou-se um valor para a similaridade das palavras contidas no documento e mostrado um apanhado em cima das obras de Machado de Assis. Após, apresentado o conceito de Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI), que são formas utilizadas para mensurar a relevância de uma palavra em um contexto ou o quão informativa ela é. Essa necessidade é identificada, por exemplo, nas palavras que estão presentes ou são cabíveis em quase todos os contextos, como “de”, “em”, “para” entre outras. A atividade 1 abrangia esse cálculo.
Matheus de Araujo Vargas Na aula de Processamento de Linguagem Natural do dia 11 de Julho do professor Jesus P. Mena foram aprofundados os conceitos de semântica e similaridade de palavras. Foram apresentadas técnicas para identificar palavras similares utilizando matrizes termo-contexto e indicadores conhecidos por PMI e PPMI. A matriz termo-contexto é uma matriz onde cada celula registra o número de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto, dado em um corpus de treinamento. O contexto, no caso, poderia ser o documento, em que cada celula representa o número de vezes que duas palavras estão presentes no documento. Palavras similares estão geralmente próximas. Palavras que estão em contextos similares, tendem a ser semanticamente similares. Portanto, aoinvés de utilizar o documento inteiro para representar o contexto, podemos utilizar partes menores. Por exemplo, podemos utilizar, como a definição de contexto, um parágrafo ou uma quantidade de palavras antes e depois da palavra em questão. Na matriz termo-contexto, cada palavra é representada por um vetor de números que consideram um contexto. A partir de matrizes termo-contexto, podemos calcular alguns indicadores de similaridade como, por exemplo, o Pointwise Mutual Information (PMI) e o Positive Pointwise Mutual Information (PPMI). As palavras: “de”, “em”, “para”, “quem”, “está”, “eles” e “nossos” não são informativas, pois estão presentes em quase todos os contextos. A melhor ponderação ou medida de associação entre palavras deve nos dizer com que frequência mais do que o acaso as duas palavras co-ocorrem. Poderíamos simplesmente utilizar uma lista de palavras para não considerar no cálculo. Porém, o conjunto de palavras que não são informativas pode mudar de acordo com o conteúdo do texto. Por exemplo, em um contexto de pesquisa científica, as palavras: “método”, “proposta”, “metodologia”, “análise”, “estudo” não são informativas, pois estão presentes em quase todos os contextos de pesquisa. Para resolver esse problema, podemos utilizar o indicador PMI, que é uma medida baseada na medida de Informação Mútua. Informação Mútua é uma medida que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória, sendo uma medida de dependência entre variáveis aleatórias. É também uma medida da sobreposição de informações entre duas variáveis aleatórias. Mais especificamente, o PMI é uma medida de associação que mede quão frequente dois eventos (x e y) ocorrem se ambos são independentes. Um PMI negativo implica que as coisas estão ocorrendo com menos frequência do que esperávamos por acaso. O PPMI é o mesmo que o PMI, limitando o valor mínimo em zero. O PPMI tem valores altos para eventos pouco frequentes (palavras muito raras). Podemos representar o PPMI de uma matriz termo-contexto através de grafos. Foram apresentados também, na aula, exemplos práticos de construção de matriz termo-contexto e de cálculo de PMI e PPMI em linguagem Python.
Marcelo de Souza Pena Desafio 2 - lista de publicações importantes na ciência da computação, pegar um artigo da lista e resumir (recuperação de informação é a área mais relacionada à matéria). Pode entregar até o último dia do quadrimestre (todos os desafios). Colocar informações sobre o artigo, como autor, URL, etc. Começando a aula 10 sobre a terceira parte de semântica e similaridade de palavras, voltando ao assunto de matrizes, desta vez matrizes termo-contexto, que costumam ser bastante esparsas (grande número de zeros). O ideal é reduzir dimensionalidade, o que deve ser o assunto da próxima aula. Revisando um pouco de matriz termo-contexto que mostra a similaridade entre palavras com base na proximidade entre elas, semanticamente. O grande número de zero se dá pelo fato de muitos termos sequer aparecerem em alguns documentos. Na matriz termo- contexto a dimensão é o tamanho do vocabulário pelo tamanho do vocabulário e cada célula registra o número de vezes em que as duas palavras ocorrem juntas em um determinado corpus de treinamento. Geralmente usa-se 7 palavras para ver se são similares, as três anteriores e as três posteriores. Usar menos palavras ajuda a apontar semelhanças sintáticas, enquanto usar mais aponta semelhanças semânticas. Palavras usadas no mesmo contexto costumam ter significados similares, como rápido e veloz, por exemplo. Existem exemplos de corpus no Kaggle. Vimos três códigos: o primeiro retira as stopwords, lê documentos, cria um vocabulário e conta os pares de palavras tomando cuidado com as bordas ao pegar 7, o segundo cria um grafo mostrando a relação entre palavras com diferentes valores de k, não apenas 7. Pode ser bom procurar por vector semantics, onde as palavras são representadas por números. PMI e PPMI permitem mensurar o quão informativa uma palavra é dependendo do contexto (pode ser bom remover stopwords). Em determinado contexto, certos termos ocorrerem juntos podem não trazer tanta informação. Medida de informação mútua, x e y são duas palavras e a medida diz a quantidade de informação que uma variável trás da outra. Probabilidade é o número de vezes em que ambas as palavras co-ocorrem e divide pela probabilidade de encontrar cada uma dessas palavras. Utilizar corpus pequenos demais resulta em valores não confiáveis. No PMI valores negativos indicam uma frequência menor do que esperada, já o PPMI substitui valores negativos por zero. O teste da aula foi para calcular o PPMI de alguns termos de uma matriz. Existem algumas formas de normalização que devem ser tratadas empiricamente para saber qual o melhor, como adicionar dois em toda célula da matriz pra não ter zeros. Algoritmo 3 calcula o PPMI só que inicializa a matriz com 2 e constrói o grafo. Assim é possível mostrar as palavras similares em um grafo. Próximas aulas veremos rotulação de palavras em verbos, artigos, adjetivos, etc.
Jairo da Silva Freitas Junior Na aula 10, com o tema "Semântica e similaridade de palavras: Parte III: Matriz termo-contexto", iniciamos recapitulando o que é uma matriz de co- ocorrência termo-documento, que é uma matriz |V| x |D|, onde V é o conjunto das palavras do vocabulário e D os documentos analisados. Duas palavras são similares se seus vetores (linhas) são similares. Analogamente dois documentos são similares se s seus vetores (colunas) são semelhantes. Como a similaridade considera todas as palavras do vocabulário, os vetores resultantes são esparsos. Em sala vimos algumas imagens que ilustram os vetores esparsos o que abriu espaço para uma discussão de eficiência no uso de memória, afinal para tantos elementos nulos não faz sentido alocar tanto recurso. Uma forma possível de contornar isso é empregando matrizes termo-contexto (sinônimos: matriz termo-termo e matriz palavra-palavra), que são matrizes |V| x |V|, onde V é o conjunto de palavras do documento, reduzindo assim a dimensionalidade do problema. Ou mesmo empregar um número reduzido de documentos. Uma outra forma é reduzir o contexto a uma janela móvel em torno de cada palavra analisada. A hipótese desta última abordagem é que palavras similares co-ocorrem em distâncias (de palavras) pequenas. O professor apresentou alguns exemplos para ilustrar essa hipótese usando o Corpus Brown, de 1960, coletado pela Brown University, que contem 500 amostras em inglês catalogadas em 15 categorias e pioneiro na área de linguística computacional. Outros corpora sugeridos (inclusive para o projeto final) são os do Kaggle. Ainda, fizemos alguns exemplos em Python, usando principalmente NumPy para armazenamento das matrizes e vimos que janelas de contexto maiores tendem a resultar em matrizes menos esparsas e grafos mais conexos de palavras.O último assunto da aula, sobre o qual inclusive fizemos atividade (ou teste), foi Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI), que se baseia na cálculo de informação mútua, insto é, dado duas variáveis aleatórias X e Y, qual a dependência entre elas. Matematicamente, entretanto, o cálculo é simples e é logaritmo base 2 da razão entre a probabilidade conjunta de X e Y sobre o produto de suas probabilidades separadas, o que pode ser calculado via contagens. Como o logaritmo pode ter valores de menos infinito a mais infinito, sendo que valores negativos significam que os eventos ocorrem com menos frequência do que ao acaso, é comum usar PPMI, que joga os valores negativos para zero. Algumas técnicas podem ser aplicadas para melhorar o resultado, sendo a principal delas a suavização (k smoothing e Laplace smoothing). Por último e não menos importante, o professor enunciou o segundo desafio, valendo 0.5 pontos na média final: um resumo de publicação científica descrita na wikipedia como uma das mais importantes em ciência da computação.
Diego Pereira de Lima Na aula do professor Jesus Mena do dia 11/07 foi abordado conceitos sobre semântica e similaridade de palavras e matriz de termo-documento. Retomando a aula anterior é possível identificar a similaridade entre os termos ou entre os documentos analisando se os vetores na matriz termo-documento são similares. Entretanto, há algumas particularidades a serem consideradas como, a similaridade considera todas as palavras presentes em todos os documentos, desta forma a matriz pode ficar esparsa e sua dimensionalidade depende do vocabulário em análise e da quantidade de documentos. Lembrando-se que a matriz esparsa é uma matriz com uma grande quantidade de termos nulos em sua composição (como foi exemplificado em aula). Nesta aula, a abordagem diferenciou-se das passadas pois foi introduzido o conceito da matriz termo- contexto, onde é possível identificar em cada célula da matriz a co-ocorrência entre as palavras dado um corpus de treinamento. Assim, pode-se utilizar para a construção desta matriz palavras que estão localizadas umas próximas as outras, pois geralmente palavras que são semanticamente similares estão em contextos próximos em um texto. Neste sentido foi evidenciado alguns exemplos de codificação para que pudesse-se extrair as palavras entorno daquela a ser analisada, sendo as janelas de 1, 3, 7 termos de tamanho. Exemplificando com exemplos de tamanho 3 e tamanho 10, é possível notar que conforme o maior tamanho da janela a matriz torna-se menos esparsa, e visualizando os grafos conexos entre os termos, dado que o peso da aresta é a frequência entre a proximidade das palavras é fácil notar que quanto maior a janela maior a conexão entre os termos. Também foi abordado a similaridade baseada na distribuição das palavras nesta aula. Nesta abordagem, uma palavra pode ser representada em um vetor de números, onde esta é calculada a partir da distribuição de palavras ao redor dela. Porém como a frequência de palavras podem influenciar negativamente em casos que sempre aparecem as mesmas palavras em um contexto, mesmo removendo as stop words, foi introduzido o conceito de informação mutua. A informação mutua é uma forma de melhor representar a medida de quanto um termo depende de outro, ou em outras palavras, a quantidade de informação de uma variável aleatória sobre outra, considerando o logaritmo da relação de probabilidades entre os termos se ambos forem independente. Sendo que o exercício proposto nesta aula abordava este assunto, necessitando calcular o PMI de duas palavras dado a matriz de co- ocorrência dos termos. E também, foi comentado sobre o PPMI o qual só considera valores positivos. Por fim foi proposto o desafio dois onde tem como objetivo somar 0,5 ponto à media final dado um resumo de um artigo relacionado a matéria de processamento de linguagem natural.
Amanda Cruz Francesconi A Matriz termo-documento, vista nas aulas anteriores, considera todas as palavras presentes nos documentos, isso gera vetores esparços, ou seja, a matriz apresenta muitos zeros e poucas células onde o valor não é nulo. Assim se faz necessário o conhecimento de estruturas de dados mais sofisticados,por exemplo, em uma matriz 5 por 5 onde somente 3 elementos são registrados poderia utilizar-se uma lista ligada ou duplamente ligada. Essas técnicas são muito utilizadas em computação gráfica para tentar utilizar menor espaço possível. Uma alternativa é a matriz termo-contexto (palavra-palavra ou termo- termo) armazena a relação entre palavras baseada em um contexto. Um contexto pode ser por exemplo um parágrafo ou quatro palavras antes e depois da palavra analisada. O objetivo é identificar palavras similares mesmo com a maior distância de Hemming possível entre elas, ou seja, não havendo similaridade semântica, essa técnica funciona pois palavras similares costumam estar próximas em um texto. A matriz tem forma vocabulário vs vocabulário e cada célula representa a frequência. Um corpus que pode ser utilizados para testar essa técnica é o Corpus Brown (1960) que contém diversos textos, já classificados. Um dos algoritmos possíveis para resolução consiste em 1.retirar as stopwords (pois essas não trazem significado semântico e costumam não ser associados a outras palavras), 2.criação do vocabulário e 3.construção do contexto lembrando de tratar as bordas pois por exemplo se o contexto escolhido for de 3 palavras, a primeira palavra não terá três palavras anteriores para ser feita a comparação, logo deve-se utilizar como contexto nesse caso somente as 3 palavras posteriores a ela. Quanto mais palavras são consideradas como contexto (k) menos esparsa é a matriz pois cada palavra analisada é comparada com mais palavras em seu entorno. Uma das estratégias para diminuir o tamanho é utilizar o PMI (pointwise mutial information) ou PPMI (positive pointwise mutial information) que medem o quão informativa é a palavra. Por exemplo as palavras "de", "em", "para" não são relevantes pois aparecem em quase todo contexto em geral, assim como "método", "proposta", "análise", "estudo" não são relevantes para um contexto de pesquisa científica. É uma medida baseada na medida de informação mútua, ela representa a quantidade de informação que uma variável contém sobre outra variável, mede quão frequente dois eventos ocorrem se ambos são independentes: a probabilidade do log na base dois da probabilidade das duas palavras aparecerem no mesmo contexto dividida pela probabilidade de encontrar cada uma das palavras. O PPMI é substitui os valores negativos do PMI por zero ee resulta em valores altos para eventos poucos frequentes. Existem formas de normalização que resultam em uma matriz completa, sem elementos nulos, extraindo uma maior similaridade semântica entre as palavras presentes no corpus.
Rafael Augusto Zanatta Semântica e similaridade de palavras: Parte III: Matriz termo-contexto. Dois documentos são similares (semântica) se os vetores são similares. Também temos que se duas palavras são similares semanticamente os vetores são similares, porém, existem muitos vetores com elementos nulos (vetores esparsos) no qual o tamanho do documento depende do número dos documentos, assim podemos calcular essa similaridade considerando todas as palavras presentes em todos os documentos. Matriz termo-documento : O mais natural seria considerar os nomes como: Matriz termo- termo, Matriz palavra-palavra, Matriz termo contexto todos esses nomes são denominados como sinônimos, mas a termo contexto armazena a relação entre as palavras baseada em um contexto. Cada célula da matriz registra o número de vezes que a palavra (da linha) co- ocorre com outra palavra (da coluna) em um contexto, dado em um corpus de treinamento. O contexto de tamanho um, por exemplo, contamos uma palavra pra frente e uma pra trás, isso seria o contexto. Quanto maior o contexto a similaridade que observamos é semântica e quanto menor o contexto a similaridade seria sintática. Utilizamos geralmente uma janela de 1 a 7. Temos como exemplo de um contexto local das palavras as seguintes frases: O carro é rápido? Sim, ele é muito veloz! O manuscrito é longo. Geralmente o tamanho é menor. Similaridade baseada em distribuição de palavras. Na literatura isso é conhecido como: Distributional semantics, vector semantics, Vector-space semantics. O significado de uma palavra é calculado a partir da distribuição de palavras que estão ao redor dela. Nos tópicos anteriores vimos que uma palavra era representada por um índice em um vocabulário, agora nesta abordagem as palavras são representadas como um vetor de números. (embedding into a vector). Apenas a contagem das palavras não é uma boa escolha para determinar a similaridade entre as palavras, por isso, removemos as stop words, pois não são informativas o suficiente. Por exemplo, “de” e “em” são muito frequentes e podem não ajudar em discriminar similaridade. A melhor ponderação ou medida de associação entre palavras deve nos dizer com que frequência mais do que o acaso as duas palavras co-ocorrem. Nessa aula também aprendemos sobre a Pointwise Mutual Information (PMI) que é uma medida baseada na medida de Informação Mútua , ou seja , é uma medida que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória, essa é uma medida de dependência entre variáveis aleatórias e sobreposição de informações entre duas variáveis aleatórias. Com essa técnica verificamos o quão frequente dois eventos (x e y) ocorrem se ambos são independentes.
Willian Teruya Kimura No dia 11/07, o professor revisou o conteúdo referente a matriz de co- ocorrência para comparação termo-documento. Para início de aula, foi levantado uma discussão de como seria considerado de maneira mais natural a matriz termo-documento, que seria por meio de: 1 – Matriz termo-termo, matriz palavra-palavra, ou matriz contexto-contexto, sobre a qual pode ser interpretado como sinônimo, sua dimensão equivale a |V|x|V|, e cada célula da matriz registra o número de vezes que a palavra da linha co-ocorre com outra palavra da coluna em um contexto, dado um corpus de treinamento. Matriz termo-contexto se trata em trabalhar com um contexto reduzido, sendo que palavras que estão em contextos iguais, possuem uma tendência em ser semanticamente similares, um exemplo para execução de tal contexto seria parágrafos ou usar 4 palavras antes e depois de uma palavra específica. Um exemplo importante se trata do Corpus Brown (1960), onde se trata de um corpus geral em que contém 500 amostras em inglês, cada uma contendo mais de duas mil palavras, em que mais de um milhão de palavras de textos publicados nos Estados Unidos em 1961 foram categorizados em 15 categorias. Para compreender a questão da matriz termo-contexto, foi aplicado no Corpus Brown, na qual correlaciona o quão uma palavra está presente dado um contexto, sendo este representando um vetor de números. A dimensão é proporcional ao tamanho do vocabulário a ser levado em consideração. Em seguida, fora apresentado exemplos práticos dela, explicando sobre a leitura de documentos até como deve ser adicionado os vocábulos em um dado contexto. Após alguns exemplos, fora apresentado o conteúdo referente a Similaridade baseada em distribuição de palavra, que, em tópicos anteriores, as palavras eram representadas por índices, e, a partir da abordagem apresentada no dia, serão representados como vetor de números. Neste vetor, cada célula dela indica uma frequência. A partir disso, foram apresentados o Pointwise Mutual Information (PMI) e o Positive Pointwise Mutual Information (PPMI), sendo ambas medidas que permitem mensurar a quão informativa é a palavra de contexto, dado um alvo, no caso uma palavra. PMI é uma medida baseada na medida de Informação Mútua, em que mensura a quantidade de informação que uma variável aleatória tem em relação a uma outra variável do mesmo comportamento. Tendo a Informação Mútua como referência, o PMI mede de maneira associativa quão frequente dois eventos podem ocorrer se ambos são independentes. Já o PPMI se trata de todos os valores positivos da medida PMI, sendo os valores negativos substituídos por 0.
Yago Sorrilha Semântica e similaridade de palavras: Parte III: Matriz termo-contexto Nas aulas anteriores vimos matrizes de co-ocorrência, do tipo termo-documento, onde dois documentos são similares se os vetores são similares e os vetores são as frequências em que aparecem as palavras. Desvantagens: A similaridade entre palavras considera todas as palavras presentes em todos os documentos; Os vetores tem muitos elementos nulos (vetores esparsos) O tamanho do vetor depende do número de documentos O mais natural a se considerar: matriz termo-termo; matriz palavra-palavra; matriz termo-contexto No caso da matriz termo-contexto cada célula da matriz registra o número de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto, dado em um corpus de treinamento. Exemplos de contexto local: o carro é rápido? sim, ele é muito veloz! (rápido e veloz) Foi apresentado o Corpus Brown, que é um corpus criado por volta de 1960 que contem 500 amostras em inglês e é um corpus pioneiro na área de linguística computacional. Há também outros corpora disponíveis para consulta. Foi apresentado alguns exemplos e também uma parte prática em python para uma matriz termo-contexto. Similaridade baseada em distribuições de palavras (distributional semantics, vector semantics, vector-space semantics) O significado de uma palavra é calculado a partir da distribuição de palavras ao redor dela. Anteriormente representávamos palavras por um índice em um vocabulário mas, nessa abordagem as palavras são representadas como um vetor de números (embedding into a vector). Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI) Ambas medidas permitem mensurar quão informativa é a palavra de contexto, dada uma palavra (alvo). A melhor ponderação ou medida de associação entre palavras deve nos dizer com que frequência mais do que o acaso as duas palavras co-ocorrem. Em um contexto de pesquisa científica, por exemplo, as palavras: "método", "análise" não são informativas pois estão presentes em quase todos os contextos de pesquisa. PMI é uma medida baseada na medida de informação mútua: é uma medida que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória; é uma medida de dependência entre variáveis aleatórias; é uma medida de sobreposição de informações entre duas variáveis aleatórias. PMI é uma medida de associação que mede quão frequente dois eventos (x e y) ocorrem se ambos são independentes. Para palavras, mede o quanto duas palavras estão associadas. Ao final da aula, foi realizado um exercício de cálculo de PMI e houve uma apresentação de um novo exercício prático em python com PPMI
Eduardo Haberler Cardoso A décima aula de processamento da linguagem natural, ministrada pelo professor Jesus no dia 11 de julho foi continuação das últimas duas aulas, tendo como tema principal a semântica e similaridade de palavras, com foco nas matrizes termo-contexto. Iniciamos retomando os conceitos da matriz termo-documento, que já foi exaustivamente definida em resumos anteriores e trabalhada nas últimas duas aulas, onde duas palavras são similares se os vetores de dois documentos são similares. Nesta abordagem, a similaridade entre as palavras considera todas as palavras dos documentos da matriz. Em geral, estes vetores possuem muitos elementos nulos, tornando a eficiência de armazenar estes vetores esparsos, baixa. Uma matriz ou vetor esparso, é aquele que possui um número majoritário de elementos nulos. Nesta aula, o professor apresentou uma nova matriz, a matriz termo-contexto que inclusive seria mais natural considerarmos, assim como as outras duas matrizes: termo-termo e palavra- palavra. A matriz termo-contexto considera em cada elemento o número de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto, dado um corpus de treinamento. Neste modelo, uma palavra é representada por um vetor de números que consideram um contexto. As janelas, que definem quantas palavras serão consideradas antes e depois da palavra em questão para indicar a similaridade,podem ser de tamanhos variados, sempre ímpares, para considerarmos o mesmo número de palavras antes e depois da palavra em questão. A principal vantagem desta abordagem frente à outra que vimos (a matriz termo-documento) é que a contagem de palavras não é um bom critério de escolha para determinarmos se duas palavras são similares, neste caso estamos levando o contexto em consideração, ou seja, o significado de uma palavra é calculado a partir da distribuição de palavras ao redor dela e não apenas o número de vezes que ela surge no corpus analisado. Como forma de medirmos quão informativa é a palavra de contexto, dada uma palavra analisada, temos as medidas Pintwise Mutual information (PMI) e a Positive Pointwise Mutual Information (PPMI). Estas medidas nos fornecem a frequência mais do que o acaso duas palavras co-ocorrem. O PPMI leva em consideração o PMI para ser calculado. O PMI é uma informação mútua, ou seja, é uma medida que representa a quantidade de informação que uma variável aleatória contém sobre outra. As fórmulas envolvidas nos cálculos, assim como muitos exemplos ilustrativos e de códigos estão disponíveis no material da aula 10, no site da disciplina.
Lucas Zanoni de Oliveira No início aula do dia 11/07/19 foi apresentado o Desafio 2 que se consiste na realização de um resumo nos moldes dos feitos sobre as aulas, porém tendo como tema um dos artigos importantes para a ciência da computação, muito similar ao primeiro desafio. Como visto na aula anterior temos que em uma matriz termo-documento a similaridade se dá entre palavras considerando todas aquelas contidas em todos os documentos, onde os vetores com muitos elementos nulos são definidos como esparsos e o tamanho do vetor pode depender do número de documentos existentes. Continuando com o tópico de Semântica e similaridade de palavras, temos agora a terceira parte referente à matriz termo-contexto, que diferentemente do caso anterior se dá por meio do uso de um contexto muito mais enxuto, como por exemplo parágrafos, palavras entes ou depois de determinado elemento e assim por diante. Um exemplo seriam as frases do diálogo “o carro é rápido?” e “sim, ele é muito veloz!”, onde as palavras “rápido” e “veloz” apresentam similaridade dentre elas dado o contexto da conversa. Ainda nessa linha foi apresentado o Corpus Brown que foi criado em 1960, sendo constituído de 500 amostras e considerado pioneiro na área linguística computacional. Após isso, alguns exemplos práticos foram realizados. Em seguido o conceito da similaridade com base na distribuição de palavras foi mostrado, onde foi dito que o significado de uma palavra é dado a partir da distribuição das palavras ao seu redor, sendo as palavras representadas por um vetor de números, visto que antes era representado por um índice em um vocabulário. Posteriormente foram passados os conceitos de PMI (Pointwise Mutual Information) e PPMI (Positive Pointwise Mutual Information), sendo ambos medidas para mensurar quão informativa uma palavra de contexto é, dado uma segunda palavra alvo. O primeiro termo é medido com base na Informação Mútua que é uma medida que representa a quantidade de informação que uma variável possui sobre outras, sendo ambas aleatórias, podendo variar de – infinito a + infinito (não são confiáveis para corpus pequenos) e possuindo a função PMI(w,c) = log2 P(w,c)/P(w)P(c). O segundo termo por sua vez é o positivo do primeiro e tendo como função PPMI(w,c) = max(PMI(w,c),0). Finalmente a atividade foi feita em sala de aula, onde era pedido o cálculo do PPMI de certas palavras, e algumas demonstrações práticas foram apresentadas.
Ruan Fernandes Foi comentado que os desafios (os 3) poderão ser entregue até o final do quadrimestre. Matriz: termo-documento: foi mostrado um exemplo de matriz esparsa num gráfico (pontos pretos x brancos conforme valor ou nulo). Os vetores normalmente tem muitos elementos nulos. Esses, são chamados de "vetores esparsos". O tamanho do vetor depende do nº de documentos. Cada célula da matriz registra o número de vezes que uma palavra (linha) é encontrada com outra (coluna) em um contexto. A similaridade entre palavras considera todas as palavras presentes em todos os documentos. Matriz: termo- contexto: obras similares normalmente ficam próximas, assim como palavras que estão em contextos similares, tendem a ser semanticamente similares. É necessário analisar não a semelhança da grafia, mas sim a semântica. Brown Corpus: estudo estatístico-computacional realizado em 1960, de um compilado selecionado de textos norte-americanos, totalizando cerca de 1 milhão de palavras de diversas fontes (cerca de 500 textos), organizados em 15 categorias; é pioneiro na área de linguística computacional. Para estudos costumam ser usadas janelas de tamanho variando de 1 a 7 posições em volta, dentro do vetor. Foi então apresentado um código python para análise do vetor dentro de documento, em torno de uma palavra. Quando k é maior, a matriz se torna menos esparsa. Similaridade baseada em distribuição de palavras - Distributional semantics, vector semantics, vector-space semantics; o significado de uma palavra é calculado a partir da distribuição de palavras ao redor dela. As palavras são representadas como um vetor de números, não um índice em um vocabulário. Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI): ambas permitem mensurar quão informativa é a palavra dentro do contexto. É uma medida baseada na medida de informação mútua (medida que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória). É uma medida de dependência entre variáveis aleatórias e de sobreposição de informações entre duas variáveis aleatórias. PMI mede o quão frequente dois eventos (palavras) ocorrem se ambos são dependentes. PMI tem valores entre -inf e +inf, sendo os negativos implicantes que ocorrem com menos frequência do que o esperado. Os valores de PMI não são confiáveis para corpus pequenos. O PPMI adota apenas valores positivos, substituindo os negativos por zero. Foi então feita a atividade para calcular o PPMI de uma matriz termo-contexto. PPMI tem valores altos para eventos pouco frequentes.
Denildo Veloso Braga Aula 10: Semântica e similaridade de palavras: parte III: matriz termo- documento. Desafio 2: no wikipedia, existe uma lista de publicações importantes em ciência da computação. O desafio consiste em ler um desses artigos e resumir, nas mesmas regras dos resumos das aulas. Responder: por que o artigo é considerado importante? Data limite: último dia do quadrimestre. Muitos dos assuntos em processamento de linguagem natural nasceram desses artigos importantes, na área de recuperação de informação. Problema com a matriz termo-documento: pode ser esparsa, conter muitos zeros. Estruturas de dados sofisticadas podem ser usadas para evitar desperdiçar espaço. As definições matriz termo-termo, palavra-palavra e termo-contexto são sinônimos. Armazena a relação entre palavras dado o contexto. Esse contexto pode ser a vizinha. Ideia: obras similares estão, geralmente, próximas. Corpus Brown: corpus de 1960 com mais de 500 textos, cada um contendo mais de 2000 palavras. A matriz palavra-contexto é uma matriz que relaciona cada palavra com as demais, o elemento na linha i e coluna j pode ser a quantidade de vezes que uma palavra i aparece à uma distância +- n da palavra j. O programa Teste1.py recebe um documento e retorna o vetor de palavras de cada palavra do vocabulário, esse vetor é a lista de palavras à uma distância +- 3. O programa Teste2.py mostra a relação entre palavras de um documento. A similaridade baseada em distribuição de palavras é conhecida na literatura como como distributional semantics ou vector semantics. Apenas contagem de palavras, não é uma boa abordagem, pois, stopwords podem não ajudar na identificação de similaridade. Técnicas, como Pointwise mutual information (PMI), medem quando uma palavra é informativa no texto. É uma medida baseada em Informação Mútua. PMI mede o quanto duas palavras estão associadas. Se o valor for negativo, significa que o associação ocorre menos que o esperado. Uma alternativa é o Positive Pointwise Mutual Information, que é o máximo entre o PMI e 0. Não é confiável para corpus pequenos. Um problema é que o PPMI tem valores altos para eventos pouco frequentes. Algumas técnicas para evitar esse problema são, aplica um alfa no cálculo (testes empíricos mostram que o melhor valor de alfa é 0.75) ou aplicar uma suavização e, em vez de começar com 0, começar com k. O programa Teste3.py aplica um PPMI para testar similaridade entre palavras.
Paulo Alexander Simoes Semântica e similaridade de palavras: Parte III: Matriz termo-contexto Relembrando o conceito. Dois documentos são similares(semântica) se os vetores são similares. A dimensão de um vetor é dado pelo tamanho do vocabulário, N^|v|. Duas palavras são similares(semanticamente) se os vetores são similares, neste caso a dimensão do vetor é dada pelo número de documentos, N^|d|. A similaridade entre palavras considera todas as palavras presentes em todos os documentos. Os vetores tem muitos elementos nulos(vetores esparsos). Uma matriz ou vetor esparso são estruturas de armazenamento de valores que possuem muitos valores nulos. O mais natural seria considerar Matriz termo- termo, matriz palavra-palavra, matriz termo-contexto. Dimensão |v| x |v|. Onde cada célula da matriz registra o número de vezes que a palavra(da linha) co- ocorre com outra palavra da coluna em um contexto, dado em um corpus de treinamento. O Corpus Brown, criado na década dos 1960 é um corpus geral que contém 500 amostrar em inglês. Este é um corpus pioneiro na área linguística computacional. Uma palavra é representada por um vetor de números que consideram um contexto. A estrutura de dados deve ser a mais eficiente possível, sendo capaz de armazenar um vetor esparso de tamanho 20 ou 50 mil elementos. Similaridade baseada em distribuição de palavras. Na literatura isso é conhecido como: distributional semantics, vector semantics, vector-space semantics. Onde o significado de uma palavra é calculada a partir da distribuição de palavras que ao redor dela. Em tópicos anteriores uma palavra era representada por um índice em um vocabulário, já nessa abordagem as palavras são representadas como um vetor de números. Outro é que apenas a contagem de palavras não é boa escolha para determinar se duas palavras são similares, pois em muitos casos algumas palavras como preposições por exemplo são muito frequentes e podem não ajudar a discriminar similaridade entre palavras. Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI). Ambas as medidas são maneiras de mensurar quão informativa é a palavra de contexto, dada uma palavra(alvo). Isso é importante pois palavras como preposições ou conjunções... como por exemplo ( “de”, “em”, “para”, “quem”, “está”, “eles”, “nossos") que aparecem frequentemente nos textos não são informativas. A melhor ponderação ou medida de associação entre palavras deve nos dizer com que frequência mais do que o acaso as duas palavras co-ocorrem.
Pedro Ricardo Bronze Matriz esparsa é uma matriz na qual a quantidade de zeros é consideravelmente maior do que a quantidade de valores maiores que zero. Em se tratando de NLP podemos ter matrizes enormes com um vocabulário(linhas) amplo e muitos documentos(colunas). O efeito, nestes casos, de esparsidade é claro uma vez que nem todas as palavras aparecem em todos os documentos. Uma forma importante de abordar o problema é aprender a utilizar estruturas mais sofisticadas para aumentar eficiência. A Matriz termo-contexto por exemplo é uma tentativa de abordar este problema de forma a reduzir o escopo de palavras e documentos a se considerar na matriz de similaridade. Nesta matriz cada celular registra a co-ocorrência de palavras da linha com outras palavras da coluna em um contexto. Podemos restringir o contexto tal que este consista em grupos de documentos, um único documento ou até mesmo parágrafos. O que justificaria a utilização de contextos menores é a ideia de que obras similares são geralmente mais próximas, a semântica de palavras em contextos similares tende a ser similar. Pioneiro na área de linguística computacional o Corpus Brown criado na década de 1960 organiza 500 amostras de documentos com mais de 1 milhão de palavras e 15 categorias(rótulos) de documentos. Outro corpus compreende o site Kaggle, conhecido de cientistas de dados e aspirantes. Uma opção de análise baseia-se na criação de janelas de uma certa quantidade de palavras para realizar a contagem de co-ocorrência de certos termos. Geralmente utilizam-se janelas de 1 a 7, totalizando um contexto de 15 palavras. Anteriormente palavras eram representadas por um índice de dicionário, na presente abordagem elas são representadas por vetores (word embeddings), similaridade de vetores desta forma indicaria potencial similaridade de palavras. (Positive) Pointwise Mutual Information é uma técnica para evitar equívocos ao analisar a co-ocorrência de termos que em determinados contextos seria pouco informativa. Esta medida se baseia em calcular a probabilidade de co-ocorrência de termos em determinado contexto dado que são independentes. PMI(w,c) = log(P(w,c)/P(w)*P(c))Estes valores são mais confiáveis em contextos menores. Valores altos que surgem em eventos raros de co-ocorrência de palavras podem ser mitigados ponderando baseado na contagem de ocorrência dos termos envolvidos. Adicionar um termo de smoothing (K/Laplace), no test3.py essa solução é implementada.
Lucas Ferraz Nicolau Dando continuidade ao conteúdo das aulas anteriores, segue-se nessa aula sobre semântica e similaridade de palavras, em particular, sobre a matriz termo- contexto. Sabemos que a matriz termo-contexto relaciona a quantidade de ocorrências de várias palavras em diferentes corpora, possibilitando comparar a similaridade tanto entre termos quanto entre documentos. Entretanto, esta comparação considera sempre todos os corpora de modo que, sendo a ocorrência de uma palavra muitas vezes nula num corpus, a matriz será esparsa, tornando- se uma estrutura ineficiente para processamento da informação. Uma estrutura de dados mais sofisticada para esta tarefa poderia ser uma matriz termo-termo (ou palavra-palavra). Esta nova matriz pode considerar a co-ocorrência de termos em um corpus onde, por exemplo, cada célula indica a quantidade de documentos que contém as duas palavras simultaneamente. Outras tentativas de otimização da estrutura utilizada para análise dos dados poderiam sugerir apenas uma diminuição do contexto, por exemplo, reduzindo textos completos a parágrafos. Esta pode ser uma abordagem interessante para agilizar o processamento, analisando o contexto local das palavras. Para isso, existem diversos corpora que podem ser utilizados como o corpus Brown, construído com diversos textos de diferentes categorias, ou outros datasets encontrados, por exemplo, no Kaggle. Verifica-se neste tipo de análise que a similaridade de palavras que costumam aparecer próximas se trata de uma relação sintática enquanto, em palavras mais distantes, a similaridade ocorre em nível semântico. Outra técnica para análise de similaridade seria por distribuição de palavras, também conhecida na literatura como distributional semantics ou vector semantics. Nesta abordagem, as palavras são representadas como um vetor de números e seu significado é calculado a partir da distribuição de palavras ao seu redor. As técnicas de Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI) podem ser utilizadas para mensurar quanto uma palavra é informativa no contexto em que ela se encontra. Se baseiam no conceito de Informação Mútua: uma medida de dependência entre variáveis aleatórias que, em PLN, mede o quanto duas palavras estão associadas. Estas medidas podem auxiliar na detecção de palavras que agem como stopwords em contextos específicos e a encontrar as palavras características de cada documento de um conjunto de textos similares. Para melhor eficiência da técnica, são utilizadas estratégias de suavização, como add-k smoothing e Laplace smoothing, e redução de viés.
Marcelo Schirbel Gomes Aula 10 - Matriz Termo-Contexto Dois documentos são similares se os vetores são similares. E para isso precisamos considerar todas as palavras presentes em todos os documentos. E devemos considerar que temos muitos elementos nulos nas matrizes, caso isso ocorra teremos uma matriz esparssa. E ao trabalhar com palavras, o número de linhas é o tamanho do vocabulário e o número de colunas é o número de documentos. Esses elementos das matrizes apresentam muitos erros. E como isso é explorado em diversas áreas da ciência, devemos conhecer muito bem a estrutura de dados. Cada célula da matriz regidtra o número de vezes que a palavra co-ocorre com outra palavra em um contexto dado um corpus de treinamento. O contexto poderia ser o documento, ou a distância entre as palavras. Por exemplo as palavras 'rápido' e 'veloz'. São sintaticamente muito distintas, mas semanticamente muito próximas. Nosso trabalho é identificar palavras que são semelhantes semanticamente, ainda que a distância entre elas seja grande. E agora temos que uma palavra vai ser um vetor indicando a proximidade com as outras palavras do vocabulário, sempre com o contexto ao seu redor. Quanto maior o tamanho do contexto, maior será a similaridade semântica, quanto menor o tamanho do contexto considerado, maior a similaridade sintática. Quando o termo k, do tamanho do contexto, for maior, teremos uma matriz menos esparssa. Se o k for pequeno, a matriz será o mais esparssa possível. Logo, temos que o significado de uma palavra é calculada a partir da distribuição de palavras que há ao redor dela. Nessa abordagem as palavras são representadas por números, o que facilita em cálculos e análises. E para isso, podemos ponderar na associação entre as palavras, que nos dizem com que frequência as palavras estão co-ocorrendo. PMI - Pointwise Mutual Information É uma medida que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória. Ou seja, mede a dependência entre variáveis aleatórias. Para PLN, podemos definir se duas palavras tem a probabilidade de estarem correlacionadas. Os valores podem ir de infinito negativo a infinito positivo. O negativo mostra que as coisas estão ocorrendo com menos frequência do que esperávamos, e para isso truncamos o valor em 0, pois não nos importa os valores menores do que isso.
Rodrigo Akiyama Abrantes Resumo 10 – Processamento de Linguagem Natural Da matriz de co-ocorrência, tem-se que duas palavras são similares semanticamente se os seus vetores são similares. O mesmo é valido para os documentos. A similaridade entre as palavras considera todas as palavras presentes em todos os documentos analizados. Os vetores gerados possuem muitos elementos nulos, sendo estes denominados vetores esparsos (onde existe grande quantidade de elementos de valor nulo em comparação aos com valor diferente de zero). O tamanho do vetor também dependerá do número de documentos. Utilizando estruturas de dados mais sofitsticadas, como matrizes termo- contexto de dimensão |V|x|V|. Nesta estrutura, cada celula da matriz registra o número de vezes que a palavra da linha co-ocorre com outra palavra da coluna em um contexto, dado um corpus de treinamento pré-definido. O contexto pode ser o documento. Cada celula representa o número de vezes que duas palavras estão presentes no documento. O significado de uma palavra é calculada a partir da distribuição de palavras ao seu redor. Nesta abordagem as palavras são representadas como um vetor de números, onde cada célula do vetor indica uma frequência de ocorrência. Apenas contagem de palavras não é uma boa escolha para a determinação da similaridade de duas palavras. Por isso se faz necessário o uso de técnicas como PMI e PPMI, que permitem mensurar quão informativa é a palavra de contexto, dada uma palavra alvo. Palavras como preposições e artigos são muito comuns em todo tipo de texto e, logo, não sõa informativas em quase todos os contextos. O mesmo ocorre para certos tipos de palavras, dependendo do contexto onde estão inseridos. Palavras como ingrediente, prato e tempero não são muito informativas dentro de um contexto de culinária. A melhor medida de associação entre palavras deve dizer com que frequência mais do que o acaso as duas palavras alvo co-ocorrem. Essa medida é baseada na Informação mútua, que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória. Ela mede a dependência entre variáveis aleatórias e a sobreposição de suas informações. Seus valores vão de menos infinito até mais infinito. Valores negativos implicam que as coisas estão ocorrendo com menos frequência do que esperávemos.
Thiago Bruini Cardoso Silva A décima aula da disciplina teve como foco a ampliação do conhecimento sobre métodos de identificação do contexto semântico de palavras e expressões em textos. Da aula anterior, lembramos o conceito de matriz termo-documento, em que documentos podem ser representados cada um por vetor com a contagem da recorrência de palavras em seu corpo. No fim, documentos semelhantes serão representados por vetores semelhantes. O ponto negativo dessa abordagem é grande quantidade de palavras que aparecem em um documento Xn e não aprecem em outro documento Xm, o que leva a uma matriz termo-documento esparsa, não sendo possível utilizar estruturas de dados simples para representá-la dependendo do número de documentos a serem analisados e de seus tamanhos. Utilizando a ideia por trás da matriz termo-documento, pode-se chegar a outras estrutura, responsável essa por associar uma palavra ao contexto (palavras que ocorrem próximas da primeira), a matriz termo-contexto. Palavras são consideras no mesmo contexto que outra quando o ocorrem a uma distância pré- estabelecida da primeira, o que chamamos de janela. Na frase “A tartaruga esperta conseguiu enganar o coelho rápido”, para uma janela de 1, a palavra “conseguiu” está no mesmo contexto de “enganar” e “esperta”. Para uma janela de 2, além das palavras anterior, “tartaruga” e “o” também estariam no mesmo contexto que “conseguiu”. As relações entre palavras no mesmo contexto são representadas por contadores numa matriz de termos X termos e, por meio desses valores, pode ser traduzida para grafos representando as relações mais fortes. O nome que se dá para esse tipo de técnica na literatura é “vector semantics”. Uma palavra não é mais representada por um índice de vocabulário, mas por um vetor de seu contexto. Palavras consideradas “stopwords” terão grande relação com várias outras palavras. Para definir quais relações realmente são relevantes, podemos usar duas métricas: “Pointwise Mutual Information” (PMI) e “Positive Pointwise Mutual Information” (PPMI). Essas metricas importam-se mais com a frequência que duas palavras ocorrem juntas ao invés do acaso. No PMI, podemos ter valores negativos que indicam a ocorrência de palavras acontecendo menos vezes do que o esperado por acaso. O PPMI trata isso definindo valores menores que 0 como 0.
Caique de Camargo Aula do dia 11 de julho de 2019 sendo abordada a terceira parte do tema Semântica e similaridade, especificamente sobre Matriz termo-contexto. Foi realizada uma recapitulação das aulas anteriores sobre matriz de co- ocorrência. Uma matriz termo-documento considera a similaridade entre todas as palavras presentes em todos os documentos, gerando muitos elementos nulos ma matriz, que é denominada de matriz esparsa. O tamanho de cada vetor depende essencialmente da quantidade de documentos. Alguns algoritmos mais soisticados utilizam de outras formas de armazenar informação, que não a Matriz, para driblar a quantidade de informação irrelevante (nulos) como listas ligadas. Matriz termo-documento pode ser encontrada na literatura também como matriz termo-termo, matriz palavra-palavra ou matriz termo-contexto e cada célula da matriz registra o número de vezes que a palavra da linha co-ocorre com outra palavra da coluna em um contexto, dado em corpus de treinamento. Uma outra abordagem utiliza um contexto menor, como parágrafos ou um número k de palavras na vizinhança da palavra buscada. Um dos primeiros corpus criados e abertos para utilização é o Copus Brown, da universidade de Brown e criado em 1960, composto de 500 textos com mais de duas mil palavras cada um. Foram mostrados alguns exemplos teste de implementação para a criação de uma matriz termo-contexto e um segundo considerando uma vizinhança k. A similaridade baseada em distribuição de palavras, também conhecido como Disrtributional semantics, Vector semantics ou Vector Space-semantics, onde o significado de uma palavra é calculada a partir da distribuição de palavras que estão ao redor dela. O cálculo do PPMI (Positive Pointwise Mutual Information) é baseado no cálculo de PMI e permitem mensurar o quão informativa a palavra de contexto dada uma palavra alvo. É um valor propabilístico e que ignora as stopwords, leva em consideração a probabilidade de ocorrência total da palavra pela multiplicação das ocorrências verticais e horizontais do contexto. Um estudo, de Omer Levym Yoav Goldberg e Ido Dagan do departamento de ciência da computação da Universidade de Ban-Han, mostrou de forma empírica que existe uma aproximação para o cálculo de PPMI considerando um alpha, que pelo artigo é 0,75.
Matheus Dos Santos Pereira Resumo da aula 10, sobre Semântica e similaridade de palavras, referente a Matriz termo-contexto, Dois documentos são similares (semantica) se os vetores na matrix são similares, na orientação de vertical, e duas palavras são semelhantes se os vetores na matrix forem similares na horizontal, a similaridade entre palavras considera todas as palavras presentes em todos os documentos, os vetores tem muitos elementos nulos (vetores esparsos), e os tamanho do vetor depende do número de documentos. Cada celula da matriz registra o número de vezes que a palavra (da linha) co-ocorre com outra palavra (da coluna) em um contexto, dado em um corpus de treinamento. Não uise contextos pequeno, pois pode diminuir a eficiencia. Um corpus pioneiro na área de linguística computacional, é The Brown University Standard Corpus of Present-Day American English. Criado na decada dos 1960 é um corpus geral que contem 500 amostras em inglês. Ao todo 1,014,312 palavras de trabalhos publicacos nos Estados Unidos em 1961 (500 fontes), organizado em 15 categorias. O corpus está composto de 500 textos, cada um contendo mais de 2000 palavras. Depois disso foi dado exemplos de matrix termo-contexto com mais ou menos 7 palavras, e foi mostrado os codigos em python para a analise das matrix, no caso os exemplos focaram em noticias, tambem foi passaddo alguns ligares onde podemos achar corpus diversos para o projeto, e o desafio 2. Vimos um pouco de similaridade de palavras baseada em distribuição de similadades; O significado de uma palavra é calculada a partir da distribuição de palavras que ao redor dela. Em tópicos anteriores uma palavra era representada por um índice em um vocabulário. Nesta abordagem: as palavras são representadas como um vetor de números. Apenas contagem de palavras não é boa escolha para determinar se 2 palavras são similares. Ex. “de” e “em” são muito frequentes, e podem não ajudar em discriminar similaridade entre palavras. Por conta disso usamos o Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI) é um função que utiliza somatoria e logaritmo, para melhorar a nossa estimativa, inves de apenas fazer a contagem.
Guilherme Oliveira da Silva A aula 10 inicia-se com um breve recapitulação da aula anterior sobre matriz de coocorrência: termo - documento depois disso entramos em matriz esparsa introduzindo o termo e demonstrando alguns exemplos de seu uso e funcionalidades, voltando um pouco para matriz termo - documento pegamos o gancho e introduzimos a matriz de termo - contexto, explicando o que é como funciona e exemplos utilizando o Corpus Brown. Importante focar o Corpus Brown no resumo porque também foi-se contado um pouco da historia desse Corpus, um corpus bastante antigo criado em 1960. O professor também apresentou brevemente outros corpora. Logo após dos exemplos voltamos agora para a matriz de termo -contexto apresentado agora uma variação desse tipo de matriz. Partimos então para os testes utilizando código, dois testes foram apresentados e explicado seu funcionamento e mostrado a nós um caminho de como nós podemos fazer o nosso projeto. Após os testes apresentados em aulas partimos para o assunto da aula que é similaridade baseada em distribuição das palavras, após pegarmos todos os conceitos de matriz apresentados foi-se introduzido e apresentado esses modelos de similaridades e como podemos usar matriz para resolver esses tipo de problemas, contudo barramos em um problemas e para resolve-lo foi-se apresentado então o conceito de Pointwise Mutual Information(PMI) uma medida baseada em informação Mútua, foi-se explicado quais são os pontos de informação mutua e após apresentados os cálculos e apresentados as variantes como a PPMI, positive pointwise mutual e no fim como calculo em uma matriz de termo - contexto. Logo após a apresentação desses cálculos fizemos uma atividade utilizando as formulas e o que foi passado em aula para resolver o exercício, o professor deu um tempo para podermos resolver mais curto do que o usual pois os cálculos não eram muito complexos e difíceis. Depois da atividade o professor apresentou a resolução conceitual das respostas e as explicou e apresentou um teste em Python, apresentou também outras medidas de similaridade e por fim falou um pouco do desafio 2 que deverá ser entregue no final do quadrimestre.
Iasmin de Haro Pracchias A aula do dia 11/07/2019 tratou de continuar o assunto Semântica e Similaridade de palavras, relembramos o conceito de matriz termo-documento, onde cada linha representa uma palavra no vocabulário e cada coluna representa um documento de uma coleção de documentos, sendo que cada célula na matriz representa o número de vezes em que uma palavra em particular ocorre em um documento em particular. Cada linha dessa matriz também pode ser pensada como um vetor. Como o tamanho da matriz depende do número de documentos, e cada vetor na matriz pode ter um grande número de elementos nulos, matrizes muito grandes acabam se tornando esparsas (com muitos elementos nulos), para evitar este tipo de problema é aconselhável utilizar estruturas de dados mais sofisticadas para ocupar menos espaço. É mais comum utilizar a matriz palavra- palavra em que as colunas são palavras ao invés de documentos, e onde cada célula na matriz armazena o número de vezes em que a palavra da linha co- ocorre com a palavra da coluna em um contexto, onde este contexto pode ser, por exemplo, um documento. Ainda seria melhor utilizar um contexto menor do que um documento, como por exemplo, parágrafos, ou certa quantidade de palavras que estão em volta da palavra analisada. O professor nos apresentou o Corpus Brown, que é um corpus que foi criado na universidade de Brown na década de 60, foi pioneiro na área de linguística computacional, e possui 500 textos que têm mais de 2000 mil palavras cada. Vimos alguns exemplos de análises baseadas em janelas de palavras e algoritmos que podem fazer esta análise. Vimos o conceito de similaridade baseada em distribuição de palavras, onde o significado da palavra é calculado com base na distribuição das palavras ao redor dela, nesta abordagem as palavras passam a serem representadas como vetores. E por fim vimos o conceito de PMI e PPMI que são medidas que permitem mensurar quão informativa é a palavra de contexto, dada uma palavra alvo, e fizemos um atividade para exercitar este conceito.
Ramon Neres Teixeira Jardim No início da aula foi retomado o conceito de matriz de co-ocorrência, dessa vez para uma matriz termo-contexto e foi observado que estas são matrizes esparsas, ou seja, com alto número de células nulas. Isso se dá pelo fato de que muitas palavras não se relacionam, deixando grande parte da matriz zerada, fazendo necessário o uso de estruturas de dados mais sofisticadas. A matriz termo-contexto tem dimensão |V| x |V| e indica o número de ocorrências da palavra da linha da matriz dentro do contexto da palavra da coluna. Um contexto é uma região do texto que contenha a palavra em questão, podendo ser, por exemplo, um parágrafo ou um trecho com um determinado número de palavras antes e depois da palavra. Com isso, quanto maior o valor da célula na matriz, maior a relação entre as duas palavras, pois ambas aparecem com frequência próximas uma da outra. Na aula também foram apresentados alguns corpus, como o corpus Brown, que foi criado na década de 1960, contendo mais de um milhão de palavras em inglês. É pioneiro na área de linguística computacional. Outro apresentado foi o kaggle, um site para obter os mais diversos corpus. Também foram apresentados alguns algoritmos que geram uma matriz de co- ocorrência do tipo termo-contexto utilizando um contexto de k palavras ao redor do termo a ser calculado. Um problema ao utilizar contextos são as palavras com pouco significado, ou seja, palavras que não passam muita informação quando isoladas. Muitas delas aparecem em muitos contextos, tendo altos valores de correlação por acaso. Para resolver este problema, é utilizado o Pointwise Mutual Information (PMI), que é uma medida baseada na medida de informação mútua, que por sua vez é um grau de dependência entre variáveis aleatórias. O PMI mede o quão frequentemente dois eventos ocorrem se são independentes. A fórmula para seu cálculo resulta em valores entre mais e menos infinito, e é muito comum substituir os valores negativos por 0. Dessa forma, correlações com valor 0 são consideradas acaso.
Mayza Cristina da Silva Aula 10 Semântica e similaridade de palavras: Parte III: Matriz termo contexto Foi repassado algumas coisas já citadas na aula anterior para podermos relembrar o conteúdo e re associa-lo com o que veríamos nesta aula Matriz de co-ocorrência: Dois documentos são similares (semântica) se os vetores são similares Matriz: termo-documento A similaridade entre palavras considera todas as palavras presentes em todos os documentos. Os vetores têm muitos elementos nulos (vetores esparsos) O tamanho do vetor depende do número de documentos. O mais natural seria considerar como sinônimos as Matriz termo-termo ou Matriz palavra-palavra ou Matriz termo-contexto. Com uma dimensão v x v Cada célula da matriz registra o número de vezes que a palavra (da linha) ocorre novamente com outra palavra (da coluna) em um contexto, dado em um corpus de treinamento. Sinônimos O contexto poderia ser o documento: Cada célula representa o número de vezes que duas palavras estão presentes no documento Matriz termo-contexto por que não usar um contexto menor? Por exemplo: parágrafos. Por exemplo: usar 4 palavras antes e depois de uma determinada palavra. Obras similares estão “geralmente” próximas. Palavras que estão em contextos similares, tendem a ser semantica Exemplo de contexto local de palavras: O carro é rápido? Sim, ele é muito veloz! O manuscrito é longo. Geralmente o tamanho é menor Corpus Brown: Foi criado na década dos 1960 é um corpus geral que contem 500 amostras em inglês. Ao todo 1,014,312 palavras de trabalhos publicações nos Estados Unidos em 1961 (500 fontes), organizado em 15 categorias. É um corpus pioneiro na área de linguística computacional. Similaridade baseada em distribuição de palavras Na literatura isso é conhecido como: Distributional semantics. Vector semantics. Vector-space semantics. O significado de uma palavra é calculada a partir da distribuição de palavras que ao redor dela. Em tópicos anteriores uma palavra era representada por um índice em um vocabulário. Nesta abordagem: as palavras são representadas como um vetor de números. (embedding into a vector)
Rafael Ribeiro Gomes da Silva Essa décima aula começou com uma breve revisão sobre o tema das últimas aulas e mostra aplicações práticas, como é visto na computação gráfica através de malhas dinâmicas para a criação de imagens mais elaboradas, através do cálculo de quantidade de triângulos. Há a matriz de termo-contexto onde no corpus de treinamento são computados o número de vezes que uma palavra co-ocorre com outra palavra, para demonstrar similaridade de contexto. Como primeiro exemplo, abordamos a redução de contexto para palavras próximas ao termo alvo, pois várias ocorrências ao longo de um corpus pode ser um grande indicador de similaridade. Após essa introdução, nos foi apresentado um pioneiro na linguística computacional: Corpus Brown, originado na década de 60 contendo amostras linguísticas de 500 fontes em inglês, categorizadas em 15 contextos. A plataforma kaggle também disponibiliza enormes datasets para serem utilizados e que podem servir de base para o desenvolvimento do projeto final. Quanto mais expandimos o tamanho da janela, reduzimos a similaridade sintática e aumentamos a similaridade semântica. A análise é feita em um vetor e os extremos desse vetor seguem regras e comportam-se como barreiras. O tópico seguinte foi como calcular o significado das palavras, baseando-se na distribuição de palavras ao redor dela, transformando-as em vetores numéricos de distribuição. Além de analisar a distribuição, é necessário ponderar as palavras, pois existe uma categoria de palavras além das stopwords que atrapalham a interpretação do texto. Essas palavras estão presentes em praticamente todos os contextos, dessa forma são irrelevantes. Cada palavra deve ser calculada com base em sua frequência no corpus, e as colunas de palavras próximas a ela, para atribuirmos os valores. Outro tópico abordado durante essa aula foi a forma de acréscimo na média final através de desafios. O desafio 2 será ler um dos tópicos importantes da computação e realizar um resumo, semelhante aos feitos das aulas.
Tiago Suzukayama Da aula anterior, vimos que dois documentos são similares se os vetores são similares, e duas palavras são similares quando seus vetores são similares. A similaridade entre palavras considera todas as palavras presentes em todas os documentos. Os vetores tem muitos elementos nulos, e o tamanho do vetor depende do número de documentos. Uma matriz é dita esparsa quando possui uma grande quantidade de elementos que valem zero. Em uma matriz termo-documento, cada célula da matriz registra o número de vezes que a palavras co-ocorre com outra palavras em um contexto, dado em um corpus. É possível também utilizar um contexto menor, como por exemplo, utilizar 4 palavras antes e depois de uma determinada palavra. O Corpus Brown foi criado na década de 1960, pela Universidade de Brown. É um corpus geral que contem 500 amostras em inglês. Ao todo, são mais de um milhão de palavras de trabalhos publicados nos Estados Unidos, organizados em 15 categorias. É um dos corpus pioneiro na área de linguística computacional. A similaridade também pode ser baseada na distribuição de palavras. Na literatura isso é conhecido como distributional semantics, ou vector semantics, ou vector-space semantics. Anteriormente, uma palavra era representada por um índice em um vocabulário, já nesta abordagem, as palavras são representada como um vetor de números. Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI) são medidas que permitem medir quão informativa é a palavra de contexto, dada uma palavra alvo. PMI é uma medida baseada na medida de informação mútua: é uma medida que representa a quantidade de informação que uma variável aleatória contém sobre outra variável aleatória. É uma medida de dependência entre variáveis aleatórias, e uma medida de sobreposição de informações entre duas variáveis aleatórias. O PPMI, é igual ao PMI, mas não possui valores negativos, substituindo-os por 0.
Matheus Fama Machado de Sousa Na aula anterior, vimos que numa matriz termo-documento dois documentos são similares se os vetores são similares(colunas). Da mesma forma, duas palavras são similares se os vetores(linhas) são similares. Características principais da matriz termo-documento: A similaridade entre palavras considera todas as palavras presentes em todos os documentos. Os vetores tem muitos elementos nulos (vetores esparsos). O tamanho do vetor depende do número de documentos. Cada célula da matriz registra o número de vezes que a palavra (da linha) co- ocorre com outra palavra (da coluna) em um contexto, dado em um corpus de treinamento. No entanto, o mais natural seria considerar Matriz termo-termo, palavra- palavra, termo-contexto. Poderíamos usar um contexto menor como, por exemplo, parágrafos ou usar as n palavras antes e depois de uma determinada palavra. Similaridade baseada em distribuição de palavras: O significado de uma palavra é calculada a partir da distribuição de palavras ao redor dela. Em tópicos anteriores uma palavra era representada por um índice em um vocabulário. Nesta abordagem as palavras são representadas como um vetor de números. Apenas contagem de palavras não é boa escolha para determinar se 2 palavras são similares. Ex. “de” e “em” são muito frequentes, e podem não ajudar em discriminar similaridade entre palavras. A melhor ponderação ou medida de associação entre palavras deve nos dizer com que frequência mais do que o acaso as duas palavras co-ocorrem. Pointwise Mutual Information (PMI) É uma medida baseada na medida de Informação Mútua: PMI é uma medida de associação que mede quão frequente dois eventos (x e y) ocorrem se ambos são independentes. É uma medida que representa a quantidade de informação que uma variável aleatória. Contém sobre outra variável aleatória. é uma medida de dependência entre variáveis aleatórias. É uma medida da sobreposição de informações entre duas variáveis aleatórias. PMI terá valores entre [-infinito, +infinito]: Negativos: implica que as coisas estão ocorrendo com menos frequência do que esperávamos por acaso (valores não confiáveis para corpus pequeno). O mais comum é substituir os valores negativos do PMI por zero.
Rafael Pauwels de Macedo Começamos a aula fazendo uma retrospectiva do que já havia sido visto, no caso a matriz de coocorrência. Quando temos uma matriz podemos dizer que dois documentos são similares na semântica se os vetores dos mesmos também são similares. Com a mesma forma dizemos que duas palavras são similares semanticamente. Porém é sempre importante lembrar que as matrizes sempre consideram todas as palavras presentes em todos os documentos, então o tamanho dos documentos e o número deles influenciam na análise. Um dos tipos muito usados de matriz é a chamada termo-contexto, que relaciona uma palavra com o corpus. O contexto é definido pelas x palavras que rodeiam a palavra analisada. Um exemplo disso usando +- 7 palavras seriam coisas como "sugar, a sliced lemon, a tablespoonful of APRICOT preserve or jam, a pinch each of," O corpus pioneiro na área de linguística computacional é o Corpus Brown de 1960, é um corpus geral com 500 amostras em inglês, são ao todo 1014312 palavras organizados em 15 categorias como Press, Religion, Fiction, Humor, etc. Quando usamos diferentes tamanhos para as janelas do contexto chegamos a diferentes comparações, janelas pequenas como as de tamanho 1 focam mais no aspecto sintático da análise, janelas maiores como 7 ou mais focam no aspecto semântico da similaridade. Outra forma de encontrar e calcular similaridades é usando a similaridade baseada em distribuição das palavras, conhecido na literatura como Distributional semantics, Vector semantics ou Vector-space semantics. As palavras nessa abordagem são representadas como um vetor de números. Existem duas medidas usadas dentro deste contexto, a PMI (Pointwise Mutual Information) e a PPMI (Positive Pointwise Mutual Information), ambas usadas para mensurar quão informativa é a palavra de contexto, dado a palavra alvo. A PMI mensura a quantidade de informação que uma variável contém sobre outra variável aleatória.
Matheus Miranda Teles Aula 10 - Semântica e similaridade de palavras parte 3. Nesta aula relembramos a aula anterior onde conhecemos a matriz de co-ocorrência (termo-documento), que demonstrava a similaridade entre palavras considerando todas as que aparecem nos documentos, uma matriz esparsa tem muitos elementos nulos. O mais natural seria uma matriz que consideresse a palavra em um contexto, assim cada celula registraria a ocorrencia de uma palavra (a linha), num determinado contexto (a coluno), dado um corpus de treinamento. assim poderiamos usar um contexto menor, como paragrafos, ou as palavras que aparecem antes e depois desta. Similaridade pode também se basear na distribuição de palavras, na literatura isso é conhecido como distributional semantics ou vector semantics. Nesse modo, o significado de uma palavra é calculado a partir da distribuição de palavras ao redor dela, antes as palavras eram representadas como um indice num vocabulario, agora são vetores de numeros, e na matriz termo-contexto cada celula significa a frequencia dquela palavra num determinado contexto, porem apenas essa frequencia não é suficiente para determinar a similaridade pos por acaso palavras podem ter similaridade parecida, como "de" e "em", que aparecem com uma frequencia alta porem nâo são similares e nem informativas, como estão presentes em quase todos os contextos, logo esta frequencia deve desconsiderar este acaso. Uma medida é a Informação Mútua, que representa a quantidade de informação que uma variavel aleatoria contem sobre outra variavel aleatoria, ela mede a dependencia destas, assim ela pode medir o quanto elas estão associadas, este valor pode ir de mais infinito ate menos infinito, mas o segundo é comumente substituido por zero.
Brian Alves Andreossi Aula 9 Dois documentos são similares se seus vetores são similares. Para essa análise, é necessário que se verifique todas as palavras dos documentos. Eventualmente ocorre muitos nulos/zeros na matriz termo-documento, o que torna a matriz esparsa. Seria mais natural considerar a matriz termo-termo, ou matriz palavra-palavra ou a matriz termo-contexto (são sinônimos). Essas matrizes tem dimensão |V|x|V| Obras similares estão geralmente próximas. Palavras que estão em contextos similares tendem a ser semânticamente similares. Para a matriz termo-contexto, é interessante definir vizinhança. Exemplo O carro é rapido? Sim ele é muito veloz. Percebe-se que veloz e rápido são semânticamente parecidos, e sintáticamente muito distintos. Parte do pressuposto de que palavras com semântica parecida estão próximas. Janelas Um janela (ou contexto) pode ser de tamanho 1, 3, 5, 7 e assim por diante (sendo n o número de palavras a frente e atrás da palavra analisada). Quanto mais palavras, a similaridade tende a ser mais semântica, e quanto menos, torna-se mais sintática. Pointwise Mutual Information Medida baseada no conceito de Informação Mútua, medida que representa a quantidade de Informação que uma variável aleatória contém sobre outra variável aleatória, mede dependência entre variáveis aleatórias. PMI = log2 Pwc/Pw*Pc Range = (-inf, +inf) Positive Pointwise Mutual Information PPMI = max(PMI, 0) O PPMI tem valores altos para eventos pouco frequentes (palavras muito raras). Outras medidas de similaridade Outras possíveis medidas de similaridade são t-test, que também são calculadas encima da palavra e sua frequência. Além das vistas nas aulas anteriores, como por exemplo Jaccard, coseno, Dice, JS.
Rafael Correia de Lima Nessa aula de PLN continuamos o tema iniciado nas aulas anteriores sobre a semântica e similaridade de palavras, abordando nessa terceira parte a matriz termo-contexto. No início da aula foi apresentado o segundo desafio para bônus de nota na média final, o resumo de um artigo científico relevante em ciência da computação. Relembrou-se a estrutura da matriz termo-documento e as informações passíveis de conclusão a partir desta. Essas são matrizes esparsas quando se comparam termos de documentos com vocabulários muito distintos. Essas matrizes são ineficientes pois ocupam muito espaço de memória carregando pouca informação. A relação termo documento não é a mais natural a ser considerada. A matriz termo contexto armazena a frequência de co-ocorrência de palavras em um mesmo contexto, podendo o contexto ser algo menor que um documento, como um parágrafo ou frase. Essa estrutura se basear na premissa de que as palavras de significado similar ocorrem juntas em contextos. Foi dado o exemplo de trechos aleatórios extraídos do Corpus Brown no qual é possível observar na prática essa ocorrência. Na literatura esse estudo é conhecido como vector semantics. Em seguida foram abordadas as medidas de Pointwise Mutual Information - PMI e Positive Pointwise Mutual Information - PPMI, que são medidas capazes de ponderar a ocorrência de palavras cuja ocorrência é conjunta mais do que ao acaso. A informação mútua é uma medida que representa a quantidade de informação existente entre variáveis aleatórias, ou em outras palavras, quanto essas variáveis são dependentes entre si. Já o PMI é o cálculo dessa informação para uma combinação específica dos valores dessas variáveis aleatórias.
Gustavo Zanfelice Dib Semântica III Estrutura de dados mais sofisticadas Em muitos casos, utilizar matrizes de dados é simplório demais para conseguir contemplar por completo os dados necessários para análise. Em casos como analisar uma imagem, traduzir todos os pixels é muito custoso para memória. O numpy possui estruturado já matrizes que não possui todos os dados inseridos utilizando duas listas encadeadas. Matriz termo-contexto: O objetivo é encontrar palavras que possuem mesmo sentido, como veloz e rápido ou similaridades. Exemplo: Corpus Brown: É um conjunto de 1960 com 500 textos e cerca de 2000 palavras. Datasets do Kaggle possui outros corpora ricos em informações. Uma maneira de montar a matriz termo-contexto é tabular os elementos nos dois eixos e analisar a sua vizinha e então marcar qual a distância daqueles termos para o termo analisado. O programa Teste1.py realiza a criação desta matriz. Buscas relacionadas: Distributional semantics; Vector semantics; Vector-space semantics; PMI - Quão informativo é uma palavra para o estudo Palavras presentes em todos os contextos tendem a ser pouco informativas. Informação Mútua: medida para analisar a informação que uma variável possui sobre outra. Em resumo PMI(w,z) = log2[P(w,z)/P(w)P(z)] Em uma matriz de termo-contexto podemos calculando a ocorrência de ambas multiplicado por todas as ocorrências da matriz, dividido pelas ocorrências de uma por outra. A criação de uma matriz pode ser custosa em termos de eficiência mas técnicas mais eficientes são mais custosas em termos de memória. Test3.py calcula o PPMI (PMI positivo) para a entrada.
Luana Ferreira do Nascimento Neste resumo falaremos de semelhança semântica de palavras. A primeira técnica a ser estudada é a matriz de co-corrência de termo-documento. Nesta matriz vamos ter os textos analisados como colunas e cada linha será uma palavra. O estudo é realizado através da contagem de palavras dentro do mesmo texto, sendo que quando as mesmas palavras ocorrêm uma quantidade semelhante de vezes em um texto, elas são relacionadas semânticamente. Para uma análise mais específica, definimos palavras semanticamente semelhantes quando o vetor característico da ocorrência das palavras ao longo da lista de textos analisados são semelhantes. Os problemas desta forma de avaliação seriam que devem ser avaliadas todas as palavras de todos os textos, criando matrizes muito grandes e esparsas. Outra forma de avaliação é a matriz termo-contexto, onde a matriz é formada de todas as palavras x todas as palavras e o valor corresponde ao número de co- ocorrências entre as palavras, mas como esta representação pode ficar muito custosa em espaço também podemos realizar esta comparação apenas com palavras que estão próximas umas das outras dentro de um texto, sendo que quanto mais próxima mais sintática é a semelhança e quanto mais distante mais semântica é a semelhança. para evitar a contagem de palavras que trazem pouca informação (como proposições, por exemplo) podemos utilizar a informação mútua, que é um cálculo da quantidade de informação que uma variável tem em relação a outra determinando assim o grau de dependência. Também existem outras medidas de similaridade de palavras, assim podemos escolher a melhor para utilizar.
Estevao Crippa da Veiga Na matriz termo-documento, a similaridade entre palavras considera todas as palavras presentes em todos os documentos. Assim, os vetores se tornam muito esparsos, ou seja, com muitos elementos nulos. Assim, uma outra estrutura que podemos utilizar para minimizar vetores esparsos é a matriz termo-contexto, em que cada célula da matriz registra o número de vezes que a palavra co-ocorre com outra palavra em um contexto. Temos a similaridade baseada em distribuição de palavras, em que o significado de uma palavra é calculada a partir da distribuição de palavras ao redor dela. Assim, as palavras são representadas como um vetor de números. Mas só a frequência das palavras pode não ser boa para indicar se duas palavras são similares. Duas medidas podem ser utilizadas para medir quão informativas são as palavras em um dado contexto: Pointwise Mutual Information (PMI) e Positive Pointwise Mutual Information (PPMI). São baseadas na informação mútua, ou seja, na dependência entre variáveis aleatórias. A PMI é uma medida de associação que mede quão frequente dois eventos ocorrem se ambos são independentes. Já a PPMI é equivalente à PMI, exceto por considerar como zero as medidas de PMI que são negativas. Os valores negativos de PMI indicam uma frequência menor do que o esperado das palavras. O PMI é calculado aplicando-se o logaritmo na base 2 da razão entre a probabilidade conjunta dos eventos e o produto das probabilidades separadas dos eventos. Seus resultados variam de infinito negativo a infinito positivo. Os valores não são confiáveis para corpus pequeno.
Rodolfo Azevedo Dos Santos Semântica e similaridade de palavras: Parte 3 Matriz termo-contexto Vetores esparsos: Muitos elementos nulos (zero) Tamanho do vetor depende do número de documentos. O quanto é “muito”? É a maioria dos elementos nulos. Linhas: Tamanho do vocabulário Colunas: Tamanho dos documentos [V] X [D] Uso de estruturas de dados mais sofisticadas: Matriz não é eficiente. Estruturas como listas ligadas ou duplamente ligadas que contenham apenas elementos não-nulos. Isso é muito explorado em computação gráfica. Objetivo: Utilizar a menor quantidade de memória possível O mais natural seria considerar: \- Matriz termo-termo \- Matriz palavra-palavra \- Matriz termo-contexto Os três nomes acima são sinônimos. Dimensão |V| x |V|. Cada célula é a quantidade de vezes que duas palavras aparecem em um contexto. Contexto local de palavras: Similaridade semântica entre palavras em um local. Kaggle – Outros Corpora: Site bom para aprendizado de máquina Matriz termo-contexto Linhas são palaras e as colunas também. Número de vezes que aparece uma palavra ligada a outra dado um contexto (distância). Uma palavra é um vetor, analisamos como uma palavra está ligada a outra palavra. Contexto: Vizinhança (estipulada) para a palavra. Ou seja, é a janela de tamanho. Geralmente são utilizadas janelas de 1 a 7. Maior: Similaridade semântica Menor: Similaridade sintática. Geralmente são números ímpares. Teste1.py Retira stopwords (palavras que não tem sentido para serem analisadas) – Que estão no conjunto de stopwords Recebe uma pasta e faz a leitura dos arquivos dentro dela. Ao final cria um vocabulário com palavras presentes nesta pasta. Mcontext: matriz termo-contexto, utiliza numpu e no início todos elementos são zero. Dicionário: para eficiência Context é uma lista Há tratamento para as bordas Quando k é maior: Matriz menos esparsa O ponto preto é o valor diferente de zero. Teste2.py Representação em grafo (relação entre palavras). Similaridade baseada em distribuição de palavras Vector Semantics Palavras são representadas em um vetor. Matriz termo-documento: dimensões vocabulário x vocabulário Apenas contagem de palavras não é uma boa escolha para determinar similaridade entre palavras. Ex: “de” e ‘em”. PMI e PPMI: São ponderadores (no denominador) Duas medidas que permitem mensurar quão informativa é uma palavra. Similaridade por acaso? Não são informativas porque aparecem em quase todos os contextos. Nos indicam a frequência mais do que o acaso que duas palavras são similares. PMI: Pointwise Mutual Information É uma medida baseada na medida da informação mútu. Seja x e y palavras, I é a medida de informação mútua entre as duas palavras. PMI terá valores de –infinito a +infinito. PPMI: Positive Pointwise Mutual Information, para valores menores que zero eles recebem o valor zero. É uma saturação.
Marcio Jose de Carvalho Na aula 11 seguimos estudando similaridade de palavras. Vimos a técnica de matriz de termo-documento, onde usamos um ou mais textos e comparamos a ocorrência das palavras neles. Essas matrizes são ditas esparsas, por conterem muitos termos nulos, e para representá-las e analisá-las, são utilizadas estruturas de dados mais complexas. Para simplificar em tamanho e análise, podemos usar uma matriz de termo-contexto, sendo o contexto a co-ocorrência em um corpus curado, pré-definido. Assim, podemos comparar a semântica das palavras e definir sua proximidade de sentido mesmo quando o significado principal delas difere.


Número de resumos processados: 61.

Observação:


Arquivo gerado por um programa.