• Nenhum resultado encontrado

PreTexT: A Reestruturação da Ferramenta de Pré-Processamento de Textos XXX RELATÓRIOS TÉCNICOS DO ICMC

N/A
N/A
Protected

Academic year: 2021

Share "PreTexT: A Reestruturação da Ferramenta de Pré-Processamento de Textos XXX RELATÓRIOS TÉCNICOS DO ICMC"

Copied!
49
0
0

Texto

(1)

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

(2)

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 passou

por 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.

(3)

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

(4)

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

(5)

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

(6)

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

1

uma 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/

(7)

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

1

t

2

t

3

. . . t

M

Classe(C) d

1

a

11

a

12

a

13

. . . a

1M

c

1

d

2

a

21

a

22

a

23

. . . a

2M

c

2

d

3

a

31

a

32

a

33

. . . a

3M

c

3

.. . .. . .. . .. . . .. .. . .. . d

N

a

N1

a

N2

a

N3

. . . a

N M

c

N

Tabela 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

i

pode assumir um valor do conjunto C = {C

1

, . . . , C

Ncl

}, no qual N

cl

´ e o n´ umero de classes. Cada entrada a

ij

refere-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.

(8)

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

(9)

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

(10)

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

(11)

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.

(12)

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

ij

refere-se ao valor associado ao j -´ esimo termo (atributo) do documento i.

O valor a

ij

do termo t

j

no documento d

i

pode 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.´

(13)

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

j

ocorre em d

i

0, 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

j

no documento d

i

.

a

ij

= tf (t

j

, d

i

) = f req(t

j

, d

i

) (2)

(14)

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.

(15)

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 .

(16)

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

ij

M AX

k=1..N

(a

kj

) (7)

(17)

N ormLinear(t

j

, d

i

) = a

ij

M 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

ij

q P

N

k=1

(a

kj

)

2

(9)

N ormQuadratic(t

j

, d

i

) = a

ij

q P

N

k=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.

(18)

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

(19)

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

(20)

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

(21)

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.

(22)

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

(23)

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:

(24)

• 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.

(25)

– 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

(26)

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.

(27)

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)

(28)

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

&amp; &

&gt; ¿

&lt; ¡

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.

(29)

• 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

Figura 7: Exemplo da organiza¸c˜ ao do diret´ orio de documentos rotulados.

3.2.2 Arquivos de Sa´ıda

Como sa´ıda do m´ odulo Maid.pm s˜ ao gerados arquivos, alguns dos quais far˜ ao parte dos arquivos de entrada do pr´ oximo m´ odulo NGram.pm, e outros que fornecem diversas in- forma¸c˜ oes para o usu´ ario. Estes arquivos s˜ ao explicados a seguir.

• conjunto de documentos “limpos”: para oferecer maior liberdade ao usu´ ario, o m´ odulo Maid.pm tem como sa´ıda o mesmo n´ umero N de arquivos que recebeu como entrada. Por´ em, esses arquivos j´ a est˜ ao com seus tokens reduzidos pelas diversas fun¸c˜ oes de redu¸c˜ ao de atributos selecionadas pelo usu´ ario e executadas pelo PreTexT . Esses arquivos cont´ em os dados de entrada para o m´ odulo NGram.pm.

• arquivos stemWdTF.all e stemWdST.all: esses arquivos cont´ em a contagem de

stems e os tokens que foram transformados em cada stem . No arquivo stemWdTF.all

eles est˜ ao ordenados por freq¨ uˆ encia, e no arquivo stemWdST.all est˜ ao ordenados

alfabeticamente. Na Figura 8 ´ e ilustrado o arquivo stemWdTF.all, no qual os

Referências

Outline

Documentos relacionados

Nosso ponto de partida metodológico é observar e descrever a interação do individuo desde sua infância mais imatura com seu contexto social, cultural, econômico, político com

Triagem da infecção pelo HCV por meio de testes rápidos em indivíduos maiores de 18 meses.. Fonte: Manual Técnico para o Diagnóstico das

De maneira geral, o apoio, a valorização e os investimentos são os fatores que mais contribuem para o crescimento e desenvolvimento do paradesporto nacional,

Capitalismo Sindical” e consiste basicamente em dizer que processos políticos podem ter o seu princípio alterado em detrimento de uma outra classe social. No caso das Primaveras

Dans le but de proposer une organisation didactique de l’expérience de recevoir le diagnostic médical, soutenue par notre expérience dans le domaine de l’annonce et prenant en

Tabela 3 - Duração do ciclo após a germinação, produtividade, eficiência no uso da água em cenários climáticos futuros RCP4.5 para o milho semeado em 10 de outubro.. Já para

Segundo Brown (2004), apoiado principalmente no trabalho de Warren e Nisbet (1999), é possível conceber que os indivíduos, quer sejam professores ou estudantes, geralmente

Como prenuncia o próprio título do texto, O pensamento cria, embora fique evidente que aí se trata da relação entre música e artes visuais, não deixamos de notar que o foco