Modelagem de Tópicos: Uma introdução básica

Olá a todos que acompanham o blog, este post esta sendo produzido no intuito de dar inicio aos estudos sobre modelagem de tópicos, que também é o meu tema de mestrado, atualmente não existe muito conteúdo sobre este tema em português e muito do conteúdo encontrado tem certa complexidade, o que teremos aqui é a tradução de uma publicação feita pela autora Megan R. Brett no Journal of Digital Humanities, onde ela dá uma introdução simplificada ao tema e um tanto quanto básica mas muito instrutiva, achei de grande valia a tradução do conteúdo para a disseminação de conteúdo, no entanto por se tratar de uma tradução que não foi feita por um profissional, podem haver erros quanto ao conteúdo, houve um esforço para tentar fazer a melhor tradução possível, e escrever de forma coerente. No texto estão marcados certos números [1], que voltam a aparecer no fim do artigo onde coloco todos os links que são mencionados no artigo original, para mais informações acesse o artigo original.

=============================//===========================

Este post tem como propósito ajudar a explicar os conceitos básicos sobre modelagem de tópicos, introdução a algumas ferramentas de modelagem de tópicos, e pontuar outros posts sobre o tema. A audiência esperada são os historiadores, mas esperasse que seja algo útil para os leitores em geral.

 

O Que é modelagem de tópicos?

Modelagem de Tópicos é uma forma de mineração de texto, uma forma de identificar padrões e um corpus. Construindo um corpus e executando uma ferramenta que gera grupos de palavras a respeito do corpus distribuídas em “tópicos”. Miriam Posner descreve a modelagem de tópicos[1] como “um método para achar e traçar clusters de palavras (chamado “tópicos” de forma abreviada) em grandes corpos de texto. ”

O que é um tópico então? Uma definição oferecida no Twitter[2] durante a conferência de modelagem de tópicos descreveu um tópico como “um padrão recorrente de co-ocorrência de palavras. ” Uma ferramenta de modelagem de tópicos vê através do corpus para estes clusters de palavras e as agrupam por um processo de similaridade (mais sobre isso mais tarde). Em um bom modelo de tópicos, as palavras em tópico fazem sentido, por exemplo “navy, ship, captain” e “tabacco, farm, crops. ”

Como funciona?

Uma forma de se imaginar como o processo de modelagem de tópicos funciona é imaginar que se esta trabalhando em um artigo com diferentes marcadores. A medida que você lê o artigo, você usa uma cor diferente para as diferentes palavras chave dos temas à medida que você se deparou com eles. Ao terminar, é possível copiar as palavras, agrupando-as por cor. Essa lista de palavras é um tópico, e cada cor representa tópicos diferentes. Nota: está descrição é inspirada pela ilustração a seguir do artigo de David Blei´s[3], que é uma das melhores representações visuais sobre tópicos que achei.

Screen-Shot-2012-11-11-at-9.31.22-PM-300x189

Figure 1: Ilustração de Blei, D. 2012. “Modelagem de tópicos probabilistica.”

Como os programas de modelagem de tópicos atuais são determinados pela matemática. Muitos artigos sobre modelagem de tópicos incluem equações para explicarem de forma matemática o que é feito, mas eu pessoalmente não posso analisa-los. A melhor explicação sem equações de como pelo menos um programa de modelagem de tópicos atribui palavras a tópicos foi dada por David Mimno em uma conferência[4] sobre modelagem de tópicos realizada em novembro de 2012 pela Maryland Institute for Technology in Humanities e National Endowment for Humanities. Como ele explica[5], o computador compara a ocorrência de tópicos em um documento com a forma como uma palavra foi atribuída em outros documentos para encontrar a melhor combinação.

O modelo explicado por Mimno é o Latent Dirichlet Allocation, ou LDA, que tem sido o modelo mais utilizado em humanidades. O LDA tem pontos fortes e fracos, e pode não ser o certo para todos os projetos. Ele forma a base do MALLET, que é uma fonte aberta e uma ferramenta bastante acessível para modelagem de tópicos.

Para explicações mais detalhadas de como a modelagem de tópicos funciona, e como pode ser aplicada, dê uma olhada nos vídeos dos outros palestradas[6] da MITH/NEH conference[7]. Ted Underwood ofereceu sua explicação de como o processo funciona em uma postagem titulada Modelagem de tópicos Simplificada[8].

Scott B. Weingart escreveu uma excelente visão geral a respeito do conhecimento atual sobre modelagem de tópicos[9] com links para tudo, desde um tipo de conto que explica sobre modelagem de tópicos[10] até artigos que mergulham em uma vertente mais técnica[11]. Muitos dos artigos mais complexos e posts incluem equações complexas, mas é possível entender a base da modelagem de tópicos sem compreender totalmente as equações.

O que você precisa para modelagem de tópicos?

  1. Um corpus, preferencialmente um amplo.

Se você quisesse um modelo de tópico em um documento muito pequeno, talvez seja melhor usar marcadores ou uma boa ferramenta de anotações em pdf. Modelagem de tópicos é construída para grandes coleções de texto. As pessoas por trás do “Paper Machines”[12] uma ferramenta que permite criar um modelo de tópico a partir de uma biblioteca Zotero, recomenta que você tenha pelo menos 1,000 itens na biblioteca ou coleção que deseja modelar. A questão de “quão grande” ou “quão pequeno” é subjetiva, mas acho que você quer ter, no mínimo, em centenas se não um mínimo de 1.000 documentos em seu corpus. Tenha em mente que você define o que é um documento para a ferramenta. Se você tem um trabalho particularmente longo, você pode dividi-lo em pedaços e chamar cada peça de um documento.

Em algumas ferramentas, você terá que preparar o corpus antes que possa criar os modelos de tópico. Essencialmente o que deve ser feito é a tokenização do texto, mudando de frases legíveis para humanos para uma série de palavras, eliminando a pontuação e removendo a capitalização. Você também pode ignorar as “stopwords” que você define, que normalmente incluem coisas como a, o, e, etc. Onde você (espero) acaba gerando um documento sem capitalização, pontuação ou números para eliminar com os Algoritmos.

Existem inúmeras formas de limpar o texto para a etapa de modelagem de tópicos (e mineração de texto). Por exemplo, você pode usar Python e Expressões Regulares[13], a linha de comando (Terminal), e R.

Se deseja dar uma chance e tentar utilizar a modelagem de tópicos, mas não tem um corpus, existem extensas fontes de dados. Você pode, por exemplo, fazer o download do trabalho completo de Charles Dickens em uma série de arquivos de texto do Projeto Gutenberg[14], ou a JSTOR Data for Research[15], que requer cadastro, mas possibilita o download de conteúdo em csv, que é acessível para o uso no MALLET ou em outras ferramentas de mineração de texto e modelagem de tópicos.

  1. Familiaridade com o corpus

Isso pode parecer contra-intuitivo se você estiver planejando usar modelagem de tópicos para ajudá-lo a descobrir mais sobre um grande corpus, e, no entanto, é muito importante que você tenha, pelo menos, uma ideia do que deveria estar lá. Modelagem de tópicos não é uma ciência exata como muitos pensam. A única maneira de saber se seus resultados são úteis ou descontroladamente fora da marca é ter uma ideia geral do que você deveria estar vendo. A maioria das pessoas provavelmente colocariam itens muito abrangentes em tópicos comuns como “tabacco, farm, crops, navy” mas os tópicos mais complexos podem ser menos óbvios.

  1. Uma ferramenta para fazer a modelagem de tópicos

No entanto, você está indo ao modelo de tópico, você precisa decidir o que você vai usar e ter uma maneira de usá-lo.

Muitos humanistas usam o MALLET[16] e como extensão o LDA. O MALLET é particularmente útil para aqueles que se sentem confortáveis em trabalhar com o terminal em linha de comandos, e cuida da parte de tokenizing e stopwords para você. O site The Programming Historian[17] tem um tutorial o qual fala sobre o básico ao se trabalhar com o MALLET.

O grupo de processamento de linguagem natural de Stanford criou uma interface visual para se trabalhar com o MALLET, o Stanford Topic Modeling Toolbox[18]. Se escolher trabalhar com o TMT, leia o post do blog de Miriam Posner´s que contém estratégias básicas para interpretar os resultados da ferramenta de modelagem de tópicos[19].

Caso tenha um site em WordPress e um bom conhecimento em Python, veja o post de Peter Organisciak´s sobre o processo de exportações do WordPress para MALLET[20].

É importante estar ciente de que você precisa treinar essas ferramentas. Ferramentas de modelagem de tópicos só retornam à quantidade de tópicos que você pede para que retornem; isso importa quando você especifica 50, 5, ou 500. Se você imaginar a modelagem de tópicos como um quadro de distribuição, há um grande número de botões e mostradores que podem ser ajustados. Estes devem ser ajustados, principalmente através de tentativa e erro, antes que os resultados sejam úteis.

Se você usa o Zotero[21], você pode fazer uso da Paper Machines para modelos de tópicos de coleções particularmente extensas. O Paper Machines é um projeto open-source, o resultado de uma colaboração entre Jo Guldi e Chris Johnson-Roverson, apoiado pelo Google Summer of Code, o fundo William F. Milton, e o metaLAB @ Harvard[22]. Você pode fazer visualizações elegantes com o Paper Machines, mas para a modelagem de tópicos vocês precisa de pelo menos 1000 documentos. Por sorte, você pode completar sua biblioteca Zotero com dados da JSTOR Data for Research.

  1. Uma maneira de entender seus resultados

O resultado da modelagem de tópicos não é inteiramente legível. Uma forma de entender o que o programa está dizendo é através de visualizações, mas tenha certeza de que você entende o que a visualização está te dizendo. Ferramentas para modelagem de tópicos são falhas, e se o algoritmo não estiver correto, elas podem retornar alguns resultados bizarros.

Paper Machines output. Pretty, but what does it mean?

Figure 2: Resultado do Paper Machines . Bonito, mas o que significa?

Bem Schmidt, tem usado a clusterização k-means para classificar as viagens de caça às baleias, conectou seus dados ao modelo LDA para demonstrar as maneiras pelas quais a modelagem pode retornar resultados que, em última análise, não fazem sentido[23]. Seu post explica os perigos dos modelos quiméricos, onde dois cachos ficam presos juntos (pense “gato, peixe, mouse” e “arma, haste, caça”).

Modelagem de Tópicos e a História

A Modelagem de tópicos não é necessariamente útil como evidencia, mas se torna uma excelente ferramenta para descoberta.

Cameron Blevins tem uma série de posts[24] sobre o seu trabalho com mineração de texto e modelagem de tópicos com o conteúdo do diário de Martha Ballard. Ele compara seus resultados com os do trabalho de Laurel Thatcher Ulrich, que fez o trabalha a mão, e os dois resultados se mostram geralmente alinhados entre si. Seu trabalho é particularmente útil para entender o potencial e as limitações da modelagem de tópicos, como muitos historiadores já estão familiarizados com a fonte do material, tendo lido o livro de Ulrich A Midwife´s Tale. Ambos Blevins e Ulrich tiveram que estar familiarizados com o conteúdo do diário e seu contexto histórico para dar sentido as suas descobertas. Os resultados da modelagem de tópicos ajudam a revelar evidências já existentes no texto.

Os jornais provaram ser um assunto popular para modelagem de tópicos. Uma vez que fornece uma maneira de obter mudanças ao longo do tempo a partir de uma fonte diária. David J. Newman, um cientista da computação, e Sharon Block, um historiador, trabalharam juntos para criar um modelo de tópico para a Pennsylvania Gazette. A tabela 4 do seu artigo[25], lista as palavras mais prováveis ​​em um tópico e o rótulo que eles atribuíram a esse tópico; alguns dos tópicos são óbvios, mas outros se tornam claros quando você entende o contexto do corpus para ler os resultados. Outro exemplo de modelagem de tópicos de um jornal histórico é o projeto da Universidade de Richmond (VA), Mining the Dispatch[26]. O objetivo do projeto é explorar a vida social e política em Richmond durante a guerra civil. Explorar este site pode ajudá-lo a entender como modificar configurações em uma ferramenta de modelagem de tópicos altera a saída.

A modelagem de tópicos é complicada e potencialmente bagunçada, mas útil e até divertida. A melhor maneira de entender como funciona é experimentando. Não tenha medo de falhar ou obter resultados ruins, porque eles irão ajudá-lo a encontrar as configurações que lhe dão bons resultados. Conecte alguns dados e veja o que acontece.

 

Fonte/Source: http://journalofdigitalhumanities.org/2-1/topic-modeling-a-basic-introduction-by-megan-r-brett/#topic-modeling-a-basic-introduction-by-megan-r-brett-n-1

Escrito por/Writen by: Megan R. Brett

[1] http://miriamposner.com/blog/?p=1335

[2] https://twitter.com/footnotesrising/status/264823621799780353

[3] http://www.cs.princeton.edu/~blei/papers/Blei2012.pdf

[4] http://mith.umd.edu/topicmodeling/

[5] http://vimeo.com/53080123

[6] http://mith.umd.edu/topicmodeling/speaker-videos/

[7] http://mith.umd.edu/topicmodeling/

[8] http://tedunderwood.com/2012/04/07/topic-modeling-made-just-simple-enough/

[9] http://www.scottbot.net/HIAL/?p=19113

[10] http://www.matthewjockers.net/2011/09/29/the-lda-buffet-is-now-open-or-latent-dirichlet-allocation-for-english-majors/

[11] http://ariddell.org/weblog/2012/07/22/simple-topic-model/

[12] https://github.com/chrisjr/papermachines

[13] http://www.fredgibbs.net/clio3workspace/blog/cleaning-bad-ocr-with-regular-expressions-and-python/

[14] http://www.gutenberg.org/

[15] http://about.jstor.org/service/data-for-research

[16] http://mallet.cs.umass.edu/

[17] http://programminghistorian.org/

[18] http://nlp.stanford.edu/software/tmt/tmt-0.4/

[19] http://miriamposner.com/blog/?p=1335

[20] https://sense.porganized.com/processing-wordpress-exports-for-mallet-c6e53b5b8c7e

[21] http://www.zotero.org/

[22] http://metalab.harvard.edu/2012/07/paper-machines/

[23] http://sappingattention.blogspot.com/2012/11/when-you-have-mallet-everything-looks.html

[24] http://historying.org/martha-ballards-diary/

[25] http://www.ics.uci.edu/~newman/pubs/JASIST_Newman.pdf

[26] http://dsl.richmond.edu/dispatch/pages/home

Anúncios