• Nenhum resultado encontrado

Representação de similaridade entre palavras

3.1 Fundamentos

3.1.2 Representação de similaridade entre palavras

Considerando as representações de palavras apresentadas, a similaridade entre elas pode ser medida com base em duas perspectivas. A primeira considera a palavra segundo sua representação em língua natural: ou seja, como uma sequência de letras (caracteres). Seguindo essa representação, medidas de similaridade de string e de similaridade fonética podem ser empregadas. A segunda perspectiva considera a palavra como um vetor numé- rico, ou word embedding. Nesse caso, medidas de distância em espaços vetoriais podem ser aplicadas. Nesta seção, serão apresentadas as principais medidas de similaridade que frequentemente são utilizadas em técnicas de normalização textual.

Ao se representar palavras como sequências de caracteres, é necessário utilizar me- didas de similaridade de strings para compará-las. Uma das métricas mais empregadas para tal fim é a distância de edição, que consiste na contagem do número mínimos de edições para transformar uma string em outra. Tradicionalmente, são consideradas como edições as operações de inserção, substituição e remoção de letras. Uma modificação pro- posta por Damerau (1964), conhecida como distância de Damerau-Levenshtein, inclui a transposição (troca de letras adjacentes) como uma operação de edição. Essa medida foi proposta originalmente no contexto de correção ortográfica, sendo bem adequada para essa tarefa. A distância de edição entre tbm e tambor, por exemplo, é 4 (três inserções e uma substituição). Já a distância entre tbm e também é apenas 3 (inserção de a, de m e de é), mostrando que entre as duas essa é a correção mais provável. É possível inserir conhecimento específico de um idioma no cálculo dessa medida. Um exemplo é considerar adição de acento em uma letra como uma operação que tem custo menor que uma subs- tituição convencional – facilitando assim a correção de erros causadas pela ausência de acentuação.

Outra medida amplamente utilizada é a Longest Common Subsequence (LCS), que representa a maior subsequência de caracteres em comum entre duas strings. Subsequên- cias, diferente de substrings, não necessitam ser contíguas, os caracteres só precisam estar na mesma ordem em ambas strings. Entre as palavras humano e chimpanzé, por exem- plo, a maior subsequência é hman. O cálculo dessa medida é um problema tradicional de

3.1. Fundamentos 37

computação, sendo usualmente feito por meio de algoritmos de programação dinâmica (ULLMAN; AHO; HIRSCHBERG, 1976). Uma característica interessante da LCS é sua capacidade de representar o quanto uma palavra está contida em outra, tornando-a espe- cialmente útil para lidar com abreviações. A palavra enquanto, por exemplo, é comumente abreviada como eqt em textos da web. A distância de edição entre elas é alta (5), indicando baixa probabilidade de ser a correção correta. No entanto, a LCS é a própria string eqt, portanto com o uso dessa medida é possível corrigir corretamente. A Longest Common Subsequence Ratio (LCSR) é uma ponderação da LCS, obtida dividindo-se o tamanho da maior subsequência pelo número de caracteres da maior palavra – resultando em um valor normalizado de 0 a 1, que a torna mais fácil de utilizar em conjunto com outras medidas.

O coeficiente de Dice, também conhecido por coeficiente de Sørensen-Dice, foi proposto originalmente por Sørensen (1948) como uma medida estatística para comparar duas amostras aleatórias. Sua adaptação para lidar com strings é calculada com base no número de bigramas de caracteres compartilhados entre duas palavras. Considerando X e Y como strings representadas por um conjunto de caracteres, o cálculo exato do coeficiente é computado como:

D = |X| + |Y|2|X ∩Y| (3.1)

Seguindo aEquação 3.1,D indica o coeficiente de Dice e a operação de interseção é definida como o número de bigramas em comum entre as palavras.|X| indica o tamanho em número de caracteres da string. Entre as palavras experimento e exprmnto, por exemplo, o coeficiente é 2.(4)19 ≈ 0,421, pois as palavras têm quatro bigramas em comum (ex, xp, nt e to). Essa medida pode ser especialmente útil na normalização de ruídos que mantêm sílabas em comum com sua versão correta.

Outra abordagem para realizar comparação entre palavras é por meio da similari- dade fonética. O algoritmo Soundex, proposto originalmente porRusell(1918), tem como objetivo codificar palavras de acordo com os fonemas de sua pronúncia. Essa codificação faz com que palavras homófonas sejam representadas da mesma forma. Essa caracterís- tica facilita a correção de erros motivados pela fala. A palavra excesso, por exemplo, é frequentemente escrita com a grafia incorreta ecesso, seguindo a maneira que é falada. Enquanto a distância de edição entre elas é 1, assim como um grande número de outras palavras que só tem uma letra diferente, a distância fonética é 0, pois são homófonas. Desse modo, o Soundex permite a correção de forma efetiva. Embora o algoritmo tenha sido originalmente projetado para o inglês, há adaptações disponíveis para outros idiomas. O trabalho de Duran, Avanço e Nunes (2015) propõe um corretor ortográfico baseado em fonética, que faz uso de uma versão modificada do Soundex com regras específicas para o português brasileiro.

Ao utilizar representações vetoriais de palavras, outras medidas de similaridade são necessárias. Em geral, word embeddings são distribuídas em um espaço de alta di- mensionalidade. Como os vetores de embeddings são numéricos e contínuos, é possível compará-los utilizando métricas algébricas de distância. A distância euclideana é uma das mais conhecidas, sendo calculada de acordo com aEquação 3.2, sendo n o número de dimensões das embeddings e u e v dois vetores cuja distância está sendo calculada.

D =n

i=1 (ui− vi)2 (3.2)

Embora seja famosa, a distância euclidiana não é usualmente utilizada no contexto de aprendizado de máquina por não lidar satisfatoriamente com espaços de alta dimen- sionalidade (MITCHELL, 1997). A métrica mais comum para calcular a similaridade de embeddings é a distância do cosseno, apresentada na Equação 3.3, sendo u e v vetores de n dimensões. D = ni=1 ui× vini=1 (ui)2× ni=1 (vi)2 (3.3)

Essa medida calcula o cosseno do ângulo formado pelos vetores. Seu valor varia de 0 a 1 – com 0 indicando que são opostos e portanto não possuem similaridade e 1 que são idênticos.

Cada uma das medidas descritas tem suas particularidades e servem a um propó- sito. Combiná-las de modo a mensurar similaridade de maneira mais complexa é possível e pode apresentar bons resultados. Embora representações vetoriais sejam melhores para algoritmos de aprendizado de máquina, as medidas de similaridade de strings são úteis para normalização textual. Desse modo, é vantajoso explorar abordagens híbridas que sejam capazes de combinar o melhor de cada uma das representações apresentadas.