• Nenhum resultado encontrado

Modelos ocultos de Marko

Processamento de textos

3.2 Modelos ocultos de Marko

3.2 Modelos ocultos de Markov

Um modelo oculto de Markov é uma função probabilística de um processo de Markov em que um dado sistema é modelado com parâmetros desconhecidos a serem determinados pela análise de parâmetros observáveis (39). Modelos de Markov são especialmente utilizados em aplicação de processamento de áudio e part-of-speech tagging, que é discutido na Seção 3.3.

Modelos de Markov modelam sequências de variáveis aleatórias independentes cujo valor atual depende apenas do valor assumido no estado anterior. Um modelo oculto de Markov é especificado pela quintúpla (S,K,Π,A,G), cujos significados são apresentados na Tabela 3.1.

Tabela 3.1– Definição dos elementos de um modelo oculto de Markov.

Definição Notação

Conjunto de estados S = {Σ1, . . .ΣE}

Alfabeto de saída K = {K1, . . .KM}

Probabilidades dos estados iniciais Π = {πi}, i ∈ S

Probabilidades de transição A= {Aij}, i, j ∈ S

Probabilidades de emissão de símbolos G = {gijk}, i, j ∈ S, k ∈ K

Sequência de estados X= (X1, . . . , XT +1) Xt : S 7→ {1 . . . E} Sequência de saída O = (o1, . . . , oT) ot∈ K

Considere X = (X1, . . . , XT) uma sequência de variáveis aleatórias assumindo valores

no conjunto finito Σ = {Σ1, . . . ,ΣE}. As seguintes propriedades são satisfeitas por um

sistema Markoviano:

• Dependência de curto alcance: a probabilidade de transição do estado atual (instante t) para o próximo estado (instante t + 1) depende apenas do estado visitado anteriormente. Em outras palavras, P(Xt+1= Σk|X1, . . . , Xt) = P (Xt+1= Σk|Xt).

• Invariância no tempo: P (Xt+1= Σk|X1, . . . , Xt) = P (X2 = Σk|X1).

A transição de estados é descrita por uma matriz estocástica A : Aij = P (Xt+1 = Σj|Xt=

Σi). Neste caso, PjAij = 1. Dada uma sequência observada O = (o1, . . . , oT) e um modelo µ= (A, G, Π), é possível calcular a probabilidade P (O|µ) da seguinte maneira. Dada a

sequência de estados X = (X1, . . . , XT +1), P (O|X, µ) e P (X|µ) podem ser escritos como:

P(O|X, µ) = T Y t=1 P(ot|Xt, Xt+1, µ) = gX1X2o1gX2X3o2. . . gXTXT+1oT (3.4) P(X|µ) = πX1AX1X2AX2X3. . . AXTXT+1 (3.5)

Uma vez que P (O, X|µ) = P (O|X, µ)P (X|µ), P (O|µ) pode ser obtida em função dos parâmetros do sistema: P(O|µ) = X X P(O|X, µ)P (X|µ) = X X1...XT+1 πX1 T Y t=1 aXtXt+1bXtXt+1ot. (3.6)

Embora a avaliação da quantidade obtida na equação 3.6 possa ser computada diretamente dos parâmetros do sistema markoviano, sua computação é ineficiente. Para evitar esta complexidade, uma técnica de programação dinâmica (40) deve ser utilizada. A forma de armazenamento da computação anterior por programação dinâmica pode ser realizada através de dois métodos: o ascendente e o descendente. No primeiro caso, é necessário definir uma váriável auxiliar α da seguinte maneira:

αi(t) = P (o1o2o3. . . ot−1, Xt = i|µ). (3.7)

Esta variável, que é armazenda na matriz (Σi, t), modela a probabilidade de o sistema estar

no estado Σi no instante t, dada as observações o1o2o3. . . ot−1. Para fins de programação

dinâmica, a inicialização, a indução e a probabilidade de alcançar o estado final são dadas por:

• Inicialização: definição dos valores da variável αi para t = 1:

αi(1) = 1, para 1 ≤ i ≤ E. (3.8)

• Indução: definição dos valores de α(t + 1) em função de α(t):

αj(t + 1) = E X

i=1

αi(t)Aijgijot. (3.9)

• Probabilidade final: probabilidade de alcançar o estado final dada as observações

o1o2o3. . . ot−1: P(O|µ) = E X i=1 αi(T + 1). (3.10)

Outra possibilidade é usar um procedimento descendente em contraposição ao procedimento ascendente. Neste caso, define-se a váriavel ξi(t) que representa a probabilidade de observar

o resto da sequência assumindo que no instante t o sistema encontra-se no estado Σi. Para

isto, a variável ξ é definida como:

3.2. Modelos ocultos de Markov 61

As fases de inicialização, indução e probabilidade final são calculadas respectivamente com as seguintes equações ξi(T + 1) = 1, 1 ≤ E (3.12) ξi(t) = E X j=1 Aijgijotξj(t + 1), 1 ≤ t ≤ T e 1 ≤ i ≤ E (3.13) P(O|µ) = E X i=1 πiξi(1). (3.14)

Alternativamente, é possível combinar as duas abordagens anteriores notando-se a seguinte relação entre P (O, Xt= i|µ), α e ξ:

P(O, Xt= i|µ) = P (o1. . . oT, Xt= i|µ)

= P (o1. . . ot−1, Xt = i, ot. . . oT|µ) = P (o1. . . ot−1, Xt = i|µ)P (ot. . . oT|o1. . . ot−1, Xt= i, µ) = P (o1. . . ot−1, Xt = i|µ)P (ot. . . oT|Xt= i, µ). (3.15) Portanto, P(O|µ) = E X i=1 αi(t)ξi(t), 1 ≤ t ≤ T + 1. (3.16)

Um segundo problema muito comum na análise de modelos ocultos de Markov refere-se à estimação dos parâmetros que melhor explica as observações. Uma abordagem simples para resolver este problema seria definir a quantidade ϕi(t) como

ϕi(t) = P (Xt= i|O, µ) = P (Xt= i, O|µ)/P (O|µ) = αi(t)ξi(t)/ E X j=1 αj(t)ξj(t) (3.17)

e encontrar o conjunto de estados que maximiza ϕi(t). Em outras palavras, o conjunto de

estados mais provável é ˜

Xt= arg max

1≤i≤Nϕi(t), 1 ≤ t ≤ T + 1. (3.18)

Infelizmente, ˜Xt maximiza apenas a quantidade de estados visitados corretamente. A ordem de passagem pelos estados não é necessariamente a ordem correta. Para calcular a sequência de estados mais prováveis, o algoritmo Viterbi (41) é utilizado. O objetivo deste algoritmo é maximizar a quantidade

arg max

o que equivale a maximizar arg max

X P(X, O|µ).

A variável auxiliar no processo de programação dinâmica é definida como: Λj(t) = maxX

1...Xt−1

P(X1. . . Xt−1, o1. . . ot−1, Xt= j|µ). (3.19)

A quantidade Λj(t) armazena, para cada passo do cálculo, a probabilidade do caminho mais

provável que leva a um dado nó. Sua inicialização é calculada como Λj(1) = πj,1 ≤ j ≤ E

e sua atualização é dada por

Λj(t + 1) = max

1≤i≤EΛi(t)Aijgijot 1 ≤ j ≤ E. (3.20)

A variável ψj(t) armazena o vértice do arco de entrada que levou ao caminho mais provável.

Os passos de programação dinâmica utilizados neste caso são dados por

ψj(t + 1) = arg max

1≤i≤EΛi(t)Aijgijot 1 ≤ j ≤ E. (3.21)

Finalmente, a sequência de estados mais prováveis seguida pelo algoritmo é calculada com as seguintes equações ˜ XT +1 = arg max 1≤i≤EΛi(T + 1) (3.22) ˜ Xt= ψX˜ t+1(t + 1) (3.23) P( ˜X) = max 1≤i≤EΛi(T + 1) (3.24)

3.3 Part-of-speech tagging

Part-of-speech tagging corresponde à tarefa de rotulação de uma palavra em um texto

com uma determinada classe gramatical (p.e., substantivo, verbo, adjetivo, advérbio, etc). Este processo de rotulação de palavras é inerentemente ambíguo, já que muitas palavras podem ser classificadas com mais de uma categoria. Deste modo, rotuladores automáticos selecionam as categorias mais prováveis para uma dada palavra em um dado contexto. Esta tarefa serve como um pré-processamento em aplicações de extração de informações e

parsing.

Uma das abordagens mais tradicionais de rotulação é conhecida como rotulador baseado no modelo de Markov (ver Seção 3.2). Neste modelo, uma sequência de rótulos em um texto é considerada uma cadeia de Markov, definida por um conjunto de estados S, um alfabeto

3.3. Part-of-speech tagging 63

de saída K, probabilidades de transição A e probabilidades de emissão de símbolos G (ver Tabela 3.1). Por se tratar de um modelo markoviano, as propriedadess de dependência de curto alcance e invariância no tempo devem ser satisfeitas. Neste modelo, cada rótulo

t(j) representa um estado. Portanto, a propriedade de dependência de curto alcance, por

exemplo, pode ser entendida da seguinte maneira:

• Dependência de curto alcance: a probabilidade de mudança para o próximo rótulo depende apenas do rótulo observado anteriormente. Em outras palavras,

P(Xi+1= t(j)|X1, . . . , Xi) = P (Xi+1= t(j)|Xi).

Para derivar a estratégia de rotulamento baseada em modelos de Markov, considere a notação apresentada na Tabela 3.2.

Tabela 3.2– Tabela de notação e definições para o rotulador baseado em modelos de Markov.

Notação Definição

wi palavra na posição i do corpus ti rótulo da palavra i

wi,i+m palavras ocorrendo na posição i até i + m

ti,i+m rótulos para wi,i+m

w(l) l-ésima palavra do vocabulário

t(j) j-ésimo rótulo do conjunto de rótulos

C(w(l)) número de ocorrências de w(l) no conjunto de treinamento C(t(j)) número de ocorrências de t(j) no conjunto de treinamento C(t(j), t(k)) número de ocorrência de t(j) seguido de t(k)

C(w(l): t(j)) número de ocorrência de w(l) rotulado como t(j)

T quantidade de rótulos no conjunto de rótulos

n tamanho da sentença analisada

Para estimar as probabilidades, utiliza-se um conjunto de treinamento, isto é, um conjunto de texto cujos rótulos das palavras já foram fornecidades de antemão. A probabilidade do rótulo t(k) aparecer imediatamente após o rótulo t(j) é estimada a partir

de:

P(t(k)|t(j)) = C(t

(j), t(k))

C(t(j)) . (3.25)

O cálculo de P (t(k)|t(j)) torna possível a estimação de P (t

i+1|ti), isto é, a probabilidade de

uma sequência particular ocorrer. Em termos práticos, o objetivo da rotina de rotulação é encontrar a sequência de rótulos (estados da cadeia de Markov) mais prováveis para uma sequência de palavras (símbolos emitidos pela cadeia). Portanto, a tarefa de rotulação pode ser entendida como a tarefa de estimação de

P(On= k|Xn= Σi, Xn+1 = Σj) = gijk. (3.26)

(ou rótulo) é dada por:

P(w(l)|t(j)) = C(w(l): t(j))

C(t(l)) . (3.27)

Finalmente, a melhor rotulação da sentença pode ser encontrada a partir apartir do teorema de Bayes: arg max t1,n P(t1,n|w1,n) = arg maxt1,n P(w1,n|t1,n)P (t1,n) P(w1,n) = arg max t1,n P(w1,n|t1,n)P (t1,n). (3.28)

Esta expressão pode ser reduzida a parâmetros que podem ser estimados a partir de um corpus de treinamento. Se assumimos que as palavras são independentes uma das outras, a expressão na equação 3.28 pode ser simplificada para

P(w1,n|t1,n)P (t1,n) = n Y i=1 P(wi|t1,n) n Y i=1 P(ti|t1,i−1). (3.29)

Assumindo também que a identidade de uma palavra só depende do seu rótulo (ou seja

P(wi|t1,n) = P (wi|ti) e P (ti|t1,i−1) = P (ti|ti−1)), a equação 3.29 pode ser reescrita como

P(w1,n|t1,n)P (t1,n) = n Y i=1 P(wi|ti) n Y i=1 P(ti|ti−1) = n Y i=1  P(wi|ti)P (ti|ti−1)  . (3.30)

Finalmente, a equação que determina o rotulamento ótimo para uma dada sentença é: ˜t1,n= arg max t1,n P(t1,n|w1,n) = arg maxt1,n n Y i=1  P(wi|ti)P (ti|ti−1)  (3.31)

Embora a princípio a equação 3.31 possa ser avaliada para todos os pares possíveis de rótulos t1,n, esse procedimento daria origem a um algoritmo com complexidade exponencial

no tamanho da sentença a ser rotulada. Para evitar esta complexidade, a estratégia de progamação dinâmica do algoritmo Viterbi é utilizada (ver Seção 3.2). Neste algoritmo, as funções Λi(j) e ψi+1(j) são definidades. A primeira quantidade representa a probabilidade

de estar no estado (rótulo) j na palavra i. Já ψi+1(j) representa o estado (rótulo) mais

provável na palavra i supondo que o modelo de Markov encontra o rótulo j na palavra

i+ 1. Assume-se que sentenças são delimitadas por pontos. Portanto Λ1(.) = 1. O passo

de indução é baseado na equação 3.31. Em termos da notação usada na Seção 3.2 para descrever o algoritmo Viterbi, Akj = P (t(j)|t(k)) e gjkw(l) = P (w(l)|t(j)):

Λt+1(t(j)) = max 1≤k≤T  Λi(t(k))P (t(j)|t(j))P (wi+1|t(j))  , 1 ≤ j ≤ T (3.32)

3.4. Pré-processamento 65 ψt+1(tj) = arg max 1≤k≤T  Λi(tk)P (tj|tk)P (wi+1|tj)  , 1 ≤ j ≤ T (3.33)

Os rótulos escolhidos X1, X2, . . . Xn para as palavras w1, w2, . . . wn são obtidos a partir

de: Xn= arg max i≤j≤T Λn(t (j)) (3.34) Xi = ψi+1(Xi+1), 1 ≤ i ≤ n − 1 (3.35) P(X1, . . . Xn) = max 1≤j≤TΛn+1(t (j)). (3.36)

3.4 Pré-processamento

Antes de transformar um texto em uma rede, alguns passos de pré-processamento são aplicados. Inicialmente, retiram-se do texto sinais de pontuação e uma série de palavras de pouco conteúdo semânticoa (stopwords) uma vez que estamos interessados na inter-relação

entre palavras com pronunciado conteúdo semântico. Este procedimento é tipicamente adotado em muitos trabalhos relacionados (veja por exemplo (24, 26–28)). Em seguida, uma etapa de lematização é aplicada nas palavras remanescentes com auxílio de um rotulador. Palavras no plural são transformadas para sua forma singular, verbos são transformados para sua forma infinitiva e nomes são convertidos para sua forma masculina. Com esta normalização, todas as palavras referentes a um mesmo conceito são associadas a um mesmo vértice, independentemente das diferenças de flexão. Para exemplificar o pré-processamento, a Tabela 3.3 ilustra os respectivos passos para um extrato em inglês do livro “The Adventures of Sally”, de P. G. Wodehouse.

Tabela 3.3– Exemplo de aplicação dos passos de pré-processamento para modelagem de textos como

redes. Um extrato (primeira coluna) obtido do livro “The Adventures of Sally”, de P. G. Wodehouse está ilustrado após a remoção das stopwords (segunda coluna) e consequente lematização (terceira coluna).

Original Sem Stopwords Após Lematização

What’s that? asked Sally. asked Sally ask Sally

Pay my bill for last week, pay bill last week pay bill last week

due this morning. Sally got up morning Sally got morning Sally get

quickly, and flitting down the quickly flitting quickly flit

table, put her arm round her table put arm table put arm

friend’s shoulder and whispered friend shoulder whispered friend shoulder whisper

in her ear. ear ear

aAs classes de palavras eliminadas compreendem os artigos, preposições e os advérbios. A lista de palavras eliminadas está