Adaptação do Algoritmo Levenshtein Distance para o Cálculo...

31
UNIVERSIDADE CATÓLICA DE PELOTAS ESCOLA DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA Adaptação do Algoritmo Levenshtein Distance para o Cálculo de Similaridade entre Frases por Taís da Veiga Oliveira Orientador Prof. Dr. Stanley Loh Pelotas, fevereiro de 2010 Trabalho Individual I TI-2009/2-007

Transcript of Adaptação do Algoritmo Levenshtein Distance para o Cálculo...

Page 1: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

UNIVERSIDADE CATÓLICA DE PELOTAS

ESCOLA DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

Adaptação do Algoritmo Levenshtein Distance para o Cálculo de Similaridade entre Frases

por

Taís da Veiga Oliveira

Orientador Prof. Dr. Stanley Loh

Pelotas, fevereiro de 2010

Trabalho Individual I TI-2009/2-007

Page 2: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

SUMÁRIO

1. INTRODUÇÃO .....................................................................................................6 1.1. OBJETIVOS..................................................................................................7 1.2. ORGANIZAÇÃO DO TEXTO ........................................................................7

2. SIMILARIDADE ENTRE STRINGS/TEXTOS.......................................................8 2.1. BUSCA APROXIMADA POR STRINGS........................................................8 2.2. REUSO DE TEXTOS E PLÁGIO ..................................................................9

3. ESTADO DA ARTE.............................................................................................11 3.1. CONCEITOS...............................................................................................11 3.2. TRABALHOS RELACIONADOS.....................................................................15

4. ALGORITMO LEVENSHTEIN DISTANCE.........................................................20 4.1. COMPARAÇÃO DE DIALETOS......................................................................20 4.2. CORREÇÃO ORTOGRÁFICA........................................................................20 4.3. RECONHECIMENTO DA FALA......................................................................21 4.4. ANÁLISE DE DNA ..........................................................................................21 4.5. VINCULAÇÃO DE REGISTROS ....................................................................21 4.6. AUTENTICAÇÃO DE ASSINATURAS ON-LINE.............................................22

5. METODOLOGIA PROPOSTA ............................................................................23 5.1. ALGORITMO ..................................................................................................23 5.2. REMOÇÃO DE STOPWORDS .......................................................................23 5.3. STEMMING ....................................................................................................23 5.4. PERCENTUAL DE SIMILARIDADE................................................................23

6. EXPERIMENTOS...............................................................................................25 7. CONCLUSÃO E TRABALHOS FUTUROS ........................................................29 8. REFERÊNCIAS..................................................................................................30

Page 3: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

LISTA DE FIGURAS

FIGURA 1 - NÍVEIS DE REUSO DE TEXTOS (BENDERSKY, CROFT, 2009)............7 FIGURA 2 - EXEMPLO DE ÍNDICE INVERTIDO (MATOS ET AL., 2008 )................12 FIGURA 3 - FORMAÇÃO DE LRS (PITKOW, PIROLLI, 1999) .................................13 FIGURA 4 - HIPERNIMIA DA PALAVRA “AUTOMOBILE” - WORDNET (NAVEGA, 2004) .........................................................................................................................15 FIGURA 5 - RANKING PARA A STRING “ABCD” COM K = 2...................................19 FIGURA 6 - EXPERIMENTO 1..................................................................................25 FIGURA 7 - EXPERIMENTO 2..................................................................................25 FIGURA 8 - EXPERIMENTO 3..................................................................................26 FIGURA 9 - EXPERIMENTO 4..................................................................................27 FIGURA 10 - EXPERIMENTO 5................................................................................27

Page 4: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

RESUMO

Este trabalho sugere a aplicação do algoritmo Levenshtein Distance para a

identificação de similaridade entre frases. Na literatura, este algoritmo tem sido aplicado

considerando caracteres como unidade básica para o cálculo da distancia entre duas strings.

Este artigo sugere a aplicação desta técnica para o cálculo da distância entre frases, tomando

como unidade básica de comparação base as próprias palavras.

Palavras-chave: Algoritmo Levenshtein Distance, Similaridade, String

Page 5: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

TITLE: “Proposal Adaptation Algorithm Levenshtein Distance for the calculation of similarity between phrases”

ABSTRACT

This work suggests an adaptation of the Levenshtein Distance algorithm for the

identification of similarity between sentences. In literature, this algorithm has been applied

considering characters as the basic unit for calculating the distance between two strings. This

article suggests the application of this technique to calculate the distance between sentences,

taking as the basic unit of comparison own words.

Keywords: Algorithm Levenshtein Distance, Similarity, String.

Page 6: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

6

1. INTRODUÇÃO

Com o acesso cada vez mais facilitado às mídias digitais, tem ocorrido também um

grande acúmulo de informações, muitas vezes, semelhantes ou até mesmo idênticas, estando

as mesmas armazenadas localmente ou disponíveis na Web.

O reuso de textos pode ter diversas abordagens. Na Internet, é bastante comum que

sejam encontradas informações semelhantes, um exemplo disso são os portais de notícias, que

costumam disponibilizar as mesmas informações escritas de formas diferentes. Documentos

idênticos também podem ser facilmente encontrados na Web, devido ao fato de terem sido

armazenados por diversas fontes diferentes. Outra abordagem do reuso ocorre no ambiente

corporativo, principalmente no que se trata de grandes organizações. Muitas vezes, em um

ambiente distribuído, onde equipes distintas contribuem com o mesmo repositório de

informações, o número de duplicações pode ocasionar um volume bastante extenso de

conteúdo, dificultando o posterior gerenciamento destas informações.

Atualmente, na Internet, um grande número de textos com conteúdos semelhantes ou

relacionados estão sendo produzidos todos os dias, muitas vezes, através do reuso de outros

textos. Sentenças, frases ou fatos são copiados de outros documentos e alterados, ou, muitas

vezes, nem chegam a ser modificados.

Enquanto que copiar um texto e reutilizá-lo pode ser considerado por alguns como

uma forma de plágio, é freqüentemente uma prática completamente legal (PIAO; MCENERY,

2003, p. 637). O reuso de textos pode indicar até mesmo a qualidade de uma informação,

considerando que, uma vez que a mesma foi afirmada por mais de um autor, existem maiores

probabilidades de que esteja correta.

Bendersky e Croft (2009) sugerem três níveis do reuso de textos. O primeiro nível é a

duplicação da sentença, ou seja, um fragmento do texto é escrito de forma exatamente igual

ao encontrado no texto original. O segundo nível representa uma reafirmação do mesmo fato,

porém reformulações e adição de outras informações. Por último, o terceiro nível caracteriza

apenas uma semelhança tópica com a frase original. A Figura 1, mostra uma tabela, disponível

neste mesmo trabalho, que exemplifica a diferença entre estes 3 níveis. Na imagem, a

sentença original é mostrada em negrito e as categorias C1, C2 e C3 representam os três tipos

de reuso descritos.

Page 7: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

7

1.1. Objetivos

Este trabalho tem como objetivo principal realizar um estudo sobre o Estado da Arte

da comparação entre textos, sentenças e strings.

Seus objetivos específicos consistem em:

• Estudar as técnicas utilizadas atualmente, considerando a finalidade descrita

anteriormente;

• Propor uma adaptação do algoritmo Levenshtein Distance, utilizando as próprias

palavras como unidade básica para a comparação;

• Identificar, nas técnicas estudadas, possíveis aperfeiçoamentos para o algoritmo

proposto.

1.2. Organização do texto

O texto está organizado da seguinte forma. No capítulo 2, são abordados o reuso de

textos e o plágio, descrevendo algumas das técnicas utilizadas atualmente com a finalidade de

identificar estes tipos de similaridade. O capítulo 3 descreve o algoritmo Levenshtein

Distance, em sua forma original, bem como algumas de suas aplicações. No capítulo 4, é

proposta uma adaptação deste algoritmo. Por último, no capítulo 5, são mostrados os

resultados de alguns testes realizados com base no algoritmo proposto.

Figura 1 - Níveis de Reuso de Textos (BENDERSKY, CROFT, 2009)

Page 8: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

8

2. SIMILARIDADE ENTRE STRINGS/TEXTOS

Dados texto são ubíquos. A gestão de dados texto em bancos de dados e sistemas de

informação tem recebido uma particular importância recentemente (HADJIELEFTHERIOU,

LI, 2009).

Atualmente, têm sido estudados diversos temas relacionados à identificação de

similaridade entre strings ou textos. Dentre eles pode-se citar: busca aproximada por strings e

a detecção de plágios e reuso de textos.

2.1. Busca aproximada por strings

Dada uma coleção de strings, a busca aproximada por strings tem o objetivo de

identificar, de forma eficiente, strings similares àquelas informadas em uma dada consulta.

Abaixo, são listadas algumas de suas aplicações.

Flexibilização de consultas (Query Relaxation) – Muitas vezes, ao serem executadas

consultas, os termos de busca não coincidem com os dados existentes no banco de dados.

Estas divergências podem ter diversas causas, dentre elas erros nos termos utilizados na

consulta ou conhecimento limitado do usuário sobre o assunto pesquisado, inconsistências nos

dados da base de dados, entre outros motivos. A partir da Query Relaxation, é possível

retornar dados potencialmente interessantes ao usuário, com base na similaridade destes com

os especificados na consulta.

Limpeza de dados (Data Cleaning) – Informações provenientes de diversas fontes podem

acarretar em dados inconsistentes, ou seja, um mesmo objeto do mundo real pode ter diversas

representações. Estas inconsistências podem ser geradas por inúmeros motivos, como erros no

processo de coleta de dados ou falhas humanas. A limpeza de dados tem o objetivo o de

detectar, e, então, corrigir ou remover os registros incorretos ou imprecisos. Por estas razões,

uma das principais metas do Data Cleaning é encontrar entidades similares em uma coleção,

ou todos os pares de entidades similares em várias coleções (HADJIELEFTHERIOU, LI,

2009).

Page 9: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

9

Verificação ortográfica (Spell Checking) – Neste processo, com base em uma determinada

entrada, um corretor ortográfico identifica possíveis candidatos para uma palavra digitada

incorretamente.

Busca interativa (Interactive Search) – uma importante muito importante aplicação recente é

fornecer respostas para os resultados da consulta em tempo real, como os usuários estão

digitando a sua consulta. Essas caixas de pesquisa interativa são ubíquas e têm se mostrado

muito importantes na prática, porque limitam o número de erros cometidos pelos usuários e

também reduzem o número de reformulações consulta enviada a fim de encontrar o que trará

resultados satisfatórios (HADJIELEFTHERIOU, LI, 2009).

2.2. Reuso de Textos e Plágio

Na literatura, existem diversos trabalhos cujo foco é a identificação de similaridade

entre textos. Muitos destes trabalhos abordam esta similaridade como identificação do reuso

das informações, outros, porém, tratam como forma de detecção de plágios.

Conforme Uzuner, Katz e Nahnsen (2005), Plagiar é "roubar e passar as idéias ou

palavras de outro, como o próprio; para utilizar a produção de outro, sem creditar a fonte, ou

para cometer roubo literário pela apresentação de uma nova e original idéia ou produto

derivado de uma fonte existente.

O plágio tem se tornado um fato bastante comum, principalmente, entre a comunidade

acadêmica, o que acaba por ocasionar uma diminuição na qualidade do ensino, sobretudo nos

ambientes de EAD.

O reuso de textos também tem sua contribuição negativa. No ambiente corporativo,

principalmente, em grandes organizações, é comum que a duplicação das informações acabe

por gerar um repositório bastante grande, aumentando a dificuldade para o gerenciamento

deste conteúdo. Os motores de busca, da Internet, também sofrem a influência negativa desta

duplicação, pois, geralmente, seus usuários não desejam encontrar informações repetidas.

Por outro lado, o reuso de textos pode representar uma característica da qualidade da

informação, partindo-se do princípio de que, quanto mais autores afirmarem o mesmo fato,

maior é a probabilidade de que a mesmo seja verídico.

Independentemente da abordagem adotada, os métodos utilizados para identificação de

Page 10: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

10

similaridade entre textos são bastante semelhantes, podendo serem aplicados em ambas as

abordagens, dependendo apenas da aplicação que se deseja dar a eles. A seguir, são descritos

alguns temas, encontrados na literatura, referentes à identificação de similaridade entre textos.

Para comparar dois ou mais documentos e raciocinar sobre o grau de similaridade

entre eles, é necessário atribuir valor numérico, chamados escore de similaridade, para cada

documento. Este escore pode ser baseado em diferentes métricas. Há muitos parâmetros e

aspectos do documento que podem ser utilizados como métricas (LUKASHENKO,

GRAUDINA, GRUNDSPENKIS, 2007).

Existem diversos métodos para a comparação de textos, podendo ser classificados em

métodos estatísticos ou semânticos. Os métodos estatísticos não consideram o significado dos

documentos. Geralmente, são baseados em vetores que contém termos selecionados a partir

de características como, por exemplo, a freqüência com que estes termos ocorrem no

documento. Quanto aos métodos semânticos, normalmente, costumam possuir uma maior

complexidade, devido à análise mais aprofundada do relacionamento entre as palavras do

texto, considerando aspectos como a morfologia das palavras, a estrutura sintática e semântica

das frases.

Page 11: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

11

3. ESTADO DA ARTE

Nesta seção, serão comentados alguns dos trabalhos realizados recentemente, que

estão relacionados com a identificação de similaridade entre strings ou textos. Para uma

melhor compreensão, primeiramente, são especificados os principais conceitos abordados

nestes trabalhos, em seguida, é apresentada um resumo dos mesmos.

3.1. Conceitos

A seguir são apresentados alguns conceitos que serão abordados ao longo do presente

trabalho.

Stopwords - Em um documento, existem muitos tokens que não possuem nenhum valor

semântico, sendo úteis apenas para o entendimento e compreensão geral do texto. Estes

tokens são palavras classificadas como stopwords e fazem parte do que é chamado de stoplist

de um sistema de Mineração de Textos (BASTOS, 2006, apud JUNIOR, 2007, p. 46). Uma

stoplist bem elaborada permite a eliminação de muitos termos irrelevantes, tornando mais

eficiente o resultado obtido pelo processo de Mineração de Textos. Normalmente, 40 a 50%

do total de palavras de um texto são removidas com uma stoplist (SILVA, 2007, apud

JUNIOR, 2007, p. 46).

Stemming ou lematização - Qualquer documento textual apresenta muitas palavras

flexionadas nas mais diversas formas. Na Língua Portuguesa, um substantivo pode ser

flexionado em gênero, número e grau, e apresentar o mesmo valor semântico. O processo de

formação de palavras é, na maior parte das vezes, realizado pela derivação de radicais,

resultando na criação de palavras que também exprimem o mesmo significado (CEGALLA,

2005, apud JUNIOR, 2007, p. 49). O processo de lematização consiste em reduzir uma

palavra ao seu radical.

Fingerprints - Fingerprints são pequenas unidades de texto, que podem se tratar de

substrings ou mesmo subsequências de palavras são convertidas para a sua forma numérica

através de algoritmos de hashing, como, por exemplo, o MD5 e o Rabin fingerprinting.

Page 12: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

12

Modelo de Índice Invertido – Um banco de dados textual é uma coleção de documentos, que

pode ser representada por um conjunto de registros. Cada registro contém uma lista de

palavras. Uma estratégia de recuperação textual é comparar a lista de palavras de uma

consulta com a lista de palavras dos registros. Entretanto, em grandes coleções a comparação

direta da consulta com todos os registros é computacionalmente cara. Com o objetivo de

acelerar este cálculo, limitando a comparação a um subconjunto de registros, utiliza-se o

índice invertido (MATOS et al. apud ZOBEL, 1998). Esta técnica baseia-se na utilização de

vetores. O índice invertido possui duas partes principais: uma estrutura de busca, chamada de

vocabulário, contendo todos os termos distintos existentes nos textos indexados e, para cada

termo, uma lista invertida que armazena os identificadores dos registros contendo o termo

(MATOS et al. apud BAEZA-YATES, 1999).

Modelo de Representação Vetorial - No Modelo de Representação Vetorial, o

processamento de uma consulta é realizado através de um cálculo de similaridade entre cada

documento da coleção e a própria consulta, ou seja, toda consulta é também representada de

forma vetorial, e através de um cálculo de similaridade entre cada documento da coleção e a

consulta, obtém-se uma lista dos documentos relevantes para aquela necessidade de

informação (SOARES, 2008).

Latent Semantic Indexing - O processo denominado Latent Semantic Indexing (LSI) é uma

técnica que permite encontrar uma estrutura semântica associada a uma coleção de

documentos indexados em uma matriz. Para isso, leva-se em conta não apenas a ocorrência

dos termos em documentos, mas a co-ocorrência desses termos, isto é, conjuntos de termos

Figura 2 - Exemplo de Índice Invertido (MATOS et al., 2008 )

Page 13: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

13

que freqüentemente são encontrados nos mesmos documentos. (OLIVEIRA, OLIVEIRA)

Longest Repeating Sequences – A técnica LRS (Longest Repeating Sequences) tem o

objetivo de identificar padrões significativos de navegação. A seguir é apresentado um

exemplo retirado de (PITKOW, PIROLLI, 1999).

Na ilustração 3, as setas mais grossas indicam mais de uma passagem, ao contrário das

setas mais finas, que ilustram apenas uma passagem. Supondo a existência de um website que

contém as páginas A, B, C e D, onde A contém um hiperlink para B e B contém hiperlinks

para C e D. Se os usuários, repetidamente, navegarem de A para B, mas somente um usuário

navegar para C e apenas um usuário navegar para D (caso 1), a LRS será AB. Se, no entanto,

mais de um usuário clicar em D através de D (caso 2), então AB e ABD serão as LRSs. Neste

caso, AB é uma LRS, desde que, em outra ocasião, AB não tenha sido seguido por ABD. No

terceiro caso, ABC e ABD são LRSs, uma vez que ambas ocorrem mais de uma vez. No

quarto caso, AB não é uma LRS, uma vez que nunca é a longest repeating subsequence.

Algoritmo Smith-Waterman - Baseado em programação dinâmica, o algoritmo Smith-

Waterman é um método utilizado para o alinhamento de seqüências local, ou seja, o mesmo

identifica as regiões comuns em seqüências que compartilham características locais de

similaridade. É considerado o algoritmo mais preciso de alinhamento de seqüência disponível,

mas a sua complexidade computacional o torna bastante lento.

Processamento de Liguagem Natural - O PLN (Processamento de Liguagem Natural) é uma

Figura 3 - Formação de LRS (PITKOW, PIROLLI, 1999)

Page 14: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

14

área da Inteligência Artificial, que lida com problemas relacionados à automação da

interpretação e da geração da língua humana em diversas aplicações. Este processo,

geralmente, pode ser constituído por 4 diferentes etapas de análise. Na análise morfológica,

são identificadas palavras ou expressões isoladas em uma sentença, sendo através de

delimitadores (pontuação e espaços em branco). Estas palavras, são, então, classificadas de

acordo com a sua categoria gramatical. A análise sintática tem como objetivo a construção de

árvores de derivação para cada sentença, mostrando o relacionamento das palavras entre si.

Porém, esta análise não tem nenhuma relação com a semântica das palavras, uma vez que uma

frase pode ser, gramaticamente, correta, mas não ser compreensível. O objetivo da análise

semântica, então, é identificar os conceitos semânticos da frase, com base na árvore gerada

pela análise sintática. Geralmente, o conteúdo das frases estão relacionados com as

propriedades de um evento como "onde", "quando", "o que", "quem", "como", etc. Na análise

pragmática, é realizada a interpretação do todo, não mais o significado apenas de suas partes.

Wordnet - WordNet é uma Base de Dados Léxica que contém informações sobre palavras,

palavras compostas, verbos, frases idiomáticas, relações hierárquicas entre palavras e outras

propriedades. Essa base de dados possui, por exemplo, informações sobre sinônimos (palavras

diferentes que significam a mesma coisa), hiperônimos/hipônimos (a derivação hierárquica

das palavras), merônimos (as “partes” associadas ao sentido de uma palavra), etc. Com o

WordNet diversas aplicações tornam-se possíveis, não apenas na recuperação de informação

mas também na análise do significado de frases (NAVEGA, 2004).

Page 15: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

15

Escores de Similaridade - Funções de comparação retornam escores de similaridade entre

segmentos de texto. A partir destes escores, é considerado um limiar, geralmente, estabelecido

pelo usuário, para determinar se um determinado segmento de texto é ou não similar a outro.

3.2. Trabalhos Relacionados

Em Seo e Croft (2008), a quantidade de conteúdo compartilhado entre dois

documentos se dá pelo número de fingerprints compartilhados entre os mesmos pelo total de

fingerprints do documento base da comparação. Se o total de fingerprints compartilhados

forem superiores a 80%, 50% ou 10%, considera-se, respectivamente, que o texto de um

documento A foi muito, consideravelmente, ou parcialmente reutilizado em um documento B.

Para encontrar os documentos com relação de reuso, é gerado um índice invertido com os

fingerprints extraídos dos documentos e, então, feito o merge destes documentos. O tamanho

Figura 4 - Hipernimia da palavra “automobile” - Wor dnet (NAVEGA, 2004)

Page 16: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

16

da lista invertida é o total de fingerprints mais frequentes nos documentos, porém, para uma

comparação mais eficiente, podem ser definidas uma lista de “stop-fingerprints”, cuja função

é idêntica às stopwords. Segundo os autores, boas técnicas de fingerprinting devem gerar

fingerprints que representem fielmente os documentos (precisão) e gerar o menor número

possível de fingerprints (eficiência). Com base nestes princípios, existem dois tipos de

métodos: métodos de sobreposição e métodos de não-sobreposição. Os métodos de

sobreposição utilizam o conceito de janela deslizante. Basicamente, a janela é deslocada por

uma palavra, e uma seqüência de palavras na janela ou o seu valor hash é tratado como um

bloco (SEO, CROFT, 2008). Como alguns dos métodos que utilizam esta técnica estão k-

gram, 0 mod p e Winnowing. A técnica de não-sobreposição consiste em dividir o texto em

segmentos significativos, ao invés de gerar muitas subsequências de palavras, não havendo,

portanto, a sobreposição de blocos. A posição em que uma quebra de palavra ocorre é referido

como um ponto de interrupção (SEO, CROFT, 2008).

Oliveira e Oliveira (2008) apresentam uma abordagem para a detecção de plágio em

ambientes de EAD (Ensino à Distância). A metodologia proposta sugere a aplicação do

Modelo de Representação Vetorial, como forma de representar os documentos a serem

comparados, posteriormente a esta representação é aplicado o processo de Latent Semantic

Indexing (LSI). Neste trabalho, os pesos dos termos são representados pelas freqüências com

que eles ocorrem nos documentos a que pertencem. O cálculo do produto vetorial dos vetores

de pesos indica o grau de similaridade entre dois documentos. O resultado do produto

vetorial entre dois vetores é o cosseno do ângulo, formado entre esses vetores. Quanto mais

próximo de 1 for o resultado, mais semelhantes podem ser considerados os documentos

utilizados como base para a comparação. Sendo assim, o valor 0 indica dissimilaridade total e

1 indica que os documentos são idênticos.

De acordo com Leung e Chan (2007), o plágio, no ambiente acadêmico, pode ocorrer

em 3 situações: cópia de uma fonte sem versão eletrônica, cópia direta de uma fonte com

versão eletrônica e cópia de uma fonte com versão eletrônica e modificação intencional do

conteúdo. Neste trabalho, o processamento de linguagem natural é aplicado como forma de

detecção de plágios, visando a identificação da terceira situação citada. A estrutura sintática

básica e o significado semântico de duas sentenças podem ser comparados a fim de revelar

sua similaridade (LEUNG, CHAN, 2007). Esta abordagem, primeiramente, adota a utilização

de um thesaurus, como forma de identificação de sinônimos, termos mais amplos ou

específicos, relacionados aos termos existentes no documento analisado. O Wordnet é um

exemplo típico de thesaurus que pode ser usado para esta finalidade. Pontuações diferentes

Page 17: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

17

são atribuídas aos diferentes tipos de palavras relacionadas. Com base no resultado do cálculo

obtido a partir destas pontuações, se o valor de similaridade encontrado for maior que um

determinado limiar, a frase é suspeita de ser plágio, sendo, então, analisada sintática e

semanticamente.

No trabalho de Metzler (2007), foram utilizados resultados da web para expandir a

representação de textos curtos. Para cada um destes segmentos de texto, foram executadas

consultas em uma ferramenta de busca, recuperando os primeiros 200 resultados. Os títulos e

snippets associados com estes resultados foram então concatenados e utilizados para expandir

a representação. No trabalho de Tsatsou (2009), também foi utilizada uma fonte externa, mais

especificamente, a Wikipedia, com a finalidade de encontrar variações nos utilizados para

designar determinadas entidades nomeadas. Esta abordagem também pode ser bastante

interessante no sentido de encontrar palavras relacionadas, auxiliando assim na diminuição do

efeito negativo dos sinônimos na comparação entre frases.

Segundo Uzuner, Katz e Nahnsen (2005), informações lingüísticas pode ser uma

poderosa fonte para medir a similaridade entre trabalhos com base na expressão de seu

conteúdo. Neste trabalho, são abordados os aspectos criativos da escrita como forma de

reconhecer ocorrências de plágio. Neste trabalho, é identificado um conjunto de

características relacionadas com as escolhas lingüísticas dos autores, utilizando, para isso,

diferentes expressões sintáticas do mesmo conteúdo. Após terem sido identificadas as

características relevantes, são analisados os padrões de utilização desses recursos,

possibilitando, assim, o reconhecimento de paráfrases. Para identificar esses aspectos

criativos, foram utilizadas diferentes traduções de obras literárias. Estas traduções têm a

característica de serem escritas de formas diferentes, transmitindo, porém, o mesmo conteúdo.

Ota e Masuyama (2009) também propõe uma abordagem baseada no algoritmo Smith-

Waterman, porém, com foco em papers escritos na língua japonesa. O método proposto

identifica partes plagiadas dispersas no texto, através da repetida aplicação do algoritmo em

questão. Irving (2004) propõe a aplicação do algoritmo Smith-Waterman considerando, como

unidade básica para o cálculo da distância, palavras ou sentenças. No entanto, no trabalho de

(OTA; MASUYAMA, 2009), não foi considerada adequada a utilização das palavras como

unidade básica de processamento, dada a facilidade de alteração da ordem das palavras em

japonês.

Em Su et al., é apresentado um método de detecção de plágio híbrido. Este trabalho

analisa a utilização do algoritmo Levenshtein Distance e o algoritmo Smith-Waterman

simplificado, como forma de detecção de plágio. Esta abordagem evita a comparação de

Page 18: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

18

strings envolvidas globalmente e considera também fatores psicológicos.

Uma outra aplicação interessante do algoritmo Levenshtein Distance é abordada no

trabalho de Ruddle (2006), que propõe um método que utiliza matching de strings com a

finalidade de analisar o log de navegação do website. O método divide-se em duas

abordagens. Na primeira, é utilizado o matching exato de strings para identificar as

subseqüências de links que foram repetidas em diferentes sessões de navegação,

identificando, assim os caminhos comuns através do site. Nesta abordagem é utilizado o

conceito de LRSs. Na segunda, é realizado o matching inexato para encontrar sessões

similares, identificando, por exemplo, comunidades de usuários com interesses semelhantes.

Para o matching inexato, foi utilizado o algoritmo Levenshtein Distance, considerando 4

parâmetros, sendo eles bônus por pares de elementos correspondentes ou penalizações por

substituição e inserções. O número de matchings, inserções ou substituições é multiplicado

pelos valores atribuídos a estes parâmetros.

No que diz respeito à definição de limiares de similaridade, Nunes (2009) apresenta

uma padronização para escores de similaridade, mapeando estes escores para valores de

precisão. Permitindo, assim, que o usuário possa informar, não um limiar como base de

comparação, ma a precisão esperada para os resultados considerados relevantes. A técnica

resume-se na construção de uma tabela de mapeamento, considerando um determinado

domínio, bem como uma determinada função de similaridade. Tal tabela é obtida a partir do

treinamento dos dados, utiliza um conjunto de valores representativos. Cada consulta, então, é

comparada com o conjunto de atributos do domínio, gerando, então, um ranking com os

valores originais de similaridade resultantes da função. A precisão é calculada para cada

posição destes rankings. Para cada ranking, é realizado o cálculo da precisão interpolada em

cada um dos pontos estabelecidos, que, no caso deste trabalho, inicialmente, eram 11 pontos

([0, 0.1, . . . , 0.9, 1.0]). Então, a média de todos valores de precisão interpolada é calculada

para cada um desses pontos sobre todos os rankings, obtendo-se, desta forma, a tabela de

mapeamento de escores. Considerando os experimentos realizados no trabalho citado, um dos

algoritmos que obteve respostas mais significativas à técnica aplicada foi o Levenshtein

Distance.

Em Vernica e Li (2009), o limiar pode variar de acordo com o número de resultados

obtidos. Este trabalho propõe uma forma de flexibilizar consultas, encontrando as strings mais

relevantes, considerando a similaridade com a string original e a importância das possíveis

candidatas. Neste trabalho, são apresentados três algoritmos. O primeiro algoritmo calcula a

similaridade entre a string da consulta e a coleção de strings, com base em um limiar pré-

Page 19: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

19

estabelecido. Este limiar pode ser diminuído, dependendo do número de resultados obtidos.

Após a obtenção do resultado, são calculados os escores para cada elemento retornado, sendo

ordenados pelo seu escore de similaridade. Então, é realizado o cálculo considerando o escore

de similaridade e a importância da string candidata. Na Figura 5, é mostrado um exemplo

onde são mostrados os resultados a partir da string “abcd”, utilizando o algoritmo Jaccard

Similarity, e considerando k = 2.

No segundo algoritmo, então, é apresentado o conceito de índice invertido, utilizando

q-grams. Q-grams podem ser descritas como pequenas substrings de tamanho fixo q. Para

cada gram, tem-se uma lista invertida das strings que contém este gram. O terceiro algoritmo

é baseia-se na junção dos dois primeiros algoritmos.

Figura 5 - Ranking para a string “abcd” com k = 2.

Page 20: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

20

4. ALGORITMO LEVENSHTEIN DISTANCE

O algoritmo Levenshtein Distance foi criado pelo cientista russo Vladimir

Levenshtein, em 1965. O foco desta técnica é a avaliação da similaridade entre duas strings

com base no número de operações necessárias para transformar uma string em outra, sendo

que as operações possíveis são a inserção, a exclusão e a substituição. A distância zero indica

que as strings são idênticas. A partir do tamanho de cada string é montada uma matriz, onde

serão setados os custos de cada operação, geralmente, cada uma delas possui custo 1. Ao final

das comparações, a distância é dada pela última posição da matriz.

Apesar de ser um algoritmo relativamente antigo, o Levenshtein Distance ainda é

bastante utilizado atualmente. Na literatura, é comum encontrar a sua aplicação em tarefas

como comparação de dialetos, correção ortográfica, reconhecimento da fala, análise de DNA,

detecção de plágios, autenticação de assinaturas e vinculação de registros. A seguir, são

descritos alguns trabalhos que abordam o estudo da sua aplicação.

4.1. Comparação de dialetos

O trabalho de Freeman (2006) apresenta uma solução para o problema do matching de

nomes pessoais em Inglês para a representação dos mesmos nomes em códigos Árabes. Neste

estudo são realizadas uma série de etapas como, por exemplo, a transliteração dos nomes, a

aplicação do algoritmo Levenshtein, com posterior normalização de seu resultado. Esta

normalização considera o tamanho das strings sobre as quais será realizado o matching, ou

seja, o valor retornado pelo algoritmo LD é dividido pela soma do número de caracteres das

strings. Este valor, então, é diminuído de 1, tendo assim, o valor normalizado. A intenção da

divisão pelo tamanho de ambos os nomes é minimizar o peso de caracteres incompatíveis em

strings longas (FREEMAN, 2006). A normalização também é aplicada às próprias strings.

4.2. Correção ortográfica

Segundo estudo de Damerau (1964), aproximadamente 80% das palavras digitadas

incorretamente, possuíam pelo menos um erro relacionado à inserção, remoção, substituição

ou transposição. Tais descobertas passaram, então, a serem largamente aplicadas em técnicas

para correção ortográfica. No trabalho de Piltcher et al. (2005), o algoritmo Levenshtein foi

Page 21: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

21

utilizado em conjunto com os algoritmos Metaphone e Soundex, para a análise de um

corretor ortográfico para ambientes de chat.

4.3. Reconhecimento da Fala

No estudo de Fiscus (2006), o algoritmo de distância de edição é utilizado para

realizar a comparação entre dois gráficos lineares, onde os nodos são palavras ao invés de

strings de caracteres.

4.4. Análise de DNA

Atualmente, até mesmo os melhores métodos de seqüenciamento de DNA apresentam

imperfeições. Segundo Troncoso-Pastoriza (2007), devido às imperfeições de seqüenciamento

químico, pode ocorrer 3 tipos de erros: substituição de símbolos (um símbolo errado é

gravado), inserções (um símbolo que não está presente no genoma é relatada no registro

digital) e a exclusão (o processo de seqüenciamento falha ao representar bases que estão

presentes no genoma).

Na literatura, o algoritmo LD é bastante utilizado para a comparação destas seqüências

de símbolos.

4.5. Vinculação de Registros

A vinculação de registros é um campo em crescente expansão com aplicações em

muitas áreas da saúde e pesquisa biomédica (Bell and Sethi 2001 apud Kelman et al 2002).

Ela pode ser vista como a metodologia para identificar em dois ou mais arquivos registros que

pertencem à mesma entidade ou encontrar duplicatas dentro de um mesmo arquivo (Freire et

al., 2009). O algoritmo de Levenshtein, bem como os algoritmos Levenshtein, Subsequência

Comum mais Longa (SCL), Monge-Elkan, e uma combinação de SCL com Levenshtein, e

também o algoritmo Jaro, e algumas de suas variantes, como, por exemplo, Winkler, Lynch,

McClaughlin foram estudados quanto à sua aplicação na área. O algoritmo Levenshtein

mostrou-se bastante veloz em comparação aos demais. O estudo conclui que o algoritmo

Levensthein pode não ser o mais adequado à vinculação de registros, porém os próprios

autores reconhecem que a amostra estudada foi bastante pequena. Em contrapartida, existe um

software, denominado Reclink, o qual utiliza o algoritmo de Levenshtein para a comparação

Page 22: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

22

de registros e o algoritmo soundex para a blocagem, sendo bastante utilizado no Brasil para

realizar vinculação de registros na área de saúde, sugerindo, portanto, a eficácia destes

algoritmos na área.

4.6. Autenticação de Assinaturas On-line

O algoritmo LD também tem sido estudado no reconhecimento de assinaturas on-line.

No trabalho de Schimke et al. (2004), as assinaturas são convertidas para uma sequência de

códigos, que considera fatores como a posição da escrita e a pressão da mesma. Uma vez

definidas estas sequências, as mesmas são, então, analisadas pelo Levenshtein. Após a

comparação das assinaturas, a classificação das mesmas é realizada pelo classificador Nearest

Neighbor. Foi analisado um conjunto de 1376 assinaturas referentes à 41 pessoas. Segundo o

estudo, os resultados são bastante animadores, com 96% de identificações corretas contra

nenhuma classificação falsa.

Page 23: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

23

5. METODOLOGIA PROPOSTA

Na metodologia proposta, além do algoritmo, foram utilizadas algumas técnicas de

pré-processamento de textos, como a remoção de stopwords e o Stemming, conforme descrito

a seguir.

5.1. Algoritmo

A única alteração no comportamento do algoritmo foi quanto à sua unidade básica de

comparação. Normalmente, esta técnica é utilizada para comparar todos os caracteres de duas

strings. Neste trabalho, o algoritmo compara todas as palavras de duas frases.

5.2. Remoção de stopwords

Considerando que as stopwords podem influenciar de forma negativa no resultado da

comparação, uma vez estas palavras não são relevantes e podem se repetir diversas vezes ao

longo de um texto, optou-se por removê-las. A stoplist é informada no momento em que o

algoritmo é executado.

5.3. Stemming

As diversas possibilidades de flexão das palavras também podem influenciar no

resultado final da comparação, pois qualquer diferença morfológica entre duas palavras, ainda

que o significado semântico permaneça idêntico, é considerada pelo algoritmo, aumentando a

distância entre as frases. Tendo em vista o exposto, é notória a importância do processo de

lematização para a metodologia proposta.

5.4. Percentual de Similaridade

Page 24: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

24

Para o cálculo percentual de similaridade, são considerados o total de palavras entre a

frase original e a frase comparada e a distância encontrada pelo algoritmo. Desta forma,

supondo que temos um total de 10 palavras, e distância encontrada fosse 2, teríamos o

seguinte cálculo:

Percentual de Distância = ( 2 * 100 ) / 10 = 20 %

Similaridade = 100 % - 20 % = 80 %

Page 25: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

25

6. EXPERIMENTOS

No exemplo mostrado na Figura 6, foi realizado o cálculo da distância entre as frases

“Muitos consideram Maradona como o melhor jogador de futebol na história do futebol” e

“Maradona é um dos melhores jogadores de futebol”. De acordo com a stoplist, foram

removidas palavras como: muitos, como, o, na, é, um, dos. As palavras restantes foram

reduzidas ao seu radical. Após a execução do algoritmo, pode-se observar que a distância

calculada foi equivalente a 2. Esta distância deve-se aos custos de exclusão dos radicais das

palavras “consideram” e “história”.

No segundo experimento, mostrado pela Figura 7, pode-se observar a influência da

localização da palavra “Brasil” na distância resultante da comparação entre a frase original e

as 3 primeiras frases, sendo que, semanticamente, estas frases são idênticas. Na comparação

entre a frase original e a última frase comparada a distância foi 3, diferindo muito pouco da

distância das duas frases anteriores, sendo que esta última frase é bastante diferente da frase

original, ao contrário das demais.

Figura 6 - Experimento 1

Figura 7 - Experimento 2

Page 26: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

26

Para resolver o problema ilustrado pela Figura 7, bastaria que fossem ordenadas,

automaticamente, as três primeiras frases, tornando-as, portanto, idênticas à frase original.

Sendo assim, a distância resultante seria equivalente a zero, o que seria mais correto. Porém, a

ordenação das frases somente seria válida em casos onde ocorressem pequenas diferenças

entre as frases.

A seguir são mostrados alguns exemplos comparando duas descrições do curso de

Tecnologia em Análise e Desenvolvimento de Sistemas, extraídas de diferentes universidades.

Na figura 8, é possível identificar a importância da identificação de sinônimos para a

implementação proposta. Neste caso, os termos “visa” e “objetiva” possuem o mesmo

significado, portanto, para comparação, um termo poderia ser substituído pelo outro. Esta

substituição ocasionaria o aumento da similaridade entre as frases, passando de 57% para

61%.

Figura 8 - Experimento 3

Page 27: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

27

Na Figura 9, pode-se notar que a parte inicial destas frases é bastante semelhante

(“Visa a formação de profissionais para atuação” e “Objetiva formar profissionais para

atuar”). Com a ordenação das frases, foi perdida completamente a relação sintática destas

estruturas e ocorreu redução da similaridade entre as duas frases.

No exemplo mostrado na figura 10, pode-se observar que a distância retornada pelo

Figura 9 - Experimento 4

Figura 10 - Experimento 5

Page 28: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

28

algoritmo aumentou consideravelmente, ao contrário do percentual de similaridade, que

variou relativamente pouco. Isto ocorre devido ao fato de que o percentual de similaridade, no

cálculo utilizado, está intimamente relacionado ao tamanho do texto, de forma que, quanto

menor for o tamanho dos textos comparados, maior será o impacto da distância retornada pelo

algoritmo. Este é um fator importante para determinar se a melhor alternativa é comparar

textos inteiros ou segmentos menores, como é o caso das frases.

Para a continuação do testes, foi considerando a divisão do texto em frases, sendo elas

representadas por f1, f2, f3, f4, conforme mostrado a seguir:

Primeira descrição: Visa a formação de profissionais para atuação em pesquisa, gestão,

desenvolvimento, uso e avaliação de tecnologias da informação aplicadas nas organizações

(f1). A finalidade principal é preparar profissionais para os setores que necessitem lançar mão

da tecnologia da informação, dotando-os de uma formação básica, prática e humanística (f2).

Segunda descrição: Objetiva formar profissionais para atuar na área de Informática com

visão global e multidisciplinar do setor, instrumentalizados com embasamento teórico, prático

e tecnológico (f3). Estes profissionais estarão habilitados a identificar, planejar e executar

atividades de desenvolvimento, implementação e gerenciamento de sistemas de informação,

dando ênfase a conhecimentos práticos em TI e suas áreas de conhecimento, como Análise de

Sistemas, Desenvolvimento de Software, Programação Web, entre outras (f4).

Primeiramente, foi estabelecido um limiar para o percentual de similaridade a ser

retornado. O limiar utilizado foi 60%. Neste caso, foi retornada apenas a comparação das

frases f1 e f3, considerando que o percentual de similaridade entre elas é de exatamente 60%.

Reduzindo este limiar para 50%, foi retornada também a comparação entre as frases f2 e f3,

tendo sido obtido um percentual de 55% de similaridade. Um fator interessante a ser

considerado neste teste é o fato de ambas as frases da descrição tomada como base (f1 e f2)

são mais semelhantes à mesma frase da segunda descrição (f3). As comparações das frases f1

e f2 com a frase f4, obtiveram, respectivamente, 43% e 44% de similaridade.

Page 29: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

29

7. CONCLUSÃO E TRABALHOS FUTUROS

Tendo em vista o exposto, pode-se concluir que o algoritmo tradicional possui potencial

para a avaliação de similaridade entre textos, porém ainda é necessário aperfeiçoá-lo para esta

finalidade. A seguir são apresentados alguns possíveis problemas desta abordagem, sugerindo

para cada problema uma solução a ser implementada futuramente.

A existência de diversos sinônimos para uma mesma palavra pode interferir bastante

no resultado final, pois qualquer diferença entre duas palavras, ainda que sejam

semanticamente iguais, resulta no aumento da distância retornada pelo algoritmo. Para

resolver este problema, poderiam ser utilizadas ferramentas como, por exemplo, o WordNet.

Embora o Stemming ajude a superar o problema de incompatibilidade de vocabulário

de certa forma, ele não resolve o problema contextual (METZLER et al., 2007). Para

amenizar este problema, pode ser utilizada a expansão de representações com base em fontes

externas, como as abordadas nos trabalhos de Metzler et al. (2007) e Tsatsou (2009).

Page 30: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

30

8. REFERÊNCIAS BATU, T.; ERGÜN, F.; KILIAN, J.; MAGEN, A.; RASKHODNIKOVA, S.; RUBINFELD, R.; SAMI, R. A sublinear algorithm for weakly approximating edit distance In: Proceedings of the thirty-fifth annual ACM symposium on Theory of computing, San Diego, 2003, pp. 316 -324. BENDERSKY, M.; CROFT W. B. Finding Text Reuse on the Web In: Proceedings of the Second ACM International Conference on Web Search and Data Mining, Barcelona, 2009, pp. 262-271. BUENO, R.; TRAINA, A.; TRAINA, C. Accelerating approximate similarity queries using genetic algorithms In: Proceedings of the 2005 ACM symposium on Applied computing, Santa Fe, 2005, pp. 617-622. CELIKIK, M.; BAST, H. Fast error-tolerant search on very large texts In: Proceedings of the ACM symposium on Applied Computing, Honolulu, 2009, pp. 1724-1731. FREEMAN, A. T.; CONDON, S. L.; ACKERMAN, C. M. Cross linguistic name matching in English and Arabic: a "one to many mapping" extension of the Levenshtein edit distance algorithm In: Proceedings of the main conference on Human Language Technology Conference of the North American Chapter of the Association of Computational Linguistics, New York, 2006, pp. 471-478. HADJIELEFTHERIOU, M.; LI, C. Efficient Approximate Search on String Collections IRVING, R. Plagiarism and collusion detection using the smith-waterman algorithm In: International Conference on Computer Systems and Technologies, 2004, pp. 1-24.

JUNIOR, J.R.C. Desenvolvimento de uma Metodologia para Mineração de Textos. Rio de Janeiro: PUC-Rio, 2007, 113 f. Dissertação (Mestrado em Engenharia Elétrica) - Programa de Pós-graduação em Engenharia Elétrica, Departamento de Engenharia Elétrica, Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2007.

LUKASHENKO, R.; GRAUDINA, V.; GRUNDSPENKIS, J. Computer-Based Plagiarism Detection Methods and Tools: An Overview In: Proceedings of the 2007 International Conference on Computer Systems and Technologies, Rousse, 2007. LEUNG, C.; CHAN, Y. A Natural Language Processing Approach to Automatic Plagiarism Detection In: Proceedings of the 8th ACM SIGITE conference on Information technology education Destin, 2007, pp. 213-218. LU, J.; HAN, J.; MENG, X. Efficient algorithms for approximate member extraction using signature-based inverted lists In: Proceeding of the 18th ACM conference on Information and knowledge management, Hong Kong, 2009, pp. 315-324. MATOS, T.; SILVA, I.; BARCELOS, C.; PROENÇA, P. Índice Invertido para Recuperaçãao de Imagens Baseada em Conteúdo In: 31. Congresso Nacional de Matemática Aplicada e Computacional, Belém, 2008, pp. 20-25.

Page 31: Adaptação do Algoritmo Levenshtein Distance para o Cálculo ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-007.pdf · PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

31

METZLER, D.; DUMAIS, S.; MEEK, C. Similarity Measures for Short Segments of Text In: Proceedings of the European Conference on Information Retrieval, Amherst, 2007. NAVEGA, S. Manipulação Semântica de Textos: Os Projetos WordNet e LSA. In: Infoimagem 2004, 2004, São Paulo. Anais Infoimagem 2004. OLIVEIRA, M.. ; OLIVEIRA, E. Uma Metodologia para Detecção Automática de Plágios em Ambientes de Educação a Distância. In: Congresso Brasileiro de Ensino Superior a Distância - ESuD, 2008, Gramado, no Rio Grande do Sul. Anais do ESuD, 2008. p. 1-20. OTA, T.; MASUYAMA, S. Automatic Plagiarism Detection among Term Papers In: Proceedings of the 3rd International Universal Communication Symposium, Tokyo, 2009, pp. 395-399.

PIAO, S. S. L.; MCENERY, A. M. A tool for text comparison. In: Proceedings of the corpus linguistics 2003 conference, Lancaster, pp. 637-646.

PIROLLI, P.; PITKOW, J. Mining Longest Repeating Subsequences Predict World Wide Web Surfing In: Proceedings of USITS' 99: The 2nd USENIX Symposium on Internet Technologies & Systems, Boulder, 1999. RUDDLE, R. Using string-matching to analyze hypertext navigation In: Proceedings of the seventeenth conference on Hypertext and hypermedia, Odense, 2006, pp. 49-52. SEO, J.; CROFT, W. Local Text Reuse Detection In: Proceedings of the 31st annual international ACM SIGIR conference on Research and development in information retrieval, Singapore, 2008, pp. 571-578. SOARES, F. A. Mineração de Textos na Coleta Inteligente de Dados na Web. Rio de Janeiro: PUCRio, 2008, 113 f. Dissertação (Mestrado em Engenharia Elétrica) - Programa de Pós-graduação em Engenharia Elétrica, Departamento de Engenharia Elétrica, Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2008. SU, Z.; AHN, B.; EOM, K.; KANG, M.; KIM, J.; KIM, M. Plagiarism Detection Using the Levenshtein Distance and Smith-Waterman Algorithm In: Proceedings of the 3rd International Conference on Innovative Computing Information and Control, 2008.

TSATSOU, D.; MENEMENIS, F.; KOMPATSIARIS, I.; DAVIS, P.C. A Semantic Framework for Personalized Ad Recommendation based on Advanced Textual Analysis. In: Proceedings of the 3. ACM Conference on Recommender Systems, Nova York, 2009.

VERNICA, R.; LI, C. Efficient top-k algorithms for fuzzy search in string collections In: Proceedings of the First International Workshop on Keyword Search on Structured Data Providence, 2009, pp. 9-14