• Sonuç bulunamadı

Dado um modelo aprendido, a partir do qual um conjunto de sentenças (que pertencem a um conjunto de documentos C) são pontuadas, deseja-se encontrar o subconjunto de sentenças S (de m elementos) que maximizem a pontuação (probabilidade) do sumário final. Em outras palavras, precisa-se encontrar a combinação de m sentenças que maximizem a pontuação global. Esse problema pode ser entendido como um problema de busca em um espaço de várias possíveis soluções. Por exemplo, considere-se um conjunto de dois textos compostos de duas sentenças cada um, respectivamente: S1T1, S2T1 do Texto 1, e S1T2, S2T2 do Texto 2. Adicionalmente, considere-se que o tamanho permitido do sumário seja de apenas duas sentenças; esse cenário criaria um espaço de busca como o que está ilustrado na Figura 30.

108

Figura 30: Espaço de busca de sentenças para decodificação

Esse espaço de busca tem várias características importantes. Primeiro, a profundidade da árvore corresponde com o número de sentenças permitidas no sumário (dois neste caso). Cada nível i da árvore corresponde a um conjunto de sub-soluções de tamanho i, por exemplo, no nível 0 existe uma única sub-solução que é o conjunto vazio Ø, que não inclui nenhuma sentença, no nível 1 são incluídas todas as sub-soluções de tamanho 1 (1 sentença), e assim por diante. Outra característica importante é que o espaço de busca é completo, por exemplo, a sub-solução {S3T1, S1T1}e a sub-solução {S1T1, S3T1} são consideradas caminhos diferentes no espaço de busca já que, a ordem das sentenças alterar a pontuação final, dado o Modelo de Coerência. Mas, se a coerência não estiver sendo considerada e apenas importasse a informatividade (dada pelos modelos de transformação), o espaço de busca seria incompleto, pois somente precisaria de uma sub-solução que contenha as sentenças sem importar a ordem.

A complexidade do espaço completo é maior que a complexidade do expaço incompleto. A complexidade do espaço completo é O(nm), em que n é o número de sentenças no conjunto de documentos, e m é o número de sentenças que devem ser incluídas no sumário de acordo com uma taxa de compressão. Dado que a taxa de compressão é normalmente dada em número de palavras, então m é um valor aproximado, calculado a partir da divisão do número de palavras permitido pela taxa de compressão e a média dos tamanhos das sentenças. A complexidade do espaço incompleto é O(nm/2), dado somente a metade das possíveis soluções é explorada.

Em um cenário real, encontrar a solução ótima pode representar um custo computacional muito alto. O algoritmo A* aborda esse problema combinando o valor da pontuação de cada sentença, dado por alguma função f (neste caso seriam os modelos de transformação) e uma heurística h, a qual estima a pontuação adicional que seria a partir da solução atual até a solução final (o sumário). A pontuação de uma sub-solução acordo com o algoritmo A* é dada pela seguinte equação:

g

(

sj

)

=f

(

sj

)

+ h(sj) ( 48)

É importante destacar que o cálculo da função f de uma sub-solução implica a multiplicação das pontuações das sentenças que compõem essa sub-solução (dadas pelos valores do modelo de transformação correspondente), mas, como se viu nas seções anteriores, essas multiplicações podem ser transformadas numa soma de logaritmos. Portanto, o cálculo da

S1T1S2T2 S2T1 S1T2 S1T1 S1T2 S2T2 S1T1 S2T1 S2T2 S1T2 S2T1 S2T2 S1T1 S2T1 S1T2

109 função f é dado pela soma dos valores do modelo de transformação correspondente, para cada sentença.

Aker et al. também propuseram uma heurística que simula a inserção de sentenças na sub-solução de forma gulosa. A heurística tem inicio com a soma das pontuações das sentenças (considerando-se sempre primeiro as sentenças mais bem pontuadas) até que se chegue numa sentença que ultrapasse os limites de tamanho do sumário. Quando isso acontece, se pula pra seguinte sentença melhor pontuada até achar a primeira que esteja dentro dos limites de tamanho. Quando isto acontece, multiplica-se a pontuação da sentença com a razão entre o tamanho que falta ser preenchido (ou tamanho restante) e o tamanho da sentença. Soma-se essa ponderação ao resultado da somatória feita até a sentença anterior, caso exista tal somatória (pode ser que seja a única e última sentença a ser considerada na heurística). Para ilustrar isso, considerem-se os seguintes valores obtidos por alguma função f e seus correspondentes valores de l (em que l é número de palavras na sentença) para as sentenças do exemplo mostrado na Figura: S1T1 f=6 l=7, S2T1 f=5 l=6, S1T2 f=3 l=2 and S2T2 f=1 l=1. Na Figura 31, é mostrado o cálculo da heurística h para uma sub-solução no espaço de busca da Figura 30, considerando um limite de 10 palavras.

Sub-solução: ∅ S1T1

Tamanho atual: 7

Tamanho restante: 10-7: 3

Máxima pontuação a ser alcançada:3 (S1T2) Tamanho obtido para la máxima pontuação (score máximo):3 (dentro do limite)

h(∅ S1T1 )=

3 ×(10 −7) 3

Figura 31: Exemplo de cálculo de heurística para o algoritmo A*

O valor de h é zero quando a sub-solução é o sumário final. Isso significa que a sub-solução alcançou os limites da taxa de compressão ou que estender a sub-solução, adicionando uma nova sentença, excederia o tamanho permitido pela taxa de compressão.

A* faz uso de uma fila de prioridade Q, que permite manter um rastreamento de todas as sub-soluções que tenham sido avaliadas até o momento, e também faz uso de uma lista ordernada de sentenças X. No topo de Q está armazenada a melhor sub-solução de acordo com a função g, descrita anteriormente. Em cada iteração, a sub-solução que se encontra no topo da fila de prioridade Q é removida e avaliada para ver se alcançou o tamanho máximo permitido ou se o valor de h é zero. Se for assim, o algoritmo termina e a sub-solução ótima é retornada, o seja, o sumário final. Se nenhuma das duas condições mencionadas é satisfeita, a sub-solução no topo da fila Q é expandida adicionando sentenças que ainda não foram incluidas naquela sub-solução. Essa expansão é representada pelos nós-filhos de uma sub-solução no grafo que representa o espaço de busca. A pontuação dada pela função g é calculada para todas as novas sub-soluções, e, de acordo com essa pontuação, elas são inseridas e ordenadas na fila Q. O algoritmo para quando a solução ótima for encontrada. O algoritmo de Aker et al. é mostrado no Quadro a seguir:

S1T1

110

Algoritmo de decodificação de sumários multi-documento A* simples

Entrada:

- Lista de sentenças: x // Lista de sentenças ordenadas por score

- função de pontuação: f(.)

- função heurística: h(.) - Tamanho limite do sumário: L

Estruturas usadas:

- Fila de Prioridade Q=[(0,Ø,IndicadordeFim)]

// Lista de triplas da forma: (Score da sub-sol, sentenças da sub-sol, Indicador de sol. final)

1. Enquanto Q ≠ [] fazer: 2. g, y, s← RemoverTopo(Q)

3. Se s=T então: // Se é uma solução final então a retorna 4. retorna y

5. Senão:

6. Para y1 ← [max(y) +1, k] fazer: // buscamos inserir uma nova sentença à sub-sol. removida de Q

7. y'←y U x[y1]

8. Se Tamanho(y') ≤ L então: // Se o tamanho da nova sub-sol. não excede o limite

9. g'←f(y') + h(y', x, l) // Calcula-se a nova pontuação com base em f e na heurística h; // l representa o tamanho da sub-sol. até o momento

10. Inserir(Q, (g', y', F)) // Inserimos a nova sub-solução de forma ordenada de acordo com g'

11. Senão: 12. Se Tamanho(y') > L e Tamanho(y') ≤ L+10: 13. g'←f(y') + h(y', x, l) 14. Inserir(Q, (g', y', T)) 15. Senão: 16. Inserir(Q, (g, y, T)) 17. fim Se 18. fim Para 19. fim Se 20. Fim Enquanto

Quadro 2: Algoritmo de decodificação A* simples

Benzer Belgeler