Resumos de aula: PLN - 2019


Nota: Arquivo gerado por um programa.

Nome Resumo
Rodrigo Hiroaki Ideyama Nome: Rodrigo Hiroaki Ideyama RA: 11042714 Resumo Aula 5 Na aula de número cinco, o tema abordado foi “Modelando a linguagem com N-Gramas”. Primeiramente, foi demonstrado os diferentes tipos de algoritmos Stemming divididos em três categorias: truncating, statistical e mixed. * Truncating: como o primeiro nome diz, reduz as palavras de diferentes tamanhos, por exemplo, truncar até a primeira letra, até a quarta letra, até a sétima letra, etc, conforme as regras de cada algoritmo. É dependente das características do idioma o qual o algoritmo é projetado. Normalmente é criada uma lista de prefixos e sufixos e cada palavra é processada, de acordo com critérios estabelecidos para realizar o melhor corte. Na aula anterior, foi visto os algoritmos Lovins, Porters, porém existem também o Paice/Husk e o Dawson. * Statistical: é estabelecido que o stem da palavra corresponde aos primeiros n caracteres da mesma. Independe de prévio conhecimento da estrutura de prefixos e sufixos. Como exemplos mostrado em aula, o N-Grams, aprofundado mais à frente na aula, e o HMM (Hidden Markov Model). * Mixed: como o próprio nome diz, seria a mistura dos métodos de cada uma das categorias do algoritmo stemming citados anteriormente. Como exemplos, Inflectional & Derivational (Krovertz), Corpus Based e Context Sensitive. Aí foi falado em qual capítulo do livro Speech Language Processing (3rd ed. draft) do Dan Jurafsky e James H. Martin nós estamos atualmente, no caso o capítulo 3. Em seguida, o Jesús mostrou a importância de escolher algoritmos certos para cada idioma, para isso foi mostrado cinco tipos de gráficos que dá uma visualização para a gente o quanto cada pessoa importante na ciência (Newton, Euler, Bernoulli, Lagrange e Hawking) foram citados nas literaturas americana, britânica, francesa, alemã e chinesa. Levando as seguintes considerações e crítica: para ser contabilizado o n-grama precisa estar presente em pelo menos 40 livros, dados normalizados por ano, os dados podem estar incompletos (devido a erro nos OCRs). Depois ele falou no Google Books N-gram Viewer, onde a fonte de dados vem dos livros indexados pelo Google. Além disso, muitos dos livros foram digitalizados das coleções das bibliotecas (acadêmicas ou públicas). À partir disso, ele começou a explicar sobre N-gramas que é uma sequência contígua de N elementos (e.g., caracteres, palavras, sílabas, fonemas, pares- base) amplamente utilizados em processamento de linguagem natural para transformar textos em caracteres que podem ser processados por um algoritmo de Machine Learning de classificação e que são comumente obtidas (analisadas) a partir de um corpus. Os mais utilizados são o bigrama, trigrama e tetragrama. Quanto maior o valor de n, isto é, maior o número de classes que dividem os dados, maior a confiabilidade da inferência. No entanto, o número de parâmetros a serem estimados cresce exponencialmente em relação à n. Por isso, geralmente são utilizados bigramas ou trigramas em sistemas dessa natureza. Então para ficar mais claro, Jesús mostrou exemplos de unigramas, bigramas, trigramas por meio de frase “ um dois três quatro”, linguagem computacional, sequência de proteínas, sequência de DNA, do artigo Using Twitter to Examine Smoking Behavior and Perceptions of Emerging Tobacco Products, The Iliad of Homer e You learn ~Alanis Morissette. Depois, para demonstrar um tipo de aplicação que é utilizado o conceito de n-grama, ele falou da atribuição de avaliadores para cada projeto, respeitando as restrições. Levou como considerações em padronizar para minúsculas, remover as stopwords (EN, PT, SP), radicalizar as palavras (Porter Stemming) e agrupamento dos trabalhos por bigramas. Como tópico seguinte, modelo probabilístico, falou que pode ser usado em correção ortográfica, tradução automática de textos e reconhecimento de fala. Sendo que este modelo atribui probabilidades a uma sequência de palavras. Um modelo de linguagem por N-grama permite predizer o seguinte item de uma sequência usando um modelo de Markov de ordem (n-1), são simples e escaláveis. Como este modelo utiliza também conceito relacionado com probabilidade condicional, foi revisado sobre isso, porém usando palavras agora. Ao fazer isso, explicou que a probabilidade de palavras em uma frase têm muitas possibilidades de arranjos de palavras e que não é recomendável pois no corpus não teremos dados suficientes para a contagem das vezes em que a sequência aparece. Em seguida, explicou sobre o pressuposto de Markov que é a suposição que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es). Por meio desse conceito, é possível fazer uma estimativa por máxima verossimilhança (ou seja, baseados em um corpus podemos determinar as probabilidades). Então ele mostrou com exemplos usando bigramas: com um corpus de 3 frases (<s> I am Sam </s>, <s>Sam I am</s>, <s> I do not like green eggs and ham</s>), texto ‘Capivara’, ‘Berkeley Restaurant Project’. Após isso, o professor Jesús passou uma atividade em aula para os alunos fazerem uma autoavaliação sobre o entendimento o conteúdo da aula, N-gram, com base em uma tabela com alguns bigramas extraídos de 9332 frases e outra tabela em que as probabilidades foram calculadas para o corpus. No final da aula, ele fez as seguintes considerações finais: podemos identificar padrões, n-gramas e sinais de pontuação, n-gramas e imagens, uma questão prática.
Michelle Kaori Hamada Nesta aula de “Modelando a linguagem com N-gramas” é o capítulo 3 do livro Speech and Language Processing. Nela vimos uma abordagem estatística de algoritmos de stemming por meio de N-gramas. Um N-grama é uma sequência contínua de N elementos, como caracteres, palavras, sílabas, fonemas, pares- base. Ele é usado para transformar textos para poderem ser processados por algoritmos de aprendizado máquina de classificação. Os N-gramas costumam ser obtidas por meio de um corpus. No exemplo dado em aula vemos o Google Books Ngram Viewer para Euler, Newton, Langrage, Bernoulli, Einstein, Hawking, nele é possível ver a porcentagem da presença do n-grama no corpus através dos anos. Para que seja contabilizado, o n-grama precisa estar em pelo menos 40 livros. A fonte desses dados no gráfico vem dos livros indexados pelo Google, muitos deles foram digitalizados de bibliotecas públicas e acadêmicas. Quando a sequência possui 1 elemento, chamamos de unigrama, 2 elementos de bigrama/digrama, 3 de trigrama, 4 de 4-grama e assim por diante. Por exemplo, a frase “um dois três quatro”, ela tem 4 unigramas “um”, “dois”, “três”, “quatro”; 3 bigramas “um dois”, “dois três”, três quatro”; 2 trigramas “um dois três” “dois três quatro”. Podemos aplicar também para sequências de proteínas, DNA, caracteres e palavras de linguísticas computacionais e foi usado pelo twitter para analisar os comportamentos de fumantes e a percepção sobre os produtos de tabaco que estão crescendo. Uma outra aplicação seria para atribuir avaliadores para projetos de acordo com as restrições. Existe sistema modelado estatístico que é o modelo de Markov de ordem 0, ele usualmente é utilizado para predizer o próximo elemento em um n-grama, o Google utiliza isso em para as sugestões de busca quando vamos realizar uma pesquisa. Modelos probabilísticos, como esse de Markov podem ser usados para correção ortográfica, tradução automática de textos e reconhecimento de fala. Um modelo de linguagem atribui probabilidades a uma sequência de palavras, são modelos simples e escaláveis. Um modelo de linguagem por n-gramas nos permite prever o seguinte item de uma sequência usando o modelo de Markov de ordem (N-1). A probabilidade de uma palavras w dado um histórico h é P(w|h) por exemplo P(uma|a ufabc é), pode-se utilizar um corpus para contar a quantidade de vezes que w e h aparecem, de forma que: P(uma|a ufabc é) = C(a ufabc é uma)/C(a ufabc é). Entretanto, existem muitas sequências que não conseguimos identificar independente do tamanho do corpus pois a linguagem humana é criativa. Um modelo de linguagem calcula P(W) ou P (wn|w1, w2, ..., wn-1), sendo w uma frase composta pelas palavras wis. O cálculo de probabilidade condicional com mais de 2 variáveis é feita da seguinte forma P(A, B, C) = P(A)P(B|A)P(C|A,B). Ao utilizar para o exemplo anterior "a ufabc é uma" temos P(a ufabc é uma) = P(a)P(ufabc|a)P(é|a ufabc)P(uma|a ufabc é). Da forma como esta existem muitas possibilidades de arranjos de palavras, não sendo recomendável uma vez que no corpus não temos dados suficientes para a contagem das vezes em que a sequência aparece. Para isso podemos aproximar a pedida utilizando apenas a(s) última(s) palavra(s) de acordo com o pressuposto de Markov, em que ele supunha que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es). Podemos estimar as probabilidades usando unigramas, bigramas e trigramas e também realizar estimativa por máxima verossimilhança (baseados em um corpus podemos determinar as probabilidades). Foram mostrados exemplos de aplicação em n frases, no texto "capivara", no sistema de consulta sobre os restaurantes da Universidade de Berkeley e algumas probabilidades calculadas para o corpus. Na atividade em aula tivemos 2 questões para responder, na primeira dado um texto de 9 palavras indicar o número total de unigramas, bigramas e trigramas obtidos, na segunda calcular a probabilidade da frase "i want chinese food" de acordo com a tabela dada. Utilizando N-gramas podemos analisar dados e encontrar padrões de comportamento ao se analisar os gráficos de porcentagem através dos anos. As análises por N-gramas também não costumam considerar sinais de pontuação, mas podem ser usadas em diversos contextos, por exemplo para determinar a que parte da terra pertence uma determinada imagem.
Mauro Mascarenhas de Araujo Aula "Modelando a linguagem com N-gramas" (Speech and Language Processing - Capítulo 3) [17/06/2019]. Uma outra possível abordagem para Stemmings são os N-gramas, onde uma de suas aplicações é a ferramenta Google Books N-gram Viewer (books.google.com/ngrams) que exibe a quantidade de N-gramas nos livros indexados pelo Google (para ser exibido deve estar presente em ao menos 40 livros); é interessante notar que o resultado da análise, que é normalizada anualmente, varia de acordo com o idioma. Bom, os N-gramas podem ser definidos como uma sequência contígua de elementos que não são necessariamente palavras (são comumente obtidas a partir de um corpus), dependendo do contexto podem ser frases, fonemas, caracteres, sequência de proteína, sequência de DNA, etc. Exemplo: A frase "Um dois três quatro" possui 4 unigramas ("Um" "dois" "três" "quatro"), 3 bigramas ("Um dois" "dois três" "três quatro"), 2 trigramas ("Um dois três" "dois três quatro") e 1 quadrigrama ("Um dois três quatro"). Um exemplo de aplicação foi a análise de tweets para examinar o comportamento e percepção do fumo em produtos de tabaco emergentes. Logo após, foi apresentado o Bigrama da aula anterior (através do (di)grafo de co-ocorrência). Também foi mostrar a possibilidade de se analisar textos (no caso, letras de música), para, a partir das frequências dos bigramas identificar a música ou texto original (ou ao menos o assunto) -> No caso, foi apresentada a análise da música "We Learn". Outra aplicação possível é a de atribuição de avaliadores a projetos, onde o algoritmo busca o emparelhamento máximo. Para atingir tal feito, o processo considerou padronizar todas as letras para maiúsculas, remover as stop-words (EN-PT-SP), Radicalizar as palavras (Usando Porter Stemming) e realizar o agrupamento dos trabalhos por bi-gramas, respectivamente. A seguir foi apresentado o modelo de Markov de ordem 0, que é geralmente utilizado para predizer o próximo item de um n-grama -> Ex.: Previsão de pesquisas do Google; Previsão de palavras do teclado virtual; correção ortográfica; tradução automática de textos; reconhecimento de fala; etc. Já o modelo probabilístico atribui probabilidades a uma sequência de palavras, e é chamado de Modelo de Linguagem. Um modelo de linguagem por N-grama permite predizer o seguinte item de uma sequência usando um Modelo de Markov de ordem (N-1), sendo modelos simples e escaláveis. Este modelo consiste em calcular a probabilidade de uma palavra w dado n um histórico h, ou seja, P(w|h), Exemplo.: P(uma|a ufabc é) = C(a ufabc é uma)/C(a ufabc é), onde pode-se utilizar um corpus para calcular o número de vezes que o w e h aparecem, logo, é possível concluir que os resultados dependem do tamanho do corpus. Um modelo que calcule P(W) é um modelo de linguagem, onde W é um conjunto de palavras contúguas (N-gramas). Para facilidar o modelo estatístico (e reduzir o esforço computacional), faz-se o uso de bi-gramas ou tri-gramas. Cadeias de Markov: A probabilidade de uma palavra depende apenas de uma(s) palavra(s) anterior(es). Exemplo com corpus de 3 frases: "<s> I am Sam </s>" "<s> Sam I am </s>" "<s> I do not like green eggs and ham </s>" -> P(I|<s>) = 2/3 = 0.67 . Logo após, foi apresentado os N-gramas para o texto "Capivara" e o "Berkley Restaurant Project" (Um Sistema de consulta sobre os restaurantes da Universidade de Berkeley). Por fim, a atividade proposta pedia para indicar a quantidade de uni/bi/tri-gramas de um texto de 9 palavras, além de calcular a probabilidade da frase "I want chinese food" dado uma tabela de ocorrências -> É importante notar que, no caso de n->gramas com n>1, há o problema do começo, assim, deve-se considerar n-1 vezes a quantidade de caracteres '<s>' no começo da frase e n-1 vezes a quantidade de caracteres '</s>' ao final da frase, a fim de evitar perda de informação útil. Ao final da aula foram apresentadas outras possibilidades de aplicação/expansão do que foi aprendido: Identificação de padrões; Sinais de pontuação juntamente com N-gramas; Utilização de N-gramas no contexto de imagens; Utilização do logaritmo para realizar cálculos de probabilidades muito pequenas.
Elsio Antunes Junior A aula do dia 17/06, a partir do capítulo 4 do livro de Jurafsky e Martin introduziu a noção de n-gramas. N-gramas é outra abordagem para modelar linguagem por stemming baseada em estatística. O professor começa apresentando a ferramenta ngram viewer [books.google.com/ngrams] mostrando seu funcionamento com as ressalvas de que o n-grama precisa estar presente em mais de 40 livros, que os dados são normalizados por ano e que os dados podem estar incompletos por erros de OCRs. O n-gram viewer é um grande database de conteúdo de livros indexados e digitalizados pelo Google; N-grama, neste contexto, é uma sequência contígua de n elementos de um corpus. Um elemento é um unigrama, dois, bigrama, três, trigrama e então 4-grama, 5-grama etc. Os n-gramas podem ser usados no contexto de sequenciamento de proteínas, sequenciamento de DNA ou linguística computacional entre outros. O professor deu o exemplo do uso numa pesquisa sobre tabaco em postagens do twitter; Um diagrama de co-ocorrências da aula anterior foi mostrado relacionando os números nas arestas do grafo com bigramas. Montado um grafo similar a partir de duas letras de música deixou claro a ocorrência de vários bigramas, principalmente nos refrões; O professor apresentou uma aplicação que visa atribuição de avaliadores para projetos acadêmicos. Um pré processamento nos textos dos artigos e nos dados do curriculum lates dos avaliadores considerou padronizar para minúsculas, remoção de stopwords, radicalização das palavras e agrupamento em bigramas seguido do uso de um algoritmo de emparelhamento para 'casar' os avaliadores adequados a artigos específicos; Segue-se a introdução do conceito de 'modelo de Markov de ordem (n-1)', usado nesse contexto para predizer o item seguinte de um n-grama. No slide, a exibição da imagem do auto-complete da pesquisa Google deixa claro. São exemplos de uso do modelo probabilístico a correção ortográfica, a tradução automática e o reconhecimento de fala; Procuramos um modelo de linguagem que atribua probabilidades a uma sequência de palavras. Os modelos lembrados são simples e escaláveis. A probabilidade P de uma palavra w dado um histórico h, ou seja, P(w|h) é dado pela razão entre o número de ocorrências da frase contendo o histórico h e a palavra w, sobre o número de ocorrências do histórico estudado, ou seja P(w|h) = C()/C(h); Os dados sobre o número de ocorrências do histórico e da palavra seriam levantados a partir do corpus; Uma dúvida foi levantada sobre a possibilidade de fazer este cálculo a partir de históricos (frases) que não existem no corpus; segue-se a formalização dos cálculos, passando pelo 'pressuposto de Markov' e a expectativa por 'máxima verossimilhança' e em seguida um exemplo prático do cálculo da probabilidade de ocorrência de algumas palavras em um texto pequeno; No próximo slide foi apresentada uma tabela com as estatísticas para unigramas, bigramas, trigramas e 4-gramas para o texto 'Capivara'; Um aluno notou a presença da letra A maiúscula presente em três das quatro colunas da tabela; O professor mostrou o exemplo do Berkeley Restaurant Project e uma compilação dos termos relacionados entre si com suas ocorrências registradas numa tabela para o cálculo das probabilidades; A aula continua com uma atividade envolvendo a contagem de n-gramas e o cálculo da probabilidade de uma certa frase, dadas as tabelas das ocorrências das correlações das palavras; Por fim, uma discussão sobre padrões encontrados nos corpus e, em especial, em imagens transformadas em texto para a aplicação dos algoritmos de statistical stemming; Em tempo, uma dica a respeito dos cálculos, com relação a perda de precisão pelo uso de números muito pequenos e/ou com problemas de arredondamento: o uso de log para transformar multiplicações em somas.
Igor Neres Trindade Nas aulas anteriores, nos aprofundamos em normalização de palavras e, para isso, estudamos uma técnica muito importante denominada Stemming. Existem diversas abordagens para essa técnica. Até o momento, tivemos contato com algoritmos de truncamento, cuja heurística cortava as extremidades das palavras de acordo com um conjunto de regras. A aula de hoje, 17/06/2019, nos apresentou ao conceito de N-gramas que, com uma abordagem estatística, pode também ser utilizado para o processo de Stemming. Nessa aula, porém, tivemos aplicações mais voltadas à predição de texto. Apesar de nosso contexto estar restrito à análise da linguagem, N-gramas podem ser utilizados para diferentes situações. Trata-se simplesmente de uma sequência contígua de N elementos, e esses elementos podem ser qualquer coisa! Ao serem obtidos a partir de um corpus, por exemplo, eles podem ser palavras, sílabas ou caracteres. E dependendo do número de elementos contíguos, denominamos o n-grama de uma forma intuitiva: começa-se por unigrama, para uma sequência de um elemento, seguido de bigrama ou digrama, trigrama, 4-grama, 5-grama... Um exemplo interessante para a aplicação desse conceito é um trabalho feito por pesquisadores que analisou a percepção do cigarro, através de publicações e comentários na plataforma Twitter. Para a extração da corpora, foi utilizada uma API do próprio Twitter e o resultado é interessante para n-gramas específicos. Consideremos o comentário “I hate cigarettes with a passion”. Diferentemente de unigramas, podemos extrair informações-chave do comentário com trigramas, como “I hate cigarettes” e “with a passion”. Uma outra aplicação muito interessante são grafos de co-ocorrência, vistos nas aulas anteriores, que contabilizam o número de vezes que duas palavras aparecem seguidas. Podemos usar esses digramas (ou bigramas) para criar modelos de predição de palavras, como ocorre nos teclados de smartphones. Sistemas de busca, como o Google, são, do mesmo modo, bons exemplos, pois eles não consideram somente o que é mais buscado, mas o que está presente nos documentos também. Para isso, já existem muitos modelos probabilísticos. O de Markov, por exemplo, tenta predizer o seguinte item em um n-grama e faz isso atribuindo probabilidades a uma sequência de palavras, possibilitando futuros cálculos. Modelos que se comportam dessa forma são chamados de modelos de linguagem e são bem escaláveis. Usamos da formalização de Probabilidade e Estatística para encontrar a probabilidade de uma palavra w dado um histórico h. Matematicamente, podemos representar essa probabilidade como C(h, w)/C(h) ou, em outras palavras a quantidade de vezes que um histórico h é seguido pela palavra w dividido pela quantidade de vezes que h aparece na corpora. Note, entretanto, que o histórico h pode ser uma sequência de n palavras w1, w2, , wn, o que torna inviável esse processo. São muitas possibilidade de arranjos de palavras e verificar todas seria um processo muito custoso. O pressuposto de Markov simplifica todo o processo, com a suposição que a probabilidade uma palavra depende apenas da probabilidade da anterior. Isso, obviamente, é uma aproximação, mas funciona muito bem. Para esse cálculo, temos que considerar ainda casos em que o elemento está no começo ou no fim da palavra e, para isso, consideramos um elemento qualquer fictício, que aqui chamaremos de <s> para o começo, e </s> para o fim. Considere um corpus qualquer com 9 palavras; as três primeiras palavras obviamente formam um trigrama. Mas a sequência “<s> <s> w1” sendo w1 a primeira palavra também forma um trigrama, assim como “w9 </s> </s>”, sendo w9 a última. E considerar tais n-gramas para o cálculo é de suma importância, uma vez que o algoritmo precisa decidir por onde começar e quando acabar.
Renato de Avila Lopes Modelando a linguagem com n-gramas O professor mostrou um gráfico contendo a presença em porcentagem dos nomes Einstein Newton Euler Lagrange Bernoulli e Hawking em relação ao ano que apareciam em livros indexados na base de dados do Google (muitos foram digitalizados das coleções das bibliotecas acadêmicas ou públicas) Dependendo do idioma a frequência é diferente N-grama é uma sequência contígua de N elementos (palavras sílabas fonemas pares-base) comumente obtidos a partir de um corpus Unigrama, Bigrama (Digrama), Trigrama, 4-grama, 5-grama Um dois três quatro 4 unigramas 3 bigramas 2 trigramas Grafos a partir de n-gramas Aplicações: Atribuição de avaliadores para projetos Atribuir avaliador para cada projeto respeitando as restrições Padronizar para minúsculas remover stop-words (EN, PT, SP) radicalizar palavras (Porter Stemming) agrupamentos dos trabalhos por bigramas Modelo de Markov (de ordem 0) geralmente utilizado para predizer o item seguinte em um n-grama Correção ortográfica tradução automática de textos reconhecimento de fala Modelo probabilístico (estatístico) Modelo de linguagem é um modelo que atribui probabilidades a uma sequência de palavras Usando um Modelo de Markov de ordem (n - 1) é possível predizer o seguinte item de uma sequência Modelos simples e escaláveis Probabilidade de w dado h P (w | h) Exemplo P (uma | a UFABC é) = C (a UFABC é uma) / C (a UFABC é) = 1650 / 5250 = 0.314285714 (Google) Pode ser usado um Corpus para contar o número de aparições de w e h Muitas sequências podem não ser identificadas, independentemente do tamanho do corpus (linguagem humana é criativa) Exemplo C (a UFABC jamais foi) = 0 Modelo de linguagem calcula P(W) ou P(wn | w1, w2, . . . , wn-1) P(W) = P (w1, w2, ..., wn) W é uma frase composta pelas palavras wi Formalização P(B|A) = P (A, B) / P(B) e P (A, B) = P(A) P(B | A) Mais variáveis: P (A, B, C, D) = P(A) P (B | A) P (C | A, B) P (D | A, B, C) Probabilidade de palavra em uma frase P (a UFABC é uma) = P (a) x P (UFABC | a) x P (é | a UFABC) x P (uma | a UFABC é) P (uma | a UFABC é) = C (a UFABC é uma) / C (a UFABC é) Muitas possibilidades de arranjos de palavras Não recomendável (corpus não terá dados suficientes para contagem da sequência) Aproximar a medida: bigramas P (uma | a UFABC é) aproximadamente P (uma | é) Trigramas P (uma | a UFABC é) aproximadamente P (uma | UFABC é) Pressuposto de Markov é a suposição que a probabilidade de uma palavra depende apenas da probabilidade da palavra anterior Estimativa por máxima verossimilhança (baseados em um corpus podemos determinar as probabilidades) <s> I am Sam </s> <s> Sam I am </s> <s> I do not like green eggs and ham </s> P (I | <s>) = 2/3 = 0.67 P (Sam | <s>) = 1/3 = 0.33 Atividade em aula 9 palavras quantos unigramas 9, bigramas 10, trigramas 11 Calcular a probabilidade de I want chinese food P(<s> I want chinese food </s>) = P (I | <s>) x P (want | I) x P (chinese | want) x P (food | chinese) x P (</s> | food) = 0.25 x 0.33 x 0.0065 x 0.5 x 0.68 = 0,000182325 Uso em diferentes contextos: imagens de satélite: determinar a que parte da terra pertence uma determinada imagem P(<s> I want english food </s>) = P (I | <s>) x P (want | I) x P (english | want) x P (food | english) x P (</s> | food) = 0.000031 Números muito pequenos para representar: utilizar log
Jair Edipo Jeronimo No início da aula, vimos alguns gráficos que mostravam o número de vezes que alguns cientistas famosos eram citados em um corpus no decorrer do tempo, de acordo com os dados fornecidos pelos livros indexados pelo Google. O mais interessante é observar como as citações de cada autor variavam de acordo com a linguagem dos livros. Após isso, foi descrito o conceito de N-grama, que é um conjunto contiguo de N elementos, obtidos e analisados através de um corpus, onde o N pode variar de acordo com a quantidade desejada de caracteres, palavras, sílabas, etc. Além disso, N-gramas podem ser utilizados em diversas áreas, como na Biologia por exemplo, na identificação e análise de sequencias de proteínas. Um bigrama, que possui 2 elementos, pode ser representado na forma de grafo, onde a primeira palavra possui uma aresta para sua sucessora em uma frase. Na aula, vimos alguns grafos aplicados em letras de músicas. Outra aplicação vista, foi o problema de atribuição de avaliadores para projetos, onde os bigramas eram formados por um projeto e um avaliador, formando um grafo bipartido, onde a sua solução era identificar qual seria a melhor opção de seleção de avaliadores para cada projeto. Um conceito importante no estudo de n-gramas é o modelo probabilístico de Markov, que é geralmente utilizado para prever qual o próximo item em um n-grama. Modelos probabilísticos desse tipo, podem ser utilizados de diversas formas, como para reconhecimento de fala, correção ortográfica ou até tradução automática de textos. Esses modelos também podem ser chamados de modelos de linguagem. Os cálculos utilizados em modelos probabilísticos, utilizam aspectos condicionais, ou seja, dado um histórico h, estimar qual a probabilidade de w ser a próxima palavra, se baseando na razão entre a quantidade de vezes que após h tivemos w como seu sucessor e o tanto de vezes que h aparece no corpus. Entretanto, independente do tamanho do corpus, existem sequencias que podem não ser identificadas. Para tornar o modelo de linguagem mais compreensível, o cálculo de probabilidade condicional é simplificado utilizando o pressuposto de Markov, onde ao invés de utilizar probabilidades considerando todos os arranjos de palavras, apenas é considerado apenas algumas palavras anteriores para aproximar a medida. Outra forma de tratar os dados é aplicar logaritmo no cálculo de probabilidade, evitando que os resultados possuam muitas casas decimais, assim a operação de logaritmo mantém as proporções mesmo reduzindo a quantidade de casas. Após isso, vimos alguns exemplos de como calcular essas probabilidades e realizamos uma atividade em aula baseada nos conceitos de n-gramas e, para a parte de cálculo, em um estudo sobre os restaurantes da Universidade de Berkeley, onde aplicamos as operações vistas de acordo com tabelas representando os bigramas contido no corpus. Além disso, após a atividade, foi realizada uma observação com relação a composição de n-gramas, onde devemos considerar frases que iniciam ou finalizam com uma palavra, pois essa característica também deve ser levada em conta durantes os cálculos utilizados no modelo. Para isso, utilizamos os símbolos <s>, para início de frase, e </s>, para o final da frase, assim a frase “Bom dia”, por exemplo, terá como bigramas: (<s>, “Bom”), (“Bom”, “dia”) e (“dia”, </s>). Por fim, a análise de n-gramas pode ser influenciada por diversos contextos, vimos em sala que podem existir padrões ou momentos em que certas palavras são mais frequentes. Outro contexto em que também se pode aplicar n-gramas é em identificação e análise de imagens satelitais, para determinar de que parte da terra pertence uma certa imagem.
Pedro Ricardo Bronze Iniciamos a aula com a apresentação do 'Google N-gram', a Google utilizou OCR's para a digitalização dos textos de livros para a viabilização desta ferramenta. Uma utilização da ferramenta é a de consultar a frequência com que certos termos aparecem em livros de certas línguas. N-gramas é basicamente uma sequência contígua de elementos (palavras), onde o prefixo (uni,bi,tri etc) se refere a quantidade de elementos que definem um N-grama. 'Um cachorro latiu' tem 3 unigramas, as três palavras, e 2 bigramas, sendo eles 'um cachorro' um deles e o outro 'cachorro latiu' e um trigrama que seriam as três palavras em conjunto. Redes de co-ocorrência podem ser analisadas em busca de N-gramas, duas arestas representam por exemplo um bigrama. Uma aplicação possível é a atribuição de avaliadores para projetos de pesquisa. Modelo de Markov é utilizado para correção ortográfica, tradução de texto e reconhecimento de fala, e se trata de um modelo probabilístico. Este 'Modelo de Linguagem' atribui probabilidade a sequências de palavras, a probabilidade pode ser calculada da seguinte forma P(w|d), sendo de a sequência de palavras que precede w, por exemplo, P(w|w1,...wn-1), leia-se probabilidade de w(que pode ser um Ngrama por exemplo) dado um conjunto de w1,w,2...wn=-1. Isto leva a uma produtória que, por sua vez, pode ser aproximada pela probabilidade da última palavra dada o N-grama de todas as anteriores. O pressuposto de Markov propõem que a probabilidade de uma palavra depende apenas de uma(s) palavra(s) anterior(es). Outra forma de calcular a probabilidade é por MLE (Maximum Likelihood Estimation), que calcula a probabilidade dividindo o número de vezes que uma palavra aparece pelo número de vezes que determinada sequência que ela está inclusa ocorre no texto . Um exemplo é apresentado com um corpus de três frases, calculando 'P(I|<s>)' (Probabilidade de 'I' dado que é o início da frase), no caso temos 2 frases das 3 nesta condição, portanto a probabilidade é 2/3. Para calcular qual a probabilidade de uma frase terminar em 'Sam' seria 'P(</s>|Sam)'. Um caso dos restaurantes de Berkeley é apresentado por Jurafsky, calculamos a probabilidade do bigrama 'I want'. Para tal calculamos P('I want'|'I'), utilizando a tabela de contagens e a de bigramas chegamos no valor de 0.33. Utilizando a produtória das probabilidades dos bigramas calculamos a probabilidade da frase 'I want english food'. Podemos identificar padrões utilizando análise de bigramas entendendo variações temporais na frequência de emprego de determinados termos. Para calcular quantidade de Ngramas contamos 'N-1' vezes a mais as pontas, se é um trigrama as pontas da frase são contadas 2x a mais, em 'A casa está vazia', são contados '<s><s>A' e '<s> A casa' no fim da frase o mesmo ocorre. Utilizando uma tabela de bigramas e contagens é possível calcular probabilidades de determinadas frases ocorrerem. Algumas utilizações de Ngrams envolvem detecção de padrões ao longo do tempo de aparecimento e desaparecimento de certos termos na literatura e análise de imagens de satélite. No lugar de somar probabilidades, caso sejam pequenas, podemos somar o log destas que é computacionalmente menos custoso.
Camilla Miyuki Inui Sato ANÁLISE POR N-GRAMAS N-grama é uma sequência contígua de N elementos. Por exemplo, na sequência “Um dois tres quatro” podemos dizer que temos 4 unigramas, ou 3 bigramas, ou 2 trigramas. É importante não considerar sinais de pontuação e considerarmos os “cantos”, ou seja, o início e o fim do corpus, conforme racional abaixo: Hoje está frio 3 unigramas: hoje, está, frio 4 bigramas: <s> hoje, hoje está, está frio, frio < /s> 5 trigramas: <s><s>hoje, <s> hoje está, hoje está frio, está frio </s>, frio </s></s> Podemos fazer uma representação gráfica de bigramas através de grafos onde o peso indica quantas vezes aquela sequência de elementos acontece em um texto. A análise por bigrama permite o estudo mais assertivo sobre o assunto de um texto do que o estudo por frequência de palavras. Por exemplo, se utilizarmos o estudo por palavra em artigos científicos, é provável que a maioria traga palavras como: análise, estudo, experimento, etc. Para fazer um estudo do texto e identificar o assunto, seria uma melhor estratégia a análise por bigramas. Modelo de Markov é utilizado, geralmente, para predizer o próximo elemento de uma sequência. Por exemplo, quando começamos a digitar no campo de busca do Google e ele te retorna várias opções, completando o início de sua frase. Para isso, ele faz uma análise do histórico de N-gramas e retorna os casos mais frequentes. É um modelo que atribui probabilidade a uma sequência de palavras da seguinte forma: P(w|h) – probabilidade de termos a palavra w dado o histórico h. Exemplo: P(uma|a ufabc é) = C (a ufabc é uma) / C (a ufabc é) Independentemente do tamanho do corpus, existe a possibilidade de surgir uma sequência de N-gramas não identificada anteriormente. Resumo sobre Probabilidade Condicional * P(B|A) = P(A,B) / P(B) * P(A,B) = P(A) P(B|A) * P(A,B,C) = P(A) P(B|A) P(C|A,B) * P(A,B,C,D) = P(A) P(B|A) P(C|A,B) P(D|A,B,C) Voltando ao exemplo da ufabc... P(a ufabc é uma) = P(a) . P(ufabc|a) . P(é|a ufabc).P(uma|a ufabc é) Podemos simplificar essa fórmula utilizando bigramas ou trigramas. O Pressuposto de Markov supõe que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es). Uma outra técnica é a análise de bigramas por matriz , onde podemos criar uma tabela onde temos duas sequências de uni-gramas (uma na vertical e uma na horizontal). Nas intersecções, preenchemos a quantidade de vezes que este bigrama aparece no corpus. Podemos também, ao invés de quantidade, inserir a probabilidade do bigrama acontecer, utilizando a seguinte fórmula: P (palavra2|palavra1) = C (palavra1 palavra2) / C (palavra 1), onde C é a contagem de vezes que aparece cada N-grama. Atividade Para calcular P(Hoje está frio) basta calcular a probabilidade de todos os bigramas possíveis desta sequência, da seguinte forma: P(Hoje está frio) = P (Hoje| <s>) x P (está | Hoje) x P (frio | está) x P (</s> | frio)
Willian Teruya Kimura Na aula referente ao dia 17/06, o professor apresentou a parte referente a modelagem de linguagens com n-gramas, representando um dos algoritmos usados de maneira estatística com a técnica de Stemming. Para iniciar a aula, foi apresentado como os termos podem ter frequências de aparição diferentes em livros de diferentes países de origens. N-gramas se trata de uma sequência contígua de n elementos, podendo variar de caracteres, palavras, fonemas etc., normalmente analisadas a partir de um corpus. Para definir o número de elementos, se tem: os unigramas (para 1 elemento), bigramas ou digramas, trigramas, 4-gramas e assim em diante. Para verificar como se classifica o tipo de n-gramas, é dado exemplos práticos em como se aplica tais conceitos. Na genética, ao analisar um sequenciamento de DNA, podemos ter uma sequência em que pode se dividir os códigos individualmente (unigrama), em par (bigramas) ou em trio (trigramas). Tendo em vista esse tipo de exemplo, é possível, também, verificar o comportamento e tendência de cada texto, possibilitando a tradução dessa análise para desenvolvimento de hipóteses, como verificar como uma sequência de elementos podem gerar uma sensação de emoção, ou como uma letra de música segue uma tendência para encaixar as palavras com uma melhor sonoridade. Uma aplicação muito importante de N-gramas foi apresentada para se analisar relatórios e trabalhos referentes a projetos acadêmicos, verificando se o texto em si propõe conteúdo adequado ou é apenas mal feito, a fim de entregar com as condições exigidas. Para isso, o processo considerou uma padronização para minúsculas, remoção de Stop-words, radicalização das palavras, e o uso de bigramas como agrupamento. Fora apresentado também o modelo de Markov, onde é utilizado num geral para predizer o próximo item de um n-grama. Como exemplo de tal modelo, temos o Google, que normalmente procura predizer o que o usuário deseja com base nos elementos escritos anteriormente. O uso de modelos probabilísticos pode ser utilizado para: correção ortográfica, tradução automática de textos, até reconhecimento de fala. Para um modelo que atribui fatores estatísticos e probabilísticos a uma sequência é denominado Modelo de Linguagem, que, para um modelo N-grama, por exemplo, permite predizer o próximo item da sequência por meio do modelo de Markov mencionado anteriormente, para ordem (N-1). Para calcular a probabilidade de uma palavra w num histórico h, podemos usar a seguinte expressão: P(w|h), sendo um exemplo P(abacaxi|eu quero um), e, para calcular tal valor, temos: P(w|h) = C(w)/C(h), onde C é o Corpus e pode ser usado para contabilizar o número em que w e h aparecem. Embora seja um modelo simples e eficiente, como a linguagem humana é muito versátil, muitas expressões acabam desapercebidas, sendo relativamente possível não ser identificada. Ao formalizar os modelos, é importante se compreender o conceito de probabilidade condicional, que, ao aplicar a probabilidade em sequências com diversas variáveis, acaba estendendo a equação de maneira ineficiente, chegando a uma forma de se analisar apenas as últimas palavras. No fim da aula, foi passado uma atividade para fixar os conhecimentos adquiridos em aula.
Marcela Akemi Yamashita Modelagem de linguagens com n-gramas: abordagem alternativa para stemming. Aula se baseia no capítulo 3 do livro base da disciplina. O google books possui ferramenta para detecção de n-gramas, que para ser contabilizado precisam estar em pelo menos 40 livros. Os dados são normalizados por anos. Devido a erros no OCR(sistema de digitalização de caracteres), dados podem estar incompletos. Ex: a porcentagem de n-gramas para autores como Euler, Newton, Lagrange, Bernoulli, Einstein e Hawking entre 1800 a 2008 e 1970 a 2008 em diferentes línguas. N-grama: sequência contínua de N elementos(caracteres, palavras, sílabas, fonemas, imagens de satelites), ignora sinais de pontuação. Obtidas a partir de um corpus e podem possuir números distintos de elementos. Unigrama(1 elemento), bigrama/digrama(2), trigrama(3), 4-grama(4), 5-grama(5). Ex: a sentença “um dois tres quatro” possui 4 unigramas (um, dois, tres, quatro), 3 bigramas (um dois, dois tres, tres quatro) e 2 trigramas (um dois tres, dois tres quatro). Utilização em PLN para transformar textos não-processados em uma coleção de features passível de processamento por algoritmos de classificação em aprendizado de máquina. Possível analisar graficamente os N-gramas, (ex: bigramas da Iliada de Homer e Your Learn de Alanis Morissette, com número e relações entre os termos). Aplicação prática: atribuição de avaliadores para projetos, onde projeto deve ser avaliado por quem possuir maior compatibilidade, excluindo relações suscetíveis a conflitos de interesse(familiares, amigos). Processo: padronização das palavras para minúscula, removeção de stop-words (en, pt, sp), porter stemming e agrupamento dos trabalhos por bi-gramas. O Google antecipa palavras em relação ao termo digitado (ex: “ufabc é” e surge uma lista de sugestões “boa?”, “publica” etc) com modelos probabilísticos (Markov de ordem 0), que predizem seguintes itens em um n-grama, que também podem ser utilizados para correção ortográfica, tradução automática e reconhecimento de fala. Modelo de linguagem atribui probabilidades a uma sequência de palavras. Um modelo por N-grama prediz o item seguinte de uma sequência através do modelo de Markov de ordem (N-1). P(w|h): probabilidade de uma palavra w dado um histórico h. Ex: P(uma|a ufabc é) = C(a ufabc é uma)/C(a ufabc é). Muitas sequências podem não ser identificadas. Ex: C(a ufabc jamais foi)=0. Probabilidade condicional, dada por P(B|A)=P(A,B)/P(B). Frases grandes possuem muitas possibilidades de arranjos de palavras, não sendo recomendáveis uma vez que corpus não haverá dados suficientes para a contagem das vezes em que sequência aparece. Simplificação: utilizar apenas a(s) ultima(s) palavra(s) para aproximar a medida. Ex: P(uma|a ufabc é) = P(uma|é)(bigrama) ou P=(uma|ufabc é) (trigrama). Pressuposto de Markov: suposição de que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es). Estimando probabilidades por bigramas: estimativa por máxima verossimilhança (baseados em um corpus podemos determinar as probabilidades): P(wi|wi-1) = C(wi-1, wi)/?x(C(wi-1x). Probabilidades podem ter números muito pequenos para representação: utilizar log (multiplicação vira soma).
Eracton Ferreira Ramalho Nessa quinta aula de PLN continuamos com a abordagem sobre stemming. E o assunto será sobre n-gramas. Estamos no terceiro capitulo da literatura principal da disciplina. Um adendo inicial importante para disciplina é que não podemos deixar de considerar que o idioma sempre vai influenciar muito nas aplicações. Nosso foco é sempre o algoritmo, mas não podemos desconsiderar o idioma. A definição de N-gramas é uma sequencia contigua de N elementos (no geral, são palavras). Podemos chamar também de tuplas. E são obtidas (analisadas) a partir de um corpus. Vimos uma analise gráfica da porcentagem de n-gramas no corpus ao decorrer dos anos. Vendo quanto foi pesquisado alguns pesquisadores em cada década. Voltando ao assunto de N-gramas, quando há apenas um elemento chamamos de unigrama. Quando são dois, bigrama ou digrama. Agora ao ser três elementos são chamados de trigrama. Do 4 em diante, apenas colocamos o número, o hífen e a palavras grama exemplo: 4-grama. Os n-gramas podem ser montados de formas diversas, ou seja, duas palavras podem ser vistas como dois unigramas ou também como um bigrama, depende da forma de analise que for feita. Recordando a aula anterior, onde tínhamos um grafo ponderado com quantas vezes aparecia cada relacionamento de palavras podemos entender que esses são bigramas, pois são duas palavras que se relacionam e aparecem x vezes em um texto especifico. Como podemos aplicar tudo isso de forma mais concreta? Em uma simulação simples de atribuir avaliadores para projetos. Considerando algumas regras essa atribuição pode ser muito relevante para que a analise seja mais precisa com relação a área de pesquisa do avaliador e o projeto que precisa ser avaliado. Neste tipo de analise é utilizado um modelo de Markov de ordem zero. Usa-se quando quer predizer algo. Exemplo: quando o Google tenta adivinhar qual é a próxima palavra. Esses modelos probabilísticos podem ser usados para correção ortográfica, tradução automática de textos e reconhecimento de fala. O modelo que atribui probabilidades a uma sequencia de palavras é chamado de modelo de linguagem. Assim é possível predizer qual seria próxima palavra utilizando um modelo de Markov de ordem N-1 Basicamente é usado o a probabilidade de uma palavra w dado um histórico h, P(w/h). Como a linguagem humana é muito criativa e muitas sequências podem não ser identificadas. (independentemente do tamanho do corpus) Para entender isso vale a pena dar uma relembrada em probabilidades condicionais. Neste estudo é muito usado o pressuposto de Markov, onde é a suposição que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es). Detalhe importante para analise: Os sinais de pontuação geralmente não são considerados na análise por N-gramas. Quando utilizamos essas analise probabilísticas costumamos usar logaritmos, pois os números são muito pequenos e é muito mais fácil quando utilizamos log, pois assim não perdemos informações importantes. Para finalizar, fizemos uma atividade onde era necessário identificar os unigramas, bigramas e trigramas. Além disso, o ultimo exercício pedia para calcular a probabilidade de ocorrer uma frase especifica.
Leonardo Nascimento Um N-grama é uma sequência contígua de N elementos, comumente obtida a partir de um corpus. Considerando a linguagem humana, esses elementos podem ser caracteres, palavras, sílabas ou fonemas. Ao avaliar uma sequência biológica, os elementos podem ser monômeros, por exemplo. Sequências com apenas um elemento costumam ser chamadas de unigrama, com dois elementos podem ser chamadas de bigrama ou digrama, e com três elementos trigrama. Outras sequências, com mais elementos, são comumente tratadas pelo número de elementos seguido do sufixo grama, como 4-grama e 5-grama. Na frase “um dois três quatro”, temos quatro unigramas, três bigramas, dois trigramas e um 4-grama. Vale ressaltar que os sinais de pontuação geralmente não são considerados na análise por N-gramas. O Google Ngram Viewer é um projeto do Google que contém o corpus de uma coleção muito grande de livros, muitos deles digitalizados a partir de exemplares em bibliotecas acadêmicas ou públicas. Nele é possível encontrar a frequência de quaisquer N-gramas por ano, filtrando por período e idioma do corpus. Portanto, podemos usar N-gramas para identificar padrões. Inclusive, existem pesquisas que usam N-gramas para representar imagens e classificá-las. Com os exemplos de consulta no Google Ngram Viewer apresentados, nota-se que a frequência de um conjunto de N-gramas pode variar bastante de acordo com o idioma do corpus. Ao consultarmos grandes nomes da ciência, quase não se nota diferença na frequência por ano entre o corpus inglês americano e o inglês britânico, mas se considerarmos o corpus francês ou alemão, a diferença é bastante grande. N-gramas são amplamente usados para transformar dados não estruturados em atributos que podem ser processados por algoritmos de classificação em aprendizado de máquina, mas também podem ser usados para predizer o próximo elemento de um N-grama, ou até mesmo serem transformados em grafos de palavras e servir como ferramenta para análise de letras de música, como no exemplo apresentado em aula. Um modelo que atribui probabilidades a uma sequência de palavras é denominado modelo de linguagem. Um modelo de linguagem por N-grama permite predizer o seguinte item de uma sequência usando o modelo de Markov de ordem N-1, cujo é baseado no pressuposto de que a probabilidade de uma palavra depende apenas da probabilidade de poucas palavras anteriores, conhecido pressuposto de Markov. Assim, para calcular a probabilidade de uma palavra w dado um histórico h, pode ser utilizado um corpus para contar o número de vezes que w e h aparecem. Deste modo, a probabilidade de encontrar a palavra “uma” dado um histórico “a ufabc é”, é o quociente da divisão da contagem de vezes que “a ufabc é uma” aparece no corpus pela contagem de vezes que “a ufabc é” aparece no corpus. Todavia, vale notar que, independentemente do tamanho do corpus, muitas sequências podem não ser identificadas e ter probabilidade zero. Também é importante destacar que, na prática, podemos ter que representar probabilidades muito pequenas e por isso usar logaritmos para representar essas probabilidades é uma boa saída para evitar problemas com precisão.
Renan Baisso Em continuação do conteúdo, avançamos para o capítulo 3 do livro texto, este trata do assunto N-gramas, que é uma subárea da estatística. Um definição forma de N-gramas pode ser descrita da seguinte maneira “um N-grama é uma sequência contígua de N elementos (e.g., caracteres, palavras, sílabas, fonemas, pares-base)” e são obtidos à partir de um corpus. Sendo que podemos classificar os n-gramas em unigramas (aqueles que contém apenas 1 elemento), bigramas (os que contém 2 elementos), trigramas (contém 3 elementos), 4-gramas (os que contém 4 elementos) e assim por diante. Por exemplo, na frase “Um dois três quatro”, temos 4 unigramas, 3 bigramas e 2 trigramas, desconsiderando os caracteres especiais ("<s>" e "</s>")de início e fim de frase. Além disso, a técnica de N-gramas pode ser aplicada não só na área de estudos de linguística e linguagem natural, também pode ser encontrada na área da biologia e estatística. Com aplicação no estudo de comportamento, análise de documentos e análise combinatória. Existem vários exemplos sobre aplicação de N-gramas, mas podemos destacar alguns para nosso estudo, como o “Google Books N-gram Viewer” que é a ferramenta do Google que analisa N-gramas à partir da sua base de dados de livros indexados, desta maneira, pode-se verificar quais autores de livros foram mais citados nas últimas décadas em cada idioma que se tem registro na base da empresa. Outro exemplo é analisar a melhor combinação entre avaliadores de projetos e os projetos que serão avaliados, o professor Jesus trouxe como exemplo sua própria ideia de implementação para este cenário, em que pelos currículos Lattes dos avaliadores, seria possível indicador quais projetos eram mais semelhantes a sua área de especialização. Tudo isso foi possível utilizando técnicas de normalização, regex e n-gramas. Um dos algoritmos de n-gramas mais utilizados é o modelo de Markov, em que o principal objetivo é prever o próximo elemento do conjunto de n-gramas. Por se tratar de um modelo probabilístico é adotado como ferramenta poderosa e versátil, o uso deste modelo pode ser visto em aplicações como correção ortográfica, tradução automática de textos, reconhecimento de fala e sugestão de palavras. Por se tratar de um modelo que atribui probabilidades às palavras, este pode ser classificado como modelo de linguagem. Logo, permite predizer a seguinte palavra de um conjunto de palavras (e.g, uma frase) de maneira simples e escalável. Assim, podemos definir que a probabilidade de ocorrer uma palavra “w” sabendo que a frase “h” precedente é P(w|h) = C(h considerando w)/C(h), sendo que C(x) é a contagem de ocorrências de x no contexto avaliado (e.g. texto, documento ou banco de dados). Para uma cadeia maior de elementos, exemplo, “A”, “B”, “C” e “D”, temos a seguinte equação de probabilidade P(A,B,C,D) = P(A)P(B|A)P(C|A,B)P(D|A,B,C), a qual pode ser aproximada por P(A,B,C,D) = P(B|A)P(C|B)P(D|C)
Joao Victor Fontinelle Consonni A quinta aula de PLN começou com uma breve revisão da aula anterior e do conceito de stemming, que consiste em um processo de heurística que corta as extremidades das palavras, o que inclui, frequentemente, a remoção de afixos derivacionais. Relembrando que esta técnica não busca chegar à raiz da palavra, mas sim a um radical, que pode ou não ter significado semântico. Na aula anterior foram abordados algoritmos para truncar sufixos, como Lovins e Porter. Nesta quinta aula, o foco foi no universo de algoritmos estatísticos, mais especificamente os N-gramas. Um N-grama e uma sequencia contígua de N elementos, que podem ser, por exemplo, caracterizados por caracteres, palavras, silabas, fonemas ou pares- base. A probabilidade de ocorrência de um dado N-grama varia com o corpus considerado. Vimos o conceito de unigramas, bigramas, e trigamas, assim como alguns exemplos de aplicação traduzidos em grafos de palavras. Uma aplicação explorada foi a de atribuição de avaliadores para projetos com base no agrupamento dos trabalhos por bigramas. A probabilidade de uma sequência pode ser computada pela regra da cadeia, que traduz a probabilidade de uma sequência como sendo o produto das probabilidades individuais. O modelo do N-grama diz que para computar a probabilidade de ocorrência de um elemento, não é necessário considerar todo o histórico dos elementos anteriores, mas apenas os elementos imediatamente anteriores são suficientes. O bigrama, por exemplo, aproxima a probabilidade de uma palavra utilizando apenas a probabilidade condicional da palavra anterior. Neste contexto, vimos o conceito de modelo de linguagem (language model), que são modelos que atribuem probabilidades a uma sequência de palavras. Um modelo de linguagem por N-grama permite predizer o seguinte item de uma sequência usando um Modelo de Markov de ordem N-1. Os modelos de Markov são a classe de modelos probabilísticos que assumem que podemos prever a probabilidade de alguma unidade futura sem olhar muito para o passado. Podemos generalizar o caso bigrama (que olha apenas uma palavra no passado) para o trigrama (que olha até duas palavras no passado) e, assim, para o N-grama (que olha para N-1 palavras no passado). Modelos probabilísticos podem ser utilizados para fazer correção ortográfica, tradução automática de textos e até reconhecimento de fala. Vimos boa parte da formalização matemática para o cálculo de probabilidades utilizando estes conceitos, assim como a estimativa máxima por verossimilhança, que assume que podemos determinar as probabilidades utilizando apenas o corpus como referência. Após alguns exemplos, foi aplicado um teste para testar os nossos conhecimentos nos conceitos vistos até então. Para fazer o teste era necessário ter compreendido o conceito de unigramas, bigramas e trigramas, assim como o cálculo de probabilidade de uma dada sequência por meio do produto das probabilidades. Em casos que os números são pequenos demais para serem apresentados, foi sugerida a utilização da escala logarítmica. Por fim, vimos algumas aplicações para reconhecimento de padrões que utilizam N-gramas, assim como contextos pouco triviais, como a utilização de N-gramas para determinar a que parte da Terra pertence uma determinada imagem.
Tamiris Gabriele da Silva Lira A quinta aula de Processamento de Linguagem Natural começou a tratar do terceiro capítulo do livro de Jurafsky e Martin, Speech and Language Processing, para falar de modelagem da linguagem com N-gramas. A "N-grams" se trata de uma abordagem estatística para stemming, de forma que um N-grama é uma sequência contínua de termos que são usualmente obtidas a partir de um corpus. Assim, um unigrama possui um elemento, um bigrama, dois elementos, um trigrama possui três elementos, um 4-grama possui quatro elementos e assim por diante. Considerando a frase "eu gosto de você", por exemplo, vemos que ela possui 4 unigramas (eu, gosto, de, você), 3 bigramas (eu gosto, gosto de, de você), 2 trigramas (eu gosto de, gosto de você) e um 4-grama (eu gosto de você). A técnica de N-gramas pode ser utilizada em diversas aplicações, e uma delas é na análise de sentimentos de textos. Na aula anterior, o exemplo do grafo que ilustrava "The Iliad of Homer" pode ser visto como uma representação de bigramas, da mesma forma que pode-se usar essa técnica para modelar diversos textos. Na aula foi apresentado como exemplo a modelagem das músicas "You Learn", de Alanis Morissette, e "Happy", de Pharrell através de bigramas. Uma outra aplicação dos N-gramas foi apresentada pelo professor através da descrição de um projeto de pesquisa feito por ele no qual tenta-se atribuir avaliadores para projetos de forma que os conhecimentos do avaliador e avaliado se alinhem. O Modelo de Markov de Ordem 0 pode ser usado para prever os itens seguintes em um n-grama (como quando, ao iniciar a pesquisa por um termo no Google, ele sugere os termos seguintes), e um modelo de linguagem é o que indica probabilidades a uma sequência de palavras. Tais modelos devem ser simples e escaláveis. Assim, a probabilidade de uma palavra w, dado um histórico h será calculada pela expressão: P(w|h) = (C(h w)/C(h)). Ainda que seja possível calcular algumas sequências, não é possível calcular todas já que a linguagem humana é complexa, criativa e está sempre mudando. Como existem muitas possibilidades de arranjos de palavras podemos utilizar o Pressuposto de Markov, que indica que a " suposição que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es)" para aproximar a medida. Uma atividade em aula foi proposta na qual deveríamos responder duas questões: a primeira consistia em responder quantos unigramas (9), bigramas (10) e trigramas (11) um texto de 9 palavras teria e a segunda em calcular a probabilidade da frase "i want chinese food" considerando uma tabela que contava o número de bigramas e unigramas associados às palavras da frase. Por fim, algumas considerações foram feitas: n-gramas geralmente não consideram sinais de pontuação, podem ser utilizados em diferentes contextos (inclusive em imagens) e o uso de log pode facilitar o trabalho de cálculo das probabilidades, uma vez que os números envolvidos nesse cálculo são muito pequenos.
Daniel Vieira Batista Capítulo 3: modelagem da linguagem com com n-grams Defini-se n-grama como um conjunto de n objetos adjacentes, em uma mesma sequência contígua. Em outras palavras, é um conjunto de n elementos que estão/são vizinhos/próximos seguindo uma sequência. Para um elemento chama-se unigrama, para dois chama-se bigrama ou digrama, para três chama-se trigrama, para quatro chama-se 4-grama e assim sucessivamente até n-grama. Viu-se em sala de aula que podemos encontrar n-gramas em corpus textuais, em conjuntos de caracteres, fonemas, conjunto de palavras, sílabas, documentos, etc. Uma forma de representar a relação entre palavras de um corpus textual é por meio de um grafo de co-ocorrência, neste grafo cada palavra única seria um vértice, cada aresta seria uma relação de termos e os pesos nas arestas correspondem a frequência que as palavras aparecem juntas no texto. Nesta representação, as arestas ou um conjunto sequencial de n-arestas podem ser interpretadas como n-gramas, sendo que um vértice seria um unigrama, uma aresta seria um bigrama e um caminho de n-arestas seria um (n+1)-gramas. Há diversas aplicações (utilizando modelagens específicas) para a abordagem de n-gramas, como por exemplo na predição de termos/palavras (cadeias de Markov de ordem n-1), geração automática de textos, correção ortográfica, reconhecimento de fala, tradução automática de textos, similaridade de textos, entre outras aplicações. Uma das possíveis abordagens seria imaginar um modelo de linguagem que atribui probabilidades a uma sequência de palavras (modelo de Markov de ordem n-1), por exemplo pode-se estimar uma probabilidade de uma palavra w dado um histórico de palavras h: P(w|h). Essa probabilidade pode ser calculada com base numa contagem de eventos, neste caso, para P(w|h), pode ser utilizado um texto/corpus para contar o número de vezes que w e h aparecem: P(w|h) = C(w e h)/C(h). Para calcular-se a probabilidade de palavras em uma frase seria necessário computar a probabilidade condicional através do produtório das probabilidades de cada termo aparecer, dado que um termo específico já ocorreu, contudo há muitas possibilidades na linguagem natural e é possível que não exista dados suficientes para contagem da sequência de palavras. Neste sentido, baseado no pressuposto de Markov (a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es)), podemos usar a(s) última(s) palavra(s) (unigramas, bigramas, trigramas) da sentença textual para aproximar a medida de probabilidade. Pode-se também utilizar a estimativa de máxima verossimilhança para determinar as probabilidades (com algumas correções logarítmicas). Uma tabela de contingência (normalizada) dos termos pode auxiliar no cálculo da estimativa destas probabilidades. Fontes: \- \- \-
Giselle Silva de Santana Nesta quinta aula, do dia 17/06/2019, abordou-se o tema “Modelando a linguagem com N-gramas”, assunto que pode ser encontrado no capítulo três do livro texto da disciplina. A aula iniciou-se com a apresentação de uma aplicação de N-grama, o Google Books N-gram Viewer, onde é possível se consultar a porcentagem da presença de um N-grama em algum corpus, que é criado a partir de livros digitalizados indexados pelo Google. Um N-grama é uma sequência contígua de N elementos (caracteres, elementos, sílabas, pares-base, fonemas) e são comumente obtidas a partir de um corpus. Um N-grama com 1 elemento é chamado de Unigrama; 2 elementos, Bigrama ou Digrama; com 3 elementos é chamado Trigrama; 4 elementos, 4-grama; 5 elementos, 5-grama. Como aplicação prática, foi apresentado o exemplo de um projeto para realizar a atribuição de avaliadores para projetos, que considerava o agrupamento dos trabalhos por bigramas, além de aplicar conceitos abordados nas aulas anteriores (padronização de minúsculas, remoção de stop-words, radicalização das palavras com Porter Stemming). N-gramas podem ter seu item seguinte previsto através de modelos probabilísticos, como por exemplo o Modelo de Markov de ordem 0, além disso, os modelos também podem ser utilizados para correção ortográfica, tradução automática de textos e reconhecimento de fala. Um modelo que atribui probabilidades a uma sequência de palavras é denominado Modelo de Linguagem. Um modelo de linguagem por N-grama permite predizer o seguinte item de uma sequência usando um Modelo de Markov de ordem (N-1), que são modelos simples e escaláveis. A probabilidade de uma palavra w dado um histórico h é P(w|h)=C(w)/C(h) e para a obtenção de tais valores, pode ser utilizado um corpus para contar o número de vezes que w e h aparecem. O pressuposto de Markov é a suposição de que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es). Existem modelos por unigrama, bigrama, trigrama, sendo no caso dos bigramas, a estimativa por verossimilhança pode ser utilizada (baseado em um corpus pode-se determinar as probabilidades). Como atividade prática, devíamos contabilizar e apresentar, os unigramas, bigramas e trigramas para um texto com 9 palavras e depois devíamos calcular a probabilidade da frase “I want chinese food” a partir das informações associadas aos unigramas e bigramas apresentadas em uma tabela. Um ponto importante reforçado pela atividade prática foi perceber que as bordas (extremos) nos N-gramas também são consideradas, como por exemplo, em um texto com 9 palavras, existem 10 bigramas. Por fim, vimos que para facilitar o cálculo das probabilidades quando se está calculando valores muito pequenos, pode-se utilizar log, fazendo log (p1*p2*p3*p4) =log p1+log p2+log p3+log p4, mantendo a proporcionalidade dos valores mas diminuindo a complexidade.
Laura Cestavo Borges Dos Santos Na ultima aula vimos sobre N-gramas. Um N-grama é uma sequência contigua de N elementos como caracteres, palavras, sílabas, fonemas e pares-base e são comumente obtidos a partir de um corpus. Dependendo do número de elementos, um N-grama é nomeado de forma diferente. Com 1 elemento se chama unigrama, com dois, bigrama ou digrama, com três, tigrama, com quatro, 4-grama e com 5, 5-grama. Por exemplo, na frase “um dois três quatro”, temos 4 unigramas, 3 bigramas e 2 trigramas. Na aula vimos alguns estudos e exemplos do uso de N-gramas, como o artigo “Using Twitter to Examine Smoking Behavior and Perceptions of Emerging Tobacco Products” e alguns grafos como: The Iliad of Homer, um com base na música “You learn” da Alanis Morissette e um outro sobre a música Happy, um grafo grande e mais complexo. Uma aplicação vista foi a atribuição de avaliadores para projetos, onde deve ser atribuído um avaliador para cada projeto, respeitando as restrições, como, por exemplo, parente não pode avaliar projeto de um outro parente. O processo considerou algumas coisas, são elas: padronização para minúsculas, remoção de stop-words, radicalização de palavras através do algoritmo de Porter e agrupamento dos trabalhos por bigramas. Um outro tópico coberto é o Modelo de Linguagem, que é um modelo que atribui probabilidades a uma sequência de palavras. Um modelo de linguagem por n-grama permite predizer o item seguinte de uma sequência usando um modelo de Markov de ordem n-1. Esse cálculo de probabilidade nada mais é que a probabilidade de uma palavra w dado um histórico h. (P(w | h)) = C(h w)/C(h), onde C é a contagem em um Corpus. O histórico h é uma frase composta de outras palavras e podemos reescrever a equação anterior como: P(w | w1, w2, w3), onde w1, w2 e w3 são palavras que compõe a frase h. Porém a linguagem humana é criativa e muitas sequencias podem não ser identificadas, independente do tamanho do Corpus. Um problema no cálculo de probabilidades é que, ao considerar uma frase h, há muitas possibilidades de arranjos de palavras e não é recomendável pois no Corpus não haverá dados suficientes para a contagem das vezes em que uma sequencia aparece. Para simplifica-las, usa-se uma aproximação, onde se usa apenas as últimas palavras. A probabilidade vista anteriormente P(w | w1, w2, w3) seria aproximado para P(w | w3), usando bigramas, ou para P(w | w2, w3), usando trigramas. Durante a aula, foi feito um exemplo que calculava a probabilidade de uma frase ocorrer e essa probabilidade foi quebrada em uma multiplicação de probabilidades usando bigramas. Apesar da discussão acima ter se concentrado em textos, também é possível utilizar os n-gramas para diferentes contextos, como imagens.
Ricardo Gomes Nesta aula foi apresentado o conceito de N-gramas, presente no capítulo 3 do livro "Speech and Language Processing". Um N-grama é definido como uma sequência de elementos contíguos, como palavras, sílabas, caracteres, entre outros, coletados a partir de um corpus. Existem inúmeros tipos de N-gramas, como os unigramas, digramas, trigramas e assim por diante. Cada um deles define a quantidade de elementos contidos em cada N-grama, um unigrama contém cada elemento coletado, os digramas contêm duplas de elementos contíguos, os trigramas contém trios e assim sucessivamente. Exemplos de aplicação dos N-gramas incluem sequenciamento de DNA através de unigramas, identificação de sequências de proteínas usando trigramas, entre outros exemplos. Os N-gramas são amplamente usados para transformar texto em atributos a serem processados por algoritmos, especialmente referente a aprendizado de máquina. Outros exemplos de uso de N-gramas incluem busca de termos em um catálogo de livros, atribuição de avaliadores em projetos por agrupamento de trabalhos em bigramas e previsão de itens seguintes durante a escrita de um texto. Os casos que incluem predição, como correção ortográfica, reconhecimento de fala e tradução, são utilizados um modelo probabilístico, sendo este um Modelo de Markov de ordem (N-1), onde é atribuído probabilidades a uma sequência de palavras e um modelo capaz de calcular tal probabilidade é denominado Modelo de Linguagem. A probabilidade de uma palavra dado seu histórico é definida como a contagem de todas as vezes que a sequência é identificada dividido pela contagem de vezes que o histórico é identificado. Existe uma chance da probabilidade ser igual a 0, já que certas sequências podem nunca ter sido identificadas. Esta também pode ser definida como a multiplicação de todas as probabilidades de cada palavra presente no histórico. Devido a grande quantidade de arranjos possíveis de palavras, é possível não encontrar dados suficientes para as contagens necessárias no cálculo das probabilidades, por isso é aproximado tal medida ao valor de N-gramas maiores. Além disso, existe o pressuposto de Markov, cuja suposição é que a probabilidade de uma palavra depende apenas das palavras anteriores. Para o caso de unigramas, a probabilidade depende apenas da palavra, enquanto nos bigramas e trigramas dependem de um histórico de palavras iguala N-1. Pode-se calcular também a Máxima Verossimilhança, como no caso de bigramas, que essencialmente retorna ao cálculo da probabilidade descrito inicialmente. Em seguida foram apresentados alguns casos de aplicação dos cálculos de probabilidade e realizada uma atividade para aplicar esses cálculos manualmente. Tais N-gramas podem ser utilizados para identificar padrões, como no caso do catálogo mencionado e ignoram sinais de pontuação, e em análise de imagens. Nos casos onde a probabilidade fora muito pequena, pode ser utilizado logaritmo para representar os valores mantendo a proporção dos mesmos.
Bruno Menezes Gottardo Ladeia Nesta aula 5 do dia 17/06, continuamos a discutir modelos de normalização e classificação de palavras. O tema da vez foi n-gramas. O n-gramas é uma alternativa para a normalização Stemming, mas também pode ser usado em conjunto com a mesma. Ele consiste em separar uma sequência contínua de N elementos (sejam elas caracteres, palavras, sílabas, fonemas, pares-base, etc) e é bastante utilizada para transformar dados textuais “crus” em objetos que podem ser processados por um algoritmo de classificação de Machine Learning. A relevância desta técnica é tão grande, que o google possui um gráfico de n-gramas, tendenciada por tempo (ano), para avaliar o uso da palavra, frase ou termo, durante os anos. Este gráfico é plotado por meio de dados obtidos diretamente do Google Books (plataforma onde é possível encontrar livros digitalizados de forma gratuita, ou paga) donde os elementos são retirados destes livros por meio de leitura OCR (Optical Character Recognition) e o pré- requisito para aquele elemento ser plotado é existir em pelo menos 40 livros diferentes. Vale notar que este processo é sujeito a falhas, visto que o reconhecimento visual do elemento pode não funcionar. Todos os gráficos e modelagens utilizando o n-grams é dependente da linguagem (até porque a base de dados, os livros de onde serão extraídos as informações são outros.) então para cada linguagem haverá um gráfico diferente para o elemento em questão. O n-grama é muito importante e já foi utilizado para modelagem de sequência de proteínas, DNA e linguística computacional. Uma estrutura bem interessante para análise de uso e frequência com elementos sucedentes é o grafo de n-grama, destes o mais utilizado é o de bi-grama. A partir deste agrupamento utilizando n-gramas é possível criar um modelo de linguagem, que consiste em probabilidades atribuídas para sequências de palavras, que pode ser aplicado para tradução automática de textos, reconhecimento de fala e correção ortográfica. Este modelo de linguagem, nada mais é do que a combinação do Modelo de Markov de ordem 0 combinado com n-grama, com isso é possível predizer a próxima palavra que sucede. Definindo matematicamente modelo de linguagem temos P(W) = P(Wn | W1, W2, , Wn-1), onde w é uma frase composta pelas palavras Wis (não precisa ser palavras, podem ser quaisquer elementos). Para o cálculo destas probabilidades, utiliza se uma probabilidade condicional e teorema de Bayes para fazer o cálculo daquela ocorrência, dada uma condição. Um ponto muito importante que vale destacar é que para o cálculo destas probabilidades não se pode esquecer das chamadas stop-words: <s> e </s>, sendo o <s> início da frase e </s> final da frase. Para uma correta modelagem é necessário utilizá-las servindo, também, para contornar os problemas nas extremidades.
Paula Keiko Miyashita A aula 5 abordou Modelagem de linguagem utilizando N-gramas. N-gramas é um algoritmo de busca por termos/conjunto de termos e, como toda busca, depende do idioma em que foi feita. O algoritmo procura sequencias contiguas de n elementos, que não devem ser necessariamente palavras (podem ser consideradas pontuações e, em um contexto biológico, proteínas ou aminoácidos). Conforme o tamanho da sequência de elementos considerada, o algoritmo pode receber diferentes nomes: Unigrama (n=1), Bigrama ou Digrama (n=2), Trigrama (n=3), 4-grama (n=4) e 5-grama (n=5), por exemplo. Um grafo de co-ocorrência pode ser utilizado para visualizar os n-gramas, pois mostra a sequência em que as palavras aparecem e sua frequência. Utilizando n-gramas é possível fazer a atribuição de avaliadores para cada projeto, levando em consideração palavras chave do projeto e das especializações do avaliador, o algoritmo n-gramas é importante para situações em que se tem termos compostos como “análise comportamental”, só o termo análise é muito abrangente. O algoritmo também é utilizado no Modelo de Markov, que procura predizer a(s) palavra(s) seguinte(s), como quando se realiza uma pesquisa no google. Esse modelo probabilístico também pode ser utilizado para correção ortográfica, tradução automática de textos e reconhecimento de fala. O modelo de linguagem atribui probabilidade a uma sequência de palavras, assim um modelo de linguagem que utiliza o modelo de Markov de ordem (N-1) consegue prever o item seguinte de uma sequência de palavras. A probabilidade de que a próxima palavra depois de “a ufabc é” seja “uma” pode ser calculada utilizando contagem, desta maneira a probabilidade é igual ao número de vezes que o conjunto “a ufabc é uma” apareceu dividida pelo número de vezes que o conjunto “a ufabc é” apareceu. Podemos calcular a probabilidade de uma frase W (compostas de wi palavras) multiplicando as probabilidades de w2 dado que w1, w3 dado que w1 e w2 e assim por diante até que a frase esteja completa. Para uma simplificação destes cálculos, utiliza-se N-gramas para determinar a probabilidade de uma frase W, considerando as N últimas palavras. Foram mostrados alguns exemplos com bigramas (utilizando estimativa por máxima verossimilhança) e algumas aplicações do n-grama como o Berkeley Restaurant Project e o algoritmo que gerava artigos aparentemente científicos baseado no conteúdo de outros artigos. Por fim, foram mencionadas a identificação de padrões (menção de palavras em relação aos anos), a exclusão de pontuação para aplicação dos n-gramas, utilização do algoritmo para reconhecimento de imagens de satélite e a utilização do log para o cálculo de probabilidade, evitando erros devido à multiplicação de números menores que zero.
Luiz Gabriel Correia N-gramas são estruturas compostas de n elementos, sejam eles palavras, caracteres, sílabas, fonemas, pares-base, contíguos em um corpus. unigramas, bigramas e trigramas são exemplos de n-gramas compostos de uma, duas ou três palavras seguidas respectivamente. N-gramas são tratados no terceiro capítulo do livro-texto da disciplina. É possível analisar a ocorrência de um n-grama em um corpus com o passar do tempo, por exemplo comparando a frequência em que o nome de cientistas importantes (como Newton, Euler, Einstein, Hawking) aparecem em livros através dos anos. Ao fazer um gráfico como esse para livros em diferentes idiomas, como inglês, francês ou alemão, percebemos que a distribuição muda, ou seja, os problemas a serem analisados são dependentes do idioma em PLN. Podemos usar n-gramas para analisar texto, digamos de uma música, através das relações entre as palavras, formando um grafo que pode nos trazer informação de forma gráfica a respeito da estrutura do corpus. Uma aplicação deste tipo de análise é o casamento de pares de projetos e avaliadores a partir da análise de currículo, onde construímos um grafo a partir de, por exemplo bigramas (nomes de disciplinas) e tentamos casar os especialistas com melhor afinidade com os projetos. Outra possibilidade é avaliar projetos a partir da análise de semelhança do texto com amostras. O modelo de Markov é um modelo probabilístico estatístico que pode ser usado para prever qual n-grama irá seguir de um sequência. Consiste de atribuir uma probabilidade ao n-grama. Um modelo de linguagem é uma forma de estimar a probabilidade de encontrarmos uma palavra dado um histórico P(W|h). Através de alguns cálculos de probabilidade condicional, vemos que a probabilidade de encontrar uma sequência de n palavras depende do produto recurso da probabilidade de encontrar a ultima palavra e a probabilidade de encontrar as demais dado o histórico. O problema é que assim temos muitas possibilidades de arranjos e teríamos que ter dados de contagem para todos os arranjos possíveis, o que não existe em corpus da vida real. Podemos simplificar o problema considerando somente as últimas k palavras, por exemplo, bigramas ou trigramas. Daí vem o pressuposto de Markov: a probabilidade de uma palavra depende apenas de k palavras anteriores. No caso de bigramas, é fácil fazer o cálculo da máxima verossimilhança baseado em uma contagem das palavras no corpus. Um exemplo interessante está nos dados colhidos no Berkeley Restaurant Project vindos restaurante da Universidade de Berkeley. Por fim, é através da análise de n-gramas com ferramentas como gráficos podemos detectar padrões que o corpus apresenta que não estão óbvias a princípio, como tendências de buscas por termos no Google.
Yago Sorrilha Modelando a linguagem com N-gramas -Um N-grama é uma sequência contigua de N elementos (e.g. caracteres, palavras, sílabas, fonemas, pares-base) que são comumente obtidas (analisadas) a partir de um corpus. Um unigrama refere-se a um elemento, Bigrama ou Digrama a dois elementos, Trigrama a três elementos e os demais números de elementos n são denotados por n-grama, por exemplo, n = 4 é um 4-grama. Uma aplicação para a abordagem de N-grama, é a atribuição de avaliadores para projetos O processo considerou: Padronizar para minúsculas, Remover as stop-words, Radicalizar as palavras, Agrupamento dos trabalhos por bi-gramas. Modelo de Markov de ordem 0 Geralmente, é utilizado para predizer o seguinte item em um n-grama Um modelo probabilístico pode ser utilizado para: -Correção Ortográfica -Tradução automática de texto -Reconhecimento de fala. Modelo probabilístico (estatístico) Modelo de linguagem é um modelo que atribui probabilidades a uma sequência de palavras. Um modelo de linguagem por N-grama permite predizer o seguinte item de uma sequência usando um Modelo de Markov de ordem (N-1). Exemplo: a ufbac é..(boa, paga, uma boa universidade). São modelos simples e escaláveis. Para tanto é necessário calcular uma probabilidade de uma palavra w dado um histórico h: P(w|h) e a partir da probabilidade podemos sugerir a palavra seguinte. Um modelo que calcule essas probabilidades é denominado modelo de linguagem. Probabilidade condicional considera a probabilidade de um evento ocorrer, dado que um evento anterior ocorreu, o que se deriva para os casos de mais variáveis. Casos em que há muitas possibilidades de arranjos de palavras são mais complicados e não recomendáveis pois no corpus não teremos dados suficientes para a contagem das vezes em que a sequência aparace. Nesse caso, para simplificar, podemos usar apenas as últimas palavras para aproximar a medida com o uso de bigramas ou trigramas, por exemplo. Cadeias de Andrei Markov Pressuposto de Markov é uma suposição que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es). Podemos fazer uma estimativa por máxima verossimilhança (ou seja, baseados em um corpus podemos determinar as probabilidades). Utilizando N-gramas podemos identificar padrões, por exemplo, verificarmos a quantidade de vezes que palavras aparecem em livros ao longo dos anos. Os sinais de pontuação geralmente não são considerados na análise por N-gramas. N-gramas podem ser utilizadas para diferentes contextos, por exemplo, imagens satelitais. Como podemos ter números muito pequenos para representar, podemos ter problemas de truncamento, perdendo precisão, nesse caso, é sugerido que utilizemos logaritmos para calcular as probabilidades das palavras
Thiago Henrique Gomes Panini Como de costume, a aula de Processamento de Linguagem Natural (quinta aula, no caso) foi iniciada a partir de um resumo da aula anterior e abordou uma breve revisão dos conceitos já tratados. Logo em seguida, foram iniciadas as tratativas da aula em questão: os N-Gramas. De acordo com a definição, um N-Grama é uma sequência contígua de N elementos, dados por caracteres, palavras, sílabas, fonemas, pares-base, entre outros, comumente obtidas a partir de um _corpus_. Para exemplificar, o professor Jesus Mena mostrou uma tabela com duas colunas relacionando o número de elementos e o número do N-Grama. Um N-Grama com 1 elemento é tido por Unigrama. Com 2 elementos, Bigrama. Com 3 elementos, Trigrama. Com 4 elementos, 4-grama e assim sucessivamente. Exemplos utilizando frases foram tratados para o melhor entendimento desse núcleo pela turma. Outros exemplos práticos foram extremamente importante para a explicação dos N-Gramas, como por exemplo, uma música da Alannis Morissete, a divisão da frase “I hate cigarettes with a passion” em N-gramas diferentes e, por fim, um projeto envolvendo a atribuição de avaliadores para projetos, cujo objetivo é relacionar, através de alguns parâmetros definidos, os melhores avaliadores para cada projeto. Após mencionar e detalhar alguns conceitos probabilísticos, uma atividade prática foi realizada de modo a fixar o conhecimento da turma. A ideia principal foi definir a probabilidade de uma determinada frase ocorrer, de acordo com as relações entre as palavras e as formações de N-Gramas (cadeias de Markov). Um ponto importante, entendido durante a atividade, relaciona a presença de um caractere que indica o início ( <s>) e o fim (</s>) de uma frase. Esses caracteres devem ser considerados durante o cálculo de probabilidade para o corpus. A atividade em questão relacionava a quantidade de unigramas, bigramas e trigramas possíveis em um conjunto de n palavras (corpus). Algumas regras foram mencionadas para se chegar ao número correto. Por fim, foi pedido ao aluno o cálculo da probabilidade de ocorrência da frase “I want chinese food” de acordo com uma tabela de probabilidades fornecidas. Já no encerramento da aula, foram abordados alguns conceitos sobre a identificação de padrões. Exemplos como a quantidade de menções sobre os anos no decorrer dos anos (anos 2000, ou y2k na suspeita do bug do milênio, por exemplo) ou então a menção a presidentes dos Estados Unidos em épocas diferentes de suas respectivas atuações. Uma dica final considerada pelo professor foi a utilização do Log para uma melhor visualização dos resultados probabilísticos.
Diego Pereira de Lima Na aula 5 de processamento de linguagem natural, no dia 17/06 foi abordada novas formas de stemming, entre as fórmulas estatísticas a de “n-gramas”. Sendo uma sequência contínua de elementos, sendo eles caracteres, palavras, sílabas e fonemas comumente obtidas e analisadas a partir de um corpus. Dentre as denominações há pela quantidade de elementos presentes na sequência: Unigrama, Digrama, Trigrama, k-grama. Para ilustra sua aplicação foi feito um dígrafo(grafo direcionado), onde apresentava uma música da Alanis Morissette - “You learn”. Também foi apresentado outra aplicação, na atribuição de avaliadores para projetos respeitando as regras estabelecidas. N-gramas também são utilizados com modelos de Markov de ordem 0. Para esta aplicabilidade, tem-se interesse de predizer o item seguinte ao elemento anterior, técnica utilizada em larga escala para Correção ortográfica, tradução de textos e reconhecimento de fala. Utilizando probabilidade e estatística para o modelo de linguagem com o N-grama, atrelado ao modelo de Markov de ordem N-1 é dito que para uma probabilidade de uma palavra w dado um histórico h, têm se a medida de ocorrência em um espaço amostral de uma situação dependente. Sendo assim é possível ser utilizado um Corpus para contar a quantidade de vezes que um e outro elementos aparecem e assim induzir por meio estatísticos a probabilidade de um evento e de outro e assim poder calcular a probabilidade de variáveis dependentes. Porem se tratando de línguas humanas que são criativas e por muitas vezes não podem ser relacionadas com base no histórico. Foram evidenciadas pesquisas no Google que mesmo em uma base de dados considerada enorme, podem ter casos de não ocorrência na combinação de certos n-gramas. Assim evidenciando um pouco de formalização matemática podemos visualizar que o encadeamento de varias relações de dependência de uma palavra com sua subsequente dado um histórico comparativo e estatístico de suas aparições, é possível inferir a probabilidade de ocorrência de uma determinada frase em questão. Ou seja, como pressupõem a cadeia de Markov, a probabilidade de ocorrência de uma palavra depende apenas das palavras anteriores. Concatenando uma produtória de valores de probabilidade de a variáveis dependentes. Assim estimar as probabilidades por digramas, trata-se da máxima verossimilhança, devido ao histórico de ocorrências. E por fim foi realizada uma atividade onde era pedidos verificar e enumerar a ocorrência de digramas trigramas e unigramas, além de calcular a probabilidade da formulação de uma frase com base na probabilidade de ocorrência da palavra/elemento anterior da frase.
Felipe Rigo Yoshimura Na quinta aula de Processamento de Linguagem Natural foi abordado o tema de N-gramas. Um N-grama é uma sequência contigua de N elementos (caracteres, palavras, sílabas, fonemas, pares-base). São comumente obtidas ou analisadas a partir de um corpus. Essa estrutura com um elemento se chama unigrama, com dois bigrama ou digrama, com três elementos trigramas e com quatro ou mais elementos número de elementos-grama. Um exemplo de utilização de bigrama é o projeto de atribuição de avaliador para projeto, onde seu pipeline consiste em padronizar para minusculas, remover stop-words, radicalizar as palavras utilizando o porter stemming e agrupar os trabalhos por bi-gramas. Utilizando o modelo de Markov de ordem 0 é possível predizer o próximo elemento de um n-grama. Com isso pode-se criar modelos probabilísticos para correção ortográfica, tradução automática de textos e reconhecimento de fala. Um modelo que atribui probabilidades a uma sequência de palavras é denominado de Modelo de Linguagem. Um modelo de linguagem por N-grama permite predizer o seguinte item de uma sequência usando um Modelo de Markov de ordem (N-1), esses modelos são simples e escaláveis. Utilizando um Corpus, conta-se o número de vezes que uma palavra w e seu histórico h aparecem juntos e o número de vezes que o histórico h aparece no texto, dividindo a primeira pela segunda contagem obtem-se a probabilidade de uma palavra ocorrer dado um certo histórico. A linguagem humana é criativa e, independente do tamanho do corpus, muitas sequências podem não ser identificadas. Utilizando probabilidade condicional, pode-se estender esse conceito para cadeias de palavras com mais variáveis. Porém como existem muitas possibilidades de arranjos de palavras, aproxima-se a medida para utilizar apenas a última palavra. O pressuposto de Markov diz que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es). A estimativa por máxima verossimilhança ou seja, baseando-se em um corpus, pode-se determinar essas probabilidades. Algumas considerações finais são: pode-se identificar padrões ao longo do tempo de citações utilizando N-gramas; os sinais de pontuação geralmente não são considerados na análise por N-gramas; N-gramas podem ser utilizadas para diferentes contextos, como em imagens de satélite, utilizando para determinar a que parte da terra pertence uma determinada imagem. Como as probabilidades podem ser representadas com números muito pequenos, uma boa sugestão é utilizando a função logarítmica.
Amanda Cruz Francesconi Nas últimas aulas vimos duas técnicas utilizadas para stemming: as técnicas de Porters e Lovins, ambas que utilizavam o conceito de truncamento das palavras, nessa aula estudamos uma abordagem estatística, a técnica de N-gramas, tema referente ao capitulo 3 da bibliografia utilizada nessa disciplina. N grama é uma sequencia contígua de N elementos, sendo esses elementos não necessariamente palavras, podem ser símbolos, caracteres, fonemas, etc, dependendo do corpus que está sendo avaliado. Por exemplo, ao se analizar uma sequência de DNA, um digrama corresponde a um par-base. Uma ferramenta que pode ser utilizada online é a do google (https://books.google.com/ngrams), que tem um dos maiores corpus, uma vez que contém muitos livros armazenados na plataforma. Para ser contabilizado o n grama precisa estar presente em pelo menos 40 livros, entretando, podem haver erros devido a falhas de digitalização. Pode-se por exemplo ver por ano qual a percentagem de aparição de grandes nomes como Einstein, Newnton, Hawking entre outros e além disso perceber que há uma mudança significativa dos resultados se alterado o idioma do corpus avaliado. Na frase um dois três quatro, temos 4 unigramas: um, dois, três, quatro 3 bigramas: um dois, dois três, três quatro 2 trigramas: um dois três, dois três quatro Da aula anterior em que vimos o grafo da obra Ilíada, agora podemos concluir que cada par de nós configura um digrama contido no texto, logo esse tipo de grafo representa os bigramas mais comuns no corpus. O mesmo pode ser feito como método para comparar letras de músicas. Ou seja, pode-se ter um certo conhecimento sobre a letra da musica ou do livro, através de uma representação gráfica matemática. Entretanto, dos exemplos mostrados poderia obter-se um resultado melhor se fossem retiradas stop words e/ou utilizada a lemmatização. Um caso prático da utilização de N gramas foi utilizado pelo ABC, onde o algoritmo auxiliava a decidir quais projetos deveriam ser avaliados por quais professores, considerando afinidade no assunto e retirando casos em que havia conflito de interesse (por exemplo não avaliar parentes ou amigos). o modelo probabilistico de markov de ordem zero é utilizado para predizer o seguinte item em um n grama, como por exemplo para correção ortográfica, tradução de textos ou reconhecimento de fala. O modelo consiste em determinar a probabilidade de uma palavra W dado um histórico H: P(W|H).
Matheus Tulio Pereira da Cruz A frequência de determinada palavra em textos depende muito do idioma que ocorrerá a busca. Por exemplo, nome de cientistas. Um N-grama é uma sequência de palavras contígua de N elementos e são comumente obtidas (analisadas) a partir de um corpus. Unigramas - Agrupamentos de elementos únicos Bigramas - Agrupamentos de dois elementos Trigramas - Agrupamentos de três elementos A técnica de n-gramas pode ser usada para atribuição de pesquisas a avaliadores sem que haja nenhum conflito de interesses. N-gramas são usados também nas sugestões de buscas do Google. O corpus nesse caso não necessariamente é só o texto pesquisado, mas também o texto nas páginas web. Um modelo probabilístico compreende a especificação de uma distribuição e valores de parâmetros. Ele é utilizado em correção ortográfica, tradução de textos. Exemplo de modelo probabilístico: P(uma | a UFABC é) = C(a UFABC é uma) / C(a UFABC é) Pressuposto de Markov - Um processo estocástico tem a propriedade de Markov se a distribuição de probabilidade condicional de estados futuros do processo (condicional tanto em estados passados, como presentes) depende apenas do estado presente, não da sequência de eventos que o precedeu Como podemos achar padrões ? É possível encontrar padrões com base na frequência ao longo do tempo, da para perceber como uma busca de algo performa ao longo do tempo. Os sinais de pontuação normalmente não são considerados por n-gramas. É possível utilizar n-gramas em imagens satelitais. Como por exemplo, determinar que parte da terra é referente a determinada imagem. Como determinar a probabilidade de determinada frase ser completada da forma desejada dado um segmento da frase? Por exemplo: Tendo o segmento, "Eu estudo", qual a chance dessa frase ser "Eu estudo na UFABC". É necessário achar a probabilidade de P("Eu" / <s>) * P("estudo" / "eu") * P("na" / "estudo") * P("UFABC" / "na") * P(<s> / "UFABC") Analisando/Enumerando um Bigrama de uma frase, é preciso tomar cuidado com a primeira e a última palavra, porque cada uma dessas palavras possuem um bigrama que as identificam como início e fim, respectivamente. Exemplo: "Eu estudo na UFABC" Enumerando os Bigramas: <s>"Eu" / "Eu""estudo" / "estudo""na" / "na""UFABC" / "UFABC"<s> Esse detalhe é similar na enumeração de trigramas. Exemplo: "Eu estudo na UFABC" Enumerando trigramas: <s><s>"Eu" / <s>"Eu""estudo" / "Eu""estudo""na" / "estudo""na""UFABC" / "na""UFABC"<s> / "UFABC"<s><s>
Rodolfo Azevedo Dos Santos Modelando a linguagem com N-gramas O idioma importa (para aplicações), ou seja, para as mesmas buscas pode-se obter diferentes ocorrências dependendo do idioma. Frequência: Nº de vezes que o termo aparece no banco de dados. Exemplo: Google Books N-Gram Viewer: Aplicação do Google para pesquisar N-Gramas. N-grama: sequência contígua de elementos (pode ser palavras, DNA, RNA, sílabas, etc). São tuplas de 1 a n elementos. Exemplos: Um | Dois | Três | Quatro = 4 Unigramas [Um (Dois] (Três) Quatro) = 3 bigramas Unigramas geralmente desconsideram acentuação Grafo (Visualização de bigramas) Peso: Número de vezes que ambos os vértices ocorrem. Grafo direcionado: arestas indicam bigramas. Aplicação: Bigramas de músicas (representam de forma gráfica letras de músicas) Um outro exemplo de aplicação é a atribuição de avaliadores para projetos baseado no Lattes de cada avaliador e no conteúdo do projeto. Modelo de Markov de ordem 0: Geralmente utilizado para predizer (prever) o próximo item de um n-grama. (Probabilístico) Aplicação: Predição de busca do Google. Corpus é buscado nas buscas e também no conteúdo (dos documentos). Modelo probabilístico (aplicações): Correção ortográfica, tradução automática de texto, reconhecimento de fala. Este modelo atribui probabilidades a uma sequência de palavras (n-gramas). Quanto maior o tamanho do corpus melhor o resultado. P(w|h) = C(hw) / C(h) , sendo C: Contagem P(uma| a Ufabc é) = C (a Ufabc é uma) / C (a Ufabc é) A linguagem depende da criatividade humana: Pode existir buscas/documentos que nunca foram pesquisados. Ou seja, sem histórico o denominador é ZERO (logo, P = ZERO). Portanto, muitas sequências podem não ser identificadas. P(W) = P(w1,w2,w3,...,wn), W é composto pelas palavras Wn. Um pouco mais de formalização: Probabilidade condicional: P( B| A) = P(AB) / P(B) Aproximando ou simpliciando: Utilizar apenas a(s) última(s) palavra(s) para aproximar a a medida. P(uma | a Ufabc é ) =~ P(uma| é) Pressuposto de Markov: Suposição que a probabilidade depende apenas da probabilidade de uma(s) palavra(s) anterior(es). K palavras anteriores. Considerações finais: 1) Podemos identificar padrões: Padrões baseados em frequência 2) Sinais de pontuação não são considerados em N-gramas 3) N-gramas podem ser utilizados em imagens 4) Número pequenos : Utilizar log para a representação (pois além de ser computacionalmente custoso (calcular multiplicação) é mais fácil visualizar em formato de log).
Lucas Zanoni de Oliveira No âmbito dos algoritmos de Stemming, temos a abordagem dos n-gramas que é derivada do grupo estatístico dos mesmos. Um n-grama, nada mais é do que uma sequência de n elementos vizinhos, podendo ser caracteres, palavras, sílabas, fonemas e até mesmo pares-base, tendo como forma comum de obtenção as análises derivadas de um corpus (um exemplo de uso desse conceito pode ser encontrado no Google Books N-gram Viewer que tem como fonte de dados diversos livros indexados). A definição dos nomes dos n-gramas é dado da seguinte forma: um elemento é unigrama, dois elementos é brigrama/digrama, três elementos é trigama, quatro elementos é 4-grama, cinco elementos é 5-grama, e assim por diante. Podemos pegar como exemplo a frase “um dois três quatro”, onde podemos ter 4 unigramas (“um”, “dois”, “três” e “quatro”), 3 bigramas (“um dois”, “dois três” e “três quatro”), 2 trigramas ou um 4-grama. Outro tópico apresentado em aula, foi o de modelo de linguagem que é responsável por atribuir probabilidades a uma determinada série de palavras, permitindo a predição de um seguinte item em uma sequência já definida, utilizando um modelo de Markov de ordem (n-1) que são simples e escaláveis, possuindo a sua probabilidade definida por P(w|h), onde w é uma palavra e h é o histórico. Apesar disso, devido à criatividade da linguagem humana, muitas sequências não podem ser identificadas, indiferentemente do tamanho do corpus. Formalizando a probabilidade condicional apresentada temos que P(B|A) = P(A, B)/P(B) e P(A, B) = P(A)P(B|A), podendo possuir n outras variáveis inclusas no modelo. A fim de facilitar por meio da aproximação ou simplificação, podemos usar apenas as últimas palavras para aproximar uma medida. Dando um passo para trás, podemos definir o pressuposto de Markov como uma suposição que a probabilidade de uma palavras depende apenas da probabilidade de uma(s) palavra(s) anterior(es). Há também a possibilidade de estimarmos as probabilidades utilizando bigramas por meio da Máxima Verossimilhança, Como considerações finais, temos que os sinais de pontuação geralmente não são considerados na análise de n-gramas, é possível identificarmos padrões em uma escala temporal x probabilidade, n-gramas podem ser utilizados para determinar a qual parte da terra pertence uma certa imagem.
Guilherme Beo Arqueiro O uso de N-gramas para modelar uma linguagem foi o assunto principal da aula. N-gramas são sequências contíguas de "n" elementos, sejam eles caracteres, sílabas, palavras, fonemas etc, que são analisadas em meio a um corpus (conjunto de documentos ou textos utilizados para a busca). A classe dos N-gramas é nomeada em relação ao número de elementos que o compõe. Por exemplo, um n-grama definido por somente um elemento é chamado de Unigrama, por 2 elementos é chamado de Bigrama ou Digrama, por 3 elementos é chamado de Trigrama, por 4 elementos é chamado de 4-grama, por 5 elementos é 5-grama e assim sucessivamente. Com essa distribuição, podemos usar diferentes tipos de n-gramas para diferentes aplicações. É possível utilizar, por exemplo, modelos probabilísticos baseados nos n-gramas para correção ortográfica, reconhecimento de fala e tradução automática de textos. O modelo de linguagem é um modelo que define uma determinada probabilidade a uma sequência de palavras. Com o uso de N-gramas neste modelo, é possível identificar o item seguinte de uma sequência ao utilizar o Modelo de Markov. Podemos encontrar a probabilidade de ocorrer uma palavra w dado um determinado histórico de palavras h: P(w|h). Utilizando um corpus para contar o número de vezes que w e h aparecem, podemos obter a probabilidade de w ocorrer com a fórmula P(w|h) = (C( h w))/(C(h)). Com isso, podemos considerar mais variáveis neste cálculo ou até mesmo encontrar a probabilidade de palavras em uma frase, porém, ao buscar probabilidade de palavras em uma frase, existem muitas possibilidades de arranjos de palavras, o que não é recomendado já que pode não haver dados suficientes no corpus para calcular a quantidade de vezes em que a sequência aparece. Para simplificar o cálculo de probabilidade de palavras em uma frase, podemos por exemplo utilizar bigramas ou trigramas para aproximar a medida e simplificar o cálculo. Markov possui um pressuposto que diz, basicamente, que a probabilidade de uma palavra depende somente da probabilidade de palavra(s) anterior(es). Assim, baseado em um corpus, é possível estimar as probabilidades por meio de máxima verossimilhança. Com as probabilidades calculadas para o corpus, podemos realizar os cálculos mais facilmente, além de ser possível “simplificar” números muito grandes ao utilizar log
Marcelo de Souza Pena Na aula 5 iniciamos o capítulo 3 do livro. Modelando linguagens com n-grams. O n-grams é um algoritmo de stemmer estatístico. Com o Google Ngrams é possível comparar as presenças de nomes de autores famosos em livros umas com as outras, mas os dados podem estar incompletos por erro nos OCRs que são programas que fazem a digitalização do texto físico. [books.google.com/ngrams](http://books.google.com/ngrams). N-gramas são sequências de n palavras/letras, como no exemplo "um dois três quatro" que contém 4 unigramas, 3 bigramas ou 2 trigramas. Podem ser úteis em análises no twitter, sequenciamento de DNA, linguística computacional, etc. O grafo de co- ocorrência da Ilíada da aula passada é um exemplo de bigramas. Outro exemplo de bigramas é analisando músicas, existem trabalhos sobre isso. Projeto usando emparelhamento máximo entre avaliadores e projetos, respeitando restrições, padronizou minúsculas, removeu stopwords, Porter Stemming, agrupou por bigramas, mas não foi utilizado pela metade dos comitês avaliadores. Modelo de Markov de ordem 0, utilizado para correção, tradução e reconhecimento de fala. É um modelo que atribui uma probabilidade para cada sequência de palavras. Dado que a palavra batata apareceu, qual é a probabilidade de aparecer a palavra doce, probabilidade condicional (IPE). O teste da aula foi sobre isso, sem muita dificuldade, mas esqueci de considerar os caracteres de início e fim de linha, <s> e </s>, respectivamente, assim o valor não deu exato. Vimos uma revisão sobre probabilidade condicional. É possível calcular a probabilidade de uma palavra vir na sequência de outras, assim fazer recomendações. Como exemplos vimos o criador de artigos lero lero e o detector de artigos lero lero, que basicamente colocam palavras que fazem sentido juntas, mas num contexto geral o artigo não diz absolutamente nada. Pressuposto de Markov: a probabilidade de uma palavra depende apenas de umas poucas palavras anteriores., estimativa por máxima verossimilhança. Exemplo do Sam, exemplo da capivara no [guidetodatamuning.com/ngramAnalyzer/](http://guidetodatamuning.com/ngramAnalyzer/) mostrando diferentes grams e exemplo de avaliações de restaurante, com uma tabela de vezes que uma palavra aparece e vezes que outras palavras aparecem na sequência. Algoritmo pode ser útil para encontrar padrões. Dica: usar log ao invés de multiplicar probabilidades pequenas já que o log mantém as distâncias.
Felipe de Campos Mesquita Resumo da aula 5 sobre modelagem de linguagem usando N-gramas. A bibliografia da aula é o capítulo 3 do livro Speech and Language Processing 3 edição de Dan Jurafsky e James H. Martin. Da definição dos slides da aula temos, um N-grama é uma sequência contigua de N elementos (e.g., caracteres, palavras, sílabas, fonemas, pares-base). São comumente obtidas (analisadas) a partir de um corpus. Sendo assim, quando o número de elementos é 1 temos um unigrama, quando é dois, temos um bigrama ou digrama, quando é 3 temos um trigrama, quando é quatro um 4-grama e assim por diante com N-grama. O exemplo da aula foi dado em cima de uma frase de quatro palavras, a frase “um dois três quatro” possui 4 unigramas, um para cada palavra. A mesma frase possui 3 bigramas, sendo o primeiro bigrama “um dois”, o segundo “dois três” e o terceiro “três quatro”, neste caso consideramos todas as possibilidades de dois elementos juntos na mesma frase, e em alguns casos consideramos o início e o fim do trecho do texto como elementos também, como aconteceu no exercício do teste da aula. A frase anterior possui 2 trigramas se considerarmos “um dois três” e “dois três quatro”. Na aula vimos uma aplicação deste conceito para atribuição de avaliadores para projetos considerando bigramas. Outro aspecto interessante é usar cadeias de markov para predizer o elemento seguinte de um N-grama. Cadeias de Markov estão na área de modelagem de processos estocásticos e podemos utilizá-lo para predizer o item de uma sequência com modelos simples e escaláveis. Utilizando alguns conceitos de estatística e probabilidade condicional podemos chegar a alguns conceitos que nos ajudarão a predizer um elemeto da sequência dado os elementos passados. O exercício da aula foi baseados nesses conceitos para fazer cálculos a respeito de uma possível frase dado a frequência de palavra e bigramas de um texto, mais especificamente o texto sobre consulta de restaurantes que aconteceu na Universidade de Berkeley. Também vimos que uma sugestão para auxiliar nas contas das cadeias de markov pode ser usar logs para transformar uma equação que usava um produtório para um somatório, assim mantemos as proporções de distância, mas teremos maior facilidade em realizar as contas.
Vinicius Narciso da Silva N-gramas são sequências contíguas de N elementos (caracteres, palavras, sílabas, fonemas, etc.) que são comumente obtidas (analisadas) a partir de um corpus. Podemos classifica-los quanto a quantidade de elementos (Unigramas quando tem 1 elemento, Bigramas ou Digramas quando tem 2 elementos, Trigramas quando tem 3 elementos, etc.). Como exemplos, foram analisados gráficos de citação em livros de unigramas de importantes cientistas (Newton, Einstein, etc.), livros esses digitalizados e indexados pelo Google. Importante reforçar que N-gramas podem ser aplicados em sequências mais abrangentes que palavras (sequências de DNA, sequências de Proteínas, etc.). Grafos auxiliam graficamente a análise de N-gramas. Uma aplicação de N-gramas é a de atribuir avaliadores para projetos. Utilizando uma série de fatores e restrições, os projetos foram analisados e foram extraídos bigramas dos projetos para facilitar a análise de qual avaliador seria o melhor para a temática do projeto. O modelo de Markov de ordem 0 podem ser utilizados para predizer o seguinte item em um n-grama. Modelos probabilísticos podem ser utilizados para correção ortográfica, tradução automática de textos e reconhecimento de fala. Um modelo de linguagem atribui probabilidades a uma sequência de palavras (um modelo de linguagem por N-grama permite predizer o seguinte item de uma sequência usando um Modelo de Markov de ordem (N-1)). Em modelos probabilísticos, um modelo que calcule P(W) ou P(wn|w1,w2,...,wn-1), sendo W, w1...wn palavras, é um modelo de linguagem. Para estes cálculos são utilizadas técnicas de probabilidade condicional: P(B|A) = P(A, B)/P(B), logo P(A, B) = P(A)P(B|A). Com isso temos a fórmula geral P(x1,x2,...,xn) = P(x1)P(x2|x1)P(x3|x1,x2)...P(xn|x1,...,xn-1). Para P(xi|x1,...,xi-1) = C(x1,...,xi)/C(x1,...,xi-1), sendo C() a função de contagem de ocorrências. Podemos aproximar a medida de probabilidade utilizando "apenas" as últimas palavras, ou seja, P(uma|a ufabc é) é aproximado a P(uma|é) usando-se bigramas ou P(uma|ufabc é) usando-se trigramas (princípio do Pressuposto de Markov). Pegando bigramas como base, as probabilidades são estimadas por Máxima verossimilhança (baseadas em um corpus).
Arthur Veloso Kamienski Esta aula de PLN apresentou o conceito de N-gramas. N-gramas são sequência contíguas de elementos, de um tamanho N de 1 a N, podendo ser esses elementos caracteres, palavras, sílabas, fonemas, etc. retiradas de um corpus para serem analisadas em conjunto. Comumente são utilizados N-gramas de tamanho de 1 a 5, sendo esses chamados de "unigrama" para N=1, "bigrama" ou "digrama" para N=2, "trigrama" para N=3, e N-grama para N>=4 (por exemplo, 4-grama). A relação entre N-gramas pode ser modelada com ajuda de grafos de coocorrência para identificar probabilidades de uma sequência de N-gramas ser utilizada dado um corpus. Dessa forma, um modelo probabilístico utilizando N-gramas pode ser utilizado para correções ortográficas, tradução automática de textos e reconhecimento de fala. Esse modelo, o qual atribui probabilidades à sequências de palavras, é chamado de Modelo de Linguagem. Os modelos que utilizam N-gramas são implementados a partir de uma sequência de Markov de ordem N-1. Esses modelos são simples e escaláveis. A base desse modelo é a probabilidade condicional, dada pela probabilidade de ocorrência de uma palavra dada o restante da frase. Essa probabilidade pode ser obtida pela divisão do número de ocorrências (C) da frase com a palavra dividida pelo número de ocorrências da frase sem a palavra. Assim, para a frase "a ufabc é uma", a probabilidade da palavra "uma" aparecer após a frase "a ufabc é" é dada por P(uma|a ufabc é) = C(a ufabc é uma)/C(a ufabc é). Vale notar, no entanto, que muitas sequências podem não aparecer no corpus, levando a um número de ocorrências de 0 e, consequentemente, probabilidade 0. Um modelo de linguagem utiliza essas probabilidades para calcular P(wN+1|w1, w2, w3...wN), ou seja, a probabilidade de uma palavra dada uma sequência de palavras w de 1 a N. Essa probabilidade é calculada pela probabilidade da palavra vezes a probabilidade de cada palavra subsequente, sendo definida por um produtorio. Essa probabilidade pode ainda ser convertida a uma conta de aparições das palavras, como feito para a probabilidade anterior, resultando em um somatório de ocorrências.
Brian Alves Andreossi Aula 4 Google Books N-grams Viewer \- Fonte de dados: Livros indexados pelo Google N-gramas \- Um N-grama é uma sequência contígua de N elementos (caracteres, palavras, sílabas, fonemas, pares-base) \- São comumente obtidas (analisadas) a partir de um corpus. Possíveis utilizações \- Sequência de proteína \- Sequência de DNA \- linguística computacional É possível transformar bigramas em grafos: de alguma forma é possível coletar informações sobre certo texto a partir de n-gramas. Observação: A análise de stopworlds ainda é valida, pode ser mais proveitoso quando retirado parte delas. Aplicação especial: \- A atribuição de avaliadores para projetos. Uma das possíveis soluções utiliza PLN. Modelo de Markov de ordem 0 Geralmente é utilizado para predizer o seguinte item em um n-grama Exemplo: barra de sugestão do google. A análise do grafo dos n-gramas em tese já seria suficiente para a predição. Outras possibilidades: Correção ortográfica, tradução de textos. Modelo de linguagem \- Um modelo que atribue probabilidades a uma sequência de palavras é denominado Modelo de linguagem. \- Probabilidade de uma palavra w dado o histórico h: P(w|h) Exemplo: P(uma|a ufabc é) P(uma|a ufabc é) = C(a ufabc é uma) / C(a ufabc é) As inforamções da contagem podem ser retiradas de um corpus. Quanto maior, mais completo. Mas e se o corpus não possuir a sequência indicada? A linguagem humana permite combinar palavras das mais diferentes formas e permitindo situações onde: \- C(w) = 0 \- C(h) = 0 Um modelo que calcule P(W) ou P(wn | w1, w2, wn-1) (Lembrar do teorema de Bayes para a probabilidade e probabilidade condicional). \- Há muitas possibilidades de arranjos de palavras. \- Para efeito de simplificação, podemos utilizar apenas as últimas palavras para aproximar a medida. P(uma|a ufabc é) é mais ou menos P(uma|é) Pressuposto de Markov é a suposição que a probabilidade de uma palavra depende apenas da probabilidade das últimas k palavras. No contexto dessa disciplina, pode-se utilizar o k = N, ou seja, olhar a palavra mais prováve que formaria um n-grama.
Ramon Neres Teixeira Jardim Nesta aula foi abordado o conceito de N-grama, que pode ser utilizada como uma estratégia diferente para algoritmos de Stemming. Um N-grama é um conjunto de N elementos sequenciais e, nesta disciplina, os elementos abordados serão palavras extraídas de textos. Para exemplificar, tomemos a sequência de palavras "um dois três quatro", nesta sequência temos 4 unigramas, ou seja, 4 conjuntos de uma palavra, sendo eles as próprias quatro palavras do conjunto, 3 bigramas, ou seja três conjuntos de duas palavras sequenciais, sendo eles os conjuntos {um, dois}, {dois, três} e {três, quatro} e 2 trigramas, ou seja, 2 conjuntos de três palavras sequenciais, sendo eles {um, dois, três} e {dois, três, quatro}. Uma fonte muito rica em dados literários para a aplicação do conceito de N-gramas é o Google Books NGram Viewer. Neste site é possível fazer uma busca por N-gramas e ver sua frequência na literatura em função do tempo, podendo também fazer comparações da frequência de vários N-Gramas. Os dados exibidos no sistema são normalizados por ano e apenas consideram N-gramas que apareceram em pelo menos 40 livros. Como grande parte destes dados foi extraída de livros físicos por meios de algoritmos de OCR, é possível que tenham ocorrido erros de leitura que podem ter deixado a base de dados incompleta. Uma forma de reforçar a informação obtida por meio do uso dos N-gramas é utilizando o modelo probabilístico de Markov, que é utilizado para predizer o seguinte item do N-grama, correção ortográfica, tradução de textos e reconhecimento de fala. para isso, calcula-se a probabilidade de encontrar uma palavra W dado um histórico H, que é calculado como a quantidade de ocorrências do encontro da palavra W precedida pela sequencia H divida pela quantidade de ocorrências da sequência H. A probabilidade de encontrar uma sequencia H, é calculada como o produto da probabilidade de encontrar cada palavra contida na sequência H. Esta produtoria pode se tornar muito extensa para N-gramas com N grande e para resolver este problema, pode-se utilizar uma aproximação que considera apenas algumas das palavras anteriores àquela que se quer calcular a probabilidade.
Lucas Ferraz Nicolau Nesta aula foi estudado o tema de modelagem de linguagens através do uso de n-gramas. Um n-grama é uma sequência contígua de n elementos que, no contexto de PLN, podem ser palavras, caracteres, sílabas, fonemas ou pares-base, dependendo de qual será o tipo de análise realizada no corpus. Exemplos de aplicações que utilizam n-gramas são processamento de sequências de DNA e aminoácidos, predição de palavras em uma busca e verificação de similaridade entre objetos para atribuição de relacionamentos ótimos como, por exemplo, a distribuição de avaliadores para um conjunto de projetos. Dando sequência a aula, o foco passou para métodos probabilísticos para predição de sequências de n-gramas, que podem ter como finalidade sugestionamento de palavras, correção ortográfica, tradução automática de textos e reconhecimento de fala. Um modelo que atribui probabilidades a uma sequência de palavras é denominado modelo de linguagem onde um modelo de linguagem por n-grama permite a predição do item seguinte através de um modelo de Markov de ordem n-1. O modelo de Markov se baseia na atribuição da probabilidade de uma palavra ocorrer, dadas as palavras anteriores, através da contagem das ocorrências destes antecessores sendo seguidos, ou não, pela palavra de interesse. Para analisar sequências maiores, deveríamos então considerar o encadeamento das palavras entretanto, pelo Pressuposto de Markov, podemos realizar estimativas confiáveis simplificando o processo para considerar apenas as últimas palavras da sequência, diminuindo o processamento necessário nos corpora. Na atividade prática, identificamos particularidades de n-gramas onde n é maior que 1, como bigramas (n=2) e trigramas (n=3), que devem considerar em suas combinações de palavras o ínicio e fim de parágrafos para que não ocorra perda dessa informação. Também calculamos a probabilidade de ocorrência de n-gramas com base em uma tabela de contagem de bigramas extraídos de 9332 frases utilizadas no Berkeley Restaurant Project. Como considerações finais, foram levantadas questões relativas ao uso de n-gramas para identificação de padrões, à relevância de sinais de pontuação no processamento por n-gramas, aos casos onde os elementos estudados são imagens e à possibilidade da utilização da operação logarítmica para agilização dos cálculos de probabilidade.
Matheus Dos Santos Pereira Aula 5 teve o tema de Modelando a linguagem com N-gramas, um N-grama é uma sequência contínua de N elementos (e.g., caracteres, palavras, sílabas, fonemas, pares-base), normalmente são obtidas e analisadas a partir de um corpus, como exemplo foi passado um banco do google, onde é possível procurar a situações em livros, desde de 1800 até hoje, pudemos perceber uma diferença gigantesca dos resultados ao trocar a língua alvo de pesquisa neste banco. Unigrama consiste de 1 elemento, bigrama ou diagrama consiste em 2 elementos, Trigrama para 3 elementos, n-grama para n elementos. Vimos um aplicação que consiste em escolher quem são os avaliadores para os projetos, o processo deste programa consiste em padronizar o texto para minúsculas, remover as stop-words (EN, PT, SP), radicalizar as palavras, agrupar as palavras por bi- gramas. Um modelo probabilístico pode ser usado para correção automática, tradução automatica de texto e reconhecimento de fala. Um modelo que atribui probabilidades a uma sequência de palavras é denominado Modelo de linguagem.Um modelo de linguagem por N-grama permite predizer o seguinte item de uma sequência usando um Modelo de Markov de ordem (N-1), estes são modelos simples e escaláveis. Modelo de linguagem: P(w/h) é a Probabilidade de uma palavra w dado um histório h. Exemplo: "a ufabc é uma" -> P(uma | a ufabc é) = C(a ufabc é uma) / C(a ufabc é) . (C é contagem desta sentença, no caso específico estamos contando ela no Corpus). Este cálculo de probabilidade é chamado de probabilidade condicional. Não é aconselhável montar a probabilidade da frase inteira ao procurar no corpus, pois no corpus não teremos dados o suficiente, por isso devemos usar bigramas e trigramas para aproximar a média. Usamos o pressuposto de Markov é a suposição que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es). Depois disso fizemos alguns exemplos com o cálculo de probabilidade em corpus juntamente com alguns grafos e gráficos, e uma atividade que compunha tanto probabilidade em corpus, quanto construção de n-grama.
Marcelo Schirbel Gomes Aula 05 Modelando a Linguagem com N-gramas Podemos ver outras abordagens para o Stemming. Existem muitas ferramentas que permite identificar certos padrões. Um problema desses padrões é a dependência do idioma. Uma ferramenta para essa visualização é o Google Books N-gram Viewer. Um N-Grama é uma sequencia contígua de N elementos. São analisadas a partir de um escopo, também chamado de *corpus*. Podemos pensar numa N-grama como uma tupla, de tamanho N. Podemos modelar sequencias de DNA, proteínas, e claro, lingística computacional. Exemplo: 'Eu odeio o sol com força' Unigrama: 'eu', 'odeio', 'o', 'sol', 'com', 'força'. Bigrama: 'eu odeio', 'odeio o', 'o sol', 'sol com', 'com força'. Trigrama: 'eu odeio o', 'odeio o sol', 'o sol com', 'sol com força'. Uma das principais aplicações está com relacionado com atribuição de avaliadores para projetos. Devemos tomar alguns cuidados nesse caso, pois podem haver conflitos de interesse entre as partes. Ainda assim, podemos encontrar uma aretas que mostra a afinidade de um avaliador com um avaliado. Modelo de Markov de Ordem É utilizado para predizer o seguinte item em um n-grama. É um modelo probabilístico pode ser usado para predizer, corrigir, traduzir ou reconhecer algum áudio. Modelo Probabilístico É um modelo que atribue probabilidades a uma sequência de palavras. Para isso, usamos o N-gramas. São geralmente simples e escaláveis. Probabilidade de w dado um histórico h. P(w|h) Exemplo: 'ufabc é uma' P(uma|a ufabc é) = C(a ufabc é uma) / C(a ufabc é). Podemos usar, por exemplo, o buscador do Google, que retorna a quantidade de valores encontrados. Só que a linguagem é totalmente dependente da forma como é falada, ou de gírias, o que pode atrapalhar os fatores de probabilidade. Esse tipo de cálculo é denominado modelo de linguagem. Isso gera um número extensivo de arranjos de palavras. E para simplificar podemos simplesmente considerar os últimos termos. Isso é uma forma de aproximar o resultado desejado. Pressuposto de Markov É a suposição que a probabilidade de uma palavra depende de poucas palavras anteriores.
Tiago Suzukayama Existem outras abordagens para stemming além das estudadas até então. Uma delas é com n-gramas. N-gramas são uma sequência contigua de n elementos, que pode sem caracteres, palavras, sílabas, fonemas, pares-base, etc. São comumente obtidas a partir de um corpus (texto). Um n-grama pode ser: unigrama, brigrama, trigrama, 4-grama e 5-grama, dependendo da quantidade de elementos. Por exemplo, a frase "um dois tres quatro" possui 4 unigramas, 3 bigramas e 2 trigramas. Um dos exemplos de aplicação de n-gramas citados pelo professor, foi o de como atribuir avaliadores para projetos/artigos. Para poder atribuir um avaliador, deve-se respeitar uma série de regras, como não ser parente do autor do projeto, não ser amigo e ser de áreas correlacionadas. Para identificar se a área de pesquisa um avaliador é pertinente a um projeto, é construido um algoritmo que: padroniza as palavras, remove stopwords, aplica o stemming, e agrupa os trabalhos por bigramas, identificando se os dois trabalhos possuem muitas relações. O modelo de markov de ordem 0 geralmente é utilizado para predizer o seguinte item em um n-grama. Pode ser utilizado para: correção ortográfica, tradução de textos e reconhecimento de fala. O modelo de markov é um modelo de linguagem, que pode ser descrito como um modelo que atribui probabilidades a uma sequência de palavras. São modelos simples e escaláveis. Estes modelos podem ser descritos por: P(w|h), ou, probabilidade de uma palavra w dado um histórico h. Por exemplos: P(uma|a ufabc é) = C(a ufabc é uma) / C(a ufabc é), onde C é a função que conta quantas vezes cada sequência aparece em um Corpus. O pressuposto de markov fala que a probabilidade de uma palavra depende apenas da probabilidade das palavras anteriores. Durante a atividade, tivemos que apontar quantos unigramas, bigramas e trigramas um conjuntos de 9 palavras possuíam. No caso, a resposta era: 9 unigramas, 10 bigramas (devido aos símbolos de início e fim de linha), e 11 trigramas (pelo mesmo motivo dos bigramas).
July Anne Pinheiro Aula 5: Modelando a linguagem com N-gramas O que é um N-grama: É uma sequência contígua de N elementos, por exemplo, caracteres, palavras, sílabas, fonemas, pares-base. São comumente obtidas (analisadas) a partir de um corpus. O N-gramas são classificados de acordo com a quantidade de elementos analisada, por exemplo se analisarmos 1 elemento eles serão chamados de Unigrama, caso 2 elementos: Bigrama ou Digrama. 3 elementos: Trigrama. 4 elementos: 4-gramas e assim sucessivamente. Modelo probabilístico (estatístico) Modelo de linguagem: É um modelo que atribui probabilidades a uma sequência de palavras. Ou seja, um modelo que calcule P(W) ou P(Wn| W1,W2,...Wn-1) é denominado modelo de linguagem. Modelo de Markov: Normalmente, é utilizado para predizer o seguinte item em um n-grama. Um modelo de linguagem por N-grama permite predizer o seguinte item de uma sequência usando um Modelo de Markov de ordem (N-1). São modelos simples e escaláveis. Modelo probabilístico pode ser utilizado para: * Correção ortográfica. * Tradução automática de textos. * Reconhecimento de fala. Probabilidade condicional P(B|A) = P(A,B) / P(B) P(A,B) = P(A)P(B|A) Pressuposto de Markov: é a suposição que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es). Através do pressuposto de Markov, podemos utilizar a Estimativa por Máxima verossimilhança (ou seja, baseados em um corpus podemos determinar as probabilidades) para bigramas. Para o cálculo utilizamos a equação: P(wi|wi-1) = C(wi-1, wi)/C(wi-1). Exemplo: <s> I am Sam </s> <s> Sam I am </s> <s> I do not like green eggs and ham </s> P(am|I) = ? = 0.67 P(Sam|am) = ½ = 0.5 Considerações importantes: * Na análise de N-grama os sinais de pontuações normalmente não são desconsiderados. * N-gramas podem ser utilizadas para diferentes contextos: Por exemplo imagens satelitais. * Devido os resultados da análise poderem ter números muito pequenos para representar, o ideal é utilizar Log para as representações.
Rodrigo San Martin Ignacio Gomes Modelando a linguagem com N-gramas. Os n-gramas são sequencias contiguas de N elementos, mais comumente palavras, mas também podendo incluir sequências de caracteres, sílabas, fonemas, etc. Uma sequencia com 1 elemento é um unigrama, 2 elementos digrama ou bigrama, 3 trigrama e assim por diante. A análise de PNL pode utilizar os N-gramas para extrair informações diversas de um corpus, tais como pareamento de avaliadores e avaliados em projetos, detecção de padrões em avaliações de restaurantes ou até mesmo sugestão de auto- preenchimento. Para um modelo de linguagem através de n-gramas, são atribuídas probabilidades as sequencias de elementos. De forma simples, através de um modelo de Markov de ordem (N-1), pode ser realizada e predição de elementos de sequências contiguas (ex: auto-preenchimento). Para tanto, é calculada uma lista de probabilidades de ocorrência de sequencias de palavras ao longo do corpus. A probabilidade de uma palavra ocorrer em uma sequencia é dada por P(w|h), onde w é uma palavras e h o histórico de ocorrências. P(w|h) é dado pelo número de vezes que a sequência incluindo a palavra ocorra divido pelo numero de vezes que a sequência precedente a palavra tenha aparecido. Assim, podem ser calculadas todas a probabilidades de ocorrências de sequencias. Esse modelo de linguagem poderá ser filtrado após a inserção de uma sequência, de modo que inclua todas possibilidade com P(w|w-N)>0 e em seguida com o ranqueamento das maiores probabilidades realizada a sugestão. No entanto, de modo prático, a contagem de todas probabilidades é inviável para corpus muito extensos devido ao grande numero de arranjos de palavras possíveis e também pela dificuldade de manter um corpus extenso o suficiente para que essas contagens representem a probabilidade próxima da real de forma correta. Assim, podem ser realizadas aproximações por bigramas ou trigramas utilizando o Pressuposto de Markov, que assume que a probabilidade de ocorrência de uma palavra dependa apenas das ocorrência de um pequeno número de palavras anteriores.
Ruan Fernandes A aula começou apresentando a ferramenta do Google "Google Books N-gram Viewer", que mostra os n-gramas presentes no corpus de livros. Os n-gramas utilizados foram Einstein, Bernoulli, Lagrange, Hawking, Euler e Newton. A demonstração também comparou e comprovou como a variação entre citações pode ser enorme conforme o idioma e país filtrado. Foi então definido o que é um N-grama: uma sequência contígua de n elementos, podendo ser unigramas, bigramas, trigramas, etc. Foi apresentada uma aplicação real, utilizada para atribuir avaliadores para projetos de pesquisa. Então, foi mostrado o Modelo de Markov, que é geralmente utilizado para predizer o item seguinte num n-grama. Após isso, foi introduzido o que são modelos probabilísticos. Modelos probabilísticos que atribuem probabilidades a uma sequência de palavras são chamados modelos de linguagem. A probabilidade é calculada por P(w|h) (Probabilidade P de uma palavra w dado um histórico h) - Teorema de Bayes, Probabilidade Condicional. Foi comentado sobre o caso do gerador de lero-lero como projeto de alunos e então, o detector de lero-lero. Depois, demonstrou que é possível utilizar apenas as últimas palavras para calcular APROXIMADAMENTE a probabilidade de palavras numa frase, ou Pressuposto de Markov: suposição que a probabilidade de uma palavra depende apenas da probabilidade de uma das palavras anteriores. Foram apresentados alguns exemplos de cálculo de probabilidade de palavras num texto, e então mostrado o exemplo do Berkeley Restaurant Project, de 1994 - um sistema de consulta de restaurantes feito pela Universidade de Berkeley. Então, foi realizada uma atividade em sala com dois exercícios: um para enumerar os n-gramas dado um texto de 9 palavras em unigramas, bigramas e trigramas, outro para calcular a probabilidade da frase "i want chinese food" utilizando tabelas e informações dadas. A aula encerrou questionando e mostrando como é possível encontrar padrões, com exemplos ocorridos em períodos como a virada de década, troca de presidentes; e a possibilidade de utilizar Log no cálculo quando os valores são muito pequenos.
Mayza Cristina da Silva Resumo aula 05 - Modelando a Linguagem com N-Gramas Na aula do dia 17 de Junho do professor Jesus P. Mena foi continuado o assunto de algoritmos de normalização e exemplos de aplicação. Dessa vez focando em n-gramas Para ser contabilizado um n-grama precis aestar presente em pelo menos 40 livros. Sendo que estes dados são normalizados por ano. Devido aos erros nos OCRs, os dados podem de certo modo estarem incompletos. Uma sequência contigua de N elementos é considerada um N-grama, podendo ser contida de caractéres, palavras, sílabas, fonemas, pares-base, entre outros. São classificadas de acordo com o número de elementos: 1 – unigrama 2 – bigrama ou digrama 3 – trigrama 4 – 4 – grama 5 – 5 – grama O estudo dessas sequencias permite a previsão de quais palavras podem ser por exemplo digitadas pelo usuário. Para isto temos o modelo de markov. Um modelo probabilístico pode ser utilizado para: Correção ortográfica. Tradução automática de textos. Reconhecimento de fala. Modelo de linguagem (language model) É um modelo que atribue probabilidades a uma sequência de palavras. Um modelo de linguagem por N-grama permite predizer algum item de uma sequência usando um Modelo de Markov de ordem (N-1). São modelos simples e escaláveis. P(w|h), tempo como um exemplo P(uma|a ufabc é) 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. 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.
Rafael Pauwels de Macedo O assunto da quinta aula de PLN foi sobre a modelagem de linguagens usando N-gramas como alternativa aos stemmers. De forma simples uma n-grama é um sequência de N elementos, seja caracteres, palavras, sílabas, fonemas. Os N-Gramas são obtidos a partir de um corpus, com 1 elemento da-se o nome de unigrama, 2 - Bigrama, 3 - Trigrama, 4 - 4-grama e assim por diante. N-gramas de todos os tamanhos são usados amplamente no processamento de linguagem natural para transformar textos "crus" em features que podem ser usadas por algum algoritmo de aprendizado de máquina de classificação. Um dos exemplos vistos em aula foi uma aplicação que atribui avaliadores para projetos, respeitando algumas restrições e condições. Esse processamento considerava a padronização para minúsculas, a remoção de stop-words em inglês, português e espanhol, aplicação de Porter Stemming (radicalizar) e depois agrupamento por bi-gramas dos trabalhos. Outro ponto visto em sala foi sobre modelos probabilísticos, em especial o modelo de Markov de ordem 0. Usado geralmente para predizer o próximo item em um n-grama. Pode ser utilizado para correção ortográfica, tradução automática e reconhecimento de fala. Esses modelos que atribuem probabilidades a uma sequência de palavras é denominado modelo de linguagem, nesse caso são simples e escaláveis. O modelo probabilístico é definido por uma palavra w dado um histórico h, P(w|h). Aplicando em uma frase teríamos algo como P(uma | a ufabc é). Com o uso do pressuposto de Markov podemos aproximar o modelo usando apenas as últimas palavras como medida, como por exemplo, a probabilidade de P(uma|a ufabc é) é próximo de P(uma|é). Essa aproximação é aplicável entre todos os n-gramas, não apenas ao bigrama como no exemplo. Alguns pontos a serem considerados nessas análises é que sinais de pontuação geralmente não são considerados na análise por N-gramas.
Matheus Fama Machado de Sousa Aula 05 – Resumo Nesta aula abordamos o tema de modelagem de linguagens utilizando n-gramas. Um n-grama é ma sequencia contígua de N elementos ( caracteres, palavras, sílabas, fonemas, pares-base) e são comumente obtidas a partir de um corpus. Exemplo : “Um dois três quatro” As palavras “Um”, “dois”, ”três”, ”quatro” formam quatro unigramas. “Um dois”,”dois três”, “três quatro” foram 3 bigramas. Modelo de Markov de ordem 0 : Geralmente é utilizado para predizer o seguinte item em um n-grama. Esse modelo probabilístico é utilizado para correções ortográficas, traduções automáticas de textos e reconhecimentos de falas. Nesse contexto, modelos que atribuem probabilidades a uma sequência de palavras é denominado Modelo de linguagem. Um modelo de linguagem por n-grama permite predizer o seguinte item de uma sequência usando um Modelo de Markov de ordem(n-1). Vale ressaltar que esses modelos são simples e escaláveis. A probabilidade de uma palavra w dado um histórico h é definida por : P(w|h) Exemplo: P(uma| a universidade é) P(uma| a universidade é) = C(a universidade é uma) / C(a universidade é). Apesar de bastante útil, a linguagem humana é criativa e, independente do tamanho do corpus, muitas sequências podem não ser identificadas. Voltando à Markov, seu pressuposto diz que podemos supor que uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es). Temos também estimativas por Máxima verossimilhança, ou seja, baseado em um corpus, podemos determinar as probabilidades. A utilização de N-gramas é variada, podendo ser utilizadas em diversos contextos como, por exemplo, determinar a que parte da terra pertence uma determinada imagem utilizando imagens de satélites. Apesar de serem bastantes utilizados em linguagens, n-gramas não reconhecem acentos. Por fim, mas não menos importante, para evitar arredondamentos e assim comprometer a precisão da probabilidade, podemos utilizar Log para realizar os cálculos de probabilidade.
Denildo Veloso Braga Quinta aula: modelando a linguagem com N-gramas. N-gramas faz parte da abordagem estatística para stemming. N-gramas é uma sequência contígua de N-elementos. N-gramas é o modelo de Markov de ordem 0. Possíveis aplicações: predição de texto, correção ortográfica, tradução automática de textos, reconhecimento de fala, identificação de padrões. Modelo de linguagem: modelo que atribui probabilidades a uma sequência de palavras. São modelos simples e escaláveis. Considera que a probabilidade de uma palavra w dado um histórico h é P(w | h) = C (h + w) / (h), onde C é o número de vezes que o elemento aparece no Corpus. Modelo de linguagem também pode ser definida como um modelo que calcule P(W) ou P(wn | w1, w2, , wn-1), onde W é uma frase composta por pelas sequência de palavras w1, w2, , wn. Formalmente, esse modelo baseia-se em probabilidade condicional. Existem muitas possibilidades para o arranjo de palavras em uma frase, assim, usar probabilidade condicional pura não é recomendado, pois no corpus não teremos dados suficientes para a contagem de todas as sequências. Para resolver esse problema, podemos simplificar a frase para obter uma aproximação. Pressuposto de Markov: é a suposição que a probabilidade de uma palavra aparecer na frase depende apenas das probabilidades das palavras anteriores. A probabilidade de um frase pode então ser determinada usando unigramas, bigramas, trigramas e assim por diante. Baseado no corpus, podemos determinar as probabilidades, ou seja, é uma estimativa por máxima verossimilhança. A análise por N-gramas geralmente não considera sinais de pontuação. N-gramas não se aplica somente à texto, pode ser usado para outros tipos de dados, como imagens, exemplo: determinar a que parte da Terra pertence uma determinada imagem satélite. As probabilidades podem ser muitos pequenas e então, para representar melhor esses números, logs podem ser usados como alternativa.
Victor Arruda Ganciar _N-Grama_ Um N-grama é uma sequência contígua de N elementos, como: palavras, sílabas, caracteres, fonemas, sequência de aminoácidos em uma proteína, bases em uma cadeia de DNA, entre outros e são comumente obtidas a partir de um corpus. Se a cadeia é separada a cada um elemente, este é chamado de unigrama, se de dois em dois elementos bigrama, a cada três elementos trigrama, quatro elementos 4-grama e assim por diante. Uma aplicação interessante com o uso de N-gramas e Stemming, visto na última aula, é a atribuição de avaliadores a uma lista de projetos. Essa aplicação padronizou as palavras para minúsculas, removeu as stop words, aplicou um processo de radicalização e agrupou os projetos por bigramas. O modelo de Markov de ordem 0 é um modelo probabilístico usado para predizer o item posterior em um n-grama, além disso modelos probabilísticos podem ser usados para: correção ortográfica, tradução automática de textos e reconhecimento de fala. Um modelo que atribui probabilidades a uma sequência de palavras é denominado modelo de linguagem. Um modelo de linguagem por n-grama permite predizer o seguinte item de uma sequência usando um modelo de Markov de ordem (n-1). Modelos probabilísticos são simples e escaláveis. A linguagem humana é criativa e, independente do tamanho do corpus, muitas sequências podem não ser identificadas. Uma sequência a ser analisada pode possuir muitas possibilidades de arranjos de palavras e a probabilidade condicional usando todas as variáveis não é recomendada, pois no corpus não teremos dados suficientes para a contagem das vezes em que a sequência acontece. A partir disso podemos usar apenas as últimas palavras da sequência para aproximar a medida. O pressuposto de Markov nos fala que: é a suposição que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es).
Felipe Dias Correia Na aula 05, do dia 17 de junho, foi introduzido sobre o tema de outras abordagens para stemming e um gráfico de porcentagem e ano de acordo com os dados de pesquisas das palavras Newton, Einstein, Euler, Lagrange, Bernoulli e Hawking, de acordo da presença daquela palavra no livro, e o ano que foi escrito. Outro exemplo foi usado foi de N-Gram Viewer, do Google, que introduziu na explicação de N-gramas, onde é uma sequência contigua de N-elementos, podendo ser Unigrama, Bigrama, Trigrama, 4-grama, 5-grama. E sobre ao Bigrama, foi feito uma relação com grafos, tema da aula passada. E após a explicação, passou uma aplicação do seu uso. Existe alguns modelos, como de Markov, que é usado para predizer um seguinte item de um n-grama, e o exemplo usado foi do "ufabc é", e as opções como "boa", "publica", "integral", "ruim" foram algumas sugestões. Sobre Modelos Probabilísticos, foi abordado sobre o Modelo de Linguagem, onde um modelo que atribui a probabilidades a uma sequência de palavras e permite predizer os seguintes itens de uma sequencia. A Probabilidade é dada por uma Combinação Simples, onde podemos usar a formula P(w|h), onde dado uma palavra w, dado um histórico h. E também explicou sobre probabilidade condicional para usar em probabilidade de palavras em uma frase,e aproximar o calculo para ter uma porcentagem. Após isso, foi abordado sobre Cadeias de Andrei Markov, onde seu pressuposto é "é a suposição que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es)." e sobre seu modelos por unigrama, bigrama e trigrama, e uma estimativa de das probabilidades usando bigramas. E após a explicação, foi dado alguns exemplos e atividades relacionado a aula.
Murilo Bolzan Dionisio Exemplo de case: Analisar as frequências sobre a recorrência de palavras em específico dentro de algum texto. Caso base: Quantia de citações de nomes de físicos pertencente a uma base de dados contendo livros em um idioma específico. N-gramas: Um n-grama é uma sequência contígua de 'n' elementos, como exemplo: unigramas, bigramas, trigramas e etc.. A decisão da quantidade que será agrupada e o número de elementos por grupo irá variar dependendo do que se deseja modelar e/ou tratar. Exemplos onde pode haver uso são: códigos computacionais, sequências de DNA, conjunções químicas e etc.. Existem alguns estudos já aplicados utilizando esta metodologia, por exemplo, avaliar tweets de usuários para detectar possíveis padrões. Em um grafo que liga palavras (vértices) com a palavra seguinte, basicamente apresentando de forma visual os bigramas. Exemplo para algum digrama: estudo de projetos a serem avaliados e quem os validará. Formam-se os digramas da tupla [projeto, avaliador] e então elegem- se novas tuplas a partir da análise de key-words. Algoritmo de Markov: Um modelo de linguagem que permite dizer qual a probabilidade de que uma palavra em específico será seguida por outra específica. Um algoritmo que utiliza um n-grama é equivalente a um algoritmo de Markov de ordem ('n-1'). P(uma|a UFABC é) = C(A UFABC é uma)/C(A UFABC é) Para calcular a probabilidade da existência de versos específicos em um texto, podemos utilizar a multiplicação das probabilidades de todos os bigramas existentes na frase, incluindo os <s> e </s>. Por exemplo, caso for desejado calcular a probabilidade da aparição do verso “I want english food”, podemos realizar o cálculo: P(I | <s>) x P(want | I) x P(english | want) x P(food | english) x P(</s> | food).
Caique de Camargo A aula do dia 17 de junho de 2019 tratou do assunto "Modelando a linguagem com n-gramas". Conceito: n-grama é uma sequência contígua de n elementos comumente obtida a partir de um corpus. Uma ferramenta bastante interessante apresentada em aula é a "ngrams" da Google, que a quantidade de uma determinada palavra ou sequência delas em livros, artigos e demais publicações por ano. Dentro das diversas aplicações possíveis para o tema nos foi apresentado uma indexação de avaliadores para projetos e também o modelo de Markov de ordem 0, que é geralmente utilizado para predizer o seguinte item de um n-grama, utilizando probabilidades. Além disso, um modelo probabilístico pode ser utilizado para correção ortográfica , tradução automática de textos e reconhecimento de fala. Um modelo que atribui probabilidades a uma sequência de palavras é dito Modelo de Linguagem, com isso é possível saber a probabilidade de uma determinada palavra w dado um histórico h. Mas a linguagem humana é por deveras criativa e independente do tamanho do corpus, muitas sequências podem não ser identificadas. O cálculo da probabilidade pode ser muito custoso dependendo do tamanho do histórico, então é possível aproximar essa medida para um número de palavras na vizinhança da palavra alvo e assim entramos no pressuposto de Markov, que diz a probabilidade de uma palavra depende apenas da probabilidade de uma palavra anterior. A aplicação de n-gramas em problemas linguísticos é muito vasta, podendo ser usadas para predizer palavras, reconhecer falas e consequentemente dar respostas mais naturais, identificar padrões, imagens satelitais. Os acentos normalmente não são considerados na análise por n-grama e é possível, sem perda de generalidade urtilizar Log, ficando mais fácil de usar e evitando problemas com precisão e arredondamentos.
Gustavo Murayama O N-Grams é uma outra abordagem para stemming, que consiste em uma sequência contígua de N elementos (caracteres, sílabas, palavras, fonemas, pares-base) e são usualmente obtidas a partir de um corpus. É usado em PLN para transformar texto bruto em características que podem ser processadas por um algoritmo de classificação de Machine Learning. Um único elemento é chamado de Unigrama, dois elementos é um bigrama (ou digrama), três elementos um trigrama, quatro elementos é chamado de 4-grama e assim por diante. Um modelo probabilístico pode ser utilizado para correção ortográfica, tradução automática de textos e reconhecimento de fala. O Modelo de Markov (um modelo probabilístico) de ordem 0 é utilizado, geralmente, para predizer o seguinte item de um n-grama. Por definição, um modelo que atribui probabilidades a uma sequência de palavras é denominado Modelo de Linguagem. Seja “w” uma palavra e “h” um histórico, a probabilidade de w dado h é P(w | h). De uma maneira mais formal, é uma probabilidade condicional de P(A | B) = P (A,B) / P (B). Há muitas possibilidades no arranjo das palavras, então não é recomendável realizar uma operação que calcula todas as probabilidades desse arranjo, uma vez que no corpus não teremos dados o suficiente para contagem das vezes em que a sequência aparece. É possível simplificar e utilizar as últimas palavras para aproximar a medida. O pressuposto de Markov é que a suposição que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es), possível obter uma estimativa por máxima verossimilhança (determinar as probabilidades baseados em um corpus). É possível, utilizando N-grams, identificar alguns padrões, além de identificar em qual parte do globo terrestre pertence uma determinada imagem.
Matheus de Oliveira Finotti Nessa aula foi abordado outras formas para Stemming. Os N-Gramas são sequencias contiguas de N elementos, são obtidos a partir de um corpus. Com um elemento temos um unigrama, com dois um digrama, com três trigrama e assim por diante. No exemplo com a seguinte frase: “Um dois três quatro” tem-se 4 Unigramas, 3 Bigramas e 2 Trigramas. Podemos montar um diagrama com os N-gramas. Vimos na aula o modelo de Markov de ordem 0, que é utilizado para predizer o seguinte elemento de um N-grama e com isso entramos nos modelos probabilísticos. Os modelos de linguagem atribuem probabilidade a uma sequência de palavras e permite predizer o seguinte elemento de um n-grama com um modelo de Markov (N-1), sendo modelos que são simples e escaláveis. No modelo de linguagem associamos uma dada probabilidade de uma palavra w dado um histórico h, ou seja, P(w/h). As vezes as sequencias não são identificadas devido ao alto número de possibilidades. Depois começamos a ver as formalizações matemáticas. O pressuposto de Markov assume que a P(w) depende apenas de P(h), sendo w a a palavra e h o histórico das anteriores, sendo que por verossimilhança podemos estimar as probabilidades. Podemos pensar em uma matriz probabilística sendo que o próximo evento depende da probabilidade associado aos eventos anteriores, por exemplo dado que a primeira palavra foi “Eu”, qual a probabilidade da próxima ser “sou”. O Professor passou uma atividade em sala para classificarmos os Unigramas, digramas e trigramas de algumas expressões, lembrando sempre de considerar o espaço para início e final de frase (“</s>”). O último exercício era para calcular a probabilidade e uma das dicas dada pelo professor era usar log.
Matheus de Araujo Vargas Na aula do dia 17 de junho (de Processamento de Linguagem Natural) do professor Jesus P. Mena foram apresentados o conceito de modelagem da linguagem através do uso de N-gramas, modelos probabilísticos, probabilidade condicional e cadeias de Markov. Um N-grama é uma sequência contigua de N elementos (e.g., caracteres, palavras, sílabas, fonemas, pares-base). Eles são comumente obtidos (analisados) a partir de um corpus e o N é o número de elementos considerado. Um unigrama considera apenas 1 elemento, um digrama considera 2 elementos, um trigrama considera 3 elementos, e assim por diante. Por exemplo, a frase "Um dois três quatro" têm 4 unigramas ("Um", "dois", "três", "quatro"), 3 diagramas ("Um dois", "dois três", "três quatro") e 2 trigramas ("Um dois três" , "dois três quatro"). Um conjunto de N-gramas de um corpus e a relação entre esses N-gramas podem ser representados por um grafo, onde cada aresta informa a frequência com que eles se relacionam e a direção (qual N-grafo vem depois de um outro N-grafo). Modelos probabilísticos utilizando N-gramas podem ser utilizados para prever qual a próxima palavra em um corpus. Isso pode ser aplicado à corretores ortográficos, buscadores online, tradutores automáticos e reconhecimento de fala. Um modelo de linguagem por N-grama permite predizer o seguinte item de uma sequência usando um Modelo de Markov de ordem (N-1). O modelo de Markov calcula a probabilidade de um próximo estado dado somente o estado atual. Em PLN, o modelo de Marjov pode ser utilizado para calcular a probabilidade da próxima palavra ser uma palavra w dado um histório h. Um corpus pode ser utilizado para contar o número de vezes que w e h aparecem.
Estevao Crippa da Veiga Um N-grama é uma sequência contígua de N elementos e é comumente obtida a partir de um corpus. Pode ser utilizado em análises de textos, análises de pares de bases em DNA e análise de imagens, por exemplo. No contexto de N-gramas, podemos citar o modelo probabilístico, que em PLN pode ser utilizado para correção ortográfica, tradução automática de textos, reconhecimento de falas. Um modelo de linguagem é aquele que atribui probabilidades a uma sequência de palavras. Assim, a probabilidade P de uma palavra w dado um histórico h é dada por P(w|h) = C (hw) / C(h), em que C(hw) é o número de ocorrências de h concatenado a w e C(h) é o número de ocorrências de h. Essas ocorrências podem ser obtidas através dos Corpus. Como já mencionamos em outros textos, a língua humana é complexa, assim é possível que algumas sequências não sejam identificadas dentro de um Corpus. Além da definição apresentada de probabilidade condicional de uma palavra, devemos considerar em PLN as regras gerais de probabilidades condicionais. É comum também aproximarmos tal probabilidade utilizando os N-gramas. Assim, utilizamos apenas as últimas N palavras para realizar aproximar o resultado. Outro fato se deve às cadeias de Markov, que pressupõe que a probabilidade de uma palavra depende apenas da probabilidade de algumas palavras anteriores. É realizado um produto das probabilidades condicionais de palavras anteriores e que, por sua vez, podem ser estimadas pela máxima verossimilhança. É interessante notar que mesmo com produto de várias probabilidades, podemos estimar os valores pequenos através de logaritmos. Assim, o produto de probabilidades se transforma em soma de logaritmos de probabilidade e, ao final, calcula-se o exponencial do resultado obtido.
Jairo da Silva Freitas Junior Nesta aula estudamos a modelagem da linguagem com N-grams. N-gramas são sequências de n elementos obtidas a partir do corpus analisado (geralmente cada elemento é uma palavra e o N-grama é livre de stopwords). Exemplos de N-gramas são sequências aminoácidos, bases nucleotídicas, etc., de forma que esta ferramenta não se restringe apenas ao processamento de linguagem natural. Iniciamos a aula comentando sobre o projeto Google Books que escaneou diversas obras literárias e construiu um dos maiores corpus disponíveis em todas as linguagens. Bigramas são N-gramas com dois elementos. Analisamos o corpus da Ilíada de Homero e das músicas You Learn, de Alanis Morissete e Happy, de Pharrell Williams. Nestes exemplos é perceptível como representações muito reduzidas extraem padrões relevantes do corpus. Discutimos o projeto do professor de um classificador para atribuição de avaliadores para propostas de projetos de pesquisa, visando a convergência para máximos globais em vez de máximos locais, dado que a forma atual de seleção é baseada em indicações (vizinhos mais próximos). Na segunda parte da aula, estudamos modelos probabilísticos para modelagem de linguagem usando N-gramas. Basicamente usamos o Teorema de Bayes em uma versão simplificada. Na sua forma mais rigorosa, a probabilidade de uma sentença se dá pela produtória da probabilidade condicional da i-ésima palavra dado a sequência predecessora. Porém de forma prática aplica-se o Pressuposto de Markov que afirma que aplicar o algoritmo anterior apenas para o último ou últimos elementos é suficiente para uma boa aproximação. Outra aproximação utilizada é a máxima verossimilhança, que aproxima a probabilidade condicional a uma razão de contagens. Ao fim, fizemos uma atividade em sala aplicando modelagem estatística de N-gramas e vimos outros exemplos.
Augusto Goncalves da Silva A aula tratou da técnica de N-gramas. Um N-grama se constitui de uma sequência de N elementos seguidos. Um Corpus pode possuir N-gramas repetidos, que podem ser utilizados para sugestões de palavras seguintes quando utilizados para alimentar uma base de dados de um sistema. Essa técnica é utilizada, por exemplo, pelos mecanismos de pesquisa do Google – a gama de resultados que podem ser exibidos é utilizada para indicar predições de próximas palavras para serem utilizadas como sugestão na pesquisa. Os N-gramas são utilizados para realização de modelos probabilísticos, como o Modelo de Markov. Fórmulas matemáticas comuns, de probabilidade, podem ser utilizadas para realizar as predições. A Probabilidade de uma palavra aparecer na sequência de outra ou outras palavras, específicas, pode ser representada pela fórmula P(w | h). Exemplo: a probabilidade da palavra “uma” aparecer na frente da sequência “a ufabc é”, pode ser escrita como P(uma | a ufabc é). Para realizar a conta, somente precisamos dividir a quantidade de vezes em que o N-grama procurado aparece pela quantidade de vezes em que o N-grama (porém, sem a última palavra) aparece, com isso, temos a probabilidade desta última palavra aparecer na sequência de um grupo das demais. Em alguns momentos, é utilizada apenas as últimas palavras (bigramas) para aproximar a medida probabilística. Markov, já mencionado anteriormente, supôs que a probabilidade depende apenas de algumas palavras anteriores. Foi dada uma atividade em que era necessário identificar como bigramas, trigramas, a sequência de números apresentada. Também foi utilizado como exemplo o texto da Capivara, de aulas anteriores, onde foram identificados os N-gramas contidos no parágrafo. O modelo probabilístico descrito acima pode ser utilizado para a identificação de padrões.
Humberto Vagner Tondinelli Correa Nesta aula vimos outra abordagem para Stemming, os N-gramas. Um N-grama é uma sequência contigua de N elementos (e.g., caracteres, palavras, sílabas, fonemas, pares-base) e são comumente obtidas a partir de um corpus. São bastante usados em processamento de linguagem natural para transformar/quebrar texto bruto em pedaços menores que podem ser processados por um algoritmo de classificação. Modelo de Markov de ordem 0, geralmente é utilizado para predizer o item seguinte em um N-grama. Um modelo probabilístico pode ser utilizado para correção ortográfica, tradução automática de textos, reconhecimento de fala, etc. Um modelo que atribui probabilidades a uma sequência de palavras é denominado Modelo de linguagem. Um modelo de linguagem por N-grama permite predizer o item seguinte de uma sequência usando um Modelo de Markov de ordem (N-1). São modelos simples e escaláveis. Basicamente podemos calcular a probabilidade de uma palavra w dado um histórico h com P(w|h), que indica uma relação entre o número de vezes que w aparece depois de h e o número de vezes que h aparece no corpus. Entretanto, muitas sequências podem não ser identificadas. Um modelo que calcule essa probabilidade é denominado modelo de linguagem. Entretanto, podemos utilizar apenas as últimas palavras para aproximar a medida da probabilidade, chamado Pressuposto de Markov, que pressupõem que a probabilidade de uma palavra depende apenas da probabilidade de uma(s) palavra(s) anterior(es). Muitas vezes podemos ter números muito pequenos para representar nessas probabilidades, uma sugestão é utilizar propriedades logarítmicas. Podemos utilizar N-gramas para identificar padrões. Sinais de pontuação geralmente não são considerados na análise por N-gramas. N-gramas podem ser utilizadas para diferentes contextos.
Marcio Jose de Carvalho Na aula vimos exemplos de n-gramas pela visualização do google, que criou os gráficos a partir dos corpora de cada língua que buscamos, provavelmente baseado na digitalização de bibliotecas acadêmicas e públicas dos respectivos países. Um n-grama é a generalização de uma cadeia contígua de n-elementos. Na análise de textos, isso se traduz em agrupamentos sequenciais de tokens. Vimos dois exemplos de letras de músicas, representados em bigramas direcionados. As relações são contabilizadas, gerando um grafo ponderado. Essa representação permite criar modelos estatísticos preditivos, com diferentes aplicações, como correção ortográfica, tradução automática, reconhecimento de fala. Esses modelos são chamados de Modelo de linguagem, e para um n-grama, o modelo de markov que a representa é de ordem (n-1). A cobertura de um modelo depende do corpus que usamos para gerá-lo, ou seja, por maior que seja o corpus, é sempre possível que um n-grama específico não seja encontrado. As probabilidades de cada n-grama em um modelo são chamadas de probabilidades condicionais, ou seja, dada a primeira palavra, cada n-grama tem uma probabilidade diferente de acontecer, logo, a próxima palavra pode ser prevista com uma probabilidade P(w2|w1), do “probabilidade de w2 se w1”. Definimos depois cadeias de Markov e suas formas de predizer através de modelos estatísticos. Costuma-se utilizar bigramas e máxima verossimilhança para determinar as probabilidades destes. Vimos três exemplos, de um bigrama de um texto curto, do texto da Capivara e do estudo da Universidade de Berkeley. Como análise final, foi discutida a possibilidade de geração de inteligência a partir desses modelos, como a busca por padrões e quais as possibilidades que essas análises trazem
Lucas Monteiro de Oliveira A quinta aula de processamento de linguagem natural iniciou-se com a apresentação de uma arvore que separa as diferentes vertentes de classificação dos algoritmos de stemming. Em seguida foi apresentada uma ferramenta do Google chamada “N-gram Viewer” capaz de mapear a frequência da com que foi detectada a presença de um n-grama nos corpus indexados ao logo dos anos. Um N-grama é uma sequência de continua de N elementos, que podem ser caracteres, palavras, sílabas, fonemas, pares-base, e etc. Dentro da família de N-gramas existem os Unigramas, que são N-gramas compostos por apenas um elemento. Seguindo esta mesma lógica existem também os Bigramas ou Digramas, e os Trigramas, de três em diante os nomes passam a ser o número que representa a quantidade de elementos seguido por um hífen e a palavra “grama”. Uma das possibilidades de melhoria em modelos baseados em N-gramas é a utilização conjunta de modelos probabilísticos como o modelo de Markov por exemplo. Com está combinação, torna-se possível predizer a probabilidade de ocorrência de um N-grama dada a ocorrência de um outro N-grama anteriormente. Estes modelos quando bem aplicados são simples o suficiente para serem escaláveis. Tal união entre estatística e stemming caracteriza o termo “Modelo de Linguagem”. A probabilidade de uma palavra “W” dado um histórico de frequência “h” pode ser representado por P(W|h), onde P(W|h) = P(Wh)/P(h). Apesar de todas estas técnicas melhorarem as assertividades dos modelos, as linguagens naturais são estruturas maleáveis e criativas, o que faz com que algumas estruturas de linguagem mais raras possam não ser representadas por alguns modelos.
Victor Conceicao Denis Nas últimas aulas foram vistos alguns algoritmos de stemming focados em truncating, que eram os casos do algoritmo de Lovins e Porter. Porém nessa aula vamos analisar um modelo de algoritmo estatístico que o caso de N-grama. Esse modelo considera uma sequência contígua de n-elementos, podendo ser de palavras, caracteres, silabas, fonemas, pares bases, sendo elas agrupadas como unigrama, bigrama (digrama), trigramas, 4-grama e assim por diante. Cada um deles representa uma quantidade de junção de palavras, por exemplo, unigrama é um conjunto de uma palavra, digrama é um conjunto de duas palavras. Um exemplo de como agrupar seria como: Um belo dia de sol Unigramas: “Um”, “belo”, “dia”, “de” , “sol”. Digramas: “Um belo”, ”belo dia”, ”dia de”, ”de sol” Trigramas: “Um belo dia”,”belo dia de”, “dia de sol” 4-grama: “Um belo dia de”, “belo dia de sol” 5-grama: “Um belo dia de sol”. Esse modelo de linguagem é comumente utilizado para correção de texto, predição de texto, tradução automática de texto e reconhecimento de fala. Quando atribuído probabilidade para esse modelo, ele é chamado de Modelo de linguagem. Utilizando o modelo de Markov em um modelo de linguagem, podemos predizer textos. O modelo de markov aplica uma probabilidade para cada possível palavra que pode seguir as palavras conjuntas anteriores. Para aplicar uma probabilidade é contada a quantidade de vezes que um corpus(conjunto de palavras) aparece. Por exemplo: P(por| eu quero correr) indica qual a probabilidade da palavra “por” aparecer após o conjunto de palavras “eu quero correr”. É contada a quantidade de vezes que “eu quero correr por” aparece dividido por todos os corpus “eu quero correr”.
Gustavo Zanfelice Dib Problema possível: Análise de frequência sobre a aparição de termos em específicos dentro de um texto. Exemplo de análise: Quantidade de citações de diversos físicos dentro de base de dados contendo livros em idioma específico. N-gramas Uma sequência contígua de N elementos, como unigramas, bigramas, trigramas... A escolha da unidade a ser agrupada e o número de elementos por grupo pode variar dependendo do que se deseja modelar. Exemplos de uso são: Sequências de DNA, códigos computacionais, etc. Existem estudos já aplicados utilizando está técnica, por exemplo, analisar tweets de usuários para realizar detecção de padrões. Em um grafo que conecta vértices (palavras) com a palavra que a segue, basicamente apresenta de forma visual os bigramas. Exemplo para um digrama: Análise de projetos a serem avaliados e avaliadores. Formam-se os digramas da dupla {projeto, avaliador} e então elegem-se novas duplas a partir de análise de palavras-chave. Predições para "auto-completes" também são implementadas a partir de n-grafos. Algoritmo de Markov - Modelo de linguagem: Um modelo de linguagem permite dizer a probabilidade de uma palavra ser seguida por outra. Um modelo que utiliza um N-grama é correspondente a Markov de ordem (N-1). P(uma|a UFABC é) = C(A UFABC é uma)/C(A UFABC é) Para cálculo da probabilidade da existência de frases em um texto, podemos utilizar a multiplicação das probabilidades dos bigramas existentes na frase. Por exemplo, caso deseja-se calcular a probabilidade da aparição da frase “I want chinese food”, podemos realizar o cálculo P( I | <s>) x P( want | I) x P( chinese | want ) x P( food | chinese ) x P( </s> | food ).
Paulo Alexander Simoes Aula 5 - Modelando a linguagem com N-gramas Um N-grama é uma sequência contígua de N elementos, sejam eles: caracteres, palavras, fonemas, sílabas... São comumente analisados a partir de um corpus. Esse conceito pode ser aplicado como atribuição de avaliadores em projetos, onde podemos considerar um projeto e padronizar para minúsculas, remover as stop-word, radicalizar as palavras e agrupar os trabalhos por bi-gramas. Pode ser utilizado também para predizer o próximo item em um n-grama. Para isso podemos considerar um modelo probabilístico que consegue realizar uma correção ortográfica, tradução automática de textos, e o reconhecimento de fala. Quando sabemos a probabilidade da ocorrência das mais diversas palavras em um n-grama, significa que temos um modelo de linguagem, que atribui probabilidades a uma sequência específica de palavras, sendo considerados modelos simples e escaláveis. Considerando o pressuposto de Markov para determinar as probabilidades, temos que olhar apenas para a palavra anterior àquela que estamos buscando a probabilidade de ocorrer, ou seja, verifica apenas o estado atual de cada etapa. Outro método é a estimativa por verossimilhança, onde baseado em corpus podemos determinar as probabilidades. Uma observação e problema que deve ser levado em conta para os N-gramas são que na língua portuguesa e em outras que utilizam sinais de pontuação é que os N-gramas geralmente não consideram estes sinais. As aplicações de N-gramas são das mais variadas, podemos por exemplo identificar de que parte da terra pertence uma determinada imagem, ser útil na diferenciação do significado de duas palavras, quantificar a similaridade entres corpora, filtrar um conjunto de textos para um grupo de interesse particular, entre outros.
Rafael Ribeiro Gomes da Silva Nessa aula sobre modelagem da linguagem utilizando N-Gramas, descobrimos a existência de um recurso no google que permite a análise de n-gramas em uma biblioteca vasta em datas padronizadas. Os n-gramas representam sequências de objetos presentes num corpus, onde o n representa a quantidade de elementos especificada para a análise. Esses n-gramas são utilizados no meio acadêmico, situações onde é necessário o uso de probabilidades, computação biológica entre outros usos. Com o boom de implantações envolvendo IA, é possível analisar trechos de áudio. Uma boa representação de n-gramas é através de grafos, onde assim como na aula passada, vimos a proximidade entre as palavras no corpus estudado. Durante a aula foi citada também a aplicação onde analisando bigramas, a academia encontra currículos acadêmicos que sejam semelhantes aos que os orientadores procuram. O modelo de markov utilizado é o de ordem (n-1), e geralmente é utilizado para predições mais simples e também é possível o escalonamento. Nesse modelo de linguagem, é calculada a probabilidade através da quantidade de ocorrências em um Corpus. Um problema que não é evitável em sua totalidade é a própria linguagem humana que pode ser muito abrangente, utilizar siglas, abreviações e outras sequências que não são identificadas. A probabilidade em frases grandes, considera um grande arranjo de palavras e dessa mesma forma a melhor forma de uso é pela máxima verossimilhança. É possível a identificação de padrões quando grandes eventos ocorrem, implicando em uma ampla distribuição. Um exemplo expressivo foi a chegada dos anos 2000, onde houve muita especulação referente ao fim do mundo e o bug do milênio.
Eduardo Haberler Cardoso A quinta aula de processamento natural de linguagem teve como tema principal a modelagem de linguagem com N-grama. No inicio da aula, foram dados alguns exemplos de como diferentes idiomasnpodem apresentar resultados diferentes, no caso, foi usado como objeto de estudo a frequência de nomes de cientistas importantes apareceram em grandes bancos de dados. Em seguida, entramos a definição de N-gramas, que nada mais são que agrupamentos contíguos de n palavras. Como aplicações temos o mapeamento de sequências de aminoácidos, os quais formam proteínas e sequenciamento de proteínas, por exemplo. Em seguida, esta aula e o tema da aula passada, especificamente a parte da utilização de grafos como ferramenta auxiliadora no estudo de PLN, foi mostrado como este grafo é utilizado para a formação de bigramas, ou seja 2-gramas, se do apresentadas algumas músicas de senso comum para ilustrar esta implementação. Logo após, foi apresentado o modelo de Markov. Este modelo consiste na suposição de termos, a partir de outros, segundo uma probabilidade pré estabelecida sob a perspectiva de um modelo estatístico. A seguir, foi dada a conceitualização de modelo de linguagem, como sendo uma generalização do cálculo da probabilidade de um termo, dado um n-grama. O pressuposto de Markov, portanto, é definido como a suposição de uma palavra, apenas tendo como base as palavras que antecedem esta palavra, podendo ser modelos bigramas, bigramas ou trigramas. Foi apresentada também a estimativa por verossimilhança. Logo após, foram dados vários exemplos de aplicações dos mais diversos e inusitados tipos, utilizando a contagem de n-gramas e o levantamento das suas respectivas frequências.
Lucas Vitalino Severo Pais Nesta ultima aula nós vimos uma introdução sobre processamento de textos usando n-gramas. Um N-grama é uma tupla contendo n palavras, por exemplo, um 1-grama é uma tupla contendo uma única palavra, um 2-grama contém 2 e assim por diante. Este modelo de processamento de palavras é muito útil por ser muito simples e por poder extrair muita informação usando modelos probabilisticos ou até mesmo criar textos a partir desses modelos probabilisticos. Por exemplo no caso de um 2-grama, podemos fazer uma contagem de todos os 2-gramas de um banco de dados de textos (por exemplo uma biblioteca virtual como o projeto Guttenberg) e com base na entrada de uma palavra de um usuário, nossa aplicação com uma modelagem probabilistica bayesiana pode tentar prever a próxima palavra a ser digitada ou sugerir opções de palavras mais provaveis de serem encaixadas na sequencia, como faz por exemplo o Google na caixa de texto da busca quando o usuário vai buscar algo. No caso de um gerador de textos, dada uma palavra inicial aleatória, podemos tentar encaixar palavras na sequencia de acordo com esse modelo probabilistico bayesiano e gerar textos no formato do banco de dados de treinamento para esse sistema. Usando n-gramas maiores conseguimos ter uma precisão ainda maior de sugestoes de palavras mais prováveis que se encaixam no contexto da frase pois pela lei de Bayes podemos concatenar n eventos e calcular a probabilidade condicional de cada um deles de acordo com o evento anterior (no caso esses eventos são as palavras da nossa frase).
Eric Shimizu Karbstein Na aula 05 de Processamento de Linguagem Natural vimos sobre N-gramas. N-grama é uma sequência contígua de N elementos, no contexto de PLN estes elementos podem ser caracteres, palavras, sílabas, fonemas, etc. Existe um padrão para qual o os N-gramas seguem, dado T a quantidade total de tokens que existe na frase e G a quantidade de sequências contíguas de elementos, para N = 1, G = T, para N = 2, G = T - 1, N = 3, G = T - 2, etc, portanto, sem perda de generalidade, o padrão seguido pelos N-gramas é G = T - N - 1, este modelo de sequência é chamado de modelo de Markov. A partir do modelo de Markov de ordem N-1 é possível predizer um item seguinte de uma sequência usando de modelos probabilísticos, assim criando um Modelo de Linguagem. O modelo probabilístico segue que dado uma palavra p da um histórico h, a probabilidade da ocorrência da palavra é P(p|h), então a probabilidade da frase inteira ocorrer seria a multiplicação das probabilidades de cada palavra dado o histórico a palavra antecessora a atual. Há problemas no modelo, uma vez que as linguagens humanas são criativas, causando a não identificação de muitas sequências, para isso, é possível usar uma simplificação para aproximar a medida, cortando as últimas palavras do histórico. Markov a partir dessas análises, criou o pressuposto que a probabilidade de uma palavra é dependente apenas da probabilidade das palavras anteriores, podendo assim simplificar o cálculo da probabilidade para a multiplicação da probabilidade das palavras em relação a apenas algumas palavras anteriores.
Tamara Cavalcante dos Santos A modelação de linguagens pode ser realizada por interferência estatística. Interferência estatística pode ser feita através de n-gramas ou cadeias de Markov. Um n-grama é uma sequência contígua de n elementos obtidas a partir de um corpus. Os casos de n-grama mais utilizados são com n igual a 2, 3 ou 4, denominadas bigramas, trigramas e tetragramas. O número de classes em que os elementos são divididos é equivalente ao número de n's, e quanto maior, maior será a confiabilidade da inferência. A previsão da palavra seguinte em uma frase dadas as palavras anteriores, por exemplo, pode ser considerado como um problema a ser resolvido por um n-grama. Cadeias ou modelos de Markov podem ser classificados como visíveis ou escondidos. Modelos de Markov visíveis trabalham com a ordem das palavras na sequência, já modelos de Markov escondidos trabalham de forma mais abstrata, na qual estruturas "ocultas" são adicionadas a fim de permitir a visualização da ordem das categorias das palavras. Os modelos de Markov escondidos são uma das principais ferramentas utilizadas para o processamento estatística de linguagem natural. De forma geral, modelos de Markov atuam de forma com que a probabilidade do próximo estado dependa exclusivamente do estado atual. Interferências estatísticas possuem diversas aplicações: recuperação de informações, classificação de textos, tradução automática, dentre outros.


Número de resumos processados: 70.

Observação:


Arquivo gerado por um programa.