• Nenhum resultado encontrado

PreTexT II: Descrição da 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 II: Descrição da Reestruturação da Ferramenta de Pré-Processamento de Textos XXX RELATÓRIOS TÉCNICOS DO ICMC"

Copied!
50
0
0

Texto

(1)

Instituto de Ciˆ encias Matem´ aticas e de Computa¸ c˜ ao

ISSN - 0103-2569

PreTexT II: Descri¸ c˜ ao da Reestrutura¸ c˜ ao da Ferramenta de Pr´ e-Processamento de Textos

Matheus Victor Brum Soares Ronaldo C. Prati Maria Carolina Monard

N

o¯

XXX

RELAT ´ ORIOS T´ ECNICOS DO ICMC

S˜ ao Carlos

Outubro/2008

(2)

PreTexT II: Descri¸ c˜ ao da Reestrutura¸ c˜ ao da Ferramenta de Pr´ e-Processamento de Textos

Matheus Victor Brum Soares

*

Ronaldo C. Prati

*

Maria Carolina Monard

*

*Universidade de S˜ao Paulo

Instituto de Ciˆencias Matem´aticas e de Computa¸c˜ao Laborat´orio de Inteligˆencia Computacional e-mail: {caneca, prati, mcmonard}@icmc.usp.br

Resumo:

A quantidade de informa¸ c˜ ao textual armazenada digitalmente vem cres- cendo a cada dia. No entanto, a nossa capacidade de processar e analisar essa informa¸ c˜ ao n˜ ao vem acompanhando este crescimento. Dessa maneira, ´ e importante desenvolver processos semi-autom´ aticos para extrair conhecimento relevante dessa informa¸ c˜ ao, tais como o processo de minera¸ c˜ ao de textos. O pr´ e-processamento de textos ´ e uma das principais etapas da minera¸ c˜ ao de textos, e tamb´ em uma das mais custosas. Essa etapa visa transformar texto n˜ ao estruturado em um formato estru- turado, como uma tabela atributo-valor. O

PreTexT

´ e uma ferramenta computa- cional que realiza esse tipo de pr´ e-processamento utilizando funcionalidades como n-grama,

stemming, stoplists, cortes por freq¨

uˆ encia, taxonomias, normaliza¸ c˜ oes, gr´ aficos, medidas

tf

,

tf-idf

,

tf-linear

,

boolean, entre outras. Esta ferramenta passou

por uma reestrutura¸ c˜ ao e reimplementa¸ c˜ ao recentemente e este trabalho consiste em apresentar as funcionalidades e o modo de uso da nova vers˜ ao da ferramenta

PreTexT

.

Palavras Chaves:

Minera¸ c˜ ao de Textos, Pr´ e-Processamento,

Stemming.

Outubro 2008

Trabalho realizado com apoio da USP, CNPq e FAPESP.

(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 . . . . 8

2.2.1 Boolean . . . . 8

2.2.2 Term Frequency . . . . 8

2.2.3 Term Frequency Linear . . . . 9

2.2.4 Term Frequency - Inverse Document Frequency . . . . 10

2.2.5 Suaviza¸c˜ ao . . . . 11

2.2.6 Normaliza¸c˜ oes . . . . 11

3 Remodelagem e Reimplementa¸ c˜ ao do PreTexT 13 3.1 O Arquivo de Configura¸c˜ ao XML . . . . 15

3.2 O m´ odulo Maid.pm . . . . 22

3.2.1 Arquivos de Entrada . . . . 22

3.2.2 Arquivos de Sa´ıda . . . . 24

3.2.3 Execu¸c˜ ao do M´ odulo Maid.pm . . . . 25

3.2.4 Advertˆ encias . . . . 26

3.3 O m´ odulo NGram.pm . . . . 26

3.3.1 Arquivos de Entrada . . . . 27

3.3.2 Arquivos de Sa´ıda . . . . 27

3.3.3 Execu¸c˜ ao do M´ odulo NGram.pm . . . . 28

3.3.4 Advertˆ encias . . . . 29

3.4 O m´ odulo Report.pm . . . . 30

(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 . . . . 32

3.4.4 Advertˆ encias . . . . 33

3.5 Script Auxiliar de Configura¸c˜ ao . . . . 34

3.6 Instala¸c˜ ao . . . . 35

3.6.1 Windows . . . . 35

3.6.2 Linux . . . . 35

4 Arquitetura de Classes 36 4.1 Start.pl . . . . 36

4.2 Maid.pm . . . . 37

4.3 NGram.pm . . . . 39

4.4 Report.pm . . . . 40

5 Considera¸ c˜ oes Finais 42 Referˆ encias 43 Lista de Figuras 1 A curva de Zipf e os cortes de Luhn . . . . 7

2 O novo funcionamento do PreTexT II . . . . 14

3 Exemplo b´ asico do arquivo de configura¸c˜ ao config.xml . . . . 16

4 Exemplo detalhado do arquivo de configura¸c˜ ao config.xml . . . . 17

5 Exemplo do arquivo de s´ımbolos simbols.xml . . . . 23

6 Exemplo de um stopfile . . . . 24

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

8 Exemplo do arquivo stemWdST.all . . . . 26

9 Exemplo de execu¸c˜ ao do m´ odulo Maid.pm. . . . . 27

10 Exemplo do arquivo 1Gram.all. . . . . 28

11 Exemplo do arquivo 1Gram.txt. . . . . 28

12 Exemplo de execu¸c˜ ao do m´ odulo NGram.pm. . . . . 29

13 Exemplo de um arquivo de taxonomia. . . . . 30

14 Exemplo dos arquivos .names (a) e .data (b). . . . . 31

15 Exemplo do gr´ afico 1-StdDev. . . . . 32

16 Exemplo do gr´ afico 1-StdDevFF. . . . . 33

17 Exemplo de execu¸c˜ ao do m´ odulo Report.pm. . . . . 34

(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 por default em divisores de frase. . . . . 37

21 Diagrama de classes do m´ odulo NGram.pm . . . . 40

22 Diagrama de classes do m´ odulo Report.pm . . . . 40

Lista de Tabelas 1 Representa¸c˜ ao de documentos no formato atributo-valor . . . . 2

2 Tabela atributo-valor utilizando a medida boolean. . . . . 8

3 Tabela atributo-valor utilizando a medida tf . . . . . 9

4 Tabela atributo-valor utilizando a medida tf-linear . . . . . 10

5 Tabela atributo-valor utilizando a medida tf-idf . . . . . 11

6 Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao linear por linha. . . . . 12

7 Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao linear por coluna. . . . . 13

8 Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao quadr´ atica por linha. . . . . 13

9 Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao quadr´ atica por coluna. . . . . 13

10 Funcionalidades da nova vers˜ ao do PreTexT . . . . 16

11 Rank de stems constru´ıdo a partir da freq¨ uˆ encia . . . . 21

12 Codifica¸c˜ ao XML de alguns s´ımbolos. . . . . 23

13 Transforma¸c˜ ao da tabela original para a tabela com taxonomias. . . . . . 31

14 Transforma¸c˜ oes de entidades HTML realizadas pelo PreTexT II . . . . . 38

(6)

1 Introdu¸ c˜ ao

O uso freq¨ uente de computadores gera, como conseq¨ uˆ encia, uma grande quantidade de dados digitais que precisa ser analisada. A minera¸c˜ ao de textos (MT) (Weiss et al., 2004)

´

e um processo que pode ser utilizado para extrair informa¸c˜ oes ´ uteis dessa grande quanti- dade de textos digitais gerados no dia a dia. A minera¸c˜ ao de textos tem diversas aplica¸c˜ oes tais como: classifica¸c˜ ao de documentos, recupera¸c˜ ao de informa¸c˜ ao, organiza¸c˜ ao de do- cumentos e extra¸c˜ ao de informa¸c˜ ao.

Dentre as etapas da MT est´ a a etapa de pr´ e-processamento de textos que consiste em transformar documentos textuais em um formato estruturado, tal como uma tabela atributo-valor, para que possa ser aplicado algoritmos de aprendizado de m´ aquina (Mit- chell, 1997; Monard & Baranauskas, 2003) para extrair conhecimento dessa informa¸c˜ ao textual. Por´ em, essa transforma¸c˜ ao ´ e um processo custoso e demorado que deve ser feito com cuidado para que o conhecimento adquirido posteriormente seja ´ util para o usu´ ario final.

Existe no LABIC

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 re- alizar o pr´ e-processamento de textos em grandes conjuntos de documentos textuais de forma mais r´ apida e com mais liberdade para a escolha de suas fun¸c˜ oes. O objetivo deste trabalho consiste em explicar em detalhes as altera¸c˜ oes realizadas bem como as novas funcionalidades implementadas na nova vers˜ ao da ferramenta, o PreTexT II .

Este trabalho est´ a dividido da seguinte maneira: na Se¸c˜ ao 2 ´ e apresentada uma revis˜ ao bibliogr´ afica dos conceitos e m´ etodos utilizados na ferramenta PreTexT II . Na Se¸c˜ ao 3 est´ a a descri¸c˜ ao da ferramenta, seus m´ odulos principais e modos de utiliza¸c˜ ao. Na Se¸c˜ ao 4

´

e apresentada uma breve descri¸c˜ ao de todas as classes da nova arquitetura da ferramenta, assim como a forma de intera¸c˜ ao entre elas. Na Se¸c˜ ao 5 s˜ ao apresentadas as considera¸c˜ oes finais deste trabalho.

2 Pr´ e-Processamento de Textos

Como mencionado, uma das grandes dificuldades da MT ´ e que dados textuais geralmente n˜ ao est˜ ao em formato estruturado. Esse fato implica em uma limita¸c˜ ao ` a utiliza¸c˜ ao de

1http://labic.icmc.usp.br/

(7)

algoritmos de aprendizado de m´ aquina, pois esses algoritmos geralmente necessitam que os dados estejam representados de uma maneira estruturada. A transforma¸c˜ ao de textos n˜ ao estruturados em dados estruturados requer o pr´ e-processamento dos textos.

Uma das maneiras de transformar textos em dados estruturados ´ e transform´ a-los em uma representa¸c˜ ao atributo-valor utilizando a abordagem bag of words , na qual a freq¨ uˆ encia das palavras (termos), independentes de seu contexto ou significado, s˜ ao contadas. A par- tir dessa contagem ´ e gerada uma tabela cujas entradas cont´ em informa¸c˜ oes relacionadas

`

a freq¨ uˆ encia de cada palavra. Uma representa¸c˜ ao de documentos usando a abordagem bag of words no formato de uma tabela atributo-valor ´ e mostrada na Tabela 1.

t

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 pecu- liaridades. Geralmente, a utiliza¸c˜ ao dessa tabela leva a um problema chamado maldi¸c˜ ao da dimensionalidade, na qual a tabela apresenta um grande n´ umero de atributos (devido ao grande n´ umero de palavras – vocabul´ ario – utilizados no conjunto de documentos).

Entretanto, cada documento utiliza relativamente poucos atributos para a sua descri¸c˜ ao

(o texto de cada documento pode ser caracterizado utilizando um subconjunto pequeno

de todas as palavras existentes no conjunto de documentos), gerando assim uma tabela

(8)

muito esparsa.

Por´ em, muitos algoritmos de aprendizado n˜ ao est˜ ao preparados para aprender utilizando tabelas atributo-valor esparsas, deixando o processo de aprendizado ineficiente, ou at´ e invi´ avel. Dessa maneira, alguns m´ etodos de redu¸c˜ ao de atributos devem ser utilizados a fim de condensar a informa¸c˜ ao pertinente para a etapa de extra¸c˜ ao de conhecimento do processo de MT. Outra caracter´ıstica especial da tabela atributo-valor gerada utilizando a abordagem bag of words, ´ e que os valores dos atributos s˜ ao sempre maiores ou iguais a zero (ou booleanos ). Essa caracter´ıstica tamb´ em deve ser explorada com o objetivo de encontrar os melhores atributos para descrever o conjunto de documentos.

2.1 Constru¸ c˜ ao de Atributos a Partir de Bases Textuais

Na transforma¸c˜ ao de documentos textuais em tabelas atributo-valor, existem alguns m´ etodos para auxiliar na redu¸c˜ ao do n´ umero de atributos visando melhorar a relevˆ ancia da informa¸c˜ ao para a classifica¸c˜ ao do texto. Esses m´ etodos s˜ ao brevemente descritos a seguir.

2.1.1 Tokeniza¸ c˜ ao

O primeiro passo para examinar um texto n˜ ao estruturado ´ e identificar suas caracter´ısticas importantes. Uma das maneiras de fazer isso ´ e quebrar o fluxo cont´ınuo de caracteres em palavras, tamb´ em chamados de tokens

2

. Esse processo ´ e trivial para uma pessoa que te- nha conhecimento da estrutura da linguagem. Por´ em, para um programa de computador, isso pode ser mais complicado. Para realizar esse processo, ´ e necess´ ario a remo¸c˜ ao de al- guns caracteres indesejados, tais como sinais de pontua¸c˜ ao, separa¸c˜ ao sil´ abica, marca¸c˜ oes especiais e n´ umeros, os quais, isoladamente, fornecem pouca informa¸c˜ ao.

O processo de tokeniza¸c˜ ao ´ e uma tarefa n˜ ao trivial, devido ` a forma como os tokens devem ser extra´ıdos do texto (dos Santos, 2002; Manning & Sch¨ utze, 1999). Em alguns casos, um espa¸co em branco n˜ ao ´ e suficiente para auxiliar no reconhecimento de um token, visto que em um texto usualmente existem sinais de pontua¸c˜ ao, como v´ırgula, ou ponto final, que n˜ ao fazem parte de um determinado token. Dessa maneira, se for considerado somente um espa¸co em branco para a divis˜ ao de tokens , podem existir tokens que deveriam ser semelhantes, por´ em, eles s˜ ao agrupados de maneiras distintas. Existe tamb´ em a ambig¨ uidade do ponto final, que n˜ ao permite determinar quando esse ponto

2Neste trabalho palavras,tokens e termos s˜ao utilizados indistintamente como sinˆonimos.

(9)

representa uma divis˜ ao entre senten¸cas e quando representa uma abrevia¸c˜ ao. Dentre os s´ımbolos n˜ ao alfanum´ ericos, existem aqueles que tˆ em relevˆ ancia para o aprendizado, e aqueles que simplesmente podem ser ignorados. A existˆ encia de letras mai´ usculas e min´ usculas tamb´ em pode dificultar o processo de tokeniza¸c˜ ao, pois uma mesma palavra ocorrendo no in´ıcio de uma frase (usualmente escrita com mai´ uscula) pode ser agrupada em um token diferente da mesma palavra ocorrendo no meio da frase (usualmente escrita com min´ uscula). Esses aspectos devem ser cuidadosamente considerados, pois a extra¸c˜ ao eficiˆ ente de tokens gera melhores resultados, i.e. diminui¸c˜ ao do n´ umero de atributos finais na abordagem bag of words.

2.1.2 Stemming

Um dos m´ etodos amplamente utilizado e difundido que pode ser utilizado a fim de reduzir a quantidade de tokens necess´ arios para representar uma cole¸c˜ ao de documentos ´ e a transforma¸c˜ ao de cada termo para o radical que o originou, por meio de algoritmos de stemming . Basicamente, algoritmos de stemming consistem em uma normaliza¸c˜ ao ling¨ u´ıstica, na qual as formas variantes de um termo s˜ ao reduzidas a uma forma comum denominada stem . A conseq¨ uˆ encia da aplica¸c˜ ao de algoritmos de stemming consiste na remo¸c˜ ao de prefixos ou sufixos de um termo. Por exemplo, os tokens observar, observadores, observasse, observou e observe podem ser transformados para um mesmo stem observ.

Os algoritmos de stemming s˜ ao fortemente dependentes do idioma no qual os documen- tos est˜ ao escritos. Um dos algoritmos de stemming mais conhecido ´ e o algoritmo do Porter, que remove sufixos de termos em inglˆ es (Porter, 1980, 2006). Esse algoritmo tem sido amplamente usado, referenciado e adaptado nas ´ ultimas trˆ es d´ ecadas. Diversas implementa¸c˜ oes do algoritmo est˜ ao disponibilizadas na WEB, inclusive na sua p´ agina ofi- cial

3

, escrita e mantida pelo autor para a distribui¸c˜ ao do seu algoritmo. Existe tamb´ em uma linguagem de programa¸c˜ ao especialmente criada para gera¸c˜ ao de stem para v´ arios idiomas, chamada Snowball (Porter, 2001).

Para a l´ıngua portuguesa, existem algoritmos de stemming que foram adaptados do algo- ritmo de Porter. Nesses algoritmos, os sufixos dos tokens, com um comprimento m´ınimo estabelecido, s˜ ao eliminados aplicando algumas regras pr´ e-estabelecidas. Caso n˜ ao seja poss´ıvel eliminar nenhum sufixo de acordo com essas regras, s˜ ao analisadas as termina¸c˜ oes verbais da palavra. Essa ´ e a principal diferen¸ca entre o algoritmo de stemming para pa- lavras em inglˆ es e para palavras em portuguˆ es ou espanhol, por exemplo. Enquanto na

3http://www.tartarus.org/~martin/PorterStemmer

(10)

l´ıngua inglesa a conjuga¸c˜ ao dos verbos ´ e quase inexistente para verbos regulares, pois usualmente acrescenta-se a letra s no final do verbo no presente na terceira pessoa do singular, as linguagens provenientes do latim apresentam formas verbais altamente conju- gadas em sete tempos, que contˆ em seis termina¸c˜ oes diferentes para cada tempo. Portanto,

´

e necess´ ario ter um tratamento diferenciado para essas termina¸c˜ oes verbais.

E pouco prov´ ´ avel que o algoritmo de stemming retorne o mesmo stem para todos os tokens que tenham a mesma origem ou radical morfol´ ogico, pois a maioria dos algorit- mos de stemming ignoram o significado dos termos, introduzindo alguns erros. Tokens com significados diferentes podem ser reduzidos a um mesmo stem, nesse caso ocorre um erro de over-stemming. Por exemplo, os tokens barato e barata podem ser reduzi- dos a um mesmo stem barat. J´ a tokens com significados similares quando reduzidos a stem diferentes conduzem ao erro de under-stemming . Por exemplo, os tokens viagem e viajar podem ser reduzidos aos stems viag e viaj, respectivamente. Outro tipo de erro, denominado de mis-stemming , consiste em retirar o sufixo de um token quando na verdade essa redu¸c˜ ao n˜ ao ´ e necess´ aria. Por exemplo, o token l´ apis poderia ser reduzido ao stem lapi, dependendo de como o plural das palavras ´ e tratado pelo algoritmo de stemming . J´ a foi observado que a medida que o algoritmo se torna mais espec´ıfico na tentativa de minimizar a quantidade de tokens diferentes para palavras com um mesmo radical, a eficiˆ encia do algoritmo degrada (Porter, 1980).

2.1.3 Taxonomias

Para certos dom´ınios da aplica¸c˜ ao, alguns tokens diferentes podem fazer mais sentido se analisados em um n´ıvel de abstra¸c˜ ao mais elevado. Por exemplo, ma¸ c~ a, manga, e uva podem ter um sentido mais geral se forem todos considerados como fruta. Esse tipo de generaliza¸c˜ ao de termos pode auxiliar o processo de aprendizado. A taxonomia ´ e a classifica¸c˜ ao de objetos baseado em similaridades entre eles. Essa classifica¸c˜ ao no pr´ e- processamento de textos ´ e realizada levando-se em considera¸c˜ ao a semˆ antica dos tokens presentes no conjunto de documentos. Entretanto, para muitos dom´ınios, n˜ ao existe uma taxonomia de termos, o que dificulta a utiliza¸c˜ ao de m´ etodos baseados em taxonomias.

Nesse caso, essa etapa, caso utilizada, deve ser assistida por um especialista no dom´ınio.

2.1.4 Remo¸ c˜ ao de Stopwords

Em qualquer l´ıngua, v´ arias palavras s˜ ao muito comuns e n˜ ao s˜ ao significativas para o

algoritmo de aprendizado quando consideradas isoladamente. Essas palavras incluem

(11)

pronomes, artigos, preposi¸c˜ oes, adv´ erbios, conjun¸c˜ oes, entre outras. Essas palavras s˜ ao geralmente chamadas de stopwords em MT. Para esse tipo de palavras, pode ser gerada uma stoplist, na qual in´ umeras stopwords s˜ ao armazenadas para que sejam desconside- radas ao se processar o texto. Dessa forma, a remo¸c˜ ao de stopwords minimiza conside- ravelmente a quantidade total de tokens usada para representar documentos. Portanto, o uso das stoplists auxilia no processo de minera¸c˜ ao de textos, removendo palavras das quais se sabe, a priori, que n˜ ao s˜ ao relevantes para caracterizar os textos.

2.1.5 Cortes de Palavras Baseado em Freq¨ uˆ encia

Outra forma de reduzir o n´ umero de atributos a ser considerado na tabela atributo-valor

´

e encontrar os tokens mais representativos dentre os existentes. A Lei de Zipf (Zipf, 1949) pode ser usada para encontrar termos considerados pouco representativos em uma deter- minada cole¸c˜ ao de documentos. Existem diversas maneiras de enunciar a Lei de Zipf para uma cole¸c˜ ao de documentos. A mais simples ´ e procedimental: pegar todos os termos na cole¸c˜ ao e contar o n´ umero de vezes que cada termo aparece. Se o histograma resultante for ordenado de forma decrescente, ou seja, o termo que ocorre mais freq¨ uentemente apa- rece primeiro, e assim por diante, ent˜ ao, a forma da curva ´ e a “curva de Zipf” para aquela cole¸c˜ ao de documentos. Para a maioria dos idiomas, se a curva de Zipf for plotada em uma escala logar´ıtmica, ela corresponde a uma reta com inclina¸c˜ ao de aproximadamente

−1.

Enquanto Zipf verificou sua lei utilizando jornais escritos em inglˆ es, Luhn usou a lei como uma hip´ otese para especificar dois pontos de corte para excluir tokens n˜ ao rele- vantes (Luhn, 1958) em uma cole¸c˜ ao de documentos. Os termos que excedem o corte superior s˜ ao os mais freq¨ uentes e s˜ ao considerados comuns por aparecer em qualquer tipo de documento, como as preposi¸c˜ oes, conjun¸c˜ oes e artigos. J´ a os termos abaixo do corte inferior s˜ ao considerados raros e, portanto, n˜ ao contribuem significativamente na discrimina¸c˜ ao dos documentos. Na Figura 1 ´ e mostrada a curva da Lei de Zipf (I) e os cortes de Luhn aplicados a Lei de Zipf (II). Nessa figura, o eixo cartesiano f representa a freq¨ uˆ encia das palavras e o eixo cartesiano r, r = 1, 2, 3, . . . , as palavras correspondentes, ordenadas segundo essa freq¨ uˆ encia. Por exemplo, para r = 1, f

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

(12)

Figura 1: A curva de Zipf e os cortes de Luhn

est´ a envolvida na determina¸c˜ ao dos pontos de corte, bem como na curva imagin´ aria, os quais devem ser estabelecidos por tentativa e erro (Van Rijsbergen, 1979). A Lei de Zipf n˜ ao ´ e restrita apenas aos tokens, mas tamb´ em a stems ou n-grama dos documentos.

2.1.6 N -grama

A ocorrˆ encia de palavras em seq¨ uˆ encia pode conter mais informa¸c˜ ao do que palavras isola- das. Desse modo, criando-se atributos pela uni˜ ao de duas ou mais palavras consecutivas, pode-se gerar atributos com um maior poder de predi¸c˜ ao. O n-grama

4

´ e exatamente essa jun¸c˜ ao de palavras, onde n representa o n´ umero de palavras que foram unidas para a gera¸c˜ ao de um atributo. Existe tamb´ em a abordagem de n-grama com utiliza¸c˜ ao de jane- las. Nesse caso, os tokens s˜ ao unidos n˜ ao s´ o com seu vizinho diretamente adjacente, mas tamb´ em com tokens mais distantes, respeitando o valor especificado na janela. Existem v´ arios n-grama que s˜ ao gerados por simples acaso, por´ em, aqueles que apresentam uma freq¨ uˆ encia maior podem ser muito ´ uteis para o aprendizado. Por exemplo, considerar as palavras S~ ao e Paulo individualmente pode agregar pouco conhecimento, pois S~ ao pode referir-se ao verbo ser e Paulo ´ e um nome pr´ oprio relativamente comum no Brasil. En- tretanto, o termo composto S~ ao Paulo pode agregar muito mais informa¸c˜ ao se o texto se refere ` a cidade ou estado de S˜ ao Paulo.

4E importante ressaltar que a palavra grama deve ser usada sempre no singular.´

(13)

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 valor dos atributos na tabela atributo-valor (Sebastiani, 2002). Para exemplificar o uso de algumas dessas medidas, brevemente descritas a seguir, ser˜ ao utilizados os tokens divert, cas, futebol, amig, jant e famil e sete documentos.

2.2.1 Boolean

Esta medida, definida pela Equa¸c˜ ao 1 atribui o valor um (verdadeiro) ao atributo se ele existe no documento e zero (falso) caso contr´ ario.

a

ij

=

1, se t

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 tokens considerados. Os valores dos atributos dos outros documentos 2 a 7, s˜ ao calculados da mesma maneira.

divert cas futebol amig jant famil

Documento 1 0 0 0 0 0 1

Documento 2 0 0 0 0 1 1

Documento 3 0 0 0 1 1 1

Documento 4 0 0 1 1 1 1

Documento 5 0 1 1 1 1 1

Documento 6 1 1 1 1 1 1

Documento 7 1 1 1 1 1 1

Tabela 2: Tabela atributo-valor utilizando a medida boolean.

2.2.2 Term Frequency

A representa¸c˜ ao bin´ aria nem sempre ´ e adequada, pois em muitos casos deve ser utilizada

uma medida levando em considera¸c˜ ao a freq¨ uˆ encia que um termo aparece no documento.

(14)

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) Na Tabela 3 ´ e exemplificada a utiliza¸c˜ ao da medida tf . Por exemplo, no Documento 3 o atributo jant recebe o valor 3 pois nesse documento existem exatamente 3 palavras que foram transformadas no token jant, de forma an´ aloga o atributo famil recebe o valor 2.

Os valores dos atributos dos outros documentos s˜ ao calculados da mesma maneira.

divert cas futebol amig jant famil

Documento 1 0 0 0 0 0 1

Documento 2 0 0 0 0 1 1

Documento 3 0 0 0 1 3 2

Documento 4 0 0 1 2 6 2

Documento 5 0 1 3 6 2 3

Documento 6 1 4 2 7 4 2

Documento 7 7 4 6 9 3 4

Tabela 3: Tabela atributo-valor utilizando a medida tf .

2.2.3 Term Frequency Linear

A medida tf considera a freq¨ uˆ encia dos termos em cada documento isoladamente sem levar em considera¸c˜ ao a freq¨ uˆ encia da cole¸c˜ ao de documentos. Para indicar a freq¨ uˆ encia com que um termo aparece na cole¸c˜ ao de documentos, um fator de pondera¸c˜ ao pode ser utilizado para que os termos que aparecem na maioria dos documentos tenham um peso de representa¸c˜ ao menor, i.e. s˜ ao menos discrimitativos. A tf-linear — Term Frequency Linear — (Matsubara et al., 2003) definida pelas Equa¸c˜ oes 3 e 4, utiliza um fator linear de pondera¸c˜ ao. Esse fator ´ e dado por um menos a freq¨ uˆ encia relativa do n´ umero de documentos em que o termo aparece no n´ umero total de documentos.

a

ij

= tf linear(t

j

, d

i

) = f req(t

j

, d

i

) × linear(t

j

) (3)

linear(t

j

) = 1 − d(t

j

)

N (4)

Na Tabela 4 ´ e mostrado o valor do tf-linear levando-se em considera¸c˜ ao a freq¨ uˆ encia dos

(15)

atributos mostrados na Tabela 3. Dessa maneira, o atributo divert que aparece em dois dos sete documentos existentes recebe o fator de pondera¸c˜ ao linear(divert) = 1 −

27

' 0, 714, e ´ e multiplicado pela sua freq¨ uˆ encia absoluta. Por exemplo no Documento 7, isso gera o valor tf linear(divert, Documento 7) = 7 × 0, 714 ' 5, 0. Os valores dos atributos dos outros documentos s˜ ao calculados da mesma maneira.

divert cas futebol amig jant famil

Documento 1 0,0 0,0 0,0 0,0 0,0 0,0

Documento 2 0,0 0,0 0,0 0,0 0,1 0,0

Documento 3 0,0 0,0 0,0 0,3 0,4 0,0

Documento 4 0,0 0,0 0,4 0,6 0,9 0,0

Documento 5 0,0 0,6 1,3 1,7 0,3 0,0

Documento 6 0,7 2,3 0,9 2,0 0,6 0,0

Documento 7 5,0 2,3 2,6 2,6 0,4 0,0

Tabela 4: Tabela atributo-valor utilizando a medida tf-linear .

2.2.4 Term Frequency - Inverse Document Frequency

A tf-idf — Term Frequency - Inverse Document Frequency — tamb´ em ´ e uma medida que pondera a freq¨ uˆ encia dos termos na cole¸c˜ ao de documentos, de tal maneira que termos que aparecem na maioria dos documentos tenham um peso de representa¸c˜ ao menor (Jones, 1972; Robertson, 2004). Nesse caso, o fator de pondera¸c˜ ao idf ´ e inversamente proporcio- nal ao logaritmo do n´ umero de documentos em que o termo aparece no n´ umero total N de documentos — Equa¸c˜ oes 5 e 6.

a

ij

= tf idf(t

j

, d

i

) = f req(t

j

, d

i

) × idf(t

j

) (5)

idf(t

j

) = log N

d(t

j

) (6)

Um exemplo da medida tf-idf ´ e apresentado na Tabela 5. O atributo futebol recebe

o fator de pondera¸c˜ ao idf (futebol) = log

74

' 0, 243 por aparecer em quatro dos sete

documentos existentes (Tabela 3). No Documento 5, o atributo futebol recebe o valor

de tf idf (futebol, Documento 5) = 3 × 0, 243 ' 0, 7. Os valores dos atributos dos outros

documentos s˜ ao calculados da mesma maneira.

(16)

divert cas futebol amig jant famil

Documento 1 0,0 0,0 0,0 0,0 0,0 0,0

Documento 2 0,0 0,0 0,0 0,0 0,1 0,0

Documento 3 0,0 0,0 0,0 0,1 0,2 0,0

Documento 4 0,0 0,0 0,2 0,3 0,4 0,0

Documento 5 0,0 0,4 0,7 0,9 0,1 0,0

Documento 6 0,5 1,5 0,5 1,0 0,3 0,0

Documento 7 3,8 1,5 1,5 1,3 0,2 0,0

Tabela 5: Tabela atributo-valor utilizando a medida tf-idf . 2.2.5 Suaviza¸ c˜ ao

Freq¨ uentemente, em algumas cole¸c˜ oes de documentos ´ e poss´ıvel que alguns tokens apare¸cam em todos os documentos da cole¸c˜ ao. Dessa maneira, os fatores de pondera¸c˜ ao idf e linear se tornam nulos, consequentemente, os valores desses tokens s˜ ao zerados para todos os documentos. Dessa maneira, perde-se informa¸c˜ ao pois esses tokens n˜ ao s˜ ao considerados na tabela atributo-valor. Uma solu¸c˜ ao para esse problema, ´ e fazer com que os fatores de pondera¸c˜ ao nunca sejam nulos, a partir de um crit´ erio de suaviza¸c˜ ao, denominado smooth . Esse crit´ erio de suaviza¸c˜ ao somente ´ e ativado quando o fator de pondera¸c˜ ao ´ e igual a zero. Quando ativado, ele altera o fator de pondera¸c˜ ao de forma a n˜ ao permitir que seja nulo.

Uma abordagem que pode ser utilizada para realizar a suaviza¸c˜ ao, ´ e aumentar tempo- rariamente em 10% o valor de N , que representa o n´ umero de documentos da cole¸c˜ ao.

Dessa maneira, o fator de pondera¸c˜ ao n˜ ao pode ser zero.

Suponha que o valor de idf para um termo que apare¸ca em todos os documentos ´ e log

100100

= 0. Com o fator de pondera¸c˜ ao igual a zero, o smooth ´ e ativado. O valor de N

´

e aumentado temporariamente para 110 obtendo assim log

110100

= 0, 04. Desse modo, os valores da coluna correspondente a esse termo ser˜ ao multiplicados por 0, 04, ao inv´ es de 0.

2.2.6 Normaliza¸ c˜ oes

Um aspecto importante que tamb´ em deve ser levado em considera¸c˜ ao ´ e o tamanho dos

documentos na cole¸c˜ ao. Freq¨ uentemente, o tamanho desses documentos ´ e muito diferente

e essa diferen¸ca de tamanho poderia estar melhor refletida nas medidas utilizadas. Por

exemplo, considere dois documentos que pertencem ` a mesma categoria com tamanhos

de 1 Kbyte e 100 Kbytes, respectivamente. Nesse caso, existir´ a uma grande diferen¸ca

na freq¨ uˆ encia dos termos em ambos os documentos. Uma poss´ıvel solu¸c˜ ao para esse

(17)

problema ´ e normalizar os valores da tabela atributo-valor. Essa normaliza¸c˜ ao pode ter seu foco nas colunas (ou atributos), ou nas linhas (ou documentos). Freq¨ uentemente, essa normaliza¸c˜ ao ´ e realizada utilizando a normaliza¸c˜ ao linear, ou normaliza¸c˜ ao quadr´ atica.

Em ambos casos, o m´ aximo valor de um atributo ´ e 1.

A normaliza¸c˜ ao linear ´ e definida pela Equa¸c˜ ao 7 quando utilizada a normaliza¸c˜ ao por linhas, e ´ e definida pela Equa¸c˜ ao 8 quando utilizada a normaliza¸c˜ ao por colunas.

N ormLinear(t

j

, d

i

) = a

ij

M AX

k=1..N

(a

kj

) (7)

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 utilizada a normaliza¸c˜ ao por linhas, e ´ e definida pela Equa¸c˜ ao 10 quando utilizada a normaliza¸c˜ ao por colunas.

N ormQuadratic(t

j

, d

i

) = a

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 s˜ ao mostrados os resultado da aplica¸c˜ ao da normaliza¸c˜ ao linear por linha e coluna respectivamente, para o conjunto de exemplos com a medida tf da Ta- bela 3. Nessa tabela, o valor m´ aximo atribu´ıdo a um atributo passa a ser 1, e os outros valores s˜ ao proporcionalmente reduzidos com rela¸c˜ ao ao maior valor desse atributo. J´ a nas Tabelas 8 e 9 observam-se exemplos da normaliza¸c˜ ao quadr´ atica por linha e coluna respectivamente, na qual a propor¸c˜ ao de redu¸c˜ ao dos valores ´ e realizada utilizando todos os valores do atributo.

divert cas futebol amig jant famil

Documento 1 0,0 0,0 0,0 0,0 0,0 0,3

Documento 2 0,0 0,0 0,0 0,0 0,2 0,3

Documento 3 0,0 0,0 0,0 0,1 0,5 0,5

Documento 4 0,0 0,0 0,2 0,2 1,0 0,5

Documento 5 0,0 0,3 0,5 0,7 0,3 0,8

Documento 6 0,1 1,0 0,3 0,8 0,7 0,5

Documento 7 1,0 1,0 1,0 1,0 0,5 1,0

Tabela 6: Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao linear por linha.

(18)

divert cas futebol amig jant famil

Documento 1 0,0 0,0 0,0 0,0 0,0 1,0

Documento 2 0,0 0,0 0,0 0,0 1,0 1,0

Documento 3 0,0 0,0 0,0 0,3 1,0 0,7

Documento 4 0,0 0,0 0,2 0,3 1,0 0,3

Documento 5 0,0 0,2 0,5 1,0 0,3 0,5

Documento 6 0,1 0,6 0,3 1,0 0,6 0,3

Documento 7 0,8 0,4 0,7 1,0 0,3 0,4

Tabela 7: Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao linear por coluna.

divert cas futebol amig jant famil

Documento 1 0,0 0,0 0,0 0,0 0,0 0,2

Documento 2 0,0 0,0 0,0 0,0 0,1 0,2

Documento 3 0,0 0,0 0,0 0,1 0,3 0,3

Documento 4 0,0 0,0 0,1 0,2 0,7 0,3

Documento 5 0,0 0,2 0,4 0,5 0,2 0,5

Documento 6 0,1 0,7 0,3 0,5 0,5 0,3

Documento 7 1,0* 0,7 0,8 0,7 0,3 0,6

Tabela 8: Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao quadr´ atica por linha.

*O valor real deste atributo ´e 0,9899, por´em arredondando para uma casa decimal temos o valor 1,0. ´E valido ressaltar que o valor 1,0 s´o se aplica quando otoken s´o aparece em um documento.

divert cas futebol amig jant famil

Documento 1 0,0 0,0 0,0 0,0 0,0 1,0

Documento 2 0,0 0,0 0,0 0,0 0,7 0,7

Documento 3 0,0 0,0 0,0 0,3 0,8 0,5

Documento 4 0,0 0,0 0,1 0,3 0,9 0,3

Documento 5 0,0 0,1 0,4 0,8 0,3 0,4

Documento 6 0,1 0,4 0,2 0,7 0,4 0,2

Documento 7 0,5 0,3 0,4 0,6 0,2 0,3

Tabela 9: Tabela atributo-valor utilizando a medida tf e a normaliza¸c˜ ao quadr´ atica por coluna.

3 Remodelagem e Reimplementa¸ c˜ ao do PreTexT

O PreTexT (Matsubara et al., 2003) ´ e uma ferramenta computacional que realiza o pr´ e-processamento de textos utilizando a abordagem bag of words e implementa todos os m´ etodos citados na Se¸c˜ ao 2 para calcular os valores dos atributos da tabela atributo- valor. A ferramenta foi desenvolvida utilizando o paradigma de orienta¸c˜ ao a objetos, na linguagem de programa¸c˜ ao Perl. Desde sua cria¸c˜ ao, o PreTexT vem sendo utili- zado em diversos trabalhos envolvendo minera¸c˜ ao de textos dentro e fora do ICMC-USP.

Ap´ os solicita¸c˜ oes de diversos usu´ arios, a ferramenta PreTexT passou por um processo

de remodelagem e reimplementa¸c˜ ao com o objetivo de suprir as necessidades adicionais

requisitadas pelos usu´ arios, as quais s˜ ao descritas neste trabalho.

(19)

Atualmente, a ferramenta possui as caracter´ısticas que est˜ ao ilustradas na Figura 2 e explicadas brevemente a seguir.

Figura 2: O novo funcionamento do PreTexT II

• O m´ odulo Start.pl lˆ e o arquivo de configura¸c˜ ao config.xml e, com base nos parˆ ametros especificados nesse arquivo, gerencia os demais m´ odulos.

• O m´ odulo Maid.pm ´ e respons´ avel pela limpeza do conjunto de documentos iniciais

{T

1

, T

2

, ..., T

N

}, remo¸c˜ ao das stopwords contidas no arquivo stoplist.xml e remo¸c˜ ao

de s´ımbolos n˜ ao relevantes a partir do arquivo simbol.xml. A gera¸c˜ ao dos stems ´ e

realizada por uma das classes que herdam da classe abstrata Stemmer.pm e cont´ em

(20)

o algoritmo de stemming para a linguagem solicitada. No PreTexT II , est˜ ao dispon´ıveis algoritmos de stemming para as l´ınguas portuguesa, espanhola e inglesa.

Como resultado, s˜ ao gerados os arquivos stemWdTF.all (stems ordenados por freq¨ uˆ encia) e stemWdST.all (stems ordenados por ordem alfab´ etica), os quais contem a contagem de stems e os tokens que foram transformados em cada stem , al´ em de um conjunto de arquivos “limpos” {E

1

, E

2

, ..., E

N

}, que s˜ ao utilizados como entrada para o m´ odulo NGram.pm.

• O m´ odulo NGram.pm ´ e respons´ avel pela gera¸c˜ ao dos n-grama e tem como sa´ıda os arquivos NGram.txt (contagem de n-grama em cada documento) e NGram.all (contagem de n-grama total do conjunto de documentos), com N= 1, 2, 3, . . . .

• O m´ odulo Report.pm recebe como entrada os arquivos .txt e .all, faz o proces- samento das taxonomias contidas no arquivo taxonomy caso exista e calcula as medidas e normaliza¸c˜ oes solicitadas pelo usu´ ario. O c´ alculo dessas medidas e nor- maliza¸c˜ oes ´ e realizado pelas classes que herdam das classes abstratas MeasureTF.pm e Normalize.pm, produzindo como resultado uma tabela atributo-valor no formato do DSX do Discover (Prati, 2003), arquivos .data e .names respectivamente, e alguns gr´ aficos.

Realizando o pr´ e-processamento de textos utilizando a nova vers˜ ao da ferramenta Pre- TexT ´ e poss´ıvel calcular uma grande quantidade de informa¸c˜ ao referente aos documentos processados, como os arquivos limpos, e todos os arquivos de sa´ıda com informa¸c˜ oes sobre tokens, stems e n-grama, assim como a tabela atributo-valor nos formatos requisitados pelo usu´ ario. A Tabela 10 mostra uma id´ eia geral das principais funcionalidades divididas por cada grande m´ odulo (Maid.pm, NGram.pm e Report.pm).

Segue uma descri¸c˜ ao detalhada dos arquivos de entrada e sa´ıda da ferramenta, bem como a forma de execu¸c˜ ao de cada m´ odulo separadamente.

3.1 O Arquivo de Configura¸ c˜ ao XML

Uma das principais formas de interagir com a ferramenta PreTexT II ´ e por meio de

seu arquivo de configura¸c˜ ao config.xml. O arquivo no formato XML foi escolhido para

que seja poss´ıvel que outras aplica¸c˜ oes possam interagir de maneira simples com o Pre-

TexT II . Esse arquivo consiste de quatro partes principais, como mostrado na Figura 3,

denominadas pretext, maid, ngram e report, nos quais s˜ ao definidas as configura¸c˜ oes

(21)

Maid.pm NGram.pm Report.pm limpeza dos documentos n-grama para qualquer

valor de n

gr´ aficos

remo¸c˜ ao de tags HTML cortes por freq¨ uˆ encia

tratamento de s´ımbolos cortes por documentos

stoplist XML taxonomia

stemming para por- tuguˆ es, inglˆ es e espanhol

*

normaliza¸c˜ oes por linha e coluna: quadr´ atica e li- near

*

cria¸c˜ ao dos arquivos

“limpos”

medidas: tf-idf , tf , tf- linear e boolean

*

tabela atributo-valor transposta

Tabela 10: Funcionalidades da nova vers˜ ao do PreTexT

*Essas funcionalidades podem ser facilmente estendidas.

gerais da ferramenta, e as configura¸c˜ oes dos trˆ es m´ odulos principais Maid.pm, NGram.pm, Report.pm, respectivamente.

1 <?xml version=” 1 . 0 ” encoding=” u t f−8”?>

2 <p r e t e x t lang=” p t ” d i r=” t e x t o s ”>

3 <maid>

4 </ maid>

5 <ngram>

6 <gram n=”1”/>

7 </ngram>

8 <r e p o r t>

9 <gram n=”1”/>

10 </ r e p o r t>

11 </ p r e t e x t>

Figura 3: Exemplo b´ asico do arquivo de configura¸c˜ ao config.xml

O PreTexT II cont´ em um conjunto de configura¸c˜ oes default, por´ em existem algumas op¸c˜ oes mandat´ orias que devem obrigatoriamente ser definidas pelo usu´ ario. Um exemplo de um arquivo com uma configura¸c˜ ao b´ asica ´ e mostrado na Figura 3. Todas as op¸c˜ oes de configura¸c˜ ao s˜ ao explicadas a seguir utilizando como exemplo o arquivo de configura¸c˜ ao descrito na Figura 4.

Op¸c˜ oes gerais do PreTexT – Figura 4, linhas 2 a 6, e 50:

• lang: especifica a linguagem em que os textos est˜ ao escritos. (Linha 3)

Valores iniciais poss´ıveis: pt para portuguˆ es, sp para espanhol ou en para inglˆ es.

Valor default pt.

(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)

• dir: especifica o diret´ orio que cont´ em a cole¸c˜ ao de textos. (Linha 4) Op¸c˜ ao mandat´ oria.

• log: especifica o nome do arquivo com o log de execu¸c˜ oes. (Linha 5) Valor default pretex.log.

• silence: especifica se o PreTexT II ir´ a ou n˜ ao exibir mensagens na tela durante a execu¸c˜ ao. (Linha 6)

Valores poss´ıveis: on para modo silencioso, off para modo de exibi¸c˜ ao de mensa- gens.

Valor default off.

Op¸c˜ oes do m´ odulo Maid.pm – Figura 4, linhas 8 a 17:

• number: habilita a limpeza de n´ umeros. (Linha 9)

• html: habilita a limpeza de tags html. (Linha 10)

• simbols: habilita a limpeza de caracteres n˜ ao alfa-num´ ericos. (Linha 11)

• stoplist: habilita limpeza de stopwords . (Linhas 12 a 15)

– dir: especifica o diret´ orio que cont´ em os stopfiles, arquivos que cont´ em as stoplists. (Linha 12)

Valor default stoplist.

– stopfile: especifica nome do stopfile . Essa op¸c˜ ao pode ser repetida quantas vezes for necess´ aria. (Linhas 13 e 14)

Op¸c˜ ao mandat´ oria caso stoplist esteja habilitado.

• stemming: habilita gera¸c˜ ao de stems para a l´ıngua especificada anteriormente. (Li- nha 16)

– dir: especifica o diret´ orio no qual ser˜ ao armazenados os arquivos contendo informa¸c˜ oes sobre os stems. (Linha 16)

Valor default steminfo.

Op¸c˜ oes do m´ odulo NGram.pm – Figura 4, linhas 19 a 23:

• dir: especifica o diret´ orio no qual ser˜ ao armazenados os arquivos contendo as informa¸c˜ oes sobre os n-grama. (Linha 19)

Valor default ngraminfo.

(24)

• gram: habilita um novo n-grama. Essa op¸c˜ ao pode ser repetida quantas vezes for necess´ aria. (Linhas 20 a 22)

Op¸c˜ ao mandat´ oria caso o m´ odulo NGram.pm esteja habilitado.

– n: especifica o valor de n. (Linhas 20 a 22) Op¸c˜ ao mandat´ oria para cada gram habilitado.

Op¸c˜ oes do m´ odulo Report.pm – Figura 4, linhas 25 a 49:

• ngramdir: especifica o diret´ orio no qual est˜ ao armazenados os arquivos contendo informa¸c˜ oes sobre os n-grama. (Linha 26)

Valor default caso o m´ odulo NGram.pm esteja habilitado ´ e o mesmo diret´ orio deter- minado em seus parametros. Caso o m´ odulo n˜ ao esteja habilitado, ser´ a ngraminfo.

• discover: especifica o diret´ orio no qual ser˜ ao armazenados os arquivos .data e .names. (Linha 27)

Valor default discover.

• graphics: especifica o diret´ orio no qual ser˜ ao armazenados os arquivos para cria¸c˜ ao de gr´ aficos. (Linha 28)

Valor default graphics.

• taxonomy: especifica nome do arquivo de taxonomias. (Linha 29) Valor default desabilitado.

• transpose: habilita a cria¸c˜ ao da tabela atributo-valor transposta. (Linha 30) Valores poss´ıveis: disabled e enabled.

Valor default disabled.

• gram: habilita um novo n-grama. Essa op¸c˜ ao pode ser repetida quantas vezes for necess´ aria. (Linhas 32 a 48)

Op¸c˜ ao mandat´ oria caso o m´ odulo Report.pm esteja habilitado.

– n: especifica o valor de n. (Linhas 32, 37 e 42) Op¸c˜ ao mandat´ oria para cada gram habilitado.

– max: se definido, na tabela atributo-valor s˜ ao carregados apenas os tokens que tiverem freq¨ uˆ encia absoluta menor ou igual ao valor definido. (Linha 33) Valor default desabilitado.

– min: se definido, na tabela atributo-valor s˜ ao carregados apenas os tokens que

tiverem freq¨ uˆ encia absoluta maior ou igual ao valor definido. (Linha 34)

Valor default desabilitado.

(25)

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

(26)

As op¸c˜ oes max, min, maxfiles, minfiles e std dev contida nas configura¸c˜ oes do m´ odulo Report.pm se referem ` a op¸c˜ oes de redu¸c˜ ao de dimensionalidade por cortes de tokens.

As op¸c˜ oes max e min definem manualmente os pontos superior e inferior dos cortes de Luhn. Todos os tokens cujas freq¨ uˆ encias absolutas se encontram fora do intervalo defi- nido pelo usu´ ario, levando em conta toda a cole¸c˜ ao de documentos, ser˜ ao ignorados no processo de cria¸c˜ ao da tabela atributo-valor. J´ a as op¸c˜ oes maxfiles e minfiles consi- deram a freq¨ uˆ encia de apari¸c˜ ao dos tokens nos documentos do conjunto de documentos, independente do n´ umero de vezes que cada token aparece dentro dos documentos. Dessa maneira, tokens que est˜ ao fora do intervalo manualmente definido pelo usu´ ario ser˜ ao tamb´ em ignorados na cria¸c˜ ao da tabela atributo-valor.

A op¸c˜ ao std dev, por sua vez, faz cortes nos tokens de acordo com o desvio padr˜ ao sobre o rank dos tokens. Esse rank ´ e constru´ıdo de maneira que tokens com a mesma freq¨ uˆ encia pertencem ao mesmo ranking. O importante desse rank ´ e o n´ umero de coloca¸c˜ oes dife- rentes. Os rankings s˜ ao definidos pela freq¨ uˆ encia absoluta do token, ou seja, os tokens com maior freq¨ uˆ encia absoluta receber˜ ao os primeiros rankings, e os com menor receber˜ ao os ´ ultimos rankings. Na Tabela 11 (a) ´ e exemplificada as freq¨ uˆ encias dos tokens de um conjunto de documentos. A partir dessas freq¨ uˆ encias, na Tabela 11 (b) s˜ ao mostrados os ranks gerados.

stem freq

amig 5

trabalh 5 divert 5

cas 7

futebol 12

amig 13

jant 13

famil 17 (a)

rank freq

1 17

2 13

3 12

4 7

5 5

(b)

Tabela 11: A freq¨ uˆ encia dos tokens (a) gera o rank de tokens (b)

A partir dos ranks exemplificados na Figura 11 (b), ´ e calculado o desvio padr˜ ao e a m´ edia dos valores, obtendo-se no exemplo considerado, 1.58 e 2.5, respectivamente

11

. Supondo que seja definido no arquivo de configura¸c˜ ao a op¸c˜ ao std dev="0.8", o intervalo do rank

´ e:

[2.5 − 1.58 × 0.8, 2.5 + 1.58 × 0.8] = [1.73, 4.26]

Por somente existir ranks inteiros, o intervalo ´ e arredondado considerando o n´ umero inteiro superior, para [2, 4] e convertido novamente para a freq¨ uˆ encia do token para que

11Por conven¸c˜ao, noPreTexT IIsempre ´e utilizado o ponto para separar as casas decimais.

(27)

possa ser realizado o corte por freq¨ uˆ encia. O intervalo final seria [7, 13], ou seja, tokens com freq¨ uˆ encia menor que 7 e maior que 13 s˜ ao ignorados.

3.2 O m´ odulo Maid.pm

Esse m´ odulo ´ e respons´ avel pela limpeza dos documentos iniciais, remo¸c˜ ao das stopwords , remo¸c˜ ao de s´ımbolos n˜ ao relevantes e gera¸c˜ ao dos stems utilizando o algoritmo de stem- ming da linguagem solicitada. Como resultado, s˜ ao gerados os arquivos stemWdTF.all (stems ordenados por freq¨ uˆ encia) e stemWdST.all (stems ordenados por ordem al- fab´ etica) que guardam a contagem de stems e os tokens que foram transformados em cada stem , e um conjunto de arquivos “limpos”. Para sua execu¸c˜ ao, s˜ ao necess´ arios alguns arquivos explicados a seguir.

3.2.1 Arquivos de Entrada

Os arquivos de entrada do m´ odulo Maid.pm consistem de:

• arquivo de configura¸c˜ ao config.xml: o m´ odulo Maid.pm consulta as configura¸c˜ oes gerais do PreTexT II bem como as informa¸c˜ oes espec´ıficas do seu m´ odulo.

• arquivo de s´ımbolos simbols.xml: o PreTexT II possui a facilidade de permitir ao usu´ ario a escolha de s´ımbolos que n˜ ao acrescentam informa¸c˜ ao relevante ao conjunto de textos, por meio do arquivo simbols.xml. Nesse arquivo, o usu´ ario deve definir quais s´ımbolos n˜ ao alfa-num´ ericos ser˜ ao eliminados dos textos, e quais dentre eles representam divisores de frases, com o objetivo de que n˜ ao sejam gerados n-grama com tokens de frases diferentes.

A forma de constru¸c˜ ao do arquivo simbols.xml ´ e apresentada a seguir, utilizando o exemplo na Figura 5.

– clearall: caso n˜ ao seja necess´ aria a escolha de s´ımbolos espec´ıficos, o Pre- TexT II tem a op¸c˜ ao de limpar todos os s´ımbolos n˜ ao alfa-num´ ericos do conjunto de documentos. Para isso, s˜ ao utilizados s´ımbolos default para serem considerados como divisores de frases. Caso o usu´ ario deseje especificar os s´ımbolos, n˜ ao deve habilitar essa op¸c˜ ao. (Linha 2)

Valores poss´ıveis: true e false.

Valor default true.

(28)

1 <?xml version=” 1 . 0 ” encoding=” u t f−8”?>

2 <s i m b o l s c l e a r a l l=” f a l s e ”>

3 <s i m b o l break=” t r u e ”>.</ s i m b o l>

4 <s i m b o l break=” t r u e ”>,</ s i m b o l>

5 <s i m b o l break=” t r u e ”>!</ s i m b o l>

6 <s i m b o l break=” t r u e ”>?</ s i m b o l>

7 <s i m b o l break=” f a l s e ”>−</ s i m b o l>

8 <s i m b o l break=” f a l s e ”>$</ s i m b o l>

9 <s i m b o l break=” f a l s e ”>=</ s i m b o l>

10 <s i m b o l break=” f a l s e ”>˜</ s i m b o l>

11 <s i m b o l>@</ s i m b o l>

12 <s i m b o l>#</ s i m b o l>

13 </ s i m b o l s>

Figura 5: Exemplo do arquivo de s´ımbolos simbols.xml

– simbol: especifica um novo s´ımbolo a ser removido. Op¸c˜ ao pode ser repetida quantas vezes for necess´ aria. (Linhas 3 a 12)

∗ break: habilite essa op¸c˜ ao caso o s´ımbolo a ser removido seja um divisor de frases. (Linhas 3 a 10)

Valores poss´ıveis: true e false.

Valor default false.

Devido as regras de constru¸c˜ ao de XML, alguns s´ımbolos n˜ ao podem ser escritos por extenso. Tais s´ımbolos necessitam de uma codifica¸c˜ ao especial para que possam ser removidos do conjunto de textos. Essas codifica¸c˜ oes s˜ ao mostradas na Tabela 12.

Codifica¸c˜ao S´ımbolo

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

A op¸c˜ ao stopword pode ser repetida quantas vezes for necess´ aria para que sejam

inseridos tantas stopwords quanto o usu´ ario desejar. N˜ ao ´ e necess´ ario que todas as

stopwords estejam em um ´ unico arquivo stopfile . O PreTexT II pode carregar

v´ arios stopfiles, por´ em, para facilitar o entendimento de cada stopfile , ´ e aconselh´ avel

que sejam agrupados stopwords por temas de interesse: por exemplo stopfile geral

em portuguˆ es; stopfile de esportes; stopfile geral em inglˆ es.

(29)

1 <?xml version=” 1 . 0 ” encoding=” u t f−8”?>

2 <s t o p f i l e>

3 <stopword>a b a i x o</ stopword>

4 <stopword>a c a s o</ stopword>

5 <stopword>a c e r c a</ stopword>

6 <stopword>acima</ stopword>

7 <stopword>ademais</ stopword>

8 </ s t o p f i l e>

Figura 6: Exemplo de um stopfile

• conjunto de documentos: os documentos texto a serem processados podem estar organizados de duas maneiras, uma para documentos rotulados, e outra para docu- mentos sem r´ otulo, como explicado a seguir.

1. Documentos n˜ ao rotulados: cria-se um diret´ orio contendo todos os documentos sem divis˜ ao de subdiret´ orios.

2. Documentos rotulados: cria-se um diret´ orio contendo subdiret´ orios, nos quais cada um deles cont´ em os documentos de uma mesma classe.

Para exemplificar, considere os arquivos basquete.txt, futebol.txt, elei-

¸

c~ oes.txt e minist´ erio.txt, nos quais os dois primeiros s˜ ao da classe esporte e os dois ´ ultimos da classe pol´ ıtica. Para que o PreTexT II gere automa- ticamente as classes dos documentos, deve ser constru´ıdo uma estrutura de diret´ orios como ilustrado na Figura 7.

diretorio\

esporte\

basquete.txt futebol.txt pol´ıtica\

elei¸c~oes.txt minist´erio.txt

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 ar- quivos de entrada do pr´ oximo m´ odulo NGram.pm, e outros arquivos que fornecem diversas informa¸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

Referências

Documentos relacionados

Cheliped carpus with 12–18 simple dorsal setae; propodus bearing a large, with brown-bordered dorsal crest (V. glandurus), or a distal margin curved and pointed

O presente trabalho tem a pretensão de começar um debate acerca da avalia- ção nas universidades, com base em pesquisa realizada em uma IES e entrevistas com docentes da mesma.

Esta realidade exige uma abordagem baseada mais numa engenharia de segu- rança do que na regulamentação prescritiva existente para estes CUA [7], pelo que as medidas de segurança

No código abaixo, foi atribuída a string “power” à variável do tipo string my_probe, que será usada como sonda para busca na string atribuída à variável my_string.. O

Realizar a manipulação, o armazenamento e o processamento dessa massa enorme de dados utilizando os bancos de dados relacionais se mostrou ineficiente, pois o

Os resultados deste trabalho mostram que o tempo médio de jejum realizado é superior ao prescrito, sendo aqueles que realizam a operação no período da tarde foram submetidos a

História Protótipo Casos de Teste Refinamento Planning Build Geração de Massa Testes Homologação Responsável: time de QA Entradas: • Histórias; • Protótipos; • Casos

3 O presente artigo tem como objetivo expor as melhorias nas praticas e ferramentas de recrutamento e seleção, visando explorar o capital intelectual para