UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO UMA FERRAMENTA DE MINERAÇÃO DE TEXTO PARA BUSCA DE JURISPRUDÊNCIA NO TJSC Cirio Vieira Dra. Anita Maria da Rocha Fernandes Orientadora São José (SC), junho/2015 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO UMA FERRAMENTA DE MINERAÇÃO DE TEXTO PARA BUSCA DE JURISPRUDÊNCIA NO TJSC Cirio Vieira São José (SC), junho/2015 Orientadora: Anita Maria da Rocha Fernandes, Dra. Área de Concentração: Inteligência Artificial Linha de Pesquisa: Descoberta de Conhecimento Palavras-chave: Mineração de texto, Jurisprudência, Código Penal. Número de páginas: 100 RESUMO Este trabalho tem por objetivo suprir uma pequena parte da necessidade dos profissionais do direito com relação à busca de jurisprudência. Assim, faz uso do processo de mineração de textos para buscar jurisprudência relacionada à “parte especial” (artigos 121 a 128) do código penal, diretamente dos Diários da Justiça Eletrônicos catarinenses. Quando se trabalha com pesquisa em dados textuais são utilizados métodos de busca baseados em análises gramaticais e léxicas. Assim, a mineração de texto tem a capacidade de descobrir conhecimento relevante por meio de palavras ou frases similares entre os documentos ou textos no mesmo documento. As atividades desenvolvidas neste trabalho estão concentradas em pesquisa, análise, implementação e na comparação de dados. Após a fundamentação teórica realizada por meio de pesquisa bibliográfica, foi feita a análise e planejamento para o desenvolvimento. Na primeira etapa da implementação foi desenvolvido um webcrawler para coletar os documentos em formato PDF, de onde foram extraídos os textos relativos à jurisprudência pesquisada. Na etapa seguinte foi realizado o pré-processamento dos documentos, convertendo o documento do formato PDF para TXT sem formatação, e após, foi feita a decomposição do texto em tokens, o qual foi categorizado para, então, ser processado com o auxílio da ferramenta de mineração de textos Weka. No processo de descoberta de conhecimento foi utilizado o algoritmo de Naïve Bayes, buscando identificar os textos que possam suprir as necessidades dos profissionais do direito com relação à jurisprudência buscada. Os resultados foram analisados e avaliados conforme parâmetros definidos em conjunto com especialista da área do direito e foram apresentados ao usuário final em forma de uma lista classificada por ordem de relevância segundo parâmetros do especialista. ABSTRACT This work aims to fill a small part of the need for legal professionals regarding the search of jurisprudence. So make use of the text mining process to seek jurisprudence of "special part" (Articles 121 to 128) of the penal code, directly from the Electronic Journals of Justice catarinense. When working with research in textual data search methods based on grammatical and lexical analysis are used. Thus, text mining has the ability to discover relevant knowledge through similar words or phrases between documents or text in the same document. The activities developed in this paper are focused on researching, analyzing, implementation and data compararison. After the theoretical foundation conducted through literature research, analysis and development planning was done. The first step in implementing one webcrawler was developed to collect the documents in PDF format, from which were extracted the texts on jurisprudence searched. In the next step the pre-processing of the documents is performed by converting the PDF document to TXT plain after the decomposition of the text was made into tokens, wich was categorized, to then, be processed with the help of text mining tool Weka. In the knowledge discovery process of Naïve Bayes algorithm was used, seeking to identify the texts that can meet the needs of legal practitioners in relation to jurisprudence sought. The results were analyzed and evaluated according to the parameters defined in conjunction with the specialist area of law and, are presented to the end user in form of a list sorted in order of relevance within the parameters of the expert. LISTA DE TABELAS Tabela 1. Apresenta os dados formatados do exemplo descrito. .......................................................34 Tabela 2. Dados comparativos entre os trabalhos apresentados. .......................................................53 Tabela 3. Lista de DJEs selecionados para realização do experimento. ............................................69 Tabela 4. Tabela comparativa entre buscas manuais e ferramenta desenvolvida. ............................. 72 iii LISTA DE ABREVIATURAS E SIGLAS AGRG ART CNJ CPC CPP DC DDI DJE DW FLS HD IDF IHTC JSON KDD KDT MT P. EX. PDF PLN RESP RI RSLP SGBD STJ TCC TGT TJSC UFSC UNIVALI URL XML Agravo Regimental Artigo Conselho Nacional de Justiça Código de Processo Civil Código de Processo Penal Descoberta de Conhecimento Diretoria de Documentação e Informações Diário da Justiça Eletrônico Data Warehouse Folhas Hard Disck Inverse Document Frenquency Incremental Hierarchical Term Clustering JavaScript Object Notation Knonwledge Discovery in Database (Descoberta de Conhecimento em Banco de dados) Knonwledge Discovery in Text (Descoberta de Conhecimento em Textos) Mineração de texto Por Exemplo Portable Document Format (Formato de Documento Portável) Processamento de Linguagem Natural Resposta Recuperação de Informação Removedor de Sufixos da Língua Portuguesa Sistemas de Gerenciamento de Banco de Dados Superior Tribunal de Justiça Trabalho de Conclusão de Curso Teoria Geral da Terminologia Tribunal de Justiça de Santa Catarina Universidade Federal de Santa Catarina Universidade do Vale do Itajaí Uniform Resource Locator eXtensible Markup Language SUMÁRIO 1 INTRODUÇÃO ...................................................................................... 7 1.1 PROBLEMA DE PESQUISA ............................................................................ 8 1.1.1. Solução Proposta ............................................................................................. 10 1.1.2. Delimitação de Escopo .................................................................................... 10 1.1.3. Justificativa ...................................................................................................... 11 1.2 OBJETIVOS ...................................................................................................... 12 1.2.1 Objetivo Geral ................................................................................................. 12 1.2.2 Objetivos Específicos ...................................................................................... 12 1.3 METODOLOGIA.............................................................................................. 13 1.3.1 Metodologia da Pesquisa ................................................................................ 13 1.3.2 Procedimentos Metodológicos ....................................................................... 14 2 FUNDAMENTAÇÃO TEÓRICA ...................................................... 16 2.1 DESCOBERTA DE CONHECIMENTO........................................................ 16 2.2 MINERAÇÃO DE DADOS .............................................................................. 19 2.3 MINERAÇÃO DE TEXTO .............................................................................. 20 2.3.1 Coleta de Textos .............................................................................................. 22 2.3.2 Pré-processamento .......................................................................................... 23 2.3.3 Extração de Padrões ....................................................................................... 25 2.3.4 Análise e Avaliação dos Resultados ............................................................... 26 2.3.5 Ontologia .......................................................................................................... 27 2.4 ALGORITMOS DE MINERAÇÃO DE TEXTO .......................................... 28 2.4.1 Stemmers ou lematização ............................................................................... 29 2.4.2 Descoberta de Conhecimento em Texto ........................................................ 31 2.5 CENÁRIO NACIONAL DA JUSTIÇA BRASILEIRA ................................ 35 2.5.1 Justiça Catarinense ......................................................................................... 36 2.5.2 Área Penal ........................................................................................................ 36 2.5.3 Jurisprudência................................................................................................. 37 2.6 TERMINOLOGIA ............................................................................................ 38 2.6.1 Linguagem Especializada ............................................................................... 38 3 TRABALHOS RELACIONADOS ..................................................... 41 3.1 AGRUPAMENTO E CATEGORIZAÇÃO DE DOCUMENTOS JURÍDICOS ............................................................................................................... 41 3.2 UMA ARQUITETURA PARA DESCOBERTA DE CONHECIMENTO A PARTIR DE BASES TEXTUAIS ............................................................................ 43 3.3 APRENDIZADO NÃO SUPERVISIONADO DE HIERARQUIAS DE TÓPICOS A PARTIR DE COLEÇÕES TEXTUAIS DINÂMICAS .................. 48 3.4 ANÁLISE COMPARATIVA ........................................................................... 51 3.5 CONSIDERAÇÕES SOBRE OS TRABALHOS RELACIONADOS ......... 54 4 DESENVOLVIMENTO ...................................................................... 56 4.1 VISÃO GERAL DA APLICAÇÃO ................................................................. 56 4.2 DEFINIÇÃO DA ONTOLOGIA ..................................................................... 58 4.3 ANÁLISE DE REQUISITOS ........................................................................... 59 4.3.1 Requisitos Funcionais ..................................................................................... 60 4.3.2 Requisitos não Funcionais .............................................................................. 61 4.3.3 Regras de Negócio ........................................................................................... 61 4.4 MODELAGEM DA APLICAÇÃO ................................................................. 62 4.5 DETALHAMENTO DO DESENVOLVIMENTO ........................................ 64 4.6 DESCRIÇÃO DO EXPERIMENTO ............................................................... 68 4.7 RESULTADOS .................................................................................................. 69 5 CONCLUSÕES .................................................................................... 74 5.1 TRABALHOS FUTUROS ................................................................................ 75 REFERÊNCIAS BIBLIOGRÁFICAS ................................................... 76 APÊNDICE 1 - ONTOLOGIA VERSÃO FINAL............................... 82 APÊNDICE 2 - ONTOLOGIA VERSÃO INICIAL ........................... 85 APÊNDICE 3 - TESAUROS.................................................................. 89 APÊNDICE 4 - CÓDIGO PENAL ART. 121 A 128 ........................... 92 APÊNDICE 5 - CÓDIGO FONTE DO WEBCRAWLER ................. 95 APÊNDICE 6 - CÓDIGO FONTE REMOÇÃO DE STOP WORDS 98 APÊNDICE 7 - CÓDIGO FONTE DA STEMMING (Lematização) 99 vi 1 INTRODUÇÃO Segundo o Conselho Nacional de Justiça (CNJ), o número de processos propostos na justiça brasileira tem aumentado. Apesar de os juízes terem dado decisão sobre 17,8 milhões de ações ao longo do ano de 2013, o número de processos que passaram a tramitar no mesmo período em 2014 foi ainda maior, cerca de 19,4 milhões. Nos últimos quatro anos o número de processos em trâmite teve um aumento de 10,6% (CNJ, 2014). Cada processo que recebe uma decisão final torna-se um documento de referência, seja para tomada de nova decisão ou para embasamento de uma defesa, pois, é uma decisão legal, dada por um magistrado do Direito, amparada pela aplicação das leis e interpretada de acordo com o momento socioeconômico em que a sociedade se encontra (NUNES, 2007). Um dos principais meios de divulgação dessas decisões é a internet. Todos os dias úteis os tribunais de justiça brasileiros publicam os diários oficiais, os quais, além de outras informações, apresentam as decisões judiciais. No site do Tribunal de Justiça de Santa Catarina (TJSC) é possível encontrar os Diários da Justiça Eletrônicos a partir do ano de 2003. O site oferece ainda uma ferramenta de busca por jurisprudência de acesso público na qual os profissionais do Direito podem buscar dados para embasar suas teses e defesas (TJSC, 2014). A jurisprudência catarinense é composta pelos seguintes documentos: Acórdãos produzidos pelo Tribunal de Justiça e Turmas Recursais, Despachos das Vice-presidências, Decisões Monocráticas, Enunciados, Diretriz, Súmulas, Revista da Jurisprudência, Informativos da Jurisprudência e Informativos da Presidência (TJSC, 2014). Entretanto, as informações podem apresentar-se desatualizadas na base de dados onde a ferramenta realiza a busca. Segundo o TJSC (2014), decisões monocráticas são incluídas para pesquisa após 15 dias da sua publicação, acórdãos das Turmas de Recursos são atualizados pela Diretoria de Documentação e Informações (DDI), sem um prazo específico para atualização. A revista da jurisprudência, enunciados, diretrizes e súmulas não possuem uma periodicidade fixa. Esses documentos são apresentados ainda de forma não estruturada, em linguagem natural, podendo ser um grande desafio a recuperação rápida e eficaz de informações a partir de uma extensa fonte de dados, e ser necessárias várias consultas até que sejam encontrados os dados desejados. A falta de uma ferramenta de busca mais adequada para a pesquisa de jurisprudência pode afetar de forma significativa o desempenho e efetividade do trabalho dos profissionais do Direito, podendo aumentar o tempo e o custo necessários para elaboração de uma tese ou defesa. Destaca-se ainda que, o Diário da Justiça Eletrônico passou a ser o órgão oficial de divulgação dos atos processuais e administrativos do Poder Judiciário de Santa Catarina, substituindo a versão impressa por força da Resolução número 8/2006 (TJSC, 2014). Sendo assim, a mineração de textos pode ser uma alternativa para transformação desses documentos em conhecimento útil, pois, atua na busca por padrões, tendências e regularidades de textos nos documentos escritos em linguagem natural, tendo como produto final a extração de informações relevantes (RAHMAN, 2011). Neste sentido, o trabalho proposto procurou desenvolver uma ferramenta de mineração de textos para auxiliar os profissionais do Direito na busca por jurisprudência. Com a utilização do processo de mineração de texto tentou-se reduzir de forma qualitativa o resultado apresentado ao usuário final. A ferramenta utiliza como base de dados textuais os Diários da Justiça Eletrônicos publicados no site do TJSC, mais especificamente os textos referentes à “parte especial” do código penal (art. 121 a 128) que tratam dos crimes contra a pessoa. 1.1 PROBLEMA DE PESQUISA Os profissionais do Direito buscam solucionar demandas judiciais que se caracterizam, na maioria das vezes, como conflitos de interesse entre pessoas. Porém, a sociedade está sempre se modificando e o legislador precisa estar atento a essas mudanças. Neste sentido, estudar a jurisprudência existente é uma das tarefas que eles executam para poder fundamentar suas testes e defesas. O uso da jurisprudência pelos profissionais do Direito tem sido uma importante fonte jurídica no Direito brasileiro no momento da aplicação da lei, a qual pode contribuir para analisar o caso em discussão à realidade dos tempos atuais. Essa fonte jurídica, chamada jurisprudência é o conjunto de decisões uniformes e constantes dos juízes e dos tribunais, resultante da aplicação de normas a casos semelhantes, constituindo uma norma geral aplicável a todas as hipóteses similares e idênticas (DINIZ, 1993). 8 Com o avanço tecnológico de hardware e software, um dos meios utilizados para disponibilizar e acessar a jurisprudência tem sido a internet. Os tribunais colocam à disposição em seus sites ferramentas para auxiliar a busca jurisprudencial. Conhecer as ferramentas de pesquisa facilita de forma notória a vida do profissional, especialmente daqueles que precisam ingressar na Justiça para pleitear uma causa ou que precisam da jurisprudência no dia a dia. O Superior Tribunal de Justiça (STJ) registrou 93 milhões de consultas em sua página de pesquisa no ano 2008 e contabilizou 300 mil acessos diários, provenientes de todos os cantos do mundo (STJ, 2009 ). Porém, as ferramentas atualmente disponibilizadas pelos tribunais podem retornar um conjunto muito grande de dados, podendo apresentar resultados irrelevantes, considerando os parâmetros de busca informados pelos usuários da ferramenta. Observa-se ainda uma possível demora na divulgação da jurisprudência nos meios normais disponibilizados pelos tribunais (FURQUIM, 2011). O site do TJSC apresenta uma das ferramentas de pesquisa por jurisprudência mais completa. A busca padrão procura por todas as palavras digitadas, mas, o usuário ainda pode pesquisar por frase completa quando utilizar aspas duplas para delimitar a frase, pode excluir palavras não desejadas da sua pesquisa por meio de um conectivo “$nao”, pode utilizar o operador lógico “ou” adicionando o conectivo “$ou”, pode determinar a proximidade entre palavras utilizando o conectivo “$proxN” quando duas ou mais palavras estão próximas uma da outra separadas apenas por “N” palavras (TJSC, 2014). Além disso, é possível ainda escolher alguns parâmetros de busca, como por exemplo: relator, comarca, órgão julgador, entre outros. Contudo, as ferramentas de busca comumente oferecem condições e parâmetros de buscas pré-estabelecidos, inibindo o usuário de realizar uma pesquisa mais adequada as suas necessidades. Além disso, a ferramenta disponibilizada pelo TJSC não apresenta a data de publicação referente à jurisprudência gerada e nem a data da sua publicação, informações consideradas relevantes, tanto que na própria página de ajuda o TJSC informa que estas informações estarão disponíveis em versões futuras (TJSC, 2014). Os métodos tradicionais de busca e recuperação de jurisprudência podem ser inadequados ou contraproducentes, podendo haver a necessidade de uma adaptação destes métodos. Destaca-se ainda, que os Diários da Justiça Eletrônicos publicados diariamente nos sites dos tribunais contemplam todos os documentos que dão corpo à jurisprudência, porém, as ferramentas existentes não atuam sobre essa fonte de dados e uma consulta manual poderia levar horas, pois, são 9 documentos muito extensos, apresentando geralmente mais de mil páginas de texto, contendo uma série de decisões judiciais, entre outras informações. Observa-se a ausência de uma ferramenta de busca que atue diretamente sobre os Diários da Justiça Eletrônicos. Sendo assim, é preciso lidar com informações que, na maioria das vezes, não possuem um esquema para descrever a sua estrutura. Ao contrário do que acontece com os “bem-comportados” dados estruturados em tabelas relacionais, os dados textuais normalmente não estão organizados em campos, cada qual com seu tipo, tamanho e faixas de valores possíveis. Logo, se comparada com a informação gravada em Sistemas de Gerenciamento de Banco de Dados (SGBD) relacionais, a informação em formato texto é bem mais difícil de coletar, tratar, analisar e sumarizar. 1.1.1. Solução Proposta Este trabalho propôs o desenvolvimento de uma ferramenta web para busca de jurisprudência nos Diários da Justiça Eletrônicos com o uso dos processos de mineração de texto, visando reduzir resultados ambíguos ou fora do contexto da busca, tentando contribuindo para auxiliar os profissionais do Direito a encontrar subsídios necessários na elaboração de teses e defesas. Sendo assim, a elaboração de um dicionário de termos jurídicos da área do Direito Penal, mais especificamente a “parte especial” (artigos 121 a 128) do código penal, juntamente com um especialista da área do Direito, foi utilizado para implementação da solução. Além de atribuir significado ao dado, sempre que possível, adotar uma terminologia padrão torna a informação computável (BARBOSA, 2013). Sendo assim, a solução proposta buscou responder a seguinte questão: Como os processos de mineração de texto podem auxiliar os profissionais do Direito na elaboração de teses e defesas? 1.1.2. Delimitação de Escopo O trabalho proposto visou atender a uma pequena parte da jurisprudência catarinense, mais especificamente a “parte especial” (artigos 121 a 128) do Código Penal Brasileiro, que trata dos crimes contra a pessoa e contra a vida, código mostrado neste trabalho, no Anexo D. 10 Foi desenvolvida uma ferramenta web onde o usuário pode informar uma data ou intervalo de datas e os termos referentes à jurisprudência que deseja encontrar, com isso ferramenta, executando os processos de mineração de texto e com o auxílio do dicionário de termos jurídicos, realiza a pesquisa nos Diários da Justiça Eletrônicos disponibilizados no site do TJSC em formato PDF, tentando encontrar documentos textuais referente à jurisprudência pesquisada. Após a pesquisa, a ferramenta retorna um conjunto de links para os documentos onde foram identificados textos relacionados aos termos de busca e período informado pelo usuário. Podem ser usuários da ferramenta de busca, profissionais do Direito, dentre eles, magistrados, advogados, peritos e estagiários. A ferramenta pode auxiliar ainda estudantes ou qualquer pessoa interessada no conjunto de textos tratado neste trabalho. A ferramenta é de acesso livre, porém, sendo exigido um cadastro prévio no qual o usuário deve informar um e-mail e uma senha. Pela restrição de tempo a ferramenta foi limitada a uma pequena parte do código penal, visando ser uma prova de conceito com possibilidade de expansão para todos os artigos do Código Penal Brasileiro, com ampliação do dicionário e ontologia aplicada. 1.1.3. Justificativa Sabe-se que o volume de informações textuais relativos à jurisprudência é muito grande. Neste sentido, mecanismos automáticos de processamento contribuem para tornar o processo de descoberta de conhecimento mais eficiente. Assim, a automatização deste processo, principalmente por meio da utilização de softwares e computadores pode ser considerada uma necessidade. As ferramentas de busca existentes atualmente utilizam palavras-chave como base, retornando essencialmente uma lista de documentos relevantes, geralmente muito extensa, ordenados pela proporção em que esses termos são encontrados em determinado documento. Os documentos da lista frequentemente precisam ser lidos e analisados pelo usuário para que seja possível extrair conhecimento. Quando se trabalha com pesquisa em dados textuais são utilizados métodos de busca baseados em análises gramaticais e léxicas. Assim, a mineração de texto tem a capacidade de descobrir conhecimento relevante por meio de palavras ou frases similares entre os documentos ou textos no mesmo documento. Esse trabalho pode ser realizado por humanos, contudo o desempenho de sistemas automatizados é extremamente superior (ARANHA, 2007). É possível ainda utilizar 11 técnicas de visualização de dados na mineração de texto, possibilitando mostrar conceitos-chave e relações entre palavras e ideias. O processo de mineração de textos dispõe de uma série de técnicas e algoritmos já utilizados em soluções das mais diversas áreas do conhecimento humano (ARANHA, 2007; BARBOSA, 2013; PASSINI, 2012; RAHMAN, 2011; RAMOS, BRASCHER, 2009), que possibilitam o aproveitamento do conhecimento já conquistado e compartilhado para a elaboração do presente trabalho. Observa-se que este trabalho, baseado no conhecimento disponibilizado, pode apresentar sua parcela de contribuição ao aplicar a mineração de texto à área jurídica, área que vem buscando o auxílio tecnológico para execução dos seus trabalhos. Um exemplo disso é o fato que as despesas com informática no TJSC, as quais cresceram 124% desde 2009 (CNJ, 2013). Atualmente já é comum acompanhar os andamentos processuais através de consultas realizadas pela internet. A solução proposta neste trabalho pode atender aos profissionais do Direito interessados nos textos jurisprudenciais relativos à área do Direito Penal, que trata dos crimes contra a pessoa e contra a vida, auxiliando-os por meio do fornecimento de conhecimento extraídos dos textos processados. 1.2 OBJETIVOS 1.2.1 Objetivo Geral Desenvolver uma ferramenta de busca de jurisprudência catarinense, em texto livre, relativa à “parte especial” (artigos 121 a 128) do Código Penal Brasileiro, utilizando mineração de texto. 1.2.2 Objetivos Específicos São objetivos específicos deste trabalho: 1. Desenvolver aplicação para a coleta e conversão dos dados textuais em formato de texto simples; 2. Aplicar técnicas e algoritmos para tratamento dos textos coletados; 3. Implementar o algoritmo de extração de padrões; e 12 4. Analisar e avaliar os resultados. 1.3 METODOLOGIA A metodologia adotada baseia-se nos objetivos propostos, ou seja, o trabalho consiste na aplicação de técnicas da Mineração Textos em uma base de dados textuais, os Diários da Justiça Eletrônicos do TJSC, mais especificamente na área especial do Direito Penal, que trata dos crimes contra a pessoa e contra a vida. Neste sentido, as atividades desenvolvidas estão concentradas em pesquisa, análise, desenvolvimento e comparação de informações. No desenvolvimento deste trabalho procurou-se empregar métodos científicos variados, de forma a ampliar as possibilidades de análise e obtenção de respostas. As subseções à seguir apresentam a metodologia que foi utilizada para atingir os objetivos propostos. 1.3.1 Metodologia da Pesquisa Foi aplicado o método de pesquisa dedutivo. A análise das técnicas e algoritmos estudados auxiliou na escolha das técnicas e algoritmos mais adequados para a implementação da solução do problema proposto neste trabalho. A pesquisa é considerada teórica e aplicada, baseada na literatura existente sobre o assunto, buscando resolver problemas ou necessidades concretas e imediatas. Segundo Vilaça (2010), a pesquisa pode ser considerada teórica, pois não requer coleta de dados e pesquisa de campo. Além disso, é considerada aplicada, pois tem como objetivo a contribuição para fins práticos e a busca de solução mais ou menos imediata de problemas encontrados na realidade. Mesmo trabalhando com grandes quantidades de dados textuais, a pesquisa pode ser considerada qualitativa, pois a característica desejada nos resultados do processamento de texto não está relacionada com a representatividade numérica, mas com o aprofundamento da compreensão dos textos (GOLDENBERG, 1997). No presente trabalho, quanto aos objetivos, são aplicadas pesquisas dos três grandes grupos de classificação: exploratória, descritiva e explicativa. A pesquisa exploratória é aplicada na implementação de técnicas e algoritmos para a realização da mineração de texto. Assim, novos produtos e/ou processos podem ser originados por impulsos criativos, que a partir de 13 experimentações exploratórias podem produzir invenções ou inovações (GERHARDT; SILVEIRA, 2009). É também descritiva, pois analisou trabalhos relacionados ao trabalho proposto, descrevendo suas características funcionais e possíveis pontos de melhoria. Além disso, ao explicar as técnicas e algoritmos utilizados nos processos de mineração de texto é utilizada a pesquisa explicativa, buscando esclarecer os procedimentos adotados para contribuir na solução do problema apresentado (VILAÇA, 2010). 1.3.2 Procedimentos Metodológicos A pesquisa bibliográfica foi o ponto de partida para a elaboração deste trabalho. Tentou-se, assim, desvendar, recolher e analisar informações e conhecimentos prévios sobre a extração de conhecimento em documentos textuais, procurando uma resposta ou contribuição para a resolução do problema apresentado (VILAÇA, 2010). Também foram pesquisados trabalhos correlatos que procuravam contribuir para a solução de problemas semelhantes ou iguais. Para a coleta dos documentos foi desenvolvida uma ferramenta que busca os dados textuais em formato PDF no site do TJSC, converte-os em formato de texto simples, ou seja, texto sem formatações, e armazena-os de forma temporária na memória do computador. Assim, o acesso aos documentos pode ser mais rápido que o acesso aos documentos armazenados em HD, por exemplo, possibilitando um processamento mais ágil dos textos. O passo seguinte refere-se ao tratamento dos textos, onde foram aplicadas as técnicas de stopwords e stemming para realização da decomposição do texto em tokens e a eliminação de tokens irrelevantes para o trabalho proposto. A eliminação foi realizada com base numa lista de unidades léxicas pré-definida. Essa lista apresenta as unidades léxicas ignoradas para a solução proposta. Após o tratamento do texto, foram aplicados os algoritmos para extração de padrões, sendo uma das partes mais importante deste trabalho. Foram implementados os algoritmos responsáveis pela identificação de padrões e geração dos termos candidatos que têm como base o dicionário de termos jurídicos elaborado em conjunto com o especialista da área. 14 Na etapa de análise e avaliação dos resultados foram utilizadas duas formas para verificação dos resultados, a subjetiva, utilizando os conhecimentos de um especialista da área, objetiva através de índices estatísticos que visam indicar a qualidade dos resultados alcançados. 15 2 FUNDAMENTAÇÃO TEÓRICA A tarefa de transformar dados em informação computável não é trivial e vem sendo estudada há décadas. Contudo, a disponibilização de documentos em meio digital tem aumentado consideravelmente e esse fato se deve principalmente pelo avanço tecnológico de hardware e software (ELDER; MINER; NISBERT, 2012). Assim, oportunidades vão surgindo para criação de novas ferramentas de acesso e transformação dos dados em informação. O estudo bibliográfico permite o contato com esse universo de dados que se amplia e se renova diariamente nos meios digitais e com as soluções já criadas na tentativa de suprir essa necessidade, possibilitando, o embasamento teórico necessário para o desenvolvimento deste trabalho. 2.1 DESCOBERTA DE CONHECIMENTO Com a necessidade de uma análise mais refinada das informações geradas, foi criado na década de 80 o conceito de descoberta de conhecimento (DC) e os processos que poderiam proporcionar a descoberta. Estes processos procuram evidenciar informações que provavelmente não seriam percebidas sem a utilização destes ou não teriam a mesma velocidade de processamento (ELDER; MINER; NISBERT, 2012). Segundo Boente (2006), o processo de DC é caracterizado pelos seguintes componentes: o problema, os recursos disponíveis e os resultados obtidos. O problema caracteriza-se pelo conjunto de dados a ser submetido ao processo, o especialista no domínio da aplicação e os objetivos da aplicação. Os recursos disponíveis tratam do especialista no processo de DC, das ferramentas empregadas no processo e a plataforma computacional, recurso de hardware. Os resultados obtidos referem-se aos modelos de conhecimento descobertos durante o processo de DC e ao histórico das ações realizadas. Para auxiliar no entendimento da DC alguns conceitos são necessários. Dado é qualquer elemento do mundo real identificado em sua forma bruta e isoladamente não permite uma compreensão (CAVALCANTE; SILVA; FERREIRA, 2011). Dado é definido ainda como, um elemento puro e quantificável passível de uma real definição, que pode ser utilizado em um ambiente operacional, recuperado de um banco de dados ou recuperado através de outras formas de armazenamento (REZENDE, 2005). Analisando a data “27/07/1999”, é possível afirma que apresenta o formato brasileiro (DD/MM/AAAA) e trata-se de uma data do passado. Porém, desconhecido o que representa esta data então, é ela um dado. Informação é o dado com significado agregado, dotado de relevância e propósito para o seu receptor (BARBOSA, 2013). Assim, se for considerado que a data “27/07/1999” representa a data de nascimento de um ser humano, então, esse dado passa a ser uma informação. Quando é divulgado o que o dado representa no mundo real, então, tem-se uma informação. O conhecimento é o resultante do entendimento, da percepção, da aprendizagem de uma nova maneira de agir é ainda a formação de um conceito. Formar um conceito é uma maneira de representar os objetos, os próprios conceitos e outras entidades que existem em uma determinada área de interesse (contexto) (SCHIESSL & BRÄSCHER, 2011). O conhecimento é alcançado em duas etapas, na primeira o dado forma a base da informação e na segunda por meio do raciocínio humano e com suporte da tecnologia gera-se o conhecimento. A inteligência, por sua vez, é alcançada ao se aplicar racionalmente o conhecimento (FREIRE et al., 2012). A rapidez com que o conhecimento é gerado e compartilhado tem aumentado significativamente, alcançando cada vez mais pessoas e provocando o surgimento de um movimento de reaproveitamento e produção de novos conhecimentos e dessa dinâmica novas necessidades de tratamento das informações (RAMOS; BRASCHER, 2009). O conceito Descoberta de Conhecimento (DC) pode ser resumido como o processo não trivial de preparação, mineração e pós-processamento de dados visando identificar padrões novos, válidos, potencialmente úteis e, principalmente, compreensíveis em meio a dados presentes em uma base de dados. O objetivo final da descoberta de conhecimento, em meio à imensa gama de informação disponível, é a extração de conhecimento compreensível e utilizável para o apoio na toma de decisões (CONRADO; GUTIÉRREZ; REZENDE, 2012). Observa-se que existem técnicas e ferramentas para auxiliar a DC na Recuperação de Informação (RI), as quais contribuem com a obtenção de informações relevantes junto à base de dados. Contudo, informação pode ser considerada conhecimento quando interpretada pelo ser humano dentro de um determinado contexto (FREIRE et al., 2012). Sendo assim, para se alcançar os resultados no processo DC é preciso concluir algumas etapas, e cada etapa possui um conjunto de tarefas a serem executadas. As tarefas são realizadas através da escolha de uma técnica de resolução. As técnicas por sua vez, se utilizam de algoritmos e 17 para cada técnica pode haver um ou mais algoritmos a serem aplicados. A DC empenha-se no desenvolvimento de métodos e técnicas buscando oferecer sentido aos dados. Sendo sua tarefa mais básica é a de interpretar a informação do seu nível mais bruto, o dado, armazenado geralmente em grandes bases de dados, para formas mais inteligíveis para o ser humano. As etapas comuns do DC em banco de dados são: Seleção de Dados: Visa selecionar os dados referentes ao domínio do problema, a área onde deve-se aplicar os processos de descoberta de conhecimento em banco de dados (SILVA, 2011). A etapa de seleção é realizada utilizando-se uma base de dados ou conjunto de bases dados estruturados. Pré-processamento: Nesta etapa, procura-se fazer a limpeza dos dados, eliminando dados incompletos, problemas referentes a definição de tipos, tuplas repetidas, e também são coletadas as informações necessárias a modelagem, e estratégia para tratamento de campos ausentes (SILVA, 2011). De forma sucinta nesta etapa são realizadas pequenas correções e limpeza no banco de dados procurando garantir a consistência dos dados e a eliminação de dados desnecessários. Transformação: Na etapa seguinte ao pré-processamento é realizar a persistência dos dados tratados, deixando-os preparados para a mineração de dados, pois visa adicionar valor semântico às informações e atenuar a quantidade de variáveis a serem processadas (ALMEIDA, 2013). Mineração de Dados: É a principal etapa do processo de DC, sendo responsável pela busca efetiva por conhecimentos úteis, envolvendo a aplicação de algoritmos sobre dados, responsáveis pelas tarefas: selecionar, explorar e modelar grandes volumes de dados. Um pequeno conjunto de dados é inicialmente analisado representando inclusive estruturalmente uma amostra dos grandes volumes de dados visando adquirir o conhecimento inicial, então o processo é estendido para o conjunto geral dos dados, supondo que este apresenta estrutura semelhante ao da amostra (BOENTE, GOLDSCHMIDT & ESTRELA, 2006). Interpretação/Avaliação: Esta etapa tem como objetivo apresentar o resultado da descoberta de conhecimento para o usuário. Sendo assim, procura tratar o conhecimento obtido na Mineração de Dados para facilitar a compreensão e a avaliação, pelo ser humano, da aplicação do conhecimento descoberto (FAYYAD, 1996). 18 Do ponto de vista tecnológico a etapa mais importante deste processo é a mineração de dados, pois, nesta etapa o algoritmo de aprendizagem interage com o banco de dados, procurando extrair um modelo a ser utilizado numa determinada tarefa do processo de DC em banco de dados. 2.2 MINERAÇÃO DE DADOS A mineração de dados, ou data mining, considerada a principal etapa da DC, sendo a responsável pela legítima descoberta dos conhecimentos úteis. Nesta etapa são aplicadas as técnicas e algoritmos em busca do conhecimento no conjunto de dados do problema. Em meio as principais técnicas destacam-se: Redes Neurais, Algoritmos Genéticos, Modelos Estatísticos e probabilísticos (REZENDE, 2003). Assim, são apresentadas algumas tarefas onde se utilizam as técnicas e algoritmos mencionados. Classificação: Tem o objetivo de identificar uma função que possa mapear um conjunto de registros a partir de rótulos categóricos pré-definidos. Essa função poderá ser então utilizada para identificar padrões em registros inseridos posteriormente na base dados. Na tarefa de classificação podem ser utilizadas as tecnologias de Redes Neurais, Algoritmos Genéticos e Lógica Indutiva. Regressão: Tendo como objetivo a descoberta de uma função para relacionar os registros de uma base de dados aos valores reais, essa tarefa é semelhante a tarefa de classificação porém, a regressão trabalha apenas com atributos numéricos. Procurando identificar padrões por meios probabilísticos (REZENDE, 2003). Na regressão podem ser utilizadas Estatísticas, Redes Neurais, dentre outras áreas. Agrupamento: Associa os registros com perfis semelhantes procurando identificar diferentes grupos dentro de um conjunto de dados, de forma que os elementos apresentem características diferentes entre os grupos identificados. Nesta tarefa o objetivo é maximizar a similaridade no grupo e minimizar a similaridade entre os grupos. O agrupamento precisa identificar os grupos de forma automática, uma vez que não dispõem de rótulos pré-definidos como acontece na tarefa de classificação (BOENTE, GOLDSCHMIDT & ESTRELA, 2006). Na implementação desta tarefas os seguintes algoritmos podem ser utilizados: K-Means, K-Modes, KPrototypes, K-Medoids, Kohonen, dentre outros. Sumarização: Consiste em identificar e indicar características comuns entre conjunto de dados, sendo comum a utilização desta tarefa em cada um dos grupos identificados na tarefa de 19 agrupamento. Na implementação desta tarefa pode ser utilizados Lógica Indutiva e Algoritmos Genéticos por exemplo. Detecção de Desvios: Tem como objetivo encontrar registros que não apresentam as características dos padrões considerados normais na área de domínio (BOENTE, GOLDSCHMIDT & ESTRELA, 2006). A este tipo de registro dá-se o nome de “outliers”. Podem ser utilizados recursos estatísticos para implementação desta tarefa. Descoberta de Sequências: É utilizada na busca de padrões de dados escondidos numa sequência de estados temporais. É uma extensão da tarefa de descoberta de associações em que se busca itens frequentes considerando-se várias transações ocorridas ao longo de um período. Na etapa de pós-processamento é feito o tratamento do conhecimento visando facilitar a compreensão e avaliação pelo usuário. São funções desta etapa: a elaboração e organização, podendo incluir a simplificação de gráficos, diagramas ou relatórios demonstrativos. A mineração de dados pode ser considerada uma ferramenta importante na busca por conhecimento, quando o objetivo é obter vantagem competitiva nas organizações. Contudo, não tem a capacidade de extrair conhecimento de dados textuais. Segundo Feldman (2007), oitenta por cento das informações das empresas está em documentos textuais. Assim, surge a mineração de texto ou descoberta de conhecimento em texto para preencher essa lacuna. A mineração de texto se assemelha e utiliza alguns dos processos utilizados na mineração de dados, porém, é baseada em técnicas para tratamento de textos com o objetivo de obter conhecimentos implícitos em documentos textuais semiestruturados ou não estruturados (PASSINI, 2012). 2.3 MINERAÇÃO DE TEXTO A evolução da área de RI teve como consequência o surgimento da área de descoberta de conhecimento em textos (em inglês: Knowledge Discovery in Text - KDT) derivada da RI e da PLN. O termo foi utilizado pela primeira vez por Feldman e Dagan (1995) para designar o processo de encontrar algo interessante em coleções de textos (artigos, histórias de revistas e jornais, mensagens de e-mail, páginas Web, etc.). 20 Mineração de Texto (MT) é um conjunto de técnicas e processos aplicados em textos semiestruturados e não estruturados (texto livre) para extrair informações relevantes para um propósito em particular, correspondendo a uma subárea da Inteligência Artificial (CONRADO; GUTIÉRREZ; REZENDE, 2012). A MT é considerada capaz de extrair termos candidatos a conceitos e categorizar o texto dos documentos em suporte eletrônico (RAHMAN, 2011). A MT surgiu na década de 80 com a necessidade de catalogar documentos de texto (livros em uma biblioteca). O foco do desenvolvimento mudou pouco tempo depois devido ao aumento do número de documentos em meio eletrônico, passando para extração de dados em texto usando técnicas de Processamento de Linguagem Natural (PLN) e vem crescendo devido ao avanço tecnológico de hardware e software, tendo como objetivo a descoberta de conhecimentos significativos a partir de documentos textuais. Atualmente, existem sete diferentes áreas de análise de texto que fazem uso da MT, conforme mostra a Figura 1 (ELDER; MINER; NISBERT, 2012). Figura 1 - Diagrama de Venn apresentando as sete áreas de análise de texto Fonte: Adaptado de Elder; Miner; Nisbert (2012). 21 As abordagens geralmente tem o objetivo de identificar informações ocultas em texto não estruturado, sendo a MT por este motivo também conhecida por descoberta de conhecimento em textos (em inglês: Knonwledge Discovery in Text – KDT) (PASSINI, 2012). A MT pode ser dividida em quatro etapas: coleta de textos, pré-processamento, extração de padrões e avaliação das descobertas e validação dos resultados. Na coleta de textos, são reunidos documentos que formam o conjunto de textos em meio eletrônico de uma determinada área, chamado de corpus textual (BUBENHOFER et. al., 2012). Na etapa de pré-processamento é feita a padronização da tabela eletrônica de caracteres a ser utilizada (Ex.: UniCode) e a geração das unidades lexicais não normalizadas, sendo estas armazenadas em uma estrutura de dados denominada de índice invertido ou arquivo invertido. A etapa extração de padrões visa identificar e gerar os termos candidatos por meio da utilização de algoritmos. Na etapa de avaliação das descobertas e validação dos resultados é realizada a avaliação dos termos candidatos com base nos critérios estabelecidos no estudo. Esta avaliação pode ser por frequência que aparecem no corpus textual. Na validação é considerado o percentual de documentos relevantes recuperados (OLIVEIRA; MOTTA, CUNHA, 2011). O processo de MT pode apresentar variações, pois, adaptações podem ser feitas conforme o propósito do estudo (OLIVEIRA; MOTTA, CUNHA, 2011; PASSINI, 2012). Este trabalho utiliza o processo de mineração de texto conforme apresentado, ou seja, sem adaptações e tendo como propósito a recuperação de documentos ou de informação. A mineração de texto é parte relevante para este trabalho, pois, propiciou a extração de termos candidatos do corpus textual constituído pelos Diários da Justiça Eletrônicos. 2.3.1 Coleta de Textos A etapa inicial do processamento de texto é a coleta de documentos. Esta etapa trata da aquisição de um conjunto de documentos (corpus textual) que é à base de qualquer processo de mineração de textos (FELDMAN & SANGER, 2007). Ressalta-se que os documentos devem ser relevantes à área especializada do conhecimento a ser extraído, pois, um conjunto grande de documentos irrelevantes pode prejudicar o processo de mineração de textos, além de aumentar desnecessariamente a dimensionalidade dos dados. 22 Os documentos podem ser obtidos das mais diversas fontes, mas, as principais são: pastas de arquivo do disco rígido de computadores dos próprios usuários, tabelas de banco de dados diversos e da internet. A coleta de dados da internet pode ser realizada de forma automatizada por meio da utilização de crawlers (HEATON, 2002). Crawler significa rastreador em português e é um robô, um programa de computador que navega pela internet de forma metódica buscando informações nos documentos disponíveis e repassa para um componente responsável pela indexação destes documentos (ARANHA, 2007). Os documentos textuais para a elaboração deste trabalho são recuperados/adquiridos no site do TJSC em formato PDF. A utilização de técnicas específicas não são necessárias para a recuperação dos documentos, uma vez que a fonte de dados é bem delimitada e conhecida. 2.3.2 Pré-processamento Na etapa de pré-processamento é feita a decomposição do texto. Texto é um conjunto de letras, que formam as palavras, números e símbolos agrupados em frases e parágrafos. O processo de decomposição desses elementos significa percorrer o texto coletando, a cada espaço, a unidade léxica, tendo como limite o ponto final, que por sua vez identifica a frase e a cada quebra de linha, oculta no texto, o parágrafo (BARBOSA, 2013). Uma unidade lexical bruta coletada é geralmente uma palavra, contudo, pode ser uma preposição, um artigo, um sinal de pontuação ou mesmo um símbolo, sendo comumente utilizado o termo “token” (do inglês, símbolo ou sinal) para designar a unidade lexical e “tokenização” para o processo de coleta das unidades lexicais. O separador, delimitador, normalmente usado é o espaço ou sequência de espaços ou tabulação, entretanto, pode existir um comprimento indeterminado definido por “marcadores” no texto, como pipeline (“|”), asterisco (“*”), etc. (HUSSAIN; AFZAL; WAQAS, 2012). Analisando os marcadores de formatação contidos em um fragmento de texto de uma decisão monocrática, apresentado no Quadro 1, é possível observar que os espaços são os limitadores comuns entre as unidades lexicais, contudo, o ponto final que deve sinalizar o fim de uma frase é utilizado em diversas oportunidades, para identificar uma abreviação, observado nas linhas 3, 4, 5, 8, 12 e 14, para delimitar dia, mês e ano em uma data na linha 5, para identificar a casa do milhar em um número linha 9, além de sinalizar o fim da frase como pode ser visto nas 23 linhas 5, 6, 7, 10 e 14. Pode ser observada ainda a existência de dois parágrafos, identificados pela quebra de linha ao final de cada um dos parágrafos. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Inicialmente, vale informar que o presente recurso não é intempestivo, como alegado pelo recorrido, pois, “consoante a jurisprudência do STJ, ‘a oposição dos embargos de declaração interrompe o prazo para interposição de outros recursos (art. 538 do CPC), salvo nos casos em que estes não são conhecidos por intempestividade’. (STJ/AgRg no REsp 1352199/MG, rel. Min. Benedito Gançalves, DJe 02.04.2013). No caso dos autos, os embargos foram rejeitados por se tratar de rediscussão da matéria. Ultrapassada esta fase inicial, passa-se à análise do recurso. O recorrente sustentou contrariedade ao disposto nos arts. 14, 15 e 157, § 1º, todos do CPP, e art. 184, § 2º da Lei n. 8.069/90, na medida em que o acórdão vergastado manteve incólume a decisão de pronúncia, mesmo fundada em suposta prova ilícita obtida na fase inquisitorial. Em princípio, este Tribunal analisou detalhadamente todo o acervo probatório e entendeu ser inviável, nesta fase, a absolvição sumária, a impronúncia ou o afastamento das qualificadoras previstas no art. 121, § 2º, do CP, considerando estar devidamente caracterizada a materialidade do delito, bem como presentes os indícios de sua autoria, conforme pode ser conferido às fls. 440-446. Quadro 1: Fragmento de uma decisão monocrática retirado no Diário da Justiça Eletrônico do TJSC exibindo marcadores de formatação Partindo da identificação das unidades lexicais é gerado o arquivo invertido, estrutura para armazenamento dos dados extraídos dos documentos de um corpus textual. Com essa estrutura é possível rastrear uma unidade lexical determinando em quais documentos ela foi encontrada, podendo ser um ou mais. A correção ortográfica tem por objetivo eliminar possíveis erros ortográficos. E pode ser uma tarefa desta etapa. Cada palavra do texto é comparada com os termos de um dicionário por um verificador ortográfico, se a palavra coincidir com algum termo do dicionário, então é considerada sintaticamente correta (MONTEIRO, GOMES, OLIVEIRA, 2006). Erros ortográficos podem invalidar uma jurisprudência, entretanto, este trabalho não vai tratar a correção ortográfica, pois, os textos publicados nos Diários da Justiça Eletrônicos passam por uma revisão ortográfica. Destaca-se que o TJSC possui uma diretoria de documentação e informações e entre as suas atribuições está a revisão de sentenças judiciais, acórdãos, relatórios e outros textos jurídicos do Poder Judiciário Catarinense (TJSC, 2014). O passo seguinte é a remoção de stopwords. Esta técnica consiste em identificar e retirar do texto que está sendo analisado as palavras que se repetem e que quando subtraídas do texto não prejudicam sua interpretação estas palavras recebem o nome de stopwords e o conjunto delas recebe o nome de stoplist. No desenvolvimento deste trabalho são consideradas stopwords as preposições, 24 artigos, pronomes e advérbios, palavras que servem apenas para dar sentido à frase e exercer o papel sintático no idioma que representa (REZENDE; MARCACINI; MOURA, 2011). A decomposição do texto é aplicada em um corpus textual escrito em um determinado idioma e, portanto, obedecem as regras gramaticais desse idioma, carregando consigo variações morfológicas do léxico. Com o objetivo de minimizar as variações morfológicas, a normalização léxica é considerada uma importante tarefa no processamento de dados, podendo ser executada durante ou após a decomposição do texto. Essa tarefa pode eliminar símbolos especiais e de pontuação que ficaram conectados as unidades léxicas brutas, convertê-las para minúsculo, remover prefixos, sufixos e acentos, etc. (BRAGA, 2011). A normalização léxica pode provocar a aglutinação das unidades lexicais, reduzindo a variação léxica, contudo, não provoca a redução da variação terminológica, pois, variação léxica está associada unicamente as formas que um léxico pode assumir por conta do idioma que foi escrito, como por exemplo: plural, gerúndio, sufixo temporal, tempo verbal, etc.(BRAGA, 2011). Sendo assim, neste trabalho são aplicadas técnicas de conversão para minúsculo, remoção de acento e caracteres de pontuação e stemming, que consiste em remover prefixos e sufixos, sendo o resultado obtido chamado de stem (raiz). 2.3.3 Extração de Padrões A extração de padrões inicia com o mapeamento das unidades lexicais encontradas nos documentos de um corpus textual. Esse mapeamento é armazenado em uma estrutura denominada de índice invertido, sendo possível identificar os documentos onde determinada unidade lexical foi encontrada. O índice invertido é normalmente representado por uma matriz multidimensional, pois armazena além de um número indefinito de documentos, informações sintetizadas da frequência que as unidades lexicais ocorrem nos documentos e dentro de cada documento (BARBOSA, 2013). Após a estruturação dos textos, são utilizados métodos de agrupamento visando a organização dos documentos. A organização é baseada em uma medida de similaridade, os objetos que formam um grupo apresentam um alto grau de semelhança entre si, mas são diferentes se comparados aos objetos de outros grupos (MARTINS, 2012). O passo seguinte visa a obtenção dos conceitos que é realizada por um processo semiautomático, baseado em regras previamente definidas para identificação dos conceitos 25 presentes nos textos. Cada conceito deve ser definido através de uma ou mais regras para identificação. Cada regra é verificada contra todas as frases de um texto (GOMES, 2009). Neste trabalho a aplicação das regras é apoiada pelo dicionário de termos jurídicos criado com a ajuda do especialista. As técnicas e algoritmos que podem ser aplicados nesta etapa podem ser divididos em duas categorias: geração de conhecimento, que utilizando técnicas procuram gerar conhecimento a partir de informações de um determinado texto, e extração de conhecimento, que por meio de técnicas visa obter conhecimento apresentado explicitamente no texto (MONTEIRO, GOMES, OLIVEIRA, 2006). Neste trabalho é utilizada a técnica de extração de conhecimento a partir dos Diários da Justiça Eletrônicos. 2.3.4 Análise e Avaliação dos Resultados O objetivo dessa etapa é procurar melhorar o entendimento do conhecimento descoberto na extração de padrões, buscando validar o conhecimento por meio de medidas de desempenho, de qualidade e análise da solução por um profissional da área de dados. A consolidação das descobertas é apresentada em relatórios demonstrativos (MONTEIRO, GOMES, OLIVEIRA, 2006). A quantidade de padrões extraídos pode ser muito grande, apresentando padrões considerados sem relevância, sem importância para o usuário, sendo necessário apresentar apenas padrões que possam ser do interesse do usuário. Neste, sentido, Roberto, Martí e Llorente (2012), reuniram diversas medidas de baixo custo computacional para realizar inferências sobre corpus textuais, podendo serem aplicadas independente do idioma e da área especializada, permitindo avaliar se o texto é fértil, é rico, ou seja, avaliar sua riqueza léxica. As medidas podem ser divididas em medidas de desempenho e de qualidade. São medidas de desempenho: precisão, erro, confiança negativa, sensitividade, especificidade, cobertura, suporte, satisfação, velocidade e tempo de aprendizado. Além disso, podem ser utilizadas medidas subjetivas para avaliar a qualidade dos padrões descobertos. Alguns exemplos de medidas subjetivas são improbabilidade e utilidade (MORAIS, AMBRÓSIO, 2007). Um dos indicadores que avaliam a riqueza léxica é a densidade, que pode ser obtida quando a quantidade de unidades lexicais processadas (termos candidatos) é dividida pela quantidade de 26 unidades léxicas brutas encontradas num corpus textual indicando a proporção de termos candidatos diferente no texto (BARBOSA, 2013). Outro método utilizado para determinar a relevância dos documentos é a IDF, do inglês Inverse Document Frenquency, ou inverso de frequência nos documentos. Esse método tem sido bastante utilizado na literatura e, segundo Machado (2010), este método tem alcançado excelentes resultados mesmo quando comparado com outras estratégias mais elaboradas. A IDF privilegia os termos encontrados mais raramente na coleção, documentos onde os termos mais raros são beneficiados no cálculo da relevância. Neste trabalho são utilizados métodos para verificação da densidade léxica e da relevância dos documentos. Além disso, a qualidade dos resultados é verificada por meio da análise em conjunto com um especialista da área do Direito. 2.3.5 Ontologia Há diversas definições para o termo ontologia na literatura, em Ciência da Computação. Gruber (1993) define ontologia como sendo uma especificação de uma conceitualização compartilhada, ou seja, a descrição de conceitos relevantes para algum domínio de conhecimento e a relação entre estes conceitos. Ainda, no âmbito da Ciência da Computação, a ontologia é uma especificação formal, explícita e compartilhada. O “Formal” indica a possibilidade de tratar computacionalmente os conceitos, a característica “Explícita” está relacionada ao fato de conceitos usados e restrições aplicadas a esses conceitos estarem definidas explicitamente, e por fim, “Compartilhada” se refere ao fato do conhecimento ser consensual, aceito universalmente (NUNES, FILETO, 2007). Uma ontologia é formada por conceitos que permitem descrever a área de domínio do conhecimento, pela relação entre esses conceitos, por instâncias desses conceitos, pela relação entre instâncias, estando de acordo com as relações entre os conceitos correspondentes e por axiomas. A justificativa para o uso de ontologias é que ela permite compartilhar a estrutura de informação entre as pessoas e agentes de software, permitindo, assim, a reutilização de conhecimento do domínio (NUNES, FILETO, 2007). A transformação dos dados em informação não deve se ater apenas a descrever o que o dado representa no mundo real, pois para alcançar o status de informação, de termo, é preciso que este 27 dado esteja associado a um conceito que, por sua vez, deve descrever um objeto do mundo real. A necessidade disto está relacionada ao fato que um termo, unidade lexical que representa o conceito, está sujeito ao idioma e seus fenômenos linguísticos, como sinonímia (palavras distintas com mesmo significado) e polissemia (muitos significados para uma palavra) (CORRÊA; MIRANDA, 2011). Entretanto, a formalização eletrônica da informação que permite a duas pessoas de idiomas diferentes obterem informação homogênea sobre um objeto do mundo real não gera conhecimento, pois é necessário formalizar, explicitar, as relações que existem entre as informações e entre os conceitos. A ontologia permite formalizar e explicitar conceitos e suas relações (PAVEL, NOLET, CRIMES CONTRA A VIDA 2002). O Quadro 2 apresenta um exemplo de ontologia: Puerperal Infanticídio 123 Recém-nascido Filho Parto Quadro 2: Exemplo de ontologia definida com o auxílio de especialista. O Quadro 2 apresenta a ontologia referente ao artigo 123 do Código Penal Brasileiro, que trata do infanticídio, com o auxílio do especialista buscou-se definir os termos mais relevantes associados ao tema infanticídio. 2.4 ALGORITMOS DE MINERAÇÃO DE TEXTO A mineração de texto apresenta algumas tarefas a mais que a mineração de dados, etapas relacionadas à estruturação do texto, apresentado geralmente de forma semiestrutura ou não estruturada, sendo considerada uma especialização do processo de mineração de dados. Assim, 28 vencidas as etapas iniciais, os dois conjuntos de processos de descoberta de conhecimento podem e geralmente utilizam algoritmos semelhantes (FAYYAD et. al.,1996). Os algoritmos podem ser divididos em duas categorias: de geração e de extração de conhecimento. A categoria de geração tem o objetivo de gerar conhecimento a partir de informações de um determinado texto e a de extração visa obter conhecimento que se apresente explícito no texto (MONTEIRO, GOMES, OLIVEIRA, 2006). Neste trabalho são utilizados algoritmos da categoria de extração, pois, o objetivo principal é extrair conhecimento das decisões jurídicas publicadas nos Diários da Justiça Eletrônico. 2.4.1 Stemmers ou lematização Stemmers ou lematização é o processo que tem como objetivo a redução das palavras aos seus radicais (OLIVEIRA, 2010). Os dois algoritmos de stemmers encontrados com maior frequência na literatura estudada são apresentados a seguir, de forma resumida. Porter: Inicialmente criado para o idioma inglês, e posteriormente adaptado para a língua portuguesa, o algoritmo Porter é baseado em uma série de regras condicionais aplicadas sequencialmente. A definição de uma regra para esse algoritmo é apresentada da seguinte forma: (condição) sufixo1 -> sufixo2. Onde, “condição” é uma condição a ser testada, “sufixo1” é a parte da palavra procurada e removida, e “sufixo2” é uma parte (sufixo) a ser adicionada a palavra após a remoção do “sufixo1”, conforme a regra o “sufixo2” pode não estar definido. Sendo assim, se aplica a regra a cada palavra do texto e quando a condição pré-definida é atendida, o sufixo encontrado é substituído, se houver um sufixo substituto, caso contrário o sufixo encontrado é removido. Antes de aplicar as regras definidas, os caracteres “ã” e “õ” são substituídos por “a~” e “o~” respectivamente e tratados como consoantes na aplicação das regras. Após a aplicação das regras, os caracteres “a~” e “o~” são substituídos por “ã” e “õ” voltando a forma inicial (PORTER, 2014). Este algoritmo é dividido ainda em 5 (cinco) passos sequenciais, cada um atuando em um conjunto de palavras que procuram e substituem ou remove os sufixos encontrados. O primeiro passo trata dos sufixos comuns (ex.: eza, ismos, ável, ível, oso, mente,...). No segundo passo são tratados os sufixos verbais (ex.: ada, ida, aria, ará, ava, isse, iriam,...), se a palavra não tiver sido alterada no primeiro passo. O terceiro passo só deve ser executado se nas palavras alteradas em pelo 29 menos um dos dois passos anteriores, esse passo trata os sufixos “i”, que for precedido da letra “c”. As palavras não alteradas no primeiro passo e nem no segundo passo, deve ser tratadas no quarto passo, onde os sufixos residuais (os, a, i, o, á, í, ó) são removidos. Por fim, o quinto passo sempre deve ser realizado. Nesse passo são removidos os sufixos “e”, “é” e “ê”, e se o sufixo for precedido por “gu” ou “ci” a letra “u” ou “i” deve ser removida, e o “ç” deve ser removido se for a última letra da palavra (PORTER, 2014). RSLP: Removedor de Sufixos da Língua Portuguesa (RSLP), assim como o algoritmo de Porter, aplica uma sucessão de passos, porém, com um número maior de regras, uma vez que foi desenvolvido particularmente para a língua portuguesa, possuindo ainda um dicionário de exceções, permitindo um tratamento mais adequado a palavras com terminação similar a um sufixo que, porém, não devem ser processadas da mesma forma. Por exemplo, a palavra “coração” poderia ser tratada pela regra do sufixo aumentativo “ão”, regra aplicada corretamente na palavra “cachorrão” (FLORES, 2009). Uma regra no RSLP é composta pelo sufixo que deve ser procurado, por um número que determina o tamanho mínimo do radical (stem) após a remoção do sufixo, um sufixo de substituição se existir e a lista de exceções, que é opcional. Esse algoritmo apresenta a seguinte sequência para aplicação das regras: ao encontrar o sufixo este é comparado com cada um dos itens da lista de exceções da regra, se não for encontrado na lista ou se a lista não existir, então verifica-se o tamanho do radical que deve ser igual ou maior ao mínimo definido na regra. Se a condição anterior for atendida, remove-se ou substitui-se sufixo procurado pelo sufixo substituto, se existir (COELHO, 2007). Este algoritmo tem 8 (oito) passos, três a mais que o algoritmo de Porter, apresentando passos especialmente criados para o idioma português. O primeiro passo trata as palavras no plural, usualmente identificadas pelo “s” no final da palavra, contudo, algumas palavras devem estar presentes da lista de exceções (ex.: simples, lápis,...). O segundo passo trata o gênero da palavra substituindo a letra “a” pela letra “o”, assim, a palavra culpada seria alterada para culpado, por exemplo. No terceiro passo são tratados os advérbios, identificados na língua portuguesa pelo sufixo “mente”. O quarto passo tratada as palavras com sufixo aumentativo, superlativo ou diminutivo. No quinto passo são tratados os substantivos e adjetivos, se uma palavra é alterada nesse passo, então o sexto e sétimo passo não são aplicados a essa palavra. O sexto passo trata dos verbos, se a palavra é alterada neste passo, o sétimo passo não é aplicado a ela. O sétimo passo trata 30 as palavras não alteradas nos últimos dois passos, neste passo a vogal “a”, “e” ou “o” é removida da palavra caso seja encontrada no final desta palavra. Por fim o oitavo passo faz a remoção dos acentos das palavras. Além dos algoritmos de lematização já apresentados, existem os algoritmos STEMBR e Savoy. O STEMBR aplica passos semelhantes aos do algoritmo RSLP e trata também dos prefixos das palavras. O Savoy é mais simples que os citados anteriormente, possuindo uma quantidade de regras menor e apenas tenta remover sufixos flexionais de substantivos e adjetivos, além do sufixo adverbial “mente” (FLORES, 2009). 2.4.2 Descoberta de Conhecimento em Texto Os algoritmos de descoberta de conhecimento em texto são aplicados na fase de mineração de dados, procurando identificar a relevância que um determinado texto tem por meio de inferência a partir de termos informados por um ser humano (MARTINS, 2012). Esses algoritmos procuram simular a forma como os seres humanos aprendem a tomar decisões ou a realizar tarefas. Os seres humanos usam processos cognitivos para aprenderem, mas máquinas por sua vez, necessitam de algoritmos para que o processo de aprendizagem ocorra. A aprendizagem geralmente ocorre por meio da análise de conhecimentos prévios (PASSINI, 2012). Os algoritmos de classificação são exemplos utilizados para “descobrir” se uma determinada pessoa irá honrar com os pagamentos de um empréstimo e o processamento é realizado por meio da análise dos dados da pessoa. A solução proposta neste trabalho será baseada em algoritmo de classificação também e o processamento terá como base um dicionário de termos, possibilitando identificar os textos mais relevantes, tendo como referência os termos de consulta informados (MARTINS,2012). São apresentados a seguir alguns algoritmos de classificação e uma descrição resumida de cada um: Árvore de Decisão: Algoritmo utilizado na tarefa de classificação em aprendizado supervisionado por diversos sistemas de aprendizado de máquina. A árvore de decisão é induzida por um conjunto de exemplos de treinamento onde há o conhecimento prévio das classes. Estrutura muito utilizada no desenvolvimento de sistemas especialistas e em problemas de classificação (POZZER, 2006). A árvore de decisão é estruturada da seguinte forma: 31 Os nós internos, que não representam uma folha, são rotulados cada um com o nome de um dos atributos previsores; Ramos (ou arestas) saindo de um determinado nó interno recebem rótulos com valores do nó que lhes deu origem. Cada folha recebe como rótulo uma classe, essa classe é determinada a partir dos exemplos de treinamento anteriores. A classificação de um exemplo é realizada fazendo o exemplo em questão percorrer a árvore de decisão por meio dos arcos que unem os nós a partir do nó raiz. Essa movimentação deve ocorrer respeitando as condições representadas por esses arcos. Assim, ao alcançar um nó folha, é atribuído ao exemplo a classe que rotula este nó. Os nós folha especificam os valores de retorno se as folhas forem alcançadas (POZZER, 2006). Redes Neurais: são algoritmos de aprendizagem de máquina, ou aprendizagem indutiva, que visam simular a forma como o ser humano organiza e processo as informações. São definidas ainda como sendo uma estrutura de processamento que pode ser implementada em dispositivos eletrônicos, formada por um conjunto de unidades interconectadas (neurônios artificiais), onde cada unidade possui um comportamento particular de entrada e ou saída (computação local), determinado por sua função de transferência, por interconexões com outras unidades e possivelmente pelas entradas. Podem ser entendidas como funções matemáticas não lineares que realizam a conversão dos dados de entrada, para uma saída desejada (ANGELO et al, 2011). As redes neurais possuem geralmente alguma regra de treinamento para ajustar os pesos de suas conexões de acordo com padrões apresentados. Em um sistema de recuperação de informação, de um lado estão as expressões de busca, do outro lado estão os documentos e no centro estão os termos de indexação. Essa estrutura pode ser definida como uma rede neural onde as unidades de entrada representam os termos de busca, os documentos significam as categorias de interesse, a saída, e por fim os pesos nas conexões representam as relações de dependências. O tipo de classificador mais simples de rede neural é o perceptron (FELDMAN, DAGAN, 1995), que pode ser considerado um classificador linear. Naïve-Bayes: É um algoritmo de aprendizagem de máquina para classificação, baseado no teorema de Bayes de Thomas Bayes. É considerado um algoritmo de classificação ingênuo (naïve), 32 por assumir que existe independência entre os atributos dos dados de modo que, o valor de um atributo não influencia o valor dos outros. Esta hipótese tem como objetivo facilitar os cálculos envolvidos na tarefa de classificação. Contudo, mesmo com essa característica “ingênua” e simplista apresenta bons resultados em várias tarefas de classificação (OGURI, 2006). O algoritmo de Bayes procura determinar os resultados futuros com base nos resultados já conhecidos. Enquanto pesquisadores elaboravam probabilidade para determinar qual a possibilidade de um resultado se repetir, Bayes se concentrava na tarefa de descobrir os possíveis novos resultados tomando como base os resultados alcançados (OGURI, 2006). O algoritmo parte de estimativas iniciais denominadas “a priori” e essas estimativas são alteradas com base em novas informações que atuam como modificadoras de opinião. Naïve-Bayes atua ainda mostrando como fazer avaliações e ajustá-las quando da inserção de novos dados. Assim, probabilidade “a priori” são as estimativas iniciais e a probabilidade “a posteriori” são os possíveis resultados encontrados a partir da probabilidade “a priori” (ZEMBRZUSKI, 2010). A probabilidade “a posteriori” de uma hipótese é alcançada por meio de cálculos envolvendo a probabilidade “a priori” da hipótese, a probabilidade “a priori” da evidência e a verossimilhança entre causa e efeito (ZEMBRZUSKI, 2010). A probabilidade é alcançada pela aplicação de (1). P( X | Y ) * P(Y ) P(Y | X ) P( X ) (1) Considerando que a cada cem mulheres a partir do 40 anos de idade, em média, uma é portadora de um tumor assintomático de mama (“a priori” da hipótese) e admitindo-se que oitenta por cento das mulheres com câncer tem resultado positivo no exame de mamografia e admitindo também que 9,6% tem resultado positivo no exame mesmo não tendo câncer (“a priori” da evidência), qual a probabilidade de uma mulher de 40 anos de idade ter câncer ao receber um diagnóstico positivo no exame de mamografia? 1 Equação para cálculo da probabilidade “a posteriori” 33 Buscando responder a questão proposta, por meio do raciocínio bayesiano, primeiramente considera-se os valores da hipótese, assim, em média 1% das mulheres de 40 anos têm câncer e 99% não tem, “a priori” da hipótese. Ao incorporar os dados da mamografia estando a mulher com câncer, a probabilidade condicional de a mamografia ser positiva é 0,80 (80%), e de não ter câncer é de 0,096 (9,6%), “a priori” da evidência. Ao multiplicar a probabilidade “a priori” da hipótese pela “a priori” da evidência, é obtida a probabilidade conjunta. Observa-se que, a soma das porcentagens da probabilidade conjunta não atinge 1 (100%), sendo necessário a normalização, que feita dividindo cada probabilidade conjunta pela soma das duas probabilidades. Utilizando o raciocínio bayesiano de modo muito simples, pode-se concluir que a probabilidade “a posteriori” de uma mulher não ter um câncer de mama é de 0,54 (54%), conforme pode ser observado na Tabela 1 (PENA, 2006). Tabela 1. Apresenta os dados formatados do exemplo descrito. Prob. A PRIORI da hipótese Prob. A PRIORI da evidência Prob. Conjunta Normalização Prob. A POSTERIORI Fonte: Adaptado de Pena (2006). Tem Câncer 0,01 0,8 0,01 x 0,8 = 0,008 0,008 + 0,0095 = 0,0175 0,008/0,0175 = 0,46 Não Tem Câncer 0,99 0,096 0,99 x 0,096 = 0,0095 0,0095/0,0175 = 0,54 Os algoritmos de classificação bayesianos são estatísticos e classificam os objetos numa determinada classe com base na probabilidade do objeto pertencer à classe. Geram resultados rápidos, de grande correção quando aplicados a grandes volumes de dados, e são comparáveis a resultados alcançados quando da utilização de redes neurais e árvores de decisão (OGURI, 2006). Neste sentido, pode estimar a probabilidade P(Y|X) de um determinado documento pertencer a uma classe a partir da probabilidade a priori P(Y) de um documento ser desta classe e das probabilidades condicionais P(𝑇𝑘 |Y) de cada termo 𝑇𝑘 ocorrer em um documento da mesma classe. O algoritmo visa encontrar a classe 𝑌𝑛 mais adequada para um documento, maximizando a probabilidade a posteriori (ZEMBRZUSKI, 2010). A inferência Bayesiana tem motivado diversos estudos e debates, especialmente com o avanço da computação que, associada a estudos científicos, fez aumentar o interesse e o avanço de técnicas e aplicações bayesianas (XAVIER, 2013). 34 Neste trabalho, é adotado o algoritmo de Naïve Bayes para realização da classificação dos textos de jurisprudência. 2.5 CENÁRIO NACIONAL DA JUSTIÇA BRASILEIRA A Constituição Federal, visando principalmente, evitar o arbítrio e o desrespeito aos direitos e garantias fundamentais do povo brasileiro, definiu que o Poder Estatal fosse dividido em três esferas distintas, que são o Legislativo, o Executivo e o Judiciário, independentes e harmônicos entre si e com atribuições específicas para cada um deles e respectivos mecanismos de controles, visando a garantia da efetivação do Estado democrático de Direito, conforme dispõe o art. 2º da Constituição Federal de 1988 (BRASIL, 2000). Com efeito, cada um dos Poderes possui uma função predominante, que o caracteriza como detentor da parcela da soberania do Estado, além de outras funções previstas na Constituição. Compete ao Poder Judiciário garantir os direitos individuais, coletivos e sociais e resolver conflitos entre cidadãos, entidades e Estado. Desta forma, tem independência e autonomia administrativa e financeira garantidas pela Constituição Federal (NOVELINO, 2011). Ainda segundo Novelino (2011), a função típica do Poder Judiciário consiste no exercício da Jurisdição em que o Estado substitui as partes em conflito para dizer quem tem o direito. A Constituição Federal, no art. 92, elenca os órgãos do Poder Judiciário com sendo o Supremo Tribunal Federal, o Conselho Nacional de Justiça, o Superior Tribunal de Justiça, os Tribunais Regionais Federais e Juízes Federais, os Tribunais e Juízes do Trabalho, os Tribunais e Juízes Eleitorais, os Tribunais e Juízes Militares, os Tribunais e Juízes dos Estados e do Distrito Federal e Territórios (BRASIL, 2000). Segundo Cintra (1995), o Poder Judiciário é um poder nacional único que atua por meio de diversos órgãos, sendo eles federais e estaduais. Portanto, a atuação do Poder Judiciário consiste na imposição da validade do ordenamento jurídico, de forma coativa, quando houver necessidade, principalmente na efetivação dos direitos fundamentais sociais (CINTRA, 1995). Segundo o CNJ (2013), em 2012, houve uma movimentação processual da Justiça Estadual, em todo o país, de 52.018.720 casos pendentes e de, 20.040.039 casos novos. Os processos de conhecimento criminais na Justiça Estadual somaram 5.243.772 casos pendentes e 3.046.464 casos 35 novos, em todo o Brasil os dados indicam a importância da atuação do poder judiciário na resolução de conflitos. Diante desse cenário preocupante, a criação de novas ferramentas de informática pode ser uma contribuição importante para auxiliar na solução das demandas ingressadas em juízo. 2.5.1 Justiça Catarinense Em Santa Catarina, conforme artigo 77 da Constituição Estadual, os órgãos que integram o Poder Judiciário do Estado são o Tribunal de Justiça, os Tribunais do Júri, os Juízes de Direito e os Juízes Substitutos, a Justiça Militar, os Juizados Especiais e as Turmas de Recursos, os Juízes de Paz e outros órgãos instituídos em lei (SANTA CATARINA, 1989). O Tribunal de Justiça, com sede na capital do Estado de Santa Catarina, tem jurisdição em todo o seu território e é composto de 50 (cinquenta) desembargadores, nomeados na forma estabelecida no artigo 82 da Constituição Estadual, ou seja, dentre os magistrados de carreira, advogados e membros do Ministério Público (SANTA CATARINA, 1989). O Poder Judiciário é destacado na Constituição da República Federativa do Brasil com capítulo próprio (Capítulo III, artigos 92 a 126) e no artigo 5º, inciso XXXV, o qual descreve que "a lei não excluirá da apreciação do Poder Judiciário lesão ou ameaça a direito" (BRASIL, 2000). Além das normas estabelecidas na Constituição Federal, a organização da Justiça nos Estados orienta-se pelas normas contidas na Lei Orgânica da Magistratura Nacional (Lei Complementar nº 35, de 14 de março de 1979) e pelas disposições das Constituições Estaduais (ALVES, 2010). Segundo CNJ (2013), em 2012, Santa Catarina contava com 2.074.411 casos pendentes e deram entrada no judiciário mais 826.948 casos novos. Os processos de conhecimento criminais somavam 146.076 casos pendentes e 113.874 casos novos. 2.5.2 Área Penal O Direito é uma área do conhecimento jurídico que abrange diversos temas, os quais estão divididos por áreas, quais sejam, Constitucional, Civil, Administrativo, Eleitoral, Tributário, Econômico, Ambiental, Militar, Penal, entre outros, cada qual com suas especificidades. 36 Dentre as áreas jurídicas supramencionadas, este trabalho tem por escopo criar uma ferramenta que auxilie o profissional da área jurídica encontrar jurisprudência relacionadas aos crimes da parte especial do Direito Penal, artigos 121 ao 128, do Código Penal Brasileiro. Segundo Capez (2000, p. 18), ao escrever sobre Direito Penal, preceitua que: O Direito Penal é o segmento do ordenamento jurídico que detém a função de selecionar os comportamentos humanos mais graves e perniciosos à coletividade, capazes de colocar em risco valores fundamentais para a convivência social, e descrevê-los como infrações penais, cominando-lhes, em consequência, as respectivas sanções, além de estabelecer todas as regras complementares e gerais necessárias à sua correta e justa aplicação. A ciência penal, por sua vez, tem por escopo explicar a razão, a essência e o alcance das normas jurídicas, de forma sistemática, estabelecendo critérios objetivos para sua imposição e evitando, com isso, o arbítrio e o casuísmo que decorreriam da ausência de padrões e da subjetividade ilimitada na sua aplicação. Mais ainda, busca a justiça igualitária como meta maior, adequando os dispositivos legais aos princípios constitucionais sensíveis que os regem, não permitindo a descrição como infrações penais de condutas inofensivas ou de manifestações livres a que todos têm direito, mediante rígido controle de compatibilidade vertical entre a norma incriminadora e princípios como o da dignidade humana. Portanto o principal motivo para a escolha dessa área deve-se ao fato de ser um assunto muito polêmico e preocupante, pois atinge a liberdade, noticiadas e comentadas no dia a dia, pelos meios de comunicações (redes de tv, jornais, sites de notícias,...), e utilizada por inúmeros profissionais do Direito (juízes, advogados, estagiários,...) que atuam na área penal. Além disso, os estudos concentrados na área penal, Parte Especial do Código Penal Brasileiro, artigos 121 a 128, de maneira sucinta, torna mais viável e prática a demonstração da funcionalidade da ferramenta de busca de jurisprudência no Poder Judiciário Catarinense. 2.5.3 Jurisprudência Na linguagem técnica jurídica, a jurisprudência possui varias definições e algumas são apresentadas a seguir. Segundo Reale (2002, p.128), a palavra jurisprudência significa "a forma de revelação do Direito que se processa através do exercício da jurisdição, em virtude de uma sucessão harmônica de decisões dos tribunais". Já segundo Diniz (1993), jurisprudência é o conjunto de decisões uniformes e constantes dos tribunais, resultante da aplicação de normas a casos semelhantes, constituindo uma norma geral 37 aplicável a todas as hipóteses similares e idênticas. É o conjunto de normas emanadas dos juízes em sua atividade jurisdicional. Montoro (1991) interpreta jurisprudência não apenas pelo conjunto de julgados acerca de um tema, mas especialmente que sejam "no mesmo sentido" ou "que guardem, entre si, uma linha essencial de continuidade e coerência". Neste sentido, a jurisprudência visa diminuir os litígios, reduzir os inconvenientes da incerteza do Direito, e possibilita uma maior rapidez nas decisões, uma vez que fornece subsídios valiosos ao magistrado (DINIZ, 1993). Além disso, a jurisprudência permite às partes terem uma visão mais clara da doutrina, no sentindo de observar como seriam julgados casos análogos, evitando, em alguns casos, que novas disputas sejam iniciadas, por saberem a linha de orientação do julgador (REALE, 2002). 2.6 TERMINOLOGIA A terminologia pode ser definida como o conjunto de termos específicos ou sistema de palavras que delimita conceitos próprios de uma determinada área, sendo também o estudo que procura identificar e delimitar os conceitos próprios de uma arte, ciência, profissão etc., e a nomenclatura de cada um desses por meio de um determinado vocábulo (HOUAIS, 2001). 2.6.1 Linguagem Especializada Uma língua é o sistema de sinais apropriados a uma notação (MICHAELIS, 2009). O conjunto dos sinais que compõem o idioma falado ou escrito comum a uma coletividade forma o seu léxico. O léxico é constituído por um sistema de unidades, conhecido como unidades léxicas, que têm em si o conhecimento geral desta comunidade (REIS, 2010). Assim, a língua geral é o sistema de comunicação oral e escrita de uso cotidiano e geral em uma comunidade linguística (PAVEL; NOLET, 2002). Nas atividades humanas especializadas, que exigem longo período de aprendizado para seu conhecimento e experiência para a sua prática, as unidades léxicas da língua geral também são especializadas. Língua especializada é a língua cujo seu vocabulário e modo de uso é próprio de uma determinada atividade ou grupo de pessoas (HOUAIS, 2001) (p.ex., a língua dos juristas). A 38 língua especializada tem por característica a tentativa, por parte dos locutores, de minimizar as ambiguidades, para facilitar a transmissão de conhecimento (MACIEL, 2010). Com o objetivo de balizar o comportamento das unidades léxicas especializadas surgiu a Terminologia, (utiliza-se a letra inicial maiúsculo para designar atividade e teoria (ALMEIDA, 2010)). A palavra pode ser considerada a unidade básica do léxico, segundo o estudo das palavras, e tecnicamente chamada de unidade léxica (OLIVEIRA; ISQUERDO; ALVES, 2007). Contudo, um grupo de palavras pode comportar-se como uma única unidade léxica, esse processo é chamado de lexicalização (PAVEL; NOLET, 2002). O conceito é o conhecimento equacionado, mapeado, identificado e organizado mentalmente por um especialista, formado pela combinação mental de características de um objeto concreto ou abstrato, real ou imaginário. Logo, um conceito é a organização metal de um conhecimento, uma unidade de pensamento ou conhecimento, podendo ser explicitado e compartilhado, na comunidade especializada por meio de uma unidade lexical especializada denominada termo. Porém, são distintos conceito e termo, o termo é o referencial que guia a mente humana na organização mental do conhecimento (FRANCELIN; KOBASHI, 2011). Um termo está associado a um conceito em uma linguagem especializada, podendo ser constituído por uma ou mais palavras. O termo quando constituído de uma única palavra é denominado “termo simples” e quando mais de uma palavra são necessárias para constituir um termo, este é chamado de “termo complexo”. Contudo, segundo a Teoria Geral da Terminologia (TGT), tanto o termo simples quanto o termo complexo estão associados a um conceito único, admitindo apenas uma interpretação no domínio da área especializada (ALMEIDA, 2010). Na mineração de texto o número de palavras (“n”) que formam uma unidade léxica, sendo ela um termo ou não, determina o seu “peso”. Portanto, uma unidade léxica simples ou termo simples possui peso igual a um, enquanto que uma unidade léxica composta por duas palavras possui peso igual a dois e assim sucessivamente (VIEIRA, 2010). Uma das dificuldades na distinção entre unidade léxica comum e um termo ocorre quando o responsável pelo reconhecimento do termo não faz parte da comunidade especializada. Um exemplo prático da dificuldade semântica, o termo “árvore” que na informática representa a “estrutura de dados hierárquica e complexa”, na botânica está associado a “planta de grande porte” (VILLAVICÊNCIO; RAMISCH, 2010). 39 As características morfológicas e léxicas não são suficientes para identificar todos os termos de uma linguagem especializada, pois, nem todos possuem marcas formais. Portanto é fundamental a presença de um especialista da atividade específica na equipe de estudo (BARBOSA, 2013). O texto caracterizado por uma estrutura esquemática global é definido como um texto que possui uma superestrutura textual, composta de categorias que definem a ordem e relações entre seus fragmentos de texto (VIEIRA, 2010). Um texto que apresenta as partes introdução, objetivo, metodologia, resultado, discussão, conclusão e referências bibliográficas; é reconhecido pelo pesquisador como um artigo cientifico por que a superestrutura textual assim o identifica. Sendo assim, a superestrutura textual facilita à generalização, a recordação, a produção, além de definir a ordem e relação das partes que o compõe (VIEIRA, 2010). Observa-se que a própria superestrutura textual é uma informação que pode auxiliar no processo de mineração de texto. 40 3 TRABALHOS RELACIONADOS Na busca por bibliografia inerente à mineração de textos, alguns trabalhos foram selecionados e são apresentados de forma resumida nas seções deste capítulo. Procurou-se extrair dos trabalhos apresentados “lições aprendidas”, buscando evitar possíveis erros ou dificuldades enfrentadas, bem como avaliar a possível repetição de processos e decisões consideradas mais adequadas pelos autores dos trabalhos apresentados. 3.1 AGRUPAMENTO JURÍDICOS E CATEGORIZAÇÃO DE DOCUMENTOS Este trabalho tem como de partida motivacional a implantação do processo eletrônico em janeiro de 2010. Furquim (2011) sugere o uso dos documentos anexados aos processos como argumentos de busca. Propõe o uso do algoritmo de clustering parcialmente supervisionado. Tem como objetivo, a partir dos processos eletrônicos adentrados nas cortes espalhadas pelo país, encontrar jurisprudência adequada à questão demandada para a ação proposta. Propõem utilizar o inteiro teor e não somente as ementas que, segundo o autor é costumeiramente utilizada nas consultas disponibilizadas pelos tribunais brasileiros. Além disso, procura evitar que o usuário necessite usar de lógicas booleanas disponibilizadas para a realização de consulta que muitas vezes são de difícil compreensão para os profissionais do Direito. Possibilitando ainda encontrar documentos referentes ao assunto em questão, ainda que estes não apresentem qualquer palavra informada nos argumentos de pesquisa. Por desconhecer os temas tratados, o autor optou pela implementação da geração de classes por meio de um agrupador de documentos com o objetivo de treinar uma categorização. Definiu dois quesitos para a implementação, o primeiro visando a redução de erros referentes a classificação detectados nas ementas dos documentos da jurisprudência e o segundo de não exigir uma configuração prévia para a descoberta das classes a serem usadas pelo categorizador. Furquim (2011), adotou o algoritmo de Charu, Stephen e Philip(2004) que propõe agrupar os clusters que apresentam centróides muito próximos e remover clusters que apresentam pequena quantidade de documentos, contudo, realizou algumas alterações, consideradas por ele como evoluções. Eliminou o descarte de documentos e o descarte de clusters, incluiu operação de divisão de clusters e testes das variações no limiar para união de clusters. O algoritmo proposto por Furquim (2011) pressupõem o relacionamento de um-para-um entre os grupos gerados e as classes utilizadas no treinamento do classificador. Para a execução do agrupamento os documentos que compõem o corpus da jurisprudência 𝐽 são submetidos a um processo de agrupamento, gerando assim grupos 𝑆⃗𝑖" . Novos documentos 𝑃𝑗 recebidos pelo tribunal passam pela categorização que se utiliza das classes geradas, 𝑆⃗𝑖" , para a execução da classificação. Após obter-se a classe do documento a jurisprudência correspondente é recuperada. A figura 2 ilustra o processo proposto por Furquim (2011). Figura 2 – Processo de Agrupamento e Classificação Fonte: Furquim (2011). O processo proposto foi aplicado em um exemplo composto de um corpus, uma base lexical, um parser e um tagger. O corpus foi constituído por documentos de jurisprudência do Tribunal Regional Federal da 4ª Região, foram coletados documentos do intervalo de datas compreendidos entre 08/2006 e 05/2009, num montante de 43.806; deste total restaram apenas 1.192 documentos após o descarte de documentos com termos distintos dos tesauros utilizados e da análise de um especialista humano. A avaliação dos agrupamentos foi realizada por meio da utilização de cálculo das medidas 𝑝̅ − 𝑀𝑒𝑎𝑠𝑢𝑟𝑒 e Relative Hardness Measure. Segundo Furquim (2011). Essas medidas foram utilizadas, pois, na bibliografia pesquisada 𝑝̅ − 𝑀𝑒𝑎𝑠𝑢𝑟𝑒 e Relative Hardness Measure eram as medidas que mais se aproximavam de uma avaliação humana. Os resultados alcançados foram superiores aos resultados da aplicação do algoritmo sem as evoluções proposta segundo Furquim (2011). 42 A avaliação da categorização foi realizada por um especialista humano com experiência em pesquisa e classificação de documentos jurídicos. Foi implementado um programa que apresenta duas colunas de textos. Uma das colunas apresenta o documento que havia sido classificado e a outra apresenta os documentos que compõem o grupo que gerou a classe correspondente. O programa implementado permitia ao especialista apenas indicar se o documento havia sido bem ou mal classificado. Segundo Furquim (2011), um documento era considerado bem classificado quando os resultados continham, absolutamente, todas as referências à jurisprudência necessária para redigir uma argumentação. Ao final Furquim (2011) faz considerações a respeito das dificuldades de classificação dos termos jurídicos que muitas vezes são genéricos e aparecem com frequência em muitos documentos. Relata ainda a existências de recurso judiciais que acabam por “confundir” o algoritmo agrupador e por consequência o categorizador e, apresenta sugestões para resolução dos problemas encontrados. Segundo os especialistas, que realizaram a avaliação dos resultados de agrupamento e categorização propostos por Furquim (2011), uma ferramenta de busca como essa poderia reduzir consideravelmente o tempo gasto em pesquisa por jurisprudência. Um dos especialistas relatou que usando os mecanismos de pesquisa dos tribunais, antes de encontrar a informação necessária a sua argumentação, ele lê em média 35 documentos; o outro especialista complementou, afirmando que se a solução proposta neste trabalho apresentar um único documento relacionando ao tema buscado, sendo mais útil que as buscas convencionais que apresentam dezenas ou mesmo centenas de casos muito genéricos. 3.2 UMA ARQUITETURA PARA DESCOBERTA DE CONHECIMENTO A PARTIR DE BASES TEXTUAIS Silva (2012) propõe uma arquitetura computacional baseada na computação distribuída para manipulação de grandes bases de informação textual visando contribuir no processo de Descoberta de Conhecimento em texto. A apresentação de sua proposta foi dividida em duas etapas, uma do modelo lógico e a outra do modelo físico. O modelo lógico apresenta a parte de software que lida com conteúdo textual, visando oferecer suporte às tarefas de descoberta de conhecimento e Silva (2012) denomina o conjunto de tarefas desse modelo de “Serviço de Correlação”. A Figura 3 apresenta o modelo lógico proposto por Silva (2012). 43 Figura 3 – Modelo lógico da arquitetura de descoberta de conhecimento em bases textuais Fonte: Adaptado de Silva (2012). Na etapa que trata do modelo lógico, Silva (2012) faz a inserção de novos termos, classes e domínios formando conceitos por meio da associação dos termos as classes, buscando agregar sentido aos termos. Para exemplificar Silva (2012) apresenta o termo “Jaguar”, que quando associado a classe “Carro” representa um automóvel, porém, quando associado a classe “Animal” representa o felino encontrado em florestas. Por fim, Silva (2012) faz a associação dos conceitos aos domínios (domínio do problema) essa tarefa é realizada manualmente com o auxílio de um especialista. Silva (2012) destaca que existe a possibilidade de se usar semântica por meio de classes e domínios específicos, permitindo agregar funcionalidades em serviços de busca que não utilizam semântica na sua execução. É o caso geralmente encontrado em ferramentas disponibilizadas em sites de tribunais. No modelo lógico proposto por Silva (2012), após as associações de termos, classes e domínios, é feita uma requisição de termos obtendo-se como resultado um conjunto com todos os conceitos gerados anteriormente ou filtrados por domínios específicos, que serão utilizados na tarefa de análise. 44 No passo seguinte Silva (2012), faz a geração de frequência individual por conceito. O processo consiste em contar o número de páginas em que cada conceito é encontrado e ao final cada um dos conceitos terá seu valor de frequência. Então conceito e frequência são armazenados na base de dados. Além disso, a data do sistema é registrada, pois, o processo é temporal. O Serviço de Correlação faz, então, a divisão da tarefa. A lista adquirida anteriormente é separada em listas menores chamadas de “trabalho (job)” com o objetivo que um conjunto de computadores responsável por atender ao serviço possa chegar a uma solução de forma distribuída. Silva (2012) define “trabalho (job)” como o processo de gerar a frequência conjunta dos conceitos e calcular o coeficiente de correlação. Os trabalhos (jobs) são enviados aos computadores que compõem a estrutura de grid (modelo computacional que divide tarefas entre diversas máquinas), um serviço de correlação monitora a execução dos trabalhos repassando um novo trabalho ao computador que se encontrar ocioso. Esse processo se repete até que todos os itens da lista geral sejam concluídos, finalizando assim, a tarefa. As etapas seguintes são executadas de forma distribuída. A forma de gerar a frequência conjunto é semelhante ao processo para geração da frequência individual, porém a frequência conjunta refere-se ao número de documentos em que dois conceitos quaisquer apareçam simultaneamente. A partir das frequências individuais e conjuntos Silva (2012) calcula o coeficiente de correlação. O modelo físico descreve os componentes tecnológicos e os serviços, e como estes se interconectam. É feita uma breve descrição do serviço de consulta BING utilizado no trabalho. Segundo Silva (2012), o BING permite a realização de 7 (sete) pesquisas por segundo para cada IP (Internet Procotol) válido enquanto a API (Application Programming Interface) de busca do Google® possui um limite de 100 consultas diárias. Silva (2012) não relata nenhum tipo de limitação relacionado ao número de consultas diárias do BING ficando a limitação diária a cargo do número de máquinas com IP válidos e o intervalo de tempo. Segundo Silva (2012), o formato do resultado das consultas do BING são XML ou JSON. Neste trabalho a optou-se por utilizar o JSON que apresenta uma estrutura mais simples em relação ao formato XML. Ainda segundo Silva (2012), JSON é menor e mais rápido usando menos recursos. Outro ponto destacado pelo autor é que a única informação utilizada pelo modelo de correlação proposto é o número de páginas em que se encontra determinado termo, assim, a 45 consulta foi refinada para diminuir o tamanho JSON. Um exemplo de consulta elaborado por Silva (2012) pode ser visto no Quadro 3. url de exemplo de consulta http://api.bing.net/json.aspx?Appid=837AB&query="ufsc"&sources=web&Web.Count=1 Quadro 3: URL de consulta usando o serviço de busca BING. Fonte: Adaptado de Silva (2012) Segundo Silva (2012), o serviço de consulta Bing® versão gratuita se mostrou adequada ao serviço de correlação, sendo caracterizado pelo autor deste trabalho como um dos maiores servidores de consulta, possuindo um bom desempenho e boa confiabilidade. Como resultado da consulta mostrado no Quadro 3, o serviço de busca retornou um objeto JSON conforme estrutura apresentada na Figura 4. O objeto JSON apresentado está resumido, algumas informações não utilizadas foram retiradas pelo autor. Figura 4 – Exemplo de resposta do servidor de consulta em formato JSON. Fonte: Silva (2012). Segundo Silva (2012), a única informação pertinente se refere ao número de páginas em que o termo pesquisado é encontrado. No exemplo apresentado, a linha 7 da Figura 4 mostra um total de 5.290.000 páginas encontradas para o termo “ufsc”. Após a realização das consultas é gerada a frequência conjunta entre dois termos, calculado o coeficiente de correlação e armazenada essa informação no banco de dados que utiliza o conceito de Data Warehouse (DW). Segundo Silva (2012), Data Warehouse dá suporte às demandas de alto desempenho por dados e informações. 46 Para calcular o coeficiente de correlação Silva (2012) utilizou a equação de Phi-squared que, segundo ele, gera uma normalização dos resultados entre 0 e 1 facilitando a interpretação na análise de cenários. O trabalho desenvolvido por Silva (2012) foi executado 19 vezes, entre 16/05/2012 a 06/06/2012, sendo uma execução por dia. Foi criado um cenário visando uma variação temporal pelo fato de que a análise de correlação é realizada em médio e longo prazo. Foram utilizados na execução 11 conceitos que representam eventos sazonais ou que estavam em evidência na época da execução. O “Dia das mães”, “Dia dos Namorados”, “Eleições”, “Vestibular de inverno”, “Olimpíadas” e “Brasileirão” foram escolhidos por conta sazonalidade. Os conceitos “crise”, “Euro”, “Dólar”, “Grécia” e “Londres” estavam em evidência na época da execução. Segundo Silva (2012), as classes e domínios forma definidos como genéricos pelo fato do serviço de consulta não possuir semântica. Sendo assim, irrelevante a definição de classes e domínios específicos para o modelo proposto. Contudo, o conceito pode deixar de ser entendido como tal passando a ser apenas um termo. Os resultados da execução são apresentados por Silva (2012) em forma de histograma e dados numéricos. O conceito “Dia das mães”, por exemplo, apresenta uma frequência individual de aproximadamente 40 milhões no primeiro dia de execução e sofre uma queda gradual passa a apresentar uma frequência individual de 25 milhões no último dia de execução. Com relação à frequência conjunto, Silva (2012) analisou os conceitos “Crise” e “Grécia” que apresentaram picos de aproximadamente 18 milhões no sétimo e oitavo dia de execução e uma média nos outros dias de execução entorno de 10 milhões. Foi observado que esses picos ocorreram em dias de divulgação de notícias que poderiam afetar de forma drástica a economia do país. De acordo com Silva (2012), com base nos resultados alcançados pode-se afirmar que o modelo proposto atendeu aos seus propósitos, permitindo a análise sobre determinado domínio de aplicação. Sendo possível a elaboração de representações visuais como histogramas, gráficos, grafos, entre outros. A estrutura física distribuída formada pelo conjunto de computadores se mostrou flexível e escalável com possibilidade de expansão se necessário, permitindo a inclusão de computadores com hardware e sistemas operacionais distintos. 47 3.3 APRENDIZADO NÃO SUPERVISIONADO DE HIERARQUIAS DE TÓPICOS A PARTIR DE COLEÇÕES TEXTUAIS DINÂMICAS Marcacini (2011) propõem o uso de métodos de aprendizado não supervisionado de hierarquias de tópicos baseada em agrupamento incremental de termos denominada IHTC – Incremental Hierarchical Term Clustering para o uso em coleções textuais dinâmicas. Assim, aplica o agrupamento incremental na construção e atualização de uma representação condensada dos textos, que mantém um sumário das principais características dos dados. O método proposto por Marcacini (2011) atua na etapa de extração de padrões do processo de mineração de textos e foi divida em quatro fases, conforme Figura 5. Na primeira fase é criada uma rede de coocorrência de termos, na segunda fase é realizado o agrupamento de termos, a terceira fase visa o agrupamento de documentos e, por fim, a quarta e última fase realiza a extração da hierarquia de tópicos. Buscando assim manter uma representação consistente da coleção textual, de forma incremental e utilizando os grupos de termos no apoio do aprendizado hierárquico de tópicos. Figura 5 – Visão geral do método IHTC. Fonte: Marcacini (2011). Marcacini (2011) define a rede de coocorrência como um grafo GRAFO (V,E,W), sendo “V” a representação do vértices, “E” as arestas que relacionam dois vértices e “W” os pesos associados as arestas. Os vértices representam os termos selecionados na coleção textual para 48 representação de cada documento no modelo espaço-vetorial. São selecionados apenas os termos de uma relação de coocorrência com outro termo da coleção, que ocorrem ao mesmo tempo em múltiplos documentos da coleção textual. Segundo Marcacini (2011), dois termos identificam uma aresta quando existe uma coocorrência significativa entre eles. Marcacini (2011) considera uma coocorrência significativa quando um termo ocorre em quantidade maior que um limiar de frequência mínima, identificado automaticamente por algoritmo específico desenvolvido para o IHTC. Os pesos das arestas são valores numéricos que identificam a intensidade da relação entre dois termos. Marcacini (2011) propôs o uso de um centróide para identificar essa relação, assumindo ser uma forma sucinta de representar um conjunto de documentos no modelo espaçovetorial e para associar um centróide a uma aresta usou a seguinte equação: 𝑤(𝑒) = 𝐶(𝑡𝑖 ⋂ 𝑡𝑗 ) Sendo, “𝑤(𝑒)” a função que associa um centróide a uma aresta “𝑒”, “𝐶(𝑡𝑖 ⋂ 𝑡𝑗 )” o centróide que representa o subconjunto de documentos com ambos os termos “𝑡𝑖 ” e “𝑡𝑗 ”. Segundo Marcacini (2011), a forma como a coocorrência de termos é aplicada neste trabalho, o torna capaz de identificar relações significativas entre os termos com base na frequência de coocorrência e extrair subconjuntos de documentos, onde as arestas podem ser utilizadas como candidatos a descritores. Marcacini (2011) apresenta ainda um exemplo, com uma lista de dez títulos de livros onde simula a aplicação de seu algoritmo obtendo um resultado que associa corretamente os termos apresentados na lista. Observa ainda que, por meio da sobreposição de grupos, consegue identificar múltiplos tópicos, considerando útil para a identificação de tópicos em trabalhos relacionados à organização de informação textual. No agrupamento de documentos, Marcacini (2011) mapeou os documentos aos grupos de termos mais próximos, por meio da (dis)similaridade. Obtendo os descritores automaticamente durante o processo. Nos casos de empate, quando um documento está próximo a dois ou mais grupos, Marcacini (2011) adotou a estratégia de selecionar aleatoriamente um dos grupos empatados para mapear ao documento. Assim, ao final do processo a coleção textual apresenta-se organizada em grupos, onde um grupo de documentos está associado a um grupo de termos auxiliando na descrição do seu conteúdo. 49 Marcacini (2011) desenvolveu um algoritmo para o método IHTC com a função de instanciar a etapa de extração de padrões da mineração de texto, com o objetivo de atuar na organização de coleções textuais dinâmicas em uma hierarquia de tópicos. O algoritmo desenvolvido é responsável pela construção e manutenção incremental da rede de coocorrência, agrupamento incremental de termos, agrupamento incremental de documentos e extração da hierarquia de tópicos. Na construção e manutenção incremental de rede de coocorrência, Marcacini (2011) utilizou o método denominado “Top-K Frenquent Elements”, originalmente criado para estimar a frequência de elementos em um “data stream”. No agrupamento incremental de termos, Marcacini (2011) adotou uma estratégia similar a do algoritmo de Leader, porém, sem utilizar um parâmetro com o valor de similaridade mínima (threshold). Assim, os objetos iniciais formam grupos unitários até um limite pré-estabelecido, depois disso, os novos objetos são alocados conforme a similaridade. A atualização do agrupamento incremental de documentos acontece em conjunto com a atualização do agrupamento incremental de termos. Desta forma, sempre que uma iteração de agrupamento de termos é processada o agrupamento incremental de documentos também sofre atualização. Após as etapas anteriormente descritas, a extração da hierarquia de tópicos é realizada utilizando uma representação condensada da coleção textual agrupada em termos e documentos. Na avaliação do algoritmo IHTC proposto neste trabalho, Marcacini (2011) comparou seu trabalho com os algoritmos de agrupamento incremental Leader, DCTree e Buckshot, na tarefa de obter a representação condensada dos textos. Realizou ainda uma análise da eficácia de recuperação dos agrupamentos hierárquicos gerados a partir das representações condensadas dos textos e fez uma análise do desempenho dos descritores na recuperação dos documentos dos grupos, comparando a seleção de descritores obtidos pelo algoritmo IHTC e a seleção de descritores baseada em centróides. Segundo Marcacini (2011), na avaliação foram utilizadas oito coleções textuais de diferentes tamanhos e características, sendo a menor com 2301 e a maior com 18828 documentos. No processo de avaliação, Marcacini (2011) definiu o número máximo de grupos em 500, este valor foi adotado para todos os algoritmos participantes das comparações. O primeiro critério analisado Marcacini (2011) foi o da qualidade da representação condensada dos textos, o algoritmo IHTC obteve o melhor desempenho, apresentando os menores 50 valores de Entropia em cinco das oito coleções textuais, o algoritmo Leader ficou em segundo com dois menores valores de Entropia e o algoritmo DCTree conseguiu um menor valor de Entropia. Marcacini (2011) utilizou testes estatísticos de significância para confirmar os resultados alcançados e apenas um caso apresentou uma diferença estatisticamente significativa sem, contudo, alterar os resultados das comparações apresentados. Marcacini (2011) verificou que os algoritmos Leader e DCTree apresentaram um desempenho computacional superior ao IHTC na manutenção da rede de coocorrência de termos para agrupamento incremental. Com relação a eficácia de recuperação do agrupamento hierárquico de documentos Marcacini (2011) aplicou um processo de agrupamento hierárquico sem uso da representação condensada, com o algoritmo Bisecting k-means em uma execução tradicional. Nesta avaliação o algoritmo de Bisecting k-means apresentou o melhor desempenho, com três dos melhores resultados e uma média geral superior a dos outros algoritmos da comparação. O algoritmo IHTC ficou em segundo também com três melhores, mas, com uma média geral inferior ao algoritmo Bisecting k-means. Por fim, na avaliação da eficácia de recuperação dos descritores, Marcacini (2011) executou dois processos de seleção um baseado em centróides usualmente aplicado na literatura e o outro do IHTC que obtém os conjuntos de descritores durante o agrupamento incremental. Os resultados mostram que o IHTC apresentou melhores resultados de recuperação de descritores em cinco das oito coleções textuais avaliadas. Destaca-se que o algoritmo IHTC mostrou resultados competitivos com relação aos algoritmos analisados. 3.4 ANÁLISE COMPARATIVA O trabalho proposto por Furquim (2011) é mais específico, visando ser utilizado na área jurídica e, assim, pode apresentar um melhor desempenho por ter uma área delimitada e fazer uso de dicionários específicos do domínio do problema. Como Marcacini (2011), Furquim (2011) faz uso de centróides no processo de agrupamento dos documentos e ambos trabalham com o conceito de subgrupos. Os três trabalhos Silva (2012), Furquim (2011) e Marcacini (2011) apresentados utilizam em algum momento do processamento do texto a correlação dos termos para promover o agrupamento 51 dos documentos, contudo, apenas o trabalho de Furquim (2011) faz um treinamento inicial antes da realização do processo de mineração de textos. Além disso, os três trabalhos utilizam os processamentos realizados em coleções textuais analisadas para melhorar seu desempenho em análises posteriores. Ao analisar as avaliações realizadas nos três trabalhos apresentados pode-se concluir que o trabalho desenvolvido por Marcacini (2011) apresenta técnicas que podem alcançar resultados que atendam às necessidades dos seus usuários, relativos a desempenho e eficácia apresentados. Destaca-se, porém, que o trabalho de Furquim (2011) foi elaborado para atender uma área específica podendo, assim, alcançar desempenho e resultados superiores ao trabalho desenvolvido por Marcacini (2011). Outra questão a ser analisada quando se trata do processamento de grandes quantidades de dados textuais é a velocidade de processamento. Logo, o trabalho proposto por Silva (2012) pode apresentar desempenho superior por se utilizar do processamento distribuído por meio de uma estrutura de grid computacional. A Tabela 2 apresenta dados comparativos entre os trabalhos apresentados. 52 Tabela 2. Dados comparativos entre os trabalhos apresentados. Referência Objetivo Furquim (2011) Encontrar jurisprudência por Processos judiciais meio de agrupamento e eletrônicos categorização de texto Realizar a mineração de Fontes diversas textos por meio de uma estrutura computacional distribuída Silva (2012) Origem dos dados Marcacini (2011) Organizar coleções textuais Fontes diversas dinâmicas em um hierarquia de tópicos. Vieira (2015) Encontrar jurisprudência por Diários da Justiça meio da mineração de textos Eletrônicos do TJSC Processamento proposto Algoritmo TClus de Charu, Stephen e Philip modificado pelo autor. framework/middleware GridGain utilizado no processo de correlação de forma distribuída. Phi-squared para determinar a correlação entre os termos e documentos. IHTC - Incremental Hierarchical Term Clustering (Algoritmo desenvolvido pelo autor) Naïve Bayes – Ferramenta Weka Avaliação 𝑝̅ − 𝑀𝑒𝑎𝑠𝑢𝑟𝑒 e Relative Hardness Measure Histogramas para apresentar os resultados e faz a avaliação por meio de comparações dos resultados. Algoritmo de agrupamento hierárquico Comparativa com consultas manuais e parecer do especialista O trabalho de Furquim (2011) foi utilizado como referência para o desenvolvimento do trabalho aqui proposto, tendo em vista que ambos abordam o tema jurisprudência. Em seu trabalho Furquim (2011) relata algumas dificuldades encontradas e sugere formas de resolver ou contornar os problemas. Assim, aproveitou-se das “lições aprendidas” por Furquim (2011) para tentar desenvolver uma solução com desempenho semelhante ou superior. Foi adotado o agrupamento e a classificação prévia dos termos que compõem a ontologia, visando especificar e reduzir o número de termos buscados para acelerar o processamento. Silva (2012) tem como característica principal a computação distribuída e deste trabalho foi possível aproveitar as ideias de divisão de tarefas e processamento paralelo, procurando assim agilizar a execução das etapas de mineração de texto. Silva (2012) adotou ainda o formato JSON para retorno dos resultados, o qual poderia ter sido uma alternativa utilizada neste trabalho. Contudo, optou-se por não utilizar JSON, pois, demandaria o desenvolvimento de uma estrutura de classes para o tratamento deste padrão de objeto. No trabalho de Silva (2012), o serviço de busca utilizado retornava um objeto JSON, havendo a necessidade de tratar os dados apresentados. O uso de métodos de aprendizado não supervisionado proposto por Marcacini (2011) pode ser uma alternativa para aumentar a capacidade do algoritmo de busca proposto neste trabalho. Assim, a partir de uma ontologia que abrangem apenas os artigos de 121 a 128 do Código Penal Brasileiro, pode ser implementado um algoritmo de aprendizado não supervisionado e abranger um maior número de artigos. 3.5 CONSIDERAÇÕES SOBRE OS TRABALHOS RELACIONADOS Observa-se que, a mineração de texto pode ser utilizada em áreas variadas do cotidiano, podendo ser combinada com processamento distribuído e se beneficiar dos mais diversos algoritmos desenvolvidos para a descoberta de conhecimento ou algoritmos adaptados de outras áreas para mineração de textos. Ressalta-se que, ao analisar os trabalhos apresentados pode-se verificar que estes apresentam características bem distintas. Na Seção 3.1 o trabalho de Furquim (2011) tem como uma das características principais o uso de um dicionário de termos podendo assim apresentar resultados mais adequados a partir dos termos de busca. Na Seção 3.2 se destaca o processamento distribuído proposto por Silva (2012), que pode agilizar o processo de descoberta de conhecimento por meio da divisão das tarefas do processo de mineração de textos. Por fim, na Seção 3.3 o trabalho de Marcacini (2011) propõem o uso métodos de aprendizado não supervisionado em coleções textuais dinâmicas. Entretanto, mesmo apresentando características distintas, o foco é mantido na descoberta de conhecimento e mineração de textos, permitindo concluir que o tema, mineração de textos ainda pode ser muito explorado, por meio das mais diversas combinações de software e hardware. 55 4 DESENVOLVIMENTO Este trabalho visou o desenvolvimento de uma ferramenta de busca por jurisprudência em textos que poderá auxiliar os profissionais do Direito. As premissas e objetivos estão definidos no Capítulo 1 na Seção 1.2, o Capítulo de desenvolvimento apresenta a visão geral, os requisitos e a modelagem da aplicação. No processo de desenvolvimento do trabalho algumas funcionalidades foram criadas buscando atingir o objetivo final, dentre elas um webcrawler, tendo como finalidade buscar os DJEs no site do TJSC, uma funcionalidade de remoção de stopwords, que faz a remoção de palavras consideradas irrelevantes, uma funcionalidade de stemming, para extrair apenas os radicais das palavras. Além disso, foi desenvolvida uma ontologia embasada no Código Penal Brasileiro com o auxílio de um especialista do Direito e, um tesauro com base no tesauro disponibilizado pelo STF, possibilitando uma maior abrangência dentro escopo proposto. 4.1 VISÃO GERAL DA APLICAÇÃO A aplicação foi desenvolvida usando a linguagem de programação Java e tendo como base principal a API Weka e a biblioteca Apache PDFBox. Esses recursos foram escolhidos por possibilitar uma integração entre si e por apresentarem as funcionalidades necessárias para atingir os objetivos definidos no presente trabalho. Além disso, foi utilizado o banco de dados MySQL para armazenamento de dados que servem de base para a aplicação. A biblioteca Apache PDFBox é um projeto mantido pela Apache e possibilita a manipulação de documentos com extensão “PDF”. O trabalho tem como um dos seus objetivos ler os DJEs apresentados com extensão “PDF” e, assim, a biblioteca auxiliou na leitura e decomposição do texto em tokens para posterior classificação com a API do Weka. O software WEKA foi desenvolvido pela Universidade de Waiko da Nova Zelândia e tem uma API Java que permite utilizar suas funcionalidades de mineração de dados sem a necessidade de usar a sua interface gráfica. A API disponibiliza uma série de algoritmos de mineração de dados e entre eles o algoritmo de Naïve Bayes, definido como sendo o algoritmo a ser utilizado na solução aqui proposta. A Figura 6 apresenta uma visão geral inicial da ferramenta proposta neste trabalho. Figura 6 – Visão geral inicial da ferramenta O processo de busca desenvolvido inicia com a solicitação do usuário, que informa o intervalo de datas que deseja realizar a busca e o parâmetro pelo qual deseja encontrar jurisprudência apropriada. No passo seguinte o webcrawler recebe os parâmetros de entrada, monta as urls, recupera os DJEs e repassa-os para a biblioteca PDFBox, responsável pela conversão do documento em formato PDF para texto sem formatação. O texto inicialmente é decomposto em páginas e na sequência em tokens. O processo de busca proposto contava com as etapas de remoção de stopwords e Stemming (lematização) conforme a Figura 6. Entretanto, essas etapas foram removidas da ferramenta para que fosse possível o uso da ontologia, apresentada no Apêndice 1. A visão geral final da ferramenta passou a ser apresentada conforme a Figura 7. 57 A Figura 7 apresenta uma visão geral da ferramenta proposta neste trabalho. Figura 7 – Visão geral da aplicação Os tokens encontrados são categorizados de acordo com a ontologia e repassados para API Weka que realiza a classificação dos termos encontrados utilizando o algoritmo de Naïve Bayes, o resultado apresenta a relevância atribuída a cada termo encontrado e é ordenado pela frequência, finalizando o processo com a apresentação dos dados ao usuário. 4.2 DEFINIÇÃO DA ONTOLOGIA Uma ontologia é formada por conceitos que devem permitir descrever a área de domínio do conhecimento e as relações entre conceitos correspondentes e por axiomas. Assim, possibilita o compartilhamento da estrutura de informação entre pessoas e agentes de software (NUNES, FILETO, 2007). A ontologia utilizada neste trabalho foi definida considerando-se os termos mais relevantes encontrados nos artigos 121 a 128 do Código Penal Brasileiro, segundo a avaliação do especialista. O primeiro passo no processo de definição da ontologia foi descartar as palavras que quando subtraídas do texto não prejudicam sua interpretação, foram descartadas as preposições, artigos, pronomes e advérbios, palavras que servem apenas para dar sentido ao texto. Na sequência, as palavras restantes foram analisadas com o auxílio do especialista, buscando as palavras que 58 expressavam conceitos de domínio dos profissionais do Direito. O processo de análise contou ainda com o embasamento no tesauro disponibilizado no site do STF. A primeira versão da ontologia desenvolvida, apresentava diversos termos compostos, como pode ser observando no Apêndice 2. Contudo, no decorrer do desenvolvimento da ferramenta de busca, houve a necessidade de alterar a ontologia, os motivos da alteração são apresentados na Seção 4.7. A versão final da ontologia pode ser encontrada no Apêndice 1. 4.3 ANÁLISE DE REQUISITOS O processo de analisar os requisitos visa determinar os requisitos candidatos para os conceitos de produto que satisfarão as necessidades, expectativas e restrições dos stakeholders (partes interessadas que foram identificadas no plano de projeto) e, então, traduzir estes conceitos em requisitos Software Engineering Institute-SEI (2006). Este processo é frequentemente guiado pela criação de cenários que descrevem como o usuário final vai interagir com o sistema (PRESSMAN, 2006). Um cenário é tipicamente uma sequência de eventos que podem ocorrer no uso do produto e é utilizado para tornar explícitas algumas das necessidades dos stakeholders (SEI, 2006). A análise de requisitos redefine os requisitos em termos técnicos apropriados para o desenvolvimento da solução proposta (PFLEEGER, 2004). Um requisito pode ser definido como uma funcionalidade ou restrição que deverá ser atendida pelo sistema a ser desenvolvido (SOMMERVILLE, 2003). Segundo Pfleeger (2004), requisito é uma característica do sistema ou a descrição de algo que o sistema deverá ser capaz de realizar, para atingir os seus objetivos. O SEI (2006) define requisito como uma condição/capacidade exigida por um usuário para resolver um problema ou atingir um objetivo, ou uma condição/capacidade que deve ser atendida por um produto ou componente de produto para satisfazer um contrato, padrão, especificação ou outros documentos formalmente impostos. Os requisitos de software expressam as necessidades e restrições de um produto de software que contribui para a solução de algum problema do mundo real (IEEE, 2004). Os requisitos podem ser classificados em funcionais e não funcionais; o primeiro pode ser definido de forma simples, como uma funcionalidade que o software deve apresentar e o segundo 59 como uma restrição, que pode ser de hardware ou software. Essa classificação ajuda na descrição de requisitos (PFLEEGER, 2004). 4.3.1 Requisitos Funcionais Requisito funcional é aquele que descreve uma interação entre o sistema e seu ambiente, determinando como o sistema deve se comportar após a realização de uma ação (PFLEEGER, 2004). São apresentados a seguir os requisitos funcionais: RF01: A ferramenta deve fazer o download automático dos Diários da Justiça Eletrônicos em formato PDF; RF02: A ferramenta deve converter os arquivos PDF para texto sem formatação; RF03: A ferramenta deve decompor o texto em palavras (Tokens); RF04: A ferramenta deve remover as palavras (Tokens) irrelevantes (Stop Words); RF05: A ferramenta deve extrair os radicais das palavras (Tokens); RF06: A ferramenta deve identificar a similaridade entre as palavras (Tokens); RF07: A ferramenta deve agrupar as palavras (Tokens) similares; RF08: A ferramenta deve identifica a frequência de cada palavra (Token) no texto; RF09: A ferramenta deve aceitar apenas e-mail como login do usuário; RF10: A ferramenta não deve aceitar e-mails repetidos; RF11: A ferramenta deve permitir criar e excluir um usuário; RF12: A ferramenta deve apresentar uma tela para busca de jurisprudência; RF13: O usuário deverá poder informar a data inicial de pesquisa; RF14: O usuário deverá poder informar a data final de pesquisa; RF15: O usuário deverá poder informar um termo para pesquisa e; 60 RF16: O usuário deverá poder informar uma frase para pesquisa. 4.3.2 Requisitos não Funcionais Um requisito não funcional é também denominado de restrição e descreve alguma condição imposta pelo cliente ao sistema, limitando ou determinando assim as opções para a solução do problema (PFLEEGER, 2004). São apresentados a seguir os requisitos não funcionais: RNF01: A ferramenta deve ser desenvolvida em plataforma orientada a WEB; RNF02: A ferramenta deve ser desenvolvida na linguagem de programação Java; RNF03: A ferramenta deve utilizar o Banco de Dados MySQL; RNF04: A ferramenta deve utilizar a ferramenta WEKA no processo de mineração de texto; RNF05: A ferramenta deve solicitar autenticação de usuário e senha para acesso a ferramenta e; RNF06: A ferramenta deve atuar nos textos referentes aos crimes especificados na “parte especial” (artigos 121 a 128) do Código Penal Brasileiro. 4.3.3 Regras de Negócio De forma resumida, as regras de negócio são um conjunto de instruções que a aplicação desenvolvida deve contemplar. Uma regra de negócio pode ou não ser refletida na aplicação como uma funcionalidade, contudo, deverá definir a forma como uma ou mais funcionalidades são executadas na aplicação (SEI, 2006). São apresentadas a seguir as regras de negócio: RG01: O usuário da aplicação deverá informar seu e-mail para ter acesso a funcionalidade de consulta; RG02: O usuário da aplicação deverá sempre informar duas datas, sendo a data inicial igual ou inferior a data final; RG03: A data final não poderá ser superior a data atual e; 61 RG04: O termo a ser pesquisado pelo usuário deve fazer parte da ontologia desenvolvida neste trabalho. 4.4 MODELAGEM DA APLICAÇÃO O caso de uso é uma técnica frequentemente utilizada na elicitação de requisitos, descrevendo uma sequência de interações entre o sistema e um ator externo (uma pessoa, outro sistema computacional ou um dispositivo) para atingir um objetivo, que pode ser a realização de uma consulta com foco no que o usuário precisa fazer no sistema e identificando funções que visam atingir uma meta do cliente (FALBO, 2007). O Quadro 4 apresenta o caso de uso completo da aplicação: Quadro 4: Caso de uso completo da aplicação. UC Efetuar Login Fluxo principal Passo 1: O usuário informa o e-mail; Passo 2: O usuário informa a senha; Passo 3: O usuário clica no botão "Entrar"; Passo 4: A aplicação valida o e-mail informado; Passo 5: A aplicação valida a senha informada e; Passo 6: A aplicação apresenta a tela de "Pesquisar Jurisprudência". Fluxos alternativos A Passo 1: No "Passo 4" do fluxo principal a aplicação não valida o e-mail; Passo 2: A aplicação apresenta a mensagem MSG01 e; Passo 3: A aplicação retorna ao "Passo 1" do fluxo principal. B Passo 1: No "Passo 5" do fluxo principal a aplicação não valida a senha; Passo 2: A aplicação apresenta a mensagem MSG02 e; 62 Passo 3: A aplicação retorna ao "Passo 2" do fluxo principal. C Passo 1: O usuário clica no botão "Cadastrar usuário" e; Passo 2: A aplicação vai para o "UC Cadastrar usuário". Quadro 5: Caso de uso “Efetuar Login”. UC Cadastrar usuário Fluxo principal Passo 1: O usuário informa o e-mail; Passo 2: A aplicação valida o e-mail; Passo 2: O usuário informa a senha; Passo 3: O usuário clica no botão "Cadastrar" e; Passo 4: A aplicação apresenta a mensagem MSG03. Fluxo alternativo Passo 1: No "Passo 2" do fluxo principal a aplicação não valida o e-mail; Passo 2: A aplicação apresenta a mensagem MSG04 e; Passo 3: A aplicação retorna ao "Passo 1" do fluxo principal. Quadro 6: Caso de uso “Cadastrar Usuário”. UC Controlar Operações Fluxo principal Passo 1: O usuário escolhe as datas inicial e final para pesquisar; Passo 2: O usuário informa os parâmetros de pesquisa; Passo 3: O usuário clica no botão pesquisar; Passo 4: A aplicação valida as datas informadas; Passo 5: A aplicação valida os parâmetros de pesquisa; Passo 6: O módulo controlador passa o intervalo de datas para o módulo de coleta de dados; Passo 7: O módulo de coleta de dados devolve uma lista de documentos em uma estrutura de índice invertido; Passo 8: O módulo controlador passa essa lista de documentos para o módulo separador de texto; Passo 9: O módulo separador de texto devolve uma estrutura de índice invertido; Passo 10: O módulo controlador passa a estrutura de índice invertido de documentos para o módulo de remoção de stopwords e; Passo 11: O módulo de remoção de stopwords devolve a estrutura de índice invertido de documentos sem as stopwords. Fluxos alternativos A Passo 1: "No Passo 4" do fluxo principal se o usuário não escolheu nenhuma data; Passo 2: A aplicação preenche as datas com a data atual do computador do usuário e; Passo 3: A aplicação retorna ao "Passo 5" do fluxo principal. B Passo 1: No "Passo 4" do fluxo principal se o usuário escolheu apenas uma das datas; Passo 2: A aplicação preenche o campo da data não preenchida com o valor da data informada e; Passo 3: A aplicação retorna ao "Passo 5" do fluxo principal. C Passo 1: No "Passo 4" se o usuário escolheu a data final anterior a data inicial; Passo 2: A aplicação apresenta a mensagem MSG05 e; Passo 3: A aplicação retorna ao "Passo 1" do fluxo principal. D 63 Passo 1: No "Passo 5" se o usuário não informou os parâmetros de pesquisa; Passo 2: A aplicação apresenta a mensagem MSG06 e; Passo 3: A aplicação retorna ao "Passo 2" do fluxo principal. Quadro 7: Caso de uso “Controlar Operações”. UC Coletar Documentos Fluxo principal Passo 1: O módulo coletar documentos recebe o intervalo de datas do módulo controlador; Passo 2: A aplicação monta o conjunto de urls para download dos documentos utilizando o intervalo de datas recebido. Exemplo de url: www.tjsc.jus.br/institucional/diario/a2006/20060000100.PDF; Passo 3: A aplicação acessa cada url do conjunto de urls; Passo 4: A aplicação armazena os documentos acessados em uma estrutura de índice invertido e; Passo 5: A aplicação retorna a estrutura de índice invertido para o módulo controlador. Quadro 8: Caso de uso “Coletar Documentos”. UC Separar Texto Fluxo principal Passo 1: O módulo separar texto recebe a estrutura de índice invertido; Passo 2: Os termos pré-definidos da área penal são pesquisados na estrutura de índice invertido; Passo 3: Os trechos de texto onde foram encontrados os termos pesquisados são separados e; Passo 4: A aplicação retorna uma estrutura de índice invertido com os textos encontrados. Quadro 9: Caso de uso “Separar Texto”. 4.5 DETALHAMENTO DO DESENVOLVIMENTO Esta seção detalha algumas das etapas cumpridas para o desenvolvimento da ferramenta de busca proposta neste trabalho. Uma das primeiras etapas do desenvolvimento foi a da coleta de documentos. O TJSC disponibiliza no seu site da internet seus DJEs em formato PDF. São documentos extensos, na grande maioria com mais de 1000 (mil) páginas. Assim, foi desenvolvido um webcrawler para executar a tarefa de coletar esses documentos. O webcrawler desenvolvido para este trabalho busca apenas documentos com extensão PDF e de uma URL específica http://www.tjsc.jus.br/institucional/diario/. Além disso, é limitado por intervalo de datas, ou seja, o usuário irá definir o intervalo de datas dos DJEs que deseja buscar jurisprudência e o webcrawler irá atuar nesse intervalo de datas. Esse trabalho está considerando ainda DJEs publicados a partir do 03/07/2006, quando esses documentos passaram a ser chamados de Diário da Justiça Eletrônico e receberam uma nova numeração sequencial iniciando por 1(um). Antes desta data os documentos publicados na internet recebiam o mesmo nome e número da versão impressa, sem um padrão. 64 O nome dos DJEs segue um padrão formado pelo ano com quatro dígitos, um número sequencial de cinco dígitos seguido de dois dígitos zeros e por fim a extensão do arquivo conforme pode ser visto no nome do arquivo do DJE de três de julho de dois mil e seis a seguir: 20060000100.PDF. Foi realizada uma tentativa de desenvolver um método para gerar as URLs de busca de forma a desconsiderar datas que abrangessem finais de semana, feriados e recesso do judiciário, pois não são publicados documentos nestes dias, o método trataria ainda o sequencial iniciado no dia 03/07/2006 com base nas datas dos documentos. O método se mostrou complexo, considerando principalmente feriados que ocorrem ou ocorreram nas terças e sextas-feiras e foi abandonado, por não ser o objetivo principal deste trabalho. Assim, optou-se por fazer um processamento prévio onde a partir do sequencial é gerada a URL e documento é recuperado e, então por meio de um método da biblioteca PDFBox, é identificada a data de criação do documento, o sequencial e a data de criação são armazenados no banco de dados para serem usados nas buscas posteriores realizadas pelo usuário da aplicação. A partir do intervalo de datas informado pelo usuário e os dados salvos no banco de dados, o webcrawler realiza uma busca no site do TJSC coletando os documentos que são convertidos de PDF para textos simples (sem formatação) com o auxílio da biblioteca Java PDFBox, possibilitando a decomposição do documento em tokens. O documento tratado pela biblioteca PDFBox e o assunto informado pelo usuário são repassados a um método que busca nas tabelas ontologia e tesauro do banco de dados os termos associados ao assunto. Os Apêndices 1 e 3 apresentam respectivamente a ontologia e o tesauro. Os termos são então utilizados pela API Weka como atributos na classificação e para categorizar os tokens extraídos na decomposição do texto do documento. O processo de decomposição separa o documento, já convertido em texto simples, por página, utilizando uma funcionalidade da biblioteca PDFBox. Cada página é então decomposta em linhas o conjunto de linhas de cada página é repassado a um método que coleta a cada espaço a unidade lexical, que passam por um processo de categorização executado pela API Weka tendo como base os termos da ontologia recuperados do banco de dados. Neste trabalho era prevista a seguinte sequência de execução dos procedimentos de préprocessamento: remoção das stopwords, lematização e, por fim, a categorização dos termos. Os algoritmos necessários foram desenvolvidos, porém, a execução das etapas de remoção de 65 stopwords e lematização tornariam inviável o uso da ontologia e do tesauro, pois, tanto a ontologia quanto o tesauro apresentam termos compostos formados por tokens considerados stopwords e a lematização reduziria o termo a um radical de um dos tokens que compõem o termo. (Ex.: Detenção de 1 a 3 anos). O processo de remoção das stopwords, que deveria ser utilizado antes do processo de categorização, é baseado numa lista de palavras definidas por Orengo (2004) e consiste em remover do texto palavras, artigos e alguns outros termos que não impedem e nem limitam a compreensão do texto. Contudo, a remoção das stopwords inviabilizaria o uso da ontologia e do tesauro na categorização e mineração do texto. Outro processo implementado e removido da aplicação foi o algoritmo de lematização RSLP, algoritmo escolhido por ter sido desenvolvido particularmente para a língua portuguesa. Na implementação desse algoritmo foram utilizadas regras de lematização definidas por Orengo (2004). O primeiro passo faz a remoção dos sufixos de plural, sendo consideradas as exceções da língua portuguesa, ou seja, palavras que terminam com a letra “s” mas, não representam uma palavra no plural, por exemplo, “lápis” e variações da língua. Na sequência, as palavras são passadas do feminino para o masculino; assim como no passo anterior foi utilizada a lista de regras definida por Orengo (2004). No passo seguinte foi realizada a remoção de sufixo de adverbio “mente” das palavras, por exemplo, “felizmente” sobrando apenas “feliz”. O quarto passo trata da remoção dos sufixos aumentativo, superlativo ou diminutivo. Neste passo foi preciso considerar exceções como, por exemplo, a palavra “coração”. No quinto passo são tratados os substantivos e adjetivos ou também conhecido por redução nominal e remove-se até 61 sufixos possíveis para substantivos e adjetivos. Se uma palavra é alterada nesse passo, então o sexto e sétimo passo não são aplicados a essa palavra, (o sexto e o sétimo passo tratam respectivamente da redução de formas verbais e da remoção das vogais “a”, “e” e “o” de palavras não tratadas nos dois passos anteriores). O sexto passo trata a classe de palavras que representam verbos, assim, é feita a redução das formas verbais aos seus radicais e, se a palavra é alterada neste passo, o sétimo passo não é aplicado. O sétimo passo trata as palavras não alteradas nos últimos dois passos. Neste passo a 66 vogal “a”, “e” ou “o” é removida caso seja encontrada no final desta palavra. Por fim o oitavo passo faz a remoção dos acentos. Os oito passos da lematização descritos estão baseado no trabalho de Orengo (2004), que se utiliza de regras para realizar a remoção de sufixos. Orengo (2004) estabeleceu um total de 199 regras e ainda trata exceções com base em um dicionário de 32 mil termos, conseguindo, assim, reduzir o overstemming (quando ocorre remoção de parte do radical da palavra). Os problemas relativos a aplicação dos algoritmos de remoção de stopwords e lematização foram detectados durante a realização dos testes de validação, quando a ferramenta já estava desenvolvida e passava pela análise do especialista que, questionou os resultados apresentados nas buscas realizadas pela ferramenta. Assim, os dois algoritmos deixaram de ser utilizados. Na continuação do fluxo do processo definido para este trabalho, conforme apresentado na Figura 6, é realizada a categorização das palavras. Essa etapa tem como base a ontologia desenvolvida com o auxílio do especialista e o tesauro elaborado com base no tesauro do STF. Inicialmente foram definidas cinco categorias numeradas da seguinte forma 1, 2, 4, 8 e 16, os números quando escritos em binário são apresentados assim: 00001, 00010, 00100, 01000, 10000. Esse formato possibilitaria a categorização de termos associados a mais de uma classe. Assim, um termo associado a classe 1 e ao mesmo tempo associado a classe 4 e 16 poderia ser representado pelo binário 10101. Contudo, o padrão definido foi abandonado, pois, estava influenciando de forma negativa a classificação dos tokens e produzindo resultados “falsos” quanto a relevância de determinado texto com relação ao assunto buscado pelo usuário. Alguns tokens de menor importância estavam sendo associados a tokens mais relevantes, levando a API Weka a classificar os tokens de forma errada. Em substituição ao padrão abandonado, foi elaborado outro padrão, também utilizando números binários. O novo padrão consistiu em numerar cada termo e cada conjunto da ontologia de forma sequencial. O primeiro conjunto (Homicídio Doloso) recebeu o número inicial igual a “1000000” e os termos que compõem o conjunto foram numerados sequencialmente, conforme segue: “1000001”, “1000010”, “1000011”... Cada conjunto subsequente recebeu um “0” (zero) a mais no valor inicial, ficando da seguinte forma: "10000000", "100000000", "1000000000"... e os elementos de cada conjunto numerados conforme descrito no primeiro conjunto. 67 Após a categorização dos termos utilizando o padrão definido, a API Weka analisa-os por meio de cálculos matemáticos definindo um valor para o termo, conforme a quantidade encontrada. Conforme definido no presente trabalho, foi utilizado o algoritmo de Naïve Bayes no processo de mineração de texto. A partir desse processamento é gerado um índice invertido com os documentos, as páginas, termos e suas relevâncias. Com o índice invertido gerado o resultado é apresentado na página utilizada pelo usuário para a realização da consulta. O resultado aponta os documentos onde ele possivelmente encontrará jurisprudência associada aos parâmetros de busca informados. 4.6 DESCRIÇÃO DO EXPERIMENTO Como o objetivo de verificar a eficiência da ferramenta desenvolvida, foi elaborado o seguinte experimento: em cada um dos conjuntos de termos que compõem a ontologia definida para o presente trabalho, foram selecionados alguns assuntos de forma aleatória. Em seguida, os assuntos selecionados foram pesquisados manualmente num determinado conjunto de DJEs, selecionados também de forma aleatória e, após, os mesmos assuntos foram pesquisados por meio da ferramenta desenvolvida. Os resultados das pesquisas foram agrupados na Tabela 4 onde são apresentados o número do diário, a data de publicação, o número da página, a quantidade de vezes que um determinado assunto aparece na página e o resultado alcançado pela ferramenta. Apresenta, ainda, a relevância que determinado assunto recebeu na realização da pesquisa. A Tabela 4 é composta ainda pelas colunas Relevância e Página Relevante, utilizadas na avaliação dos resultados alcançados por meio das buscas manuais e por meio da ferramenta. As pesquisas manuais foram realizadas da seguinte forma: foi realizado o download do DJE do site do TJSC em formato PDF, o arquivo foi aberto no programa Adobe Reader e utilizando a funcionalidade de busca da aplicação, os assuntos foram pesquisados de forma individual. Foi anotado, então, o número de páginas que o assunto procurado apresentou. Nas pesquisas realizadas por meio da ferramenta desenvolvida, foram informadas as datas inicial e final que compreendiam o DJE utilizado na busca manual, informado o assunto e então acionado o botão “Consultar”. Foi anotado o resultado alcançado pela ferramenta. 68 Após a realização das pesquisas, uma tabela, foi repassada ao especialista em Direito, para que avaliasse e indicasse uma “nota” conforme os padrões de avaliação definido. A cada resultado foi atribuído um valor de relevância, ou seja, foram considerados Adequados, Pouco Adequados ou Inadequados, conforme avaliação do especialista. Com os resultados da análise do especialista foi possível comparar a eficiência apresentada pelos dois métodos de pesquisa. Os resultados do experimento são apresentados na seção na próxima seção. 4.7 RESULTADOS Os DJEs escolhidos para a realização dos experimentos são apresentados na Tabela 3. Foi escolhido um DJE do ano de 2014 com 2112 (duas mil cento e doze) páginas, um DJE de março de 2015 com 1696 (mil seiscentas e noventa e seis) páginas e um DJE de abril de 2015 com 962 (novecentos e sessenta e duas) páginas. Observa-se que, mesmo se tratando de escolha aleatória, os documentos apresentam uma variação na quantidade de páginas que poderiam ter contribuído para avaliação da ferramenta. Tabela 3. Lista de DJEs selecionados para realização do experimento. DJE (Diário da Justiça Eletrônico) N° 1996 N° 2075 N° 2096 Data da Publicação 10/11/2014 19/03/2015 23/04/2015 Os assuntos selecionados para realização das pesquisas foram os seguintes: Tortura Meio cruel Traição Ausência precaução Vítima é menor Durante parto Médico Estupro 69 Com a utilização da ontologia, cada termo apresentado foi pesquisado pela ferramenta. A partir de uma palavra solicitada a ferramenta monta a estrutura de termos conforme segue: Homicídio – Doloso – Nascimento – Impossível – 121 – Qualificado – Tortura Homicídio – Doloso – Nascimento – Impossível – 121 – Qualificado – cruel Homicídio – Culposo – 121 – Detenção – Negligência – Precaução Suicídio – 122 – Induzir – Auxílio – Instigar – Menor Infanticídio – 123 – Recém-nascido – Parto Aborto – Legal – 128 – Necessário – Médico Aborto – Legal – 128 – Necessário – Estupro Já na realização dos primeiros testes com a aplicação, verificou-se que os termos compostos estavam sendo decompostos pela API do Weka, gerando assim resultados incorretos. Ao realizar uma consulta por Precaução na ferramenta desenvolvida, com base na ontologia, tentava encontrar todos os termos associados, por exemplo: Homicídio – Culposo – 121 - Detenção – Negligência – Precaução. A API do Weka passava a considerar cada unidade lexical como um termo a ser encontrado e, assim, buscava artigos, preposições entre outros elementos que, isoladamente poderiam ser desprezados na consulta. Com a observação do comportamento apresentado pela API Weka, verificou-se a necessidade de redefinir a ontologia criada, passando a apresentar apenas termos simples, formados por uma unidade léxica. As versões inicial e final da ontologia podem ser encontradas respectivamente nos Apêndice 1 e 2. Após a adequação da ontologia, novos testes foram realizados e observou-se que a ferramenta apresentava resultados que ainda não estavam de acordo com a realidade dos DJEs, ou seja, alguns termos encontrados pela ferramenta em uma determinada página não eram encontrados nas buscas realizadas manualmente. Foi constatado que as palavras acentuadas, presentes na ontologia, eram alteradas pela API Weka, que removia a letra acentuada e dividia a palavra em dois, considerando a parte, antes do acento um termo de busca e a parte depois do acento, outro termo de busca. 70 Assim, a palavra “Homicídio” tinha a letra “í” (i acentuada) removida e era dividida em “Homic” e “dio”, os dois termos vindos da palavra “Homicídio” eram então adicionados aos atributos de busca da API Weka, trazendo resultados inadequados ao assunto pesquisado. A ontologia foi novamente alterada para remoção dos acentos e caracteres especiais. Com essa alteração foi possível realizar as pesquisas. Para avaliação dos resultados apresentados pelas pesquisas manuais e por meio da ferramenta desenvolvida foram adotadas as seguintes definições: Adequada – Quando o resultado da busca apresenta jurisprudências relacionadas ao assunto pesquisado. Pouco adequada – Quando o resultado da busca apresenta palavras isoladas, tornando a jurisprudência pouco adequada ao assunto pesquisado. Inadequada – Quando o resultado da busca apresenta palavras isoladas nas páginas ou um número muito grande páginas ou não apresenta nenhum resultado, tornando a jurisprudência inadequada. A Tabela 4 apresenta os resultados comparativos entre as buscas manuais e as buscas por meio da ferramenta. As páginas pesquisadas por meio da ferramenta foram inicialmente filtradas, e somente páginas que apresentavam o termo “Penal” foram processadas com o objetivo de encontrar jurisprudência adequada ao assunto pesquisado. Os dados pesquisados foram analisados pelo especialista que jugou a relevância dos resultados como: Adequada, Pouco adequada ou Inadequada. A ferramenta deveria encontrar a página com o maior número de termos associados a palavra informada pelo usuário. Assim, se o usuário pesquisasse pela palavra “tortura”, a ferramenta deveria pesquisar pelos termos da ontologia associados a “tortura”, neste caso a ferramenta deveria pesquisar por: “Homicídio”, “Doloso”, “Nascimento”, “Impossível”, “121”, “Qualificado” e “Tortura”. 71 Tabela 4. Tabela comparativa entre buscas manuais e ferramenta desenvolvida. Documento Data da Publicação DJE Número 1996 Termo 10/11/2014 Tortura Meio cruel Ausência precaução Vítima é menor Durante parto Médico Estupro Pesquisa Manual Ferramenta Manual Ferramenta Manual Ferramenta Manual Ferramenta Manual Ferramenta Manual Ferramenta Manual Ferramenta Quant. Páginas encontradas 0 43 0 43 1 22 280 26 0 19 389 177 20 178 Relevância Inadequada Pouco Adequada Inadequada Pouco Adequada Inadequada Inadequada Inadequada Pouco Adequada Inadequada Inadequada Inadequada Inadequada Pouco Adequada Inadequada Relevância N° da Página relevante 463 463 465 - A ferramenta desenvolvida consegue encontrar todos os termos da ontologia associados ao parâmetro de busca, contudo, tratam-se de termos muito comuns e, facilmente encontrados em páginas que não apresentam jurisprudência que, esteja de acordo com o parâmetro pesquisado pelo usuário. Sendo assim, avaliados como resultados inadequados. Na análise realizada pelo especialista as pesquisas manuais que apresentaram mais de trinta páginas com termos encontrados, foram consideradas inadequadas, sem que houvesse uma análise individual de cada página. Considerou-se que um profissional do Direito não analisaria trinta páginas para encontrar uma que fosse adequada as suas necessidades. Com relação à ferramenta, foram analisados os cinco melhores resultados relativos à frequência de assuntos encontrados na página e sua relevância, páginas onde só foram encontrados termos com relevância igual a zero, forma descartadas no momento da análise. As buscas manuais deveria ter encontrado o termo buscado. Nas buscas realizadas por meio da ferramenta, deveria ser encontrado pelo menos um dos termos da hierarquia, formada pela ontologia para o termo buscado e o texto da página deveria tratar da jurisprudência desejada pelo usuário. A ferramenta conseguiu encontrar os termos da hierarquia contudo as páginas mais relevantes não apresentavam a jurisprudência desejada pelo usuário. 72 Considerando os resultados alcançados nas pesquisas realizadas no DJE número 1996 de 10/11/2014, tanto nas pesquisas manuais como nas pesquisas por meio da ferramenta, foi verificado que os resultados não alcançaram o objetivo de trazer termos mais relevantes, dado um assunto do interesse do usuário. Assim, novos testes foram descartados, pois, possivelmente só seriam conseguidos resultados melhores após alterações na ontologia e no processo de filtragem utilizado na API Weka. Observa-se que, para a definição de uma ontologia mais adequada a resolução do problema, seria necessário um estudo mais aprofundado e o envolvimento de outros profissionais do Direito e, por consequência um período maior de estudo. Assim, não foi possível o desenvolvimento de uma ontologia mais apropriada. Um problema observado nos resultados está relacionado à utilização de termos comumente encontrados no DJEs, retornando páginas sem relevância. Observou-se que, a ferramenta buscou, por exemplo, pelo termo “Nascimento” que faz parte da ontologia definida e esse termo é comumente encontrado em sobrenome de pessoas. Outros termos que compõem a ontologia e que prejudicaram os resultados foram os artigos do código penal, pois, valores numéricos no intervalo de 121 a 128 são frequentemente encontrados no texto dos DJEs, sem representarem os artigos da lei que a ferramenta tenta encontrar. O uso da API Weka em conjunto com técnicas mais apuradas de tratamento de texto e uma ontologia melhor estruturada poderiam contribuir de forma significativa para que a ferramenta pudesse atingir resultados mais adequados às necessidades do usuário final. As pesquisas apresentadas neste trabalho podem ser o ponto de partida para o desenvolvimento de ferramentas mais específicas. 73 5 CONCLUSÕES O presente trabalho foi motivado com o intuito de suprir a ausência de uma ferramenta adequada para efetuar busca por jurisprudência em documentos textuais, procurando integrar uma ontologia voltada especificamente para área de atuação. Além disso, a ferramenta foi proposta para efetuar buscas em DJEs publicados diariamente, proporcionando o acesso a dados atuais de forma rápida e possivelmente mais inteligente. Alguns desafios foram enfrentados no decorrer do desenvolvimento da solução proposta, iniciando pela definição do escopo da ferramenta, dada a abrangência da área jurídica que trata dos mais diversos assuntos. Assim, optou-se pela atuação num pequeno conjunto de artigos do Código Penal Brasileiro que tratam dos crimes contra a vida. Mesmo com um escopo reduzido, a ferramenta ainda precisava executar algumas tarefas que podem ser consideradas complexas. Dessa forma, foi preciso desenvolver um webcrawler para realizar o download dos DJEs para então convertê-los em textos simples, sem formatação, e realizar o processo de mineração de textos propriamente dita. No processo de conversão dos documentos em formato PDF para texto simples, sem formatação, foi utilizada a ferramenta PDFBox, a biblioteca Java open source, que permitiu uma conversão rápida dos documentos (DJE), os quais apresentam em média, cada um, mais de mil páginas de texto. Dessa forma, com os textos já convertidos em formato simples, prosseguiu-se para a etapa seguinte que tinha como objetivo a descoberta de conhecimento. Após a realização de algumas pesquisas referentes à descoberta de conhecimento, mineração de dados e mineração de textos, optou-se pela utilização da API Weka para auxiliar no processo de mineração de textos, por apresentar um bom desempenho e ser open source, a API Weka, a qual disponibiliza ainda uma série de algoritmos classificadores que podem ser utilizados de acordo com a situação. Cabe ainda informar que neste trabalho foi utilizado o algoritmo Naïve Bayes. Tendo em vista que a API Weka foi desenvolvida na Nova Zelândia para o tratamento de textos no idioma inglês. Foram enfrentadas dificuldades para o uso em textos no idioma português, onde as palavras apresentam caracteres especiais e acentuação. A causa das dificuldades estava possivelmente relacionada a ontologia definida em conjunto com um especialista da área do Direito. Dessa forma, foi preciso adequar a ontologia para que fosse possível utilizá-la. Ante todo o exposto, conclui-se que, os processos de mineração de textos podem contribuir de forma significativa para o auxílio dos profissionais do Direito, na busca por jurisprudência adequada para elaboração de suas teses e defesas, contudo, devido ao extenso vocabulário encontrado nos textos jurídicos o presente trabalho abordou uma pequena parte da gama de possibilidades do uso dessa técnica. 5.1 TRABALHOS FUTUROS O presente estudo pode ser o ponto de partida para a elaboração de novos trabalhos, assim, alguns pontos podem ser tratados. Uma possível alternativa seria a troca do algoritmo classificador utilizado neste trabalho, buscando aumentar a velocidade de processamento. Outro ponto a ser trabalhado refere-se a ontologia, que poderia ser elaborada em conjunto por uma equipe de especialista do Direito e da ciência da computação. Aprofundando os estudos para criação de uma ontologia que descreva os conceitos relevantes para área do Direito e a relação entre estes conceitos. Trabalhos futuros poderiam tratar ainda da aplicação dos algoritmos de remoção de stopwords e lematização. Não utilizados na elaboração deste trabalho por inviabilizarem a utilização da ontologia definida. Esses algoritmos poderiam contribuir para redução do corpus textual e aumento da velocidade de processamento do texto. Além disso, os resultados apresentados poderiam mostrar trechos dos textos apontados como, relevantes, pela ferramenta. Essa funcionalidade poderia auxiliar os profissionais do Direito no momento de decidir entre os resultados apresentados. 75 REFERÊNCIAS BIBLIOGRÁFICAS ALMEIDA, G. M. B. Fazer Terminologia é Fazer Linguística. In: PERNA, C. L.; DELGADO, H. K.; FINATTO, M. J.(Eds) Linguagens especializadas em corpora: modos de dizer e interfaces de pesquisa.[S.1.] EDPUCRS, 2010. p.72. ALMEIDA, W. G. Ferramenta de Automação para Descoberta de Conhecimento em Banco de Dados NOAA. São José dos Campos : INPE, 2013. ALVES, A. H. Lei Orgânica da Magistratura Nacional. Salvador: Jus Podium, 2010, p.70. ANGELO, C. F. A., ZWICKER, R., FOUTO, N. M. M. D., LUPPE, M. R. Séries temporais e redes neurais: uma análise comparativa de técnicas na previsão de vendas do varejo brasileiro. BBR Brazilian Business Review. Vitória-ES, v. 8, n. 2, p.01-21, 2011. ARANHA, C. N. Uma abordagem de pré-processamento automático para Mineração de Textos em português: Sob o enfoque da Inteligência Computacional. Rio de Janeiro, 2007. Tese de Doutorado – Departamento de Engenharia Elétrica, Pontifícia Universidade Católica do Rio de Janeiro. BARBOSA, F. (Metodologia para Estruturação de Informações de Laudos Radiológicos). 2013,164 f. Tese (Doutorado) – Faculdade de Medicina de Ribeirão Preto, Universidade de São Paulo, Ribeirão Preto, 2013. BOENTE, A. N. P., GOLDSCHMIDT, R. R., ESTRELA, V. V., Uma Metodologia para Apoio à Realização do Processo de Descoberta de Conhecimento em Bases de Dados, Centro Universitário Estadual da Zona Oeste (UEZO), 2006. BRAGA, T. M. Uma ferramenta de mineração de texto em bancos de dados de um hospital universitário utilizando decomposições matriciais. [S.I.] Universidade Federal do Rio de Janeiro, 2011. BRASIL. Constituição (1988). Constituição da República Federativa do Brasil. Organização de Alexandre de Moraes. 16.ed. São Paulo: Atlas, 2000. BUBENHOFER, N., PTASHNYK, S., KILIAN, C. K. Corpora, bancos de dados e a web: estado da arte da pesquisa em fraseologia e lexicografia assistida por computador. Entrelinhas, v. 6, n. 1, p. 83-96, 2012. CHARU,C. A, STEPHEN, C. G. e PHILIP, S. Y. “On using partial supervision for text categorization”, IEEE Transactions on Knowledge and data Engineering, vol. 16-2, Dez 2004, pp. 245–255. CAPEZ, F. Curso de Direito Penal: Parte Geral. 1. vol. São Paulo: Saraiva, 2000, p. 1. CINTRA, A. C. A., GRINOVER, A. P., DINAMARCO, Cândido Rangel. Teoria geral do processo. 11. Ed. São Paulo: Malheiros, 1995. p. 154. 76 CONRADO, M. S., GUTIÉRREZ, V. A. L., REZENDE, S. O. Evaluation of Normalization Techniques in Text Classification for Portuguese. In:MURGANTE, B. et al.(Eds). Computational Science and Applications – ICCSA 2012. Berlim, Heidelberg: Springer Berlim Heidelberg, 2012. V. 7335p. 618-630. CNJ, Conselho Nacional de Justiça. Volume de processos novos impede Justiça de reduzir quantidade de ações. Disponível em: <http://www.cnj.jus.br>. Acesso em: 27 abr. 2014. CNJ, Conselho Nacional de Justiça. Justiça em números 2013: ano-base 2012. Brasília, 2013 DELGADO, H. K., FINATTO, M. J.(Eds) Linguagens especializadas em corpora: modos de dizer e interfaces de pesquisa.[S.1.] EDPUCRS, 2010. p. 29-49. DINIZ, M. H. Compêndio de Introdução à Ciência do Direito. 5. ed. São Paulo: Saraiva, 1993. ELDER, J., MINER, G., NESBERT, B. Practical Text Mining and Statistical Analysis for Nonstructured Text Data Applications. Oxford: Elsevier Inc., 2012. p.1053. FALBO, R. A., Qualidade de Processo de Software Normas ISSO/IEC 12207 e 15504, Espírito Santo, 2007. Universidade Federal do Espírito Santo. Disciplina de Tópicos Especiais – Qualidade de software. 2007. FAYYAD, U. M. PIATETSKY-SHAPIRO, G., SMYTH, P. From Data Mining to Knowledge Discovery in Databases. Artificial Intelligence Magazine, v. 17, n. 3, p. 37-54, 1996. FELDMAN, R., DAGAN I. KDT – Knowledge Discovery in Text. In Proceedings of First International Conference on Knowledge Discovery (KDD-95), Agosto de 1995. FELDMAN, R., SANGER, J.The Text Mining Handbook: Advanced Approaches in Analyzing Unstructured Data. Cambridge Unisersity Press, 2007. FLORES, F. N. Avaliando o Impacto da Qualidade de um Algoritmo de Stemming na Recuperação de Informações. Trabalho de graduação. Universidade Federal do Rio Grande do sul, 2009. FRANCELIN, M. M., KOBASHI, N. Y. Concepções sobre o conceito na organização da informação e do conhecimento. Ciência da Informação, v.40, n. 2, p. 207-228, 2011. FREIRE, P. S.; TOSTA, K. C. B. T., FILHO, E. A. H., SILVA, G. G. Memória Organizacional e seu Papel na Gestão do Conhecimento. Ciências da Administração, 2012. FURQUIM, L. O. C.. Agrupamento e categorização de documentos jurídicos. Dissertação de mestrado. PUCRS – Porto Alegre, 2011 GERHARDT, T. E., SILVEIRA, D. T., Métodos de Pesquisa, coordenado pela Universidade Aberta do Brasil – UAB/UFRGS e pelo Curso de Graduação Tecnológica – Planejamento e Gestão para o Desenvolvimento Rural da SEAD/UFRGS. – Porto Alegre: Editora da UFRGS, 2009. GIL, A. C. Métodos e técnicas de pesquisa social. 5.ed. São Paulo: Atlas, 1999. 77 GOLDENBERG, M. A arte de pesquisar: como fazer pesquisa qualitativa em Ciências Sociais. Rio de Janeiro: Record, 1997. GOMES, R. M., Desambiguação de sentido de palavras dirigida por técnicas de agrupamento sob o enfoque da mineração de textos. Dissertação (Mestrado em Engenharia Elétrica) – Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2009. HEATON, J. Programming Spiders, Bots, and Aggregations in Java. San Francisco: Sybex, 2002. 516 p. HOUAISS, A., VILLAR, M. S. Dicionário Houaiss da língua portuguesa. Rio de Janeiro: Objetiva, 2001. HUSSAIN, M. W., AFZAL, M. T., WAQAS, M. Finding Semantic Relationship among Associated Medical Terms. Int. J. Emerg. Sci, v.2, n.2, p. 300-309, 2012. IEEE, Institute of Electrical and Electronics Engineers. SWEBOK – Guide to the Software Engineering Body of Knowledge, 2004. Disponível em: < http://www.swebok.org/>. Acesso em: 22 mai. 2008. KJELLERSTRAND, H., My Weka page. Disponível em: < http://www.hakank.org/weka/ >. Acesso em: 27 abr 2015. MACHADO, R. A. C. Seeklex – Recuperação de Informação em Subdocumentos Hierarquizados. Dissertação de mestrado. Universidade Federal do Rio de Janeiro, Programa de Engenharia de Sistemas e Computação, 2010. MARTINS, E. S. Aplicação do Processo de Descoberta de Conhecimento em Base de Dados a Metadados Textuais de Infraestrutura de Dados Espaciais. Dissertação de metrado. Universidade Federal de Viçosa, MG, 2012. MICHAELIS. MICHAELIS, Moderno Dicionário da Língua Portuguesa. Disponível em:< http://michaelis.uol.com.br/moderno/portugues/index.php> .Acesso em: 23 mar. 2015. MONTEIRO, L. O., GOMES, I. R., OLIVEIRA, T. Etapas do Processo de Mineração de Textos – uma abordagem aplicada a textos em Português do Brasil. Anais do XXVI Congresso da SBC. 2006 MORAIS, E. A. M., AMBRÓSIO, A. P. L., Mineração de Textos, 2007 Tese de mestrado. Instituto de Informática, Universidade Federal de Goiás, 2007. MONTORO, A. F.. Introdução à Ciência do Direito. 20. ed. São Paulo: Revistas dos Tribunais, 1991. NOVELINO, M. Direito Constitucional. 5 ed. Rio de Janeiro: Forense; São Paulo: Método, 2011.p.709. NUNES, A. M., FILETO, R. . Uma arquitetura para recuperação de informação baseada em semântica e sua aplicação no apoio a jurisprudência. In: III Escola Regional de Banco de Dados - ERBD 2007, 2007, Caxias do Sul - RS. ERBD 2007 Escola Regional de Banco de Dados Caxias do Sul. Porto Alegre: Sociedade Brasileira de Computação - SBC, 2007. v. único. p. 184-193. 78 OGURI, P., Aprendizado de Máquina para o Problema de Sentiment Classification, Dissertação (mestrado) - Pontifícia Universidade Católica do Rio de Janeiro, Departamento de Informática, 2006. OLIVEIRA, A. M. P. P. DE, ISQUERDO, A. N., ALVES, I. M. As Ciências do Léxico: Lexicologia, Lexicografia, Terminologia. [S.1.] Editora UFMS, 2007. v. 3 OLIVEIRA, T. V., Adaptação do Algoritmo Levenshtein Distance para o Cálculo de Similaridade entre Frases. Universidade Católica de Pelotas Escola de Informática Programa de Pós-graduação em informática, 2010. ORENGO, V.M. Assessing relevance using automatically translated documents for crosslanguage information retrieval. Tese de Doutorado, School of Computing Science, Middlesex University, London, 2004. PASSINI, M. L. C. Mineração de Textos para Organização de Documentos em Centrais de Atendimento. Rio de Janeiro: UFRJ/COPPE, 2012. PAVEL, S.; NOLET, D. Manual de Terminologia. [S.I.] Ministério de Obras Públicas e Governamentais do Canadá, 2002. PENA, S. D., Thomas Bayes: o ‘cara’! Departamento de Bioquímica e Imunologia. Universidade Federal de Minas Gerais, Ciência Hoje. Vol. 38 nº 228, 2006. PFLEEGER, S. L., Engenharia de Software: teoria e prática. 2. ed. São Paulo: Prentice Hall, 2004. PORTER, M. F. Portuguese stemming algorithm. Disponível em: <http://snowball.tartarus.org/algorithms/portuguese/stemmer.html>. Acesso em: 19 jun. 2014. POZZER, C. T., Aprendizado por Árvores de Decisão. Disciplina de Programação de Jogos 3D Universidade, Departamento de Eletrônica e Computação Federal de Santa Maria, 2006. PRESSMAN, R. S. Engenharia de Software. 6 ed. São Paulo: McGraw-Hill, 2006. RAHMAN, M. Information Retrieval with Text Mining for Decision Support System. Bangladesh Journal of Scientific Research, 2011. RAMOS, H. S. C., BRASCHER, M. Aplicação da descoberta de conhecimento em textos para apoio à construção de indicadores infométricos para a área de C&T. Ci. Inf., Brasília, 2009. REALE, M. Lições Preliminares de Direito. 27ª edição 11ª tiragem São Paulo: Saraiva, 2002. REIS, A. O. As Interfaces das Disciplinas do Léxico. Dialogia, 2010. REZENDE S., MARCACINI, R., MOURA, M. O uso da mineração de textos para extração e organização não supervisionada de conhecimento. Revista de Sistemas de Informação da FSMA. v.7, 2011. REZENDE, S. O. Sistemas Inteligentes: Fundamentos e Aplicações. Barueri. SP. Manole, 2005. 79 REZENDE, S., PUGLIESE, J., MELANDA, E., PAULA, M. Mineração de Dados, chapter 13, p. 307–335. Manole, 2003. ROBERTO, J., MARTÍ, M., LLORENTE, M. Análisis de la riqueza léxica em el contexto de la clasificación de atributos demográficos latentes. Procesamiento de Lenguaje Natural, Revista nº 48 marzo de 2012, pp 97-104, 2012. SANTA CATARINA. Constituição do Estado de Santa Catarina. Florianópolis: Assembléia Legislativa/IOESC, 1989. SCHIESSL, M., BRÄSCHER, M. Do Texto às Ontologias: Uma Perspectiva para a Ciência da Informação. Ciência da Informação, 2011. SEI, Software Engineering Institute. CMMI for Development, Version 1.2 (CMU/SEI-2006-TR008/ESC-TR-2006-008). Agosto, 2006. Disponível em: < http://www.sei.cmu.edu/cmmi >. Acesso em: 13 abr. 2008. SILVA, E. L., MENEZES, E. M. Metodologia da pesquisa e elaboração de dissertação. 4. ed. Universidade Federal de Santa Catarina, Florianópolis, 2005. SILVA, E. R. G. , ROVER, A. J. O Processo de descoberta do conhecimento como suporte à análise criminal: minerando dados da Segurança Pública de Santa Catarina. In: International Conference on Information Systems and Technology Management, 2011, São Paulo. Anais da International Conference on Information Systems and Technology Management. São Paulo: FEA, 2011. SILVA, T. N. Uma Arquitetura para Descoberta de Conhecimento a partir de Bases Textuais. Trabalho de Conclusão de Curso. Universidade Federal de Santa Catarina, 2012 SOMMERVILLE, I. Engenharia de software. 6. ed. São Paulo: Pearson Addison Wesley, 2003. STJ – SUPREMO TRIBUNAL DE JUSTIÇA. Pesquisa de jurisprudência: ferramenta imprescindível ao bom advogado. 2009. Disponível em: <http://stj.jus.br/portal_stj/publicacao/engine.wsp?tmp.area=398&tmp.texto=95027>. Acesso em: 02 jun. 2014. TJSC, Tribunal de Justiça de Santa Catarina. Jurisprudência Catarinense. Disponível em: <www.tj.sc.gov.br>. Acesso em: 27 abr. 2014. VIEIRA, M. C. T. Leitura no Ensino Superior: Letramentos em Pauta. XV ENDIPE. Anais..., 2010 VIEIRA, R., LOPES, L. Processamento de Linguagem Natural e o tratamento computacional de linguagens científicas. In: PERNA, C. L.; DELGADO, H. K.; FINATTO, M. J.(Eds) Linguagens especializadas em corpora: modos de dizer e interfaces de pesquisa.[S.1.] EDPUCRS, 2010. p.183. VILAÇA, M. L. C. Pesquisa e Ensino: Considerações e Reflexões Revista E-scrita. Volume 1. Número2. Maio-Agosto de 2010. VILLAVICÊNCIO, A., RAMISCH, C. Chutando o balde ou batendo as botas? Processamento de linguagem natural e expressões multipalavra na linguagem científica. In: PERNA, C. L.; 80 XAVIER, É. F. M. Abordagem bayesiana para o processo espaço-temporal log gaussiano de Cox com aplicação no setor florestal. Dissertação Tese de Mestrado. Universidade Federal Rural de Pernambuco, 2013. ZEMBRZUSKI, M. C. Classificadores Bayesianos Instituto de Informática Rio Grande do Sul, 2010. 81 APÊNDICE 1 - ONTOLOGIA VERSÃO FINAL CRIMES CONTRA A VIDA – Art. 121 a 128 Social simples Moral Privilegiado Emocao CRIMES CONTRA A VIDA Provocacao Paga Homicidio Doloso Nascimento Recompensa 121 Impossivel Torpe Futil Veneno Fogo Explosivo Asfixia Qualificado Insidioso Tortura Cruel Execucao Traicao Emboscada Dissimulacao Defesa 82 CRIMES CONTRA A VIDA CRIMES CONTRA A VIDA CRIMES CONTRA A VIDA Causar Imprudencia Perigoso Causar Homicidio Culposo 121 Detencao Negligencia Precaucao Causar Impericia Aptidao Induzir Egoistico Suicidio 122 Auxiliar Menor Instigar Puerperal Infanticidio 123 Recem-nascido Filho Parto 83 Consentimento 124 Autoaborto Provocar consentir CRIMES CONTRA A VIDA Criminoso 125 Provocado Consentimento 126 Provocado Consentimento Lesao 127 Qualificado Morte Aborto Medico Enfermeira Estupro Legal 128 Necessario Risco Incapaz Sexual 84 APÊNDICE 2 - ONTOLOGIA VERSÃO INICIAL CRIMES CONTRA A VIDA – Art. 121 a 128 Art. 121 caput Homicídio simples Reclusão de 6 a 20 anos Motivo CRIMES CONTRA A VIDA Art. 121, § 1º Homicídio Homicídio doloso Homicídio privilegiado Após nascimento Crime impossível Relevante valor social Relevante valor Moral Violenta emoção Injusta provocação Reclusão de 12 a 30 anos Motivo Mediante paga Promessa de recompensa Já morta Motivo torpe Motivo fútil Meios empregados Veneno Fogo Art. 121, § 2º Homicídio qualificado Explosivo Asfixia Meio insidioso Provocar perigo Tortura Meio cruel Modo de execução Traição Emboscada Dissimulação Impossível a defesa 85 CRIMES CONTRA A VIDA Causar morte Imprudência Ato perigoso Homicídio Homicídio culposo Art. 121, § 3º Detenção de 1 a 3 anos Causar morte Negligência Ausência precaução Causar morte Imperícia Falta de aptidão CRIMES CONTRA A VIDA Induzir Instigar Auxiliar parágrafo único Suicídio Induzimento, auxilio ou instigação ao suicídio Art. 122 Reclusão de 2 a 6 anos morte consulmada ou 1 a 3 anos lesão corporal grave Aumento de pena Motivo egoístico Vítima é menor 86 CRIMES CONTRA A VIDA Detenção de 2 a 6 anos Estado puerperal Infanticídio Recém-nascido Matar Art. 123 Próprio filho Durante parto Logo após o parto 87 Detenção de 1 a 3 anos Art. 124 Gestante Feto Autoaborto Consentimento aborto Provocar consentir Art. 125 Gestante Feto Provocado sem consentimento Reclusão de 3 a 10 anos Art. 126 Gestante Feto Provocado com consentimento Reclusão de 1 a 4 anos Criminoso CRIMES CONTRA A VIDA Pena dos art. anteriores mais 1/3 ou 1/2 Meios empregados Art. 127 Qualificado Gestante Feto Sofre lesão Aborto Sobrevém a morte Médico Enfermeira Estupro Legal Art. 128 Necessário Sentimental Gestante Feto Risco a vida Incapaz Própria gestante Ato sexual 88 APÊNDICE 3 - TESAUROS ATROPELAMENTO HOMICÍDIO CULPOSO NA DIREÇÃO DE VEÍCULO AUTOMOTOR HOMICÍDIO CULPOSO CÓDIGO DE TRÂNSITO BRASILEIRO DIREÇÃO DE VEÍCULO EMBRIAGUEZ AO VOLANTE CRIMES CONTRA A VIDA LESÃO CORPORAL CULPOSA NA DIREÇÃO DE VEÍCULO AUTOMOTOR DUPLO HOMICÍDIO HOMICÍDIO ASSASSINATO OMISSÃO DE SOCORRO HOMICÍDIO DOLOSO HOMICÍDIO PRIVILEGIADO VIOLENTA EMOÇÃO HOMICÍDIO DOLOSO HOMICÍDIO QUALIFICADO EMBOSCADA EXECUTOR DO CRIME QUALIFICADORA DA SURPRESA RECURSO QUE DIFICULTOU A DEFESA DO OFENDIDO RECURSO QUE TORNOU IMPOSSÍVEL A DEFESA DO OFENDIDO 89 CRIMES CONTRA A VIDA INDUZIMENTO AO SUICÍDIO SUICÍDIO INSTIGAÇÃO AO SUICÍDIO AUXÍLIO AO SUICÍDIO TENTATIVA DE SUICÍDIO 90 GESTANTE ABORTO EUGÊNICO GRAVIDEZ ABORTO EUGENÉSICO GESTANTE ABORTO NECESSÁRIO GRAVIDEZ ESTUPRO CRIMES CONTRA A VIDA GRAVIDEZ ABORTO NO CASO DE GRAVIDEZ RESULTANTE DE ESTUPRO ABORTO ÉTICO ABORTO SENTIMENTAL Aborto GESTANTE ABORTO PROVOCADO PELA GESTANTE GRAVIDEZ GESTANTE GRAVIDEZ ABORTO PROVOCADO POR TERCEIRO ABORTO PROVOCADO COM O CONSENTIMENTO DA GESTANTE ABORTO PROVOCADO SEM O CONSENTIMENTO DA GESTANTE GESTANTE ABORTO QUALIFICADO GRAVIDEZ 91 APÊNDICE 4 - CÓDIGO PENAL ART. 121 A 128 PARTE ESPECIAL TÍTULO I DOS CRIMES CONTRA A PESSOA CAPÍTULO I DOS CRIMES CONTRA A VIDA Homicídio simples Art. 121. Matar alguém: Pena - reclusão, de seis a vinte anos. Caso de diminuição de pena § 1º Se o agente comete o crime impelido por motivo de relevante valor social ou moral, ou sob o domínio de violenta emoção, logo em seguida a injusta provocação da vítima, ou juiz pode reduzir a pena de um sexto a um terço. Homicídio qualificado § 2° Se o homicídio é cometido: I - mediante paga ou promessa de recompensa, ou por outro motivo torpe; II - por motivo fútil; III - com emprego de veneno, fogo, explosivo, asfixia, tortura ou outro meio insidioso ou cruel, ou de que possa resultar perigo comum; IV - à traição, de emboscada, ou mediante dissimulação ou outro recurso que dificulte ou torne impossível a defesa do ofendido; V - para assegurar a execução, a ocultação, a impunidade ou vantagem de outro crime: Pena - reclusão, de doze a trinta anos. Homicídio culposo § 3º Se o homicídio é culposo: (Vide Lei 4611, de 1965) Pena - detenção, de um a três anos. Aumento de pena 92 § 4o No homicídio culposo, a pena é aumentada de 1/3 (um terço), se o crime resulta de inobservância de regra técnica de profissão, arte ou ofício, ou se o agente deixa de prestar imediato socorro à vítima, não procura diminuir as consequências do seu ato, ou foge para evitar prisão em flagrante. Sendo doloso o homicídio, a pena é aumentada de 1/3 (um terço) se o crime é praticado contra pessoa menor de 14 (quatorze) ou maior de 60 (sessenta) anos. (Redação dada pela Lei 10741, de 2003) § 5º - Na hipótese de homicídio culposo, o juiz poderá deixar de aplicar a pena, se as conseqüências da infração atingirem o próprio agente de forma tão grave que a sanção penal se torne desnecessária. (Incluído pela Lei 6416, de 24.5.1977) Induzimento, instigação ou auxílio a suicídio. Art. 122 - Induzir ou instigar alguém a suicidar-se ou prestar-lhe auxílio para que o faça: Pena - reclusão, de dois a seis anos, se o suicídio se consuma; ou reclusão, de um a três anos, se da tentativa de suicídio resulta lesão corporal de natureza grave. Parágrafo único - A pena é duplicada: Aumento de pena I - se o crime é praticado por motivo egoístico; II - se a vítima é menor ou tem diminuída, por qualquer causa, a capacidade de resistência. Infanticídio Art. 123 - Matar, sob a influência do estado puerperal, o próprio filho, durante o parto ou logo após: Pena - detenção, de dois a seis anos. Aborto provocado pela gestante ou com seu consentimento Art. 124 - Provocar aborto em si mesma ou consentir que outrem lho provoque: Pena - detenção, de um a três anos. Aborto provocado por terceiro Art. 125 - Provocar aborto, sem o consentimento da gestante: Pena - reclusão, de três a dez anos. Art. 126 - Provocar aborto com o consentimento da gestante: Pena - reclusão, de um a quatro anos. Parágrafo único. Aplica-se a pena do artigo anterior, se a gestante não é maior de quatorze anos, ou é alienada ou débil mental, ou se o consentimento é obtido mediante fraude, grave ameaça ou violência. 93 Forma qualificada Art. 127 - As penas cominadas nos dois artigos anteriores são aumentadas de um terço, se, em consequência do aborto ou dos meios empregados para provocá-lo, a gestante sofre lesão corporal de natureza grave; e são duplicadas, se, por qualquer dessas causas, lhe sobrevém a morte. Art. 128 - Não se pune o aborto praticado por médico: Aborto necessário I - se não há outro meio de salvar a vida da gestante; Aborto no caso de gravidez resultante de estupro II - se a gravidez resulta de estupro e o aborto é precedido de consentimento da gestante ou, quando incapaz, de seu representante legal 94 APÊNDICE 5 - CÓDIGO FONTE DO WEBCRAWLER public class DJECrawler { private static DJECrawler instance; public static synchronized DJECrawler getInstance(){ if(instance == null){ return new DJECrawler(); } return instance; } public PDDocument getDocumento(String url){ PDDocument diario = null; try { //exemplo de urls utilizadas pelo webcrawler /* http://www.tjsc.jus.br/institucional/diario/a2003/20031129200.PDF http://www.tjsc.jus.br/institucional/diario/a2003/20031126600.PDF*/ URL my_url = new URL(url); diario = PDDocument.load(my_url); }catch(Exception e){ return diario; } return diario; } public Iterator<PDDocument> getPaginas(PDDocument diario){ Splitter splitter = new Splitter(); Iterator<PDDocument> paginas = null; List<PDDocument> listaDePaginas; try{ listaDePaginas = splitter.split(diario); paginas = listaDePaginas.listIterator(); }catch(Exception e){ return paginas; } return paginas; } public String[] getLinhaTexto(PDDocument pagina){ String[] linhasTexto = null; try{ PDFTextStripper stripper = new PDFTextStripper(); 95 linhasTexto = stripper.getText(pagina).split(stripper.getLineSeparator()); }catch(Exception e){ return linhasTexto; } return linhasTexto; } public String[] getPalavras(PDDocument linha){ String[] palavras = null; try{ PDFTextStripper stripper = new PDFTextStripper(); palavras = stripper.getText(linha).split(stripper.getWordSeparator()); }catch(Exception e){ } return palavras; } public Collection<String> getUrlsDJE(Date dataInicial, Date dataFinal){ return DJECrawlerDB.getUrlsDJE(dataInicial, dataFinal); } public String getURL_BASE(){ return DJECrawlerDB.URL_BASE; } } public class DJECrawlerDB { public static String URL_BASE = "http://www.tjsc.jus.br/institucional/diario/"; public static Collection<String> getUrlsDJE(Date dataInicial, Date dataFinal){ boolean intervaloOk = Validador.getInstance().validaIntervalo(dataInicial, dataFinal); Collection<String> urls = new ArrayList<String>(); String dataInicialSQL = UtilData.formataData(dataInicial, new SimpleDateFormat("yyyy-MM-dd 00:00:00")); String dataFinalSQL = UtilData.formataData(dataFinal, new SimpleDateFormat("yyyyMM-dd 23:00:00")); try{ if(intervaloOk){ Connection con = ConnectionFactory.getInstance().getConnection(); Statement stmt = con.createStatement(); String sql = "SELECT NUMERO_DIARIO, DATA FROM DIARIO WHERE DATA >= '"+ dataInicialSQL + "' AND DATA <= '"+ dataFinalSQL + "'"; ResultSet resultSet = stmt.executeQuery(sql); String anoInicial = UtilData.getAno(dataInicial); String anoFinal = UtilData.getAno(dataFinal); 96 while(resultSet.next()){ String numeroDiario = String.valueOf(resultSet.getInt("NUMERO_DIARIO")); if(anoInicial.equals(anoFinal)){ String url = URL_BASE + "a"+anoInicial + "/" + anoInicial + StringHelper.preencherComZerosEsquerda(numeroDiario) + "00.PDF"; urls.add(url); } } } }catch(Exception e){ } return urls; } } 97 APÊNDICE 6 - CÓDIGO FONTE REMOÇÃO DE STOP WORDS public class StopWords { public final static String STOPWORDS = "a,à,agora,ainda,alguém,algum," + "alguma,algumas,alguns,ampla,amplas,amplo,amplos,ante,antes," + "ao,aos,após,aquela,aquelas,aquele,aqueles,aquilo,as,até," + "através,cada,coisa,coisas,com,como,contra,contudo,da,daquele," + "daqueles,das,de,dela,delas,dele,deles,depois,dessa,dessas," + "desse,desses,desta,destas,deste,deste,destes,deve,devem," + "devendo,dever,deverá,deverão,deveria,deveriam,devia,deviam," + "disse,disso,disto,dito,diz,dizem,do,dos,e,é,e,ela,elas,ele," + "eles,em,enquanto,entre,era,essa,essas,esse,esses,esta," + "está,estamos,estão,estas,estava,estavam,estávamos,este,estes," + "estou,eu,fazendo,fazer,feita,feitas,feito,feitos,foi,for,foram," + "fosse,fossem,grande,grandes,há,isso,isto,já,la,la,lá," + "lhe,lhes,lo,mas,me,mesma,mesmas,mesmo,mesmos,meu,meus,minha," + "minhas,muita,muitas,muito,muitos,na,não,nas,nem,nenhum,nessa," + "nessas,nesta,nestas,ninguém,no,nos,nós,nossa,nossas,nosso," + "nossos,num,numa,nunca,o,os,ou,outra,outras,outro,outros,para," + "pela,pelas,pelo,pelos,pequena,pequenas,pequeno,pequenos,per," + "perante,pode,pôde,podendo,poder,poderia,poderiam,podia,podiam," + "pois,por,porém,porque,posso,pouca,poucas,pouco,poucos,primeiro," + "primeiros,própria,próprias,próprio,próprios,quais,qual,quando," + "quanto,quantos,que,quem,são,se,seja,sejam,sem,sempre,sendo," + "será,serão,seu,seus,si,sido,só,sob,sobre,sua,suas,talvez,também," + "tampouco,te,tem,tendo,tenha,ter,teu,teus,ti,tido,tinha,tinham," + "toda,todas,todavia,todo,todos,tu,tua,tuas,tudo,última,últimas," + "último,últimos,um,uma,umas,uns,vendo,ver,vez,vindo,vir,vos,vós"; public static String removeStopWords(String linha){ String[] texto = linha.split(" "); String retorno = ""; for (int i = 0; i < texto.length; i++) { if(STOPWORDS.contains(texto[i].toLowerCase())){ texto[i] = ""; } } for (int j = 0; j < texto.length; j++) { retorno += " " + texto[j]; } System.out.println(retorno); return retorno; } } 98 APÊNDICE 7 - CÓDIGO FONTE DA STEMMING (LEMATIZAÇÃO) import org.apache.lucene.analysis.br.BrazilianStemmer; public class BrasilStemmer extends BrazilianStemmer { public String aplicaStemm(String palavra) { String retorno = null; retorno = stem(palavra); return retorno; } } 99