Resumos de aula: PLN - 2019


Nota: Arquivo gerado por um programa.

Nome Resumo
Rodrigo Hiroaki Ideyama Nome: Rodrigo Hiroaki Ideyama RA: 11042714 O tema da aula nove foi “Semântica e similaridade de palavras: Parte II”. De início, ele foi revisar o que foi dado na parte I na aula passada sobre matriz termo documento, nesses tipos de matrizes, 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, NVpara vertical e NDpara horizontal. Ela apresenta as características seguintes: 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. No tópico seguinte, medidas de similaridade, o Jesús falou, primeiramente, relembrou de como calcula o comprimento a distância entre dois pontos em um espaço tridimensional com suas coordenadas x, y e z, essa seria a distância euclidiana. Outra medida de similaridade explicada foi a distância de Manhattan, também conhecida como “city-block”, ela é calculada pela soma dos módulos das diferenças entre todos os atributos de dois objetos em questão. Porém se esses atributos não estiverem correlacionados, a garantia do resultado da similaridade não existe. A outra que foi citada pelo professor foi a similaridade de cossenos que diz que é obtida entre os ângulos dos vetores que deseja-se comparar por meio do cálculo do cosseno, usando-se a fórmula do produto interno bruto. Uma grande similaridade é quando o cosseno é próximo de um, enquanto que cosseno próximo de menos um indica que os vetores não tem boa similaridade. Outra forma de medição que foi mencionada durante a aula é quando se tem o interesse em calcular a similaridade e a diversidade em um conjunto de coisas, definindo conjunto como uma coleção não ordenada de itens, nesse caso é utilizado a distância de Jaccard, calculada pela relação da intersecção com a união de dois conjuntos, isto é, o número de itens únicos em comum aos dois conjuntos dividido pelo número total de itens distintos, subtraídos de um. No fim dessa parte, ele mostrou as fórmulas da distância cosseno e Jaccard, mas também do Dice e do JS. Em similaridade entre documentos, ele explicou detalhadamente sobre o código teste1.py que realiza a leitura dos documentos no começo, depois calcula as frequências das palavras nas obras, verifica as distância entre os documentos por meio da biblioteca numpy e cria o grafo de documentos que indica a similaridade entre os documentos. Esse programa foi aplicado em um conjunto de documentos que cada documento indica a ementa de uma determinada disciplina, no caso, foi usado de exemplos, os cursos algoritmos e estruturas de dados 1, algoritmos e estruturas de dados 2, bases computacionais da ciência, programação estruturada, processamento da informação e processamento de linguagem natural. Então pelo grafo gerado, pode-se perceber que entre as disciplinas algoritmos e estruturas de dados 1 e processamento de linguagem natural apresentou maior similaridade com o valor de um e bases computacionais da ciência e programação estruturada apresentou menor similaridade com o valor de zero. Como segundo exemplo, ele utilizou o código teste1.py nas obras de Machado de Assis: Dom Casmurro, Esaú e Jacó, Memórias Póstumas de Brás Cubas e Quincas Borba. Então pelo resultado obtido, entre Dom Casmurro e Memórias Póstumas de Brás Cubas, apresentou maior similaridade com o valor de um e Quincas Borba e Esaú e Jacó, apresentou menor similaridade com o valor de 0.58. No próximo tópico, similaridade entre palavras, ele apresentou o código teste3.py que é muito parecido com o teste1.py, porém ele compara os vetores de linha e não de colunas como anteriormente para conseguir ver a similaridade entre as palavras. Logo aplicou ele no exemplo das disciplinas e mostrou o grande grafo obtido, todavia ficou muito difícil na visualização dos pesos devido à imensidão. A fim de resolver esse problema, ele criou um teste4.py que incluía palavras com comprimento acima de dez, o que ajuda na exclusão de palavras que estão listadas na stoplist, principalmente. Em teste5.py, o Jesús mostrou para gente um outro jeito de realizar a similaridade entre palavras por meio de gráfico, onde em cada eixo temos as palavras e conseguimos medir a similaridade através das cores. No caso, o verde mais escuro está indicando a maior similaridade e o branco, menor similaridade. Para finalizar a aula, o professor falou do Desafio 1, considerado como bônus para média final, valendo meio ponto. Nele, os alunos vão precisar fazer um resumo de um trabalho (dissertação/tese) relacionada a processamento de linguagem natural, defendida no nível de mestrado ou doutorado em 2018, respeitando os mesmos moldes dos resumos de aula. Nesse resumo vai precisar detalhar o que foi a contribuição da pesquisa dele proposta pelo candidato e falar qual foi a razão de ter considerado o projeto como de nível mestrado ou doutorado. Deve ser enviado pelo tidia na seção de atividades. Como tem que ser a tese ou dissertação publicado em 2018, o Jesús mostrou o site catálogo de teses e dissertações, onde pode ajudar a gente achar um exemplo de artigo que podemos escrever nosso resumo. Como exemplo, ele digitou processamento de linguagem natural, retornando 55 resultados.
Mauro Mascarenhas de Araujo Aula de 04/07: "Semântica e similaridade de palavras:Parte II". A aula iniciou-se com a retomada do conceito de Matriz de co-ocorrência termo- documento, onde dois documentos são similares se os vetores (colunas) da matriz forem similares (note que a dimensão do vetor é a dimensão do vocabulário) e as palavras são similares se os vetores (linhas) da matriz forem similares (note que a dimensão do vetor é o número de documentos), sendo que estes vetores tem muitos valores nulos (esparços). Logo a seguir foi produzido um gráfico (plotagem) que ilustra trata cada texto como um vetor, de forma que as dimensões foram determinadas pela quantidade de palavras escolhidas, no caso: "battle" e "fool". Note que o valor de cada dimensão do texto é dada pela frequência do termo (a qual a dimensão está atrelada): Henry V = [5, 15]; Julis Cesar = [1, 8]; As You Like It = [37, 1]; Twelfth Night = [58, 1]. Os métodos de similaridade apresentados foram: a Distância Euclidiana, que é a distância que, caso o espaço seja tridimensional é dada por d = sqrt((x2-x1)^2+(y2-y1)^2+(z2-z1)^2), e no caso generalizado é dada por d=sqrt(sum((xi-yi)^2)); a Distância de Manhattan, que também é conhecida como distância de quarteirão ou distância de taxista, que é dada por d=sum(|xi- yi|); a Similaridade de cosseno que é dada por sim(A,B)=cos(theta)=(A.B)/(|A|*|B|), de forma que, quanto maior o cosseno, mais próximos os vetores são (cos(0)=1); e, por fim, a Distância de Jaccard, normalmente utilizada para calcular a similaridade entre conjuntos, que é dada por J(A,B)=|Intersecção(A,B)|/|União(A,B)|. Voltando ao tópico de similaridade entre documentos e com o conceito que dois documentos são similares se os vetores (colunas) da matriz forem similares, o professor apresentou o primeiro algoritmo (teste1.py), que utiliza a Distância Euclidiana para realizar a análise e gera um grafo de similaridade entre documentos (para a normalização foi utilizada a técnica min max, onde o valor resultante será 0 caso não haja correlação e 1 caso estejam bem ligados entre si), no caso, foram analisadas as ementas das disciplinas aed1, aed2, bcc, pe, pi e pln. O resultado foi que as ementas de AED1 e PLN possuíam uma forte similaridade, enquanto as de PE e BCC eram bem distantes entre si. Agora, ao aplicar o mesmo algoritmo sobre as obras de Machado de Assis, obteve-se que as obras Dom Casmurro e Memórias Póstumas de Brás Cubas eram as mais similares entre si, enquanto que Memórias Póstumas de Brás Cubas e Quincas Borba eram as mais distantes. Porém, ao aplicar novamente o algoritmo sobre as ementas das disciplinas alterando o cálculo de similaridade para a similaridade de cosseno (teste2.py), obteve-se que as ementas de PLN e PE eram as mais próximas entre si. Agora, quanto à similaridade de palavras, tendo em mente que, as palavras são similares se os vetores (linhas) da matriz forem similares, utiliza-se o mesmo algoritmo de similaridade entre documentos, porém, ao invés de analisar as colunas, analisa-se as alinhas da matriz (teste3.py), após o teste, pode-se observar que existe uma correlação entre as palavras "ordenação", "tempo", "complexidade", "lineares", "balanceadas", "breve", "à" e "c", isso dado o contexto da análise das ementas das disciplinas. Já no próximo algoritmo apresentado (teste4.py), a saída foi restrita à palavras com ao menos 10 caracteres. Por fim, foram apresentadas outra técnica de visualização de similaridade entre documentos e palavras (além dos grafos), no caso, a Matriz de Calor (teste5.py - Similaridade entre palavras) aplicada à ementa das disciplinas. Também foi apresentado um algoritmo de sugere palavras similares (teste6.py) que utilizou as obras do Machado de Assis e o NLP-Book como conjunto de treinamento. Na primeira execução obteve-se a sugestão de palavras como "separar-nos", "comerciante" e "honestidade" para a palavra "defendendo" fornecida como entrada. Já na segunda execução (com o segundo conjunto de treinamento), obteve-se palavras como "thesaurus", "sufficient" e "developed" para a palavra "dataset" fornecida como entrada. Finalmente, foi apresentado um desafio que vale 0.5 pontos na média final: devemos fazer a leitura de um trabalho (tese ou dissertação) de mestrado ou doutorado na área de PLN que seja datado de 2018, fazer um resumo de ao menos 500 palavras, responder à seguinte pergunta: "Porque o trabalho vale um mestrado/doutorado?" e submeter via Tidia (Pode-se utilizar a plataforma Sucupira para buscar pelos trabalhos).
Igor Neres Trindade Na aula de hoje, 04/07/2019, continuamos a estudar sobre semântica e similaridade de palavras. Desta vez, abordamos algoritmos mais sofisticados e, para isso, contamos com matrizes termo-documento. Essas são matrizes de co- ocorrência relacionam a ocorrência de palavras em diferentes documentos, nos possibilitando inferir o quão similares são esses documentos, ou mesmo as palavras. Nessa matrizes, cada coluna representa um documento (um livro, por exemplo) e cada linha representa uma palavra. Cada elemento dessa matriz, portanto, representa a frequência que determinada palavra aparece em um determinado documento. Dessa matriz, consequentemente, podemos extrair diferentes vetores, sejam eles colunas ou linhas específicas e dizemos que palavras ou documentos são similares se esses vetores são similares. No caso de um documento, o vetor, que será a coluna extraída, terá como dimensão o tamanho do vocabulário, pois cada linha representa uma palavra, e todas as palavras presentes em todos os documentos são consideradas. É natural que algum documento não possua alguma dessas palavras, e, portanto, alguns vetores podem ser esparsos. No caso de uma palavra, o vetor, que será a linha extraída, terá como dimensão a quantidade de documentos, pois cada coluna representa um corpus. Agora que temos uma representação interessante, precisamos entender as diferentes medidas de similaridade. A primeira medida que vem à cabeça, principalmente quando representamos graficamente, é a distância euclidiana. Sejam P = (p1, p2, , pn) e Q = (q1, q2, , qn) dois pontos arbitrários, a distância euclidiana entre eles é simplesmente o tamanho da reta PQ. E a fórmula para isso é bem simples: no caso de P e Q, é dado pela raiz de (p1 - q1)^2 + + (pn - qn)^2, ou seja, a raiz da somatória dos quadrados da diferença entre os pares de coordenada. Quanto menor for essa distância, mais similares serão os vetores. Essa medida funciona, mas pode apresentar alguns erros e, portanto, não é a melhor. Uma outra medida fácil de calcular é a distância Manhattan e é dada simplesmente pela somatória da diferença entre os pares de coordenadas projetados nos eixos. Diferentemente da distância euclidiana, não pensamos em um trajeto direto entre dois pontos P e Q quaisquer, mas no trajeto no sentido dos eixos, ou seja, um trajeto ortogonal. Uma medida ainda mais interessante e que considera a proporcionalidade entre os vetores é a similaridade do cosseno. A fórmula também é simples e remete às aulas de geometria analítica: é o produto escalar entre esses dois vetores pelo produto entre a norma de cada vetor. A similaridade de Jaccard foi outra medida abordada. Dados dois conjuntos quaisquer, calculamos a sua similaridade de Jaccard dividindo a cardinalidade da união pela cardinalidade da intersecção entre eles. Após entender a matriz termo-documento e as diferentes medidas de similaridades, prosseguimos com a execução de alguns códigos em python, com a ajuda da biblioteca numpy, que liam diversos documentos, criavam uma matriz termo-documento normalizada e listava as similaridade entre os documentos. Os textos utilizados na aula como exemplos foram as ementas de algumas matérias do Bacharelado em Ciência da Computação. Foi possível ainda montar um grafo para melhor análise dessas similaridades. O resultado fez bastante sentido, apesar do pequeno vocabulário. Usamos obras literárias também, como Dom Casmurro, Quincas Borba, Memórias Póstumas de Brás Cubas, e Esaú e Jacó. No primeiro teste, usamos a distância euclidiana, mas implementação da similaridade cosseno com a biblioteca numpy não é muito difícil. Por fim, também fizemos um programa que calcula a similaridade entre palavras, cuja execução demora mais, devido ao tamanho do vocabulário, pois o programa faz uma comparação entre todas as palavras.
Jair Edipo Jeronimo Ao avaliarmos a semântica e a similaridade de palavras, podemos criar uma matriz de co-ocorrência, formada pela quantidade de repetições de uma palavra em um documento. Assim, em um eixo temos os documentos e no outro as palavras. Com essa matriz, é possível avaliar através dos vetores de palavras se dois documentos são similares de acordo com a similaridade dos vetores de palavras, ou seja, se as palavras possuem quantidades parecidas em duas obras, então é provável que elas tratem sobre os mesmos assuntos. Por outro lado, através dessa matriz podemos avaliar também a similaridade entre duas palavras, isto é, considerando que duas palavras tenham quantidade semelhantes em diversos documentos, então elas devem tratar sobre conceitos similares. O tamanho do vetor depende diretamente da quantidade de palavras diferentes ou de documentos (dependendo da análise), sendo que pode haver vetores esparsos de acordo com o tamanho do vocabulário. Existem diversas formas de medir a similaridade através da matriz de co- ocorrência, sendo a mais conhecida a distância euclidiana, onde calculamos a raiz do quadrado das distâncias em cada termo entre dois vetores, que seria equivalente a menor distância entre a extremidade dos vetores. Outra forma de medir é através da distância de Manhattan, no qual simplesmente somamos as distâncias em cada eixo. Há também a distância de cossenos, que calcula a similaridade através do ângulo formado pelos vetores, ou seja, dado dois vetores fazemos o produto interno entre eles e dividimos pelo produto de suas normas. Além disso, podemos considerar também a similaridade de Jaccard, que a partir de dois conjuntos calcula a semelhança através da razão entre a intersecção e a união dos conjuntos. Outras medidas mencionadas de similaridade são cosine, Jaccard, Dice e JS. Após a parte conceitual, vimos a aplicação da similaridade entre documentos, através de um código em Python, que realizava a leitura dos documentos, calculava a frequência das palavras para formar a matriz e assim poder calcular a distância entre os documentos. Além disso, era gerado um grafo com os vértices sendo os documentos analisados e as arestas com as distâncias entre eles, sendo que as distâncias eram normalizadas através do método minmax, que normaliza os valores para uma faixa entre 0 e 1. Vimos dois exemplos, um com as ementas de algumas matérias do Bacharelado em Ciências da Computação da UFABC e outro com as obras de Machado de Assis, sendo que também foi realizada uma comparação entre o grafo gerado pela distância euclidiana e o grafo gerado pela distância de cossenos. Depois, vimos a aplicação da similaridade entre as palavras, dessa vez o código foi alterado para receber o vetor de frequência das palavras em cada documento e calcular a distância entre cada par de palavras, gerando também um grafo a partir da matriz. No caso das ementas das disciplinas, o vocabulário possuía 109 palavras. Foram apresentados dois resultados, um do grafo completo e outro apenas com as palavras que possuíam 10 ou mais caracteres. Também foi apresentado um gráfico que mostrava através de um mapa de calor a frequência de similaridade entre cada par de palavras. Por fim, vimos outro tipo de aplicação, utilizando como base as obras de Machado de Assis, onde passávamos como parâmetro uma palavra que estivesse presente no vocabulário e era mostrado na tela uma lista ordenada com as palavras mais semelhantes a inserida. No final foi proposto um desafio, que seria resumir uma tese ou dissertação relacionada a PLN valendo meio ponto na média final.
Thiago Henrique Gomes Panini Resumo 9 – PLN Na oitava aula de Processamento de Linguagem Natural, o professor Jesús iniciou as discussões a partir de um tópico já introduzido na aula passada: semelhança de documentos. Como curiosidade, foi comentado na aula passada um artigo criado artificialmente utilizando técnicas de PLN que, além de ser aprovado pela academia, gerou um convite a seus criadores para apresentação das ideias. O professor demonstrou a implementação de um algoritmo, em Python, capaz de identificar, dados trechos de documentos, a similaridade entre estes. Como exemplo prático, informações sobre algumas matérias do Bacharelado de Ciência e Computação foram coletadas para analisar, através de grafos, a semelhança entre estas. Como conclusão, foi possível perceber que a matéria de Processamento de Linguagem Natural possui um alto índice de semelhança com Algorítimos e Estruturas de Dados I. Nesta análise, não foram realizados procedimentos de preparação ou transformação nos dados como, por exemplo, stop words, tratamento de maiúsculas e minúsculas, stemmer, entre outras técnicas. Em um outro exemplo utilizando a relação entre algumas obras de Machado de Assis, como Dom Casmurro, Memórias Póstumas de Brás Cubas, Quincas Borba e Esaú e Jacó, foi identificado, a partir da análise de similaridade entre textos, que as obras Dom Casmurro e Memórias Póstumas são as que mais se assemelham. Este tipo de análise é extremamente útil em sistemas de recomendação, uma vez que é possível recomendar ao usuário obras, livros, filmes, séries e qualquer outro produto baseado no índice de similaridade entre produtos que causaram satisfação a este cliente. Para calcular a distância entre as palavras presentes em um trecho textual, foram utilizadas a distância Euclidiana e a distância de Cossenos. Para os exemplos, o professor demonstrou os algoritmos criados em Python com a biblioteca NumPy. Atualmente, existem módulos de bibliotecas capazes de realizar este tipo de procedimento de uma maneira mais rápida e simples, como aqueles contidos nas bibliotecas Scikit-learn e Pandas. Assim como observamos, até aqui, as colunas, podemos também observar as linhas, analisando assim a similaridade entre palavras e não entre documentos inteiros. Nas abordagens anteriores, a dimensão do vetor é o número de documentos. Ao analisar palavras, a matriz de distância é igual ao tamanho do vocabulário, possuindo dimensões extremamente grandes em alguns casos. Essa matriz também é conhecida como matriz esparsa. As mudanças entre os códigos anteriores que serviam para comparação de documentos foram mostradas pelo professor. Algumas medidas de cálculo de distância foram consideradas, dada que a dimensão dos vetores, para a comparação de palavras, foi alterada consideravelmente. Como exemplo prático, o professor utilizou todas as ementas do curso de BCC, possuindo, cada uma, um total de 190 palavras diferentes, totalizando então 190 vértices de um grafo. Após a aplicação da normalização, um exemplo de similaridade entre palavras foi aplicado (lineares, complexidade e tempo são um exemplo). Um outro exemplo interessante demonstrado pelo professor via código e testado com as obras de Machado de Assis, um algoritmo indica todas as palavras similares em um contexto, dado um input de uma palavra qualquer. Este mesmo exemplo foi aplicado a um livro de Processamento de Linguagem Natural e, ao digitar a palavra “datasets”, foram obtidos resultados como “thesaurus” entre outras palavras. Em um interlúdio da aula, o professor comentou a respeito de atividades bônus que podem somar notas às médias finais. Através do incentivo à pesquisa, o aluno deve resumir uma tese ou dissertação defendida ano passado e responder a pergunta: “Por que o trabaho vale um mestrado/doutorado”?
Tamiris Gabriele da Silva Lira A aula 9 de Processamento de Linguagem Natural começou, como de praxe, com uma breve retomada dos conteúdos da aula anterior, com foco no conceito de Matriz termo-documento, que indica a quantidade de vezes que um termo é encontrado em um documento. É possível utilizar uma matriz de co-ocorrência para indicar termos encontrados em documentos diferentes e suas respectivas quantidades. Assim, se os vetores produzidos contendo a quantidade de diferentes termos em cada documento são similares para dois documentos diferentes, então esses documentos são similares. A dimensão de cada vetor (as colunas no exemplo indicado no slide 3) indica, portanto, o tamanho do vocabulário do documento. Se analisarmos as linhas da matriz de co-ocorrência, no entanto, notamos que a dimensão desse vetor indica o número de documentos analisados. Como a matriz de co-ocorrência analisa TODAS as palavras de TODOS os documentos, é natural que existam muitos elementos nulos nos vetores, já que podem existir palavras que estão presentes em apenas alguns documentos. Em seguida estudamos Medidas de Similaridade, que usam medidas de distância para medir a semelhança entre os documentos. A primeira medida de distância apresentada foi a Distância Euclidiana, que segue a fórmula sqrt(?(xi-yi)²). A Distância de Manhattan, também conhecida como "distância de quarteirão", foi apresentada em seguida e utiliza a fórmula ?|xi-yi|. Muito usada, a similaridade de cossenos utiliza a fórmula sim(A, B) = (A.B)/||A||B||. A similaridade de Jaccard considera os elementos em comum em um grupo e usa a fórmula [J(A,B)=|Interseção (A,B)|/|União(A,B)|] para calcular a distância entre os grupos. Foi apresentado pelo professor, em seguida, um programa em python apelidado de teste1.py que calcula a similaridade entre documentos. Para isso, o programa lê os documentos, calcula as frequências das palavras nas obras, calcula a distância entre os documentos, normaliza essas distâncias utilizando o método MiniMax e, por fim, cria um grafo que mostra a similaridade entre os documentos. Utilizando como entrada um documento que possui ementas de seis disciplinas do curso de Ciência da Computação na UFABC, o programa identificou um vocabulário de 109 palavras e gerou um grafo que mostra, por exemplo, uma grande similaridade entre pln e aed1. O programa foi alterado para que gerasse um grafo que levasse em consideração apenas distâncias maiores que 0.5. O mesmo programa foi executado tendo como entrada 4 documentos: Dom Casmurro, Memórias Póstumas de Brás Cubas, Quincas Borba e Esaú e Jacó. O grafo gerado mostra uma grande similaridade entre Dom Casmurro e Memórias Póstumas de Brás Cubas. Os grafos foram gerados novamente, dessa vez utilizando a Similaridade Cosseno em vez da Euclidiana, o que gerou algumas mudanças no peso das arestas. Considerando a similaridade entre palavras, o programa teste3.py calcula a distância entre palavras e cria um grafo de similaridade entre documentos. A visualização desse grafo é difícil e, portanto, também foi gerado um que considera distâncias maiores que 0.95. Também foi mostrado um exemplo no qual a similaridade entre os documentos é demonstrada através de uma matriz de correlação. O programa teste6.py retorna as palavras semelhantes à uma dada como entrada. Por fim, o professor propôs um desafio no qual, para obter 0.5 ponto extra na nota final, devemos escolher uma tese de mestrado ou doutorado na área de processamento de linguagem natural e resumí-la, com entrega através do Tidia.
Willian Teruya Kimura Na aula referente ao dia 04/07, foi dado continuidade ao tema de semântica e similaridade de palavras, dessa vez dando foco em matriz termo-documento. Para entender, é importante compreender o conceito de matriz de co-ocorrência, em que dois documentos são similares se os vetores são similares entre si, sendo que a dimensão do vetor é o tamanho do vocabulário, sendo assim, algo próximo a N^(|V|), na coluna, e a dimensão do vetor em linha é equivalente ao número de documentos, ou seja, N^(|D|). A similaridade entre palavras leva em consideração todas as palavras contidas em todos os documentos analisados, porém os vetores contêm muitos vetores nulos, os vetores esparsos, o que pode acarretar as análises acerca de similaridades. Além disso, o vetor depende da quantidade de documentos utilizados. Para verificar a similaridade, é usado medidas utilizando conteúdos referentes a álgebra linear, relembrando conceitos como distância de um ponto a outro ou o comprimento do vetor dado um espaço, sendo ele tridimensional, com exemplo conceitual inicial. Em seguida, foi apresentado como a análise dos quatros documentos “Henry V”,”Julius Caesar”,”As you Like It” e “Twelfth Night”, estão relacionados a duas palavras em um vetor 2D. É possível, por meio desses vetores, verificar medidas de similaridade como por exemplo: Distância Euclidiana, Distância de Manhattan, Similaridade de cosseno, Similaridade de Jaccard (Utiliza-se da divisão da intersecção de conjuntos com a união de conjuntos). Para verificar a similaridade, foi utilizado um script python para descrever a distância entre dois documentos, utilizando anteriormente um algoritmo para se calcular a frequência das palavras nas obras, armazenando todo seu vocabulário em listas. A partir disso, cria-se o grafo da similaridade entre os documentos, imprimindo-o no final. Após a explicação, foi apresentado um exemplo utilizando informações de conhecimentos referentes a algumas matérias da computação. Ao ver o resultado, ainda houve uma alteração de seu algoritmo para definir o grafo a partir de um limiar. Em seguida, foi usado um algoritmo agora usado para calcular similaridade entre palavras, verificando assim todas as palavras de cada documento usado. A questão de usar o algoritmo com foco nas palavras gerou um grafo com um tamanho muito maior comparado à similaridade de grafos, o que é esperado, já que há uma enorme quantidade de palavras. No algoritmo teste4.py, foi gerado diferentes grafos, ao qual relacionam casos mais específicos de termos e sua relação entre outras palavras, gerando um segundo vocabulário. O arquivo teste5.py gerou um gráfico para averiguar a interpolação entre os vocabulários, sendo eles mensurados pela escala de verde no gráfico plotado. O teste6.py gera uma lista de palavras pertencentes ao vocabulário ao qual existe similaridade relativa, verificando juntamente com a distância entre cada palavra, imprimindo assim o quão similar cada palavra é de uma palavra inserida pelo script. Para finalizar, foi lançado um desafio para se estudar alguma tese/dissertação relacionado a PLN a partir de 2018 e desenvolver um resumo em que responde a segunda pergunta: Por que o trabalho vale um mestrado/doutorado?
Paula Keiko Miyashita A aula 9 foi uma continuação da aula anterior, focada em semântica e similaridade de palavras. Após revisar a matriz termo-documento, começamos a projetar os dados dessa tabela em vetores (utilizando duas linhas/palavras da tabela). Também é possível, a partir dos valores da tabela, criar vetores das palavras, cada palavra tendo seu vetor de N dimensões, onde N é o número de documentos na tabela. Assim, vetores semelhantes representam palavras semelhantes. Existem diferentes métodos de medir a proximidade/semelhança entre vetores, durante a aula foram apresentados a Distância Euclidiana, Distância de Manhattan, Similaridade do Cosseno e a Similaridade de Jaccard (utilizada para similaridade de conjuntos). Em seguida foram apresentados alguns exemplos de código em Python. O primeiro calcula a similaridade dos documentos a partir da frequência de aparição de cada palavra nos documentos utilizados e depois calcula a distância entre todos os documentos e as coloca em uma tabela. A tabela final pode ser normalizada e ilustrada em forma de rede, onde os documentos representam os nós e as arrestas entre eles contém o valor de similaridade normalizado (desta maneira os documentos mais semelhantes compartilham uma aresta de peso 1). Ao utilizar um grande número de documentos, a rede se torna extremamente poluída pelo excesso de número de arestas (sendo que cada nó teria N-1 arestas), logo com uma pequena modificação no código podemos definir um peso mínimo da aresta para que esta seja adicionada ao grafo. Foi demonstrado a utilização deste algoritmo sobre quatro obras de Machado de Assis, utilizando tanto a distância Euclidiana quanto a Similaridade do Cosseno para demonstrar a diferença nos grafos finais. O teste3, terceiro código estudado durante a aula, utiliza a distância entre palavras considerando sua presença nos documentos estudados. Da mesma maneira que o exemplo anterior, gera-se o grafo mas, desta vez, os nós são representados pelas palavras. Da mesma maneira, é possível normalizar os valores de distância e limitar quais as arestas serão desenhadas. Para retirar palavras sem importância no texto (como artigos e preposições), no exemplo 4 desconsidera-se as palavras com tamanho menor que 10. Essa solução não é a ideal, mas é simples e remove grande parte das palavras indesejadas para o algoritmo, assim o grafo gerado é menos poluído e os valores de distância fazem mais sentido. O teste 5 mostra uma forma diferente de ilustrar as distâncias, ao invés de gerar um grafo, usa-se o gradiente de uma cor para mostrar quais palavras estão mais distantes umas das outras. Por fim, o teste 6 é um script que recebe uma palavra do usuário e devolve todas as palavras com distância 1 (normalizada) desta palavra, neste código a distância 1 significa proximidade máxima. Para finalizar a aula, foi explicado o Desafio bônus onde o aluno deve ler e resumir uma tese de mestrado ou doutorado de 2018 que aborde PLN e explicar por que o trabalho vale um mestrado/doutorado. O valor da atividade é um bônus de 0.5 na média total.
Renan Baisso Aluno: Renan Baisso RA: 11064215 Retomando nosso estudo de Processamento de Linguagem Natural (PLN), as matrizes de co-ocorrência de termo documento descrevem documentos, que são as colunas, com relação a contagem de suas palavras, as quais são as linhas, isto é, o vocabulário do corpus, desta maneira é possível analisar a similaridade de documentos através de comparações entre colunas e a semelhança de palavras analisando as linhas. Basicamente esta matriz pode representar as obras no espaço vetorial do vocabulário, em que a distância neste espaço representa a similaridade entre os objetos de estudo. Sendo que nessa estrutura há vetores esparsos (com elementos nulos), os quais representam palavras não incidentes em uma determinada obra, mas que está presente entre as outras. Assim como já foi mencionado, pode-se analisar a semelhança como uma distância no espaço vetorial desta matriz, entretanto, ainda não definimos como será feito o cálculo desta medida, por isso, discutimos diversas técnicas para chegar a um valor que faça sentido. Dentre as técnicas, podemos citar a Distância Euclidiana, que é a mais simples de ser calculada e que leva em consideração a distância mínima entre dois pontos. Também temos a Distância de Manhattan, a qual respeita os eixos do espaço e a distância é a composição de vetores que seguem a orientação dos eixos. E a medida de Similaridade de Cossenos, a qual verifica a distância através de ângulos. Ainda temos a Similaridade de Jaccard, a qual é utilizada para calcular a similaridade de conjuntos e faz isso através da relação da Intersecção pela União, esta é mais complexa entre as citadas. Apesar de já termos algumas definições de como verificar a distância entre elementos de linguagem natural, se fizermos o uso destas técnicas em alguns cenários, existe a possibilidade de chegarmos a um não entendimento claro da distância, por isso é de extrema importância conseguirmos transformar os resultados em informações coerentes, logo, a utilização da normalização de medidas dentro do espaço vetorial em que as similaridades estão sendo analisadas acaba sendo amplamente utilizada, como por exemplo, a normalização min-máx, que mesmo sendo uma técnica simples já eleva a qualidade dos resultados para as nossas análises. Vamos a alguns exemplos: Dado a ementa de algumas matérias do Bacharelado em Ciência da Computação (BCC), para que seja feita a análise de similaridade entre os conteúdos das disciplinas, precisamos utilizar a matriz de co- ocorrência para chegar às medidas de similaridade dos documentos deste contexto através das técnicas discutidas anteriormente. O resultado dos procedimentos, os quais resultam em valores de distância entre as ementas, pode ser gravado em uma estrutura de dados que representa um grafo de relação entre as matérias do curso, o qual facilita a leitura dos resultados, técnicas como esta que facilitam a visualização de dados são conhecidas como “Data Visualization”. Além do grafo, ainda podemos representar os dados em uma matriz de calor, a qual mapeia as relações através de cores em uma matriz preenchida apenas de um lado da diagonal principal.
Renato de Avila Lopes Resumo 09 Semântica e similaridade entre palavras Parte 2 Matriz de coorrência termo documento Dois documentos são similares 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 Medidas de similaridade 1D 2D 3D Medidas de similaridade no vetor 2D dos quatros documentos Distância euclidiana Distância de Manhattan Similaridade de Cosseno Similaridade de Jaccard Similaridade entre documentos Dois documentos são similares se os vetores são similares Foi utilizado o programa teste1.py sobre a ementa de seis disciplinas do bcc (AED1 AED2 BCC PE PI PLN) As disciplinas com maior similaridade entre si são AED1 e PLN (distancia Euclidiana) Utilizando distância de Cosseno PE e PLN Sobre quatro obras de Machado de Assis (Dom Casmurro Esaú e Jacó Memórias Póstumas de Brás Cubas e Quincas Borba) Tamanho do vocabulário 25911 Maior similaridade Dom Casmurro e Memórias Póstumas de Brás Cubas AS ementas das disciplinas geraram um vocabulário com 109 palavras (stopwords inclusas) São elas: modelagem operadores indexados c da todos e ao sequenciais estruturas apresentar fundamentais sobre correlação linguagens dos matrizes lógicos compressão estatística tipos clássicos regressão busca balanceadas interpretação parâmetros computacional melhores técnicas análise alocação passagem seleção recursividade acesso dados conceitos ponteiros aritméticos árvores em aplicações programação natural vetores repetição registros breve apresentados dinâmica os gráfica processos básicas práticas ciência resolução introdução das algoritmos programas hashing condicionais aplicar direto base discurso na no ordenação lógica funções linguagem variáveis processamento memória novos de problemas estática sequenciais fundamentos lineares saída complexidade intermediárias depuração computação sintático contexto compiladas simulação semântica prática entrada tempo parsing noções arquivos gramáticas a compilação à precedência execução primitivas métodos representação Esse número seria menor se fossem retiradas as stopwords e / ou utilizado um stemmer Exemplo as palavras sequência e sequenciais / apresentar apresentados e representação teste2.py utilizado para a distância de cosseno Cosine (v, w) = v * w / |v| |w| teste5.py gera um mapa de calor Programa teste6.py recebe uma palavra como entrada e retorna as palavras conectadas (similares) Utilizando com as obras de Machado de Assis e usando a palavra defendendo como entrada retorna-se: separar-nos comerciante honestidade respondendo demoradamente importância continuando aborrecível desfazendo sussurrava chegaremos interrompesse ressentimentos Utilizando com o nlp-book e entrando com a palavra datasets o programa retornou as seguintes palavras por ordem de similaridade: thesaurus sufficient developed descent direction itself bigrams digital showed predict expressed points elements configuration personality combine difficult metrics starting dependent tokenization spanning earliest No final da aula o professor informou sobre um desafio valendo 0.5 pontos na média final que consiste de um resumo nos mesmos moldes dos resumos de aula de uma tese e/ou dissertação relacionada a PLN, defendida em 2018 Tem que explicar a contribuição proposta pelo candidato e porque o trabalho vale um mestrado ou doutorado
Lucas Kenzo Kurokawa Continuamos a aula anterior definindo um parâmetro para compararmos similaridade entre dois documentos: matriz de co-ocorrência, que diz se os vetores de palavras (dimensão |V| sendo V o número de palavras únicas) dos 2 documentos são similares, os documentos também são. Então, podemos construir a matriz termo-documento de tamanho proporcional ao número de documentos para calcular a similaridade dos documentos. Estes vetores possuem muitos valores nulos e as distâncias podem ser calculadas de diversas formas: distância euclidiana e Manhattan, similaridade de cossenos, Jaccard, Dice, JS, etc. Após a introdução da parte teórica, vimos a parte prática do processo que contemplava alguns algoritmos e tarefas para de similaridade. Primeiro vimos um algoritmo para construção de vocabulário, cálculo de frequência das palavras nos documentos e similaridade de documentos por distância euclidiana e como criar o grafo de documentos. Depois vimos um exemplo de uso ao compararmos 6 documentos, algumas ementas de disciplinas do bacharelado em ciência da computação. Ao testarmos os algoritmos, obtivemos um vocabulário de tamanho 109 e ao plotarmos o grafo de similaridade gerado, percebemos que entre essas ementas, a de PLN é mais parecida com AED1 e a ementa de PE é a menos parecida com BCC. Para avaliarmos a similaridade, normalizamos os valores, por exemplo, com min-máx. Como tivemos poucos documentos, a visualização foi trivial, porém existe um meio de melhorar a visualização dos dados do grafo, se usarmos um dropout, ou seja, definirmos um piso mínimo de similaridade entre os documentos. Já no caso de replicarmos os algoritmos em 4 obras de Machado de Assis, temos um vocabulário bem mais extenso (25911 palavras), e observando o grafo gerado vemos que entre estas 4 obras, “Dom Casmurro” e “Memórias Póstumas de Brás Cubas” são os mais próximos e “Quincas Borba” e “Memórias Póstumas de Brás Cubas” são os mais diferentes. Ao trocarmos o meio de cálculo de similaridade de distância euclidiana para similaridade de cossenos, tivemos alterações nos resultados: no contexto das ementas, tivemos que PE e PLN são os mais similares. Além de similaridade de documentos, também podemos calcular a similaridade de palavras com os vetores de ocorrência, isto é, se o número de ocorrências de duas palavras é similar, então as palavras são similares. Com isso, podemos gerar também um grafo de similaridade, porém como o número de vértices desse grafo é de escala bem superior que o de documentos (as 6 ementas possuem 109 palavras distintas), é necessário o uso de um limite de inclusão. Mesmo com este tratamento, ainda é difícil a visualização dos dados por meio de grafos, então uma alternativa seria o uso de uma matriz das palavras. Com isso, também podemos usar algoritmos para achar palavras similares dado uma palavra de entrada. Ao fim da aula, o professor introduziu um desafio de resumir alguma tese de doutorado ou mestrado de 2018 valendo 0,5 pontos na média.
Joao Victor Fontinelle Consonni A nona aula de PLN tratou de semântica e similaridade de palavras. O primeiro tópico da aula foi a utilização de uma matriz de co-ocorrência para criar uma matriz termo-documento. Cada coluna dessa matriz representa um documento analisado, enquanto as linhas representam o universo de palavras presentes nesses documentos, sendo que cada linha é um termo. A interseção entre linha e coluna apresenta o número de vezes que um dado termo aparece num dado documento. A matriz termo-documento é esparsa, o que implica na ocorrência de muitos elementos nulos. O tamanho da matriz está diretamente relacionado ao número de documentos analisados. Essa matriz permite elencar as palavras mais frequentes em um documento, considerando todo o seu vocabulário, assim como permite conduzir analises de similaridade entre diferentes documentos. Duas colunas similares são um indicador de similaridade entre dois documentos, enquanto duas linhas similares podem representar palavras sinônimas ou relacionadas. A similaridade entre palavras considera todas as palavras presentes em todos os documentos. A medida de similaridade deve considerar um método para cálculo de distância, como a distância Euclidiana, a distância de Manhattan, a similaridade por cosseno, ou ainda a similaridade de Jaccard. Como demonstração, foi apresentado um código em python que faz a leitura dos documentos, calcula a frequencia das palavras em cada documento, computa a distancia entre documentos considerando a distância euclidiana e, por fim, cria um grafo de similaridade. O código recebeu como corpus de entrada a ementa de alguns cursos da computação da UFABC e destacou como semelhantes as disciplinas de AED1 e PLN, assim como as de AED1 e PI. Em seguida, o mesmo código foi aplicado sobre algumas obras de Machado de Assis, ressaltando a similaridade entre Dom Casmurro e Memórias Póstumas de Brás Cubas. Esses resultados foram diferentes ao se utilizar um método de cálculo de distâncias distintos. Usando a distância por similaridade de cossenos, as disciplinas mais similares entre si foram PLN e PE, seguidas por AED2 e PLN. Vimos também exemplos de similaridade entre palavras, o que resultou em grafos muito maiores em complexos quando comparado aos grafos de similaridade de documentos. Isso é evidente, pois a cardinalidade do vocabulário é muito superior à do número de documentos. Fazendo um filtro por palavras com ao menos 10 caracteres tornou o gráfico mais legível, mas restringiu enormemente o universo de análise. Além disso, foi discutida a importância da forma de representação da informação e como isso pode afetar a interpretação dos dados. Por fim, foi apresentado o primeiro desafio da disciplina, valendo meio ponto na média final. Os interessados devem elaborar um resumo, nos mesmos moldes dos resumos de aula, de uma tese de mestrado ou doutorado relacionada a PLN e que tenha sido defendida em 2018. O resumo deve responder "por quê o trabalho vale um mestrado/doutorado?"
Jairo da Silva Freitas Junior Na Aula 9 de Processamento de Linguagem Natural continuamos os estudos de Semântica e Similaridade de palavras. Dado um conjunto de documentos, extrai- se o vocabulário dos mesmos e a partir dele podemos criar a matriz de co- ocorrência termo-documento, em que cada obra é representada pela frequência de cada palavra contida em si ou, inversamente, cada termo tem sua representatividade no domínio das obras apontado. Esta matriz tem tamanho N x V (onde N é o número de obras e V é o tamanho do vocabulário) e os vetores nela contido são esparsos, afinal o domínio de um documento costuma ser restrito e isso se reflete no repertório de palavras utilizadas. Um aspecto interessante da matriz termo documento é que podemos usar a coluna correspondente a cada obra literária como um vetor no espaço do vocabulário e assim calcular a similaridade entre documentos usando alguma métrica de distância. A métrica mais trivial de distância entre documentos é a distância euclidiana, calculada como a raiz da soma do quadrado da diferença entre as coordenadas dos vetores, ou simplesmente a distância em linha reta entre dois pontos. Outra distância conhecida é a distância de Manhattan (ou de quarteirão) que é a distância entre dois pontos respeitando-se a restrição de que as movimentações devem ser paralelas a um eixo do espaço ortogonal. Uma métrica menos conhecida, porém igualmente importante, é a Similaridade de cosseno, que mede o cosseno entre dois vetores, sendo por isso uma medida já normalizada. A normalização é importante pois um resumo bem-feito e uma obra completa deveriam ser similares, porém sem a normalização o vetor do resumo terá uma distância enorme a obra em que se baseou pois, mesmo que compartilhem o mesmo vocabulário, a obra principal é um múltiplo escalar desta síntese. Após a introdução destes conceitos, vimos a aplicação dos conceitos em códigos Python. O primeiro teste foi a geração de uma matriz termo-documento com base nas ementas de algumas disciplinas da computação da UFABC e em seguida calculada a distância euclidiana entre estes e aplicada normalização MinMax gerou-se o grafo desta matriz. Experimentou-se a aplicação de um filtro de similaridade mínima no grafo para simplificar a visualização. O mesmo script foi usado para analisar a similaridade das obras de Machado de Assis. Outros exemplos desenvolvidos pelo professor foram apresentados e não serão discutidos, exceto a alternativa para visualização destas matrizes que é o mapa de calor. Ao fim da aula o professor apresentou um desafio de resumo de um trabalho de dissertação de mestrado ou tese de doutorado relacionada a PLN defendido em 2018 valendo 0,5 pontos na média final. Importante destacar que o resumo deve incluir uma justificativa de porque o trabalho valeu o título conferido ao autor.
Luana Ferreira do Nascimento Inferência de texto juntamente com a similaridade de semântica de palavras são análises que devem ser feitas em processamento de linguagens naturais com a finalidade de analisar alguma palavra com relação a outra, ou até mesmo a mesma palavra com relação a ela mesma. A inferência de texto serva para trazer informações a cerca do significado de um certo trecho de um texto, indicando se uma parte do trecho indica a outra, enquanto a similaridade de semântica vai nos fornecer um valor que indicará o grau de similaridade entre um trecho e o outro, do ponto de vista semântico associando assim uma pontuação ao par de trechos ou palavras. Outro assunto abordado na aula foi como comparar o grau de importância dos termos de um documento, visto que nem todos os termos recuperadora de um texto ou documento possuem o mesmo grau de importância. Como este é o tema do meu PGC e estou usando esta aula para ajudar a escrevê- lo, vou continuar o resumo com o meu texto: Uma grande dificuldade da realização da tarefa de se interpretar um documento escrito está no fato de que a linguagem utilizada não possuir uma estrutura lógica fixa, está sempre aberta a interpretação. Sendo assim, precisamos de uma forma de descobrir quais são as palavras-chaves de uma certa fala, para então utilizá-las para descobrir qual o tema abordado e seu objetivo. Uma das formas tradicionais de se interpretar textos de forma estruturada é o bag of words, que consiste na contagem de ocorrência de palavras, permitindo uma forma de comparação entre diferentes textos, permitindo a realização de operações como o agrupamento. A contagem das palavras é realizada através de tabelas do tipo atributo-valor, onde o atributo seria a palavra que estamos analisando em cada documento e o valor é o grau de ocorrência calculado, que pode ser obtido de diversas formas conforme veremos mais a frente. Term Frequency Para cada token possível, guardamos a quantidade de vezes em que ele apa- rece em cada texto. Term Frequency Linear Aqui consideramos também o grau de ocorrência dos tokens em diversos textos simultaneamente, diminuindo seu valor quanto mais isso ocorrer. Esta técnica parte do princípio de que se um token aparece em muitos textos diferentes, então deve conter pouca informação sobre o tema dos textos em que ele aparece. Term Frequency - Inverse Document Frequency Muito similar ao tf-linear, o tf- idf (Term Frequency - Inverse Document Frequency) também considera a frequência de aparição em vá- rios documentos mas desta vez utiliza a Equação 3 onde o valor a ser registrado é representado por tfidf, para que o fator de ponderação idf seja um valor entre 0 e logN com N sendo o número de documentos na coleção.
Ricardo Gomes Nesta aula foi dado continuidade ao tema de semântica e similaridade de palavras. Foi retomado a análise da matriz termo-documento apresentada no fim da aula anterior. Nessa matriz de coocorrência, têm-se alguns termos e a quantidade de vezes em que cada um aparece em respectivos documentos. Tendo esses valores, é possível gerar vetores para cada documento relacionando as palavras desejadas. Os valores entre tais palavras determinam os pontos que formam os vetores num certo espaço dimensional. Palavras similares apresentam vetores similares e consideram todas as palavras presentes em todos os documentos. Uma vez com os vetores definidos, é possível analisar as distâncias entre eles através de diversas métricas para determinar a similaridade entre os mesmos. A métrica mais básica para determinar a distância entre dois vetores é a distância Euclidiana, que calcula a raiz quadrada da soma das diferenças quadradas entre as palavras, também conhecida como uma métrica mais simples de similaridade. Outras métricas bastante conhecidas são a distância de Manhattan, que mede a somatória das diferenças absolutas entre os valores das palavras, a similaridade dos cossenos, onde é calculado o ângulo entre dois vetores, e a similaridade de Jaccard, onde o valor da similaridade é definido pela divisão entre a interseção e a união de dois conjuntos de palavras. Como exemplo, para demonstrar um pouco o funcionamento da similaridade, foi mostrado um algoritmo que coleta as quantidades de palavras de vários documentos e realiza o cálculo das distâncias entre dois documentos. A base de documentos utilizada foram as ementas de algumas matérias relacionadas à área de computação e para visualizar as distâncias foi gerado um grafo com os nós sendo as matérias e as arestas suas distâncias. Analisando o grafo, é possível observar que várias ementas são bastante similares entre certas matérias e muito diferentes em relação a outras. Para selecionar as relações com maior grau de similaridade, o algoritmo foi modificado para montar o grafo apenas com arestas cujos valores forem superiores a um certo mínimo. Em outro exemplo, foram utilizadas obras de Machado de Assis como base de dados. Em uma comparação entre métricas, foram utilizadas novamente os grafos das matérias, uma com a distância Euclidiana e outra com a similaridade de cossenos. Observando a comparação, é visível a diferença entre métricas, onde relações entre os nós em cada um dos grafos mudam significativamente. Em outra modificação do algoritmo, é possível analisar os grafos de similaridade entre palavras em vez de documentos, assim como é possível modificar a visualização das similaridades, em vez de um grafo, pode-se usar uma matriz de calor (onde palavras apresentam certas cores quando a similaridade entre estas e outras é alta ou baixa).
Eracton Ferreira Ramalho A nona aula do curso teve como tema semântica e similaridade de palavras: parte 2. Continuando o que começamos a ver na aula passada. Vimos as matrizes de co-ocorrência, que são responsáveis por ver a similaridade entre dois documentos, através de seus vetores. Sendo assim, podemos definir que duas palavras são similares se seus vetores são similares. A similaridade entre palavras considera todas as palavras presentes em todos os documentos. Importante saber também que esses vetores têm muitos elementos nulos, chamados de vetores esparsos. Por fim, o tamanho do vetor depende do numero de documentos. O próximo passado do estudo são as medidas de similaridade, onde existem a distância euclidiana, a distancia de Manhattan, semelhança de cosseno e a semelhança de Jaccaard. Todas as formulas e representações gráficas podem ser observadas no slide de aula. Assim pode-se abstrair a ideia por três de cada uma dessas formas de medidas de similaridade. Vimos alguns algoritmos implementados em Phyton para que fosse feita a similaridade entre documentos. Primeiro o exemplo foi relacionado ao curso de BCC da ufabc. Nesse foram considerados os objetivos de algumas matérias obrigatórias ou limitadas do bcc. O tamanho do vocabulário foi de 109. Chegamos com isso a um grafo com arestas ponderadas. O outro exemplo que foi programado foi a relação entre obras do Machado de Assis, onde a intenção era a mesma, buscar as formas de encontrar as similaridades. A próxima fase seria encontrar a similaridade entre palavras. Nisso os grafos são bem maiores e complexos, pois há maior relacionamento. Foram implementados diversos códigos para mostrar a similaridade, sempre com a certeza que as palavras são similares quando os vetores são similares. Vimos gráficos que expressam melhor ainda cada uma das relações, ficando mais visual e fácil o entendimento. Por fim, ficamos sabendo da existência de um bônus para a matéria. Onde terá a possibilidade de fazer um trabalho e ganhar 0,5 pontos na media final (MF). A atividade consiste em um resumo de uma tese ou dissertação em nível de mestrado ou doutorado que seja relacionada à PLN e que seja do ano de 2018. Deixar nos mesmos moldes dos resumos que fazemos após todas as aulas. Responder a seguinte pergunta: “Porque o trabalho vale um mestrado/doutorado?” O envio deverá ser feito pelo tidia, pela seção “atividades”. Onde pesquisar isso? No catalogo de teses e dissertações ([https://catalogodeteses.capes.gov.br/catalogo- teses/!/](https://catalogodeteses.capes.gov.br/catalogo-teses/!/)) e buscar por “processamento de linguagem natural” e selecionar uma das 55 publicações de 2018. Os documentos estão disponíveis para leitura. Para entender melhor, ver os dois últimos slides da aula 9.
Laura Cestavo Borges Dos Santos Essa aula foi uma continuação da anterior e estudamos novamente semântica e similaridade de palavras. A matriz de co-ocorrência mostra que se dois documentos são similares se os vetores dentro da matriz são similares. A dimensão do vetor é o tamanho do vocabulário. Para representar essa matriz de forma gráfica, é possível fazer um gráfico comparativo entre duas palavras e usar vetores, onde a primeira coordenada do vetor se refere a palavra no eixo x e a segunda ao eixo y. Uma outra analise que pode ser feita na matriz é que, dada duas palavras, elas são similares se os vetores são similares e a dimensão do vetor é o número de documentos. A similaridade entre palavras leva em consideração todas as palavras nos documentos e por conta disso, os vetores tem muitos elementos nulos, são vetores esparsos. Para calcular a medida de similaridade é possível usar alguns métodos, como distancia euclidiana, distancia de manhattan, similaridade de cosine, entre outras. Em sala de aula, vimos um algoritmo para calcular a similaridade entre documentos e este foi testado a um texto que continha algumas disciplinas da computação. O resultado do algoritmo deu o total de documentos, o tamanho do vocabulário, a matriz de co-ocorrência e então produziu um grafo, que mostrava qual disciplina está mais perto da outra em relação a ementa, ou seja, quais são mais similares. Porém existiam pesos que eram muito pequenos, então foi feita uma alteração no algoritmo para somente considerar pesos maiores que 0,5. O mesmo algoritmo foi aplicado a quatro obras do Machado de Assis. Um outro algoritmo visto foi o que calcula a distancia entre palavras e gera o grafo, dessa vez, como estávamos lidando com um número maior pois estávamos calculando a distancia entre palavras, no grafo optou-se por só mostrar distancias/pesos maiores que 0,95. Há diferentes representações, além do grafo para checar a similaridade, uma outra proposta é um gráfico com escalas de cor distintas, indo de um tom mais claro da cor escolhida até um tom mais escuro, no caso visto em aula, a cor usada foi verde. Essa outra visualização funciona da seguinte forma, as palavras são escritas no eixo x e y e quanto mais semelhante as duas, mais escuro será o tom de verde na coordenada (x,y). O ultimo algoritmo visto foi um que dada uma palavra, que foi dada pelo usuário, ele busca quais são as palavras mais similares e que estão menos distantes daquele. O teste foi feito nas obras de machado e também no livro de NLP.
Giselle Silva de Santana Nesta nona aula, do dia 04/07/2019, foi abordado o assunto “Semântica e similaridade de palavras–Parte II”, sendo uma aula mais focada na parte prática, tendo sido apresentados alguns scripts em Python. Iniciou-se a aula abordando o assunto “Matriz de co-ocorrência: termo-documento”. Dois documentos são similares se os vetores são similares, sendo que o mesmo princípio serve para palavras similares. A dimensão do vetor é o tamanho do vocabulário: N^|V|, enquanto que no caso de similaridade de palavras, a dimensão do vetor é o número de documentos: N^|D|. A similaridade entre palavras considera todas as palavras presentes em todos os documentos, sendo que os vetores possuem muitos elementos nulos, sendo considerados vetores esparsos. A similaridade pode ser medida por diferentes métricas, como por exemplo, através da Distância Euclidiana que é sqrt(sum(xi-yi)^2). Também pode-se considerar a Distância Manhattan que é igual a sum|xi-yi|, Jaccard Similarity que é igual a |Intersecção (A,B)| / |União (A,B)|, dentre outras métricas. Após a breve apresentação sobre métricas, iniciou-se a apresentação dos scripts. O script teste1.py, apresentava a similaridade de documentos utilizando as ementas das disciplinas obrigatórias do Bacharelado em Ciências da Computação, calculando o número de documento, tamanho do vocabulário, frequência das palavras, distância entre documentos, além de criar o grafo de documentos com a similaridade entre os mesmos. O script teste3.py era muito similar ao script anterior, mas determinava a similaridade de palavras e não apenas entre os documentos. O teste4.py, ainda utilizando as ementas das disciplinas do BCC, criava vários grafos com a similaridade entre as palavras e suas distâncias como pesos. O script teste5.py, determinava a similaridade entre documentos e apresentava em forma de gráfico. Já o script teste6.py calculava a distância entre as palavras e determinava a similaridade entre documentos, e quando o usuário digitava uma palavra de entrada, o algoritmo retornava todas as palavras similares a ela, ou uma mensagem alertando que aquela palavra de entrada não estava presente no vocabulário. Por fim, para terminar a aula, nos foi apresentado um desafio para ser realizado no prazo de dez dias, valendo meio ponto na média final. O desafio consiste em fazer um resmo sobre uma tese ou dissertação de mestrado ou doutorado, respondendo o porque aquele trabalho vale um mestrado/doutorado, sendo que o trabalho deve ter sido no máximo defendido em 2018.
Diego Pereira de Lima Na aula de 4/7 sobre semântica e similaridade de palavras do professor jesus Mena Chalco da disciplina de Processamento de linguagem natural, foi apresentado diversos exemplos práticos de processamento de texto. Primeiramente foi apresentado uma matriz de concorrência que nada mais é do que uma forma de verificação sobre a frequência de palavras pelos documentos. A matriz pode ser visualizada também pelo “plot” da vetorização das palavras em relação a sua ocorrência nas obras, e para verificar se duas palavras são similares é só analisar se os vetores são similares. Para se calcular medidas de similaridade pode-se obter pela distância euclidiana (calculada a partir do comprimento de uma reta entre dois pontos), pela distância de manhattan (distancia projetada em eixos perpendiculares) ou pelo cosseno dado a partir do produto escalar entre os vetores. Há também as medidas baseadas na similaridade de Jaccard, que é calculada pelo módulo da intersecção entre os vetores com a união deles. Assim pela matriz de similaridade também, foi mudada a ótica da análise e o professor discorreu sobre a similaridade entre os documentos a partir da matriz. E assim demonstrou alguns algoritmos sobre esta identificação. Como caso de teste o professor utilizou a ementa das matérias aed1, aed2, bcc, pe, pi e pln para demonstrar o tratamento e a vetorização a partir da matriz. Feita a matriz é possível retirar o grafo conexo dos objetos (disciplinas) a serem utilizados retirando como peso das arestas a própria similaridade entre as disciplinas. Também foi utilizado obras literárias brasileiras com um vocabulário maior para evidenciar a tratativa dos documentos, evidenciando também a relação de similaridade entre as obras por grafo. Sendo que a distância foi calculada pelo cosseno do ângulo entre os vetores. Após a tratativa das obras literárias foi apresentado o tamanho dos vocabulários das ementas visões de grafos evidenciados pelo relacionamento e pesos das palavras, o histograma entre o relacionamento dos termos no corpus do texto. No final da aula, foi explicado além do resumo rotineiro das aulas, um resumo valendo 0,5 pontos na média sobre alguma tese ou dissertação de metrado ou doutorado, atual e sendo relacionado a processamento de linguagem natural. Para a busca foi indicado o catálogo de teses e dissertações da CAPES para selecionar a pesquisa a ser feita o resumo.
Michelle Kaori Hamada A aula de 04/07 foi a continuação da aula anterior seguindo para a parte II do tema “Semântica e similaridade de palavras”. Iniciamos a aula estudando de forma mais aprofundada a matriz termo-documento. A matriz de co-ocorrência também conhecida como termo-documento nos diz que dois documentos são similares se os vetores são similares. A dimensão desses vetores pode ser tanto em relação ao tamanho do vocabulário N^(|V|) ou ao número de documentos N^(|D|). Duas palavras são similares se os vetores (N^(|D|)) são similares, a similaridade entre palavras é considera todas as palavras presentes em todos os documentos. Esses vetores têm muitos elementos nulos - vetores esparsos -, o tamanho depende do número de documentos. Nas medidas de similaridade, podemos utilizar cálculos como a distância euclidiana , a distância de Manhattan, semelhança de cosseno, índice de similaridade de Jaccard e entre outros. Já dois documentos são similares se os seus vetores (N^(|V|)) também forem similares. Aplicando os conhecimentos anteriores para analisarmos a similaridade entre documentos, observamos o algoritmo do teste1.py para similaridade entre documentos, o algoritmo realiza a leitura dos documentos, calcula a frequência das palavras nas obras e realiza o cálculo da distância entre documentos, por fim, cria um grafo de documentos para observarmos a similaridade entre documentos. Para analisarmos os resultados foi aplicado o algoritmo nas ementas de algumas matérias do bcc na UFABC, a saída é uma matriz em que a parte de cima para a direita é preenchida e um grafo, por meio deles pudemos observar o quanto uma matéria é similar com a outra. Foi aplicado esse algoritmo também para 4 das obras do Machado de Assis com a distância calculada de formas diferentes (distância euclidiana e a distância de cosseno) para que pudéssemos observar a diferença entre as aplicações. O algoritmo seguinte era para a similaridade entre palavras, a diferença é que neste ele calcula a distância entre palavras ao invés de entre os documentos e então cria o grafo de similaridade entre palavras. O algoritmo seguinte teste4 leva em consideração apenas as palavras com mais de 10 caracteres. O teste5 por meio de um mapa de calor nos mostra a similaridade entre documentos. Já o teste6 dado uma palavra ela nos trás as palavras similares a esta dado o contexto.
Ramon Neres Teixeira Jardim Esta aula voltou a tratar de similaridade de palavras. No início da aula foi retomado o tema de matrizes de co-ocorrência, que podem passar a ideia da similaridade entre dois textos por meio de vetores preenchidos com as frequências das palavras presentes nos textos, sendo que textos com vetores parecidos são considerados parecidos. A partir das matrizes de co-ocorrência, é possível criar vetores que representam os textos, permitindo assim o cálculo da distância entre dois textos, o que nos ajuda a ter uma representação numérica dessa similaridade, ou seja, uma medida. Existem diversas técnicas de medir a distância entre os pontos representados pelos vetores textos, algumas delas são: a distância euclidiana, distância de Manhattan que quanto maiores, menos similares são os textos. Também pode-se medir a similaridade dos textos alguns métodos são: a similaridade de cossenos, a similaridade de Jaccard, entre outras formas. Ao longo da aula foram apresentados alguns programas que aplicam alguns dos conceitos da aula. O primeiro deles, o teste1.py, calcula a similaridade entre documentos contando o número de palavras em cada documento e com isso calcula o tamanho dos vocabulários dos textos de entrada. Depois disso, o algoritmo conta o número de aparições das palavras do texto e calcula a distância entre eles com o uso da biblioteca numpy. O programa também gera um grafo representando estas distâncias calculadas entre os textos. O segundo programa, o teste3.py calcula a distância entre palavras, também se baseando na matriz de co-ocorrência dos textos de entrada. O algoritmo tem a mesma ideia do teste1.py, sendo igual em alguns trechos, diferindo apenas no momento de fazer o cálculo da distância. O programa teste5.py calcula a distância entre as palavras dos textos de entrada e retorna um mapa de calor, exibido em formato de matriz de adjacência, de forma que as células representando palavras com maior similaridade ficam numa cor mais forte enquanto palavras com menor similaridade aparecem com células de cor menos intensa. Por último, foi apresentado o programa teste6.py. Este programa recebe como entrada uma palavra (além dos documentos) e retorna uma lista com algumas das palavras de maior similaridade, fazendo o cálculo da mesma forma dos programas anteriores, diferindo apenas na forma de apresentar os resultados.
Lucas Zanoni de Oliveira No início da aula 9 do dia 04/07/2019 foi apresentado o termo da matriz de termo-documento que pode ser classificada também como de co-ocorrência. O conceito em questão traz consigo a funcionalidade de verificar se dois documentos são similares, por meio da comparação dos vetores sendo dado o tamanho do vocabulário por N^|V| e o número de documentos por N^|D|, onde todas as palavras são consideradas. Depois foram apresentadas as medidas de similaridades que podem ser tratadas também como vetores (Ex: x, y, e z), e logo a distância dentre as palavras pode ser dada pela distância entre dois pontos definida pela função d = ((x2-x1)^2 + (y2-y1)^2)^1/2, caso seja euclidiana. Porém, temos também outras formas de calcular a distância entre duas palavras, sendo elas: Manhattan Distance, Cosine Similarity, Jaccard Similarity, Dice e JS, dentre outros. Feito isso, alguns exemplos práticos foram mostrados por meio do algoritmo teste.py que tem como função demonstrar a similaridade entre documentos. Para isso, as ementas de 6 matérias do BCC foram pegas e então o algoritmo foi aplicado. Como resultado foi obtido um fator de 0 a 1, onde 1 demonstra extrema similaridade, entre os cursos, gerando assim um grafo de relação. Outro exemplo foi o de 4 obras do Machado de Assis, onde a similaridade por meio do método Cosine foi demonstrado. Posteriormente o conceito de similaridade entre palavras foi introduzido, sendo muito similar ao de documentos em relação a seus vetores. Para visualização prática foi utilizado o algoritmo teste3.py sobre as mesmas matérias anteriores do BCC, porém agora gerando um grafo onde as arestas são as palavras e não os “documentos”, e de forma disruptiva o teste5.py que apresentou como resultado uma matriz de relação através de tons de verde. No final da aula foi apresentado o Desafio 1 que acrescerá um bônus de 0,5 pts na média, onde deverá ser realizado um resumo de uma tese ou dissertação de 2018 relacionada à matéria nos mesmos moldes dos feitos de cada aula, possuindo em média 500 palavras e justificando o porquê daquele trabalho valer um mestrado/doutorado (para busca dos documentos foi apresentado o Catálogo de Teses e Dissertações).
Leonardo Nascimento Em uma matriz de coocorrência termo-documento dois documentos são similares se os vetores são similares. O tamanho da matriz depende do tamanho do vocabulário e do número de documentos. A similaridade entre palavras considera todas as palavras presentes em todos os documentos. Ao projetar vetores com as palavras de cada documento e usar medidas de similaridade como distância Euclidiana, distância de Manhattan, similaridade de cossenos e similaridade de Jaccard podemos afirmar que dois documentos são similares se os vetores são similares. Foram apresentados seis scripts exemplificando como calcular a similaridade entre documentos. No primeiro temos a leitura dos documentos, onde as palavras são extraídas de cada documento e o vocabulário é construído, seguido do cálculo da frequência de palavras e o cálculo da matriz de distância euclidiana entre os documentos. Como produto final é possível obter a matriz de distâncias e o grafo de similaridade entre os documentos. O segundo script é semelhante ao primeiro, onde a única diferença está no cálculo da matriz de distâncias, que é feito usando a similaridade de cossenos. Comparando os resultados obtidos entre o primeiro e o segundo script, com o mesmo conjunto de documentos, foi possível observar que as características do grafo não se mantém se o método utilizado para o cálculo de similaridade muda, denotando a importância da escolha da medida. Os conjuntos de textos usados para testar esses scripts foram as ementas de algumas disciplinas do curso de Bacharelado em Ciência da Computação da Universidade Federal do ABC e as obras de Machado de Assis Dom Casmurro, Memórias Póstumas de Brás Cubas, Quincas Borba e Esaú e Jacó. No terceiro script é feita a medida da distância entre palavras em vez da distância entre documentos, e a diferença entre o quarto e esse é que o vocabulário se torna case insensitive e considera apenas palavras com tamanho maior ou igual a 10. Já o quinto script apresenta uma forma diferente de visualização, onde a similaridade entre palavras é apresentada como uma escala entre claro e escuro. O sexto considera um vocabulário de palavras com tamanho maior ou igual a 6 em vez de 10, e dada uma entrada pertencente ao vocabulário, apresenta as palavras com maior similaridade.
Carlos Eduardo Ramos Na aula 9, foi apresentado o conceito de matriz termo-documento ou matriz de co-ocorrência, onde definimos um vetor ´para os documentos de acordo com o número de ocorrências de uma palavra no documento. A dimensão do vetor é o tamanho do vocabulário do documento. A similaridade entre as palavras considera todas as palavras presentes em todos os documentos. As tuplas que definem os vetores são definidas por (termo,ocorrência) Para medir a similaridade entre os documentos, podemos usar medidas de distância entre os vetores termo-documento. A medida de distância pode ser conforme o cálculo da distância euclidiana, mas podem ser utilizadas outras maneiras de calcular as distâncias, como a distância de Manhattan (distância de “quarteirão”,onde a distância entre dois pontos é a soma das diferenças absolutas de suas coordenadas); ou a distância de cosseno, que ao invés de tomar a distância, usa o ângulo de inclinação entre os vetores. Outra abordagem é a similaridade por interseção entre os conjuntos. Foi apresentado o algoritmo que calcula a similaridade entre as ementas de algumas disciplinas do curso de ciências da computação na UFABC. O algoritmo faz a leitura dos documentos, calcula o número de documentos e o tamanho do vocabulário. Em seguida, calcula a frequência das palavras nas obras e por fim calcula a distância dos documentos. O algoritmo exibe a matriz de termo ocorrência, uma matriz simétrica preenchida apenas na parte triangular superior.O algoritmo também retorna um grafo de termo ocorrência com as frequências como arestas dos grafos e as disciplinas como vértices. O mesmo foi calculado com os textos da obra de Machado de Assis, todas as ementas de disciplinas do BCC da UFABC. Para a análise de similaridade das ementas do BCC, o grafo ficou muito denso, com muitos vértices e arestas, mas removendo uma componente conexa do grafo, foi possível analisar uma amostra da análise, onde outra forma de analisar mostrada foi a matriz de calor, onde o grau de similaridade é definido pela intensidade da uma cor, Por fim, foi definido uma atividade Bônus, um desafio para sumariza/resumir um trabalho de tese/dissertação relacionado a PNL, em nível de mestrado ou doutorado em 2018.
Luiz Gabriel Correia Semântica e similaridade de palavras parte II. Matriz termo-documento é uma estrutura usada para determinar a similaridade de dois documentos. Dois documentos são similares se os vetores são similares. Linhas são palavras, colunas são documentos. Podemos usar diversas medidas de distância para determinar a similaridade dos documentos, por exemplo a Distância Euclidiana. Para fazer isso representamos os documentos como vetores em um espaço n-dimencional, com n sendo o tamanho do vocabulário. Outra é a distância de Manhantan que soma a projeção do ponto em todos os eixos. Ainda podemos usar a similaridade de cosenos, onde usamos o coseno do ângulo entre os dois vetores, bastante usada em PLN. Podemos citar ainda Jaccard, xxx e xxx. Cada uma destas distância tem suas vantagens e desvantagens. Os scripts para teste medem a similariedade entre documentos. Usa um dicionário de documentos e um conjunto para o vocabulário. Os arquivos são colocados em um diretório o programa faz a leitura de todos eles. Cada arquivo passa por uma expressão regular para obter as palavras, e são obtidos o vocabulário e o total número de palavras. Construir uma matriz com V linhas e D colunas e faz uma contagem para cada elemento da matriz contando quantas vezes cada palavra está presente em cada documento. Para ver a distância entre documentos usamos uma matriz DxD, inicialmente com todos os valores NaN. Não precisamos calcular todos os valores, já que a matriz é simétrica. No caso, calculamos a matriz triangular superior. Usamos a função do numpy de algebra linear de norma, ou seja, a distância euclidiana. Usando a normalização minmax garantimos que os valores na matriz triangular estejam entre 0 e 1. Com este dados pode-se montar um grafo. Podemos também construir um grafo de relações de toda palavra com toda palavra, o resultado é um grafo complexo com várias componentes conexas. Como o grafo fica muito denso, podemos representar como uma matriz de semelhança com cores, de branco à verde. Quanto mais verde, mais relacionado. Ista representação também é chamada de Matriz de Calor.
Matheus de Araujo Vargas Na aula de Processamento de Linguagem Natural do dia 4 de Julho do professor Jesus P. Mena foi aprofundado o conceito de similaridade entre strings Matching, com a apresentação de tácticas que utilizam matriz termo-documento e matriz termo-termo. Dada uma matriz onde em uma dimensão estão termos e em outra estão documentos, podemos verificar a similaridade entre as palavras e entre os documentos que compõem essa matriz. Dois documentos são similares se os vetores são similares e, igualmente, suas palavras são similares se os vetores são similares. 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. Para se medir a similaridade entre palavras/documentos, algumas medidas de distância podem ser utilizadas. Dentre elas, podemos citar a distância euclidiana e a distância de manhattan. A distância euclidiana mede a distância de um vetor ao outro em uma "linha reta", podendo ser representada pela raiz da soma ao quadrado das distâncias em cada dimensão. Já a distância de Manhattan, considera a soma das distâncias entre cada dimensão dos vetores. Quanto menor essa distância entre diferentes vetores, mais similares eles são. Podemos utilizar também a similaridade de cossenos ou a similaridade de Jaccard. A similaridade de cossenos mede o cosseno entre dois diferentes vetores. Já a similaridade de Jaccard é calculada como, dados dois conjuntos, a cardinalidade da concatenação entre esses dois conjuntos dividido pela cardinalidade da união desses dois conjuntos. Para essas medidas, quanto maior o seu valor, mais similares diferentes vetores são. Diversos exemplos foram apresentados na aula, utilizando a linguagem de programação Python. Para representar a similaridade entre palavras e/ou documentos, podemos utilizar a representação através de grafos. A similaridade de palavras pode ser útil em diferentes tipos de aplicações, como por exemplo: Recuperação de Informação (IR), busca por elementos similares, detecção de plágio, busca por regiões similares, agrupamento de textos e busca por conjuntos de textos similares.
Rafael Augusto Zanatta Casamento aproximado entre strings , Semântica e similaridade de palavras e documentos: No casamento aproximado entre strings, um dos fatores que devemos levar em consideração é o contexto em que a palavra se encontra. Uma das formas de identificar erros nas transmissões de informação é utilizar a distância de Hamming, que mede a quantidade de bits usado na mudança de uma transmissão para a recepção. No caso, para strings, podemos utilizar a distância de Levenstein, que mede a quantidade de diferenças entre duas strings, levando em consideração operações como inserção, exclusão e substituição, para transformar uma string em outra. Esse método leva a uma árvore de distâncias, tal que o cálculo da distância entre duas palavras de tamanho n, pode utilizar mais de uma vez o cálculo de palavras de tamanho n-1. Existem definições que temos que levar em consideração sobre o significado das palavras. Para isso, temos que considerar também os métodos de stemming (parte de uma palavra), lemmatization (forma básica da palavra), lemma (palavra sem inflexão) e wordform (palavra com inflexão). Matriz de co-ocorrencia: Matriz termo-documento dizemos que dois documentos ou palavras são similares se seus vetores são similares. A similaridade entre palavras considera todas as palavras presentes em todos os documentos. Quando os vetores têm muitos elementos nulos (esparsos) e o tamanho do vetor depende do número de documentos. Medida de similaridade e similaridade entre documentos: Analisando as medidas desses documentos temos que a distancia Euclidiana é a mais utilizada, porém outras medidas também são utilizadas como a distância de Manhattan, a similaridade de Jaccard ou a similaridade de cosseno que é o tipo de medida mais encontrado nas bibliografias para esse tipo de análise. Podemos utilizar essas similaridades, por exemplo, em um sistema de recomendação de obras, pois analisamos as distâncias entre um documento (obra) e outro para fazer tal recomendação, assim, a probabilidade da pessoa que já leu ou comprou um determinado livro possivelmente irá gostar da recomendação, pois será similar.
Marcelo de Souza Pena Começamos a aula 9 com uma pequena revisão sobre matriz de co-ocorrência e como representar a similaridade entre termos e entre documentos por meio de um vetor cujas coordenadas são a frequência dos termos presentes nos documentos. Existem diversas formas de medir a similaridade usando estes vetores, todas medindo a distância entre eles de uma forma diferente. A distância euclidiana mede a raiz da diferença ao quadrado, mas não é a melhor. Distância de Manhattan mede a distância como blocos ou “quarteirões”, pode ser um pouco melhor. Ainda existem similaridade do cosseno, que pode ser melhor, similaridade de Jaccard (interseção de conjunto dividida pela união), também pouco usada, Dice e JS. A escolha de uma delas depende muito do que se quer representar. Vimos alguns algoritmos. O 1 abre todos os arquivos de uma pasta e conta vocabulário e palavras, cria matriz de distância preenchida somente o triângulo superior (pois a matriz é espelhada), calcula distancia euclidiana (também dá para usar similaridade de cossenos), normaliza por mimmax, cria um grafo que mostra a similaridade entre os documentos (isso também pode ser usado para ver a similaridade entre obras ou entre séries, temporadas, etc) ou entre ementas de matérias da computação ou obras de Machado de Assis, neste caso. O algoritmo 3 fixa linha e varia a coluna, fixa as palavras e varia os textos, fazendo um grafo mostrando a similaridade entre os documentos normalizada. No 5 entra uma matriz de distância e imprime uma matriz colorida de branco a verde de acordo com a similaridade. O algoritmo 6 mostra as palavras mais similares à palavra do vocabulário que você digitou. Atividade bônus valendo meio ponto na média final da disciplina: procurar uma tese ou dissertação no catálogo de teses e dissertações, pegar um de mestrado ou doutorado de 2018 e resumir. Por que o trabalho vale um mestrado ou doutorado? Até 14 de Julho.
Pedro Ricardo Bronze Semântica e similaridade de palavras: Parte II. Matriz termo-documento. Podemos ter uma representação bidimensional de duas palavras, cada qual representando um eixo e plotar vetores nesse espaço de acordo com a quantidade daquelas palavras no texto. Consideramos a utilização da distância Euclidiana, um dos problemas dessa abordagem é que obras maiores podem ser representadas de formas distorcidas. Outra forma de calcular distância é a Manhattan, Cosseno, Jaccard, Dice entre outras. No algoritmo apresentado o programa lê um diretório e de lá extrai strings para cada '.txt' armazenando as palavras das strings em dicionários (dicts) e conjuntos (sets) e a partir daí realizamos uns normalização min-max para criar um grafo de similaridade entre documentos. Um exemplo seria utilizar entre as ementas das disciplinas da computação e estudar quais e quão próximas estão. Uma forma de reduzir a quantidade de conexões "fracas", ou seja, com pouca similaridade seria utilizar um limiar mínimo a partir do qual o é adicionado ao grafo uma nova conexão de termos. Uma forma interesse de se estudar o impacto de diferentes métricas de similaridade é implementando nos algoritmos disponíveis e analisando os gráficos gerados via GraphViz. Assim como documentos, podemos estudar a similaridade entre palavras, sendo a dimensão do vetor o número de documentos. A matriz de distância neste caso pode ser consideravelmente grande e geralmente esparsa, afinal diversos documentos podem não conter as palavras comparadas. É possível gerar grafos para estudar padrões de conectividade na ocorrência de palavras. No 5º programa uma matriz de similaridade é gerada permitindo uma visualização mais intuitiva para os olhos humanos. No 6º script temos um programa que consegue, dado um input retornar palavras similares (distâncias próximas) Foi apresentado um desafio para apresentação breve de uma tese de mestrado ou doutorado do último ano, com 10 dias de prazo de entrega via GoogleDocs valendo 0.5 na nota final.
Matheus Dos Santos Pereira Resumo da aula 09, continuação da aula 08, semântica e similaridade de palavras parte 2, a primeira parte da aula vimos matriz de co-ocorrência, a dimensão do vetor montado pela matriz corresponde ao tamanho do vocabulário, alguns pontos sobre a matriz: 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. Existem diversos modos de se calcular a distância, podemos usar a geometria euclidiana (a geometria básica ensinada na escola), ou a geometria do táxi (mesma geometria aplicada em aplicativos de locomoção urbana), entre outros metodos de calculo. Depois disso foi mostrado como efetuar estes cálculos usando o python, e alguns exemplos do código, e após isso foi feito a aplicação, em partes do projeto pedagógico do bcc, especificamente algumas matérias e suas relações entre elas. E após isso a aplicação nas obras do machado. Foi mostrado também como gerar um grafo que mostra o nível de similaridade entre as matérias, com base na leitura do projeto pedagógico, sendo assim podemos utilizar esta análise para inferir graus de semelhanças, mesmo sem ter uma leitura prévia efetuada por um humano. Vale ressaltar que esta análise não é perfeita, ela possui um grau de incerteza, e é incapaz de interpretar o texto em si. Sendo que dependendo do nível de criticidade do assunto, podemos usar esta análise para fazer uma pré separação, porém é necessária uma checagem posterior para aumentar o grau de certeza. Após isso foi apresentado o desafio que teremos uma semana para fazer, valendo 0.5 na média final, será necessário ler uma dissertação de mestrado ou doutorado, e fazer um resumo, elas devem ter sido publicadas no ano de 2018, tendo que conter pelo menos 500 palavras, a descrição da atividade está nos slides.
Lucas Ferraz Nicolau Continuando o conteúdo da aula anterior de semântica e similaridade de palavras, seguimos estudando a matriz termo-documento. A matriz termo- documento é uma matriz de co-ocorrência onde cada linha representa uma palavra e cada coluna representa um corpus sendo que a similaridade entre textos diferentes pode ser verificada pela similaridade entre os vetores extraídos de suas respectivas colunas. Para realizar esta comparação de vetores, podemos utilizar diferentes medidas de distância de modo que a medida mais conveniente varia conforme as características da aplicação. Uma primeira opção é a distância euclidiana que considera a distância direta entre dois pontos. A distância de Manhattan considera o caminho entre dois pontos apenas por retas paralelas aos eixos. A similaridade de cossenos é uma medida que considera o cosseno do ângulo formado entre os dois vetores. Por fim, a similaridade de Jaccard considera a semelhança de elementos de conjuntos considerando uniões e intersecções. O restante da aula se tratou da implementação em python de diferentes variações de algoritmos de comparação de similaridade entre documentos. Para isso foi utilizada uma matriz termo-documento de onde calculou-se a distância entre textos dois a dois, gerando uma matriz simétrica com a distância entre cada par de documentos. Em seguida, realizou-se uma normalização das distâncias pelos valores mínimo e máximo encontrados de modo a atribuir pesos para arestas de um grafo que indicaria graficamente a similaridade entre os documentos. Os testes foram aplicados em dois copora: as emendas de alguns cursos de computação da UFABC e algumas obras de Machado de Assis, verificando diferentes resultados conforme a variação das medidas de distância. De modo semelhante, também foram comparadas as distâncias associadas aos vetores de palavras para identificação de termos semelhantes utilizados no mesmo contexto ou até mesmo sinônimos.
Arthur Veloso Kamienski Uma matriz de co-ocorrência é uma matriz que relaciona palavras à documentos, ao contar o número de ocorrências de cada uma dessas palavras para cada um dos documentos. Assim, para um número V de palavras (esse sendo o tamanho do vocabulário) e N documentos, gera-se uma matriz VxN. Ao selecionar uma linha dessa matriz pode-se obter um vetor indicando o número de ocorrências da palavra indicada pela coluna para cada um dos N documentos. De forma similar, podemos selecionar uma coluna para obter o número de ocorrências de uma palavra para um determinado documento. Dessa forma, cada documento ou palavra pode ser representado por sua coluna ou linha na matriz, definindo assim um vetor. Vetores podem, assim, ser comparados para definir sua similaridade, de forma que duas palavras ou documentos são similares caso seus vetores sejam similares. Esses vetores podem ser muito esparsos pois dependem tanto do número de documentos quanto do número de palavras, as quais podem não ocorrer em um determinado documento. Para calcular a similaridade entre vetores, podemos utilizar medidas de similaridade como: (i) distância euclidiana, (ii) distância de Manhattan, (iii) similaridade de cosseno. As primeiras duas distâncias calculam apenas a magnitude da similaridade, e não a similaridade em relação ao sentido dos vetores, como faz a terceira. Existe ainda a medida de similaridade de Jaccard, mas essa é utilizada apenas para a comparação de conjuntos. Utilizando uma dessas técnicas, podemos medir a similaridade entre dois ou mais documentos. Tal similaridade pode ser representada por um grafo no qual os vértices são documentos e as arestas indicam sua relação, sendo seus pesos a similaridade. Essa estratégia pode ser utilizada também para palavras, garantindo um modo de comparar duas palavras por meio de suas ocorrências em textos similares.
July Anne Pinheiro Aula 9: Semântica e similaridade de palavras - Parte II Matriz de co-ocorrência: termo-documento Utilizada para avaliação de similaridade entre documentos e palavras, através de vetores. Com os resultados obtidos é possível avaliar similaridade entre obras e autores para indicação de documentos similares e os resultados podem ser visualizados através de gráficos.Importante se atentar aos vetores esparsos(nulos) para uma análise mais detalhada e que por conta de custo e a matriz obtida ser reflexiva apenas um de seus lados é calculado. Medidas de similaridade Para a análise de similaridade entre documentos e palavras se faz necessário a escolha de uma medida que melhor expressa o resultado. Durante a aula foi exibido diversos métodos para o cálculo da distância que representa o vetor de similaridade do conteúdo a ser analisado. Distância Euclidiana: Somatória(xi- yi)^2 Distância de Manhattan: Somatória |xi- yi 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) Similaridade de documentos e palavras prática Durante o decorrer da aula foi apresentado exemplos de implementações para observação dos métodos de distância e seus resultados. Primeiramente vimos os resultados obtidos relacionados a similaridade para documentos e após isso as implementações para similaridade de palavras. As representações do resultados obtidos foram utilizados grafos com seus respectivos pesos. Além dos grafos uma forma de apresentação de dados obtidos foram um gráfico para visualização dos resultados obtidos na análise de palavras, o que ressalta a importância da melhor escolha de medida e de representação dos dados obtidos para melhor compreensão do estudo que foi efetuado.
Yago Sorrilha Nesta aula houve inicialmente uma revisão do conceito de matriz termo- documento, que é uma matriz com as informações da frequência de uma palavra em determinado documento, e é uma ferramenta importante para aplicações em que seja necessário determinar a similaridade de palavras. O tema da aula 9 foi Semântica e similaridade de palavras: Parte II Vimos algumas medidas de similaridade como: Distância euclidiana que é a distância entre dois pontos dada por uma reta; Distância de Manhattan que é a distância entre dois pontos nos sentidos dos eixos, de maneira a uma projeção ortonormal; Similaridade por Cosseno calcula o ângulo entre os dois pontos; Similaridade de Jaccard: intersecção entre os dois conjuntos; entre outras medidas que podem ser utilizadas. Após uma breve introdução nas métricas de similaridade, foi apresentada uma parte prática, iniciando por um código em python para analisar a similaridade entre documentos, como por exemplo, as ementas de disciplinas da UFABC e obras de Dom Casmurro, cuja entrada eram os documentos e a saída era um grafo com os pesos de similaridade representados nas arestas. Essas aplicações tornam possível uma análise de semelhança entre trechos de texto ou entre documentos distintos através do vocabulário de cada um deles. Em um segundo momento, foi apresentado a possibilidade de analisar a similaridade entre palavras (linhas) e não entre documentos (colunas), como foi feito anteriormente, pois podemos estar interessados em encontrar a similaridade entre trechos específicos ou apenas de palavras em si e não de todo o documento, além de também ser possível analisar similaridades de trechos do próprio documento. Ao executar esses scripts em python, as saídas foram grafos muito maiores do que na comparação entre documentos, dado que cada palavra é representada por um vértice.
Brian Alves Andreossi Aula 8 Medidas de Similaridade Nem sempre uma distância euclidiana é a melhor forma de abordar um problema de amparar medidas. Esta aula vai propor mais formas de comparar medidas. É importante lembrar que não existe uma distância melhor que a outra. \- Distância de Manhattan: Distância que obriga o cálculo a fazer um caminho que use os eixos como direções. \- Similaridade do Cosseno: O Cosseno entre os vetores pode diferenciá-los. \- Similaridade de Jaccard = A intersecção B / A União B. (Não é aplicada em vetores, mas útil para conjuntos). \- Distância Euclidiana = é a distância indo de um ponto ao outro de forma direta, por meio do cálculo da função que segue: D = sqrt((x2-x1)² + (y2-y1)² + ...) Similaridade entre Documentos Dois documentos são similares se os seus vetores são similares. Em python, podemos utilizar a biblioteca numpy e suas definições para calcular algumas distâncias pré-determinadas. Como por exemplo: \- euclidiana: numpy.linalg.norm(M[:,d1]-M[:,d2]) \- similaridade de cosseno: numpy.dot(M[:,d1], M[:,d2]) /(numpy.linalg.norm(M[:,d1])\\*numpy.linalg.norm(M[:,d2])) Matriz de co-ocorrência: termo-documento A dimensão do vetor é o número de documentos. 2 palavras são semelhantes se seus valores são semelhantes. É possível utilizar min-max para calcular as distâncias entre palavras ou documentos. Algoritmo para cálculo de distância (euclidiana) entre palavras em python: dist = numpy.ones((V, V)) * numpy.nan ``` for w1 in range(0, V-1): for w2 in range(w1+1,V): dist[w1,w2] = numpy.linalg.norm(M[w1,:]-M[w2,:]) print(dist) ``` Analisando todas as ementas do curso de computação da UFABC chegamos que possuem 109 palavras, incluindo stopwords.
Murilo Bolzan Dionisio Semântica e similaridade de palavras: parte dois. Matriz de co-ocorrência: termo documento. Dois documentos são similares se os vetores são similares entre eles próprios. É possível desenhar as quantidades de palavras em obras como gráficos, visualizando assim de uma melhor forma a similaridade entre as obras. Medida de similaridade: Imaginando como gráfico, podemos calcular da seguinte maneira: lenght = |v| = raiz de (x + y + z +... {com cada unidade de dimensão elevada ao quadrado}). Distância Euclidiana: Entre os pontos 1 e 2: d = |(x1 - x2)| + |(y1 - y2)| + |(z1 - z2)| + Similaridade de Costume: Sen(A, B) = cos(teta) = (A.B)/(||A|| ||B||) Similaridade de Jaccard: Tratar os pontos e palavras como conjuntos, pensando em união, interseção e etc. Existem diversos algoritmos que, usando as estratégias citadas anteriormente, conseguem calcular e desenvolver uma matriz com a distância de similaridade das palavras entre os textos inseridos. Pode-se também, gerar grafos de co-ocorrência, de biparidade entre diversos outros. Usando como exemplo as seguintes obras: dom casmurro, memórias póstumas de Brás Cubas, Quincas Borba e Esaú e Jacó. Nestes 4 documentos existem 25911 palavras diferentes e não existe quase nenhuma similaridade entre eles e as duas mais próximas são dom casmurro e memórias póstumas de Brás Cubas. Ao tentar remover as stop words, é de bom uso fazer um pré processamento para averiguar se a remoção de algumas delas não acarretará em diferir o contexto prévio ao póstumo da remoção. Exemplo: stop word "a", mas tem as palavras "vitamina a" no texto, então, se ocorrer a remoção desta palavra, haverá a perda de informação no texto, logo, nesse pré processamento, é feita a junção para "vitamina-a" ou "vitamina_a" geralmente.
Rodolfo Azevedo Dos Santos Semântica e similaridade de palavras parte 2: Matriz termo-documento: estrutura para identificar similaridade entre documentos. Colunas representam as obras (documentos). Linhas representam as palavras É uma matriz de co-ocorrência. Medidas de similaridade: Depende da quantidade de dimensões que estamos trabalhando. d=raiz((x2-x1)^2+(y2-y1)^2+(z2-z1)^2): distância euclidiana Muitas vezes não é a melhor abordagem, apesar de ser fácil. Cada palavra analisada é uma dimensão. Distância de Manhattan: É a distância que respeita os eixos. Caminho de forma ortogonal. Popularmente chamado de “distância de quarteirão”. Similaridade do cosseno: Calcula o ângulo entre os dois vetores (calcula o cosseno). Existem outras medidas de similaridade (ex: Jaccar, Dice, etc). Teste1.py: Cria dois dicionários: Documento e vocabulário. Passa como parâmetro uma pasta. Faz a leitura dos documentos. D: Coluna, V: linhas ( da matriz de co-ocorrência). Como a matriz é espelhada, não precisa calcular duas vezes. Ou seja, é simétrica. Quando as obras são muito próximas a distância tende a zero. Normalização utilizando minimax (existem outros métodos): Garante que o maior valor é 1. Estudo de 6 ementas. Mostra a distância relativa. Teste3.py: Fixa a linha W e varia colunas. Dimensão: Número de documentos. Todo o resto é similar. Teste4.py: Mostra palavras que possuem comprimento maior ou igual a 10 (maiores palavras,e,portanto, sem stopwords). Não há uso de lemmatizador ou stemmer. Teste5.py: Branco: pouco similar Verde escuro: muito similar É uma forma gráfica para visualização (em alternativa a grafo) Teste6.py: Calcula a matriz de distância entre palavras. Dado uma entrada (palavra), retorna todas palavras similares ou que foram utilizadas no mesmo contexto.
Tiago Suzukayama A aula começou com o tópico "Matriz de co-ocorrência". Duas palavras podem ser consideradas similares se os vetores são similares. A medida de similaridade pode ser medida com vetores 1D, 2D ou 3D, pode ser medida pela distância euclidiana, pela distância de manhattan, pela semelhança de cosseno ou pela similaridade de jaccard. A similaridade entre palavras considera todas as palavras presentes em todos os documentos. Os vetores tem muitos elementos nulos, e o tamanho do vetor depende do número de documentos. Dois documentos são similares se os vetores são similares. Foi apresentado um algoritmo em python para calcular a similaridade entre dois documentos. O algoritmo recebe um número x de documentos, e calcula o tamanho do vocabulário. Depois, calcular as frequências das palavras em cada obra, ou seja, quantas vezes cada palavra aparece nos documentos. Após isso, é calculada a distância entre os documentos. Cria-se um grafo de documentos - a similaridade entre cada um. Foi testada a similaridade entre as matérias da computação da ufabc, e a similaridade entre obras de Machado de Assis. Foram utilizadas as distâncias entre vetores, distância euclidiana e semelhança de cosseno. Para cada abordagem utilizada, um grafo diferente foi criado. O próximo algoritmo foi pra calcular a similaridade entre duas palavras. Primeiro, calcula-se a distância entre cada palavra. Com isso, cria-se o grafo de documentos - similaridade entre eles. Foi testado a similaridade entre as palavras das ementas das matérias da computação da ufabc, e entre as obras de Machado de Assis. No último teste, o algoritmo, a partir de uma palavra de entrada, encontra todas as palavras semelhantes existentes nos documentos.
Elsio Antunes Junior 04/07; Semântica e similaridade de palavras: Parte II; relembrando matriz termo-documento: dois documentos são similares se os vetores são similares; Em uma abordagem baseada em distribuição de palavras "Duas palavras são similares se ambas estão em contextos similares"; portanto, duas palavras são similares se seus vetores são similares; A similaridade de palavras e documentos então, será baseada na distância euclidiana entre os seus vetores; Outras distâncias também podem ser usadas como a distância de Manhattan - a distância entre os ângulos dos vetores (cosine similarity) e a comparação entre a união e a interseção (Jaccard Similarity); Outros cálculos de distância foram citados como Dice e JS; Um Código Python foi apresentado com a parte principal do método de separação e cálculo das distâncias; posteriormente foi apresentado um diagrama ligando as principais disciplinas de computação baseado no cálculo das distâncias dos vetores obtidos pelo processamento dos textos das suas ementas; O mesmo teste agora foi feito utilizando obras de Machado de Assis e métrica de cosine similarity; Particularmente eu acho que não se deveria desconsiderar a direção das arestas pois dizer que PLN e PI estão conectadas carece de uma avaliação de precedência; Os proximos testes seguem agora analisando a similaridade entre palavras, usando uma técnica parecida, e registrando os resultados em um diagrama cuja coloração que varia entre branco e preto passando pelo verde, evidencia a distância calculada entre as palavras; A aula termina com um desafio bônus com premiação de meio ponto na média final; trata-se do resumo de um trabalho (tese/dissertação) relacionada a PLN, definida ao nível de mestrado ou doutorado em 2018;
Gustavo Murayama No contexto de semântica e similaridade de palavras, a matriz de co-ocorrência de termo-documento compara dois vetores resultantes de dois documentos distintos. Se os vetores forem similares, então os documentos também são similares. Um exemplo é fazer um vetor de duas dimensões, onde a linha representa a palavra, a coluna o nome da obra e na intersecção de de linha e coluna o número de vezes que a palavra se repete na obra. A dimensão do vetor é o número de documentos: N^|D|. A similaridade entre palavras considera todas as palavras presentes em todos os documentos, além dos vetores possuírem muitos elementos nulos (vetores esparsos), indicando que a palavra não existe em determinado documento, e o tamanho do vetor depende do número de documentos. Computacionalmente, é um gasto muito grande comparar todas as palavras de todas as obras. Há algumas formas de medir similaridades, podendo ser pela distância euclidiano entre dois pontos, a distância de manhattan (particiona-se o gráfico em tamanhos de blocos iguais e calcular a distância necessário para chegar de um ponto A para o ponto B passando pelos blocos adjacentes), similaridade dos cosenos, similaridade de Jaccard (módulo da intersecção de um grupo A com o B dividido pelo módulo da união de A com B), entre outros. Quando calculamos a similaridade de documentos, podemos fazer um grafo que relaciona os documentos, sendo os vértices os documentos e as arestas o grau de similaridade. Normalizando esses números, sendo o 1 o mais similar e 0 nada similar, podemos encontrar qual par de documentos tem a maior similaridade dentre todos os outros.
Eduardo Haberler Cardoso A nona aula de PLN, ministrada dia 04/07, foi continuação da aula anterior com o mesmo tema, sendo ele a semântica e similaridade das palavras. Inicialmente foi feito uma retomada de conceitos, começando com a matriz de co-ocorrência termo-documento que é uma representação, na qual possibilita avaliarmos a frequência de termos em cada documento, concluindo que dois documentos são similares se os vetores da frequência dos termos de ambos os documentos forem similares. Uma característica destes vetores, que compõe as matrizes é que, em geral, são vetores esparsos, i.e, vetores onde muitas posições são nulas, por não apresentarem nenhuma incidência do termo em questão. Em seguida foram apresentadas algumas medidas de similaridade. Começamos com a clássica distância euclidiana, em seguida foi discutida a utilização da distância de Manhattan, que seria análoga à distância percorrida por quarteirões de uma cidade, de um ponto a outro. Outra medida possível de ser aplicada neste contexto, é a similaridade de cosen, dada pela expressão sim(A, B) = cos(x) = (A.B)/(||A||.||B||). Também foi apresentada a similaridade de Jaccard, que seria: J(A.B) = |Intersecção (A.B)|/União (A.B). Em seguida algoritmos foram apresentados, calculando como exemplo, a similaridade entre as ementas de algumas disciplinas do bacharelado em ciências da computação da UFABC. Em seguida, com a utilização de um algoritmo foi montado um grafo de similaridade (como peso das arestas) onde cada nó representa uma disciplina diferente. O mesmo raciocínio foi utilizado, porém comparando as obras de Machado de Assis: Dom Casmurro, Memórias Póstumas de Brás Cubas, Quincas Borba e Esaú e Jacó.
Lucas Monteiro de Oliveira Resumo da aula 09 de Semântica e similaridade de palavras parte 2 Uma forma de se comparar documentos é através da matriz termo documento. Através desta técnica, caso dois documentos sejam similares, os vetores da matriz também serão. A similaridade entre palavras considera todas as palavras presentes em todos os documentos que estão sendo comparados. Para medir a distância entre os vetores pode-se usar a distância de um ponto a outro da maneiro como conhecemos, ou seja, distância Euclidiana. Uma outra opção é a distância de Manhattan, distância calculada através da soma da distância vertical e horizontal. Pode-se também calcular a distância angular através do cosseno. Alternativamente pode-se fazer uso da similaridade de Jaccard, através da comparação entre elementos presentes nos vetores. Em sala, através do cálculo de frequência de palavras foram plotados para comparação alguns cenários como: um grafo que representa a relação entre as matérias do bacharelado em ciência da computação através da descrição das matérias. Em seguida o mesmo foi feito para o machado-db, um banco de dados de obras do Machado de Assis, neste caso, foi empregado a análise levando em consideração a distância angular, ou seja, cosseno. Esta mesma metodologia que se aproveita do uso da distância angular foi empregada para a base de dados de matérias para que os diferentes resultados obtidos pudessem ser comparados. Em seguida fomos apresentados à uma implementação em Python que criou um conjunto de grafos que representam as relações entre as palavras com base no banco de dados de matérias do curso de bacharelado em ciência da computação (BCC) da ufabc.
Gustavo Zanfelice Dib Semântica e similaridade de palavras: parte II Matriz de co-ocorrencia - dois documentos se assimilam baseado no vetor que os conecta É interessante se utilizar grafos para podermos visualizar a similaridade entre n obras amostrais. Medidas de distância entre dois objetos Na aula foi demonstrado com imagens em 2d Distância euclidiana: Menor distância caso os pontos mais próximos sejam ligados diretamente Distância de Manhattan: Distância calculada visando que só podemos "nos mover" nos eixos, logo se baseia na soma da diferença de todos os eixos Distância de costume: Mede a distância em graus entre os dois vetores que ligam a origem aos objetos Similaridade de jaccard: medida utilizada para verificar a distância entre dois conjuntos de objetos A biblioteca numpy do Python já possui implementado esses métodos dentro da álgebra linear de execução, logo é prático seu uso. Dependendo do dado, é válido normalizar para encaixá-lo entre 0 e 1. Um teste foi realizado com as ementas das disciplinas básicas do Bcc, criando um grafo com as distâncias entre os textos das ementas. Muitas outras técnicas podem ser agregadas aos conceitos de distância entre objetos, por exemplo, é possível utilizar lematização ou Stemming previamente para considerar idênticas palavras que possuem significados iguais. Além disso pode-se invés comparar literalmente as palavras, pode-se fazer n-gramas e então calcular a distância entre eles. Um fato importante é que para documentos muito grandes, a análise literal de todas as palavras pode não ser visível e não conter informações úteis para estudo, já que existe muitos dados, é criado um cenário poluído de difícil interpretação.
Denildo Veloso Braga Aula 9: semântica e similaridade de palavras. Matriz termo-documento: estrutura usada para identificar similaridade entre documentos. Documento são parecidos se seus vetores estão próximos. Os vetores podem ter muitos elementos nulos, vetores esparsos. O tamanho do vetor depende do número de documentos, para similaridade de palavras, ou do número de palavras, para similaridade de documentos. A distância Euclidiana pode ser usada para medir a distância entre os vetores, porém, pode induzir a erros. A distância de Manhattan considera o menor caminho movimentando-se nas orientações dos eixos. Outras possíveis distâncias: distância de cosseno, de Jaccard, de Dice, entre outras. Quanto mais similares os documentos, menos é a distância entre os vetores. Aplicação: recomendação de obras similares. Programas em python podem ser escritos para avaliar a similaridade entre documentos. A biblioteca numpy oferece métodos úteis para tratamento de vetores e matrizes. Grafos de similaridade podem ser construídos, onde cada vértice é um documento e o peso de cada aresta é a similaridade de dois documentos. Peso 1.00 significa similaridade máximo, peso 0.00 identifica diferença máxima. Desafio 1: valendo +0.5 na média final, esse desafio consiste em ler uma tese/dissertação de mestrado ou doutorado, relacionada a processamento de linguagem natural, defendida em 2018 e fazer um resumo nos moldes dos resumos das aulas, detalhando a contribuição proposta pelo candidato e responder o porquê o trabalho vale um mestrado ou doutorado. O envio será pelo Tidia. O Google Scholar traz artigos e pode ser difícil achar dissertações. O site Catálogo de Testes e Dissertações pode ser utilizado para tal atividade.
Matheus Miranda Teles Aula 09 - Semântica e similaridade de palavras. Primeiramente definiremos uma matriz termo-documento ou co-ocorrência, que ela se baseia na construção de vetores representando a quantidade de uma palavra num determinado documento, e se no final estes vetores se assemelham, estes documentos são similares. Este similaridade considera todas as palavras presentes nos documentos. Se tratando de medidas de similaridade temos que a distância entre as palavras podem ser medidas tomando varias meios de cálculo de distância, como a distancia euclideana, a distância de manhatan, ou a similaridade de cosenos. Testando a similaridade, temos um algoritimo que faz o seguinte: Le os documentos, calcula as frequencias das palavras nas obras, calcula a distancia entre os documentos, e por fim cria um grafo para uma análise visual dessa similariedade, considerendo distancias maiores que 0,5 no algoritmo temos uma resultado que exclui ligações que não se parecem tanto e resultamos num grafo onde apenas os documentos mais semelhantes são ligados. Tendo como input as obras de Machado de Assis, temos que Dom Casmurro e Memórias Póstumas de Brás Cubas são similares, tomando a mesma ideia podemos fazer isso com palavras e assim encontrar palavras que são aplicadas a um mesmo contexto. Na aula houve um desafio proposto para resumir uma tese de dissertação de mestrado ou doutorado relacionada a PLN defendida em 2018, seguindo os mesmos moldes dos resumos de aula e basicamente explicando por que o trabalho vale um mestrado ou doutorado, ele deve ser enviado pelo tidia e para fazer a busca pode-se procurar no catálogo de tese e dissetação.
Paulo Alexander Simoes Aula 09: Semântica e similaridade de palavras - Parte II Nesta aula vimos a segunda parte de Semântica e Similaridade de palavras. Um dos conceitos vistos foi matriz de co-ocorrência: termo-documento, onde afirma que, dois documentos são similares se os vetores são similares. Ela basicamente traz a frequência de aparecimentos de certas palavras em relação a outra, a fim de criar ou analisar uma relação entre elas. Com isso conseguimos medir a similaridade entre palavras, considerando todas as palavras presentes em todos os documentos. O tamanho do vetor depende do tamanho do número de documentos. Essa medidas podem ser representadas de diferentes maneiras, tais como: vetores 2D dos documentos, distância Euclidiana, distância de Manhattan, similaridade de cossenos, Como visto, esse métodos retomam e voltam muito a funções matemáticas e geométricas, facilitando a relação que podemos ter uma com a outras. Maneiras de implementar tais formas de medida foram apresentadas utilizando da linguagem Python. Algumas métricas existentes para auxiliar no processo são: Soft TF-IDF que mede a similaridade entre representações vetoriais das frases, mas considera a métrica Jaro-Winkler como métrica de similaridade interna para encontrar palavras equivalentes, com um limiar de 0.9. A distância de Manhattan mede utilizando a distância por quadras de um ponto ao outro. A distância de Euclides é a distância entre dois pontos que pode ser obtida utilizando o Teorema de Pitágoras. A distância de cossenos analisamos a distância angular entre 2 pontos a partir da origem. Vetores 2d podemos utilizar os métodos de geometria analítica, como soma de vetores para identificar tais valores.
Felipe Rigo Yoshimura A aula 9 de Processamento de Linguagem Natural continuou abordando o tema de semântica e similaridade entre palavras. Na matriz de co-ocorrência termo- documento as linhas são as palavras do vocabulário e as colunas são os documentos que essas palavras estão contidas, as intersecções linhas-coluna guardam os valores de frequência de determinada palavra em um certo documento. Comparando os vetores verticais é possível identificar as similaridades entre documentos, e comparando os vetores horizontais é possível perceber a similaridade entre palavras diferentes. A comparação entre documentos compara todas as palavras de todos os documentos, podendo gerar um vetor com muitos elementos nulos. Para realizar tais comparações podem ser utilizadas diversas medidas de similaridade. Uma delas é a distância euclidiana, que calcula a distância entre dois pontos no espaço definido pelos vetores dos documentos. Outra opção seria a distância de Manhattan, a qual discretiza o espaço e conta o número de passos entre um ponto e outro. Pode-se também utilizar o cosseno entre os vetores dos documentos para identificar se eles são próximos. Além disso, outra métrica mais elaborada é a similaridade de Jaccard, a qual computada a razão entre a intersecção e a união dos elementos dos vetores.Foram abordados alguns códigos em python na aula para exemplificar essas medidas. É possível construir grafos com pesos indicando as relações entre palavras ou documentos. Ao final da aula, o professor propos um desafio de resumir uma dissertação de mestrado e explicar o motivo que esta valeu esse título. Esse desafio vale meio ponto na média.
Mayza Cristina da Silva Semantica e similaridade de palavras Matriz termo documento: dois documentos dao similares se os vetores sao similares. A dimensão do vetor eh o tamanho do vocabulários. Duas palavras sempre serao similares se seus respectivos vetores também forem similares Para considerar essa similaridade é preciso consiferar todas as palavras de todos os documentos. Vetores esparsos sao aqueles que possuem muitos elementos nulos O tamanho do vetor depende do número de documentos Baseando-se em algumas medidas padrao de cálculo de diferenças Independente do tamanho do corpu, muitas sequências não são idênticas, mesmo com a criatividade humana. Tivemos então um pouco de Probabilidade condicional, inclusive considerando mais variáveis. Com o uso de bigramas e ou bigramas é possível aproximar a medida. Então, baseados na tabela de valores prováveis podemos calcular a probabilidade de que cada palavra possa ser a próxima, e esta ser sugerida. Resolvemos então os exercícios de fixação. Com o tokenização para contagem de palavras consideração cada sinal como virgulas e pontos contando-os como palavras. Neste caso também teríamos a variação da contagem de palavras diferentes ou iguais, a quantidade indiferente é o nosso número de tokens, a variabilidade presente na quantidade de palavras diferente nós definimos com tipo ou vocabulário.Aqui foi possível nota a necessidade de contar com o elemento vazio, para saber de onde se trata um começo e um final. Posteriormente o professor comentou sobre padrões de assuntos falados no momento em que estao correlacionados com a realidade.
Matheus Tulio Pereira da Cruz Dois documentos são similares se os vetores são similares Duas palavras são similares se os vetores são similares. A similaridade entre palavras considera todas as palavras presentes em todos os documentos. Vetores esparsos são vetores que possuem muitos elementos nulos. É possível medir similaridade com base em distância entre vetores no espaço. Podemos medir a distância euclidiana, distância Manhattan, e medindo a diferença de distância através do coseno entre os ângulos dos vetores. Podemos representar a diferença entre documentos através de Grafos, onde os nós são os documentos e as arestas e seus pesos são a distância entre os nós (documentos). Teremos um desafio que acrescentará 0,5 ponto na média final da matéria. O desafio consiste em fazer uma resumo, assim como a feito em sala de aula, sobre um trabalho que foi defendido em 2018 de mestrado ou doutorado. O trabalho tem que ter relação com PLN e deve responder a seguinte pergunta: "Porque o trabalho vale um mestrado/doutorado".


Número de resumos processados: 49.

Observação:


Arquivo gerado por um programa.