Modelo de TCC para o Curso de Ciência da Computação da UNIVALI

Propaganda
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
Download