Instituto de Ciˆ encias Matem´ aticas e de Computa¸ c˜ ao
ISSN - XXXX-XXXX
PreTexT: A 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
Agosto/2008
PreTexT: A 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 a fundo as funcionalidades e o modo de uso da nova vers˜ ao da ferra- menta
PreTexT.
Palavras Chaves:
Minera¸ c˜ ao de Textos, Pr´ e-Processamento,
Stemming.Agosto 2008
‡Trabalho realizado com apoio institucional da USP.
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 . . . . 7
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 . . . . 21
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 . . . . 27
3.3 O m´ odulo NGram.pm . . . . 27
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 . . . . 29
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 . . . . 33
3.4.4 Advertˆ encias . . . . 34
3.5 Script Auxiliar de Configura¸c˜ ao . . . . 34
3.6 Instala¸c˜ ao . . . . 34
3.6.1 Windows . . . . 34
3.6.2 Linux . . . . 35
4 Arquitetura de Classes 35 4.1 Start.pl . . . . 35
4.2 Maid.pm . . . . 36
4.3 NGram.pm . . . . 39
4.4 Report.pm . . . . 39
5 Considera¸ c˜ oes Finais 42 Referˆ encias 42 Lista de Figuras 1 A curva de Zipf e os cortes de Luhn . . . . 7
2 O novo funcionamento do PreTexT . . . . 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 . . . . 22
6 Exemplo de um stopfile . . . . 23
7 Exemplo da organiza¸c˜ ao do diret´ orio de documentos rotulados. . . . . 24
8 Exemplo do arquivo stemWdST.all . . . . 25
9 Exemplo de execu¸c˜ ao do m´ odulo Maid.pm. . . . . 26
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. . . . . 32
17 Exemplo de execu¸c˜ ao do m´ odulo Report.pm. . . . . 33
18 Diagrama de classes do m´ odulo Start.pl . . . . 36
19 Diagrama de classes do m´ odulo Maid.pm . . . . 37
20 S´ımbolos transformados em divisores de frase por default. . . . . 37
21 Diagrama de classes do m´ odulo NGram.pm . . . . 39
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 medida boolean. . . . . 8
3 Tabela atributo-valor utilizando medida tf . . . . . 9
4 Tabela atributo-valor utilizando medida tf-linear . . . . . 10
5 Tabela atributo-valor utilizando medida tf-idf . . . . . 10
6 Tabela atributo-valor utilizando medida tf e a normaliza¸c˜ ao linear por linha. 12 7 Tabela atributo-valor utilizando medida tf e a normaliza¸c˜ ao linear por coluna. . . . . 12
8 Tabela atributo-valor utilizando medida tf e a normaliza¸c˜ ao quadr´ atica por linha. . . . . 13
9 Tabela atributo-valor utilizando medida tf e a normaliza¸c˜ ao quadr´ atica por coluna. . . . . 13
10 Funcionalidades da nova vers˜ ao do PreTexT . . . . 15
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. . . . . . 30
14 Transforma¸c˜ oes de entidades HTML realizadas pelo PreTexT . . . . . . 38
1 Introdu¸ c˜ ao
O uso freq¨ uente de computadores gera, como conseq¨ uˆ encia, uma grande quantidade de dados digitais que precisam ser analisados. 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 quantidade de textos digitais gerados no dia a dia. A minera¸c˜ ao de textos tem diver- sas aplica¸c˜ oes tais como: classifica¸c˜ ao de documentos, recupera¸c˜ ao de informa¸c˜ ao, orga- niza¸c˜ ao de documentos 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 possam ser aplicados 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 realizar 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. A nova vers˜ ao da ferramenta PreTexT ser´ a explicada em detalhes neste trabalho.
Este trabalho est´ a dividido da seguinte maneira: no Cap´ıtulo 2 est´ a uma revis˜ ao bibli- ogr´ afica dos conceitos e m´ etodos utilizados na ferramenta PreTexT , o Cap´ıtulo 3 est´ a a descri¸c˜ ao da ferramenta, seus m´ odulos principais e modos de utiliza¸c˜ ao, o Cap´ıtulo 4 ´ e dado uma breve descri¸c˜ ao de todas as classes da nova arquitetura da ferramenta, assim como a forma de intera¸c˜ ao entre elas, o Cap´ıtulo 5 est˜ ao 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 algoritmos de aprendizado de m´ aquina, pois esses algoritmos geralmente necessitam que
1http://labic.icmc.usp.br/
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 partir dessa contagem 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 pe- culiaridades. 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 geralmente consiste em um subconjunto pequeno de todas
as palavras existentes do conjunto de documentos), gerando assim uma tabela muito
esparsa.
Muitos algoritmos de aprendizado n˜ ao est˜ ao preparados para esse tipo de tabelas esparsas, deixando o processamento 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 desses dados ´ e a presen¸ca de somente valores positivos. Essa caracter´ıstica tamb´ em deve ser levada em considera¸c˜ ao 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 ou, tamb´ em chamado 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. Desta maneira, se for considerado somente um espa¸co em branco para a divis˜ ao de tokens, podem existir tokens que deve- riam 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 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 uma relevˆ ancia para o aprendizado, e aqueles que simplesmente podem ser ignorados. A existˆ encia de letras mai´ usculas e min´ usculas
2Neste trabalho palavras,tokens e termos s˜ao utilizados indistintamente como sinˆonimos
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. Esses aspectos devem ser cuidadosamente considerados, pois uma extra¸c˜ ao eficiente 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 conhecidos ´ 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 considerando se algumas regras pr´ e-estabelecidas. Caso n˜ ao seja poss´ıvel eliminar nenhum sufixo de acordo com essas regras, s˜ ao analisadas as ter- mina¸c˜ oes verbais da palavra. Essa ´ e a principal diferen¸ca entre o algoritmo de stemming para palavras em inglˆ es e para palavras em portuguˆ es ou espanhol, por exemplo. En- quanto na l´ıngua inglesa a conjuga¸c˜ ao dos verbos ´ e quase inexistente para verbos regu- lares, 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 alta- mente conjugadas em sete tempos, que contˆ em seis termina¸c˜ oes diferentes cada tempo.
3http://www.tartarus.org/~martin/PorterStemmer
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 token 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 essas palavras, pode ser gerada uma
stoplist , na qual in´ umeras stopwords s˜ ao armazenadas para que sejam desconsideradas ao
se processar o texto. Dessa forma, a remo¸c˜ ao de stopwords minimiza consideravelmente
a quantidade total de tokens usada para representar documentos. Portanto, o uso das stoplists auxilia no processo de minera¸c˜ ao de textos, removendo palavrasas 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 ´ 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 determinada 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 aparece 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 como 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 discri- mina¸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), no qual 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 1 representa a o token de maior freq¨ uˆ encia; para r = 2, f 2 representa 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
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.
Figura 1: A curva de Zipf e os cortes de Luhn 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.
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
4E importante ressaltar que a palavra grama deve ser usada sempre no singular.´
valor dos atributos na tabela atributo-valor. 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 atribui o valor um (verdadeiro) ao atributo se ele existe no documento e zero (falso) caso contr´ ario, como mostrada na Equa¸c˜ ao 1.
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 diversos tokens . Os valores dos atributos dos outros documentos de 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 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, e 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 medida tf .
2.2.3 Term Frequency Linear
Alguns termos aparecem na maioria dos documentos e raramente fornecem informa¸c˜ oes
´
uteis que possam diferenciar os documentos em uma tarefa de minera¸c˜ ao de textos. ´ E poss´ıvel utilizar tamb´ em informa¸c˜ oes que indiquem a freq¨ uˆ encia com que um termo apa- rece na cole¸c˜ ao de documentos. Nesse caso, um fator de pondera¸c˜ ao pode ser utilizado para que os termos que aparecem na maioria dos documentos tenham um peso de re- presenta¸c˜ ao menor. 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 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, de tal maneira que termos que aparecem na mai- oria 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 proporcional ao logaritmo do n´ umero de documentos em que o termo aparece no n´ umero total N de documentos — Equa¸c˜ ao 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 medida tf-idf .
2.2.5 Suaviza¸ c˜ ao
N˜ ao raramente, em algumas cole¸c˜ oes de documentos ´ e poss´ıvel que alguns tokens apare¸cam em todos documentos da cole¸c˜ ao. Dessa maneira, os fatores de pondera¸c˜ ao idf e linear se tornam nulos. Assim sendo, os valores desses tokens s˜ ao zerados para todos os docu- mentos, e o tokens ´ e inutilizado nesta cole¸c˜ ao de documentos. Uma solu¸c˜ ao para este problema ´ e fazer com que os fatores de pondera¸c˜ ao nunca sejam nulos, a partir de um crit´ erio de suaviza¸c˜ ao, i.e. 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 a suaviza¸c˜ ao, ´ e aumentar temporariamente em 10% a vari´ avel N que cont´ em o n´ umero de documentos da cole¸c˜ ao. Sendo assim, o fator de pondera¸c˜ ao n˜ ao pode ser considerado 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 norma- liza¸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 utilizado a normaliza¸c˜ ao por linhas, e ´ e definida pela Equa¸c˜ ao 8 quando utilizado 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 utilizado a normaliza¸c˜ ao por linhas, e ´ e definida pela Equa¸c˜ ao 10 quando utilizado 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 ´ e mostrado o 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 Tabela 3.
Na qual, 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 observa-se um exemplo 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 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 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 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 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 do texto utilizando a abordagem bag of words e implementa todos os m´ etodos citados no Cap´ıtulo 2. 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 utilizado em diversos trabalhos envolvendo minera¸c˜ ao de textos dentro e fora do ICMC. 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 requeridas 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.
• O m´ odulo Start.pl lˆ e o arquivo de configura¸c˜ ao config.xml e, com base nos parˆ ametros especificados neste 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
Figura 2: O novo funcionamento do PreTexT
realizada por uma das classes que herdam a classe abstrata Stemmer.pm e cont´ em o algoritmo de stemming para a linguagem solicitada. No PreTexT , est˜ ao dis- pon´ı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) que guar- dam 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 en- trada 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).
• O m´ odulo Report.pm recebe como entrada os arquivos .txt e .all, faz o proces- samento das taxonomias contidas no arquivo taxonomy e calcula as medidas e normaliza¸c˜ oes solicitadas pelo usu´ ario. O c´ alculo dessas medidas e normaliza¸c˜ oes
´ e realizado pelas classes que herdam as abstratas MeasureTF.pm e Normalize.pm, produzindo como resultado uma tabela atributo-valor no formato do DSX do Dis- cover (Prati, 2003) (arquivos .data e .names) 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 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).
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 extendidas.
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 ´ 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 . Esse arquivo constitui de quatro partes principais, como mostrado na Figura 3, denominadas pretext, maid, ngram e report, na qual s˜ ao definidas as configura¸c˜ oes ge- rais 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 cont´ em um conjunto de configura¸c˜ oes default, por´ em existem algumas op¸c˜ oes mandat´ orias que devem obrigatoriamente serem definidas. Um exemplo de um arquivo com uma configura¸c˜ ao b´ asica ´ e mostrado na Figura 3. Todas as op¸c˜ oes de con- figura¸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 s˜ ao:
• 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.
• 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 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.
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
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. Op¸c˜ ao pode ser repetida quantas vezes for ne- cess´ 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 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 definido 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 consideram 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 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 deste rank ´ e o n´ umero de coloca¸c˜ oes dife- rentes. Os rankings s˜ ao definidas pela freq¨ uˆ encia absoluta do token, ou seja, os tokens com maior freq¨ uˆ encia absoluta receber˜ ao os primeiras 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) ´ e mostrado 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 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 para [2, 4] e convertido novamente para a freq¨ uˆ encia do token para que 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 com o algoritmo de stemming da linguagem solicitada. Como resultado s˜ ao gerados os arquivos stemWdTF.all (stems
11Por conven¸c˜ao noPreTexT, sempre ´e utilizado o ponto para separar as casas decimais.
ordenados por freq¨ uˆ encia) e stemWdST.all (stems ordenados por ordem alfab´ 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 que ser˜ ao 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 , e as informa¸c˜ oes espec´ıficas do seu m´ odulo.
• arquivo de s´ımbolos simbols.xml: o PreTexT 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 ir´ a definir quais s´ımbolos n˜ ao alfa-num´ ericos ser˜ ao eliminados dos textos, e quais dentre eles representam divisores de frases, para que n˜ ao sejam gerados n-grama com tokens de frases diferentes.
A forma de constru¸c˜ ao do simbols.xml ´ e apresentada a seguir, utilizando o exemplo na Figura 5.
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
– clearall: caso n˜ ao seja necess´ aria a escolha de s´ımbolos espec´ıficos, o Pre-
TexT tem a op¸c˜ ao de limpar todos s´ımbolos n˜ ao alfa-num´ ericos do conjunto
de documentos. Para isso, s˜ ao utilizados s´ımbolos default para serem conside-
rados 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.
– 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.
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
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 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.
• 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 gere automati- camente as classes dos documentos, deve ser constru´ıdo um diret´ orio como ilustrado na Figura 7.
diretorio\
esporte\
basquete.txt futebol.txt pol´ıtica\
elei¸c~oes.txt minist´erio.txt