Instituto de Ciˆ encias Matem´ aticas e de Computa¸ c˜ ao
ISSN - 0103-2569
PreTexT II: Descri¸ c˜ ao da Reestrutura¸ c˜ ao da Ferramenta de Pr´ e-Processamento de Textos
Matheus Victor Brum Soares Ronaldo C. Prati Maria Carolina Monard
N
o¯XXX
RELAT ´ ORIOS T´ ECNICOS DO ICMC
S˜ ao Carlos
Outubro/2008
PreTexT II: Descri¸ c˜ ao da Reestrutura¸ c˜ ao da Ferramenta de Pr´ e-Processamento de Textos
Matheus Victor Brum Soares
*Ronaldo C. Prati
*Maria Carolina Monard
**Universidade de S˜ao Paulo
Instituto de Ciˆencias Matem´aticas e de Computa¸c˜ao Laborat´orio de Inteligˆencia Computacional e-mail: {caneca, prati, mcmonard}@icmc.usp.br
Resumo:
A quantidade de informa¸ c˜ ao textual armazenada digitalmente vem cres- cendo a cada dia. No entanto, a nossa capacidade de processar e analisar essa informa¸ c˜ ao n˜ ao vem acompanhando este crescimento. Dessa maneira, ´ e importante desenvolver processos semi-autom´ aticos para extrair conhecimento relevante dessa informa¸ c˜ ao, tais como o processo de minera¸ c˜ ao de textos. O pr´ e-processamento de textos ´ e uma das principais etapas da minera¸ c˜ ao de textos, e tamb´ em uma das mais custosas. Essa etapa visa transformar texto n˜ ao estruturado em um formato estru- turado, como uma tabela atributo-valor. O
PreTexT´ e uma ferramenta computa- cional que realiza esse tipo de pr´ e-processamento utilizando funcionalidades como n-grama,
stemming, stoplists, cortes por freq¨uˆ encia, taxonomias, normaliza¸ c˜ oes, gr´ aficos, medidas
tf,
tf-idf,
tf-linear,
boolean, entre outras. Esta ferramenta passoupor uma reestrutura¸ c˜ ao e reimplementa¸ c˜ ao recentemente e este trabalho consiste em apresentar as funcionalidades e o modo de uso da nova vers˜ ao da ferramenta
PreTexT.
Palavras Chaves:
Minera¸ c˜ ao de Textos, Pr´ e-Processamento,
Stemming.Outubro 2008
‡Trabalho realizado com apoio da USP, CNPq e FAPESP.
Sum´ ario
Sum´ ario ii
Lista de Figuras iii
Lista de Tabelas iii
1 Introdu¸ c˜ ao 1
2 Pr´ e-Processamento de Textos 1
2.1 Constru¸c˜ ao de Atributos a Partir de Bases Textuais . . . . 3
2.1.1 Tokeniza¸c˜ ao . . . . 3
2.1.2 Stemming . . . . 4
2.1.3 Taxonomias . . . . 5
2.1.4 Remo¸c˜ ao de Stopwords . . . . 5
2.1.5 Cortes de Palavras Baseado em Freq¨ uˆ encia . . . . 6
2.1.6 N -grama . . . . 7
2.2 Valores de Atributos . . . . 8
2.2.1 Boolean . . . . 8
2.2.2 Term Frequency . . . . 8
2.2.3 Term Frequency Linear . . . . 9
2.2.4 Term Frequency - Inverse Document Frequency . . . . 10
2.2.5 Suaviza¸c˜ ao . . . . 11
2.2.6 Normaliza¸c˜ oes . . . . 11
3 Remodelagem e Reimplementa¸ c˜ ao do PreTexT 13 3.1 O Arquivo de Configura¸c˜ ao XML . . . . 15
3.2 O m´ odulo Maid.pm . . . . 22
3.2.1 Arquivos de Entrada . . . . 22
3.2.2 Arquivos de Sa´ıda . . . . 24
3.2.3 Execu¸c˜ ao do M´ odulo Maid.pm . . . . 25
3.2.4 Advertˆ encias . . . . 26
3.3 O m´ odulo NGram.pm . . . . 26
3.3.1 Arquivos de Entrada . . . . 27
3.3.2 Arquivos de Sa´ıda . . . . 27
3.3.3 Execu¸c˜ ao do M´ odulo NGram.pm . . . . 28
3.3.4 Advertˆ encias . . . . 29
3.4 O m´ odulo Report.pm . . . . 30
3.4.1 Arquivos de Entrada . . . . 30
3.4.2 Arquivos de Sa´ıda . . . . 31
3.4.3 Execu¸c˜ ao do M´ odulo Report.pm . . . . 32
3.4.4 Advertˆ encias . . . . 33
3.5 Script Auxiliar de Configura¸c˜ ao . . . . 34
3.6 Instala¸c˜ ao . . . . 35
3.6.1 Windows . . . . 35
3.6.2 Linux . . . . 35
4 Arquitetura de Classes 36 4.1 Start.pl . . . . 36
4.2 Maid.pm . . . . 37
4.3 NGram.pm . . . . 39
4.4 Report.pm . . . . 40
5 Considera¸ c˜ oes Finais 42 Referˆ encias 43 Lista de Figuras 1 A curva de Zipf e os cortes de Luhn . . . . 7
2 O novo funcionamento do PreTexT II . . . . 14
3 Exemplo b´ asico do arquivo de configura¸c˜ ao config.xml . . . . 16
4 Exemplo detalhado do arquivo de configura¸c˜ ao config.xml . . . . 17
5 Exemplo do arquivo de s´ımbolos simbols.xml . . . . 23
6 Exemplo de um stopfile . . . . 24
7 Exemplo da organiza¸c˜ ao do diret´ orio de documentos rotulados. . . . . 24
8 Exemplo do arquivo stemWdST.all . . . . 26
9 Exemplo de execu¸c˜ ao do m´ odulo Maid.pm. . . . . 27
10 Exemplo do arquivo 1Gram.all. . . . . 28
11 Exemplo do arquivo 1Gram.txt. . . . . 28
12 Exemplo de execu¸c˜ ao do m´ odulo NGram.pm. . . . . 29
13 Exemplo de um arquivo de taxonomia. . . . . 30
14 Exemplo dos arquivos .names (a) e .data (b). . . . . 31
15 Exemplo do gr´ afico 1-StdDev. . . . . 32
16 Exemplo do gr´ afico 1-StdDevFF. . . . . 33
17 Exemplo de execu¸c˜ ao do m´ odulo Report.pm. . . . . 34
18 Diagrama de classes do m´ odulo Start.pl . . . . 36
19 Diagrama de classes do m´ odulo Maid.pm . . . . 37
20 S´ımbolos transformados por default em divisores de frase. . . . . 37
21 Diagrama de classes do m´ odulo NGram.pm . . . . 40
22 Diagrama de classes do m´ odulo Report.pm . . . . 40
Lista de Tabelas 1 Representa¸c˜ ao de documentos no formato atributo-valor . . . . 2
2 Tabela atributo-valor utilizando a medida boolean. . . . . 8
3 Tabela atributo-valor utilizando a medida tf . . . . . 9
4 Tabela atributo-valor utilizando a medida tf-linear . . . . . 10
5 Tabela atributo-valor utilizando a medida tf-idf . . . . . 11
6 Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao linear por linha. . . . . 12
7 Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao linear por coluna. . . . . 13
8 Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao quadr´ atica por linha. . . . . 13
9 Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao quadr´ atica por coluna. . . . . 13
10 Funcionalidades da nova vers˜ ao do PreTexT . . . . 16
11 Rank de stems constru´ıdo a partir da freq¨ uˆ encia . . . . 21
12 Codifica¸c˜ ao XML de alguns s´ımbolos. . . . . 23
13 Transforma¸c˜ ao da tabela original para a tabela com taxonomias. . . . . . 31
14 Transforma¸c˜ oes de entidades HTML realizadas pelo PreTexT II . . . . . 38
1 Introdu¸ c˜ ao
O uso freq¨ uente de computadores gera, como conseq¨ uˆ encia, uma grande quantidade de dados digitais que precisa ser analisada. A minera¸c˜ ao de textos (MT) (Weiss et al., 2004)
´
e um processo que pode ser utilizado para extrair informa¸c˜ oes ´ uteis dessa grande quanti- dade de textos digitais gerados no dia a dia. A minera¸c˜ ao de textos tem diversas aplica¸c˜ oes tais como: classifica¸c˜ ao de documentos, recupera¸c˜ ao de informa¸c˜ ao, organiza¸c˜ ao de do- cumentos e extra¸c˜ ao de informa¸c˜ ao.
Dentre as etapas da MT est´ a a etapa de pr´ e-processamento de textos que consiste em transformar documentos textuais em um formato estruturado, tal como uma tabela atributo-valor, para que possa ser aplicado algoritmos de aprendizado de m´ aquina (Mit- chell, 1997; Monard & Baranauskas, 2003) para extrair conhecimento dessa informa¸c˜ ao textual. Por´ em, essa transforma¸c˜ ao ´ e um processo custoso e demorado que deve ser feito com cuidado para que o conhecimento adquirido posteriormente seja ´ util para o usu´ ario final.
Existe no LABIC
1uma ferramenta para pr´ e-processamentos de textos chamada Pre- TexT (Matsubara et al., 2003) que recentemente foi reestruturada e reimplementada de forma a atender um n´ umero maior de necessidades dos usu´ arios que necessitam re- alizar o pr´ e-processamento de textos em grandes conjuntos de documentos textuais de forma mais r´ apida e com mais liberdade para a escolha de suas fun¸c˜ oes. O objetivo deste trabalho consiste em explicar em detalhes as altera¸c˜ oes realizadas bem como as novas funcionalidades implementadas na nova vers˜ ao da ferramenta, o PreTexT II .
Este trabalho est´ a dividido da seguinte maneira: na Se¸c˜ ao 2 ´ e apresentada uma revis˜ ao bibliogr´ afica dos conceitos e m´ etodos utilizados na ferramenta PreTexT II . Na Se¸c˜ ao 3 est´ a a descri¸c˜ ao da ferramenta, seus m´ odulos principais e modos de utiliza¸c˜ ao. Na Se¸c˜ ao 4
´
e apresentada uma breve descri¸c˜ ao de todas as classes da nova arquitetura da ferramenta, assim como a forma de intera¸c˜ ao entre elas. Na Se¸c˜ ao 5 s˜ ao apresentadas as considera¸c˜ oes finais deste trabalho.
2 Pr´ e-Processamento de Textos
Como mencionado, uma das grandes dificuldades da MT ´ e que dados textuais geralmente n˜ ao est˜ ao em formato estruturado. Esse fato implica em uma limita¸c˜ ao ` a utiliza¸c˜ ao de
1http://labic.icmc.usp.br/
algoritmos de aprendizado de m´ aquina, pois esses algoritmos geralmente necessitam que os dados estejam representados de uma maneira estruturada. A transforma¸c˜ ao de textos n˜ ao estruturados em dados estruturados requer o pr´ e-processamento dos textos.
Uma das maneiras de transformar textos em dados estruturados ´ e transform´ a-los em uma representa¸c˜ ao atributo-valor utilizando a abordagem bag of words , na qual a freq¨ uˆ encia das palavras (termos), independentes de seu contexto ou significado, s˜ ao contadas. A par- tir dessa contagem ´ e gerada uma tabela cujas entradas cont´ em informa¸c˜ oes relacionadas
`
a freq¨ uˆ encia de cada palavra. Uma representa¸c˜ ao de documentos usando a abordagem bag of words no formato de uma tabela atributo-valor ´ e mostrada na Tabela 1.
t
1t
2t
3. . . t
MClasse(C) d
1a
11a
12a
13. . . a
1Mc
1d
2a
21a
22a
23. . . a
2Mc
2d
3a
31a
32a
33. . . a
3Mc
3.. . .. . .. . .. . . .. .. . .. . d
Na
N1a
N2a
N3. . . a
N Mc
NTabela 1: Representa¸c˜ ao de documentos no formato atributo-valor
Nessa tabela, cada documento d
i, para i variando de 1 at´ e o n´ umero total N de documen- tos considerados, ´ e um exemplo da tabela e cada palavra t
j, para j variando de 1 at´ e o tamanho M do vocabul´ ario utilizado, ´ e um atributo. Diversos m´ etodos para a constru¸c˜ ao desses atributos s˜ ao descritos na Se¸c˜ ao 2.1. O atributo C ´ e um atributo especial, geral- mente denominado atributo classe, que designa a classe ` a qual pertence cada documento.
Cada c
ipode assumir um valor do conjunto C = {C
1, . . . , C
Ncl}, no qual N
cl´ e o n´ umero de classes. Cada entrada a
ijrefere-se ao valor correspondente ao documento (exemplo) i associado ao termo (atributo) j. Existem v´ arias maneiras de associar valores a cada um dos termos em um documento, sendo as mais comuns a presen¸ca ou ausˆ encia da pa- lavra, n´ umero absoluto de apari¸c˜ oes das palavras (freq¨ uˆ encia absoluta), ou a freq¨ uˆ encia relativa dessas palavras em rela¸c˜ ao ao n´ umero de documentos. Essas representa¸c˜ oes s˜ ao discutidas na Se¸c˜ ao 2.2.
Uma tabela atributo-valor gerada utilizando a abordagem bag of words tem algumas pecu- liaridades. Geralmente, a utiliza¸c˜ ao dessa tabela leva a um problema chamado maldi¸c˜ ao da dimensionalidade, na qual a tabela apresenta um grande n´ umero de atributos (devido ao grande n´ umero de palavras – vocabul´ ario – utilizados no conjunto de documentos).
Entretanto, cada documento utiliza relativamente poucos atributos para a sua descri¸c˜ ao
(o texto de cada documento pode ser caracterizado utilizando um subconjunto pequeno
de todas as palavras existentes no conjunto de documentos), gerando assim uma tabela
muito esparsa.
Por´ em, muitos algoritmos de aprendizado n˜ ao est˜ ao preparados para aprender utilizando tabelas atributo-valor esparsas, deixando o processo de aprendizado ineficiente, ou at´ e invi´ avel. Dessa maneira, alguns m´ etodos de redu¸c˜ ao de atributos devem ser utilizados a fim de condensar a informa¸c˜ ao pertinente para a etapa de extra¸c˜ ao de conhecimento do processo de MT. Outra caracter´ıstica especial da tabela atributo-valor gerada utilizando a abordagem bag of words, ´ e que os valores dos atributos s˜ ao sempre maiores ou iguais a zero (ou booleanos ). Essa caracter´ıstica tamb´ em deve ser explorada com o objetivo de encontrar os melhores atributos para descrever o conjunto de documentos.
2.1 Constru¸ c˜ ao de Atributos a Partir de Bases Textuais
Na transforma¸c˜ ao de documentos textuais em tabelas atributo-valor, existem alguns m´ etodos para auxiliar na redu¸c˜ ao do n´ umero de atributos visando melhorar a relevˆ ancia da informa¸c˜ ao para a classifica¸c˜ ao do texto. Esses m´ etodos s˜ ao brevemente descritos a seguir.
2.1.1 Tokeniza¸ c˜ ao
O primeiro passo para examinar um texto n˜ ao estruturado ´ e identificar suas caracter´ısticas importantes. Uma das maneiras de fazer isso ´ e quebrar o fluxo cont´ınuo de caracteres em palavras, tamb´ em chamados de tokens
2. Esse processo ´ e trivial para uma pessoa que te- nha conhecimento da estrutura da linguagem. Por´ em, para um programa de computador, isso pode ser mais complicado. Para realizar esse processo, ´ e necess´ ario a remo¸c˜ ao de al- guns caracteres indesejados, tais como sinais de pontua¸c˜ ao, separa¸c˜ ao sil´ abica, marca¸c˜ oes especiais e n´ umeros, os quais, isoladamente, fornecem pouca informa¸c˜ ao.
O processo de tokeniza¸c˜ ao ´ e uma tarefa n˜ ao trivial, devido ` a forma como os tokens devem ser extra´ıdos do texto (dos Santos, 2002; Manning & Sch¨ utze, 1999). Em alguns casos, um espa¸co em branco n˜ ao ´ e suficiente para auxiliar no reconhecimento de um token, visto que em um texto usualmente existem sinais de pontua¸c˜ ao, como v´ırgula, ou ponto final, que n˜ ao fazem parte de um determinado token. Dessa maneira, se for considerado somente um espa¸co em branco para a divis˜ ao de tokens , podem existir tokens que deveriam ser semelhantes, por´ em, eles s˜ ao agrupados de maneiras distintas. Existe tamb´ em a ambig¨ uidade do ponto final, que n˜ ao permite determinar quando esse ponto
2Neste trabalho palavras,tokens e termos s˜ao utilizados indistintamente como sinˆonimos.
representa uma divis˜ ao entre senten¸cas e quando representa uma abrevia¸c˜ ao. Dentre os s´ımbolos n˜ ao alfanum´ ericos, existem aqueles que tˆ em relevˆ ancia para o aprendizado, e aqueles que simplesmente podem ser ignorados. A existˆ encia de letras mai´ usculas e min´ usculas tamb´ em pode dificultar o processo de tokeniza¸c˜ ao, pois uma mesma palavra ocorrendo no in´ıcio de uma frase (usualmente escrita com mai´ uscula) pode ser agrupada em um token diferente da mesma palavra ocorrendo no meio da frase (usualmente escrita com min´ uscula). Esses aspectos devem ser cuidadosamente considerados, pois a extra¸c˜ ao eficiˆ ente de tokens gera melhores resultados, i.e. diminui¸c˜ ao do n´ umero de atributos finais na abordagem bag of words.
2.1.2 Stemming
Um dos m´ etodos amplamente utilizado e difundido que pode ser utilizado a fim de reduzir a quantidade de tokens necess´ arios para representar uma cole¸c˜ ao de documentos ´ e a transforma¸c˜ ao de cada termo para o radical que o originou, por meio de algoritmos de stemming . Basicamente, algoritmos de stemming consistem em uma normaliza¸c˜ ao ling¨ u´ıstica, na qual as formas variantes de um termo s˜ ao reduzidas a uma forma comum denominada stem . A conseq¨ uˆ encia da aplica¸c˜ ao de algoritmos de stemming consiste na remo¸c˜ ao de prefixos ou sufixos de um termo. Por exemplo, os tokens observar, observadores, observasse, observou e observe podem ser transformados para um mesmo stem observ.
Os algoritmos de stemming s˜ ao fortemente dependentes do idioma no qual os documen- tos est˜ ao escritos. Um dos algoritmos de stemming mais conhecido ´ e o algoritmo do Porter, que remove sufixos de termos em inglˆ es (Porter, 1980, 2006). Esse algoritmo tem sido amplamente usado, referenciado e adaptado nas ´ ultimas trˆ es d´ ecadas. Diversas implementa¸c˜ oes do algoritmo est˜ ao disponibilizadas na WEB, inclusive na sua p´ agina ofi- cial
3, escrita e mantida pelo autor para a distribui¸c˜ ao do seu algoritmo. Existe tamb´ em uma linguagem de programa¸c˜ ao especialmente criada para gera¸c˜ ao de stem para v´ arios idiomas, chamada Snowball (Porter, 2001).
Para a l´ıngua portuguesa, existem algoritmos de stemming que foram adaptados do algo- ritmo de Porter. Nesses algoritmos, os sufixos dos tokens, com um comprimento m´ınimo estabelecido, s˜ ao eliminados aplicando algumas regras pr´ e-estabelecidas. Caso n˜ ao seja poss´ıvel eliminar nenhum sufixo de acordo com essas regras, s˜ ao analisadas as termina¸c˜ oes verbais da palavra. Essa ´ e a principal diferen¸ca entre o algoritmo de stemming para pa- lavras em inglˆ es e para palavras em portuguˆ es ou espanhol, por exemplo. Enquanto na
3http://www.tartarus.org/~martin/PorterStemmer
l´ıngua inglesa a conjuga¸c˜ ao dos verbos ´ e quase inexistente para verbos regulares, pois usualmente acrescenta-se a letra s no final do verbo no presente na terceira pessoa do singular, as linguagens provenientes do latim apresentam formas verbais altamente conju- gadas em sete tempos, que contˆ em seis termina¸c˜ oes diferentes para cada tempo. Portanto,
´
e necess´ ario ter um tratamento diferenciado para essas termina¸c˜ oes verbais.
E pouco prov´ ´ avel que o algoritmo de stemming retorne o mesmo stem para todos os tokens que tenham a mesma origem ou radical morfol´ ogico, pois a maioria dos algorit- mos de stemming ignoram o significado dos termos, introduzindo alguns erros. Tokens com significados diferentes podem ser reduzidos a um mesmo stem, nesse caso ocorre um erro de over-stemming. Por exemplo, os tokens barato e barata podem ser reduzi- dos a um mesmo stem barat. J´ a tokens com significados similares quando reduzidos a stem diferentes conduzem ao erro de under-stemming . Por exemplo, os tokens viagem e viajar podem ser reduzidos aos stems viag e viaj, respectivamente. Outro tipo de erro, denominado de mis-stemming , consiste em retirar o sufixo de um token quando na verdade essa redu¸c˜ ao n˜ ao ´ e necess´ aria. Por exemplo, o token l´ apis poderia ser reduzido ao stem lapi, dependendo de como o plural das palavras ´ e tratado pelo algoritmo de stemming . J´ a foi observado que a medida que o algoritmo se torna mais espec´ıfico na tentativa de minimizar a quantidade de tokens diferentes para palavras com um mesmo radical, a eficiˆ encia do algoritmo degrada (Porter, 1980).
2.1.3 Taxonomias
Para certos dom´ınios da aplica¸c˜ ao, alguns tokens diferentes podem fazer mais sentido se analisados em um n´ıvel de abstra¸c˜ ao mais elevado. Por exemplo, ma¸ c~ a, manga, e uva podem ter um sentido mais geral se forem todos considerados como fruta. Esse tipo de generaliza¸c˜ ao de termos pode auxiliar o processo de aprendizado. A taxonomia ´ e a classifica¸c˜ ao de objetos baseado em similaridades entre eles. Essa classifica¸c˜ ao no pr´ e- processamento de textos ´ e realizada levando-se em considera¸c˜ ao a semˆ antica dos tokens presentes no conjunto de documentos. Entretanto, para muitos dom´ınios, n˜ ao existe uma taxonomia de termos, o que dificulta a utiliza¸c˜ ao de m´ etodos baseados em taxonomias.
Nesse caso, essa etapa, caso utilizada, deve ser assistida por um especialista no dom´ınio.
2.1.4 Remo¸ c˜ ao de Stopwords
Em qualquer l´ıngua, v´ arias palavras s˜ ao muito comuns e n˜ ao s˜ ao significativas para o
algoritmo de aprendizado quando consideradas isoladamente. Essas palavras incluem
pronomes, artigos, preposi¸c˜ oes, adv´ erbios, conjun¸c˜ oes, entre outras. Essas palavras s˜ ao geralmente chamadas de stopwords em MT. Para esse tipo de palavras, pode ser gerada uma stoplist, na qual in´ umeras stopwords s˜ ao armazenadas para que sejam desconside- radas ao se processar o texto. Dessa forma, a remo¸c˜ ao de stopwords minimiza conside- ravelmente a quantidade total de tokens usada para representar documentos. Portanto, o uso das stoplists auxilia no processo de minera¸c˜ ao de textos, removendo palavras das quais se sabe, a priori, que n˜ ao s˜ ao relevantes para caracterizar os textos.
2.1.5 Cortes de Palavras Baseado em Freq¨ uˆ encia
Outra forma de reduzir o n´ umero de atributos a ser considerado na tabela atributo-valor
´
e encontrar os tokens mais representativos dentre os existentes. A Lei de Zipf (Zipf, 1949) pode ser usada para encontrar termos considerados pouco representativos em uma deter- minada cole¸c˜ ao de documentos. Existem diversas maneiras de enunciar a Lei de Zipf para uma cole¸c˜ ao de documentos. A mais simples ´ e procedimental: pegar todos os termos na cole¸c˜ ao e contar o n´ umero de vezes que cada termo aparece. Se o histograma resultante for ordenado de forma decrescente, ou seja, o termo que ocorre mais freq¨ uentemente apa- rece primeiro, e assim por diante, ent˜ ao, a forma da curva ´ e a “curva de Zipf” para aquela cole¸c˜ ao de documentos. Para a maioria dos idiomas, se a curva de Zipf for plotada em uma escala logar´ıtmica, ela corresponde a uma reta com inclina¸c˜ ao de aproximadamente
−1.
Enquanto Zipf verificou sua lei utilizando jornais escritos em inglˆ es, Luhn usou a lei como uma hip´ otese para especificar dois pontos de corte para excluir tokens n˜ ao rele- vantes (Luhn, 1958) em uma cole¸c˜ ao de documentos. Os termos que excedem o corte superior s˜ ao os mais freq¨ uentes e s˜ ao considerados comuns por aparecer em qualquer tipo de documento, como as preposi¸c˜ oes, conjun¸c˜ oes e artigos. J´ a os termos abaixo do corte inferior s˜ ao considerados raros e, portanto, n˜ ao contribuem significativamente na discrimina¸c˜ ao dos documentos. Na Figura 1 ´ e mostrada a curva da Lei de Zipf (I) e os cortes de Luhn aplicados a Lei de Zipf (II). Nessa figura, o eixo cartesiano f representa a freq¨ uˆ encia das palavras e o eixo cartesiano r, r = 1, 2, 3, . . . , as palavras correspondentes, ordenadas segundo essa freq¨ uˆ encia. Por exemplo, para r = 1, f
1representa a o token de maior freq¨ uˆ encia; para r = 2, f
2representa o token com segunda maior freq¨ uˆ encia, e assim por diante.
Assim, Luhn propˆ os uma t´ ecnica para encontrar termos relevantes, assumindo que os
termos mais significativos para discriminar o conte´ udo do documento est˜ ao em um pico
imagin´ ario posicionado no meio dos dois pontos de corte. Por´ em, uma certa arbitrariedade
Figura 1: A curva de Zipf e os cortes de Luhn
est´ a envolvida na determina¸c˜ ao dos pontos de corte, bem como na curva imagin´ aria, os quais devem ser estabelecidos por tentativa e erro (Van Rijsbergen, 1979). A Lei de Zipf n˜ ao ´ e restrita apenas aos tokens, mas tamb´ em a stems ou n-grama dos documentos.
2.1.6 N -grama
A ocorrˆ encia de palavras em seq¨ uˆ encia pode conter mais informa¸c˜ ao do que palavras isola- das. Desse modo, criando-se atributos pela uni˜ ao de duas ou mais palavras consecutivas, pode-se gerar atributos com um maior poder de predi¸c˜ ao. O n-grama
4´ e exatamente essa jun¸c˜ ao de palavras, onde n representa o n´ umero de palavras que foram unidas para a gera¸c˜ ao de um atributo. Existe tamb´ em a abordagem de n-grama com utiliza¸c˜ ao de jane- las. Nesse caso, os tokens s˜ ao unidos n˜ ao s´ o com seu vizinho diretamente adjacente, mas tamb´ em com tokens mais distantes, respeitando o valor especificado na janela. Existem v´ arios n-grama que s˜ ao gerados por simples acaso, por´ em, aqueles que apresentam uma freq¨ uˆ encia maior podem ser muito ´ uteis para o aprendizado. Por exemplo, considerar as palavras S~ ao e Paulo individualmente pode agregar pouco conhecimento, pois S~ ao pode referir-se ao verbo ser e Paulo ´ e um nome pr´ oprio relativamente comum no Brasil. En- tretanto, o termo composto S~ ao Paulo pode agregar muito mais informa¸c˜ ao se o texto se refere ` a cidade ou estado de S˜ ao Paulo.
4E importante ressaltar que a palavra grama deve ser usada sempre no singular.´
2.2 Valores de Atributos
Como mencionado, na Tabela 1 cada documento d
i´ e um vetor d
i= (a
i1, a
i2, ....a
iM), no qual o valor a
ijrefere-se ao valor associado ao j -´ esimo termo (atributo) do documento i.
O valor a
ijdo termo t
jno documento d
ipode ser calculado utilizando diferentes medidas levando em considera¸c˜ ao a freq¨ uˆ encia que os termos aparecem nos documentos (Salton &
Buckley, 1988). Existem v´ arias medidas que podem ser utilizadas para calcular o valor dos atributos na tabela atributo-valor (Sebastiani, 2002). Para exemplificar o uso de algumas dessas medidas, brevemente descritas a seguir, ser˜ ao utilizados os tokens divert, cas, futebol, amig, jant e famil e sete documentos.
2.2.1 Boolean
Esta medida, definida pela Equa¸c˜ ao 1 atribui o valor um (verdadeiro) ao atributo se ele existe no documento e zero (falso) caso contr´ ario.
a
ij=
1, se t
jocorre em d
i0, caso contr´ ario
(1)
Na Tabela 2, o Documento 1 recebe o valor 1 no atributo famil pois ele contˆ em uma ou mais palavras que foram transformadas no token famil, em contra partida, recebe o valor 0 em todos os outros atributos por n˜ ao possuir palavras que se transformaram nos outros tokens considerados. Os valores dos atributos dos outros documentos 2 a 7, s˜ ao calculados da mesma maneira.
divert cas futebol amig jant famil
Documento 1 0 0 0 0 0 1
Documento 2 0 0 0 0 1 1
Documento 3 0 0 0 1 1 1
Documento 4 0 0 1 1 1 1
Documento 5 0 1 1 1 1 1
Documento 6 1 1 1 1 1 1
Documento 7 1 1 1 1 1 1
Tabela 2: Tabela atributo-valor utilizando a medida boolean.
2.2.2 Term Frequency
A representa¸c˜ ao bin´ aria nem sempre ´ e adequada, pois em muitos casos deve ser utilizada
uma medida levando em considera¸c˜ ao a freq¨ uˆ encia que um termo aparece no documento.
O tf — Term Frequency — consiste na contagem de apari¸c˜ oes de um determinado atributo (termo) em um documento, atribuindo-se essa contagem ao valor do atributo (freq¨ uˆ encia absoluta). Essa medida ´ e definida pela Equa¸c˜ ao 2, na qual f req(t
j, d
i) ´ e a freq¨ uˆ encia do termo t
jno documento d
i.
a
ij= tf (t
j, d
i) = f req(t
j, d
i) (2) Na Tabela 3 ´ e exemplificada a utiliza¸c˜ ao da medida tf . Por exemplo, no Documento 3 o atributo jant recebe o valor 3 pois nesse documento existem exatamente 3 palavras que foram transformadas no token jant, de forma an´ aloga o atributo famil recebe o valor 2.
Os valores dos atributos dos outros documentos s˜ ao calculados da mesma maneira.
divert cas futebol amig jant famil
Documento 1 0 0 0 0 0 1
Documento 2 0 0 0 0 1 1
Documento 3 0 0 0 1 3 2
Documento 4 0 0 1 2 6 2
Documento 5 0 1 3 6 2 3
Documento 6 1 4 2 7 4 2
Documento 7 7 4 6 9 3 4
Tabela 3: Tabela atributo-valor utilizando a medida tf .
2.2.3 Term Frequency Linear
A medida tf considera a freq¨ uˆ encia dos termos em cada documento isoladamente sem levar em considera¸c˜ ao a freq¨ uˆ encia da cole¸c˜ ao de documentos. Para indicar a freq¨ uˆ encia com que um termo aparece na cole¸c˜ ao de documentos, um fator de pondera¸c˜ ao pode ser utilizado para que os termos que aparecem na maioria dos documentos tenham um peso de representa¸c˜ ao menor, i.e. s˜ ao menos discrimitativos. A tf-linear — Term Frequency Linear — (Matsubara et al., 2003) definida pelas Equa¸c˜ oes 3 e 4, utiliza um fator linear de pondera¸c˜ ao. Esse fator ´ e dado por um menos a freq¨ uˆ encia relativa do n´ umero de documentos em que o termo aparece no n´ umero total de documentos.
a
ij= tf linear(t
j, d
i) = f req(t
j, d
i) × linear(t
j) (3)
linear(t
j) = 1 − d(t
j)
N (4)
Na Tabela 4 ´ e mostrado o valor do tf-linear levando-se em considera¸c˜ ao a freq¨ uˆ encia dos
atributos mostrados na Tabela 3. Dessa maneira, o atributo divert que aparece em dois dos sete documentos existentes recebe o fator de pondera¸c˜ ao linear(divert) = 1 −
27' 0, 714, e ´ e multiplicado pela sua freq¨ uˆ encia absoluta. Por exemplo no Documento 7, isso gera o valor tf linear(divert, Documento 7) = 7 × 0, 714 ' 5, 0. Os valores dos atributos dos outros documentos s˜ ao calculados da mesma maneira.
divert cas futebol amig jant famil
Documento 1 0,0 0,0 0,0 0,0 0,0 0,0
Documento 2 0,0 0,0 0,0 0,0 0,1 0,0
Documento 3 0,0 0,0 0,0 0,3 0,4 0,0
Documento 4 0,0 0,0 0,4 0,6 0,9 0,0
Documento 5 0,0 0,6 1,3 1,7 0,3 0,0
Documento 6 0,7 2,3 0,9 2,0 0,6 0,0
Documento 7 5,0 2,3 2,6 2,6 0,4 0,0
Tabela 4: Tabela atributo-valor utilizando a medida tf-linear .
2.2.4 Term Frequency - Inverse Document Frequency
A tf-idf — Term Frequency - Inverse Document Frequency — tamb´ em ´ e uma medida que pondera a freq¨ uˆ encia dos termos na cole¸c˜ ao de documentos, de tal maneira que termos que aparecem na maioria dos documentos tenham um peso de representa¸c˜ ao menor (Jones, 1972; Robertson, 2004). Nesse caso, o fator de pondera¸c˜ ao idf ´ e inversamente proporcio- nal ao logaritmo do n´ umero de documentos em que o termo aparece no n´ umero total N de documentos — Equa¸c˜ oes 5 e 6.
a
ij= tf idf(t
j, d
i) = f req(t
j, d
i) × idf(t
j) (5)
idf(t
j) = log N
d(t
j) (6)
Um exemplo da medida tf-idf ´ e apresentado na Tabela 5. O atributo futebol recebe
o fator de pondera¸c˜ ao idf (futebol) = log
74' 0, 243 por aparecer em quatro dos sete
documentos existentes (Tabela 3). No Documento 5, o atributo futebol recebe o valor
de tf idf (futebol, Documento 5) = 3 × 0, 243 ' 0, 7. Os valores dos atributos dos outros
documentos s˜ ao calculados da mesma maneira.
divert cas futebol amig jant famil
Documento 1 0,0 0,0 0,0 0,0 0,0 0,0
Documento 2 0,0 0,0 0,0 0,0 0,1 0,0
Documento 3 0,0 0,0 0,0 0,1 0,2 0,0
Documento 4 0,0 0,0 0,2 0,3 0,4 0,0
Documento 5 0,0 0,4 0,7 0,9 0,1 0,0
Documento 6 0,5 1,5 0,5 1,0 0,3 0,0
Documento 7 3,8 1,5 1,5 1,3 0,2 0,0
Tabela 5: Tabela atributo-valor utilizando a medida tf-idf . 2.2.5 Suaviza¸ c˜ ao
Freq¨ uentemente, em algumas cole¸c˜ oes de documentos ´ e poss´ıvel que alguns tokens apare¸cam em todos os documentos da cole¸c˜ ao. Dessa maneira, os fatores de pondera¸c˜ ao idf e linear se tornam nulos, consequentemente, os valores desses tokens s˜ ao zerados para todos os documentos. Dessa maneira, perde-se informa¸c˜ ao pois esses tokens n˜ ao s˜ ao considerados na tabela atributo-valor. Uma solu¸c˜ ao para esse problema, ´ e fazer com que os fatores de pondera¸c˜ ao nunca sejam nulos, a partir de um crit´ erio de suaviza¸c˜ ao, denominado smooth . Esse crit´ erio de suaviza¸c˜ ao somente ´ e ativado quando o fator de pondera¸c˜ ao ´ e igual a zero. Quando ativado, ele altera o fator de pondera¸c˜ ao de forma a n˜ ao permitir que seja nulo.
Uma abordagem que pode ser utilizada para realizar a suaviza¸c˜ ao, ´ e aumentar tempo- rariamente em 10% o valor de N , que representa o n´ umero de documentos da cole¸c˜ ao.
Dessa maneira, o fator de pondera¸c˜ ao n˜ ao pode ser zero.
Suponha que o valor de idf para um termo que apare¸ca em todos os documentos ´ e log
100100= 0. Com o fator de pondera¸c˜ ao igual a zero, o smooth ´ e ativado. O valor de N
´
e aumentado temporariamente para 110 obtendo assim log
110100= 0, 04. Desse modo, os valores da coluna correspondente a esse termo ser˜ ao multiplicados por 0, 04, ao inv´ es de 0.
2.2.6 Normaliza¸ c˜ oes
Um aspecto importante que tamb´ em deve ser levado em considera¸c˜ ao ´ e o tamanho dos
documentos na cole¸c˜ ao. Freq¨ uentemente, o tamanho desses documentos ´ e muito diferente
e essa diferen¸ca de tamanho poderia estar melhor refletida nas medidas utilizadas. Por
exemplo, considere dois documentos que pertencem ` a mesma categoria com tamanhos
de 1 Kbyte e 100 Kbytes, respectivamente. Nesse caso, existir´ a uma grande diferen¸ca
na freq¨ uˆ encia dos termos em ambos os documentos. Uma poss´ıvel solu¸c˜ ao para esse
problema ´ e normalizar os valores da tabela atributo-valor. Essa normaliza¸c˜ ao pode ter seu foco nas colunas (ou atributos), ou nas linhas (ou documentos). Freq¨ uentemente, essa normaliza¸c˜ ao ´ e realizada utilizando a normaliza¸c˜ ao linear, ou normaliza¸c˜ ao quadr´ atica.
Em ambos casos, o m´ aximo valor de um atributo ´ e 1.
A normaliza¸c˜ ao linear ´ e definida pela Equa¸c˜ ao 7 quando utilizada a normaliza¸c˜ ao por linhas, e ´ e definida pela Equa¸c˜ ao 8 quando utilizada a normaliza¸c˜ ao por colunas.
N ormLinear(t
j, d
i) = a
ijM AX
k=1..N(a
kj) (7)
N ormLinear(t
j, d
i) = a
ijM AX
k=1..N(a
ik) (8)
A normaliza¸c˜ ao quadratica ´ e definida pela Equa¸c˜ ao 9 quando utilizada a normaliza¸c˜ ao por linhas, e ´ e definida pela Equa¸c˜ ao 10 quando utilizada a normaliza¸c˜ ao por colunas.
N ormQuadratic(t
j, d
i) = a
ijq
P
Nk=1
(a
kj)
2(9)
N ormQuadratic(t
j, d
i) = a
ijq
P
Nk=1
(a
ik)
2(10)
Nas Tabelas 6 e 7 s˜ ao mostrados os resultado da aplica¸c˜ ao da normaliza¸c˜ ao linear por linha e coluna respectivamente, para o conjunto de exemplos com a medida tf da Ta- bela 3. Nessa tabela, o valor m´ aximo atribu´ıdo a um atributo passa a ser 1, e os outros valores s˜ ao proporcionalmente reduzidos com rela¸c˜ ao ao maior valor desse atributo. J´ a nas Tabelas 8 e 9 observam-se exemplos da normaliza¸c˜ ao quadr´ atica por linha e coluna respectivamente, na qual a propor¸c˜ ao de redu¸c˜ ao dos valores ´ e realizada utilizando todos os valores do atributo.
divert cas futebol amig jant famil
Documento 1 0,0 0,0 0,0 0,0 0,0 0,3
Documento 2 0,0 0,0 0,0 0,0 0,2 0,3
Documento 3 0,0 0,0 0,0 0,1 0,5 0,5
Documento 4 0,0 0,0 0,2 0,2 1,0 0,5
Documento 5 0,0 0,3 0,5 0,7 0,3 0,8
Documento 6 0,1 1,0 0,3 0,8 0,7 0,5
Documento 7 1,0 1,0 1,0 1,0 0,5 1,0
Tabela 6: Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao linear por linha.
divert cas futebol amig jant famil
Documento 1 0,0 0,0 0,0 0,0 0,0 1,0
Documento 2 0,0 0,0 0,0 0,0 1,0 1,0
Documento 3 0,0 0,0 0,0 0,3 1,0 0,7
Documento 4 0,0 0,0 0,2 0,3 1,0 0,3
Documento 5 0,0 0,2 0,5 1,0 0,3 0,5
Documento 6 0,1 0,6 0,3 1,0 0,6 0,3
Documento 7 0,8 0,4 0,7 1,0 0,3 0,4
Tabela 7: Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao linear por coluna.
divert cas futebol amig jant famil
Documento 1 0,0 0,0 0,0 0,0 0,0 0,2
Documento 2 0,0 0,0 0,0 0,0 0,1 0,2
Documento 3 0,0 0,0 0,0 0,1 0,3 0,3
Documento 4 0,0 0,0 0,1 0,2 0,7 0,3
Documento 5 0,0 0,2 0,4 0,5 0,2 0,5
Documento 6 0,1 0,7 0,3 0,5 0,5 0,3
Documento 7 1,0* 0,7 0,8 0,7 0,3 0,6
Tabela 8: Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao quadr´ atica por linha.
*O valor real deste atributo ´e 0,9899, por´em arredondando para uma casa decimal temos o valor 1,0. ´E valido ressaltar que o valor 1,0 s´o se aplica quando otoken s´o aparece em um documento.
divert cas futebol amig jant famil
Documento 1 0,0 0,0 0,0 0,0 0,0 1,0
Documento 2 0,0 0,0 0,0 0,0 0,7 0,7
Documento 3 0,0 0,0 0,0 0,3 0,8 0,5
Documento 4 0,0 0,0 0,1 0,3 0,9 0,3
Documento 5 0,0 0,1 0,4 0,8 0,3 0,4
Documento 6 0,1 0,4 0,2 0,7 0,4 0,2
Documento 7 0,5 0,3 0,4 0,6 0,2 0,3
Tabela 9: Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao quadr´ atica por coluna.
3 Remodelagem e Reimplementa¸ c˜ ao do PreTexT
O PreTexT (Matsubara et al., 2003) ´ e uma ferramenta computacional que realiza o pr´ e-processamento de textos utilizando a abordagem bag of words e implementa todos os m´ etodos citados na Se¸c˜ ao 2 para calcular os valores dos atributos da tabela atributo- valor. A ferramenta foi desenvolvida utilizando o paradigma de orienta¸c˜ ao a objetos, na linguagem de programa¸c˜ ao Perl. Desde sua cria¸c˜ ao, o PreTexT vem sendo utili- zado em diversos trabalhos envolvendo minera¸c˜ ao de textos dentro e fora do ICMC-USP.
Ap´ os solicita¸c˜ oes de diversos usu´ arios, a ferramenta PreTexT passou por um processo
de remodelagem e reimplementa¸c˜ ao com o objetivo de suprir as necessidades adicionais
requisitadas pelos usu´ arios, as quais s˜ ao descritas neste trabalho.
Atualmente, a ferramenta possui as caracter´ısticas que est˜ ao ilustradas na Figura 2 e explicadas brevemente a seguir.
Figura 2: O novo funcionamento do PreTexT II
• O m´ odulo Start.pl lˆ e o arquivo de configura¸c˜ ao config.xml e, com base nos parˆ ametros especificados nesse arquivo, gerencia os demais m´ odulos.
• O m´ odulo Maid.pm ´ e respons´ avel pela limpeza do conjunto de documentos iniciais
{T
1, T
2, ..., T
N}, remo¸c˜ ao das stopwords contidas no arquivo stoplist.xml e remo¸c˜ ao
de s´ımbolos n˜ ao relevantes a partir do arquivo simbol.xml. A gera¸c˜ ao dos stems ´ e
realizada por uma das classes que herdam da classe abstrata Stemmer.pm e cont´ em
o algoritmo de stemming para a linguagem solicitada. No PreTexT II , est˜ ao dispon´ıveis algoritmos de stemming para as l´ınguas portuguesa, espanhola e inglesa.
Como resultado, s˜ ao gerados os arquivos stemWdTF.all (stems ordenados por freq¨ uˆ encia) e stemWdST.all (stems ordenados por ordem alfab´ etica), os quais contem a contagem de stems e os tokens que foram transformados em cada stem , al´ em de um conjunto de arquivos “limpos” {E
1, E
2, ..., E
N}, que s˜ ao utilizados como entrada para o m´ odulo NGram.pm.
• O m´ odulo NGram.pm ´ e respons´ avel pela gera¸c˜ ao dos n-grama e tem como sa´ıda os arquivos NGram.txt (contagem de n-grama em cada documento) e NGram.all (contagem de n-grama total do conjunto de documentos), com N= 1, 2, 3, . . . .
• O m´ odulo Report.pm recebe como entrada os arquivos .txt e .all, faz o proces- samento das taxonomias contidas no arquivo taxonomy caso exista e calcula as medidas e normaliza¸c˜ oes solicitadas pelo usu´ ario. O c´ alculo dessas medidas e nor- maliza¸c˜ oes ´ e realizado pelas classes que herdam das classes abstratas MeasureTF.pm e Normalize.pm, produzindo como resultado uma tabela atributo-valor no formato do DSX do Discover (Prati, 2003), arquivos .data e .names respectivamente, e alguns gr´ aficos.
Realizando o pr´ e-processamento de textos utilizando a nova vers˜ ao da ferramenta Pre- TexT ´ e poss´ıvel calcular uma grande quantidade de informa¸c˜ ao referente aos documentos processados, como os arquivos limpos, e todos os arquivos de sa´ıda com informa¸c˜ oes sobre tokens, stems e n-grama, assim como a tabela atributo-valor nos formatos requisitados pelo usu´ ario. A Tabela 10 mostra uma id´ eia geral das principais funcionalidades divididas por cada grande m´ odulo (Maid.pm, NGram.pm e Report.pm).
Segue uma descri¸c˜ ao detalhada dos arquivos de entrada e sa´ıda da ferramenta, bem como a forma de execu¸c˜ ao de cada m´ odulo separadamente.
3.1 O Arquivo de Configura¸ c˜ ao XML
Uma das principais formas de interagir com a ferramenta PreTexT II ´ e por meio de
seu arquivo de configura¸c˜ ao config.xml. O arquivo no formato XML foi escolhido para
que seja poss´ıvel que outras aplica¸c˜ oes possam interagir de maneira simples com o Pre-
TexT II . Esse arquivo consiste de quatro partes principais, como mostrado na Figura 3,
denominadas pretext, maid, ngram e report, nos quais s˜ ao definidas as configura¸c˜ oes
Maid.pm NGram.pm Report.pm limpeza dos documentos n-grama para qualquer
valor de n
gr´ aficos
remo¸c˜ ao de tags HTML cortes por freq¨ uˆ encia
tratamento de s´ımbolos cortes por documentos
stoplist XML taxonomia
stemming para por- tuguˆ es, inglˆ es e espanhol
*normaliza¸c˜ oes por linha e coluna: quadr´ atica e li- near
*cria¸c˜ ao dos arquivos
“limpos”
medidas: tf-idf , tf , tf- linear e boolean
*tabela atributo-valor transposta
Tabela 10: Funcionalidades da nova vers˜ ao do PreTexT
*Essas funcionalidades podem ser facilmente estendidas.
gerais da ferramenta, e as configura¸c˜ oes dos trˆ es m´ odulos principais Maid.pm, NGram.pm, Report.pm, respectivamente.
1 <?xml version=” 1 . 0 ” encoding=” u t f−8”?>
2 <p r e t e x t lang=” p t ” d i r=” t e x t o s ”>
3 <maid>
4 </ maid>
5 <ngram>
6 <gram n=”1”/>
7 </ngram>
8 <r e p o r t>
9 <gram n=”1”/>
10 </ r e p o r t>
11 </ p r e t e x t>
Figura 3: Exemplo b´ asico do arquivo de configura¸c˜ ao config.xml
O PreTexT II cont´ em um conjunto de configura¸c˜ oes default, por´ em existem algumas op¸c˜ oes mandat´ orias que devem obrigatoriamente ser definidas pelo usu´ ario. Um exemplo de um arquivo com uma configura¸c˜ ao b´ asica ´ e mostrado na Figura 3. Todas as op¸c˜ oes de configura¸c˜ ao s˜ ao explicadas a seguir utilizando como exemplo o arquivo de configura¸c˜ ao descrito na Figura 4.
Op¸c˜ oes gerais do PreTexT – Figura 4, linhas 2 a 6, e 50:
• lang: especifica a linguagem em que os textos est˜ ao escritos. (Linha 3)
Valores iniciais poss´ıveis: pt para portuguˆ es, sp para espanhol ou en para inglˆ es.
Valor default pt.
1 <?xml version=” 1 . 0 ” encoding=” u t f−8”?>
2 <p r e t e x t
3 lang=” p t ”
4 d i r=” t e x t o s ”
5 log=” p r e t e x t . l o g ”
6 s i l e n c e=” o f f ”>
8 <maid>
9 <number/>
10 <html />
11 <s i m b o l s />
12 <s t o p l i s t d i r=” s t o p l i s t ”>
13 <s t o p f i l e>p o r t . xml</ s t o p f i l e>
14 <s t o p f i l e>i n g l . xml</ s t o p f i l e>
15 </ s t o p l i s t>
16 <stemming d i r=” s t e m i n f o ”/>
17 </ maid>
19 <ngram d i r=” n g r a m i n f o ”>
20 <gram n=”1”/>
21 <gram n=”4”/>
22 <gram n=”9”/>
23 </ngram>
25 <r e p o r t
26 ngramdir=” n g r a m i n f o ”
27 discover=” d i s c o v e r ”
28 graphics=” g r a p h i c s ”
29 taxonomy=” taxonomia . t x t ”
30 transpose=” d i s a b l e d ”>
32 <gram n=”1”
33 max=” 500 ”
34 min=” 10 ”
35 measure=” t f ”
36 smooth=” d i s a b l e d ”/>
37 <gram n=”4”
38 maxfiles=” 100 ”
39 m i n f i l e s=”5”
40 measure=” t f i d f ”
41 normalize=” qua ”
42 normalizetype=” c ”/>
43 <gram n=”9”
44 std dev=” 0 . 5 ”
45 measure=” t f l i n e a r ”
46 smooth=” e n a b l e d ”
47 normalize=” l i n ”
48 normalizetype=” l ”/>
49 </ r e p o r t>
50 </ p r e t e x t>
Figura 4: Exemplo detalhado do arquivo de configura¸c˜ ao config.xml
• dir: especifica o diret´ orio que cont´ em a cole¸c˜ ao de textos. (Linha 4) Op¸c˜ ao mandat´ oria.
• log: especifica o nome do arquivo com o log de execu¸c˜ oes. (Linha 5) Valor default pretex.log.
• silence: especifica se o PreTexT II ir´ a ou n˜ ao exibir mensagens na tela durante a execu¸c˜ ao. (Linha 6)
Valores poss´ıveis: on para modo silencioso, off para modo de exibi¸c˜ ao de mensa- gens.
Valor default off.
Op¸c˜ oes do m´ odulo Maid.pm – Figura 4, linhas 8 a 17:
• number: habilita a limpeza de n´ umeros. (Linha 9)
• html: habilita a limpeza de tags html. (Linha 10)
• simbols: habilita a limpeza de caracteres n˜ ao alfa-num´ ericos. (Linha 11)
• stoplist: habilita limpeza de stopwords . (Linhas 12 a 15)
– dir: especifica o diret´ orio que cont´ em os stopfiles, arquivos que cont´ em as stoplists. (Linha 12)
Valor default stoplist.
– stopfile: especifica nome do stopfile . Essa op¸c˜ ao pode ser repetida quantas vezes for necess´ aria. (Linhas 13 e 14)
Op¸c˜ ao mandat´ oria caso stoplist esteja habilitado.
• stemming: habilita gera¸c˜ ao de stems para a l´ıngua especificada anteriormente. (Li- nha 16)
– dir: especifica o diret´ orio no qual ser˜ ao armazenados os arquivos contendo informa¸c˜ oes sobre os stems. (Linha 16)
Valor default steminfo.
Op¸c˜ oes do m´ odulo NGram.pm – Figura 4, linhas 19 a 23:
• dir: especifica o diret´ orio no qual ser˜ ao armazenados os arquivos contendo as informa¸c˜ oes sobre os n-grama. (Linha 19)
Valor default ngraminfo.
• gram: habilita um novo n-grama. Essa op¸c˜ ao pode ser repetida quantas vezes for necess´ aria. (Linhas 20 a 22)
Op¸c˜ ao mandat´ oria caso o m´ odulo NGram.pm esteja habilitado.
– n: especifica o valor de n. (Linhas 20 a 22) Op¸c˜ ao mandat´ oria para cada gram habilitado.
Op¸c˜ oes do m´ odulo Report.pm – Figura 4, linhas 25 a 49:
• ngramdir: especifica o diret´ orio no qual est˜ ao armazenados os arquivos contendo informa¸c˜ oes sobre os n-grama. (Linha 26)
Valor default caso o m´ odulo NGram.pm esteja habilitado ´ e o mesmo diret´ orio deter- minado em seus parametros. Caso o m´ odulo n˜ ao esteja habilitado, ser´ a ngraminfo.
• discover: especifica o diret´ orio no qual ser˜ ao armazenados os arquivos .data e .names. (Linha 27)
Valor default discover.
• graphics: especifica o diret´ orio no qual ser˜ ao armazenados os arquivos para cria¸c˜ ao de gr´ aficos. (Linha 28)
Valor default graphics.
• taxonomy: especifica nome do arquivo de taxonomias. (Linha 29) Valor default desabilitado.
• transpose: habilita a cria¸c˜ ao da tabela atributo-valor transposta. (Linha 30) Valores poss´ıveis: disabled e enabled.
Valor default disabled.
• gram: habilita um novo n-grama. Essa op¸c˜ ao pode ser repetida quantas vezes for necess´ aria. (Linhas 32 a 48)
Op¸c˜ ao mandat´ oria caso o m´ odulo Report.pm esteja habilitado.
– n: especifica o valor de n. (Linhas 32, 37 e 42) Op¸c˜ ao mandat´ oria para cada gram habilitado.
– max: se definido, na tabela atributo-valor s˜ ao carregados apenas os tokens que tiverem freq¨ uˆ encia absoluta menor ou igual ao valor definido. (Linha 33) Valor default desabilitado.
– min: se definido, na tabela atributo-valor s˜ ao carregados apenas os tokens que
tiverem freq¨ uˆ encia absoluta maior ou igual ao valor definido. (Linha 34)
Valor default desabilitado.
– maxfiles: se definido, na tabela atributo-valor s˜ ao carregados apenas os tokens que est˜ ao contidos em um n´ umero de documentos menor ou igual ao valor definido. (Linha 38)
Valor default desabilitado.
– minfiles: se definido, na tabela atributo-valor s˜ ao carregados apenas os tokens que est˜ ao contidos em um n´ umero de documentos maior ou igual ao valor definido. (Linha 39)
Valor default desabilitado.
– std dev: se definido, ´ e calculado o rank de stems. Com o desvio padr˜ ao desse rank ´ e definido um intervalo (x − ks; x + ks), no qual x ´ e a m´ edia do rank, s ´ e o desvio padr˜ ao desse rank e k ´ e o valor definido pelo usu´ ario. Os tokens que est˜ ao fora desse intervalo s˜ ao descartados. (Linha 44)
Valor default desabilitado.
– measure: define a medida que ´ e utilizada para construir a tabela atributo- valor. (Linhas 35, 40 e 45)
Valores iniciais: tf, boolean, tfidf e tflinear.
Valor default tf.
– smooth: habilita o crit´ erio de suaviza¸c˜ ao da medida. (Linhas 36 e 46) Valores poss´ıveis: disabled e enabled.
Valor default disabled.
– normalize: habilita o m´ etodo de normaliza¸c˜ ao a ser aplicado aos valores dos atributos da tabela atributo-valor. (Linhas 41 e 47)
Valores iniciais: lin e qua Valor default desabilitado.
– normalizetype: caso habilitado normalize, define o tipo de normaliza¸c˜ ao por linha ou coluna. (Linhas 42 e 48)
Valores poss´ıveis: c e l.
Valor default c.
A op¸c˜ ao n contida nas configura¸c˜ oes do NGram.pm e do Report.pm se refere ao valor n = 1, 2, 3, . . . do n-grama e podem assumir a priori qualquer valor inteiro positivo. Com esse recurso, pode-se gerar n-grama de ordem alta, como 10 ou 15, que representam frases que se repetem em alguns textos (por exemplo, textos t´ ecnicos) e podem at´ e representar um atributo significativo para a aplica¸c˜ ao dos algoritmos de aprendizado. Cada n-grama
´
e processado individualmente, com suas medidas, cortes e normaliza¸c˜ oes individuais es-
pecificadas pelo usu´ ario, e, ap´ os o processo, unidas na tabela atributo-valor final.
As op¸c˜ oes max, min, maxfiles, minfiles e std dev contida nas configura¸c˜ oes do m´ odulo Report.pm se referem ` a op¸c˜ oes de redu¸c˜ ao de dimensionalidade por cortes de tokens.
As op¸c˜ oes max e min definem manualmente os pontos superior e inferior dos cortes de Luhn. Todos os tokens cujas freq¨ uˆ encias absolutas se encontram fora do intervalo defi- nido pelo usu´ ario, levando em conta toda a cole¸c˜ ao de documentos, ser˜ ao ignorados no processo de cria¸c˜ ao da tabela atributo-valor. J´ a as op¸c˜ oes maxfiles e minfiles consi- deram a freq¨ uˆ encia de apari¸c˜ ao dos tokens nos documentos do conjunto de documentos, independente do n´ umero de vezes que cada token aparece dentro dos documentos. Dessa maneira, tokens que est˜ ao fora do intervalo manualmente definido pelo usu´ ario ser˜ ao tamb´ em ignorados na cria¸c˜ ao da tabela atributo-valor.
A op¸c˜ ao std dev, por sua vez, faz cortes nos tokens de acordo com o desvio padr˜ ao sobre o rank dos tokens. Esse rank ´ e constru´ıdo de maneira que tokens com a mesma freq¨ uˆ encia pertencem ao mesmo ranking. O importante desse rank ´ e o n´ umero de coloca¸c˜ oes dife- rentes. Os rankings s˜ ao definidos pela freq¨ uˆ encia absoluta do token, ou seja, os tokens com maior freq¨ uˆ encia absoluta receber˜ ao os primeiros rankings, e os com menor receber˜ ao os ´ ultimos rankings. Na Tabela 11 (a) ´ e exemplificada as freq¨ uˆ encias dos tokens de um conjunto de documentos. A partir dessas freq¨ uˆ encias, na Tabela 11 (b) s˜ ao mostrados os ranks gerados.
stem freq
amig 5
trabalh 5 divert 5
cas 7
futebol 12
amig 13
jant 13
famil 17 (a)
rank freq
1 17
2 13
3 12
4 7
5 5
(b)
Tabela 11: A freq¨ uˆ encia dos tokens (a) gera o rank de tokens (b)
A partir dos ranks exemplificados na Figura 11 (b), ´ e calculado o desvio padr˜ ao e a m´ edia dos valores, obtendo-se no exemplo considerado, 1.58 e 2.5, respectivamente
11. Supondo que seja definido no arquivo de configura¸c˜ ao a op¸c˜ ao std dev="0.8", o intervalo do rank
´ e:
[2.5 − 1.58 × 0.8, 2.5 + 1.58 × 0.8] = [1.73, 4.26]
Por somente existir ranks inteiros, o intervalo ´ e arredondado considerando o n´ umero inteiro superior, para [2, 4] e convertido novamente para a freq¨ uˆ encia do token para que
11Por conven¸c˜ao, noPreTexT IIsempre ´e utilizado o ponto para separar as casas decimais.
possa ser realizado o corte por freq¨ uˆ encia. O intervalo final seria [7, 13], ou seja, tokens com freq¨ uˆ encia menor que 7 e maior que 13 s˜ ao ignorados.
3.2 O m´ odulo Maid.pm
Esse m´ odulo ´ e respons´ avel pela limpeza dos documentos iniciais, remo¸c˜ ao das stopwords , remo¸c˜ ao de s´ımbolos n˜ ao relevantes e gera¸c˜ ao dos stems utilizando o algoritmo de stem- ming da linguagem solicitada. Como resultado, s˜ ao gerados os arquivos stemWdTF.all (stems ordenados por freq¨ uˆ encia) e stemWdST.all (stems ordenados por ordem al- fab´ etica) que guardam a contagem de stems e os tokens que foram transformados em cada stem , e um conjunto de arquivos “limpos”. Para sua execu¸c˜ ao, s˜ ao necess´ arios alguns arquivos explicados a seguir.
3.2.1 Arquivos de Entrada
Os arquivos de entrada do m´ odulo Maid.pm consistem de:
• arquivo de configura¸c˜ ao config.xml: o m´ odulo Maid.pm consulta as configura¸c˜ oes gerais do PreTexT II bem como as informa¸c˜ oes espec´ıficas do seu m´ odulo.
• arquivo de s´ımbolos simbols.xml: o PreTexT II possui a facilidade de permitir ao usu´ ario a escolha de s´ımbolos que n˜ ao acrescentam informa¸c˜ ao relevante ao conjunto de textos, por meio do arquivo simbols.xml. Nesse arquivo, o usu´ ario deve definir quais s´ımbolos n˜ ao alfa-num´ ericos ser˜ ao eliminados dos textos, e quais dentre eles representam divisores de frases, com o objetivo de que n˜ ao sejam gerados n-grama com tokens de frases diferentes.
A forma de constru¸c˜ ao do arquivo simbols.xml ´ e apresentada a seguir, utilizando o exemplo na Figura 5.
– clearall: caso n˜ ao seja necess´ aria a escolha de s´ımbolos espec´ıficos, o Pre- TexT II tem a op¸c˜ ao de limpar todos os s´ımbolos n˜ ao alfa-num´ ericos do conjunto de documentos. Para isso, s˜ ao utilizados s´ımbolos default para serem considerados como divisores de frases. Caso o usu´ ario deseje especificar os s´ımbolos, n˜ ao deve habilitar essa op¸c˜ ao. (Linha 2)
Valores poss´ıveis: true e false.
Valor default true.
1 <?xml version=” 1 . 0 ” encoding=” u t f−8”?>
2 <s i m b o l s c l e a r a l l=” f a l s e ”>
3 <s i m b o l break=” t r u e ”>.</ s i m b o l>
4 <s i m b o l break=” t r u e ”>,</ s i m b o l>
5 <s i m b o l break=” t r u e ”>!</ s i m b o l>
6 <s i m b o l break=” t r u e ”>?</ s i m b o l>
7 <s i m b o l break=” f a l s e ”>−</ s i m b o l>
8 <s i m b o l break=” f a l s e ”>$</ s i m b o l>
9 <s i m b o l break=” f a l s e ”>=</ s i m b o l>
10 <s i m b o l break=” f a l s e ”>˜</ s i m b o l>
11 <s i m b o l>@</ s i m b o l>
12 <s i m b o l>#</ s i m b o l>
13 </ s i m b o l s>
Figura 5: Exemplo do arquivo de s´ımbolos simbols.xml
– simbol: especifica um novo s´ımbolo a ser removido. Op¸c˜ ao pode ser repetida quantas vezes for necess´ aria. (Linhas 3 a 12)
∗ break: habilite essa op¸c˜ ao caso o s´ımbolo a ser removido seja um divisor de frases. (Linhas 3 a 10)
Valores poss´ıveis: true e false.
Valor default false.
Devido as regras de constru¸c˜ ao de XML, alguns s´ımbolos n˜ ao podem ser escritos por extenso. Tais s´ımbolos necessitam de uma codifica¸c˜ ao especial para que possam ser removidos do conjunto de textos. Essas codifica¸c˜ oes s˜ ao mostradas na Tabela 12.
Codifica¸c˜ao S´ımbolo
& &
> ¿
< ¡
Tabela 12: Codifica¸c˜ ao XML de alguns s´ımbolos.
• arquivos de stoplists: para definir as stopwords a serem ignoradas no processo de limpeza do texto, deve-se utilizar tamb´ em arquivos XML contendo todas as palavras e varia¸c˜ oes de palavras que ser˜ ao ignoradas. O arquivo deve ser constru´ıdo como mostra o exemplo na Figura 6.
A op¸c˜ ao stopword pode ser repetida quantas vezes for necess´ aria para que sejam
inseridos tantas stopwords quanto o usu´ ario desejar. N˜ ao ´ e necess´ ario que todas as
stopwords estejam em um ´ unico arquivo stopfile . O PreTexT II pode carregar
v´ arios stopfiles, por´ em, para facilitar o entendimento de cada stopfile , ´ e aconselh´ avel
que sejam agrupados stopwords por temas de interesse: por exemplo stopfile geral
em portuguˆ es; stopfile de esportes; stopfile geral em inglˆ es.
1 <?xml version=” 1 . 0 ” encoding=” u t f−8”?>
2 <s t o p f i l e>
3 <stopword>a b a i x o</ stopword>
4 <stopword>a c a s o</ stopword>
5 <stopword>a c e r c a</ stopword>
6 <stopword>acima</ stopword>
7 <stopword>ademais</ stopword>
8 </ s t o p f i l e>
Figura 6: Exemplo de um stopfile
• conjunto de documentos: os documentos texto a serem processados podem estar organizados de duas maneiras, uma para documentos rotulados, e outra para docu- mentos sem r´ otulo, como explicado a seguir.
1. Documentos n˜ ao rotulados: cria-se um diret´ orio contendo todos os documentos sem divis˜ ao de subdiret´ orios.
2. Documentos rotulados: cria-se um diret´ orio contendo subdiret´ orios, nos quais cada um deles cont´ em os documentos de uma mesma classe.
Para exemplificar, considere os arquivos basquete.txt, futebol.txt, elei-
¸
c~ oes.txt e minist´ erio.txt, nos quais os dois primeiros s˜ ao da classe esporte e os dois ´ ultimos da classe pol´ ıtica. Para que o PreTexT II gere automa- ticamente as classes dos documentos, deve ser constru´ıdo uma estrutura de diret´ orios como ilustrado na Figura 7.
diretorio\
esporte\
basquete.txt futebol.txt pol´ıtica\
elei¸c~oes.txt minist´erio.txt