UNIVERSIDADE TÉCNICA DE LISBOA
INSTITUTO SUPERIOR TÉCNICO
Análise Sintáctica de Superfı́cie
Fernando Manuel Marques Batista
(Licenciado)
Dissertação para obtenção do Grau de Mestre em
Engenharia Electrotécnica e de Computadores
Orientador:
Doutor Nuno João Neves Mamede
Presidente:
Vogais:
Doutor Nuno João Neves Mamede
Doutora Irene Pimenta Rodrigues
Doutor Carlos Jorge da Conceição Teixeira
Doutor António Paulo Teles de Menezes Correia Leitão
Julho de 2003
Resumo
Esta dissertação apresenta um algoritmo de análise sintáctica de superfı́cie, que permite reconhecer, não só as fronteiras dos constituintes sintácticos, como também as respectivas estruturas
internas e categorias sintácticas. Com base neste algoritmo, foi desenvolvido um módulo que permite processar corpora não restrito.
O algoritmo faz uso de uma gramática cuja informação pode ser obtida a partir de um conjunto
de propriedades independentes, que caracterizam uma lı́ngua. Além da definição das estruturas
sintácticas, a gramática comporta uma hierarquia de sı́mbolos e um conjunto de restrições, designado por preferências.
A análise é realizada com base na construção de um grafo dirigido, que permite representar a
sequência de operações, para que sejam realizadas apenas uma vez. O algoritmo tem complexidade
, sendo o número de unidades lexicais do segmento, e pode ser facilmente alterado de forma
a ter as caracterı́sticas de um algoritmo anytime.
A implementação do módulo teve em consideração a integração em sistemas de processamento
de lı́ngua natural, suportando parametrização que permite considerar ou desprezar um conjunto
de princı́pios e regras na realização da análise, e extrair diferentes tipos e formatos de resultados.
Foram desenvolvidas ferramentas, para usar o módulo em plataformas cliente/servidor.
Abstract
This thesis presents a shallow parsing algorithm that recognizes, not only the boundaries, but
also the internal structure and syntactic category for the syntactic constituents. A module was developed, based on the algorithm, that is capable of performing syntactic analysis over unrestricted
text.
The algorithm uses a grammar whose information can be derived from a set of independent
properties, that characterize a language. The grammar supports, in addition to the definition of
syntactic structures, a hierarchy of symbols and a set of restrictions known as preferences.
The analysis uses a directed graph for representing all the operations, preventing redundant
computation. The algorithm has
segment and can be easily adapted to an
complexity, where
is the number of lexical units in the
algorithm.
Integrating the analyzer within larger natural language processing systems was a major concern. The module supports a set of options both for analysis and result extraction. Analysis options
are used for considering or discarding sets of linguistic principles and optional grammar rules, thus
allowing for parameterized analyses and production of different types of results. Tools were also
developed for using the module in client/server platforms.
Palavras Chave
Keywords
Palavras chave
Processamento de Lı́ngua Natural
Análise Sintáctica
Análise de Superfı́cie
Análise Robusta
Gramática de Superfı́cie
Keywords
Natural Language Processing
Syntactic Analysis
Shallow Parsing
Robust Analysis
Surface Grammar
Agradecimentos
Esta tese não teria certamente sido possı́vel, sem o apoio, motivação e encorajamento, que fui tendo
ao longo da sua realização. Expresso aqui os meus agradecimentos a todos, que de uma forma ou
de outra, contribuı́ram para a sua realização.
Ao meu orientador, Professor Nuno Mamede, pela sua orientação, disponibilidade, exigência e acompanhamento sempre constante. O meu profundo agradecimento por tudo o que com ele aprendi.
À Professora Caroline Hagège que, mesmo distante, nunca deixou de estar presente para esclarecer
todas as minhas questões.
À Professora Isabel Trancoso, pela ajuda e amizade que mostrou desde o inı́cio desta tese.
Ao David, Ricardo, Luisa e Joana, pela amizade, inúmeros comentários, crı́ticas e sugestões que
tanto contribuı́ram para o enriquecimento deste trabalho. O meu muito obrigado ao David, Ricardo
e Luisa pela leitura atenta desta tese, e à Joana, companheira de mestrado, pela sua companhia em
inúmeras noitadas de trabalho.
Aos meus colegas do L F, pelos comentários, crı́ticas construtivas e pelo bom ambiente de trabalho
que sempre me proporcionaram.
Aos meus colegas do ISCTE, pelo bom ambiente que me proporcionaram e pela motivaç ão que
transmitiram ao longo do meu percurso.
Ao pessoal do sexto andar, Nuno Santos, João Nuno, Sérgio, Jorge, Professor Rito, Alfonso, pela
amizade e companheirismo.
Por fim, aos meus pais e irmãos, pela sua ajuda incondicional, imensurável apoio e confiança que
em mim depositaram. Dedico-lhes este trabalho.
Lisboa, 11 de Julho de 2003
Fernando Manuel Marques Batista
Francis Bacon
There are and can exist but two ways of investigating
and discovering truth. The one hurries on rapidly
from the senses and particulars to the most general
axioms, and from them... derives and discovers the
intermediate axioms. The other constructs its axioms from the senses and particulars, by ascending
continually and gradually, till it finally arrives at the
most general axioms.
– Novum Organum Book I.19 (1620)
Victor H. Yngne (1960)
This is the malt that the rat that the cat that the dog
worried killed ate.
This is the dog, that worried the cat, that killed the
rat, that ate the malt, that lay in the house that Jack
Built.
– Mother Goose, The House that Jack Built
Douglas E. Appel
Shallow parsing makes mistakes. Get used to it.
– in Introduction to Information Extraction Technology
Conteúdo
1 Introdução
1
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2 O domı́nio da sintaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2.1 Análise sintáctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2.2 Análise de superfı́cie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2.3 Identificação de fragmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.2.4 Análise robusta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.2.5 Teorias psicolinguı́sticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.3 Objectivos e Estratégia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.4 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.5 Estrutura da dissertação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2 Enquadramento
13
2.1 As gramáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.1.1 Gramáticas regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.1.2 Gramáticas livres de contexto (CFG) . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.1.3 Gramáticas sensı́veis ao contexto . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.1.4 Gramáticas tipo 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.1.5 Gramáticas baseadas em formalismos de unificação . . . . . . . . . . . . . . . .
16
2.2 Técnicas de análise sintáctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.2.1 Estratégias básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.2.2 Análise Esquerda-Direita (LR) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.2.3 Análise com transdutores de estados finitos . . . . . . . . . . . . . . . . . . . . .
18
2.2.4 Algoritmos eficientes de análise sintáctica . . . . . . . . . . . . . . . . . . . . . .
19
2.2.5 Análise em gramáticas moderadamente sensı́veis ao contexto . . . . . . . . . .
19
2.2.6 Análise sintáctica como processo dedutivo . . . . . . . . . . . . . . . . . . . . . .
19
2.2.7 Análise com preferências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
i
2.3 Analisadores orientados para texto não restrito . . . . . . . . . . . . . . . . . . . . . . .
20
2.3.1 Analisador de superfı́cie da Xerox . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.3.2 Analisador GREYC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.3.3 Os analisadores da universidade de Helsı́nquia . . . . . . . . . . . . . . . . . . .
22
2.3.4 Analisador Fidditch
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.3.5 Sistema ANLT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.3.6 Sistema PEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.3.7 Analisador PALAVRAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.3.8 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.4 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3 Análise Sintáctica por Folhas
27
3.1 A descrição linguı́stica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.1.1 Caracterização da lı́ngua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.1.2 Fonte declarativa do analisador por folhas . . . . . . . . . . . . . . . . . . . . . .
29
3.2 AF - Protótipo de Análise por folhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.2.1 Funcionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.2.2 Dados de entrada - tratamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.2.3 Resultados produzidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.2.4 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.2.5 A questão da ambiguidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
3.2.6 Casos de tratamento particular . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
3.3 Extracção de sintagmas nominais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
3.3.1 Sintagma Nuclear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
3.3.2 O extractor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.3.3 Condições de avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.3.4 Resultados da avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.4 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
4 Gramática do SuSAna
43
4.1 Elementos da gramática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
4.1.1 Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
4.1.2 Modelo de topo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
4.1.3 Comportamento dos modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
4.1.4 Hierarquia de modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
4.1.5 Preferências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
ii
4.2 Conversão de gramáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
4.2.1 Conversão de BNF para Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
4.2.2 Conversão de Blocos para BNF . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
4.3 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
5 SuSAna: Analisador de superfı́cie
53
5.1 Objectivos e estratégia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
5.2 Aspectos de funcionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
5.2.1 Dados de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
5.2.2 Resultados produzidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
5.2.3 Formas de utilização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
5.3 Funcionamento interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
5.3.1 Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
5.3.2 Repositório . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
5.4 O processo de análise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
5.4.1 Criação de novos fragmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
5.4.2 Continuação de fragmentos já iniciados . . . . . . . . . . . . . . . . . . . . . . .
66
5.4.3 Validação de modelos candidatos e atribuição de custos . . . . . . . . . . . . . .
66
5.4.4 Registo de caminhos e vértices no repositório . . . . . . . . . . . . . . . . . . . .
67
5.4.5 Parametrizações da análise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
5.4.6 Restrição de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
5.4.7 Análise da complexidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
5.5 Processo de extracção de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
5.5.1 Elemento de topo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
. . . . . . . . . . . . . . . . . . . .
75
5.5.3 Formatos de saı́da . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
5.5.4 Previsão de modelos em estruturas incompletas . . . . . . . . . . . . . . . . . .
78
5.5.5 Desambiguação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
5.6 Casos de utilização do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
5.6.1 ATA: Aquisição Automática de Termos . . . . . . . . . . . . . . . . . . . . . . . .
79
5.6.2 Poeta: sistema de auxı́lio a escrita de poemas . . . . . . . . . . . . . . . . . . . .
79
5.6.3 Extracção de sintagmas nominais . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
5.6.4 Testes sobre corpus com e sem ambiguidade . . . . . . . . . . . . . . . . . . . .
79
5.7 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
5.5.2 Re-definição dos parâmetros
e
iii
6 Avaliação
83
6.1 Condições de avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
6.2 Gramática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
6.3 Comparação entre o AF e o SuSAna . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
6.3.1 Preparação dos dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
6.3.2 Preparação e parametrização dos analisadores . . . . . . . . . . . . . . . . . . .
86
6.3.3 Corpus utilizado na avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
6.3.4 Processo para extracção de resultados . . . . . . . . . . . . . . . . . . . . . . . .
87
6.3.5 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
6.4 Desempenho do SuSAna em corpus alargado . . . . . . . . . . . . . . . . . . . . . . . .
90
6.4.1 Parâmetros de avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
6.4.2 Caracterı́sticas do corpus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
6.4.3 Preparação dos dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
6.4.4 Os resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
6.5 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
7 Conclusões e trabalho futuro
101
7.1 Trabalho futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
A Descrição das categorias e modelos
105
Glossário
109
Bibliografia
113
Índice Remissivo
119
iv
Lista de Figuras
1.1 Cadeia de processamento de um sistema de lı́ngua natural. . . . . . . . . . . . . . . . .
4
3.1 Constituição da metodologia 5P. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.2 Exemplos de propriedades de existência, que definem o sintagma nominal nuclear. . .
28
3.3 Excerto da definição linguı́stica utilizada pelo AF. . . . . . . . . . . . . . . . . . . . . .
29
3.4 Regras que produzem uma hierarquia de categorias para os nomes. . . . . . . . . . . .
31
3.5 Diagrama representativo de uma hierarquia de categorias para os nomes. . . . . . . .
31
3.6 Forma de produção de informação adequada à entrada do AF. . . . . . . . . . . . . . .
33
3.7 Exemplo de uma frase com duas alternativas. . . . . . . . . . . . . . . . . . . . . . . . .
34
3.8 Análise da frase “as minhas muito belas raparigas”, incluindo flechagem. . . . . . . .
35
3.9 Representação gráfica da análise de uma frase, incluindo flechagem. . . . . . . . . . .
35
3.10 Diagrama de funcionamento da análise por folhas. . . . . . . . . . . . . . . . . . . . . .
36
3.11 Cadeia de processamento do sistema de extracção de SN. . . . . . . . . . . . . . . . . .
38
4.1 DTD da gramática do SuSAna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
4.2 Exemplo de uma mini-gramática em formato BNF. . . . . . . . . . . . . . . . . . . . . .
48
4.3 Regras com a estrutura de blocos correspondente à mini-gramática. . . . . . . . . . . .
49
5.1 Cadeia de processamento utilizada em testes com o SuSAna. . . . . . . . . . . . . . . .
55
5.2 Extracto de informação produzida pelo PaSMo. . . . . . . . . . . . . . . . . . . . . . . .
56
5.3 Extracto de Informação convertido no formato de leitura do SuSAna. . . . . . . . . . .
57
5.4 Código XSL para converter informação no formato do SuSAna. . . . . . . . . . . . . . .
58
5.5 DTD dos elementos processados pelo SuSAna. . . . . . . . . . . . . . . . . . . . . . . .
59
5.6 Análise sintáctica da frase “A água gela em os carreiros”. . . . . . . . . . . . . . . . . .
60
5.7 Utilização do SuSAna como módulo, num sistema de processamento da lı́ngua. . . . .
60
5.8 Utilização do SuSAna numa plataforma cliente/servidor através de RPC. . . . . . . . .
61
5.9 Árvores de análise da frase: “A água gela em os carreiros”. . . . . . . . . . . . . . . . .
61
5.10 SuSAna – arquitectura interna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
v
5.11 Estrutura do repositório de dados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
5.12 Diagrama de funcionamento da análise. . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
5.13 Procura de possı́veis caminhos entre modelos. . . . . . . . . . . . . . . . . . . . . . . . .
65
5.14 Análise de múltiplas estruturas, sem sobreposição e sem desprezar unidades lexicais.
70
5.15 Análise de múltiplas estruturas, com sobreposição e sem desprezar unidades lexicais.
71
5.16 Análise de múltiplas estruturas, com possibilidade de desprezar unidades lexicais. . .
71
5.17 DAG – Possibilidades de construção de um fragmento. . . . . . . . . . . . . . . . . . . .
72
5.18 DAG – Processo utilizado na desactivação de arcos. . . . . . . . . . . . . . . . . . . . .
73
5.19 Representação da análise de uma frase constituı́da por quatro hipóteses. . . . . . . . .
75
5.20 Análise em formato XML, da frase: A ainda mais bela rapariga. . . . . . . . . . . . . .
76
5.21 Extracto da análise de segmentos, no formato: contagens. . . . . . . . . . . . . . . . . .
76
5.22 Resultado da análise de um segmento em formato: texto. . . . . . . . . . . . . . . . . .
77
5.23 Resultado da análise de um segmento em formato: sintagmas. . . . . . . . . . . . . . .
77
5.24 Grafo de análise da frase: O Jorge disse que o João saiu em o carro. . . . . . . . . . . .
78
6.1 Produção de informação adequada ao processamento pelo AF e pelo SuSAna. . . . . .
85
6.2 Diagrama de processamento de resultados produzidos pelo AF e pelo SuSAna. . . . .
88
6.3 Tipos de diferenças obtidas na análise dos textos de constituição. . . . . . . . . . . . .
89
6.4 Distribuição de segmentos por número de unidades lexicais. . . . . . . . . . . . . . . .
92
6.5 Distribuição do número de alternativas obtidas em cada análise. . . . . . . . . . . . .
95
6.6 Número médio de soluções por segmento do corpus, em função do seu tamanho. . . . .
96
6.7 Distribuição das análises em função do seu tamanho. . . . . . . . . . . . . . . . . . . .
96
6.8 Distribuição do número de soluções em função do número de unidades lexicais. . . . .
97
6.9 Tempo de análise dos segmentos em função do seu tamanho. . . . . . . . . . . . . . . .
98
6.10 Tempo de análise por palavra, em função do tamanho do seu segmento. . . . . . . . .
98
vi
Lista de Tabelas
2.1 Resumo das caracterı́sticas dos analisadores de superfı́cie. . . . . . . . . . . . . . . . .
25
3.1 Avaliação do quanto à existência de sintagmas nominais. . . . . . . . . . . . . . . . . .
41
3.2 classificação quanto ao teor dos SNs correctamente identificados. . . . . . . . . . . . .
41
5.1 Comparação do tempo de processamento do SuSAna com base na ambiguidade. . . . .
80
5.2 Comparação do número de soluções por cada resultado em função da ambiguidade. . .
80
6.1 Caracterı́sticas da máquina usada na avaliação. . . . . . . . . . . . . . . . . . . . . . .
83
6.2 Caracterı́sticas dos textos utilizados para comparar os analisadores. . . . . . . . . . .
87
6.3 Comparação do desempenho do AF com o SuSAna. . . . . . . . . . . . . . . . . . . . . .
90
6.4 Resumo das caracterı́sticas do corpus usado na avaliação do SuSAna . . . . . . . . . .
91
6.5 Resultados obtidos na análise do corpus.
93
vii
. . . . . . . . . . . . . . . . . . . . . . . . . .
viii
Lista de Algoritmos
1
2
3
C ONVERTER B NF E M B LOCOS(gramática) . . . . . . . . . . . . . . . . . . . . . . . . . . .
C RIAR B LOCO( ,
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
M APEAR B LOCOS E M B NF( 49
49
) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
4
C OMPLETAR R EGRA B NF(
, ) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
5
C ALC -M ODELS( , ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
6
G ET-S IBLING -M ODELS( , , ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
7
8
9
,
C ALC -B RANCHES( , , ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
G ET-D AG -V ERTICE( ,
, ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
D O-A NALYSIS(
,
,
,
,
ix
) . . . . . . . . . . . . . . . . . . . .
69
x
O aumento significativo da quantidade de informação em suporte digital que se tem verificado
durante os últimos anos, em especial devido à proliferação da Internet e ao desenvolvimento dos
meios de comunicação social, tem permitido a criação de repositórios de corpora cada vez mais
abrangentes, que constituem recursos de extrema importância para o processamento da lı́ngua.
Estes corpora cobrem uma grande variedade de domı́nios e muitas vezes as construções nelas presentes não são contempladas pelas gramáticas tradicionais. Surge assim a necessidade de desenvolver sistemas de processamento e manipulação de corpora que tenham a capacidade de lidar com
grandes quantidades de texto não restrito.
Os sistemas de tratamento de informação ao nı́vel morfossintáctico encontram-se num estado
de desenvolvimento avançado, permitindo a produção de resultados bastante fiáveis. Os analisadores morfológicos de ampla cobertura têm, hoje em dia, taxas de erro muito baixas e os sistemas
de desambiguação encontram-se em pleno desenvolvimento, proporcionando taxas de erro cada vez
mais baixas. Vão surgindo, assim, as condições necessárias para o processamento da lı́ngua aos
nı́veis sintáctico e semântico.
A análise sintáctica de uma frase, no contexto de uma dada linguagem, consiste em reconhecer
essa frase como fazendo parte da linguagem e em associar-lhe uma estrutura, designada por estrutura sintáctica. A análise sintáctica é especialmente útil para tarefas de verificação gramatical
em sistemas de processamento de lı́ngua natural, pois a impossibilidade de atribuir uma estrutura sintáctica a uma dada frase, é um indicador que esta pode conter erros gramaticais ou ser de
difı́cil leitura. O processamento sintáctico tem aplicação nas mais variadas áreas, como é o caso
da sı́ntese e reconhecimento de fala, pesquisa e extracção de informação e tradução automática. É
também um ponto de partida para sistemas de processamento semântico, na medida em que estabelece um importante nı́vel de representação intermédio. Em suma, a análise sintáctica torna visı́vel
uma grande quantidade de informação, que leva ao desenvolvimento de aplicações mais complexas
e poderosas.
No âmbito desta tese, foram estudados sistemas de análise sintáctica de superfı́cie, cujas principais caracterı́sticas são, por um lado, a capacidade de lidar com texto real em diferentes domı́nios
e, por outro, a capacidade de processar grandes quantidades de texto. A capacidade de lidar com
texto real em diferentes domı́nios relaciona-se com a capacidade de conseguir processar algumas
construções não gramaticais e simultaneamente evitar a explosão de análises, de forma a manter
os resultados utilizáveis por outras aplicações. Esta dissertação apresenta um módulo de análise
sintáctica de superfı́cie que permite tratar corpora não restritos, identificando nesses corpora, fronteiras, categoria sintáctica e a estrutura sintáctica dos seus constituintes sintácticos. O módulo
utiliza um algoritmo eficiente e suporta um conjunto de opções que lhe permitem, por um lado
CAPÍTULO 1. INTRODUÇÃO
2
realizar a análise considerando ou não certos princı́pios e regras gramaticais e, por outro, extrair
diferentes tipos de resultados de forma a contemplar um possı́vel conjunto de requisitos por parte
de outras aplicações. O desempenho foi um aspecto importante na concepção do algoritmo, de forma
a que o módulo pudesse ser utilizado no processamento de grandes quantidades de corpora.
1.1 Motivação
O desenvolvimento dos meios de comunicação social, bem como a crescente utilização dos sistemas computacionais como meios de comunicação, tem conduzido a um aumento de informação em
suporte digital. As tarefas de identificar, classificar e organizar, assumem um papel fundamental
para que a quantidade de informação não seja um obstáculo à sua consulta. Como a informação
se encontra em suporte digital, torna-se importante a criação de ferramentas para seu o processamento automático. Contudo, devido aos inúmeros formatos em que se pode encontrar, a sua
identificação e classificação pode ser apenas feita com base no seu conteúdo, surgindo assim a necessidade de criar ferramentas para o processamento da lı́ngua natural que sirvam de suporte a esse
tipo de tarefas. Os sistemas de análise sintáctica de superfı́cie adequam-se a este contexto, pois são
indicados para o processamento de grandes quantidades de informação, permitindo identificar os
elementos sintácticos que aı́ se encontram.
Um dos principais objectivos do Laboratório de Sistemas de Lı́ngua Falada (L F) do INESC-ID
tem sido a criação, manutenção, validação e disseminação de recursos essenciais ao processamento
da lı́ngua portuguesa falada, nomeadamente: corpora, léxicos e ferramentas computacionais. A
investigação e desenvolvimento em sistemas de processamento de lı́ngua falada tem conduzido à
utilização da investigação efectuada ao nı́vel do processamento da lı́ngua escrita, tais como a morfologia, sintaxe e semântica. Com o propósito de desenvolver um sistema integrado de processamento
da lı́ngua, têm vindo a ser criados vários módulos que executam tarefas como análise morfológica,
tratamento de informação morfológica e desambiguação morfossintáctica. Foi igualmente proposta
a criação de um módulo de análise sintáctica de superfı́cie a que foi dado o nome SuSAna (Surface
Syntactic Analyser), que corresponde ao sistema descrito nesta tese. Cada uma destas ferramentas
pode ser utilizada de forma isolada, ou eventualmente integrada noutros sistemas ou ferramentas,
pelo que devem ser independentes para facilitar o processo de integração. Esta caracterı́stica é essencial se se tiver em consideração que, por vezes, é importante substituir módulos de um sistema
por outros mais fiáveis ou mais eficientes.
As principais motivações para o desenvolvimento de um analisador sintáctico de superfı́cie,
estão ligadas aos projectos em curso e às áreas onde actualmente se faz investigação dentro do Laboratório. Por exemplo, no âmbito do projecto ATA (Paulo e Mamede, 2001), está a ser desenvolvido
um sistema de aquisição automática de termos, que faz uso de um módulo de análise sintáctica
para extrair o conjunto de candidatos a termos ou sintagmas nominais de um corpus. A informação
sintáctica assume, assim, um papel fundamental na produção dos seus resultados (Paulo et al.,
2002), sendo, para isso, necessário utilizar um sistema que permita fazer o tratamento de grandes quantidades de corpora não restrito. O módulo de análise sintáctica constitui também uma
plataforma para o desenvolvimento de trabalho na áreas da sintaxe e da semântica, também em
investigação no L F (Coheur e Mamede, 2002).
O módulo de análise de superfı́cie poderá também ser aplicado a outras áreas do Laboratório,
1.2. O DOMÍNIO DA SINTAXE
3
tais como a produção de indicadores para a variação da prosódia num sistema de sı́ntese de fala;
pesquisa e extracção de informação (Appelt e Israel, 1999); e tradução automática. Os analisadores
sintácticos podem também ser utilizados em lexicografia para a produção de dicionários online.
No que diz respeito à sı́ntese de fala em sistemas texto-para-fala (text-to-speech), vários trabalhos mostram que o processamento da lı́ngua ao nı́vel sintáctico pode trazer melhorias significativas. Koehn et al. (2000) conclui que a introdução de informação sintáctica pode melhorar
significativamente a qualidade da separação entonacional. Fach (1999) apresenta resultados experimentais de uma comparação entre a divisão prosódica e sintáctica que levam a assumir que
a informação sobre fronteiras prosódicas pode ser derivada da estrutura sintáctica. Abney (1992)
propõe estruturas independentes, baseadas em divisões sintácticas, que designa por chunks, para
dar conta da prosódia e conclui que a estrutura sintáctica pode ser um bom preditor para as estruturas prosódicas.
No que diz respeito aos sistemas de reconhecimento de fala, é possı́vel produzir representações
baseadas em fragmentos sintácticos (chunks) para o reconhecimento de fala espontânea em
domı́nios não restritos, com elevado nı́vel de precisão (Zechner e Waibel, 1998), apesar de Fach
(1999) reportar resultados pouco satisfatórios nas suas experiências.
1.2 O domı́nio da sintaxe
Esta secção introduz o conceito de análise sintáctica, as condições para a sua realização e os
resultados que daı́ advêm. São mencionados alguns aspectos a ter em conta na realização da análise
quando as suas condições são difı́ceis e apresenta a análise de superfı́cie como alternativa à análise
sintáctica tradicional. É também abordada a identificação de fragmentos de análise, usualmente
conhecidos na comunidade cientı́fica como chunks. Finalmente, apresentam-se algumas teorias
psicolinguı́sticas que se enquadram na tentativa de tornar a análise mais eficiente e melhorar a
sua qualidade.
1.2.1
Análise sintáctica
A estrutura sintáctica de uma frase indica de que forma as suas unidades lexicais se relacionam entre si, isto é, como é que as palavras são agrupadas em sintagmas, que palavras modificam
outras palavras e quais as palavras que têm maior importância na frase. De uma forma geral, o
processamento sintáctico de um texto é realizado com base em informação morfossintáctica previamente atribuı́da às unidades lexicais desse texto. A figura 1.1 mostra um sistema de processamento
de lı́ngua natural, que realiza processamento sintáctico. O resultado produzido por cada um dos
módulos que compõem a análise morfológica pode servir de base à etapa da análise sintáctica, o que
corresponde a realizar a análise com base em informação desambiguada ou não.
O processamento sintáctico de um texto pode ser realizado a vários nı́veis, dependendo do tipo
de resultados pretendidos e dos recursos disponı́veis para a obtenção desses resultados. Os sistemas
que tentam fazer análise em profundidade, tendem a respeitar a pureza da linguı́stica, tentam
resolver problemas complexos da lı́ngua e identificam todos os constituintes sintácticos de uma
frase gramaticalmente aceite.
CAPÍTULO 1. INTRODUÇÃO
4
Figura 1.1: Cadeia de processamento de um sistema de lı́ngua natural.
A análise sintáctica tradicional, que consiste em realizar uma análise em profundidade, exige
bases de dados lexicais de ampla cobertura, implicando muitas vezes sobre-análise e inadequação à
análise de textos reais. Comparativamente a este tipo de análise, a análise sintáctica de superfı́cie,
pode ser aplicada a variados domı́nios e com tempos de processamento mais baixos, embora produzindo resultados menos fiáveis.1 A análise de superfı́cie adequa-se ao processamento de grandes quantidades de texto, que pode ser ou não restrito, e à produção de resultados para posterior
utilização numa vasta gama de aplicações.
1.2.2
Análise de superfı́cie
O termo sintaxe de superfı́cie, do inglês shallow syntax, é uma designação genérica para a
análise que não tem em consideração aspectos linguı́sticos complexos. A saı́da de uma análise de
superfı́cie não é uma árvore de estrutura sintagmática no sentido tradicional, pois pode consistir
apenas na identificação de alguns constituintes sintagmáticos, tais como frases nominais, sem indicar a sua estrutura interna e a sua função na frase; ou na identificação do papel funcional de
algumas unidades lexicais, tais como o verbo principal e os seus argumentos directos.
Os sistemas de análise de superfı́cie, do inglês shallow parsers, usualmente operam com base
em informação morfológica, desambiguada ou não e, procuram identificar sintagmas e relações
núcleo/modificador (head/modifier). De uma forma geral este tipo de analisadores permite a an álise
de grandes quantidades de corpora. Uma vez que estes corpora contém frequentemente fenómenos
que tornam difı́cil a análise, tais como omissões de palavras e palavras incorrectas, as análises parciais são por vezes permitidas no caso do analisador não ser capaz de resolver todos os problemas.
A análise de superfı́cie compreende pelo menos a resolução dos três problemas seguintes, de
difı́cil tratamento pela análise sintáctica convencional.
Segmentação apropriada do texto, em unidades sintácticas;
Desambiguação, que consiste em seleccionar um conjunto reduzido de análises correctas do
ponto de vista semântico e pragmático, a partir de um número potencialmente elevado de
análises, que se podem produzir a partir das restrições impostas pela gramática;
1 Fenómenos linguı́sticos, que tornam a análise demasiado complexa e ocorrem um número reduzido de vezes, podem ser
ignorados de forma a reduzir a complexidade da análise.
1.2. O DOMÍNIO DA SINTAXE
5
Sub-geração, que consiste em lidar com casos de entradas fora da cobertura lexical ou
sintáctica dos sistemas.
1.2.3
Identificação de fragmentos
A análise e identificação de fragmentos (chunks), tem sido tratada por vários investigadores
e em variados contextos (Abney, 1991, 1996). A noção de chunk, não foi até agora definida formalmente em qualquer um desses contextos, tem sido sempre apresentada intuitivamente, atrav és
de exemplos. De uma forma geral, um chunk é uma sequência de unidades lexicais onde se verificam determinadas propriedades linguı́sticas, correspondendo a estruturas sintácticas relativamente simples, na medida em podem ser descritas por exemplo com gramáticas livres de contexto
(CFG) (Abney, 1996). A forma mais simples para reconhecimento de fragmentos, consiste em considerar como fragmentos, tudo o que estiver delimitado por palavras funcionais ou palavras chave.
Ross e Tukey utilizaram esta técnica e introduziram também a noção de chink que corresponde a
conjuntos de stop-words (Abney, 1996).
Abney (1996) considera que chunks são sintagmas contı́guos não recursivos, indicando que uma
gramática livre de contexto é suficiente para definir a sua estrutura. Os chunks de Abney podem
ser vistos com árvores não ligadas ao nó de topo da frase, que implica uma análise sintáctica em
dois tempos: a delimitação dos chunks e a sua junção. De uma forma geral os chunks correspondem
a porções de constituintes sintácticos tradicionais, como é o caso dos sintagmas nominais (SNs)
ou sintagmas verbais (SVs), embora também se encontrem algumas excepções, como é o caso dos
sintagmas verbais complexos (SVC) (Zechner e Waibel, 1998), que não são usados nos paradigmas
linguı́sticos tradicionais. Nos seus trabalhos, Giguet (1998) utiliza estruturas semelhantes aos
chunks de Abney, designadas por sintagmas minimais.
O trabalho que se pretende realizar no âmbito desta tese, será inicialmente aplicado à
identificação de domı́nios sintácticos designados por sintagmas nucleares, introduzidos e tratados
por Hagège (2000). Os sintagmas nucleares são caracterizados por constituı́rem um meio-termo
entre os conceitos do texto e os sintagmas tradicionais. Estes domı́nios linguı́sticos constituem
subconjuntos do sintagma tradicional, podendo por vezes confundir-se com ele. Os sintagmas nucleares apresentam propriedades particulares que são mais simples de descrever e reconhecer do
que os sintagmas tradicionais. Embora semelhantes aos chunks de Abney e aos sintagmas minimais de Giguet, distinguem-se destes últimos por, além de poderem ser constituı́dos por categorias,
poderem também conter outros sintagmas nucleares.
1.2.4
Análise robusta
Muitas vezes, os dados linguı́sticos sobre os quais é efectuada a análise encontram-se incompletos ou incorrectos: por exemplo, a passagem da um corpus de fala para texto, através de transcrição
fonética, poderá dar origem a um conjunto de erros tais como falta, inserção ou identificação incorrecta de palavras, ou simplesmente ruı́do. Torna-se difı́cil a atribuição de caracterı́sticas morfológicas, sintácticas ou semânticas a esses textos. Os pedaços incompletos ou fragmentados podem
ser compreensı́veis num contexto, mas dificilmente poderão ser analisados por gramáticas convencionais concebidas apenas para processar informação sem erros. Um sistema poderá ser considerado
CAPÍTULO 1. INTRODUÇÃO
6
robusto se o seu funcionamento tiver em consideração alguns ou todos os problemas mencionados
(Salton, 1989).
A utilização de rotinas de correcção ortográfica pode resolver alguns problemas relacionados
com palavras isoladas, tais como erros ortográficos e utilização de palavras desconhecidas. Em alternativa, podem ser associados marcadores sintácticos e semânticos, a essas palavras, de acordo
com as expectativas originadas pelo contexto. A existência de sufixos e outras especificações morfológicas fornecem, por vezes, pistas acerca da função de determinadas palavras. Um dos processos
que pode ser aplicado a uma variedade entradas incomuns, consiste em usar uma gramática convencional para analisar todas as possibilidades para essas entradas. Quando a entrada é ambı́gua
e são produzidas várias análises diferentes, aplica-se um processo de limitaç ão de resultados, realizando, por exemplo, uma ordenação das interpretações em termos de preferência, através de um
processo de atribuição de pesos.
O trabalho que se pretende realizar no âmbito desta tese compreende essencialmente a análise
de textos não restritos, onde podem existir unidades lexicais desconhecidas e onde podem ocorrer
construções pouco comuns do ponto de vista gramatical. Um dos requisitos mais importantes para
sistemas de processamento de textos reais, será conseguir extrair o maior conjunto possı́vel de
informação sobre esses textos e, simultaneamente, manter essa informação tratável por outras
aplicações. Assim, o trabalho a realizar deverá ser de tal forma robusto, que permita seleccionar as
análises mais prováveis de um conjunto de análises possı́veis e em simultâneo, e permitir também
contornar a ocorrência de palavras desconhecidas.2
1.2.5
Teorias psicolinguı́sticas
A ambiguidade é um problema inerente ao processamento da lı́ngua natural. Este tema
relaciona-se com as formas de tornar a análise mais eficiente e por vezes determinista, envolvendo
técnicas de escolha entre diferentes interpretações que o analisador possa encontrar.
As gramáticas associam mais do que um significado a sequências de palavras, que usualmente podem ser expressos de várias formas. Assim, os sistemas de análise têm de decidir as
interpretações correctas de uma dada construção e seleccioná-las de um conjunto de múltiplas
hipóteses (Strzalkowski, 1994). De uma forma geral, a análise estrutural de uma frase consiste
em encontrar todas as suas possı́veis interpretações, contudo esses processos de análise nem sempre correspondem ao processo intuitivo que as pessoas realizam no processamento sint áctico da
linguagem. Em particular, a análise realizada por um humano é, na maioria das vezes, um processo determinı́stico, isto é, não consiste numa procura extensiva de todas as possibilidades, mas
sim em utilizar o conhecimento que dispõe no momento, para indicar a interpretação adequada.
Segundo Allen (1995), têm sido realizadas experiências de forma a perceber como frases são
analisadas pelos seres humanos. Psicolinguistas têm utilizado uma grande variedade de técnicas,
que vão desde a utilização da intuição para escolha das possı́veis interpretações até a experiências
de monitorização passo-a-passo de como as pessoas lêem e ouvem a sua lı́ngua. Jurafsky e Martin
(2000) indicam que não existe ainda acordo entre os investigadores acerca da forma correcta de
modelar a análise pelos humanos, contudo as experiências têm revelado alguns princı́pios gerais
2 Palavras
que não puderam ser etiquetadas pelo analisador ou etiquetador morfossintáctico.
1.2. O DOMÍNIO DA SINTAXE
7
acerca de como as pessoas resolvem a ambiguidade. Um dos mais importantes resultados destas experiências é a conclusão de que os humanos não atribuem peso igual a todas as possı́veis
interpretações sintácticas. Os tópicos seguintes apresentam algumas heurı́sticas e técnicas que
derivam destes estudos e podem ser aplicadas à análise para a tornar mais precisa e eficiente.
Aposição mı́nima
Frazier e Fodor (1978) introduziram o princı́pio designado por aposição mı́nima (minimal attachment), que estipula que na falta de outra informação, os constituintes da frase devem ser associados de forma a minimizar a complexidade da análise. Em termos de resultados, o princı́pio
defende que se preferem as análises sintácticas cujas árvores sintácticas correspondentes contenham o menor número de nós. A aplicação deste princı́pio ao processo de análise, corresponde a
preferir adicionar a próxima palavra ao nó actual do que tentar criar um novo nó, aquando da
construção da árvore sintáctica.
Associação à direita
O segundo princı́pio designado por associação à direita (right association) ou fecho tardio (late
closure) foi introduzido por Kimball (1973). O princı́pio diz que, os novos constituintes são preferencialmente interpretados como fazendo parte do constituintes em construç ão, em alternativa a fazer
parte de outro constituinte de nı́vel superior na árvore. Por exemplo, para a frase:
O Jorge disse que o Henrique saiu no carro.
a interpretação preferida é a de que o Henrique saiu no carro em alternativa a que o Jorge falou no
carro, embora ambas as interpretações sejam válidas do ponto de vista sintáctico.
Incompatibilidade dos princı́pios
Allen (1995) refere que em certos casos os dois princı́pios anteriores são incompatı́veis, situação
em que as unidades lexicais podem influenciar as preferências da análise. Nestes casos podem
ser apenas aplicadas preferências ao nı́vel do léxico. Por exemplo, se um verbo sub-categoriza um
sintagma preposicional então o sintagma preposicional deve ser acoplado ao sintagma verbal (Allen,
1995).
Dowty et al. (1988) refere que o debate acerca da formulação e interacção dos princı́pios anteriores é causado pela sua falta de precisão e, ao mesmo tempo, pelo facto de serem demasiado
especı́ficos. Dowty et al. (1988) propõe uma plataforma de trabalho na qual se podem formular
versões melhoradas destes princı́pios. A plataforma proposta, mostra que os princı́pios correspondem a duas regras precisas acerca da escolha entre as acções alternativas de análise.
CAPÍTULO 1. INTRODUÇÃO
8
1.3 Objectivos e Estratégia
O tratamento automático de lı́nguas segue actualmente várias tendências. Algumas delas privilegiam a aplicação de um formalismo gramatical particular, no qual se mostra como resolvem
um conjunto de fenómenos linguı́sticos especı́ficos, através de uma série de exemplos que ilustram
esses mesmos fenómenos. No que diz respeito ao tratamento de textos não restritos, este tipo de
aproximação é muitas vezes inapropriado, pelas seguintes razões:
Os exemplos que utilizam são dados em contextos particulares, contrariamente ao que se
passa em textos reais;
Em textos reais há muitos desvios relativamente às formas canónicas previstas nas
gramáticas (Chanod, 2000);
A lı́ngua não é considerada como um todo, mas como um conjunto não exaustivo de fenómenos
linguı́sticos. A ilustração de cada um dos fenómenos tratados por uma gramática em particular é feita para cada construção particular deixada em aberto, dando ideia de esquecer
todas as outras construções. Não há uma tentativa de integrar as diferentes descrições e as
gramáticas formais que deveriam ter uma cobertura linguı́stica razoável perdem-se na “pureza” do seu formalismo (Hagège, 2000).
Na corrente dos formalismos gramaticais baseados na unificação, a noção de “cobertura mais
abrangente possı́vel” relaciona-se com a capacidade de tratar caso a caso a maioria dos problemas
sintácticos da lı́ngua, e torna-se inadequada ao processamento de textos reais. Em contraposição,
nas correntes de engenharia o objectivo é o de aplicar métodos genéricos e automáticos ao tratamento dos textos, ignorando por vezes certos casos particulares. As correntes de engenharia pecam
pela falta de observação real dos textos.
No âmbito desta tese, pretendem-se desenvolver mecanismos adequados ao tratamento de textos não restritos, partindo do trabalho realizado por Hagège (2000). Este trabalho consistiu em
observar as realizações da lı́ngua na tentativa de as generalizar para, por um lado, tentar descrever
o seu funcionamento, e por outro, utilizar os resultados das suas descrições em algoritmos orientados para textos reais. Assim, o trabalho desta tese enquadra-se numa das correntes linguı́sticas,
conhecida como a corrente realista, que se distingue pela realidade dos textos e na qual o objectivo
é a capacidade de processar textos efectivamente produzidos, sem correcções de ı́ndole linguı́sticas
prévias (Hagège, 2000).
O interesse de tratar texto não restrito é evidente, tento em conta que a quantidade de corpora
armazenados electronicamente tem vindo a aumentar nos últimos anos. Os corpora fornecem um
vasto conjunto de informação, razão pela qual é importante ter ferramentas que permitam facilitar
a obtenção e tratamento dessa informação. Em geral, os analisadores sintácticos apoiam-se sobre
uma gramática que lhes permite descriminar as sequências gramaticais e agramaticais. Assim, a
sua utilização no processamento de textos reais é dificultada pelos seguintes motivos:
Não existem dicionários completos. A análise de texto não restrito implica o tratamento de
elementos desconhecidos que compõem a análise, em oposição a uma análise tradicional que
pressupõe que todos os elementos sejam conhecidos;
1.3. OBJECTIVOS E ESTRATÉGIA
9
Não existe uma gramática completa, em especial se as frases a tratar não são canónicas. É
difı́cil prever numa gramática todas as construções possı́veis na lı́ngua;
As frases longas, apresentado ambiguidade lexical e estrutural, geram uma explosão combinatória de possı́veis análises.
Qualquer analisador que pretenda tratar textos reais terá de se confrontar com estes problemas.
Os analisadores de superfı́cie (shallow parsers) ou parciais (partial parsers) são, de uma forma
geral, orientados ao processamento de textos reais, sobre os quais podem produzir o que se designa por uma análise de superfı́cie, por vezes parcial. Análise parcial porque produzem por vezes
análises incompletas e linguisticamente pouco refinadas; de superfı́cie dado que não procuram dar
uma profunda descrição da estrutura sintáctica (sintagmas intrincados uns nos outros) da entrada
analisada. Os analisadores de superfı́cie ou parciais são também por vezes dotados de robustez, na
medida em que processam qualquer tipo de sequências incluindo as mal formadas e com palavras
desconhecidas.
No âmbito desta tese, são estudados sistemas de análise sintáctica de superfı́cie, bem como
técnicas de análise robusta. É estudado, o funcionamento do protótipo de análise de superfı́cie
AF (analisador por folhas) (Hagège, 2000), no que diz respeito ao seu algoritmo e à informação
por ele utilizada e produzida. São também abordados outros sistemas de análise sintáctica de
superfı́cie existentes, de forma a enquadrar os métodos empregues e a dar conta de aspectos de
difı́cil tratamento na análise de superfı́cie. O resultado deste estudo é aplicado no desenvolvimento
de um módulo de análise de superfı́cie, com vista à futura integração em sistemas de processamento
de lı́ngua. O módulo a desenvolver possui as seguintes caracterı́sticas:
Capacidade de lidar com corpora não restritos (também designado por texto real), que corresponde a textos não previamente corrigidos a nı́vel linguı́stico;
Dar conta de fenómenos, como são o caso de construções pouco comuns e palavras desconhecidas. Para este efeito é necessário dotar o analisador de alguma robustez;
Utilização de mecanismos de restrição de análises, de forma a impedir a explosão de hipóteses
para uma dada análise, mantendo assim o resultado utilizável por outras aplicações;
Possibilidade de integração e funcionamento dentro de outros sistemas;
Capacidade de processar grandes quantidades de corpora de uma forma eficiente.
Além das caracterı́sticas acima mencionadas, o módulo foi desenvolvido na linguagem de
programação C++. Numa primeira fase, foi implementado um módulo que permite produzir os mesmos resultados produzidos pelo protótipo AF, utilizando um algoritmo não optimizado. Posteriormente, foi desenvolvida uma versão com um algoritmo optimizado, que permite produzir os mesmos
resultados, com maior eficiência. A versão final manipula toda a informação em formato XML (Bray
et al., 2000). Paralelamente ao desenvolvimento do módulo, foi desenvolvida uma aplicação que permite a utilização isolada desse módulo, a partir de informação previamente preparada, permitindo
assim a realização de testes e análises de forma autónoma. Finalmente, foi também desenvolvido
um módulo servidor de RPC (Remote Procedure Call), que inclui o módulo de análise de superfı́cie e
permite a sua utilização numa plataforma cliente/servidor, através de outro módulo cliente, também
desenvolvido.
CAPÍTULO 1. INTRODUÇÃO
10
1.4 Contribuições
A aplicação do trabalho efectuado no âmbito desta tese poderá vir a ser marcante, tendo em
conta o desenvolvimento dos meios de comunicação e o aumento significativo da quantidade de
informação em suporte digital. O processamento corpora deste tipo, implica a utilizaç ão ferramentas orientadas para o processamento de textos reais, domı́nio para o qual esta tese se encontra
especialmente orientada.
O processamento da lı́ngua portuguesa é também um aspecto a realçar. Sobre este ponto é
importante destacar as necessidades especı́ficas e os fenómenos linguı́sticos particulares aı́ presentes. A lı́ngua portuguesa juntamente com as suas variantes é uma das lı́nguas mais utilizadas no
mundo, com cerca de 182 milhões de falantes3 merecendo por isso especial atenção.
Esta tese proporciona uma ferramenta computacional para o processamento da lı́ngua portuguesa, que poderá constituir uma plataforma de investigação nesse domı́nio.
1.5 Estrutura da dissertação
O capı́tulo 2 situa o trabalho efectuado no âmbito desta tese, face aos formalismos e métodos
utilizados no contexto da análise sintáctica e em particular da análise sintáctica de superfı́cie.
Aborda as gramáticas como mecanismos formais utilizados para descrever a estrutura de uma
lı́ngua e apresenta as aproximações utilizadas no tratamento da lı́ngua natural ao nı́vel sintáctico.
O capı́tulo descreve alguns dos sistemas existentes, orientados para o tratamento de textos reais
e termina com um quadro resumo, onde se estabelece uma comparação entre os vários sistemas
descritos.
O capı́tulo 3 foca os detalhes da análise por folhas, tal como foi introduzida e realizada no
âmbito dos trabalhos de Hagège (2000). A primeira parte do capı́tulo foca a gramática utilizada na
análise por folhas, descrevendo os seus elementos. A segunda parte do capı́tulo descreve o protótipo
de análise por folhas AF, caracterizando o tipo de análise que executa e destacando casos de tratamento particular. A parte final do capı́tulo descreve o processo de extracção de sintagmas nominais
a partir de texto, partindo de elementos mais fáceis de descrever, designados por sintagmas nucleares. Apresentam-se resultados sobre a avaliação deste processo.
O capı́tulo 4 descreve a gramática que serve de fonte de dados para o algoritmo de análise
sintáctica de superfı́cie do SuSAna, apresentado no capı́tulo 5. Sendo derivada da estrutura da
gramática utilizada pelo AF, mostram-se as alterações efectuadas e descreve-se a sua sintaxe
e semântica. Este capı́tulo estabelece também a relação entre os elementos que constituem a
gramática e a informação utilizada em gramáticas de outros formalismos.
O módulo de análise sintáctica de superfı́cie concebido e implementado no âmbito desta tese
– SuSAna – é apresentado no capı́tulo 5. O capı́tulo aborda aspectos relativos à sua utilização,
integração noutros sistemas e em diferentes plataformas, tanto localmente como numa plataforma
cliente/servidor. Descrevem-se aspectos relativos ao seu funcionamento, em particular os formatos
3 Fonte
de informação: http://www.historiageral.hpg.ig.com.br/quadro 2/artigos/linguas faladas.htm
1.5. ESTRUTURA DA DISSERTAÇÃO
11
utilizados na representação de dados e o tipo de dados que processa. O capı́tulo descreve a arquitectura interna do SuSAna e a representação interna da informação. A secção 5.4 descreve o processo
de análise, mecanismos de restrição e os algoritmos utilizados, apresentando também uma análise
de complexidade relativa a esses algoritmos. A secção 5.5 aborda os aspectos relativos à extracção
de informação sobre segmentos previamente analisados, e finalmente descreve o contexto actual de
utilização do módulo.
O capı́tulo 6 apresenta a avaliação do sistema, incluindo testes de comparação entre o AF e o
SuSAna, considerando: facilidade de utilização; tolerância a falhas; e fiabilidade dos resultados. A
segunda parte do capı́tulo mostra os resultados da aplicação do SuSAna a corpus alargado.
O capı́tulo 7 apresenta as conclusões e o trabalho futuro, no contexto do qual se faz um balanço
relativamente ao trabalho realizado e se descrevem algumas extensões a este trabalho, que se pretendem realizar ou poderiam ser realizadas, de forma a torná-lo mais abrangente e útil.
12
CAPÍTULO 1. INTRODUÇÃO
A análise computacional da estrutura sintáctica de uma frase deve ter em consideração dois
aspectos importantes: a gramática, uma especificação formal das estruturas permitidas na lı́ngua;
e a técnica de análise ou método de análise, cujo propósito é determinar a estrutura da frase de
acordo com a gramática. Este capı́tulo apresenta alguns dos tipos de gramáticas e técnicas mais
utilizados na análise sintáctica e descreve alguns dos sistemas que utilizam esses recursos para o
processamento de textos não restritos.
A secção 2.1 apresenta os vários tipos de gramáticas utilizadas ao nı́vel sintáctico, no processamento da lı́ngua natural. A secção 2.2 apresenta algumas técnicas de análise sintáctica focando as
vantagens e os problemas a elas associados. Descrevem-se alguns métodos eficientes utilizando, por
exemplo, estruturas de suporte à análise tais como autómatos e mecanismos tais como programação
dinâmica, que oferecem geralmente elevados nı́veis de eficiência. A secção 2.3 descreve alguns analisadores sintácticos de superfı́cie, apresentando para cada um deles, os pontos fortes e fracos. Finalmente, a secção 2.4 apresenta algumas conclusões e linhas de orientação para o trabalho desta
tese.
2.1 As gramáticas
As gramáticas são mecanismos formais utilizados para descrever a estrutura de uma lı́ngua.
Segundo Jurafsky e Martin (2000), estas podem ser caracterizadas pelo seu poder generativo, calculado com base no conjunto de linguagens que cada formalismo consegue descrever. Uma gram ática
tem um maior poder generativo ou complexidade do que outra, se puder definir uma linguagem
que a outra não possa definir. Nenhuma linguagem natural pode ser precisamente caracterizada
de forma a definir a sua capacidade generativa, por oposição às linguagens formais que permitem
uma caracterização matemática precisa. O trabalho na teoria das linguagens formais iniciou-se
com Chomsky (1956), que definiu uma hierarquia de linguagens, à qual se chama Hierarquia de
Chomsky. A Hierarquia de Chomsky revela que as linguagens geradas por gramáticas regulares
são um subconjunto das linguagens geradas pelas gramáticas livres de contexto (CFG), que por sua
vez são um subconjunto das linguagens sensı́veis ao contexto, que por sua vez são um subconjunto
das linguagens do tipo 0.
Esta secção descreve alguns dos tipos de gramáticas mais conhecidos e utilizados no processamento de lı́ngua natural, em particular as gramáticas regulares, livres de contexto, sensı́veis
ao contexto, dentro das quais se incluem as gramáticas moderadamente sensı́veis ao contexto. A
secção termina com uma abordagem à unificação.
CAPÍTULO 2. ENQUADRAMENTO
14
2.1.1
Gramáticas regulares
Os sı́mbolos que se usam numa linguagem dividem-se normalmente em duas classes: sı́mbolos
terminais que correspondem a palavras na linguagem; e sı́mbolos não terminais que correspondem
a agrupamentos ou generalizações dos sı́mbolos terminais. Uma gramática regular é constituı́da
por regras, tais que o lado direito de cada regra consiste num sı́mbolo terminal seguido de um
sı́mbolo não terminal.
A aplicação das gramáticas regulares ao processamento sintáctico de lı́ngua natural, é bastante
simples, pois permitem um fácil reconhecimento, porém, apresentam um poder generativo limitado,
equivalente ao poder expressivo de um autómato finito.
2.1.2
Gramáticas livres de contexto (CFG)
As gramáticas livres de contexto, também conhecidas como gramáticas de estrutura sintagmática,1 são muito úteis no que respeita à descrição de gramáticas em lı́ngua natural. Sendo
o sistema matemático mais utilizado para modelar a estrutura constituinte de uma lı́ngua, são,
em geral, mais poderosas do que as gramáticas regulares, permitindo a representação de linguagens com estrutura mais complexa. A ideia de basear uma gramática na estrutura constituinte,2
remonta ao psicolinguista Wilhelm Wundt (1900), mas só foi formalizada por Chomsky (1956), e
mais tarde por Backus (1959), de forma independente. O formalismo utilizado é equivalente ao que
também se designa por BNF (Backus Naur Form).
Uma CFG é constituı́da por um conjunto de regras ou produções, cada uma delas expressando
de que forma os sı́mbolos da linguagem podem ser agrupados e ordenados, e por um léxico de palavras e sı́mbolos. A linguagem formal definida por uma CFG é o conjunto de sequências que se
podem derivar de um sı́mbolo inicial, ou sı́mbolo de topo.
Um dos maiores problemas em utilizar as CFGs, está na dificuldade em exprimir dependências
simples, como por exemplo, concordância entre verbo e sintagma nominal. As abordagens puramente baseadas em CFGs não são geralmente suficientemente poderosas para captar a descrição
adequada à lı́ngua natural. Podem, contudo, usar-se linguagens formais, tais como DCG (Definite
Clause Grammars), disponı́vel em Prolog, para definir gramáticas livres de contexto de forma a
realizar a análise (Allen, 1995).
2.1.3
Gramáticas sensı́veis ao contexto
Grande parte dos problemas de dependência associados às CFGs, são resolvidos pelas
gramáticas sensı́veis aos contexto. Contudo, esta classe de gramáticas não aborda satisfatoriamente
o tratamento de restrições gramaticais. O problema relativo à sua utilização reside fundamentalmente na tarefa de reconhecimento, pois o processo de verificar se a estrutura de uma frase pode
ser obtida por estas gramáticas, é numa função exponencial sobre o tamanho da frase, tornando a
sua implementação uma questão dispendiosa do ponto de vista computacional.
1 Do
inglês phrase-structure.
na palavra constituinte no sentido de “componente da estrutura de uma frase”.
2 Usa-se
2.1. AS GRAMÁTICAS
15
Gramáticas moderadamente sensı́veis ao contexto
A definição de uma linguagem formal como um conjunto de sequências de palavras sugere que
se possa verificar a equivalência de duas gramáticas, simplesmente verificando se os conjuntos de
sequências que se podem gerar em cada uma delas são iguais. De uma forma geral, distinguemse dois tipos de equivalência entre gramáticas: fortemente e fracamente equivalentes. As
gramáticas fortemente equivalentes geram o mesmo conjunto de sequências e atribuem a mesma
estrutura a cada frase. As gramáticas fracamente equivalentes, são gramáticas que geram o mesmo
conjunto de sequências na linguagem mas não atribuem a mesma estrutura a cada frase.
Entre os formalismos que se introduziram nos últimos anos, existe uma classe de gramáticas
designada por gramáticas moderadamente sensı́veis ao contexto (mildly context-sensitive grammars)
que foram e têm sido intensamente investigadas sobre o ponto de vista matemático. Em particular, foi demonstrado que os formalismos pertencentes a esta classe são fracamente equivalentes
(Cole et al., 1995). A secção 2.2.5 abordará as técnicas utilizadas no tratamento desta classe de
gramáticas.
Como exemplos de gramáticas fracamente equivalentes temos, TAG (Tree-Adjoing Grammars),
CCG (Combinatorial Categorial Grammars), LIG (Linear Indexed Grammars), e HG (Head Grammars). Embora estas gramáticas sejam fracamente equivalentes e para elas tenham sido desenvolvidas técnicas de análise uniformes, as noções do que constitui uma análise são diferentes em cada
uma delas.
Numa TAG, a análise de uma frase constitui a chamada árvore de derivação, que consiste num
registo de como as árvores elementares de uma TAG se juntam pelas operações de substituição
e de junção de forma a obter a árvore derivada cujo resultado é a análise de uma sequência. Os
nós da árvore de derivação são etiquetados com os nomes das árvores elementares e os arcos são
etiquetados pelo endereço da árvore que etiqueta o nó superior, no qual as árvores que etiquetam os
nós filhos são ou substituı́das ou agrupadas. Enquanto numa árvore de derivação para uma CFG,
as noções de árvore de derivação e árvore derivada são as mesmas, para as TAG essas noções são
distintas.
Nas HG, a noção de árvore de derivação é diferente da anterior. Existe apenas a noção de
árvore de derivação, que é apenas um registo de como as sequências elementares (headed strings)
se relacionam e quais as operações usadas nesse processo. Os nós terminais são etiquetados pelas
operações que foram utilizadas para combinar as sequências usadas para etiquetar os nós filhos e
também pela sequência resultante da execução dessa operação. Assim, esta árvore de derivação é
muito diferente da árvore de estructura de sintagmas.
Para as CCG, a análise de uma frase é a árvore de prova da derivação. É semelhante à árvore de
estrutura de sintagmas, no sentido em que os nós são etiquetados por categorias em CCG. Contudo,
o nome da operação usada ao fazer a redução para cada nó tem também de ser indicado no nó. Neste
aspecto, são semelhantes às HG.
2.1.4
Gramáticas tipo 0
A Hierarquia de Chomsky classifica como sendo Gramáticas do Tipo 0, ou gramáticas com
Estrutura de Frase, as gramáticas às quais nenhuma limitação é imposta. Todo o universo das
CAPÍTULO 2. ENQUADRAMENTO
16
linguagens, que se pode definir através dos mecanismos generativos das gramáticas, corresponde
ao conjunto das linguagens que esta classe de gramáticas é capaz de gerar. As linguagens que
podem ser geradas por alguma gramática do tipo 0, designam-se linguagens do tipo 0.
2.1.5
Gramáticas baseadas em formalismos de unificação
A unificação é uma forma de implementar a integração de conhecimento a partir de restrições
diferentes. Para duas entradas de estruturas de caracterı́sticas (features) compatı́veis, a unificação
produz uma estrutura mais geral, que contém toda a informação das entradas. No caso das estruturas serem incompatı́veis, a unificação não pode ser aplicada (Jurafsky e Martin, 2000). Quase todas
as gramáticas computacionais incorporam estruturas de caracterı́sticas (estruturas atributo-valor).
Essas estruturas são manipuladas pela operação de unificação, daı́ o termo gramáticas baseadas
em unificação. Embora grande parte das gramáticas possam servir de suporte para gramáticas
baseadas em unificação, Shieber (1986) refere que as CFGs são as mais utilizadas para este fim.
As estruturas de caracterı́sticas e a unificação, fornecem uma forma elegante de exprimir restrições
sintácticas que seriam difı́ceis de exprimir usando apenas os mecanismos das CFGs, por exemplo.
Assim que se introduzem estruturas de caracterı́sticas e unificação, as gramáticas resultantes deixam de ser analisáveis em tempo polinomial. Na prática, podem ser introduzidas condições nas
possı́veis estruturas de caracterı́sticas que permitem voltar a conseguir a complexidade polinomial
(Cole et al., 1995). Uma importante propriedade das gramáticas baseadas na unificação é o facto de
se poder codificar a recursividade nas estruturas de caracterı́sticas (Cole et al., 1995).
2.2 Técnicas de análise sintáctica
Esta secção apresenta alguns dos vários algoritmos existentes para associar uma árvore de
estrutura sintagmática a uma frase. Os métodos empregues variam desde as estratégias básicas de
procura até à programação dinâmica. Para gramáticas livres de contexto, os algoritmos de Earley
(1970), Cocke-Younger-Kasami (CYK) (Kasami, 1965; Younger, 1966) e Graham-Harrison-Ruzzo
(GHR) (Graham et al., 1980), são exemplos de programação dinâmica com complexidade muito
reduzida.
2.2.1
Estratégias básicas
O objectivo de uma análise sintáctica consiste em encontrar todas as árvores de estrutura sintagmática, a partir de um sı́mbolo de partida T, que contemplem as palavras da frase e analisar.
Independentemente do algoritmo de procura, é sempre necessário respeitar dois tipos de restrições:
o primeiro provém dos dados; o segundo, provém da gramática. A árvore final deve conter uma
raiz que começa com o sı́mbolo T, e um conjunto de folhas que devem corresponder às palavras da
frase. Estes dois tipos de restrições levam a dois tipos de estratégias de procura, presentes em muitos analisadores, nomeadamente: a estratégia de procura descendente (top-down) e a estratégia de
procura ascendente (bottom-up) ou procura orientada pelos dados.
Um analisador top-down procura construir uma árvore, partindo do nó raiz em direcção às suas
folhas. O algoritmo começa por assumir que a entrada pode ser derivada a partir do sı́mbolo inicial,
2.2. TÉCNICAS DE ANÁLISE SINTÁCTICA
17
e o passo seguinte consiste em encontrar os nós de topo de todas as árvores que podem começar
com T, encontrando todas as regras da gramática com T no seu lado esquerdo. Em cada nı́vel da
análise, usam-se os lados direitos das regras para fornecer novos conjuntos de possibilidades para o
analisador, que por sua vez são usadas recursivamente para gerar as restantes árvores. As árvores
vão crescendo até chegarem a uma das categorias da frase de entrada. Neste ponto, as árvores cujas
folhas não se identificam com todas as palavras da frase são rejeitadas.
O algoritmo de análise bottom-up é o mais simples algoritmo de análise sintáctica conhecido
(Jurafsky e Martin, 2000). Foi sugerido pela primeira vez por Yngve (1955) e é muitas vezes utilizado em analisadores de Deslocamento e Redução (shift-reduce), habitualmente utilizados para
linguagens computacionais. Na análise do tipo bottom-up, o analisador começa com as palavras que
compõem a frase em análise e tenta construir a árvore da análise até ao nó de topo. O analisador
é bem sucedido se conseguir gerar a árvore com o sı́mbolo T na raiz e cobrir todas as palavras da
frase.
As estratégias top-down e bottom-up têm ambas vantagens e desvantagens. A primeira nunca
explora árvores que não podem ocorrer em T, uma vez que começa por gerar apenas as árvores que
podem ocorrer em T. Por oposição, a estratégia bottom-up gera árvores que não levam a T e podem
vir a ser eliminadas. Embora a estratégia top-down não construa árvores que não levam a T, pode
construir árvores que não são consistentes com os dados de entrada. As deficiências da aproximação
top-down resultam de serem geradas árvores antes de se terem examinado os dados de entrada. Por
seu lado, a estratégia bottom-up nunca sugere árvores que não provenham dos dados de entrada.
Mesmo dotado de estratégias como a filtragem bottom-up, o analisador top-down apresenta um
conjunto de problemas que o tornam uma solução ineficiente para o problema da análise. Esses
problemas são a recursão à esquerda, ambiguidade e análise repetida de sub-árvores.
O problema da recursão à esquerda manifesta-se no uso de gramáticas recursivas à esquerda,
em analisadores top-down esquerda-direita de procura em profundidade. Em termos formais,
uma gramática diz-se recursiva à esquerda se contém pelo menos um sı́mbolo não terminal A,
tal que
, para algum e e
. O sı́mbolo A pode levar o analisador a uma
expansão infinita da árvore;
O tratamento da ambiguidade é feito de uma forma ineficiente quando utilizado um analisador
top-down. Além da ambiguidade ao nı́vel da classificação morfossintáctica, existe também
outro tipo de ambiguidade que provém das estruturas sintácticas usadas na análise que se
designa por ambiguidade estrutural. Este tipo de ambiguidade ocorre quando a gramática
permite mais do que uma análise para uma dada frase;
O analisador constrói por vezes porções válidas de árvores, que são desprezadas devido a retrocesso (backtracking) e possivelmente reconstruı́das. Este processo é claramente ineficiente.
Note-se que embora este problema seja especı́fico da análise top-down, ocorrem problemas
similares nos analisadores bottom-up.
2.2.2
Análise Esquerda-Direita (LR)
Os algoritmos de análise Esquerda-Direita (Aho e Ullman, 1972) foram introduzidos inicialmente para as linguagens de programação e revelou-se útil para construção de compiladores. O
18
CAPÍTULO 2. ENQUADRAMENTO
algoritmo LR é um dos algoritmos de análise sintáctica mais eficientes, totalmente determinista,
que não usa retrocesso. Contudo, não se pode utilizar directamente às lı́nguas naturais, pois é apenas aplicável a um pequeno sub-conjunto das CFGs, designado por gramáticas LR (Tomita, 1987).
Os analisadores LR processam a sua entrada usando uma estratégia bottom-up, da esquerda
para a direita e devolvendo a derivação mais à direita possı́vel. Este tipo de analisadores são conduzidos por uma tabela de acções para a análise que foi previamente compilada a partir da gramática.
Nas gramáticas orientadas para os analisadores LR, as tabelas de análise compiladas são deterministas, resultando em analisadores eficientes, com tempos de execução lineares. Estes analisadores
seguem diversas variantes: o núcleo comum de todos eles é um analisador com Deslocamento e
Redução (Shift-Reduce), que não é mais do que um autómato de estados finitos pushdown (PDA). O
analisador lê uma dada entrada da esquerda para a direita, palavra a palavra. Em cada passo, o
analisador pode deslocar a próxima palavra para a sua pilha, reduzir a pilha actual de acordo com
uma regra da gramática, ou aceitar/rejeitar a entrada. Uma tabela de acções pré-compilada a partir
da gramática guia o processo de análise das entradas. A tabela especifica a próxima acção que o
analisador deve tomar como uma função do estado actual e da próxima palavra a analisar (Lavie,
1996). Tal como o analisador de Earley, a análise LR usa items para saber qual foi o progresso das
derivações enquanto é processada a entrada. O analisador de Earley constrói todo o conjunto de
possı́veis items no momento, seguindo todas as derivações parciais. Um analisador LR, tem acesso
a uma lista completa de conjuntos de possı́veis items calculados previamente, limitando-se a seguir as transições entre esses conjuntos. Os conjuntos de items são conhecidos como “estados” do
analisador LR. Uma gramática é adequada para a análise LR se as transições puderem ser executadas deterministicamente, considerando-se apenas o próximo elemento da entrada e os conteúdos
de uma pilha Deslocamento e Redução.
O algoritmo LR generalizado é uma extensão do algoritmo LR, que permite tracking paralelo
e transições de estados múltiplos e acções de pilha usando uma pilha do tipo grafo estruturado
(Stolcke, 1995). Tomita (1987) apresenta um algoritmo LR generalizado eficiente para CFGs aumentadas, que permite o processamento de qualquer gramática CFG, com base numa pilha do tipo
grafo estruturado.
2.2.3
Análise com transdutores de estados finitos
Os dispositivos de estados finitos sempre tiveram um papel chave no processamento da lı́ngua
natural. O seu interesse é renovado devido ao seu bem sucedido uso na análise morfológica, ao
representar, por um lado, grandes dicionários com autómatos de estados finitos (FSA) e, por outro,
regras de dois nı́veis e informação lexical com transdutores de estados finitos (FST). Os FSA foram
já usados, tanto para aproximar CFGs, como para realizar analise sintáctica. O maior problema
inerente ao uso dos FSA está na dificuldade de representar a estrutura hierárquica, podendo originar análises incompletas. Nos últimos anos, tem havido algum trabalho teórico em autómatos
de estados finitos no que diz respeito ao seu uso em análise sintáctica. Os analisadores podem ser
muito eficientes e são adequados para gramáticas muito lexicalizadas.
2.2. TÉCNICAS DE ANÁLISE SINTÁCTICA
2.2.4
19
Algoritmos eficientes de análise sintáctica
Para as gramáticas livres de contexto, são conhecidos algoritmos de complexidade polinomial,
tais como o algoritmo CKY, de Cocke, Kasami e Younger (1965, 1967), e o de Earley (1970). Todos os
algoritmos que operam com as CFGs estão relacionados com estes dois de alguma forma. No que diz
respeito à complexidade, esses algoritmos são
, sendo o tamanho da frase. Existe um factor
multiplicativo
, que depende do tamanho da gramática , expresso em termos de regras e
do número de sı́mbolos não terminais. Embora se tenham introduzido optimizações aos expoentes
de e , elas estabelecem análises polinomiais. Não existem casos matemáticos de complexidade
média: todos os que são anunciados são empı́ricos. Na prática, a generalidade dos algoritmos são
executados em tempos muito inferiores ao pior caso e o factor real de limitaç ão é o tamanho da
gramática (Cole et al., 1995).
2.2.5
Análise em gramáticas moderadamente sensı́veis ao contexto
Os formalismos pertencentes à classe das gramáticas moderadamente sensı́veis ao contexto, já
abordados na secção 2.1.3, são fracamente equivalentes. Do ponto de vista da análise sintáctica,
a fraca equivalência não é por si só muito interessante, pois sozinha não pode garantir que uma
técnica de análise desenvolvida para uma classe de gramáticas possa ser estendida para ser usada
noutra classe, ou que um procedimento uniforme possa ser desenvolvido para tratar esse conjunto de gramáticas. Contudo, é sempre possı́vel adaptar um algoritmo que funcione com uma
das gramáticas desse conjunto a qualquer outra gramática deste conjunto.
Segundo Joshi Aravind (Cole et al., 1995), foi mostrado que é possı́vel estender o algoritmo
CKY (algoritmo de reconhecimento de CFGs) para analisar LIGs (gramáticas lineares indexadas).
Consequentemente, este analisador pode também ser adaptado à analise gramáticas do tipo TAG
(Tree-Adjoing Grammars), HG (Head Grammars) e CCG (Combinatorial Categorial Grammars).
. Um algoritmo do tipo do de Earley
O novo algoritmo é polinomial e a sua complexidade é
também foi desenvolvido para as gramáticas TAG e foi mostrado que a sua complexidade é
(Cole et al., 1995).
2.2.6
Análise sintáctica como processo dedutivo
A operação de análise pode ser vista como um processo dedutivo, tal como no caso das CCG. O
cálculo de Lambek é uma formulação bastante antiga da análise como dedução. A relação entre o
cálculo de Lambek e as CFG foi uma questão em aberto durante mais de 30 anos. Recentemente
foi provado que as Gramáticas de Lambek são fracamente equivalentes às CFGs (Pentus, 1993).
A demonstração desta equivalência não parece, no entanto, sugerir a construção de um algoritmo
polinomial de análise para as gramáticas de Lambek, o que mantém uma importante questão em
aberto. A plataforma da análise como dedução permite uma separação modular dos aspectos lógicos
da gramática e a demonstração do procedimento de procura, fornecendo uma plataforma para a
investigação de uma gama maior de algoritmos de análise. Estas investigações teóricas levaram
ao desenvolvimento de um programa para o teste rápido de novos algoritmos de análise e foram
também usadas para o desenvolvimento de algoritmos para as gramáticas CCG, TAG e CFG (Shieber et al., 1995).
CAPÍTULO 2. ENQUADRAMENTO
20
2.2.7
Análise com preferências
A ambiguidade é um problema persistente no processamento da lı́ngua natural, pois geralmente, as gramáticas associam mais do que uma estrutura às frases e existe usualmente mais do
que uma forma de exprimir a sua estrutura (Strzalkowski, 1994). Assim, os sistemas de an álise devem decidir as estruturas correctas de entre múltiplas possibilidades. As heurı́sticas usadas para
realizar essas escolhas são designadas por preferências, que podem ser vistas como funções que
comparam pares de estruturas indicando qual a que se prefere.
São vários os tipos de preferências que se podem considerar, por exemplo: preferências derivadas de princı́pios psicolinguı́sticos e preferências indicadas por regras que definem a preferência
de uma estrutura sobre outra. Neste último caso, as regras podem ser indicadas manualmente
ou derivadas de métodos probabilı́sticos baseados na frequência em corpus. A forma mais fácil de
considerar preferências é executar o algoritmo de análise, obter os seus resultados e ordená-los de
acordo com pesos atribuı́dos previamente pelas preferências consideradas. Este processo conduz a
um resultado correcto, mas é potencialmente ineficiente, dado que todas as interpretações têm de
ser criadas antes que possam ser ordenadas.
James Barnett (Strzalkowski, 1994) apresenta uma plataforma para lidar com a ambiguidade.
No seu trabalho, Barnett examina várias propriedades que as preferências devem possuir, de forma
a produzir pesos coerentes, e apresenta um algoritmo para aplicar essas prefer ências durante a
análise. A plataforma de Barnett agrupa as preferências em várias classes de equivalência, com diferentes nı́veis de complexidade de aplicação. Esta plataforma, na sua versão mais simples, permite
implementar preferências simples como é o caso de Low Attachement e Function Composition. Preferências mais complexas, como é o caso da resolução de anáforas, são contempladas numa extensão
que Barnett faz à sua plataforma, na qual explora parcialmente o espaço de procura. A plataforma
de Barnett assume uma representação baseada em DAGs (grafos dirigidos acı́clicos) sendo assim
independente de uma teoria em particular.
Petitepierre et al. (1987) apresentam um tratamento semelhante a Barnett, considerando as
preferências como predicados que comparam pares de interpretações. Segundo Barnett, este trabalho não tem em consideração as questões de comensurabilidade e monotonicidade, o que leva
a uma incapacidade de garantir a coerência do resultado.3 Barnett acrescenta que este trabalho
não permite aplicar preferências incrementalmente obrigando à construção do conjunto de todas as
possı́veis interpretações.
2.3 Analisadores orientados para texto não restrito
Os sistemas de análise sintáctica trabalham, normalmente, com base em etiquetagem morfológica desambiguada ou não. Os analisadores sintácticos tradicionais, onde também se incluem
os analisadores estocásticos simples, procuram obter análises completas e exactas. Como resultado
disso, não se comportam bem quando aplicados a textos reais. Este tipo de textos cont ém por vezes
uma grande quantidade e variedade de ruı́do, que associado a possı́veis erros e à inexistência de
gramáticas e léxicos que cubram todos os domı́nios, tornam difı́cil a sua análise. Por outro lado,
3A
ordenação pode incluir incoerências nas quais x ¡ y e y ¡ x.
2.3. ANALISADORES ORIENTADOS PARA TEXTO NÃO RESTRITO
21
devido ao tamanho das frases e à ambiguidade das gramáticas, é também difı́cil fazer uma análise
eficiente. Os analisadores sintácticos de superfı́cie, também conhecidos como shallow parsers são
uma resposta a estas dificuldades. Embora produzam análises menos completas e profundas do que
aquelas produzidas por um analisador convencional, têm como objectivo obter informação sintáctica
válida, mesmo que seja parcial. Geralmente fazem-no de uma forma eficiente.
Uma das caracterı́sticas comuns a uma grande parte de analisadores de superfı́cie é a sua
aplicação a grandes quantidades de corpora. Muitas vezes, sempre que não é possı́vel atribuir uma
estrutura válida à frase, permite-se a análise parcial. O propósito da análise parcial consiste em
inferir a maior estrutura sintáctica possı́vel, a partir da informação morfossintáctica. A análise
de superfı́cie pode ser utilizada para diversas finalidades, tais como detectar frases ou identificar
alguns constituintes da frase, tais como frases nominais, sem indicar a sua estrutura interna e as
suas funções na frase. Outro tipo de análise de superfı́cie consiste em identificar o papel funcional
de algumas palavras, tal como o verbo principal e os seus argumentos directos.
Embora já se faça investigação na área há três décadas, segundo Cole et al. (1995) não teria
sido desenvolvido até 1995 nenhum analisador independente do domı́nio, para texto não restrito,
de carácter prático. Nos recentes anos este panorama é posto em causa devido, fundamentalmente:
a um aumento de poder de cálculo computacional, que permite testar e analisar diferentes técnicas
de cálculo; e à crescente facilidade de acesso a corpora, que permite realizar observações e produzir
informação valiosa para o processamento da lı́ngua.
2.3.1
Analisador de superfı́cie da Xerox
O analisador de superfı́cie desenvolvido na Xerox consiste numa cascata de autómatos de estados finitos. A utilização da tecnologia de estados finitos na Xerox, tem como objectivo fornecer uma
plataforma de trabalho para o desenvolvimento de ferramentas de tratamento linguı́stico. O objectivo da sintaxe dos estados finitos é expandir a tecnologia dos estados finitos ao nı́vel dos sintagmas
e das frases. Pretendem desenvolver um sistema que desambigue categorias gramaticais e associe
funções sintácticas assim como tratar documentos reais (Schulze et al., 1994).
Partindo de um texto etiquetado e desambiguado, este analisador aplica uma série de transdutores compilados a partir de expressões regulares, que vão permitir adicionar informação sintáctica
às sequências iniciais do texto etiquetado. Cada transdutor é responsável por uma dada tarefa
linguı́stica e ao resultado da aplicação de cada transdutor é aplicado outro transdutor. As duas
operações principais efectuadas pelos transdutores são a segmentação e a marcação sintáctica.
A segmentação consiste em delimitar e etiquetar as sequências de constituintes adjacentes.
Estas sequências correspondem a sintagmas minimais, chunks, ou sintagmas não recursivos, que
se encontram em alguns dos trabalhos mais recentes (Giguet, 1998; Abney, 1991, 1996; Ejerhed,
1996). Consideram-se igualmente no seguimento deste trabalho, unidades sintácticas semelhantes,
designadas por sintagmas nucleares.
A marcação sintáctica consiste em atribuir as funções sintácticas aos segmentos não recursivos.
A técnica para obter as funções sintácticas dos domı́nios sintácticos delimitados é semelhante à utilizada no analisador por restrições de Helsı́nquia (ver 2.3.3). Uma das vantagens deste analisador,
segundo os seus autores, é a sua não-monotonicidade.
CAPÍTULO 2. ENQUADRAMENTO
22
Depois de efectuada a etiquetagem, um conjunto suplementar de transdutores, aplicados às
sequências segmentadas e marcadas, tenta ligar os segmentos delimitados entre si (ligaç ões entre
governadores e dependências). Estas ligações não se estabelecem entre unidades lexicais (como
no caso dos formalismos baseados nas dependências) mas entre segmentos. Por exemplo entre os
segmentos marcados como objecto, queremos determinar de que verbo esse segmento é objecto. Esta
marcação sintáctica preliminar é um meio de limitar a sobre-geração de ligações de dependência.
Este analisador de superfı́cie foi inicialmente desenvolvido para o francês, existindo já uma
versão do analisador para o espanhol, que segundo Pavia (1999), chega a conseguir processar cerca
de 115 palavras por segundo4, incluindo o pré-processamento. Testes efectuados em corpora jornalı́stico, para identificar o sujeito do verbo e o seu objecto directo, revelam uma precis ão entre 70%
e 80% e uma cobertura entre 60% e 75% (Pavia, 1999).
2.3.2
Analisador GREYC
O analisador GREYC, desenvolvido por Jacques Vergne do laboratório CREYC, efectua uma
análise de superfı́cie baseada em dependências (Vergne e Giguet, 1988). Este analisador participou
na acção de avaliação comparativa de etiquetadores GRACE, obtendo uma cobertura de 100% e
cerca de 95% de precisão, ficando em primeiro lugar (LIMSI, 2002).
Definem-se dois nı́veis de tratamento que são o nı́vel de tratamento de palavras e o nı́vel de
tratamento de sintagmas não recursivos. Entre estes dois nı́veis existe uma interacção que vai
permitir, num outro nı́vel, afinar as decisões tomadas. Esta maneira de decompor o problema,
faz da delimitação de sintagmas não recursivos uma extensão da etiquetagem. As operações de
desambiguação morfológica e de parentetização sintáctica, efectuam-se numa única etapa.
Além das etiquetas consideradas existe outro tipo de etiquetas que marcam o inı́cio e o fim dos
sintagmas não recursivos. A etiquetagem faz-se em duas etapas: numa primeira etapa calculam-se
as etiquetas mais prováveis para as palavras gramaticais do texto; a segunda etapa designada fase
de dedução, consiste em rever ou confirmar a primeira etiquetagem, usando as regras contextuais.
A etiquetagem do inı́cio e fim dos sintagmas não recursivos são calculadas neste primeiro nı́vel de
tratamento.
O segundo nı́vel de tratamento diz respeito ao estabelecimento de dependências entre sintagmas não recursivos. Estas dependências são calculadas, não só, a partir de conhecimento estático,
mas também dinâmico, a partir de outras ligações de dependência que se estabelecem entre outros
sintagmas não recursivos da sequência. Embora cada um dos nı́veis constitua um processo separado, as duas representações são construı́das em simultâneo, cada uma podendo interagir com a
outra. Com efeito, algumas ambiguidades deixadas no 1o nı́vel só podem ser resolvidas no segundo
nı́vel.
2.3.3
Os analisadores da universidade de Helsı́nquia
Os dois analisadores reducionistas da universidade de Helsı́nquia, ENGCC e Functional Dependency Parser, são analisadores robustos e baseiam-se em obter todas as construções possı́veis,
4 Testes
realizados numa máquina SPARCstation-10.
2.3. ANALISADORES ORIENTADOS PARA TEXTO NÃO RESTRITO
23
para numa segunda etapa, através de restrições, eliminar as improváveis.
O analisador de gramática de restrições para o Inglês, ENGCG (Voutilainen et al., 1992; Karlsson et al., 1995) é baseado numa gramática de restrições, que consiste numa plataforma de trabalho
proposta por Fred Karlsson. Desenvolvido entre 1989 e 1993 na universidade de Helsı́nquia, por
Atro Voutilainen, Juha Heikkilä e Arto Anttila, foi mais tarde melhorado no que diz respeito à
sua descrição sintáctica, e Pasi Tapanainen escreveu uma nova e mais eficiente implementação do
algoritmo de análise por restrições.
A componente de análise morfológica e lexical é baseada num modelo de dois nı́veis (Koskenniemi, 1983). O léxico, além de empregar um conjunto de etiquetas morfológicas, emprega também
inflexão, derivação e até mesmo categoria sintáctica. Inicialmente, certas categorias podem ter uma
série de funções sintácticas, sobre as quais são aplicadas restrições contextuais não ordenadas, que
vão agir sobre essas sequências de unidades lexicais etiquetadas, a fim de desambiguar a etiquetagem morfológica e a função sintáctica. A desambiguação da função sintáctica de cada palavra é feita
da mesma forma que é feita a desambiguação morfossintáctica, aplicando regras de reconhecimento
de padrões para eliminar as etiquetas incorrectas.
O analisador Functional Dependency Parser, calcula, a partir de unidades lexicais etiquetadas
de forma não ambı́gua, as dependências entre essas unidades lexicais ao mesmo tempo que se
efectua a desambiguação de etiquetas de função sintáctica.
Depois da etiquetagem, o ENGCG determina um número limitado de funções sintácticas para
as palavras na frase desambiguada: sujeito; object finit verb; objecto de uma preposição, entre
outros. Depois de aplicar cerca de 250 restrições para resolução de ambiguidades sintácticas, cerca
de 75 a 85% de todas as palavras tornam-se sintacticamente não ambı́guas, conseguindo-se uma
taxa de erro entre 2 e 4.5%.
O analisador morfológico é baseado de autómatos de estados finitos e escrito em linguagem C
por Pasi Tapanainen. Segundo (Schulze et al., 1994) não trata fenómenos linguı́sticos mais profundos tais como ligações de frases proposicionais, subordinação e resolução de pronomes.
Para o português, existe um analisador robusto, na linha dos analisadores de Helsı́nquia, desenvolvido na Dinamarca que procede à desambiguação da etiquetagem morfossintáctica, etiquetagem em funções sintácticas e etiquetagem em classes semânticas (Bick, 1996).
2.3.4
Analisador Fidditch
Fiddich (Hindle, 1983, 1994) é um analisador de superfı́cie bastante antigo, sendo também o
mais bem sucedido em muitos aspectos. Foi originalmente concebido para tratar textos n ão restritos, incluindo textos com bastante ruı́do, como é o caso das transcrições de fala.
Sendo um analisador determinı́stico, toma decisões baseadas no estado do parser, sem retrocesso. O estado do analisador consiste numa pilha de constituintes incompletos e um buffer de tr ês
constituintes completos. As regras são seleccionadas por padrões que descrevem tais configurações,
e executa acções transformando o estado do parser.
Encontra-se em uso nos laboratórios AT&T e não se encontra disponı́vel para utilização. Fornecendo uma estrutura de superfı́cie anotada, especialmente árvores de estrutura sintagmática, foi
CAPÍTULO 2. ENQUADRAMENTO
24
aplicado a milhões de palavras (Cole et al., 1995). É um dos analisadores mais rápidos existentes,
chegando a processar cerca de 1200 palavras por segundo5 (Abney, 1996).
2.3.5
Sistema ANLT
O sistema ANLT (Alvey Natural Language Tools) (Ritchie et al., 1987; Grover et al., 1993),
resultado da fusão de três projectos das universidades de Cambridge, Edimburgo e Lancaster, é
um conjunto de ferramentas desenvolvidas para a investigação em processamento de lı́ngua natural. Estas ferramentas consistem num analisador morfológico, um analisador por grafo (chart
parser), gramática e um léxico derivado semi-automaticamente de um dicionário. A gramática, de
larga cobertura para o inglês, foi desenvolvida num meta-formalismo gramatical derivado do GPSG
(Generalized Phrase Structure Grammar), e lida tanto com análise sintáctica como com análise
semântica. Estas ferramentas podem ser usadas independentemente, ou integradas numa plataforma de desenvolvimento de gramáticas (Carroll et al., 1991).
O sistema permite implementar uma variedade de formalismos gramaticais, sendo a sua
aproximação baseada em unificação. As regras descrevem as estruturas dos sintagmas e frases
reconhecidas, podem ser estendidas por unificação de caracterı́sticas na parte esquerda e direita de
uma regra, permitindo impor restrições sobre as estruturas sintácticas criadas.
Em temos de cobertura, o sistema ANLT é mais uma ferramenta para teste de teorias gramaticais do que para exploração de corpora, no sentido em que é necessário encontrar uma estrutura
coerente para toda a frase, para que a análise sintáctica seja bem sucedida. É necessário efectuar a
criação de regras para a cobertura da lı́ngua a ser tratada, tendo em consideração que um conjunto
de regras de cobertura alargada, pode deixar a frase com milhares de analisadores.
2.3.6
Sistema PEG
PEG (Jensen et al., 1993) é um sistema de larga cobertura para análise lexical, morfológica e
sintáctica de texto em inglês não restrito (Cole et al., 1995). Fornece análises mesmo se nem toda a
informação necessária se encontra presente e utiliza regras para ordenar análises alternativas.
2.3.7
Analisador PALAVRAS
O PALAVRAS (Bick, 2000) é um analisador automático para português, desenvolvido por
Eckhard Bick na Universidade de Århus (Dinamarca). O sistema apoia-se num léxico de 50.000
lemas e milhares de regras gramaticais para fornecer uma análise completa, tanto morfológica
como sintáctica, de qualquer texto. O formalismo aplicado integra-se na tradição da Gramática por
Restrições (CG), introduzido por Fred Karlsson (Universidade de Helsı́nquia, Finlândia) em 1992.
Embora usando um conjunto de etiquetas gramaticais bastante diversificado, o parser alcança um
nı́vel de correcção de 99% em termos de morfologia, e 97-98% em termos de sintaxe.
5 Testes
realizados numa máquina: SUN Sparc 1
2.3. ANALISADORES ORIENTADOS PARA TEXTO NÃO RESTRITO
Xerox
Textos Reais
Robusto
Análises parciais
Larga cobertura
Sintágmas não recursivos
Refina os resultados
Autómatos finitos
Unificação
Restrições
Baseado em dependências
Determinista
Reducionista
Sem retrocesso
Texto desambiguado
Não-monotonicidade
GREYC
Helsı́nquia
Fiddich
25
ANLT
PEG
PALAVRAS
Tabela 2.1: Resumo das caracterı́sticas dos analisadores de superfı́cie.
Embora não tendo as caracterı́sticas de um analisador sintáctico de superfı́cie, este analisador
foi utilizado para a construção de um banco de árvores (treebank), no âmbito do projecto “Floresta
Sintá(c)tica” Afonso et al. (2002). O banco de árvores consiste num conjunto de items sintacticamente analisados, e encontra-se disponı́vel para utilização através da Internet.
2.3.8
Conclusões
A tabela 2.1 apresenta, um resumo das caracterı́sticas dos analisadores apresentados. Numa
óptica puramente aplicativa, os sistemas apresentam bons resultados, tendo em conta o estado da
arte deste domı́nio. Se, por um lado, o custo do trabalho linguı́stico é um parâmetro importante,
então muitos dos sistemas estatı́sticos6 são adequados, permitindo obter bons resultados de forma
automática. Se, por outro lado, se procuram generalizações sobre lı́nguas nas descrições linguı́sticas
nesses sistemas, então esses sistemas não são suficientes.
Pode-se lamentar a não visibilidade da informação linguı́stica utilizada nestes sistemas e talvez
o facto da informação linguı́stica não ser absolutamente declarativa:
Não visibilidade da informação linguı́stica: Os sistemas apresentados não permitem por vezes
estabelecer onde é declarada a informação linguı́stica e qual a sua natureza, transmitindo a
ideia de que se encontra distribuı́da por todo o sistema. Isto pode dever-se ao facto da sintaxe
das informações linguı́sticas declarativas não ser independente da sintaxe declarativa das
regras. Torna-se difı́cil examinar as gramáticas ou heurı́sticas utilizadas por esses sistemas e
por conseguinte é difı́cil chegar a generalizações sobre o funcionamento das lı́nguas.
Não declaratividade: A não declaratividade é um problema que se emparelha com a não visibilidade. Se os dados linguı́sticos usados por um sistema são declarativos a informação
linguı́stica utilizada deverá ser mais fácil de observar e apreender.
6 sistemas
que se baseiam em elementos probabilı́sticos obtidos a partir processamento de corpora.
CAPÍTULO 2. ENQUADRAMENTO
26
As descrições linguı́sticas detalhadas são dispendiosas, problema que se agrava se, para cada novo
sistema, for necessário criar uma nova descrição. Se for possı́vel criar descrições linguı́sticas detalhadas, independente de um formalismo e de um analisador, então essas descrições só têm de ser
feitas uma única vez. O trabalho a realizar no âmbito desta tese orienta-se para o tratamento de
texto real, considerando que a descrição de uma lı́ngua não deve ser dependente do algoritmo. Esta
é a razão fundamental pela qual o trabalho se distancia das abordagens das análises de superfı́cie
vistas anteriormente.
2.4 Sumário
A primeira parte do capı́tulo aborda os vários formalismos em que se enquadram as gramáticas
utilizadas no processamento de lı́ngua natural. As gramáticas, mecanismos formais utilizados para
descrever a estrutura de uma lı́ngua, podem ser caracterizadas pelo seu poder generativo, isto é,
a sua capacidade de gerar frases de uma linguagem. A escolha de um formalismo depende da expressividade e da complexidade de análise pretendida. As gramáticas regulares embora bastante
simples, apresentam um poder generativo limitado. Para as CFGs por seu lado, embora adequadas
ao tratamento computacional, não se chegou ainda a acordo acerca da possibilidade serem suficientes para descrever todas as possı́veis construções de uma lı́ngua (Jurafsky e Martin, 2000). Os
formalismos baseados em restrições podem modelar fenómenos mais complexos do que as CFGs. Em
particular, as estruturas caracterı́sticas e a unificação oferecem uma forma elegante de descrever
propriedades que seriam difı́ceis de representar usando os mecanismos das CFGs. As gramáticas
baseadas em unificação permitem codificar a recursividade nas estruturas de caracterı́sticas. Foi
demonstrado que os formalismos pertencentes à classe de gramáticas moderadamente sensı́veis
ao contexto, são fracamente equivalentes. As gramáticas TAG, CCG, LIG e HG são exemplos de
gramáticas fracamente equivalentes.
A segunda parte deste capı́tulo aborda as aproximações utilizadas no tratamento da lı́ngua
natural ao nı́vel sintáctico. Para as gramáticas livres de contexto, são conhecidos algoritmos de
complexidade polinomial, tais como o algoritmo CKY de Cocke, Kasami e Younger (1965, 1967) e
o de Earley (1970). Todos os algoritmos que operam com as CFGs estão relacionados com estes
dois de alguma forma. No que diz respeito à complexidade, esses algoritmos são
, sendo o
tamanho da frase, existindo um factor multiplicativo
, que depende do tamanho da gramática
, expresso em termos de regras e do número de sı́mbolos não terminais. Conclui-se que a análise
sintáctica de lı́ngua natural, especialmente a lı́ngua escrita, embora também a falada, pode ser
tratada por aproximações relativamente simples.
A última parte do capı́tulo descreve alguns analisadores desenvolvidos e orientados para o processamento de texto não restrito. É necessário algum tipo de analisador que permita lidar com
suficientes casos, de forma a permitir o processamento de corpora não restrito, mantendo um baixo
ı́ndice de erro para a significância estatı́stica. Os analisadores descritos apresentam bons resultados, contudo exigem que lexicógrafo tenha de estar com atenção aos resultados produzidos. Observase que é importante conceber e implementar módulos integráveis, de forma a que a construção de
ferramentas computacionais seja facilitada, permitindo ajustes necessários à obtenção de resultados mais fiáveis.
Este capı́tulo aborda a análise por folhas tal como foi concebida e conduzida por Hagège (2000),1
cuja finalidade foi testar e demonstrar a possibilidade de separação entre propriedades linguı́sticas
e a informação que é utilizada pelos algoritmos, e proceder à extracção de sintagmas nominais
de corpora não restrito. Este trabalho enquadra-se na análise sintáctica de superfı́cie e orientase para o processamento de textos não restritos, isto é, que não foi previamente tratado, podendo
conter erros, pausas preenchidas e agramaticalidades. Em termos de abordagem, foca a utilizaç ão
do conhecimento linguı́stico e a manutenção da declaratividade, indicando uma visão diferente e
uma reformulação do conceito habitual de gramática, de forma a facilitar a sua manipulação e
actualização.
Este trabalho constituiu um dos pontos de partida para o trabalho realizado no âmbito desta
tese, constituindo também uma importante base para a sua avaliação. Este capı́tulo aborda a metodologia empregue para a caracterização de uma lı́ngua e descreve um conjunto de regras produzidas
com essa metodologia, que constituem a fonte declarativa para um algoritmo de análise por folhas.
Descreve-se também o protótipo de análise por folhas AF, desenvolvido por Hagège (2000), no que
diz respeito ao funcionamento, tipos de dados que processa, resultados que produz e algoritmo empregue. O capı́tulo descreve ainda o processo de extracção de sintagmas nominais a partir de texto
e apresenta alguns resultados relativos à avaliação deste processo.
3.1 A descrição linguı́stica
Esta secção descreve a metodologia empregue por Hagège na construção de descrições
linguı́sticas que, sendo inscrita no paradigma 5P, permite compreender melhor os pontos de convergência ou divergência relativamente às tendências apresentadas no capı́tulo anterior.
O paradigma 5P tenta aplicar o método cientı́fico ao estudo da linguagem natural (Bès et al.,
1999). No quadro do 5P são definidos cinco nı́veis, tal como mostra a figura 3.1 , que constituem
uma plataforma para o processamento da lı́ngua natural. Os processos (P5) correspondem à parte
de implementação e realizam o trabalho efectivo sobre as sequências linguı́sticas, utilizando os
algoritmos desenvolvidos. A fonte declarativa utilizada pelos algoritmos não é necessariamente
constituı́da pela formalização das caracterı́sticas linguı́sticas (P2) ou pelas suas generalizações (P3),
mas sim calculável a partir destas (Hagège e Bès, 1999). Isto leva a uma clara separação entre a
1 Uma vez que grande parte das referências utilizadas se referem a (Hagège, 2000), será referido apenas o autor Hagège
em substituição destas.
CAPÍTULO 3. ANÁLISE SINTÁCTICA POR FOLHAS
28
Figura 3.1: Constituição da metodologia 5P.
nc s
det : algum : cada : qualquer : certo1 : nenhum : tanto :
q3 : tal : outro
Um nome comum no singular, exige um determinante dentro do snn.
mesmo
dem : artd
É sempre necessário que um artigo definido ou demonstrativo, contenha a categoria mesmo, dentro de um snn. (Ex. o/este mesmo rapaz).
det
nenhum
Não se permite a presença conjunta de um determinante e de um nenhum.
(Ex. *este/um/o nenhum (rapaz)).
Figura 3.2: Exemplos de propriedades de existência, usados para definir o sintagma nominal nuclear para o português.
especificação de fenómenos linguı́sticos e a sua utilização. Este aspecto é importante para que a
formalização das caracterı́sticas da lı́ngua não seja influenciada por pormenores de implementação.
3.1.1
Caracterização da lı́ngua
A caracterização de uma lı́ngua é realizada, no quadro do paradigma 5P, através de um conjunto de propriedades que expressam as caracterı́sticas descritivas das expressões dessa lı́ngua
(Bès et al., 1999).2 As propriedades são estipulações que indicam o comportamento de unidades
linguı́sticas dentro de sequências da lı́ngua, podendo ser vistas como axiomas que definem modelos.
Modelos são sequências de sı́mbolos que satisfazem um conjunto de propriedades. Estas propriedades são formuladas através do uso de categorias3 e identificadores de modelos. O conjunto de
propriedades, designado por descrição da lı́ngua, não forma uma gramática uma vez que as propriedades não têm uma relação de ordem entre elas, são desprovidas de qualquer noção algorı́tmica e
cada propriedade é independente (Hagège e Bès, 1999). A figura 3.2 apresenta alguns exemplos de
2 Neste
contexto, expressões de uma lı́ngua correspondem a sequências de unidades lexicais ou palavras, nessa lı́ngua.
morfossintáctica de uma palavra.
3 Classificação
3.1. A DESCRIÇÃO LINGUÍSTICA
29
modele top(ph). % Definição do modelo de topo
remplace(n,[nc,npr,nadj]).
remplace(nadj,[nadj s,nadj p]).
remplace(nc,[nc s,nc p]).
est modele(m nn).
est modele(m nn12).
bloc(m an1,m nn,2,2,[n]).
feuille( ,’nc’,m nc,1,1,[]).
Figura 3.3: Excerto da definição linguı́stica utilizada pelo AF.
propriedades.
Definem-se três tipos de propriedades: propriedades de existência, linearidade e flechagem,
que expressam, respectiva e independentemente: a existência de entidades linguı́sticas num modelo (categorias ou identificadores de modelo); as relações de ordem linear entre essas entidades; e
as relações de flechagem (ou de dependência) entre essas entidades. A relações de dependência permitem identificar e representar relações semânticas entre e dentro de unidades sintagmáticas. As
estruturas linguı́sticas utilizadas pelos algoritmos não são directamente constituı́das por estas propriedades, mas sim deriváveis a partir delas e das suas generalizações. Em particular, a gramática
que o AF utiliza, é derivável deste conjunto de propriedades.
3.1.2
Fonte declarativa do analisador por folhas
As estruturas que o AF identifica são designadas por modelos, que, tal como foi visto na subsecção anterior, se definem a partir de um conjunto de propriedades.
O comportamento do analisador é definido por uma gramática cujas regras são descritas sob
a forma de predicados escritos em Prolog. Essas regras são de 6 tipos diferentes: definição de
modelos, definição do modelo de topo, folhas, blocos, preferências e hierarquia de categorias. A figura
3.3 mostra um excerto da gramática utilizada no AF. Note-se que ao longo de toda esta secção, os
predicados serão mencionados tal como se encontram definidos na gramática utilizada pelo AF.
Identificação dos modelos
As regras utilizadas pelo AF definem propriedades e impõem restrições sobre modelos e categorias. Tanto os modelos como as categorias podem ser utilizados de forma indistinta em determinados tipos de regras, pois a diferença entre eles reside no facto de um modelo poder conter modelos
ou categorias e uma categoria não. O predicado est modele é utilizado para indicar as etiquetas
da gramática que são modelos, e todas as que não são contempladas por este predicado, são consideradas categorias. Por exemplo, a regra est modele(m nn) indica que m nn (modelo nominal
nuclear) é um modelo.
A inı́cio da análise é feito com base num modelo inicial, que corresponde à estrutura linguı́stica
que a gramática identifica, e de uma forma geral corresponde à frase. O predicado modele top é
CAPÍTULO 3. ANÁLISE SINTÁCTICA POR FOLHAS
30
usado para a sua declaração e utiliza-se uma única vez em toda a gramática. Por exemplo, para
definir o modelo ph como sendo de topo, é utilizada a expressão modele top(ph).
Comportamento de categorias e modelos
O comportamento das categorias e dos modelos é definido à custa de um conjunto de regras designadas por folhas e blocos, que tendo uma sintaxe muito próxima, distinguem-se essencialmente
pelas entidades a que estão ligadas. Uma folha encontra-se ligada a uma categoria maximal4 e
define o seu comportamento dentro de um modelo. Um bloco por sua vez, encontra-se ligado a um
modelo e indica o seu comportamento dentro de outro modelo, onde pode ocorrer. Dada uma ca
tegoria e um modelo , se ocorre dentro de , existirá uma e uma só folha que descreverá o
comportamento da categoria dentro do modelo . De igual forma, dados dois modelos
e
, se
ocorre dentro do modelo
, existe um e um só bloco que descreve o seu comportamento dentro
do modelo
.
A folha que descreve o comportamento de uma categoria dentro de um modelo , cont ém
informação acerca da forma como inicia ou termina . Uma categoria pode iniciar sempre (1),
nunca (0), ou por vezes (2), um modelo em que ocorre; e pode terminar esse modelo por vezes (2),
sempre (1) ou nunca (0). No caso da categoria não terminar sempre o modelo, a folha correspondente
deve ter também informação acerca das categorias ou modelos que se podem seguir. A lista de
categorias ou modelos que podem seguir uma dada categoria, pode conter categorias n ão maximais.
Os blocos contêm o mesmo tipo de informação, embora aplicado ao comportamento de um modelo
dentro de outro.
O exemplo seguinte indica a forma como a categoria artd p (artigo definido, no plural) ocorre
dentro do modelo m nn (modelo nominal nuclear). A categoria artd s começa por vezes (2) o modelo
m nn, nunca o acaba (0) , e pode ser seguida por nc (nome comum), adj (adjectivo) etc. As etiquetas
nc e adj correspondem a categorias não maximais, e são generalizações de categorias como nc1 s,
nc1 p (nomes comuns contáveis, singular e plural), nc2 s (nomes comuns massivos), etc.
feuille(’artd p’, m nn, 2, 0, [ nc, nadj, adj, ... ]).
O exemplo seguinte apresenta um bloco que define o comportamento do modelo m nn (modelo
nominal nuclear) dentro do modelo ph (frase). Observa-se que o modelo m nn pode começar (2) e pode
terminar (2) o modelo ph, isto é, pode ocorrer em qualquer posição do modelo ph. O bloco indica
também que m nn pode ser seguido pelos modelos m an2q, m an2nq (modelos adjectivais nucleares
do tipo 2, quantificáveis e não quantificáveis), etc, dentro do modelo ph. Note-se que não existe para
os modelos, o equivalente às categorias não maximais, impedindo, por exemplo, de se poder utilizar
m an2 como generalização de m an2 e m an2nq.
bloc(m nn, ph, 2, 2, [ m an2q, m an2nq, ... ]).
4 Uma categoria maximal é tal que, considerando o conjunto de traços morfossintácticos de uma hierarquia de traços,
não se pode atribuir mais nenhum traço a essa categoria (Hagège, 2000, pág. 63). Por exemplo: artd s (artigo definido no
singular) é considerada uma categoria maximal, contudo a categoria artd não o é.
3.1. A DESCRIÇÃO LINGUÍSTICA
31
remplace(n, [nc, npr, nadj]).
remplace(nc, [nc1, nc2]).
remplace(nc, [nc s, nc p]).
remplace(nc1, [nc1 s, nc1 p]).
remplace(nc2, [nc2 s, nc2 p]).
remplace(nc s, [nc1 s, nc2 s]).
remplace(nc p, [nc1 p, nc2 p]).
Figura 3.4: Regras que produzem uma hierarquia de categorias para os nomes.
Figura 3.5: Diagrama representativo de uma hierarquia de categorias para os nomes.
Hierarquia de categorias
As categorias podem ser organizadas numa estrutura hierárquica utilizando para esse efeito
o predicado remplace. Esta estrutura hierárquica, pode ser vista como um grafo dirigido (DAG).
No nı́vel mais baixo da hierarquia encontram-se as categorias maximais e nos restantes nı́veis
encontram-se as categorias não maximais. O exemplo seguinte mostra que um nome (n) pode ser
um nome comum (nc), um nome próprio (npr), ou um nome/adjectivo (nadj).
remplace(n, [nc, npr, nadj]).
O exemplo da figura 3.4 mostra um extracto da hierarquia de categorias para os nomes. A figura
3.5 mostra uma representação gráfica das relações definidas no exemplo. As categorias maximais
e não maximais que constem da hierarquia de categorias, podem ser usadas na lista de elementos
seguintes das folhas e dos blocos, tal como foi anteriormente dito.
Preferências
A utilização de preferências permite fazer a escolha de certas categorias em detrimento de outras, quando consideradas em determinado contexto. Este mecanismo permite reduzir as ambiguidades tanto ao nı́vel das categorias como ao nı́vel dos modelos. A sua utilização no AF é facultativa,
CAPÍTULO 3. ANÁLISE SINTÁCTICA POR FOLHAS
32
pelo que a análise pode ser realizada sem considerar esta informação, originando assim um conjunto
mais alargado de possı́veis resultados. Uma das consequências da utilização das preferências é a
possı́vel redução da ambiguidade ao nı́vel da classificação das palavras, no caso da informação analisada pelo AF não se encontrar já desambiguada do ponto de vista morfossintáctico. A gramática
permite indicar quatro tipos de preferências:
em qualquer contexto ou dentro de um dado modelo;
para uma unidade lexical, em qualquer contexto ou dentro de determinado modelo;
à direita de um modelo;
à direita de um modelo, quando a palavra em análise possui uma determinada categoria.
Preferência dentro de um modelo. A forma mais simples de indicar uma preferência é através
do predicado pref cat ds mod. O exemplo seguinte indica que, se a análise chegar a um estado
tal que o modelo superior5 seja um modelo nominal nuclear (m nn), as categorias nc1 s e adj3 s
estiverem associadas à unidade lexical actual e for possı́vel produzir um resultado tanto para o
primeiro como para o segundo caso, vai-se preferir o resultado que incluir a categoria nc1 s.
pref cat ds mod(nc1 s, adj3 s, m nn).
Preferência considerando a unidade lexical. O predicado pref cat sig é utilizado para o
caso da preferência só se aplicar a determinada palavra ou unidade lexical. O exemplo seguinte indica que, sempre que o resultado na análise incluir duas hipóteses em que ocorre a palavra “caso”,
dentro do modelo m nn (modelo nominal nuclear), com as classificaç ões nc1 s (nome comum, singular) e conj (conjunção), se deve eliminar a segunda.
pref cat sig([caso,nc1 s],[caso,conj],m nn).
Preferência após um modelo. O predicado pref mod suiv é utilizado para indicar a preferência entre dois modelos, depois da ocorrência de determinada categoria ou modelo, designado
por modelo anterior6 . O exemplo seguinte indica que se prefere o modelo m an2q (modelo adjectival
quantificado) ao modelo m nn (modelo nominal nuclear), após ocorrer m prepn (modelo preposicional
nuclear).
pref mod suiv(m an2q,m nn,m prepn).
5 O modelo superior é o último modelo aberto que ainda não foi fechado, isto é, o modelo dentro do qual a análise está a
ser efectuada. Por exemplo, imediatamente após o inı́cio da análise, o modelo superior fica a ser o modelo de topo.
6 Durante a análise, o modelo anterior corresponde ao último modelo fechado.
3.2. AF - PROTÓTIPO DE ANÁLISE POR FOLHAS
33
Figura 3.6: Forma de produção de informação adequada à entrada do AF.
Preferência após um modelo, tendo em consideração a categoria da palavra. É também
permitido indicar uma preferência tendo em consideração, não só a categoria ou modelo anterior,
mas também a unidade lexical actual. Para isso, é utilizado o predicado pref mod suiv cat. A
regra apresentada no exemplo seguinte indica que se prefere o modelo m an2nq ao modelo m nn,
após o fecho do modelo copv n, se a categoria gramatical da palavra actual for nc1 p.
pref mod suiv cat(m an2nq, m nn, copv n, nc1 p).
3.2 AF - Protótipo de Análise por folhas
O AF é um protótipo de análise sintáctica de superfı́cie desenvolvido no âmbito do doutoramento de Hagège (2000). Este analisador permite identificar constituintes sintácticos presentes
num texto e estabelecer relações sintácticas dentro e entre esses constituintes. Em particular, foi
utilizado para identificar sintagmas nucleares (ver secção 3.3.1) e estabelecer a flechagem no interior e entre esses sintagmas nucleares. Esta secção descreve o funcionamento do AF, tipo de dados
que processa, tipo de análise que efectua e o algoritmo que utiliza.
3.2.1
Funcionamento
De forma a produzir os dados na forma de entrada utilizada pelo AF, a partir de um documento,
é necessário efectuar o processamento morfossintáctico desse documento. A estratégia seguida para
esta fase, ilustrada na figura 3.6, consistiu em separar o texto em unidades lexicais, fazer a sua
anotação morfossintáctica, adaptar as etiquetas previamente atribuı́das através de um tratamento
pós-análise morfológica e, caso fosse necessário, desambiguar os resultados obtidos. O resultado
produzido na fase de pós-análise morfológica corresponde à entrada do analisador sintáctico. No
âmbito do trabalho de Hagège, a classificação morfossintáctica foi realizada pelo analisador morfológico SMORPH (Aı̈t-Mokhtar, 1998). O tratamento pós-análise morfológica foi efectuado com a
ferramenta MPS, que uniformiza as etiquetas, aplica um conjunto de regras morfossint ácticas e
divide o texto em frases.
CAPÍTULO 3. ANÁLISE SINTÁCTICA POR FOLHAS
34
Os dados que o AF recebe consistem em sequências de frases. Cada frase pode ser constituı́da
por várias alternativas, que correspondem a diferentes segmentações em termos de unidades lexicais. A análise sintáctica é feita com o auxı́lio de uma operação designada por folhagem, que
consiste em associar para cada unidade lexical o conjunto das possı́veis regras a aplicar, com base
na suas classificações morfossintácticas. Esta operação é efectuada por um utilitário designado por
Jonction que produz, a partir da saı́da do MPS, um conjunto de predicados Prolog.
3.2.2
Dados de entrada - tratamentos
Os dados processados pelo AF consistem em texto segmentado em frases, cada uma delas constituı́da por unidades lexicais etiquetadas morfossintaticamente, com ambiguidade ou não. Uma
frase pode ser segmentada em diferentes unidades lexicais. Assim, cada frase pode ser constituı́da
por uma ou várias hipóteses de segmentação, que correspondem a diferentes sequências de unidades lexicais. A estrutura que representa uma unidade lexical, é composta por uma lista das suas
possı́veis classificações. A figura 3.7 apresenta um exemplo de uma frase que segue essa estrutura.
[ F78
[ A1
’Depois’, [’depois’,’adv’],
’adormecem’, [’adormecer’,’vc’],
’cansadas’, [’cansar’,’ppas’ , ’cansado’,’adj1 p’],
’...’, [’...’,’eliminer’]
] A1
[ A2
’Depois’, [’depois’,’adv’],
’adormecem’, [’adormecer’,’vc’],
’cansadas’, [’cansar’,’ppas’ , ’cansado’,’adj1 p’],
’..’, [’..’,’eliminer’],
’.’, [’.’,’eliminer’]
] A2
] F78 %fim da frase número 78
Figura 3.7: Exemplo de uma frase com duas alternativas.
3.2.3
Resultados produzidos
Os resultados produzidos são o conjunto de sequências que correspondem à análise de cada
frase. De uma forma geral, a análise produzida para cada frase consiste no conjunto de uma ou
mais possibilidades de análise, em que cada modelo aberto foi também fechado. Por outro lado, se
não for possı́vel produzir uma análise total, obtém-se uma análise parcial até ao ponto em que a
análise falhou e neste caso alguns modelos permanecerão abertos.
Para cada frase, pode também ser produzido um conjunto de relações entre cada unidade lexical
do texto, processo que se designa por flechagem. A figura 3.8 mostra o resultado da an álise de
uma frase em que se inclui a flechagem e a figura 3.9 mostra um diagrama representativo desse
resultado. Os argumentos do predicado fl são os ı́ndices das unidades lexicais presentes na frase,
no exemplo da figura fl(1,5) indica que a unidade lexical as flecha sobre raparigas.
3.2. AF - PROTÓTIPO DE ANÁLISE POR FOLHAS
35
Análise:
ph(
m nn (
as(artd)
minhas(poss)
m an1 (
m advn1 (
muito(adv2 1)
) m advn1
belas(adj1 p)
) m an1
raparigas (nc1 p)
) m nn
) ph
Flechagem:
fl(1,5). # as
raparigas
fl(2,5). # minhas
raparigas
fl(4,5). # belas
raparigas
fl(3,4). # muito
belas
Figura 3.8: Análise da frase “as minhas muito belas raparigas”, incluindo flechagem.
Figura 3.9: Representação gráfica da análise de uma frase, incluindo flechagem.
3.2.4
Algoritmo
Em termos gerais, o algoritmo da análise por folhas consiste em analisar cada um dos elementos
que constituem a frase, através da concatenação sucessiva de folhas, cada uma das quais impondo
restrições à concatenação que se sucederá. A figura 3.10 mostra o diagrama de funcionamento do
algoritmo. A cada instante são mantidas listas com os modelos que se encontram abertos, conjunto
das categorias e modelos que se podem seguir. A análise consiste em concatenar unidades lexicais
com a categoria associada, abrir e fechar modelos, e a cada concatenação introduzir uma flechagem
ou instanciar uma flechagem já existente. No fim, se existirem várias análises possı́veis, selecciona uma delas. A operação descrita como criar folhas, consiste em, utilizando os padrões de folhas
(derivados das propriedades linguı́sticas), associar à palavra corrente as folhas correspondentes às
suas classificações morfossintácticas. A operação seleccionar folhas candidatas consiste em seleccionar, do conjunto das folhas associadas à palavra, o conjunto de todas as folhas compatı́veis com
o estado actual da análise. No caso se existirem duas folhas associadas à mesma categoria, dá-se
preferência à folha cujo modelo é o modelo actual (princı́pio do modelo mais comprido possı́vel). A
36
CAPÍTULO 3. ANÁLISE SINTÁCTICA POR FOLHAS
Figura 3.10: Diagrama de funcionamento da análise por folhas.
operação Tratar Folha, consiste em proceder a eventuais aberturas e fechos de modelos de acordo
com a folha que se está a tratar, actualizar lista de modelos abertos, concatenar a unidade lexical
e a categoria a que se refere a folha em tratamento à análise actual, actualizar lista de categorias
seguintes, tratar da flechagem da unidade lexical, efectuar eventuais fechos de modelos e actualizar
a lista de modelos abertos.
3.2.5
A questão da ambiguidade
A ambiguidade, no contexto da análise por folhas, pode existir tanto ao nı́vel das categorias
como ao nı́vel dos modelos. A ambiguidade entre categorias é uma consequência da ambiguidade da análise morfológica, isto é, ao nı́vel morfossintáctico pode ser atribuı́da mais do que uma
classificação a cada unidade lexical. A ambiguidade entre modelos é introduzida pelo processo de
Jonction e deve-se ao facto de determinadas categorias poderem ocorrer em mais do que um modelo.
Este caso de dupla ambiguidade pode ser inicialmente entendido como um problema que se coloca
à análise. Contudo, a aproximação utilizada, que consiste em delimitar as frases de um texto em
sintagmas nucleares, funciona como um prolongamento da etiquetagem morfossintáctica (Hagège,
2000). A realização da etapa de desambiguação entre a análise morfológica e a análise sintáctica,
contribui para uma redução da ambiguidade nos resultados finais.
3.2.6
Casos de tratamento particular
O tratamento de textos reais, em especial utilizando um léxico reduzido, implica a identificação
e tentativa de tratamento das palavras que não constam desse léxico. Por outro lado, a lı́ngua
apresenta um conjunto de fenómenos de difı́cil tratamento computacional. Os tópicos seguintes
descrevem as opções escolhidas por Hagège relativamente ao tratamento destes casos particulares.
3.2. AF - PROTÓTIPO DE ANÁLISE POR FOLHAS
37
Palavras desconhecidas
É na fase da análise morfológica que estas palavras são detectadas e etiquetadas como desconhecidas. No caso particular do trabalho de Hagège, estes resultados são depois manipulados na
fase da pós-análise morfológica, através de regras de recomposição, de forma a facilitar a tarefa da
análise sintáctica. Determinadas sequências de palavras desconhecidas em combinação com unidades lexicais circundantes, são muitas vezes candidatas a nomes próprios e, nesse caso, o tratamento
fica resolvido antes da entrada no analisador sintáctico. No entanto, a entrada do analisador pode
ainda conter palavras desconhecidas que têm de ser tratadas, de forma a não parar a análise. Esse
tratamento é efectuado ao nı́vel da gramática e consiste em indicar, entre outras coisas, que uma
palavra desconhecida, pode ocorrer dentro de qualquer modelo e seguida por qualquer outro modelo
e que qualquer modelo pode ser seguido de um modelo desconhecido, constituı́do pela palavra ou
sequência de palavras desconhecidas.
feuille(’inconnu’, m inc, 1, 1, []).
feuille(’inconnu’, VAR1, 0, 2, [VAR1]).
Coordenação
O tratamento da coordenação coloca vários problemas às propriedades dos sintagmas nucleares.
O seu tratamento poderá implicar uma revisão da actual noção de núcleo, dado que a coordenação
pode levar à criação de dois ou mais núcleos num sintagma nuclear. O limitado conhecimento do
contexto anterior da análise, em determinado instante, impede de determinar, em muitos casos, o
que deve ser coordenado com o quê. O tratamento da flechagem não se encontra adaptado aos casos
de coordenação, pelo que terá de ser também revisto (Hagège, 2000). No contexto dos trabalhos de
Hagège, este problema foi minimizado de forma a não impedir a análise automática. A estratégia
usada para efectuar correctamente a extracção de sintagmas nominais a partir da análise, consistiu
em contornar a coordenação, usando, tanto informação presente na gramática, como como fazendo
parte do seu tratamento ao nı́vel do algoritmo.
As duas regras seguintes permitem dar conta da coordenação, tanto externa aos sintagmas
nucleares, como dentro dos sintagmas nucleares:
feuille(coord, m conj, 1, 1, []).
feuille(coord, SUPERIOR, 0, 0, [SEGUINTES]).
A primeira folha indica que a unidade lexical etiquetada de coord, constituirá sozinha o modelo
m conj. O modelo m conj pode ocorrer em ph, e nesse contexto pode seguir ou ser seguido por
qualquer outro modelo. A segunda folha indica que a categoria coord pode ocorrer em qualquer
modelo, e ser seguida por qualquer outra categoria ou modelo. Note-se porém que, a categoria
coord não pode começar nem terminar um modelo em que ocorra, excepto o modelo m conj.
Além das duas folhas apresentadas anteriormente, (Hagège, 2000) indica que o analisador
efectua um conjunto de operações adicionais quando se encontra perante um caso de possı́vel
coordenação. Assim, sempre que se encontra uma unidade lexical, etiquetada como sendo
coordenação, são aplicadas as seguintes regras:
CAPÍTULO 3. ANÁLISE SINTÁCTICA POR FOLHAS
38
Figura 3.11: Cadeia de processamento do sistema de extracção de SN.
1. A folha anterior nunca fecha o modelo. Neste caso será utilizada a segunda folha, fazendo com
que a variável SUPERIOR seja instanciada com o modelo corrente.
2. A folha anterior fecha sempre o modelo. Neste caso, verifica-se se a folha que segue a
coordenação pode pertencer ao modelo corrente. Em caso afirmativo utiliza-se novamente
a segunda folha, caso contrário utiliza-se a primeira folha.
3. A folha anterior fecha por vezes o modelo em que ocorre. Neste caso, tamb ém se verifica se
a folha que segue a coordenação pode pertencer ao modelo corrente. No caso de não poder
pertencer utiliza-se a primeira folha.
3.3 Extracção de sintagmas nominais
O trabalho realizado por Hagège (2000) seguiu duas linhas de orientação. A primeira linha
compreende um aspecto descritivo, segundo a qual formaliza descrições para as construções da
lı́ngua portuguesa. A segunda linha compreendeu o tratamento dessas construções, tratamento
esse que se fixou no objectivo de reconhecer os sintagmas nominais presentes num texto. O processo
de reconhecimento de sintagmas nominais (SNs) foi realizado numa cadeia de tratamentos (ver
figura 3.11 ), cuja última etapa consistiu em construir sintagmas nominais a partir de elementos
mais simples, definidos como sintagmas nucleares. Os próximos tópicos apresentam os resultados
obtidos na avaliação efectuada por Hagège, usando a cadeia de tratamentos para a extracção de
SNs.
3.3.1
Sintagma Nuclear
Hagège define sintagmas nucleares como domı́nios linguı́sticos, onde se verificam determinadas
propriedades, e se situam entre a unidade lexical e o conceito tradicional de sintagma, designados
adiante apenas por sintagmas. Normalmente, os sintagmas nucleares são constituintes dos sintagmas tradicionais mas, por vezes, podem ser equivalentes. O exemplo seguinte faz a divis ão de uma
frase, que neste caso corresponde a um sintagma nominal, em sintagmas nucleares.
3.3. EXTRACÇÃO DE SINTAGMAS NOMINAIS
39
(Esta bela amiga) (portuguesa) (do Pedro)
Neste exemplo, a primeira demarcação corresponde a um sintagma nominal nuclear, a segunda a
um sintagma adjectival nuclear e a terceira a um sintagma preposicional nuclear. Cada um desses
sintagmas nucleares organiza-se em torno de um núcleo ou cabeça lexical. Neste caso, os núcleos dos
sintagmas nucleares são, respectivamente, o nome amiga, o adjectivo portuguesa e o nome próprio
Pedro.
O motivo que leva à utilização dos sintagmas nucleares prende-se com a existência de propriedades particulares no interior destes domı́nios sintácticos que são muito mais fáceis de descrever
e ligar do que os sintagmas. A análise de uma frase pode consistir, por um lado, na delimitação
de sintagmas nucleares aı́ presentes e, por outro, em colocar em evidência as relações que existem
entre esses sintagmas nucleares.
Os sintagmas nucleares utilizados são em tudo semelhantes aos sintagmas minimais utilizados
por Giguet (1998) e também aos chunks de Abney (1991). Os sintagmas nucleares apresentam
uma caracterı́stica que os distingue dos sintagmas minimais e dos chunks, que é o facto de que
um sintagma nuclear além de ser constituı́do por categorias poder também conter outros sintagmas
nucleares. Este caso está presente no exemplo seguinte, em que o sintagma nominal nuclear contém
um sintagma adjectival nuclear que por sua vez contém um sintagma adverbial nuclear.
( A ( ( ainda mais ) bela ) rapariga ) Os sintagmas nucleares constituem unidades prosódicas na frase, contrariamente aos sintagmas
(Hagège, 2000).
3.3.2
O extractor
A tarefa de extracção de SNs constitui uma forma de utilização directa da análise produzida
pelo AF. Hagège desenvolveu uma aplicação, que recebe como entrada as análises obtidas do AF,
contendo sintagmas nucleares, e produz um ficheiro em formato HTML constituı́do pelos SN extraı́dos para cada frase.
A expressão regular utilizada para a extracção dos SNs é a seguinte:7
Sintagma Nominal = NN COMPL*
NN = m nn | m nnt | mnn rel
COMPL = CP1 + (COORD CP2)* CP1*
CP1 = m an2nq | m an2q | mpp n | m prepn
COORD = coord | virg
CP2 = m prepn | m an2 unique.8
Como se pode verificar, a extracção de SNs é feita por meio da identificação de sintagmas nucleares, em particular de sintagmas nominais nucleares, sintagmas adjectivais nucleares e sintagmas
7 Os
elementos seguintes encontram-se descritos no apêndice A desta dissertação.
adjectivais do tipo 2 constituı́dos por uma única palavra.
8 Modelos
CAPÍTULO 3. ANÁLISE SINTÁCTICA POR FOLHAS
40
preposicionais nucleares. De uma forma geral, define-se SN como sendo uma sequ ência composta de,
pelo menos, um sintagma nominal nuclear (que constitui a cabeça do SN) e todos os complementos
e/ou modificadores dessa cabeça, que são por sua vez os sintagmas preposicionais nucleares e adjectivais nucleares, bem como os complementos e/ou modificadores destes últimos. Assim, designa-se
por complemento de um SN, todo o sintagma adjectival nuclear ou preposicional nuclear que é complemento ou modificador da cabeça do SN ou de um dos núcleos do sintagma nuclear complementar
dessa cabeça (Hagège, 2000).
3.3.3
Condições de avaliação
A avaliação foi feita com base na confrontação de resultados obtidos na extracção de SN efectuada pela cadeia de tratamentos apresentada na figura 3.11, e na extracção de SN feita manualmente
seguindo os mesmos critérios.
O corpus usado para a avaliação é constituı́do por cerca de 4000 segmentos lexicais e é composto
por textos retirados da Constituição Portuguesa, jornais e teses cientı́ficas.
Foram realizados dois tipos de avaliação:
REAL, avaliação de resultados obtidos pela cadeia de tratamentos, sem qualquer tipo de
intervenção exterior em qualquer fase desse tratamento.
IDEAL, avaliação sobre texto bem etiquetado, desambiguado manualmente e no qual não
existem palavras desconhecidas (idealmente etiquetado). Para efectuar esta avaliação a partir
da saı́da produzida pelo MPS, procedeu-se à verificação manual da etiquetagem feita pelo
sistema, e sempre que necessário, fez-se uma correcção manual, de forma a obter uma correcta
etiquetagem sem ambiguidade.
As medidas de precisão e cobertura utilizadas de seguida, correspondem à sua definição habitual.
Assim, precisão é definida como sendo o número de respostas correctas, calculadas por um sistema, sobre o número total de respostas, dadas por esse sistema. Cobertura é definida como sendo
o número de respostas correctas, calculadas por um sistema, sobre o número de respostas correctamente esperadas.
3.3.4
Resultados da avaliação
Dos elementos obtidos por Hagège no âmbito da avaliação do AF, importa aqui mencionar apenas os que não se relacionam com a flechagem, dado que esta não é tratada no âmbito desta tese.
Assim, de forma a conhecer em que medida a cadeia de tratamentos permite identificar os SN
presentes no texto inicial, apresentam-se resultados relativos à verificação de existência de SN.
Apresentam-se também resultados relativos ao teor dos SN, isto é, em que medida se teve êxito a
extrair o SN de uma forma integral, ou de outra forma, se o elemento extraı́do corresponde a um
SN, apenas a uma parte do SN, ou inclui elementos adicionais.
No que diz respeito ao número de palavras desconhecidas pelo analisador morfológico: no conjunto de 3602 segmentos analisados, cerca de 5,25% de palavras são identificadas como desconhecidas. Por outro lado, na saı́da do MPS, que corresponde à entrada do AF, para um total de 3867
3.3. EXTRACÇÃO DE SINTAGMAS NOMINAIS
41
segmentos, 0,85% foram identificados como desconhecidos, 2,77% foram incorrectamente classificados e 20,04% tinham ambiguidade. Quanto à desambiguação em relação à categoria, o AF conseguiu
uma taxa de desambiguação próxima dos 94%.
Existência de SNs
Um SN considera-se correcto se, no texto tratado manualmente foi identificado um SN, tal que
um deles é uma sub-sequência do outro (eventualmente igual), isto é, um SN considera-se correcto
mesmo que o número de complementos seja insuficiente ou demasiado.
A tabela 3.1 apresenta de forma resumida os resultados relativos à identificação de SNs no
Existência de SN
Texto real
Texto classificado idealmente
Precisão
89,61%
96,12%
Cobertura
82,93%
89,42%
Tabela 3.1: Avaliação do quanto à existência de sintagmas nominais.
texto. A medida de precisão indicada na tabela, corresponde à percentagem de SN extraı́dos e
dados como correctos sobre o número total de SN extraı́dos pela cadeia de tratamento. A cobertura,
por seu lado, corresponde à percentagem de SN extraı́dos e dados como correctos, sobre o número
de SN identificados manualmente no texto.
Os erros relativos ao tratamento de texto idealmente anotado e desambiguado devem-se sobretudo ao tratamento insatisfatório da coordenação e a estruturas, que não tendo sido previstas, não
foram analisadas.
Teor dos SN
A partir dos SN extraı́dos, cuja cabeça lexical foi correctamente identificada, foi calculada: a
taxa de SNs cujo número de complementos é exactamente o esperado; a taxa de SNs demasiado
longos, para os quais a cadeia de tratamentos extraiu complementos que não são complementos
desses SNs; a taxa de SNs demasiado curtos, para os quais a cadeia de tratamentos não foi capaz de
extrair todos os complementos. A tabela 3.2 apresenta os resultados obtidos, que, como se verifica,
Teor dos SN
Texto real
Texto classificado idealmente
Completos
87,32%
89,78%
Demasiado longos
6,49%
6,73%
Curtos
6,19%
3,49%
Tabela 3.2: classificação quanto ao teor dos SNs correctamente identificados.
são muito semelhantes tanto no que respeita ao texto real como ao texto correctamente anotado e
desambiguado.
42
CAPÍTULO 3. ANÁLISE SINTÁCTICA POR FOLHAS
3.4 Sumário
Este capı́tulo foca os detalhes da análise por folhas, tal como foi concebida e realizada no âmbito
dos trabalhos de Hagège.
A primeira parte do capı́tulo descreve a gramática utilizada na análise por folhas, cujos elementos indicados à custa de: folhas – que definem o comportamento de categorias dentro de modelos;
blocos – que definem o comportamento de modelos dentro de outros modelos; hierarquia de categorias – que permitem organizar as categorias maximais e definir categorias não maximais, permitindo simultaneamente reduzir a dimensão das regras e torná-las mais claras. A gramática permite
também definir vários tipos de preferências que são utilizados posteriormente para seleccionar um
conjunto de resultados desejáveis do conjunto de resultados possı́veis.
A secção 3.2 descreve protótipo de análise por folhas AF. A análise que executa é caracterizada por ser simples, consistindo em sucessivas concatenações de elementos. Destacam-se alguns
casos de tratamento particular, como é a questão das palavras desconhecidas e da coordenação. O
tratamento da coordenação coloca vários problemas às propriedades dos sintagmas nucleares, em
particular porque a coordenação poderá levar à criação de dois núcleos. Nos trabalhos de Hagège
este problema é contornado usando mecanismos, tanto ao nı́vel da gramática como ao nı́vel do algoritmo.
Finalmente, descreve-se o processo de extracção de sintagmas nominais a partir de texto, que
se baseia na identificação de sintagmas nucleares, mais fáceis de identificar e descrever do que os
sintagmas tradicionais. Apresentam-se resultados sobre a avaliação deste processo.
Este capı́tulo descreve a gramática que serve de fonte de dados para o algoritmo de análise
sintáctica de superfı́cie do SuSAna, que será apresentado no próximo capı́tulo. Sendo derivada
da estrutura da gramática utilizada pelo AF, mostram-se as alterações efectuadas e descreve-se
a sua sintaxe e semântica. O capı́tulo indica de que forma a gramática do SuSAna permite uma
manipulação mais fácil da informação e um conjunto de restrições mais alargado, comparativamente à gramática do AF. Este capı́tulo apresenta também a relação da gramática do SuSAna com
gramáticas de outros formalismos, apresentando uma metodologia para conversão informação, de e
para, gramáticas livres de contexto.
4.1 Elementos da gramática
A gramática utiliza três tipos de estruturas: a estrutura bloco permite definir o comportamento
de modelos dentro de outros modelos; as preferências, opcionais, permitem impor restrições aos
resultados da análise com base em elementos probabilı́sticos; e uma hierarquia para os sı́mbolos
da gramática, que permite simplificar a escrita de regras e simultaneamente reduzir o tamanho da
gramática.
O formato que se utilizou para a representação da gramática é o XML. O formato XML é um
standard flexı́vel e adequado para a representação de dados, que se tem vindo a tornar cada vez
mais atraente devido ao conjunto de parsers e aplicações de validação, disponı́veis para várias plataformas. Esta opção vai também de encontro ao esforço tem sido conduzido no sentido pelo L F
no sentido de uniformizar o formato da informação. A figura 4.1 mostra o Definição do Tipo de
Documento (DTD) da gramática, constituı́do por quatro elementos básicos com que se descrevem as
propriedades de uma lı́ngua. O elemento topmodel não tem atributos e é utilizado para definir o
elemento de topo por omissão, uma única vez. A definição do comportamento da lı́ngua é feita apenas com três tipos de regras, que permitem especificar: a hierarquia dos modelos e das categorias,
o comportamento dos modelos dentro de outros modelos e as restriç ões à análise.
4.1.1
Modelos
As estruturas que o SuSAna identifica, a partir de um conjunto de propriedades, designam-se
por modelos. Uma sequência de sı́mbolos que satisfaz um conjunto de propriedades, constitui um
modelo para essas propriedades (Hagège, 2000). No contexto da análise sintáctica, considerando
como sı́mbolos as caracterı́sticas morfossintácticas das palavras, um modelo para um conjunto de
44
CAPÍTULO 4. GRAMÁTICA DO SUSANA
<?xml version="1.0" encoding="iso-8859-1"?>
<!ELEMENT LangSpec (topmodel,(superclass|block|preference)+)>
<!ELEMENT topmodel EMPTY>
<!ATTLIST topmodel name CDATA #REQUIRED>
<!ELEMENT superclass (subclass)*>
<!ATTLIST superclass name CDATA #REQUIRED>
<!ELEMENT subclass EMPTY>
<!ATTLIST subclass name CDATA #REQUIRED>
<!ELEMENT block (nextmod)*>
<!ATTLIST block
name
CDATA #REQUIRED
sup
CDATA #REQUIRED
start
(0|1|2) #REQUIRED
end
(0|1|2) #REQUIRED
>
<!ELEMENT nextmod EMPTY>
<!ATTLIST nextmod name CDATA #REQUIRED>
<!ELEMENT preference EMPTY>
<!ATTLIST preference
prefmod
CDATA #REQUIRED
discmod
CDATA #REQUIRED
supmod
CDATA #IMPLIED
prevmod
CDATA #IMPLIED
word
CDATA #IMPLIED
cat
CDATA #IMPLIED
confidance CDATA #IMPLIED <!-- float in [0-1] -->
>
Figura 4.1: DTD da gramática do SuSAna.
propriedades linguı́sticas, é uma sequência de descrições morfossintácticas que satisfazem essas
propriedades.
De forma a simplificar a notação, estendeu-se a noção de modelo, de forma a abranger também
as categorias morfológicas, que constituem a base da análise. Em oposição à utilização de folhas e
blocos, apresentada no capı́tulo 3 para descrever o comportamento das categorias dentro de modelos
e dos modelos dentro de modelos, na gramática do SuSAna é feita uma fusão entre folhas e blocos.
Assim, as categorias passam também a ser identificadas e tratadas como modelos, dando origem
à utilização dos termos modelo terminal e modelo não terminal para distinguir as categorias dos
modelos.
Na gramática aqui descrita, deixou de haver a necessidade de se utilizar o predicado est modele
(utilizado na gramática do AF) para distinguir as categorias dos modelos. A distinção entre modelos
terminais e não terminais é feita em tempo de execução, com base na informação presente nos
blocos: uma vez que os blocos especificam o comportamento de modelos dentro de modelos, para
verificar se um dado modelo m é terminal, basta verificar se algum bloco especifica comportamento
de outro modelo dentro de m; se isso acontecer m é não terminal. Esta possibilidade de deduzir o
tipo dos modelos elimina a redundância e a possı́vel incoerência de dados.
4.1. ELEMENTOS DA GRAMÁTICA
4.1.2
45
Modelo de topo
O modelo de topo indica o modelo pelo qual se inicia a análise e corresponde à estrutura
linguı́stica que se pretende analisar. Este modelo é definido pelo elemento topmodel, como se pode
verificar pelo DTD da gramática (figura 4.1). O elemento tem apenas um atributo, define o modelo de topo por omissão e é declarado apenas uma vez na gramática. Por exemplo, o identificador
sentence poderia ser utilizado para fazer a análise de frases, o identificador address seria usado
para identificar endereços e o identificador par poderia ser usado para processar par ágrafos. Este
elemento pode ser alterado em tempo de execução de forma a permitir fazer a análise de qualquer
estrutura linguı́stica, que seja definida pela gramática.
Em versões futuras da gramática, o elemento topmodel deverá passar a ser opcional pois pode
ser parcialmente calculado1 a partir das restantes regras presentes na gramática.
4.1.3
Comportamento dos modelos
A informação presente nos predicados folha e bloco, utilizados pelo AF para definir o comportamento das categorias e dos modelos, passou a estar incluı́da num único elemento. Embora continue
a haver uma distinção formal entre categorias e modelos, sendo que uma categoria é um modelo
terminal, o seu tratamento ao nı́vel do algoritmo é feito da mesma forma.
O comportamento de modelos dentro de outros modelos é descrito pelo elemento block. Os
atributos name e sup são obrigatórios e indicam que o modelo com nome name pode ocorrer dentro
do modelo sup. Os atributos start e end podem tomar os valores 0 (nunca), 1 (sempre) ou 2 (por
vezes) e indicam o modo como pode ser feita essa ocorrência. Por exemplo, o valor 2 no atributo
start indica que o modelo pode ocorrer no inı́cio, mas essa ocorrência não é obrigatória.
<!ELEMENT block
<!ATTLIST block
name
sup
start
end
(nextmod)*>
CDATA
CDATA
(0|1|2)
(0|1|2)
#REQUIRED
#REQUIRED
#REQUIRED
#REQUIRED>
O exemplo seguinte define a categoria ou modelo terminal arti s (artigo indefinido singular):
pode ocorrer dentro do modelo mpp n (modelo proposicional nuclear), embora nunca o possa começar
nem acabar. Note-se também que os modelos que o podem seguir são apenas: nc (nome comum),
nadj (nome/adjectivo), inconnu (palavra desconhecida).
<block name="arti s" sup="mpp n" start="0" end="0">
<nextmod name="nc"/>
<nextmod name="nadj"/>
<nextmod name="inconnu"/>
</block>
1 O seu cálculo consiste em percorrer todos os blocos da gramática e verificar quais os modelos que não ocorrem em nenhum
outro. De uma forma geral a gramática conterá apenas um modelo nestas condições. No caso de isso não acontecer pode ser
escolhido qualquer um destes modelos.
CAPÍTULO 4. GRAMÁTICA DO SUSANA
46
Além dos nomes de modelos, podem também ser utilizadas variáveis para designar conjuntos
de modelos. Este mecanismo resulta dos predicados em Prolog, usados na gram ática do AF, que se
continuou a utilizar apenas para manter a compatibilidade com os dados anteriores. No exemplo
abaixo, indica-se que a categoria coord (coordenação) pode ocorrer em qualquer modelo, embora não
o possa começar nem terminar, e que pode ser seguida, dentro desse modelo, por qualquer outro.
<block name="coord" sup="VARM" start="0" end="0">
<nextmod name="X"/>
</block>
Uma forma mais elegante e clara de se indicarem conjuntos de modelos evitando a utilizaç ão de
variáveis, consiste em utilizar a hierarquia de modelos. De notar que este método poderá conduzir
à criação de classes de modelos não relacionados, no caso de utilização abusiva, tornando assim as
regras mais confusas. Por exemplo, a definição da classe all, na hierarquia de modelos, como sendo
uma etiqueta genérica na qual se incluem todas as outras, permitirá indicar a regra anterior de
uma forma mais elegante:
<block name="coord" sup="all" start="0" end="0">
<nextmod name="all"/></block>
4.1.4
Hierarquia de modelos
A gramática permite definir hierarquias para os modelos, possibilitando a elaboração de regras
mais simples e abrangentes. Neste ponto a gramática sofreu uma evolução em relação à gramática
utilizada pelo AF, que apenas permite definir relações hierárquicas para os modelos terminais. A
possibilidade de definir hierarquias também para os modelos não terminais, possibilita a produção
de regras mais simples e a possı́vel redução de elementos nas regras.
As relações hierárquicas entre os modelos são definidas pelo uso do elemento superclass. O
exemplo seguinte indica que n (nome) pode ser: nc (nome comum), npr (nome próprio) nadj (ambiguidade nome/ adjectivo). Por sua vez, nc pode ser nc s (singular), nc p (plural), nc1 (nomes comuns
contáveis), nc2 (nomes comuns massivos). Note-se que o resultado pode ser representado como um
grafo dirigido, à semelhança da figura 3.5.
<superclass name="nc">
<subclass name="nc s"/>
<subclass name="nc p"/>
<subclass name="nc1"/>
<subclass name="nc2"/>
</superclass>
<superclass name="nc s">
<subclass name="nc1 s"/>
<subclass name="nc2 s"/>
</superclass>
<superclass name="nc1">
<subclass name="nc1 s"/>
<subclass name="nc1 p"/>
</superclass>
4.1. ELEMENTOS DA GRAMÁTICA
4.1.5
47
Preferências
As preferências, descritas pelo elemento preference, são um mecanismo que permite reduzir
o número de hipóteses de análise. Este tipo de regra permite seleccionar entre vários caminhos
possı́veis na análise. Os atributos prefmod e discmod, indicam o modelo que se prefere e o modelo
que se despreza (ver figura 4.1). O atributo confidance permite estabelecer qual o grau de confiança
da regra. Os restantes atributos são opcionais e limitam o contexto em que se aplica a restrição:
supmod indica o modelo dentro do qual se aplica, prevmod refere-se ao modelo anterior, word corresponde à palavra em análise e cat é a categoria que se está a analisar. Esta combinação de atributos
opcionais aumenta a flexibilidade e constitui uma melhoria em relação à gramática utilizada pelo
AF.
O atributo confidance pode ser utilizado para introduzir elementos probabilı́sticos na
gramática, a partir de observações em corpora. Este valor pertence ao intervalo
em que o
nı́vel de confiança equivale a dizer que a regra não tem qualquer valor. O nı́vel de confiança para a
preferência de um modelo sobre um modelo em determinado contexto, com base nas ocorr ências
em corpus, é definido como sendo
, com
o número de ocorrências do modelo nesse contexto. Note-se que se o valor obtido
se encontrar no intervalo , não se deve indicar uma preferência do modelo sobre o modelo
, mas sim do modelo sobre o modelo . Suponhamos que na análise de um corpus, em dado
contexto, a ocorrência de um modelo foi 80 e a ocorrência de um modelo foi 20. A preferência
do modelo sobre o modelo poderia ser definida com um grau de confiança .
- -
! "$#&%('*),+
./ $0
1
Os dois exemplos seguintes indicam duas preferências. O primeiro exemplo indica que, dentro de um modelo m nn (modelo nominal nuclear), o modelo nc1 p (nome comum singular) é preferı́vel ao modelo adj3 p (adjectivo do tipo 3 no plural)2 . O segundo exemplo indica que, dentro de
qualquer modelo, após ocorrer o modelo copv n (modelo de verbo copulativo nuclear), e quando a
classificação da palavra actual é todo p (pronome indefinido, plural), se prefere o modelo m nn ao
modelo m an2nq.
<preference prefmod="nc1 p" discmod="adj3 p" supmod="m nn" confidance="0.9"/>
<preference prefmod="m nn" discmod="m an2q" prevmod="copv n" cat="todo p"/>
A gramática utilizada pelo AF, define as preferências recorrendo a quatro tipos diferentes de
regras, de forma a contemplar os vários contextos de aplicação da preferência. Esta solução, além
de confusa, é também limitada, não suportando algumas restrições desejáveis. Por exemplo, para
indicar que se prefere uma categoria a outra em qualquer contexto, ou seja, dentro de qualquer modelo, utiliza-se o predicado pref cat ds mod e coloca-se um underscore3 no termo correspondente
ao modelo superior para que este possa ser instanciado com qualquer modelo. A gram ática do AF,
não permite, por exemplo, indicar a preferência de um modelo sobre o modelo , dentro de determinado modelo , tendo em consideração o modelo anterior , embora se possa indicar a preferência
de sobre em e a preferência de sobre após , caso sejam feitas independentemente. Na
gramática do SuSAna, as limitações mencionadas anteriormente encontram-se solucionadas.
2
2
3
3
2 (Hagège, 2000) refere que um adjectivo é do tipo 3, se puder ser núcleo de um sintagma nominal nuclear e não se puder
encontrar à esquerda de um núcleo nominal que qualifique. Exemplo: portuguesa.
3 O underscore em Prolog é utilizado como variável, que pode ser instanciada com qualquer elemento.
CAPÍTULO 4. GRAMÁTICA DO SUSANA
48
F
SN SV
F
Aux SN SV
F
SV
SN
det Nominal
Nominal
nome
Nominal
nome Nominal
SN
nomprop
SV
verbo
SV
verbo SN
Nominal
Nominal PP
Figura 4.2: Exemplo de uma mini-gramática em formato BNF.
4.2 Conversão de gramáticas
Como já foi anteriormente mencionado, a gramática desenvolvida, diverge das gramáticas livres de contexto usuais devido à possibilidade de representar preferências lexicais e hierarquias
para os modelos. A gramática permite mapear grande parte das restrições impostas pelas regras
de uma CFG nas estruturas dos blocos, obtendo assim uma gramática à qual poderá ser posteriormente adicionada uma hierarquia para os sı́mbolos e um conjunto de preferências lexicais. Note-se
contudo, que a conversão produzirá uma gramática que poderá não contemplar todas as restrições
da original, implicando assim que a transformação inversa possa não corresponder à original.
Seguidamente, são apresentados os aspectos relativos a conversões entre a gramática descrita
na secção anterior e uma gramática livre de contexto com notação BNF (Backus-Naur Form), utilizadas em grande parte das gramáticas. São descritos dois algoritmos que permitem efectuar essas
conversões.
4.2.1
Conversão de BNF para Blocos
O formato BNF (Naur et al., 1960) é frequentemente utilizado na representação de gramáticas.
O exemplo da figura 4.2, mostra uma mini-gramática retirada do exemplo do livro (Jurafsky e
Martin, 2000). O objectivo que se pretende é construir uma lista de regras com a estrutura dos
blocos, da forma apresentada na figura 4.3 para uma gramática deste tipo.
2 2 2 # # # 2 2
2 Considere-se uma qualquer regra escrita em notação BNF, então é da forma:
, com
um sı́mbolo não terminal e
, uma sequência de sı́mbolos terminais ou não.
A conversão da uma regra em notação BNF para a estrutura de blocos, consiste em percorrer cada
um dos elementos de
e construir ou actualizar o bloco correspondente à ocorrência do sı́mbolo
em . A estratégia consiste definir o bloco da forma mais restrita possı́vel e relaxar apenas quando
necessário.
2
2 2
2
O algoritmo 1 permite obter o resultado pretendido. O algoritmo pode também ser facilmente
, em que
estendido para tratar regras com expressões regulares do tipo
corres , em
ponde à ocorrência de pelo menos uma vez. O tratamento de casos do tipo
que
indica que ocorre zero ou mais vezes, exige a expansão prévia da regra, neste caso em duas
e
.
regras:
2 2
2
2 2 # # #2
2
2
2
2 2 2 ## #2
2 2 # # #2
2
2 2 2 2 ## #2
4.2. CONVERSÃO DE GRAMÁTICAS
Sı́mbolo
SN
SV
Aux
det
Nominal
nome
nomprop
verbo
SN
Nominal
PP
Superior
F
F
F
SN
SN
Nominal
SN
SV
SV
Nominal
Nominal
49
Começa
por vezes
por vezes
sempre
sempre
nunca
sempre
sempre
sempre
nunca
por vezes
nunca
Termina
nunca
sempre
nunca
nunca
sempre
por vezes
sempre
por vezes
sempre
nunca
sempre
Sı́mbolos Seguintes
SV
SN
Nominal
Nominal
SN
PP
Figura 4.3: Regras com a estrutura de blocos correspondente à mini-gramática.
Algoritmo 1 C ONVERTER B NF E M B LOCOS(gramática)
1. para cada regra da gramática fazer
2. para cada valor entre 1 e o número de elementos da sequência de
3.
C RIAR B LOCO( , )
Algoritmo 2 C RIAR B LOCO( ,
)
1. se Blocos contém um bloco do tipo em então
2. bloco Blocos.LerBloco( , )
3. se começa e bloco.NuncaComeça() então
4.
bloco.SetComeça(por vezes)
5. senão se não começa e bloco.ComeçaSempre() então
6.
bloco.SetComeça(por vezes)
7. se termina e bloco.NuncaTermina() então
8.
bloco.SetTermina(por vezes)
9. senão se não termina e bloco.TerminaSempre() então
10.
bloco.SetTermina(por vezes)
11. se não termina e não existe em bloco.Proximos() então
12.
bloco.AdicionarProximo( )
13. Blocos.Actualizar(bloco)
14. senão
15. se começa e acaba então
16.
Blocos.Adicionar bloco ( , , sim, sim, [])
17. senão se começa e não acaba então
18.
Blocos.Adicionar bloco ( , , sim, não, [ ])
19. senão se não começa e acaba então
20.
Blocos.Adicionar bloco ( , , não, sim, [])
21. senão se não começa e não acaba então
22.
Blocos.Adicionar bloco ( , , não, não, [ ])
fazer
CAPÍTULO 4. GRAMÁTICA DO SUSANA
50
Note-se que, embora seja possı́vel converter a informação presente na figura 4.2 para as estruturas dos blocos, o formato dos blocos não contempla todas as restrições da gramática original.
Podem ser utilizadas estratégias mais desenvolvidas para conseguir resultados mais aproximados.
4.2.2
Conversão de Blocos para BNF
Partindo de uma gramática descrita em termos de blocos, a dificuldade de representar a mesma
informação em notação BNF depende da complexidade da informação definida pelos blocos. A conversão da gramática da figura 4.3 resulta na gramática original (figura 4.2) e pode ser gerada utilizando o algoritmo 3.
Algoritmo 3 M APEAR B LOCOS E M B NF(
)
1. para cada bloco B em Blocos fazer
2. se B.PodeComeçar() então
3.
R CriarRegraBnf(B.superior()
B.modelo())
4.
se B.PodeTerminar() então
5.
Adicionar(gramática, R)
6.
se B.NãoTermina() ou B.TerminaPorVezes() então
7.
C OMPLETAR R EGRA B NF(Blocos, R, B)
Algoritmo 4 C OMPLETAR R EGRA B NF(
, )
,
1. para cada modelo N em B.seguintes() fazer
2. se Blocos.ExisteBloco(N, B.superior()) então
3.
B1 Blocos.ObterBloco(N, B.superior())
4.
se B1 pode não ocorrer no inı́cio então
5.
R.acrescentar(M)
6.
se B1.PodeTerminar() então
7.
Adicionar(gramática, B1)
8.
se B1.NãoTermina() ou B1.TerminaPorVezes() então
9.
C OMPLETAR R EGRA B NF(Blocos, R, B1)
2
Considere-se o caso em que
pode ocorrer dentro do modelo e ser seguido por ele próprio.
Em notação BNF conduzirá a situações do tipo
. Considere-se ainda
o caso mais genérico em que
e
podem ocorrer dentro do modelo com
a poder ser seguido
por
e por
, e
a poder ser seguido por
. Embora esta situação possa facilmente ser
indicada através das estruturas dos blocos, na notação BNF leva à criação de uma regra que envolve
expressões regulares:
. Estes problemas serão contemplados no contexto de trabalho
futuro, e implicam a criação de expressões regulares à medida em que se vão adicionando sı́mbolos à
sequência, verificando simultaneamente se a maior sequência se sı́mbolos previamente construı́da
é contemplada por uma expressão regular previamente construı́da.
2
2
# ## ## #
2
## #
# ##
4.3 Sumário
No âmbito desta tese foi concebida a estrutura de uma gramática, que serve fonte de informação
para analisador sintáctico SuSAna. A sua estrutura foi concebida de forma permitir descrever, pelo
4.3. SUMÁRIO
51
menos, toda a informação presente na gramática do AF. A informação para uma dada lı́ngua presente na gramática do AF, pode ser obtida a partir de um conjunto de propriedades, correspondentes
à formalização das caracterı́sticas linguı́sticas dessa lı́ngua, e que constituem o que se designou anteriormente por descrição da lı́ngua (secção 3.1). A estrutura da gramática do SuSAna comporta
três tipos de regras, que além de permitirem incorporar toda a informação do AF, suportam um
conjunto de restrições adicionais e permitem incluir elementos probabilı́sticos. À semelhança da
gramática do AF, é utilizada a estrutura bloco para definir o comportamento de modelos dentro
de modelos, com a diferença de permitir também definir o comportamento de categorias, ou modelos terminais. A gramática permite definir relações hierárquicas entre categorias e modelos, em
oposição com a gramática do AF, que apenas permite definir uma hierarquia para as categorias.
As preferências, utilizadas para efectuar restrições adicionais aos resultados, são indicadas por um
único tipo de regra, que permite por um lado, simplificar a manipulação da gramática e por outro,
suportar informação que não pode descrita usando a estrutura da gramática do AF. Relativamente à
gramática do AF, a gramática do SuSAna suporta um conjunto mais vasto de restrições permitindo
simultaneamente uma mais fácil manipulação da sua informação.
52
CAPÍTULO 4. GRAMÁTICA DO SUSANA
Um dos objectivos propostos para esta tese consiste na implementação de um analisador
sintáctico de superfı́cie. O tipo de resultados que se pretende obter com este analisador dever á
ser equivalente aos resultados obtidos pelo protótipo de análise de superfı́cie AF, apresentado no
capı́tulo anterior. Quando aplicado à análise de grandes quantidades de corpora, o AF apresenta
limitações, pois o seu processamento requer a realização de passos de pré-processamento, conseguidos à custa de um conjunto de scripts, e durante a sua concepção não foram considerados pormenores de optimização. De forma a resolver as limitações do AF, foi proposto o desenvolvimento de
um módulo de análise sintáctica de superfı́cie a que se deu o nome de SuSAna (Surface Syntactic
Analyser). O SuSAna integra um conjunto de algoritmos, concebidos no âmbito desta tese, com o
objectivo de efectuar uma análise eficiente e parametrizável.
Neste capı́tulo são abordados os requisitos impostos ao desenvolvimento do SuSAna; a estratégia que se seguiu para o seu desenvolvimento; e as suas caracterı́sticas principais. No que
diz respeito aos aspectos de utilização, a secção 5.2 descreve a informação que processa; tipos de
resultados que produz e formas de utilização. A secção 5.3 descreve aspectos relativos à forma
de funcionamento interno: a sua arquitectura e a estrutura de dados que manipula. A secç ão 5.4
descreve o processo de análise, apresentando os algoritmos utilizados e fazendo uma análise de complexidade da utilização desses algoritmos. A secção 5.5 aborda os aspectos relativos à extracção de
informação sobre segmentos previamente analisados e finalmente a secção 5.6 descreve o contexto
actual de utilização do módulo desenvolvido.
5.1 Objectivos e estratégia
O desenvolvimento do módulo SuSAna teve em linha de conta os seguintes requisitos:
1. Aplicação integrada. A identificação de constituintes sintácticos presentes num corpus, devidamente etiquetado ao nı́vel morfossintáctico, deve poder ser efectuada numa única operação
dependendo apenas da informação lexical disponı́vel na gramática em utilização;
2. Utilização isolada ou integrada em sistemas. A utilização da ferramenta de forma isolada permite a realização de estudos e testes, sobre informação previamente preparada para processamento sintáctico. Deve também ser contemplada a sua integração em cadeias ou sistemas de
processamento de lı́ngua natural que façam uso desse tipo de processamento;
3. Processamento de grandes quantidades de texto não restrito. O processamento de corpora
de grandes dimensões, em especial de texto não restrito, deve ser conduzido por algoritmos
54
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
robustos e eficientes. O tratamento de texto não restrito pode exigir aproximações diferentes
das utilizadas na análise sintáctica tradicional;
4. Possibilidade de utilização em diferentes plataformas. A portabilidade, neste caso, é um aspecto a ter em consideração no desenvolvimento da ferramenta de análise sintáctica. Este
requisito poderá, em parte, ser resolvido com a utilização de uma linguagem para a qual existam compiladores nas plataformas desejadas. A criação de módulos do tipo cliente/servidor,
que permitam fazer utilização do módulo de análise sintáctica em computadores designados
para essa tarefa, é também uma forma de aproximação a este problema;
5. Obtenção de diferentes tipos de resultados. Deverá ser proporcionado um conjunto de opções
que permita parametrizar a realização da análise e a forma como deverão ser extraı́dos os
resultados.
O desenvolvimento do SuSAna foi efectuado em várias fases, tendo sido definidos objectivos especı́ficos para cada uma delas.
A primeira fase consistiu em implementar uma versão do analisador sintáctico, utilizando um
algoritmo semelhante ao do AF, para processar o mesmo tipo e formato de dados e produzir o mesmo
conjunto de resultados. O objectivo a atingir foi o de poder comparar os resultados produzidos, compreender o funcionamento do algoritmo do AF e ficar a conhecer o conjunto de problemas associados
ao algoritmo. A aplicação tinha capacidade para ler o mesmo tipo e formato de informação, de
forma a poder utilizar os dados existentes. Depois de terminada, esta fase foi o ponto de partida
para as fases de desenvolvimento seguintes, pois além de permitir compreender o funcionamento
do algoritmo, deu também a conhecer um conjunto de problemas que lhe são inerentes.
A segunda fase compreendeu uma reformulação do tipo de regras da gramática, juntamente
com a sua passagem para o formato XML, e a concepção de um novo algoritmo. Embora podendo
continuar a usar as mesmas regras linguı́sticas e a analisar o mesmo tipo de documentos utilizados
pelo AF, o módulo foi alargado com capacidade de manipulação de dados em formato XML, dado que,
além de ser mais fácil de disseminar, a existência de bibliotecas de processamento já implementadas
facilita a gestão da informação neste formato. A passagem da informação para o formato XML levou
à adaptação e extensão das regras originais, conduzindo a um novo conjunto de regras mais genérico
e flexı́vel. O novo algoritmo passou a ter em consideração a realização de um conjunto de tarefas que
podem ser efectuadas com base na análise sintáctica, como é o caso da identificação das possı́veis
categorias morfossintácticas para uma palavra.
Numa terceira fase de desenvolvimento do SuSAna, dotou-se o algoritmo de conhecimento
acerca das análises parciais anteriormente calculadas, obtendo um aumento de desempenho, dado
que alguns dos cálculos passaram a ser feitos apenas uma vez. Em termos de arquitectura interna,
procedeu-se também a uma separação entre a fase da análise e a fase de extracção de resultados, de
forma a permitir um leque de opções independentes para a análise e para a extracção de resultados.
Finalmente, foram acrescentadas funcionalidades de forma a ser possı́vel a produção de variantes no tipo de resultados. A utilização do SuSAna foi alargada a uma plataforma cliente/servidor
através de RPC. Remote Procedure Call (RPC) é uma infra-estrutura cliente/servidor que permite a
inter-operabilidade, portabilidade, e flexibilidade de uma aplicação, permitindo que essa aplicação
possa estar distribuı́da sobre múltiplas plataformas heterogéneas (Rao, 1995; Birrell et al., 1984).
Para uma descrição mais completa, consultar o glossário na parte final desta tese.
5.2. ASPECTOS DE FUNCIONAMENTO
55
5.2 Aspectos de funcionamento
Esta secção descreve a utilização do módulo SuSAna, nomeadamente a informação que processa, o tipo de resultados produzidos e as formas de utilizaç ão.
5.2.1
Dados de entrada
De uma forma geral, o processamento de lı́ngua natural ao nı́vel sintáctico requer um processamento prévio ao nı́vel morfossintáctico. Esta tarefa começa geralmente por ser realizada por um
analisador morfológico ou anotador morfossintáctico, que recebendo um documento, lhe associa uma
informação morfossintáctica. A informação disponı́vel, embora com ambiguidade morfossintáctica,
pode ser já utilizada na análise sintáctica. Esta via conduzirá a um maior esforço de cálculo por
parte do analisador sintáctico e originará um conjunto mais alargado de hipóteses de análise. A outra alternativa é utilizar um desambiguador morfossintáctico para eliminar ou, pelo menos, reduzir
essa ambiguidade. A utilização do desambiguador morfossintáctico poderá também originar erros,
contribuindo assim para maiores taxas de erro no resultado final, razão pela qual deverá ser ponderada a sua utilização. A figura 5.1 mostra a cadeia de processamento linguı́stico que foi utilizada
em testes efectuados ao módulo.
Figura 5.1: Cadeia de processamento utilizada em testes com o SuSAna.
O passo final da preparação dos dados é a sua conversão para o tipo e formato adequado à
leitura por parte do analisador sintáctico. No caso da SuSAna, os dados de entrada consistem num
documento em formato XML constituı́do por zero ou mais segmentos, que são descritos de seguida.
O resultado produzido na etapa de processamento morfossintáctico contém toda a informação que o
analisador sintáctico necessita.
Geração da informação no formato do SuSAna
A conversão da informação obtida na fase da análise morfossintáctica, para o formato adequado
à leitura por parte do SuSAna, é facilitada pela existência de variadas ferramentas de manipulação
de XML. No caso concreto da cadeia de processamento da figura 5.1, a conversão do formato dos
resultados produzidos pelo módulo de pós-análise morfológica para o formato do SuSAna é feita
recorrendo à linguagem XSLT (W3C, 1999). Na figura 5.2 apresenta-se um excerto dos resultados
produzidos pelo módulo de pós-análise morfológica; na figura 5.3 é apresentado o excerto anterior,
já no formato adequado à leitura, por parte do SuSAna; e na figura 5.4 apresenta-se o código XSLT
utilizado para realizar esta conversão.
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
56
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE pasmo-out SYSTEM "PAsMo-out.dtd">
<pasmo-out>
<phrase num="1">
<hypothesis num="1">
<word name="a">
<class root="o"> <id name="artd s"/> </class>
<class root="a"> <id name="prep"/> </class>
<class root="a"> <id name="cli ac"/> </class>
</word>
<word name="água">
<class root="água"> <id name="nc1 s"/> </class>
<class root="aguar"> <id name="vc"/> </class>
</word>
<word name="gela">
<class root="gelar"> <id name="vc"/> </class>
<class root="gelar"> <id name="eliminer"/> </class>
</word>
<word name="em">
<class root="em"> <id name="prep"/> </class>
</word>
<word name="os">
<class root="o"> <id name="artd p"/> </class>
</word>
<word name="carreiros">
<class root="carreiros"> <id name="nc1 p"/> </class>
<class root="carreiros"> <id name="adj3 p"/> </class>
</word>
<word name=".">
<class root="."> <id name="eliminer"/> </class>
</word>
</hypothesis>
</phrase>
</pasmo-out>
Figura 5.2: Classificação morfossintáctica da frase “A água gela nos carreiros”, tal como se encontra
à saı́da do módulo de pós-análise morfológica PaSMo.
Estrutura dos segmentos
Os segmentos são as estruturas mais elementares que se podem analisar com o SuSAna. O
processamento sintáctico de um corpus, ou simplesmente de um documento, requer a sua divisão
em segmentos, de forma a que a análise seja feita segmento a segmento. Como se pode observar
na definição do tipo de dados (DTD) apresentada na figura 5.5 , cada segmento é composto por
uma ou várias hipóteses ou alternativas de sequências de unidades lexicais. Cada hipótese de
segmento é uma sequência de unidades lexicais anotadas morfossintacticamente. Uma unidade
lexical corresponde a uma ou mais palavras juntamente com a sua classificaç ão, como é o caso das
palavras compostas. A classificaç ão de cada unidade lexical pode ser ambı́gua, tal como se verifica
no exemplo da figura 5.3.
A definição de um segmento como um conjunto de hipóteses, permite indicar várias formas
5.2. ASPECTOS DE FUNCIONAMENTO
57
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE MorphoAnalysis SYSTEM "susana-in.dtd">
<MorphoAnalysis>
<segment>
<hypothesis>
<word name="a">
<category lemma="o" tag="artd s"/>
<category lemma="a" tag="prep"/>
<category lemma="a" tag="cli ac"/>
</word>
<word name="água">
<category lemma="água" tag="nc1 s"/>
<category lemma="aguar" tag="vc"/>
</word>
<word name="gela">
<category lemma="gelar" tag="vc"/>
<category lemma="gelar" tag="eliminer"/>
</word>
<word name="em">
<category lemma="em" tag="prep"/>
</word>
<word name="os">
<category lemma="o" tag="artd p"/>
</word>
<word name="carreiros">
<category lemma="carreiros" tag="nc1 p"/>
<category lemma="carreiros" tag="adj3 p"/>
</word>
<word name=".">
<category lemma="." tag="eliminer"/>
</word>
</hypothesis>
</segment>
</MorphoAnalysis>
Figura 5.3: Classificação morfossintáctica da frase “A água gela nos carreiros”. Informação no
formato adequado à leitura do SuSAna.
de segmentação de uma frase em unidades lexicais, por exemplo a frase “a cerca de ...” pode ser
segmentada de duas formas distintas: [a cerca][de] e [a][cerca][de]. A figura 5.3 mostra o exemplo
de um segmento constituı́do apenas por uma hipótese.
5.2.2
Resultados produzidos
O resultado da análise de um segmento é a classificação sintáctica das sequências de unidades
lexicais que compõem esse segmento, e corresponde à identificação de uma estrutura linguı́stica
abrangida por esse segmento. Por exemplo, considerando que um segmento corresponde a um
parágrafo, as estruturas linguı́sticas que se poderiam aı́ identificar poderiam ser: parágrafo; frase;
ou qualquer elemento contemplado pela gramática, por exemplo SN (sintagma nominal) , SV (sintagma verbal), ou mesmo V (verbo). Um segmento deve conter pelo menos uma das estruturas
linguı́sticas do tipo que se pretende analisar. Por omissão, o SuSAna considera que cada segmento
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
58
<?xml version=’1.0’ encoding=’iso-8859-1’ ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="iso-8859-1"
doctype-system="susana-in.dtd"/>
<xsl:template match="/pasmo-out">
<MorphoAnalysis>
<xsl:apply-templates/></MorphoAnalysis></xsl:template>
<xsl:template match="phrase">
<segment><xsl:apply-templates/></segment></xsl:template>
<xsl:template match="hypothesis">
<hypothesis><xsl:apply-templates/></hypothesis></xsl:template>
<xsl:template match="word">
<word><xsl:attribute name="name"><xsl:value-of select="@name"/>
</xsl:attribute><xsl:apply-templates/></word></xsl:template>
<xsl:template match="class">
<category>
<xsl:attribute name="lemma"><xsl:value-of select="@root"/>
</xsl:attribute>
<xsl:attribute name="tag"><xsl:value-of select="id/@name"/>
</xsl:attribute>
</category>
</xsl:template>
</xsl:stylesheet>
Figura 5.4: XSL que converte a saı́da do módulo de pós-análise morfológica na entrada do SuSAna.
corresponde a uma e uma única estrutura linguı́stica do tipo que se pretende analisar. Contudo,
aceita um conjunto de opções que lhe permitem realizar a análise de diversas formas, sendo uma
delas a possibilidade de considerar que um segmento pode conter múltiplas estruturas linguı́sticas.
Neste caso o analisador tenta descobrir os seus limites dentro desse segmento.
O tipo e formato dos resultados pode também ser definido através de opções. Em termos de
formato, de uma forma geral os resultados podem consistir em simples contagens, demarcações, estruturas representadas em formato XML, ou num formato adequado à representação da informação
em grafos. A figura 5.6 apresenta o resultado da análise em formato XML, para o segmento da figura
5.3. É possı́vel também gerar um conjunto de alternativas para as unidades que podem ocorrer após
um dado segmento, partindo do princı́pio que o segmento não constitui uma estrutura linguı́stica
completa.
5.2.3
Formas de utilização
Paralelamente à implementação do SuSAna, foi desenvolvida uma aplicação que permite a
utilização do SuSAna de forma isolada. Esta aplicação consiste num pequeno programa que sendo
executado numa linha de comandos, realiza chamadas ao módulo SuSAna e permite realizar todos
os tipos de operação suportados pelo módulo.
O módulo SuSAna foi implementado como uma classe na linguagem de programação C++. Esta
caracterı́stica permite que se possa incluir e utilizar dentro de outros sistemas e aplicaç ões. A sua
utilização é feita através da sua interface de programação (API).
5.3. FUNCIONAMENTO INTERNO
59
<?xml version=’1.0’ encoding=’iso-8859-1’?>
<!ELEMENT MorphoAnalysis (segment)*>
<!ELEMENT segment (hypothesis)*>
<!ELEMENT hypothesis (word)*>
<!ELEMENT word (category)*>
<!ATTLIST word name CDATA #REQUIRED>
<!ELEMENT category EMPTY>
<!ATTLIST category lemma CDATA #REQUIRED tag CDATA #REQUIRED>
Figura 5.5: DTD dos elementos processados pelo SuSAna.
Para permitir a utilização da SuSAna numa plataforma cliente/servidor, foi implementado um
módulo cliente de RPC que permite a utilização da SuSAna em máquinas dedicadas, a partir de
qualquer máquina. A figura 5.8 mostra a utilização do módulo SuSAna numa plataforma cliente/servidor. A instalação e utilização do módulo cliente de RPC em diferentes plataformas é
facilitada pela sua reduzida complexidade e dimensão. O módulo cliente de RPC pode também ser
incluı́do em sistemas mais complexos de processamento da lı́ngua que façam uso do processamento
sintáctico.
5.3 Funcionamento interno
Considere-se a árvore sintáctica correspondente a uma análise. Ao longo desta secção será
designado por fragmento de análise, toda e qualquer estrutura da análise que possa ser obtida a
partir de um nó dessa árvore e que inclua todos os nós abaixo desse nó. Tal como se encontra
definido, um fragmento é sempre a concretização de um modelo definido pela gramática. A noção
de fragmento aqui introduzida é desprovida de uma noção linguı́stica, na medida em que depende
única e exclusivamente do conjunto de regras que se utiliza para realizar a análise. Contudo a
sequência de elementos que o constitui é sempre permitida pelas regras que definem o modelo que
lhe está associado. A figura 5.9 mostra duas análises possı́veis para o segmento “A água gela em os
carreiros”. Verifica-se que a primeira análise é composta pelos fragmentos m nn, phvn, m prepn e
a segunda é composta pelos fragmentos m prepn, phvn, m prepn, sendo os dois últimos fragmentos
partilhados pelas duas análises.
Esta secção apresenta a arquitectura adoptada para o módulo de análise de superfı́cie e a estrutura que permite, por um lado, armazenar o resultado da análise, e por outro, fornecer informação
acerca de cálculos efectuados previamente, de modo a permitir um processo de análise mais eficiente.
5.3.1
Arquitectura
A obtenção do resultado de uma análise é feita em duas etapas, podendo cada uma delas ser
parametrizada com um conjunto de opções. A primeira etapa, corresponde à análise propriamente
dita e consiste em produzir um conjunto de resultados intermédios. A segunda, corresponde a
extrair os resultados pretendidos a partir dos resultados intermédios, previamente calculados.
60
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE surfaceAnalysis SYSTEM "susana-out.dtd">
<surfaceAnalysis>
<segment>
<!-- A água gela em os carreiros -->
<hypothesis length="6">
<analysis weight="0" start="0" length="6">
<model name="ph" start="0" length="6">
<model name="m nn" start="0" length="2">
<model name="artd s" start="0" length="1">A</model>
<model name="nc1 s" start="1" length="1">água</model>
</model>
<model name="phv n" start="2" length="1">
<model name="vc" start="2" length="1">gela</model>
</model>
<model name="m prepn" start="3" length="3">
<model name="prep" start="3" length="1">em</model>
<model name="artd p" start="4" length="1">os</model>
<model name="nc1 p" start="5" length="1">carreiros</model>
</model>
</model>
</analysis>
<analysis weight="0" start="0" length="6">
<model name="ph" start="0" length="6">
<model name="m prepn" start="0" length="2">
<model name="prep" start="0" length="1">A</model>
<model name="nc1 s" start="1" length="1">água</model>
</model>
<model name="phv n" start="2" length="1">
<model name="vc" start="2" length="1">gela</model>
</model>
<model name="m prepn" start="3" length="3">
<model name="prep" start="3" length="1">em</model>
<model name="artd p" start="4" length="1">os</model>
<model name="nc1 p" start="5" length="1">carreiros</model>
</model>
</model>
</analysis>
</hypothesis>
</segment>
</surfaceAnalysis>
Figura 5.6: Análise sintáctica da frase “A água gela em os carreiros”.
Figura 5.7: Utilização do SuSAna como módulo inserido num sistema de processamento de lı́ngua.
5.3. FUNCIONAMENTO INTERNO
61
Figura 5.8: Utilização do SuSAna numa plataforma cliente/servidor através de RPC.
Figura 5.9: Árvores de análise da frase: “A água gela em os carreiros”.
A figura 5.10 apresenta a arquitectura geral do sistema. O tipo de arquitectura apresentado
segue uma abordagem modular, na qual o módulo de análise e o módulo de extracção de resultados são independentes. O módulo de análise coloca elementos no repositório, que utiliza também
posteriormente no decorrer da análise, de forma a evitar duplicação de cálculos. Por seu lado, o
módulo de extracção utiliza o repositório como fonte de informação, extraindo daı́ toda a informação
necessária à produção do resultado desejado. Este tipo de abordagem facilita a correcção de problemas e a introdução de melhorias, tanto na etapa da análise, como na etapa de extracção de
resultados.
5.3.2
Repositório
A figura 5.11 mostra os tipos de dados que constituem a estrutura do repositório. O repositório
é configurado e limpo no inı́cio da análise de cada frase. O vector de informação do repositório é
dimensionado de forma a que seja constituı́do por tantas posições quantas forem as unidades lexicais presentes na frase. A informação presente em cada posição do vector do repositório, designada
por informação posicional, relaciona-se com a unidade lexical que se encontra nessa posiç ão. Toda
a informação relativa à unidade lexical, tal como as possı́veis classificações morfossintácticas, é armazenada no repositório, de forma a que a tarefa de extracção de resultados possa ser efectuada
apenas com base na informação aı́ presente.
62
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
Figura 5.10: SuSAna – arquitectura interna.
De forma a impedir a duplicação de cálculos, o repositório mantém um historial das tentativas
efectuadas, no sentido de criar informação para um dado modelo. A informação indicada como
modelos testados contém uma lista de todos os modelos testados para a unidade lexical actual, onde
se indica se um determinado modelo já testado pode ou não ocorrer na posição actual. No caso de
poder ocorrer, indica-se também o caso especial, do modelo ser ou não terminal (por questões de
eficiência).
A informação relativa aos fragmentos válidos da análise é guardada na estrutura de um grafo
dirigido e acı́clico (DAG). Assim, cada posição do repositório contém arcos para os vértices do grafo
que ocorrem nessa posição. Um arco pode ter um custo associado e tem a propriedade de poder estar
ou não activo, sendo que um arco desactivado corresponde a um arco eliminado. Um arco pode ser
desactivado quando é encontrado um caminho alternativo no grafo que oferece melhores condições,
isto é, se existir um caminha cujo custo é inferior. A possibilidade de desactivar arcos proporciona
um meio de reduzir cálculos posteriores.
Cada vértice do grafo retém informação acerca da ocorrência de um modelo dentro de outro
(designado por modelo superior), um vector de arcos para os vértices que o podem seguir nesse nı́vel
da análise e um vector de arcos para as sub-estruturas, de nı́veis inferiores, das quais depende.
Para todos os vértices, é também guardada informação acerca dos possı́veis fechos posteriores e da
melhor relação custo/benefı́cio, explicada na próxima secção, para chegar a determinada posição.
5.4 O processo de análise
O resultado produzido pelo analisador de superfı́cie consiste num conjunto de hipóteses de
análise, em que cada hipótese é representada por uma árvore. O nó de topo de cada uma dessas
árvores corresponde ao sı́mbolo inicial da gramática e as folhas correspondem às classificações morfossintácticas atribuı́das previamente à frase em análise. Todos os nós representam fragmentos de
análise, sendo que o nó de topo representa o maior fragmento possı́vel e as folhas representam os
menores fragmentos possı́veis. O processo de análise consiste em calcular fragmentos e sequências
de fragmentos que são permitidos pela gramática. A representação do conjunto de árvores em
memória é feita através de um DAG, de modo a construir o número mı́nimo de vértices.
O núcleo da análise de superfı́cie é composto por duas funções, que são responsáveis por atribuir a classificação adequada aos dados presentes na entrada. O processamento que cada uma
5.4. O PROCESSO DE ANÁLISE
63
Figura 5.11: Estrutura do repositório de dados.
delas efectua é descrito nos algoritmos 5 e 6. A função C ALC -M ODELS é responsável por calcular
todos os modelos de um tipo T que se podem iniciar na posição w do segmento em análise. G ETS IBLING -M ODELS calcula e devolve todas as sequências de modelos que podem ocorrer a partir da
posição w do segmento, após a ocorrência de um fragmento L e dentro de um modelo T. As funções
C ALC -B RANCHES e C ALC -D AG -V ERTICE, descritas no algoritmos 7 e 8, poderiam ser integradas
numa única função e incluı́das dentro dos algoritmos anteriores, sendo no entanto definidas separadamente para uma melhor clareza. A função C ALC -B RANCHES é responsável por seleccionar os
caminhos seguintes possı́veis e aplicar o custo a cada um deles, em função das preferências presentes na gramática. Finalmente, a função C ALC -D AG -V ERTICE é responsável por criar os nós do
DAG e estabelecer as relações entre esses nós. A Figura 5.12 mostra as relações que se estabelecem
e o tipo de operações que cada uma delas realiza. As funções funcionam recursivamente de forma
cruzada, isto é, a primeira e a segunda chamam a terceira; a terceira por sua vez chama a primeira
e a quarta; e a quarta chama a segunda.
5.4.1
Criação de novos fragmentos
No que diz respeito ao algoritmo C ALC -M ODELS, a sua função é calcular todos os fragmentos
de análise de um tipo que podem ser iniciados numa posição da frase. A função C ALC -M ODELS
64
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
Figura 5.12: Diagrama de funcionamento da análise.
(algoritmo 5 ) começa por verificar se o problema já foi antes considerado ou se a sua solução é trivial
(no caso de ser uma das classificaç ões da palavra); se isso não acontecer, constrói um conjunto de
modelos candidatos a constituir fragmentos de análise dentro do modelo . Com base no conjunto
de modelos candidatos, procede com a tentativa de criação de ramos de análise para cada um deles.
As primeiras duas linhas do algoritmo verificam, através de uma consulta ao repositório, se
o problema foi já antes considerado, mesmo que não tenha produzido resultados. O repositório
mantém esta informação na estrutura que se designou por modelos testados (ver figura 5.11), independente da estrutura do DAG, e que se pode eliminar após efectuar toda a análise. As três linhas
seguintes verificam o caso trivial de uma das classificaç ões atribuı́das a uma palavra ser igual a
um modelo . No caso de isso acontecer, é enviada informação para o repositório e a execução termina. As linhas 6 a 8, criam o conjunto de modelos que podem começar um modelo numa posiç ão
da frase e que fazem parte de um caminho descendente até uma das possı́veis classificações da
unidade lexical actual.
A função GetStartingChildModels devolve, com base na gramática, o conjunto de modelos que
se encontram no primeiro passo do caminho descendente que vai desde um modelo a outro, usando
uma estratégia bottom-up, adequada à estrutura das regras presentes na gramática. A procura
de caminhos efectuada pela função é ilustrada pela figura 5.13 . Nos vários passos apresentados,
a figura mostra como se seleccionam os modelos que podem ocorrer directamente em e fazem
parte de um dos caminhos que vai de até ao conjunto de categorias
,
e
(que também
são modelos). No inı́cio da procura conhecem-se apenas ,
,
e
. Partindo de uma das
categorias, identificam-se os elementos onde a categoria pode ocorrer e, recursivamente, os modelos
onde os modelos acabados de encontrar podem ocorrer, até encontrar . Procede-se da mesma
forma com as restantes categorias. O resultado de getStartingChildModels é o conjunto de modelos
que fazem parte dos caminhos construı́dos e se encontram imediatamente abaixo de , no exemplo
e .
apresentado seria o conjunto formado pelos modelos
5.4. O PROCESSO DE ANÁLISE
65
Algoritmo 5 C ALC -M ODELS( , )
1. if position of repository knows model
2. return repository.IsPossible(
)
then
3. if some category of word matches then
4. repository.AddTerminalModel( , )
5. return success
in segment[ ].categories() do
grammar.GetStartingChildModels( CALC -B RANCHES(
, )
if empty( ) then
repository.SetImpossible( )
6.
7. for each category
8.
9.
)
10.
11.
12. return not found
13. else
)
14. ApplyPreferences(
)
15. ApplyLongPrinciple(
16. repository.SetPossible(
)
17. return success
Figura 5.13: Procura de possı́veis caminhos entre modelos.
Após terem sido identificados os modelos possı́veis, a função C ALC -B RANCHES verifica se, para
cada um deles, é possı́vel construir um fragmento de análise (linha 9 do algoritmo 5). Este teste
tem já em consideração as palavras seguintes da frase. Como resultado da função são armazenados
na estrutura , um conjunto de arcos que indicam o conjunto de vértices do grafo que iniciam
um fragmento de análise do tipo de um modelo . A linhas 14 e 15 permitem não considerar alguns
fragmentos produzidos, de forma a reduzir o número de análises final. A aplicação de preferências
é efectuada com base nos custos atribuı́dos pela função C ALC -B RANCHES, descrita no algoritmo 7,
enquanto que a aplicação do princı́pio dos modelos mais longos apenas depende do número de nós
usados para chegar a dada posição. Note-se que esta operação pode reduzir o número de elementos
do conjunto mas não os elimina completamente, havendo ainda a garantia de se manterem as
condições para encontrar análises válidas. As últimas linhas do algoritmo informam o repositório
acerca da possibilidade de existirem fragmentos do tipo de um modelo . Esta informação será
novamente utilizada nas primeiras duas linhas deste algoritmo, aquando da tentativa de realizaç ão
de um cálculo com os mesmos parâmetros. Este mecanismo reduz o tempo de execução, na medida
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
66
em que assegura que o mesmo cálculo não é efectuado mais do que uma vez. Note-se que a função
C ALC -M ODELS, sendo responsável por criar fragmentos de análise, é executada repetidamente pois
a realização da análise assenta na construção de fragmentos.
5.4.2
Continuação de fragmentos já iniciados
O algoritmo G ET-S IBLING -M ODELS é responsável por prever e calcular os fragmentos de
análise que podem ocorrer, após um determinado fragmento e dentro de um determinado modelo.
Por oposição à função C ALC -M ODELS, que é utilizada para descer no nı́vel da análise (em direcção
às caracterı́sticas morfossintácticas da palavra), a função G ET-S IBLING -M ODELS (algoritmo 6 ) é
Algoritmo 6 G ET-S IBLING -M ODELS( , , )
in segment[ ].categories() do
grammar.GetNextSiblingModels( CALC -B RANCHES(
, , , )
return 1.
2. for each category
3.
4.
5.
, )
utilizada para prosseguir a análise ao mesmo nı́vel em direcção ao fim da frase. A ideia subjacente a
estes dois algoritmos é que enquanto um executa uma procura orientada em profundidade, o outro
procede com uma procura em largura. Por um lado, o avanço num determinado nı́vel da análise
nunca acontece sem terem sido explorados os nı́veis inferiores dependentes desse nı́vel, e por outro,
nunca se sobe de nı́vel num dado ponto da análise sem terem sido exploradas todas as possibilidades
nesse nı́vel, para esse ponto.
As primeiras três linhas do algoritmo têm uma tarefa semelhante às linhas 3 a 6 do algoritmo
5. A diferença está no facto de se considerar o modelo anterior (
), que funciona como um factor
de restrição. A função getNextSiblingModels devolve o conjunto de modelos que pode ocorrer no
modelo , após um modelo , e que façam parte do conjunto de modelos que constituem a primeira
etapa nos caminhos possı́veis entre o modelo e as classificações morfossintácticas da palavra. A
linha 4 corresponde à linha 9 do algoritmo 5, contudo entra também em consideração com o modelo
anterior .
5.4.3
Validação de modelos candidatos e atribuição de custos
As linhas 1 a 7 da função C ALC -B RANCHES (algoritmo 7 ) são responsáveis por validar os
modelos seleccionados como candidatos por um dos algoritmos anteriores. O procedimento consiste
em, para cada um dos modelos candidatos, verificar se existem fragmentos que possam ocorrer
dentro desse modelo. Se isso acontecer, constrói um vértice no grafo e obtém uma referência para
esse vértice. A construção do vértice implica, como será visto adiante, a construção ou verificação
(caso já tenham sido construı́dos) dos vértices que podem seguir esse vértice, até formar o resto
corresponder ão a alternativas
dos fragmentos. Assim, os arcos armazenados no conjunto válidas para o fragmento em construção.
As linhas 8 a 15 são responsáveis por atribuir custos aos caminhos encontrados nas linhas
anteriores, partindo do princı́pio que se estão a considerar as preferências. Cada preferência da
5.4. O PROCESSO DE ANÁLISE
Algoritmo 7 C ALC -B RANCHES(
67
, , )
1.
do
2. for each model in
3. if repository.IsUnknown( , ) then
4.
C ALC -M ODELS( , )
5. if repository.IsValid( , ) then
G ET-D AG -V ERTICE( , , )
6.
7.
.Add(new Edge( ) )
) 1 then
8. if using preferences and size(
9. for each in
do
10.
for each in
following do
11.
if exists preference( , ) then
12.
incCost( , (preference( , ) + 1)/2)
13.
incCost( , 1 - (preference( , )+1)/2)
14. return
gramática indica a possibilidade de rejeitar determinado caminho, na presença de outro: assim,
os caminhos são testados dois a dois. É importante observar que nesta fase não são eliminados
caminhos: apenas são classificados com custos. Isto acontece, porque um caminho sem custos pode
não levar necessariamente a uma análise final válida. Estes custos serão posteriormente utilizados
na função C ALC -M ODELS (algoritmo 5) e na ordenação do resultado final.
5.4.4
Registo de caminhos e vértices no repositório
Tal como foi visto anteriormente, cada vértice que constitui o DAG suportado pela estrutura
do repositório, representa a possibilidade de ocorrência de um modelo noutro. A existência de um
vértice no grafo implica que toda a informação após esse vértice já foi calculada e é conhecida por
esse vértice. As primeiras duas linhas da função G ET-D AG -V ERTICE (algoritmo 8 ), limitam-se a
Algoritmo 8 G ET-D AG -V ERTICE( ,
1. if repository.ExistsInfo( , )
2. return repository.GetInfo( ,
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
)
, )
Not grammar.MustClose(
, )
grammar.CanClose( , )
grammar.CanStart( , )
repository.GetChilds( )
MaxLength( ) new Vertice( , , , , )
and + segment.Size() then
if for downto 1 do
if repository[ "
!# ].CanBeClosedBy( ) then
$ G ET-S IBLING -M ODELS(%
, , )
if Not Empty (
$ ) then
AddSiblings( , $ )
repository.AddVertice( )
return 68
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
verificar essa situação. A construção do vértice que representa a ocorrência de um modelo
dentro de um modelo é efectuada na linha 8. O vértice acabado de criar tem informação acerca
da possibilidade de poder começar e terminar um fragmento de análise. Como se pode verificar,
o vértice tem também conhecimento dos fragmentos com que é constituı́do. A existência destes
fragmentos é garantida na linha 5 da função C ALC -B RANCHES (algoritmo 7). O conjunto dos fragmentos está também armazenado num ou mais sub-grafos e cada uma delas pode ter tamanhos
diferentes.
As linhas 9 a 14 são responsáveis por identificar todos os vértices que podem seguir o vértice
acabado de criar. Assim, partindo do tamanho do maior sub-fragmento, a função G ET-S IBLING M ODELS (algoritmo 6) será novamente utilizada a partir da posição seguinte. No caso de terem sido
identificados caminhos possı́veis, essa informação é introduzida no vértice acabado de criar (linha
14). Uma nota importante é consequência do facto da procura começar a ser efectuada a partir
do elemento mais distante. Através deste mecanismo, o algoritmo poderia ser utilizado como um
algoritmo anytime (Russell e Zilberstein, 1991; Gorz e Kesseler, 1994) , pois a sua estrat égia consiste
em encontrar o maior conjunto de análises finais válidas, com o menor número de operações. A
produção de todos os resultados possı́veis e respectivo refinamento é efectuado progressivamente
em função do tempo disponı́vel.
5.4.5
Parametrizações da análise
A arquitectura representada na figura 5.10 mostra uma separação entre a fase de análise e a
fase de extracção de resultados, permitindo estabelecer parâmetros independentes em cada uma
dessas fases. Seguidamente, indicam-se os parâmetros que condicionam a fase de análise.
A análise de um segmento no SuSAna envolve um conjunto de parâmetros que define o tipo
de análise pretendida, nomeadamente:
, que corresponde à estrutura linguı́stica que se pre tende analisar;
, que indica a possibilidade de ignorar unidades lexicais que não permitam
a realização da análise;
, que indica a possibilidade de existirem múltiplas estruturas
linguı́sticas no segmento;
, que permite a sobreposição de resultados e é somente aplicado
no caso do parâmetro
se encontrar activo.
O algoritmo 9 mostra o processo de análise tendo em conta os parâmetros definidos. O inı́cio
de uma análise envolve a iniciação do repositório (linha 1). As linhas 2, 42 e 43 permitem fazer o
controlo de erros, sobretudo quando existem modelos desconhecidos no segmento. No caso de uma
ocorrência desse tipo, a análise do segmento actual é interrompida de forma a iniciar a análise
do próximo segmento. O processo de análise mais simples é realizado no caso das opções
e
não se encontrarem activas, consistindo apenas em realizar a análise na primeira posição
do segmento e verificar se o resultado obtido engloba todas as posições desse segmento. Nos restantes casos de parametrização, o comportamento do algoritmo consiste em realizar a análise na
primeira posição do segmento, verificar o tamanho do maior resultado obtido, e em função desse
tamanho decidir qual a posição a analisar de seguida, terminando eventualmente a análise.
5.4. O PROCESSO DE ANÁLISE
Algoritmo 9 D O-A NALYSIS(
69
,
,
,
,
)
1. Init(repository, segment)
2. try
and then
3.
if and 4.
for i = 1 to size(segment) do
5.
C ALC -M ODELS( )
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
else if and and not then
1
while size(segment) do
1
C ALC -M ODELS( )
if sucess then
repository.maxlen( , )
+ else if not and and not then
1
size(segment) do
while C ALC -M ODELS( )
if not sucess then
return fail
+ repository.maxlen( , )
else if not and and then
1
0
while size(segment) do
C ALC -M ODELS( )
if success then
Max( , + repository.maxlen( , else if then
return fail
+ 1
else if and not then
1
true
while and size(segment)
C ALC -M ODELS( )
if success then
false
else
+1
else if not and not C ALC -M ODELS(1, )
42. catch(error)
43. ReportError()
then
))
70
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
Figura 5.14: Análise de segmentos com múltiplas estruturas linguı́sticas, sem sobreposição e sem
possibilidade de desprezar unidades lexicais.
Elemento de topo (topmodel)
Em termos de análise, o elemento de topo corresponde à estrutura linguı́stica que se pretende
identificar. O seu valor por omissão é definido na gramática através do elemento topmodel, sendo,
contudo, possı́vel alterar o seu valor em tempo de execução.
Possibilidade de desprezar unidades lexicais (skips)
Por vezes, a demarcação de segmentos não é fiável. Nesse caso, poderá existir informação que
impede a obtenção de uma análise correcta, tanto no inı́cio como no fim do segmento. O SuSAna
pode ser parametrizado para ignorar elementos que não permitam começar a estrutura a analisar
e elementos finais que a não permitam concluir. Na função D O -A NALYSIS (algoritmo 9), esta opção
é indicada no parâmetro
. A utilização desta opção poderá levar à obtenção da análise para
apenas uma pequena parte do segmento.
Análise de múltiplas estruturas linguı́sticas contidas num segmento (multiple)
Por omissão, cada segmento deverá conter uma e uma só estrutura linguı́stica do tipo definido
pelo elemento de topo. Contudo, é possı́vel contemplar o caso de um segmento conter mais do que
uma dessas estruturas. Esta situação ocorre, por exemplo, quando o segmento corresponde a um
parágrafo e se pretendem analisar frases dentro desse parágrafo.
O processo de análise utilizando esta opção é realizado com a opção
e depende também
da utilização das opções
e
, tal como se pode observar no algoritmo 9. Quando utilizada
, a opção
corresponde à possibilidade de desprezar unidades
em conjunto com a opção
lexicais que antecedem ou seguem estruturas linguı́sticas pretendidas, isto é, que se encontrem no
meio dessas estruturas. A opção
permite indicar que as estruturas linguı́sticas se podem
sobrepor.
A figura 5.14 representa o processo de análise de um segmento, sem possibilidade de desprezar
unidades lexicais e sem sobreposição de resultados. Cada linha vertical efectua a demarcação de
uma ou várias unidades lexicais. Tal como se pode verificar na função D O -A NALYSIS (algoritmo 9),
depois de terem sido calculados os fragmentos que se iniciam na primeira posiç ão do segmento, o
5.4. O PROCESSO DE ANÁLISE
71
Figura 5.15: Análise de segmentos com múltiplas estruturas linguı́sticas, com sobreposição e sem
possibilidade de desprezar unidades lexicais.
Figura 5.16: Análise de segmentos com múltiplas estruturas linguı́sticas, com possibilidade de
desprezar unidades lexicais.
próximo cálculo será efectuado na posição , sendo
calculado.
o comprimento do fragmento mais comprido já
A análise de múltiplas estruturas num segmento poderá também ser efectuada com sobreposição
de possibilidades (
). A figura 5.15 ilustra este processo. Neste caso foi estabelecido que n ão
se deveriam desprezar unidades lexicais no segmento.
A possibilidade de desprezar unidades lexicais num segmento, com múltiplas estruturas do tipo
é ilustrada na figura 5.16 . De notar que este conjunto de opções em conjunto com a opção
obrigará ao cálculo de fragmentos do tipo
, para todas as posições do segmento.
5.4.6
,
,
Restrição de resultados
A análise sintáctica de um segmento pode ser constituı́da por múltiplas alternativas. No caso
particular de utilização de gramáticas de dimensão reduzida, com regras pouco refinadas, é necessário estabelecer regras suficientemente genéricas para permitir o maior número de construções
da lı́ngua, o que poderá originar um vasto conjunto de análises possı́veis. No que diz respeito ao
DAG utilizado para a análise, a adição de arcos entre vértices corresponde à produção de alternativas de análise. Durante o processo de passagem do grafo para árvores, que designamos por
linearização, cada arco alternativo poderá dar origem a um vasto conjunto de árvores, sendo cada
uma dessas árvores uma alternativa de análise. Quer o resultado final seja um grafo representativo
da estrutura da análise, quer seja um conjunto de árvores, cada uma delas constituindo uma alternativa de análise, é importante anotar ou eliminar um conjunto de possibilidades mais improváveis
ou incomuns. As técnicas de restrição de análises não limitam a cobertura e permitem estabelecer um conjunto de análises mais reduzido. O SuSAna faz uso de dois métodos para atingir esse
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
72
b
0.8
a
c
d (Fecha)
h (Fecha)
0.2
0.9
e
f1 (Fecha)
g (Fecha)
0.1
f2
Figura 5.17: DAG – Possibilidades de construção de um fragmento.
fim: princı́pio dos modelos mais longos, que resulta de estudos psico-linguı́sticos, mencionados no
capı́tulo 1, e utilização de preferências, que são especificadas na gramática. O SuSAna permite que
a utilização de qualquer um dos métodos de restrição de resultados seja facultativa.
Utilização de preferências
A utilização da informação indicada pelas preferências é feita em 3 fases distintas. A primeira fase consiste em atribuir custos aos arcos e é efectuada no algoritmo 7 (C ALC -B RANCHES);
a segunda fase consiste em utilizar esses custos para eliminar análises parciais, previamente calculadas, e é contemplada no algoritmo 5 (C ALC -M ODELS); a terceira fase é realizada quando se
produzem os resultados finais. A existência destas três fases deve-se ao facto de as preferências
não poderem eliminar hipóteses de análise, sem antes se saber se pode ser produzido um resultado
válido com as restantes hipóteses. A eliminação de hipóteses de análise, apenas na última fase,
tem um elevado custo em termos de eficiência, por essa razão, realizam-se cortes sempre que não
se corre o risco de não obter resultados.
Considere-se o DAG representado na figura 5.17 , que mostra as possibilidades de construção
de um fragmento de um determinado tipo . Cada vértice corresponde a um modelo que pode ou
não terminar e cada arco tem associado um custo, que por omissão é .
; ii) ; iii)
As várias possibilidades de construção do fragmento seriam: i) ; iv) ; v) ; vi) ; vii) . O custo associado
a cada uma das possibilidades seria de: 0.3 para vi) e vii); 0.8 para i) e ii); e 1.1 para iii) iv) e
v). Note-se que o arco que sai do modelo , com peso
pode ser eliminado, pois para qualquer
possibilidade de construção da fragmento a partir desse arco, existe uma outra possibilidade, que
não utiliza esse arco, cujo custo é menor e tem igual comprimento. Por exemplo: as possibilidades
4. e 6. têm o mesmo comprimento de 1. e oferecem menores custos. Contudo, o arco que sai de
com peso 0.9, não pode ser eliminado, pois o fragmento 3. deixaria de existir, não havendo mais
nenhuma possibilidade com comprimento 3.
#
De forma a poder eliminar correctamente os vértices de um determinado nı́vel do DAG, em cada
vértice é construı́do um vector com o comprimento da maior sequência de vértices que se consegue
construir a partir dele, designado por vector de fechos. A figura 5.18 ilustra este processo. Cada
posição do vector indica o número de possibilidades de fecho, posições à frente, sendo
.
A tentativa de eliminar um arco, será bem sucedida, se a subtracção do vector de fechos do vértice
5.4. O PROCESSO DE ANÁLISE
0.8
a
(0,0,1,3,3)
73
b
(0,0,1,1)
c
(0,1,1)
d (Fecha)
(1,1)
f1 (Fecha)
(1,1,1)
g (Fecha)
(1,1)
h (Fecha)
(1)
0.2
e
(0,1,2,2)
0.9
0.1
f2
(0,1,1)
Figura 5.18: DAG – Processo utilizado na desactivação de arcos.
de destino do arco, ao vector de fechos do vértice de origem do arco, não originar valores nulos.
.
Por exemplo, o arco que vai de a pode ser eliminado pois Note-se porém que a tentativa de eliminar o arco
conduziria ao cálculo , o qual origina um valor nulo e consequentemente não permite eliminar o arco.
-
- + + - - + + Princı́pio dos modelos mais longos
O princı́pio designado como dos modelos mais longos (Abney, 1996; Hagège, 2000), consiste em
eliminar as análises que correspondem a árvores com um maior conjunto de nós. A utilização desta
heurı́stica é feita em duas fases: a primeira fase ocorre durante a análise e a segunda ocorre na fase
de extracção de resultados. A primeira etapa de utilização desta heurı́stica é contemplada na linha
15 no algoritmo 5 (C ALC -M ODELS), logo após a aplicação de preferências. À semelhança das preferências, a eliminação de um fragmento implica necessariamente a existência de outro do mesmo
tipo, que permita realizar a análise em iguais ou melhores condições. Assim utiliza-se também o
vector de fechos utilizado também para a aplicação das preferências, como forma de verificação. A
segunda etapa é aplicada na fase de extracção de resultados. A cada resultado é atribuı́do um peso
e em função desses pesos pode-se fazer uma ordenação de resultados ou simplesmente eliminar os
resultados que não oferecem os melhores pesos.
5.4.7
Análise da complexidade
modelos não terminais, modelos terminais e .
Considere-se uma gramática com
Sendo o grafo utilizado para representar a estrutura da análise, cada vértice de está associado
a uma posição do segmento e representa a possibilidade de ocorrência de um modelo dentro
, com
de outro modelo nessa posição. Assim,
, sendo
, um modelo não terminal e um modelo terminal ou não terminal.
, # # de para uma dada posição
Considere-se um qualquer vértice
. O
número de vértices nessa posição, sendo modelo terminal é limitado por
. Nessa posição,
uma vez que o algoritmo não admite modelos recursivos, o número de vértices sendo modelo
não terminal, é limitado por . Assim, o número total de vértices é limitado
)
) ' ) . Conclui-se que o número de vértices de
por
) . Note-se que de uma forma geral,
associado à análise de um segmento de tamanho é
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
74
se o modelo ocorre no modelo e o modelo ocorre no modelo , ent ão o modelo não ocorre
directamente no modelo . Admitindo esta hipótese, o número de vértices de , para a posição
,
, implicando que o número de vértices de para um segmento de tamanho
é limitado por
.
é
) O grafo é composto por zero ou mais sub-grafos, que por sua vez podem ser compostos por
outros sub-grafos, formando assim vários nı́veis. Cada um dos grafos corresponde a um fragmento
de análise e cada nı́vel pode ser constituı́do por um ou mais sub-grafos. Cada vértice de contém
um conjunto de arcos para vértices do mesmo nı́vel e um conjunto de arcos para vértices de nı́vel
inferior. O número de arcos para vértices do mesmo nı́vel, que saem de um vértice , é no máximo
, e consequentemente limitado por
. O número de arcos que saem
de , para vértices de nı́veis inferiores é limitado por . Assim, o número total de arcos
que saem de é
.
)
) ) ) O número de operações para cada vértice é dado em função do número de arcos com origem
nesse vértice. Assim, a construção de corresponde a
operações, que corresponde
. Partindo do princı́pio a análise é sempre efectuada com a mesma gramática, é
a
um valor constante, consequentemente o número de operações para a análise de um segmento de
tamanho é
.
) ) ) ) Durante os testes realizados, verificou-se que o número de vértices para uma determinada
posição é limitado por um valor constante, bem como o número de arcos que saem desse vértice.
.
O que leva a concluir que a complexidade é, na prática,
5.5 Processo de extracção de resultados
Tal como foi visto antes, a utilização de resultados intermédios, entre a fase de análise e a fase
de extracção de resultados, permite que a análise possa ser efectuada com parâmetros independentes dos parâmetros usados para a extracção de resultados, permitindo, por exemplo, identificar
frases num texto e extrair apenas os sintagmas nominais dessas frases. Esta secç ão descreve os
conjuntos de parâmetros aceites pelo SuSAna aplicados à fase de extracção de resultados.
5.5.1
Elemento de topo
No que diz respeito à fase de extracção, o elemento de topo corresponde à estrutura linguı́stica
que se pretende extrair. Por omissão, este valor é definido à custa do elemento de topo usado para
a análise, correspondendo assim à estrutura identificada. A re-definição deste elemento permite
extrair sub-estruturas da estrutura analisada. Esta funcionalidade permite, por exemplo, extrair
sintagmas nominais de uma frase.
Considere-se a figura 5.19 , que representa a análise de uma frase, constituı́da por quatro
hipóteses. Cada hipótese é composta por um conjunto de fragmentos, representados por rectângulos.
Supondo que os fragmentos em destaque na figura são do tipo do modelo que se pretende extrair,
o resultado da extracção seria composto por três possibilidades diferentes, em que a primeira corresponderia aos quatro fragmentos iguais. Os dois fragmentos da parte final da frase n ão se po-
5.5. PROCESSO DE EXTRACÇÃO DE RESULTADOS
75
Figura 5.19: Representação da análise de uma frase constituı́da por quatro hipóteses.
dem juntar numa só, porque, possuindo diferentes comprimentos, correspondem obrigatoriamente
a fragmentos diferentes.
5.5.2
Re-definição dos parâmetros
e Os valores
e
, usados para parametrizar o processo de análise, são também utilizados para o processo de extracção. Contudo, o seu valor é re-definindo, no caso do elemento de topo
usado na extracção ser diferente do que foi utilizado na análise e da análise não ter considerado
segmentos múltiplos. Neste caso, ambos os elementos passam a ser verdadeiros, pois tem-se um
caso de extracção de sub-fragmentos do segmento.
5.5.3
Formatos de saı́da
A informação produzida na fase de análise pode ser obtida em diversos formatos, de forma a
satisfazer as necessidades do utilizador ou do sistema no qual o SuSAna pode vir a ser integrado.
XML
A figura 5.20 , apresenta a análise de uma frase em formato XML. O conjunto de elementos
definidos no DTD permite acrescentar um conjunto de informação adicional à análise, como é o caso
do seu grau de confiança. Um dos aspectos que importa focar relativamente ao XML é a facilidade
que oferece em preservar informação lida que não é relevante para a análise, como é o caso do lema
da palavra.
Contagens
Este formato permite obter contagens relativas aos resultados da análise. Neste formato, cada
linha corresponde à análise de uma hipótese de segmentação de um segmento. Apresenta-se o
número do segmento seguido do número da hipótese bem como o seu comprimento em termos de
unidades lexicais. Em termos de resultados de análise, apresenta-se o tempo de análise de todo o
segmento, bem como o número de soluções encontradas. Em virtude dos resultados poderem ter
sido analisados com a opção
e
, apresenta-se para cada conjunto de soluções, a sua
posição inicial no segmento, bem como o seu comprimento máximo. A listagem representada na
figura 5.21 , apresenta um extracto de um resultado produzido neste formato.
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
76
<segment>
<!-- A ainda mais bela rapariga -->
<hypothesis length="5">
<analysis weight="0" start="0" length="5">
<model name="ph" start="0" length="5">
<model name="m nn" start="0" length="5">
<model name="artd s" start="0" length="1">
<word name="A" root="o"/></model>
<model name="m an1" start="1" length="3">
<model name="m advn1" start="1" length="2">
<model name="adv1" start="1" length="1">
<word name="ainda" root="ainda"/></model>
<model name="advcomp" start="2" length="1">
<word name="mais" root="mais"/></model>
</model>
<model name="adj1 s" start="3" length="1">
<word name="bela" root="belo"/></model>
</model>
<model name="nc1 s" start="4" length="1">
<word name="rapariga" root="rapaz"/></model>
</model>
</model></analysis>
<analysis weight="0" start="0" length="5">
<model name="ph" start="0" length="5">
<model name="m prepn" start="0" length="5">
<model name="prep" start="0" length="1">
<word name="A" root="a"/></model>
<model name="m anp" start="1" length="3">
<model name="m advnp" start="1" length="2">
<model name="adv1" start="1" length="1">
<word name="ainda" root="ainda"/></model>
<model name="advcomp" start="2" length="1">
<word name="mais" root="mais"/></model>
</model>
<model name="adj1 s" start="3" length="1">
<word name="bela" root="belo"/></model>
</model>
<model name="nc1 s" start="4" length="1">
<word name="rapariga" root="rapaz"/></model>
</model>
</model>
</analysis></hypothesis></segment>
Figura 5.20: Análise em formato XML, da frase: A ainda mais bela rapariga.
Seg(2,0)
Seg(3,0)
Seg(4,0)
Seg(5,0)
Seg(6,0)
Len( 7)
Len( 5)
Len( 5)
Len(26)
Len(53)
Time(0.04)
Time(0.02)
Time(0.01)
Time(0.12)
Time(0.05)
[pos(0) len( 7) sols( 2)]
[pos(0) len( 5) sols( 2)]
[pos(0) len( 5) sols( 1)]
[pos(0) len(26) sols( 1)]
#Uma promessa feita ontem
#Esta bela amiga ...
#A ainda mais bela ...
#cães bonitos ...
#Um interesse ...
na cidade de ...
Figura 5.21: Extracto da análise de segmentos, no formato: contagens.
5.5. PROCESSO DE EXTRACÇÃO DE RESULTADOS
77
ph(
m nn( dem(Esta) adj1 s(bela) nadj s(amiga))
phv n( vc(portuguesa))
m prepn( prep(de) artd s(o) npr4(Pedro)))
Figura 5.22: Resultado da análise de um segmento em formato: texto.
ph(
m nn( Esta bela amiga )
phv n( portuguesa )
m prepn( de o Pedro ) )
Figura 5.23: Resultado da análise de um segmento em formato: sintagmas.
Texto
Este formato orientado para uma fácil observação dos resultados por parte do linguista, permitindo uma leitura compacta da informação. O exemplo da figura 5.22 , apresenta uma análise
produzida neste formato. O resultado é produzido com base em parêntesis, que permitem dividir os constituintes da frase, e em tabulações, que permitem uma fácil identificação dos nı́veis
hierárquicos definidos na análise.
Sintagmas
A figura 5.23 apresenta uma análise neste formato. A principal diferença relativamente ao formato texto, deve-se ao facto de não apresentar os modelos terminais associados às unidades lexicais.
Note-se que o número de possibilidades obtidas com o formato anterior pode ser superior ao apresentado neste formato, pois no formato texto duas análises iguais que diferem apenas na utilização
de dois modelos terminais diferentes, constituem dois resultados diferentes. Caso a informação
obtida por este formato seja suficiente, permite uma leitura mais clara e simples dos resultados.
Formato adequado à construção de grafos
O resultado obtido com a utilização deste formato pode ser utilizado para a obtenção de um
grafo representativo da análise. Este formato permite obter todo o tipo de informação relativo
à análise, de uma forma compacta. Existem numerosas ferramentas que permitem visualizar a
informação gerada. O formato pode ser utilizado directamente com o conjunto de aplicaç ões fornecidos com o pacote GraphViz1 (Gansner et al., 1988, 1993; Koutsofios e North, 1996). A figura 5.24
mostra o exemplo de um grafo produzido a partir da informação produzida com o SuSAna. Note-se
que o grafo contém informação acerca dos arcos eliminados, bem como o custo atribuı́do a cada arco.
A informação gerada pode ser vista como uma representação da estrutura da análise em memória.
1 Colecção de ferramentas e pacotes, open source, destinados à manipulação de configuração do aspecto de grafos.
http://www.graphviz.org/
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
78
ph
m_prepn_part
7−8−S−N−N−(0,0)
m_prepn_part
m_prepn_part
prep
7−8−S−N−C−(0,1)
artd_s
8−8−N−E−C−(0,0)
ph
ph
m_nn_part
0−0−S−N−N−(0,0)
copi_n
m_nn_part
prep
4−4−S−N−N−(0,0)
7−7−S−N−N−(0,0)
m_nn_part
madv
artd_s
4−4−S−E−C−(0,0)
prep
7−7−S−N−N−(0,0)
ph
m_nn_part
artd_s
0−0−S−E−C−(0,0)
ph
ph
ph
m_nn
0−9−S−E−C−(0,11)
phv_n
2−9−S−E−C−(0,7)
que_n
3−9−S−N−C−(0,6)
m_nn
artd_s
m_nn
npr4
phv_n
vc
que_n
qu
0−1−S−N−C−(0,1)
1−1−S−E−C−(0,0)
2−2−S−E−C−(0,0)
3−3−S−E−C−(0,0)
inf_n
m_cli
prep
4−4−N−E−C−(9999,0)
7−7−S−N−N−(0,0)
m_nn
artd_s
m_nn
npr4
m_reln
prep
4−5−S−N−C−(0,1)
5−5−S−E−C−(0,0)
7−7−S−N−N−(0,0)
m_cli
que_n
cli_ac
4−4−S−E−C−(0,0)
prep
7−7−S−N−N−(0,0)
ph
m_nn
ph
phv_n
ph
m_prepn
4−9−S−E−C−(0,5)
6−9−S−E−C−(0,1)
7−9−S−E−C−(0,0)
m_prepn
m_prepn
phv_n
vc
prep
7−9−S−N−C−(0,2)
artd_s
8−9−N−N−C−(0,1)
m_prepn
nc1_s
9−9−N−E−C−(0,0)
6−6−S−E−C−(0,0)
O
Jorge
disse
que
o
João
saiu
m_prepn
nc2_s
9−9−N−E−C−(0,0)
em
o
carro
Figura 5.24: Grafo de análise da frase: O Jorge disse que o João saiu em o carro.
5.5.4
Previsão de modelos em estruturas incompletas
Uma das tarefas que se podem realizar com a SuSAna, consiste em prever o conjunto de modelos admissı́veis para a palavra seguinte, numa frase que se encontre incompleta. Esta funcionalidade está actualmente a ser utilizada num sistema de auxı́lio à escrita de poemas, para limitar o
conjunto de palavras admissı́veis numa rima (Araújo, 2003).
5.5.5
Desambiguação
O SuSAna pode ser utilizado para a desambiguação parcial de texto, tendo presente que as
categorias gramaticais não utilizadas em análises obtidas são inválidas no contexto sintáctico em
que se encontram. Esta funcionalidade será integrada em versões futuras do SuSAna.
5.6 Casos de utilização do sistema
A necessidade de utilização da análise sintáctica no contexto de actuais e futuros projectos
ou tarefas em curso no L F constitui uma das principais motivações para o desenvolvimento do
SuSAna. O módulo do SuSAna tem sido utilizado em diversas tarefas e está actualmente a ser
utilizado em sistemas de processamento de linguagem natural. Nesta secção são descritas algumas
tarefas que usam o SuSAna.
5.6. CASOS DE UTILIZAÇÃO DO SISTEMA
5.6.1
79
ATA: Aquisição Automática de Termos
O ATA (Paulo et al., 2002) é um sistema, uma arquitectura e uma metodologia para a extracção
automática de termos. A cadeia de processamento do sistema é composta por várias tarefas: 1)
Lematização – efectuada com o analisador morfológico Smorph, o resultado produzido nesta fase é
texto lematizado; 2) processamento pós morfológico – tarefa efectuada com o PaSMo que consiste em
agrupar as unidades de texto lematizado na fase anterior; 3) análise sintáctica de superfı́cie – tarefa
realizada com o SuSAna cujo resultado consiste em texto lematizado e delimitado sintacticamente;
4) extracção de termos. O resultado final consiste numa lista de termos simples e numa lista de
termos compostos, obtidos com base em frequências.
A identificação de termos é efectuada no ponto 3) da cadeia de processamento. Para esse efeito,
foram adicionadas regras à gramática do SuSAna, que lhe permitem reconhecer a estrutura de um
termo.
5.6.2
Poeta: sistema de auxı́lio a escrita de poemas
Este sistema tem como função sugerir um conjunto de possı́veis palavras para uma rima incompleta. O correcto funcionamento do Poeta passa por identificar todas as palavras ou formas
que se podem sugerir ao utilizador, tendo em consideração que esse conjunto deve ser o mais reduzido possı́vel. Nesse contexto, a cada palavra são aplicadas restrições ao nı́vel da terminação,
classificação morfossintáctica e se faz sentido sob o ponto de vista sintáctico. O SuSAna tem um
modo de funcionamento que lhe permite deduzir, para uma frase incompleta, quais as categorias
morfossintácticas que fariam sentido para continuar essa frase. Essa funcionalidade permite restringir ainda mais o conjunto de categorias que a palavra a sugerir pode assumir.
5.6.3
Extracção de sintagmas nominais
O reconhecimento de sintagmas nominais em corpora é uma tarefa importante e de grande
aplicação em diversas áreas. Uma das áreas onde a sua aplicação tem sido investigada é na
recuperação de informação. Grande parte da comunidade cientı́fica considera que os sintagmas
nominais constituem a informação mais significativa para a identificação do conteúdo de um texto,
a sua utilização em sistemas de representação de documentos permite, por um lado destacar a
informação representativa do documento e, por outro, reduzir a quantidade de informação necessária à representação desse mesmo documento. A representação de documentos pode ser, por
exemplo, usada em sistemas de recuperação de texto.
5.6.4
Testes sobre corpus com e sem ambiguidade
Os testes apresentados de seguida foram realizados para verificar o tipo de resultados produzidos pelo SuSAna em função da ambiguidade de um corpus com texto não restrito2 , e consistem em
identificar a estrutura dos sintagmas nucleares presentes nesse corpus.
2 A expressão texto não restrito vem do Inglês unrestricted text e corresponde à expressão texto real. Artigos de um jornal
ou a transcrição de um corpus de fala, são exemplos de texto real.
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
80
Tempo (segs.)
Total
por frase
Com amb.
Sem amb.
333,99
0,13
212,73
0,08
Tabela 5.1: Comparação do tempo de processamento do SuSAna com base na ambiguidade.
Hip.
Ambig.
Desamb.
0
14,9%
23,7%
1
47,1%
71,7%
2
23,1%
2,3%
3-4
8,2%
2,1%
4
6,7%
0,2%
Tabela 5.2: Comparação do número de soluções por cada resultado em função da ambiguidade.
Os testes foram conduzidos com base numa gramática constituı́da por: 269 blocos; 70 relações
hierárquicas; e 199 preferências, totalizando 538 regras. As regras definem o comportamento de
151 modelos diferentes, 116 dos quais terminais e os restantes não terminais.
Os textos considerados neste teste são constituı́dos por excertos de livros com aproximadamente
29100 palavras. A segmentação dos textos em frases revelou 2608 segmentos com uma média de
10,96 palavras por segmento. A classificaç ão morfossintáctica produziu um total de 38574 etiquetas
o que corresponde a uma ambiguidade média de 1,326.
Resultados da análise
Os testes foram realizados com e sem ambiguidade morfossintáctica. A análise de informação
com ambiguidade morfossintáctica traduz-se num tempo de processamento mais elevado e num
conjunto maior de possibilidades de análise. Por outro lado, a desambiguação morfossintáctica
automática pode aumentar o número de erros. A tabela 5.1 apresenta o tempo de processamento3
despendido em cada um dos testes.
A análise de uma frase pode ser constituı́da por mais do que uma possibilidade: assim, é desejável obter o menor conjunto de análises não vazias, limitando simultaneamente o número total
de hipóteses com recurso a preferências e ao princı́pio dos modelos mais longos. Nesse sentido, o
número de hipóteses de cada análise foi considerado como uma das medidas de avaliaç ão.
A tabela 5.2 mostra o número médio de hipóteses geradas para o conjunto de frases, tendo
como base informação ambı́gua e desambiguada. Relativamente à informação com ambiguidade, os
resultados mostram que a maioria das análises consiste numa ou duas possibilidades. A informação
desambiguada, por seu lado, origina um maior número de análises vazias, grande parte delas devido
aos erros introduzidos pelo desambiguador, reduzindo assim o número de possibilidades de análise.
3 Testes
realizados num processador Intel Pentium III 800 Mhz usando o sistema operativo Linux.
5.7. SUMÁRIO
81
5.7 Sumário
Este capı́tulo apresenta SuSAna, um módulo de análise sintáctica de superfı́cie concebido e
implementado no âmbito desta tese. Este analisador foi desenvolvido tendo como ponto de partida
o funcionamento do protótipo de análise de superfı́cie AF (Hagège, 2000). Os objectivos propostos para o desenvolvimento do SuSAna, assentam no desenvolvimento de uma ferramenta integrada, independente e orientada para o processamento de grandes quantidades de corpora. A sua
integração noutros sistemas e plataformas, foi um dos aspectos tidos em consideração no seu desenvolvimento, razão pela qual se implementou como um módulo. Foca-se o uso do XML para a
representação de dados e define-se o tipo de dados que o SuSAna processa. Neste contexto define-se
a noção de segmento e descreve-se a sua estrutura.
No que diz respeito ao funcionamento do módulo, a secção 5.3 aborda a sua arquitectura e a
representação interna da informação. Relativamente à sua arquitectura, o sistema separa a função
de análise da função de extracção de resultados. A ligação entre essas duas funções é estabelecida
por uma estrutura de dados, designada por repositório, que contém toda a informação necessária
para a produção de resultados. O repositório permite também utilizar informação previamente
calculada, de forma a reduzir o tempo de execução da aplicação.
Na secção 5.4 descreve-se o processo de análise e os algoritmos utilizados. O núcleo da análise
de superfı́cie é composto por duas funções. A função C ALC -M ODELS é responsável por calcular
todos os modelos de um tipo T, que se podem iniciar na posição w do segmento em análise. G ETS IBLING -M ODELS calcula e devolve todas as sequências de modelos que podem ocorrer a partir de
uma posição w do segmento após a ocorrência de um fragmento L e dentro de um modelo T. A função
C ALC -B RANCHES é responsável por seleccionar os caminhos seguintes possı́veis e aplicar o custo a
cada um deles em função preferências presentes na gramática. Finalmente, a função C ALC -D AG V ERTICE é responsável por criar os nós do grafo de análise e estabelecer as relações entre esses nós.
Estas funções funcionam recursivamente de forma cruzada. O processo análise tem uma comple
, sendo o número de unidades lexicais do segmento e o número de sı́mbolos
xidade
presentes na gramática. Um dos principais pontos a ter em conta numa aplicação de análise de
superfı́cie é a limitação do número de análises, mantendo simultaneamente a cobertura relativamente aos fenómenos linguı́sticos. O SuSAna utiliza dois mecanismos de restrição de análises:
preferências e princı́pio dos modelos mais longos.
) 82
CAPÍTULO 5. SUSANA: ANALISADOR DE SUPERFÍCIE
Após a descrição do módulo de análise de superfı́cie SuSAna, importa analisar os seus resultados e o seu desempenho em corpus. Este capı́tulo inicia-se com uma análise do conjunto de resultados, através da comparação entre os resultados do AF e os resultados do SuSAna. De seguida
avalia-se o desempenho do sistema desenvolvido, num corpus jornalı́stico com cerca de 4,5 milhões
de unidades lexicais. Apresentam-se também um conjunto de estatı́sticas e algumas considerações
acerca do tipo de resultados obtidos.
6.1 Condições de avaliação
Os testes conduzidos no âmbito desta avaliação foram realizados num computador com sistema
operativo Linux, cujas caracterı́sticas são apresentadas na tabela 6.1. Durante a realização dos testes, a máquina executava um conjunto de processos, que fazem parte do seu normal funcionamento,
contudo, os tempos de processamento apresentados em cada tarefa, correspondem apenas ao tempo
de dedicação do processador a essa tarefa, obtidos com o comando time.
Atributo
Sistema operativo
Versão do kernel
Processador
Cache
Frequência
Bogomips
Memória
Swap
Valor
Linux RedHat
2.4.20-8
Intel Pentium III
256 KB
800 Mhz
1600
512 Mb
256 Mb
Tabela 6.1: Caracterı́sticas do computador onde foram realizados os testes de desempenho.
6.2 Gramática
A informação presente nas diferentes versões da gramática, usadas ao longo deste capı́tulo,
provém da gramática descrita por Hagège (2000) e utilizada nos seus testes com o protótipo AF.
Esta gramática foi desenvolvida com o propósito de delimitar os sintagmas nominais presentes
CAPÍTULO 6. AVALIAÇÃO
84
numa frase. Assim, a parte relativa ao seu tratamento encontra-se mais desenvolvida: o tratamento de sintagmas verbais, por exemplo, está a ser feito de forma pouco profunda, conduzindo
necessariamente a uma falta de precisão nos resultados.
Foram introduzidas algumas modificações à gramática, umas vezes originadas por inconsistências encontradas, outras para proporcionar novas etiquetas ou modelos mais especı́ficos.
Apresentam-se as modificações mais relevantes:
Tratamento da coordenação: em Hagège (2000), os fenómenos de coordenação são tratados
de forma superficial, em que parte do processamento é efectuado ao nı́vel do algoritmo. O
algoritmo do AF usa uma estratégia de Look-Ahead, na qual são examinadas as classificações
das palavras à direita de uma vı́rgula ou conjunção, antes de considerar o caso de coordenação.
O algoritmo do SuSAna, contudo, permite efectuar o mesmo tratamento, apenas com base nas
regras da gramática e seguindo sempre a mesma estratégia. Assim, foram introduzidas na
gramática, as regras que o SuSAna necessita, para produzir os mesmos resultados obtidos
pelo AF.
Foi introduzido o modelo break. este modelo, permite indicar ao SuSAna o fim de uma frase.
A gramática utilizada pelo AF, apenas utiliza o modelo m ponct no qual se podem incluir:
pontos finais, parêntesis, reticências, etc. O facto de poder incluir sı́mbolos que não terminam
uma frase, como é o caso dos parêntesis, obriga a indicar na gramática que o modelo m ponct
nem sempre termina uma frase. O modelo break é uma categoria ou modelo terminal, que
pode ser usado nos dados de entrada do SuSAna para indicar o fim de uma frase, mesmo que
o segmento não termine nesse ponto. Na gramática foi introduzida informação de que este
modelo apenas poderá seguir os modelos que podem terminar uma frase, e termina sempre a
frase. Note-se que, na ausência deste modelo, quando se envia para o SuSAna, por exemplo,
um ponto final imediatamente antes do fim do segmento, este vem etiquetado com a etiqueta
eliminer.
No momento da realização dos testes que se descrevem neste capı́tulo, a gramática continha
informação acerca do comportamento de 152 modelos diferentes, 117 dos quais terminais e os restantes não terminais. Em termos de regras, a gramática era composta por um total de 542 regras,
das quais 270 eram blocos, 73 eram relações hierárquicas e 199 eram preferências.
6.3 Comparação entre o AF e o SuSAna
Utilizando a mesma informação, isto é, gramáticas que permitam associar a mesma estrutura
a cada frase da lı́ngua, as duas aplicações devem produzir os mesmos resultados, e no caso de
diferenças deve-se procurar a sua justificação. Note-se que uma das motivações para o desenvolvimento do SuSAna é substituir a utilização do AF pelo SuSAna. Assim, foram realizados testes
de comparação entre o SuSAna e o AF, aproximando as condições de realização dos testes de cada
um dos sistemas. Os parâmetros de avaliação considerados foram a eficiência e o conjunto de resultados obtidos em cada um deles. Os dados utilizados na realização dos testes são processados de
forma a que a informação presente na entrada de cada um dos analisadores seja a mesma, embora
6.3. COMPARAÇÃO ENTRE O AF E O SUSANA
85
Figura 6.1: Diagrama de tratamento de informação, de forma a ser processada tanto pelo AF como
pelo SuSAna.
no formato adequado a cada um dos sistemas. Desta forma, garante-se que os resultados obtidos dependem apenas do processamento realizado por cada um dos sistemas. No que diz respeito
à eficiência, foi feito um esforço no sentido de tornar possı́vel a realização dos testes na mesma
máquina, na mesma plataforma, e em iguais condições, de forma a obter tempos de medição mais
precisos.
6.3.1
Preparação dos dados
De forma a proceder na tarefa de análise sintáctica, cada um dos analisadores necessita de
informação previamente classificada morfossintacticamente. Contudo, o tipo de dados utilizado
por cada um dos analisadores diverge. Assim, a estratégia que se adoptou consistiu em utilizar as
mesmas ferramentas para efectuar o processamento de nı́vel morfossintáctico, e adaptar o resultado
obtido ao formato requerido por cada uma das aplicações. Esta estratégia garante que o conjunto
de dados obtido por cada uma das ferramentas seja equivalente.
O primeiro passo no processo de produção dos dados consiste em classificar a informação ao
nı́vel morfológico, tarefa que foi realizada pelo analisador morfológico SMORPH de Aı̈t-Mokhtar
(1998). O segundo passo consiste em produzir um conjunto de segmentos, constituı́dos por unidades
lexicais devidamente classificadas com um conjunto de etiquetas, a partir das classificaç ões obtidas
no passo anterior. Este passo foi conduzido com recurso ao pós-analisador morfológico PaSMo (Paulo
e Mamede, 2001; Paulo et al., 2002).
A informação presente à saı́da do PaSMo é suficiente para que se possam realizar os testes, contudo não se encontra ainda no formato adequado. A conversão da informação para o formato adequado à leitura pelo SuSAna não levanta problemas, pois tanto a saı́da do PaSMo como a entrada do
SuSAna se encontram no formato XML. A conversão é realizada com um pequeno programa em linguagem XSLT. A conversão da informação para a entrada do AF, por seu lado, levanta um conjunto
de problemas, pois o AF exige um formato especial em que cada etiqueta presente no corpus seja
acompanhada pelas folhas presentes na gramática do AF, que se adequam a essa etiqueta. Como
não existem ferramentas disponı́veis para a solução deste problema, foi construı́da uma aplicação
para esse efeito, que se designou por Pasmo2Af. A figura 6.1 ilustra toda a cadeia de processamento
associada ao processo de preparação dos dados.
CAPÍTULO 6. AVALIAÇÃO
86
6.3.2
Preparação e parametrização dos analisadores
De forma a proporcionar condições de avaliação semelhantes aos dois analisadores, foi necessário, por um lado, colocar os dois sistemas em funcionamento na mesma plataforma e, por
outro, parametrizar o SuSAna de forma a produzir o tipo de resultados do AF.
Preparação do AF
O primeiro passo no sentido de aproximar as condições de teste dos dois analisadores, consistiu em juntar todos os ficheiros de código do AF num único ficheiro de forma a reduzir o overhead
na consulta dos vários ficheiros, mantendo a mesma funcionalidade. Esta forma de utilizaç ão não
permite, ainda assim, uma avaliação precisa, dado que o SuSAna é uma aplicação compilada e o
AF é interpretado. O passo seguinte consistiu em compilar a versão compacta do AF e produzir
um ficheiro binário e executável. A geração do ficheiro executável foi realizada recorrendo às ferramentas que acompanham o sistema de desenvolvimento SICStus v3.10,1 e efectuada com todas as
optimizações permitidas.
Parametrização do SuSAna
Como foi mencionado na sub-secção 5.4.5 do capı́tulo anterior, o SuSAna permite efectuar a
análise e extrair resultados com base num conjunto de parâmetros. Para os testes apresentados
activada e as opções
e
desactivadas. A
o SuSAna é executado com a opção
opção
resulta do AF apenas permitir apenas analisar segmentos com uma única estrutura
linguı́stica de topo. Por outro lado, como o AF devolve resultados incompletos no caso de n ão conseguir tratar todo o segmento, a melhor forma encontrada para produzir resultados semelhantes
foi utilizando a opção
. Assim, todos os resultados produzidos pelo SuSAna são analisados
de forma a identificar os casos problemáticos: se o resultado da análise não contempla a primeira
palavra da frase, então considera-se que o SuSAna produz zero resultados; se o resultado não cobre
todas as palavras da frase, é feita uma análise manual do problema.
6.3.3
Corpus utilizado na avaliação
O processo de análise de resultados foi condicionado pela existência de erros ou inconsistências
no AF. Por exemplo, a frase seguinte origina um erro, impedindo a continuação da análise:
[ F16
[ A1
’um’, [’um’,’arti s’],
’trabalho’, [’trabalho’,’nc1 s’ , ’trabalhar’,’vc12’],
’algo’, [’algo’,’pri’],
’violento’, [’violentar’,’vc12’]
] A1
] F16 %fim da frase número 16
1 O sistema de desenvolvimento de prolog SICStus é um sistema que obedece às normas ISO. Trabalhando sobre um
núcleo eficiente, permite o tratamento de grandes quantidades de informação.
6.3. COMPARAÇÃO ENTRE O AF E O SUSANA
87
Assim, optou-se por fazer a comparação entre o AF e o SuSAna, apenas com base no corpus
utilizado por Hagège (2000), durante a avaliação do AF. A escolha deste corpus permite garantir
uma execução correcta por parte do AF, uma vez que esse corpus já fora anteriormente processado
pelo AF. De acordo com Hagège (2000), este corpus é composto por aproximadamente 4000 palavras,
e foi construı́do com base em três fontes distintas:
constituição. Introdução e os seis primeiros artigos da Constituição da República Portuguesa;
jornal1 e jornal2. Extractos do jornal Público, escolhidos arbitrariamente;
teses. Extractos de duas teses de Mestrado.
A tabela 6.2 apresenta as caracterı́sticas gerais do corpus, entre as quais, o número de segmentos
que o compõem, bem como o número de hipóteses de divisão desses segmentos. Note-se, por exemplo, que em jornal1, existe um segmento com duas alternativas, isto é, duas hipóteses de divisão em
unidades lexicais. Para cada parte distinta do corpus, são indicados também o número de palavras
e etiquetas a elas associadas; média de palavras por hipótese de frase; e ambiguidade média, que
corresponde à média do número de etiquetas atribuı́das a cada palavra.
Textos
constituição
jornal1
jornal2
teses
Totais
Segmentos
28
45
20
54
147
Hipóteses
28
46
22
55
151
Palavras
615
1323
623
1706
4267
Etiquetas
807
1749
854
2248
5658
Pals/Hips
21.96
28.76
28.32
31.02
28.26
Amb.
1.31
1.32
1.37
1.32
1.33
Tabela 6.2: Caracterı́sticas dos textos utilizados para comparar os analisadores AF e SuSAna.
6.3.4
Processo para extracção de resultados
A primeira etapa no processo de comparação entre o AF e o SuSAna consiste em comparar
os resultados produzidos por cada um dos sistemas, de forma a identificar as possı́veis diferenças.
Uma vez que os sistemas produzem diferentes tipos de resultados e em diferentes formatos, esta
etapa compreendeu a passagem da informação para um formato único. Tendo em consideração que
a estrutura da informação produzida pelo SuSAna permite representar toda a informação obtida
do AF, e se encontra em formato XML, optou-se por construir uma ferramenta de convers ão, dos
resultados do AF para os resultados do SuSAna, que se designou por af2xml. A comparação dos
resultados foi realizada a partir de dois ficheiros correspondentes à análise do SuSAna e do AF, nos
quais cada linha corresponde a uma das possibilidades de análise de cada frase. Estes ficheiros
foram produzidos com base em XSLT, a partir da estrutura de dados produzida pelo SuSAna. A
figura 6.2 mostra a sequência de processamento utilizada no processo.
CAPÍTULO 6. AVALIAÇÃO
88
Figura 6.2: Diagrama de processamento de resultados produzidos pelo AF e pelo SuSAna.
6.3.5
Resultados
Apresenta-se seguidamente uma análise aos resultados obtidos pelos dois analisadores, tanto
no que diz respeito à informação produzida, como em termos de tempo de processamento.
Diferença de resultados
Em Hagège (2000), os fenómenos de coordenação são tratados de forma superficial. O algoritmo
do AF usa uma estratégia de Look-Ahead, na qual são examinadas as classificações das palavras à
direita de uma vı́rgula ou conjunção, antes de considerar o caso de coordenação (ver secção 3.2.6). O
algoritmo do SuSAna, contudo, permite efectuar o mesmo tratamento, apenas com base em regras
da gramática, tendo em consideração que é aplicado o princı́pio dos modelos mais longos. Nos
resultados produzidos pelo AF, verificaram-se resultados incoerentes com as regras da gram ática
e com as indicações dadas por Hagège (2000) relativamente ao tratamento da coordenação. As
incoerências verificadas, dizem respeito ao tratamento da coordenação, e devem-se provavelmente
à forma particular de tratamento destes casos no AF. Uma vez que este tipo de problema se encontra
localizado, foi implementado um script que corrige este tipo de ocorrências com o AF, fazendo com
que este problema não influencie os resultados.
Após efectuar os tratamentos necessários, verificou-se ainda assim que, grande parte das
análises produzidas pelos dois analisadores diferem, tanto no que diz respeito à estrutura da
análise, como em termos do número de análises produzidas. De forma a perceber as razões que
levam a estas diferenças, foi analisada pormenorizadamente a parte do corpus designado por constituição. Das 28 frases analisadas, apenas 13 deram resultados exactamente iguais, embora outras
4 possuı́ssem hipóteses de resultados comuns a ambos os analisadores. A tabela 6.3 mostra de uma
forma resumida o tipo e a razão das diferenças. De seguida, descrevem-se os factores que levam às
diferenças nos resultados das restantes 15 frases:
Análises incompletas não justificadas. Por vezes, o AF devolve resultados com an álises incompletas, que abrangem diferentes números de palavras na frase, chegando mesmo a devolver
resultados com análises completas e incompletas em simultâneo. Grande parte das análises
incompletas devolvidas envolvem apenas uma pequena parte da frase. Por exemplo, em frases
com 78 palavras, devolve resultados que abrangem apenas as duas primeiras palavras.
Análises repetidas. O AF repete, por vezes, a mesma alternativa de análise, contribuindo assim
para um aumento do número de alternativas e consequentemente para a diferença de resultados.
6.3. COMPARAÇÃO ENTRE O AF E O SUSANA
89
Figura 6.3: Tipos de diferenças nos resultados produzidos pelo AF e pelo SuSAna, relativos aos
textos constituição.
Utilização parcial das preferências. Foram observados casos de resultados produzidos pelo AF,
que poderiam ser eliminados, com base nas preferências existentes na gramática.
Utilização parcial do princı́pio dos modelos mais longos. Por vezes, o AF devolve resultados,
que se verificaram poder ser eliminados, com base no princı́pio dos modelos mais longos. A
análise realizada pelo SuSAna, compreende a construção de um grafo onde se testam todas as possibilidades de análise. A extracção de resultados, a partir desse grafo, permite a
comparação de todas as possibilidades de análise de forma a poder contemplar todas as possibilidades de aplicação das preferências e de eventuais princı́pios. Por seu lado, o AF realiza
uma procura parcial que o impede de contemplar todos os casos.
Desempenho dos sistemas
No que diz respeito ao desempenho, as duas aplicações foram analisadas quanto ao tempo
de processamento e memória ocupada. A tabela 6.3 apresenta os valores obtidos em cada parte do
corpus, acrescentando também o número de hipóteses de análise e o tamanho dos resultados, depois
de convertidos no formato XML. No que diz respeito aos tempos, no caso do SuSAna, pode verificarse uma correlação entre os tempos de processamento e o tamanho dos resultados. Na realidade,
CAPÍTULO 6. AVALIAÇÃO
90
Texto
constituição
jornal1
jornal2
teses
User time (s)
AF
SuSAna
11,33
9,72
15,56
11,00
26,14
3,71
26,74
20,73
Memória (kb)
AF
SuSAna
29.572
3.940
15.888
4.644
55.700
3.720
20.440
5.552
Hipóteses
AF SuSAna
164
133
197
195
204
89
315
340
XML (kb)
AF
SuSAna
390
2.500
700
3.000
450
600
1100
5.900
Tabela 6.3: Comparação de desempenho entre o AF e o SuSAna. A coluna correspondente à
memória, apresenta o maior bloco de memória ocupado durante o processamento, em kbytes.
no caso do SuSAna, o tempo de processamento apresentado, corresponde, na sua maioria, a tempo
usado para a leitura e escrita da informação. O SuSAna utilizou apenas 13,7s para realizar a
análise de todo o corpus.
Os valores de ocupação de memória, apresentados na tabela 6.3, encontram-se elevados no
caso do SuSAna, devido à utilização de uma versão antiga da biblioteca Xerces (Xerces, 2003), de
manipulação de XML. A utilização do XML é feita através de uma árvore DOM, que representa a
estrutura e informação de um documento em memória. As recomendações do W3C para a estrutura
das árvores DOM, não contemplam, a possibilidade de ler partes de documentos, obrigando a que
o documento XML seja tratado como um bloco e seja colocado todo em mem ória. A ocupação de
memória pelo SuSAna, antes da análise de uma frase é de cerca de 3.100 kbytes e em média,
aumenta cerca de 927 bytes por palavra durante a análise.
6.4 Desempenho do SuSAna em corpus alargado
Nesta secção descrevem-se os resultados obtidos na análise de um corpus jornalı́stico, composto
por cerca de 4.6 milhões de palavras, que corresponde a cerca de dois meses de edição do jornal
Público.
6.4.1
Parâmetros de avaliação
A qualidade dos resultados obtidos depende única e exclusivamente das regras presentes na
gramática. Assim, a qualidade dos resultados não será avaliada, pois as regras utilizadas nos
testes realizados no âmbito desta tese, consistem em ligeiras modificações do conjunto de regras
originais utilizado por Hagège (2000), para a tarefa de extracção de sintagmas nominais. Uma vez
que o SuSAna produz o mesmo conjunto de resultados produzido pelo AF, a avaliaç ão da qualidade
dos resultados remete-se para Hagège (2000).
O tempo de processamento é um factor relevante, no que diz respeito à integração do módulo
SuSAna em cadeias de processamento ou sistemas de processamento de lı́ngua natural. Os resultados da análise sintáctica, podem ser aplicados a variados domı́nios, como é o caso da sı́ntese e
reconhecimento de fala, nos quais o factor tempo não pode ser desprezado. Assim, interessa avaliar
o desempenho do SuSAna ao nı́vel do tempo de processamento, e identificar os factores que mais
influenciam esse desempenho.
6.4. DESEMPENHO DO SUSANA EM CORPUS ALARGADO
Elemento
Edições
Segmentos
Unidades Lexicais
Etiquetas
91
Contagem
51
170.226
4.599.080
6.034.521
Tabela 6.4: Caracterı́sticas do corpus correspondente a dois meses de edição do jornal Público.
A utilização do módulo poderá ser comprometida pela memória necessária à sua execução. Por
exemplo, certos dispositivos, como é o caso dos PDA, onde a utilização de um analisador sintáctico
pode ser interessante, têm recursos limitados em particular no que diz respeito a memória. Durante
a execução do SuSAna foi por vezes verificado um grande consumo de memória, mesmo antes de iniciar a análise. Este consumo exagerado de memória deve-se à construção de uma árvore DOM a partir da informação se encontra no formato XML, com todos os dados para análise. As recomendações
do W3C para o DOM 1.0 e 2.0 não prevêem a leitura incremental e parcial da informação, contudo,
a análise concorrente e incremental bem como o tratamento e manipulação de fragmentos de documentos XML, estão de momento a ser considerados para integrar as especificações da DOM versão
3.0.2 Assim, embora se apresentem os dados relativos ao consumo de memória, estes não devem ser
entendidos como limitadores, mas simplesmente como elementos que descrevem o estado actual de
funcionamento do SuSAna.
As necessidades do analisador, bem como o tipo de resultados pretendidos, variam em
função da sua parametrização. Assim, é importante analisar os recursos requeridos consoante a
parametrização.
6.4.2
Caracterı́sticas do corpus
O corpus utilizado nos testes seguintes compreende 51 edições do jornal Público, correspondendo a cerca de 4,6 milhões de unidades lexicais. As edições consideradas foram seleccionadas de
um conjunto de edições do ano 2001, sendo a sua maioria relativa aos meses de Fevereiro e Dezembro desse ano. O corpus original encontra-se em formato HTML, do qual foram removidas as
etiquetas. A tabela 6.4 apresenta um resumo das caracterı́sticas do corpus.
Relativamente ao tamanho dos segmentos, ou seja o número de unidades lexicais que constituem o segmento, a sua distribuição em função do número de unidades lexicais é apresentada na
figura 6.4. O maior segmento é composto por 752 unidades lexicais, embora o tamanho médio seja
cerca de 27 unidades lexicais, e a figura mostre que a maioria dos segmentos possui entre 19 e 39
unidades lexicais. Em termos de ambiguidade média, isto é, número de classificaç ões atribuı́das a
cada uma das unidades lexicais, o seu valor é aproximadamente 1,31 etiquetas por palavra.
2 Mais
informações em http://www.w3.org/TR/2002/WD-DOM-Level-3-ASLS-20020409/load-save.html
CAPÍTULO 6. AVALIAÇÃO
92
Figura 6.4: Distribuição de segmentos por número de unidades lexicais.
6.4.3
Preparação dos dados
A preparação dos dados foi realizada segundo a cadeia de processamentos ilustrada na figura
6.1 e utilizada no contexto da comparação entre o AF e o SuSAna. A esta cadeia foi adicionado mais
um módulo, para efectuar uma última fase de adaptação dos resultados produzidos no módulo de
pós-análise morfológica PaSMo. O PaSMo utiliza um conjunto de sequências de sı́mbolos, designado
por separadores, que lhe permitem segmentar a sua saı́da em frases. Contudo, este processo é
apenas baseado na palavra, não entrando em conta com a sua etiqueta, e tornando possı́vel o fim de
uma frase onde esta não deveria ocorrer. O módulo adicionado junta todos os segmentos produzidos
pelo PaSMo num único segmento e adiciona a etiqueta a cada uma das palavras consideradas
anteriormente como separadores (ponto final, ponto de exclamação, etc.) e que podem terminar
uma frase. Assim, ao processar cada uma dessas palavras, o SuSAna poderá ou não considerar
que a frase termina nesse ponto. Esta operação contribui para que menos unidades lexicais sejam
desprezadas durante a análise.
De forma a testar o desempenho do sistema em corpus sem segmentação, foi também produzida
uma versão do corpus na qual se retiraram as etiquetas de inı́cio e fim de segmento, existentes no
documento. Assim, cada edição do jornal passou a constituir um único segmento, fazendo com que
o corpus seja constituı́do por apenas 51 segmentos.
6.4.4
Os resultados
A análise do desempenho do sistema foi realizada com várias parametrizações, por forma a
estudar o desempenho do sistema em variadas situaç ões. O primeiro teste foi realizado com as
opções definidas por omissão, que consistem em considerar que cada segmento corresponde a uma
frase e que todas as palavras desse segmento fazem parte da frase. Seguidamente realiza-se um
teste com a opção skips, que permite obter análises completas, embora possam não cobrir todas
as unidades lexicais presentes no segmento. Pretende-se com este teste, conhecer o n úmero de
segmentos que contêm frases – embora possam existir unidades lexicais nesse segmento que não
fazem parte da frase – e a percentagem de unidades lexicais desprezadas nas análises incompletas
6.4. DESEMPENHO DO SUSANA EM CORPUS ALARGADO
Parâmetro de avaliação
Tempo total despendido
Tempo despendido apenas na análise
Tempo máximo de análise de um segmento
Tempo de análise médio por segmento
Tempo de análise médio por unidade lexical
Tamanho do maior segmento (unidades lexicais)
Número de segmentos no corpus
Número de segmentos classificados
Número de frases identificadas
Máxima memória ocupada
93
Teste 1
4h 16m
3h 32m
1,01s
90ms
3,3ms
753
170 226
105 157
105 151
163 Mb
Teste 2
3h 35m
4h 18m
1,02s
91ms
3,4ms
753
170 226
168 021
168 021
164 Mb
Teste 3
5h 26m
4h 44m
2,63s
115ms
4,3ms
753
170 226
168 021
245 288
164 Mb
Teste 4
5h 31m
4h 48m
512s
389s
4,3ms
133 487
51
51
243 724
287 Mb
Tabela 6.5: Resultados obtidos na análise do corpus. teste 1 - sem opções; teste 2 - opção skips, teste
3 - skips e multiple; teste 4 - corpus segmentado por edição de jornal.
obtidas. O terceiro teste, foi realizado com as opções
e
. Finalmente, foi realizada a
e
,
análise das edições que constituem o corpus, sem segmentação e com as opções
implicando a análise de segmentos com dezenas de milhares de palavras. A tabela 6.5 apresenta os
resultados obtidos.
Teste 1: Análise de segmentos com parametrização por omissão
A análise segmentos com as opções por omissão implica que cada segmento corresponde à estrutura linguı́stica que se pretende analisar. Como se pode deduzir a partir dos elementos da tabela
6.5 , foram analisados em média 11,1 segmentos por segundo, que corresponde a uma média de 300
unidades lexicais por segundo.
Com esta parametrização, foi possı́vel identificar a estrutura sintáctica de cerca de 61,6% dos
segmentos. Os resultados obtidos podem ser consequência de 3 factores: (i) elementos incorrectos
sob o ponto de vista sintáctico; (ii) reduzida informação presente na gramática; (iii) qualidade da
segmentação prévia, que constitui um factor determinante na obtenção de resultados, na medida
em que cada segmento terá de corresponder exactamente à estrutura linguı́stica que se pretende
analisar – neste caso a frase.
Teste 2: Análise de segmentos com o parâmetro skips
A análise de segmentos com a opção
permite identificar uma estrutura linguı́stica num
segmento, mesmo que não contemple todas as unidades lexicais desse segmento, podendo vir a
ser desprezadas unidades lexicais no inı́cio ou no fim do segmento. A análise realizada com esta
parametrização permite identificar a estrutura de segmentos que não foram analisados devido à
existência de unidades lexicais incompatı́veis no inı́cio ou no fim do segmento, ou devido a falta de
cobertura da gramática.
Os resultados obtidos indicam que foi possı́vel identificar a estrutura de 98,7% dos segmentos
presentes no corpus, dos quais 37% apresentam análises incompletas. Foi também calculado que as
CAPÍTULO 6. AVALIAÇÃO
94
análises incompletas obtidas cobrem cerca de 42,2% das unidades lexicais presentes nos segmentos
correspondentes.
Teste 3: Análise de segmentos com os parâmetros skips e multiple
A coluna Teste 3, da tabela 6.5, mostra os elementos estatı́sticos resultantes da análise efectuada com esta parametrização. De uma forma geral observou-se um aumento dos tempos de
execução. Esta situação deve-se aos testes realizados após a identificação de uma estrutura incompleta, que prosseguem até esgotar todas as posições do segmento.
Tal como a parametrização anterior, a parametrização
e
permitiu identificar a
estrutura de 98,7% dos segmentos presentes no corpus. Contudo, as análises incompletas passaram
a cobrir 95,3% das unidades lexicais presentes nesses segmentos.
Teste 4: Análise de documentos não segmentados
Com este tipo de análise pretende-se perceber de que forma o SuSAna permite analisar segmentos com uma grande quantidade de palavras, realizando em simultâneo a sua segmentação
em frases. O objectivo pretendido é verificar o desempenho do sistema no tratamento de segmentos
com grande quantidade de unidades lexicais. Note-se que o algoritmo constrói um grafo que engloba
todas as unidades lexicais da frase.
A análise realizada com esta parametrização permitiu identificar 243 724 segmentos, que corresponde a uma redução de 1 564, relativamente aos segmentos identificados no Teste 3. Esta
redução é um indicador de que, estando a gramática correcta, a segmentação efectuada nos testes anteriores, ao nı́vel morfossintáctico, não foi efectuada da forma mais adequada. O conjunto
dos segmentos identificados permitiram cobrir cerca de 97,7% das unidades lexicais presentes no
corpus, o que corresponde a cerca de 2,5% mais cobertura do que o conseguido no Teste 3.
Análise do número de alternativas por resultado
Na análise sintáctica de superfı́cie é importante ter em consideração, por um lado, a cobertura
da gramática, e por outro, formas de limitar a explosão combinatória de resultados. Nos tópicos anteriores a gramática foi analisada em termos de cobertura, na medida em que se extraı́ram valores
acerca do número de segmentos analisáveis por essa gramática. Neste tópico, faz-se uma análise ao
número de alternativas originadas em cada resultado, de forma a verificar a eficácia dos mecanismos de limitação de resultados utilizados, nomeadamente: preferências e princı́pio psicolinguı́stico
da presença dos modelos mais longos.
A figura 6.5 apresenta, para cada uma das parametrizações, o número segmentos que foram
correctamente analisados, bem como a sua distribuição de acordo com o número de alternativas
em cada resultado. A figura mostra que grande grande parte dos resultados de uma análise são
constituı́dos por uma a duas alternativas, nos três casos de parametrização. Por exemplo, 37%
das análises efectuadas com a opção
são constituı́das por apenas uma opção. O número de
resultados com 1 a 4 alternativas encontra-se entre 77% e 80% nos primeiros dois casos, e 83% para
os dois últimos.
6.4. DESEMPENHO DO SUSANA EM CORPUS ALARGADO
95
Figura 6.5: Distribuição do número de alternativas que compõem o resultado da análise de cada
segmento.
A figura 6.6 mostra a relação que existe entre o número de soluções por segmento e o seu tamanho. Verifica-se que o número de alternativas de análise pode aumentar consideravelmente com
o tamanho do segmento, como era de esperar. Isto acontece porque a análise de um simples segmento pode levar a milhares de soluções. Para os resultados apresentados, o número de alternativas
máximo para o resultado da análise de um segmento, foi limitado a 1024, de forma a não aumentar
desmesuradamente os resultados.
Análise do número de soluções em função do seu número de unidades lexicais
A figura 6.7 mostra a contagem das análises obtidas em função do número de unidades lexicais
presentes nessas análises. A linha a tracejado, corresponde ao conjunto de segmentações obtido do
módulo de pós-análise morfológica.
Em termos de resultados obtidos com a parametrização por omissão (sem opções), pode
verificar-se que não foi possı́vel encontrar soluções para grande parte dos segmentos cujo tamanho varia de 21 a 55 unidades lexicais. Verifica-se ainda que a maioria dos segmentos têm um
tamanho de cerca de 39 unidades lexicais, e para esse tipo de segmentos, se consegue apenas cerca
de metade das análises.
A opção
permite que o resultado da análise de um segmento possa incluir apenas uma
parte das suas unidades lexicais. Como se verifica na figura 6.7, há um desvio para a esquerda, dos
resultados obtidos em função do conjunto dos segmentos. Isto acontece, porque são obtidas análises
cujo tamanho é inferior ao tamanho do segmento original.
Os resultados relativos às opções
e
, são quase coincidentes e correspondem
96
CAPÍTULO 6. AVALIAÇÃO
Figura 6.6: Número médio de soluções por segmento do corpus, em função do seu tamanho.
Figura 6.7: Distribuição das análises em função do número de unidades lexicais que as compõem.
6.4. DESEMPENHO DO SUSANA EM CORPUS ALARGADO
97
Figura 6.8: Média do número de soluções em função do número de unidades lexicais do segmento.
a um aumento do número de análises, com tamanho mais reduzido. Note-se que o número de
análises obtidas com tamanho inferior a cerca de 27 unidades lexicais é mesmo superior ao número
de segmentos existentes com esse tamanho.
O gráfico apresentado na figura 6.8, mostra o número médio de soluções em função do número
de unidades lexicais que constituem essas soluções. Os valores do gráfico para um determinado
tamanho, em termos de unidades lexicais, são calculados com base no número total de resultados obtidos com esse tamanho e com base no número total de soluções obtidas nesses resultados.
Verifica-se uma tendência para um aumento do número de resultados, em função do número de
unidades lexicais presentes nesses resultados.
Análise de tempos de execução em função do tamanho do segmento
Importa agora analisar o tempos de execução, em função do tamanho do segmento, isto é, do
número de unidades lexicais. A figura 6.9 mostra o tempo de análise médio por segmento, dado
em função do número de unidades lexicais presentes nesse segmento. Verifica-se que o tempo de
execução aumenta com o número de unidades lexicais presentes no segmento, como seria de esperar. Contudo, os resultados da figura consideram também o tempo de processamento utilizado
em segmentos dos quais não foi possı́vel extrair qualquer análise. A figura 6.10 mostra o tempo
de análise por palavra, tendo em conta o tamanho do segmento a que pertence. Os resultados
expressos na figura tomam em consideração os segmentos dos quais não foi possı́vel extrair qualquer análise. Assim, estes resultados correspondem ao tempo médio real de processamento de uma
palavra, sabendo o tamanho do segmento em que se encontra.
98
CAPÍTULO 6. AVALIAÇÃO
Figura 6.9: Tempo de análise dos segmentos em função do seu tamanho.
Figura 6.10: Tempo de análise por palavra, em função do tamanho do seu segmento.
6.5. SUMÁRIO
99
6.5 Sumário
Nos testes de comparação realizados entre o AF e o SuSAna, foram obtidas conclusões acerca
do funcionamento de cada um dos sistemas que é importante realçar. Em primeiro lugar, é importante considerar a flexibilidade de cada um dos sistemas, bem como os problemas relativos à sua
utilização. Nestes aspectos, o AF oferece reduzidas condições de utilização, em oposição ao SuSAna,
que ao longo de todos os testes realizados mostrou um elevado grau de robustez e flexibilidade. Por
outro lado, os resultados da comparação revelam que o AF produz, por vezes, resultados diferentes
do SuSAna, que após analisados se mostraram incorrectos. Também relativamente aos tempos de
execução, se verificou uma clara superioridade do SuSAna relativamente ao AF. Não foi, contudo,
possı́vel comparar os tempos de execução de cada um dos analisadores em função do tamanho das
frases, devido a erros de originados pelo AF.
No que diz respeito aos testes no corpus do Público, o SuSAna mostrou grande robustez e
permitiu fazer observações interessantes. Seria importante comparar os resultados obtidos com
outros sistemas, o que constitui uma tarefa difı́cil, por um lado, devido à dificuldade de obtenção
de ferramentas para a lı́ngua portuguesa, e por outro, devido à utilização de uma gramática ainda
pouco desenvolvida, no que diz respeito ao seu conteúdo. A gramática utilizada foi produzida com
vista à extracção de sintagmas nominais, deixando por descrever um grande conjunto de fenómenos
linguı́sticos, como é, por exemplo, o caso dos sintagmas verbais.
100
CAPÍTULO 6. AVALIAÇÃO
O trabalho realizado no âmbito desta dissertação compreendeu a concepção e desenvolvimento
de um módulo de análise sintáctica de superfı́cie para a lı́ngua portuguesa. O desenvolvimento
deste módulo – SuSAna – partiu de um estudo às várias técnicas de análise sintáctica e sistemas de análise de superfı́cie que as integram. Em particular, foi analisado o sistema de análise
sintáctica de superfı́cie de Hagège (2000), que compreende um protótipo de análise de superfı́cie
(AF) e uma gramática que constitui a sua fonte de dados. O desenvolvimento do SuSAna compreendeu três etapas: desenvolvimento de um algoritmo de análise sintáctica de superfı́cie eficiente,
em termos de complexidade; implementação do algoritmo num módulo; e a criação de ferramentas para a utilização e teste desse módulo tanto numa plataforma autónoma como em plataformas
cliente/servidor. O desenvolvimento do SuSAna foi também acompanhado pela criação de uma
gramática, baseada na gramática do AF, para a qual foram concebidos elementos, que permitem
representar informação adequada ao processamento sintáctico que se realiza com o SuSAna, e permitem incorporar a informação linguı́stica presente na gramática do AF.
O processo de análise é efectuado em duas etapas: a primeira consiste em construir estruturas
compatı́veis com a informação presente na gramática e a segunda consiste em filtrar as análises que
se podem obter a partir dessas estruturas. A gramática utiliza dois elementos que permitem definir
os tipos de restrições necessários à realização dessas duas etapas: o primeiro é definido à custa de
blocos; o segundo consiste num conjunto de preferências que permitem seleccionar o conjunto de
análises com melhor classificação a partir das análises possı́veis, obtidas em função do primeiro
tipo de restrições. O mecanismo de restrições permite, abranger um grande conjunto de fenómenos
linguı́sticos e obter um conjunto de hipóteses que serão, na segunda etapa, refinadas e reduzidas,
contribuindo assim para evitar conjuntos intratáveis de hipóteses de análise. As preferências foram
estendidas de forma a incluir elementos probabilı́sticos, permitindo classificar quantitativamente
os resultados, com base em observações em corpora. A gramática permite definir hierarquias de
sı́mbolos, que podem ser utilizados para reduzir o número de regras da gramática e aumentar a sua
legibilidade, contribuindo também para uma mais fácil manutenção.
O módulo de análise desenvolvido, além de implementar um algoritmo eficiente, é também
flexı́vel, tanto no que diz respeito às possibilidades de integração noutros sistemas, como em termos de realização da análise. O algoritmo foi concebido de forma a fazer uso da hierarquia de
sı́mbolos suportada pela gramática, que além de incluir categorias, permite também definir incluir
relações hierárquicas entre modelos. A aplicação das preferências é efectuada durante a análise,
aos constituintes da frase acabados de construir, contribuindo para uma redução da complexidade
da análise e consequente melhoria de desempenho. O mecanismo de procura do algoritmo permite
a sua utilização como um algoritmo anytime, integrável em sistemas que exigem baixos tempos de
CAPÍTULO 7. CONCLUSÕES E TRABALHO FUTURO
102
resposta. O conjunto de parâmetros aceites pelo SuSAna, tanto ao nı́vel da análise como ao nı́vel
da extracção de resultados, permite utilizar a informação obtida através da análise sintáctica, para
diversos fins. A parametrização ao nı́vel da análise permite, por um lado, considerar ou ignorar
restrições, como é o caso das preferências e do princı́pio psicolinguı́stico dos modelos mais longos,
e por outro, considerar variadas configurações nos segmentos a analisar. A produção de resultados
pode ser efectuada em diferentes formatos, adequados tanto à análise por parte do linguista, como
em sistemas computacionais.
A avaliação realizada mostra que, relativamente ao protótipo AF, o SuSAna é mais estável,
eficiente e obtém resultados mais precisos. A análise de 28 frases de um corpus, com os dois analisadores, mostrou que apenas 13 originaram o mesmo resultado e que nas diferenças obtidas nos
resultados das restantes 15 verificou-se que os resultados produzidos pelo AF eram inconsistentes.
Mostrou-se também que o sistema actual permite processar corpora não restrito, com um ritmo
médio de cerca de 300 palavras por segundo.
7.1 Trabalho futuro
Nesta secção enumeram-se alguns pontos de continuidade deste trabalho. Algumas destas
tarefas não foram efectuadas por limitações de tempo, outras por não se enquadrarem no âmbito do
trabalho proposto para esta tese. Do ponto de vista computacional é importante:
Introduzir regras de forma interactiva e semi-automática, com recurso a uma ferramenta de
interface e a partir de observações em corpora. A existência de uma ferramenta que possibilite
a escolha e rejeição de análises iterativamente permitiria criar, eliminar, ou re-ajustar os
elementos probabilı́sticos associados às preferências, de forma automática.
Criar uma ferramenta que permita verificar as possı́veis inconsistências nas regras da
gramática e reduzir a informação aı́ presente de forma automática, tendo em consideração
a hierarquia de sı́mbolos. No que diz respeito às inconsistências, de momento é possı́vel indicar que um dado modelo pode seguir um modelo dentro de , sem que o comportamento
de dentro de se encontre definido, o que faz com que a informação inicial não possa ser utilizada. A hierarquia de sı́mbolos pode ser usada para agrupar regras e torná-las mais claras.
Com efeito, dados dois blocos relativos a dois modelos e , com e os únicos elementos
subsumidos por um modelo , se os dois blocos contêm a mesma informação, poderá ser mais
claro criar um bloco associado a , e eliminar os anteriores.
Comparar o desempenho do sistema. Esta tarefa só pode ser realizada mediante a conversão
e utilização das gramáticas utilizadas noutros sistemas. Nesse sentido importa desenvolver
ferramentas de conversão automática de gramáticas.
A componente linguı́stica utilizada no âmbito do trabalho encontra-se ainda incompleta e melhorias
ao nı́vel desses recursos permitiriam obter resultados mais precisos. Indicam-se seguidamente os
pontos que se consideram mais importantes e este nı́vel.
Léxico: O dicionário que foi utilizado no decurso desta tese é reduzido e encontra-se orientado
para a extracção de sintagmas nominais. Uma maior cobertura lexical permitiria melhorar
7.1. TRABALHO FUTURO
103
os resultados obtidos para a análise. A introdução de informação acerca da sub-categorização
para classes gramaticais, como adjectivos, verbos e nomes, será uma tarefa inevitável para o
correcto processamento de textos reais.
Coordenação: A estratégia para o tratamento da coordenação neste trabalho consistiu em não
impor restrições à sua ocorrência, seguindo a estratégia também utilizada por Hagège (2000).
Hagège reporta que uma das fontes de erro na extracção SNs está justamente associada ao
não tratamento da coordenação, pois determinados SNs foram extraı́dos de forma incompleta
ou com demasiados complementos.
Gramáticas paralelas para outras lı́nguas: Por exemplo, o castelhano possui construções semelhantes às construções utilizadas no português, nesse sentido, a criação de uma gramática
da essa lı́ngua seria facilitada e permitiria efectuar estudos contrastivos acerca da estrutura
das lı́nguas, com base no processamento do SuSAna. Foi já demonstrado interesse por parte
de investigadores de uma universidade no México, em efectuar parte desta tarefa.
104
CAPÍTULO 7. CONCLUSÕES E TRABALHO FUTURO
Modelos
modelo
Descrição
m mn
m nnt
m an2
m an2q
m an2nq
madj
m an1
m prepn
m prepvn
m anp
madv
m advn1
m advn2
m advnp
mpp n
copv n
m unknown
ph
mnn rel
m virg
m conj
m ponct
copi n
que n
inf n
m cli
m reln
m ger
m se
modelo nominal nuclear
modelo nominal nuclear especial para tı́tulos
modelo adjectival nuclear do tipo 2
quantificado
não quantificado
modelo adjectival
modelo adjectival nuclear do tipo 1
modelo preposicional nuclear
modelo preposicional verbal nuclear
modelo adjectival preposicional
modelo adverbial
modelo adverbial nuclear do tipo 1
modelo adverbial nuclear do tipo 2
modelo adverbial nuclear preposicional
modelo de particı́pio passado nuclear
modelo de verbo copulativo nuclear
modelo onde ocorrem palavras desconhecidas
modelo de frase. Corresponde normalmente ao modelo de topo
modelo nominal nuclear para os relativos formados com cujo
elementos que contém: virg
elementos que contém: [coord, conj]
elementos que contém: [paro, parf, ponctu, ptvir] (pontuação)
elementos que contém: [prep] copinf. (verbos copulativos no infinitivo)
elementos que contém: [prep] qu
relativo aos verbos
elementos que contém: [cli ac, cli ad, cli c]
elementos que contém: [prep] rel
elementos que contém: ppres
elementos que contém: se
APÊNDICE A. DESCRIÇÃO DAS CATEGORIAS E MODELOS
106
Categorias
Nomes
Etiqueta
Descrição
nc
nc1
nc2
npr1
npr2
npr3
npr4
Nome comum
Nomes comuns contáveis
Nomes comuns massivos
Marte; Lisboa; Janeiro. (nunca precedidos por um artigo)
O Porto; O Tejo. (sempre precedidos de um artigo)
França. (por vezes precedidos de artigo e por vezes não)
Um tal Ferreira. (nomes próprios de pessoas)
Adjectivos
Etiqueta
Exemplos
nadj
adj1
adj2
adj3
vizinha (nome/adjectivo)
bela; belo
mero
portuguesa (adjectivos do tipo 3)
Advérbios
Etiqueta
Exemplos
advcomp
adv1
adv2
adv3
tao
pouco
adv mente
mais; menos
ainda; já; mesmo
muito; bastante
demasiado; apenas
tão
pouco
advérbios terminados em mente
107
Pronomes
Etiqueta
Exemplos
outro
cada
qualquer
vario p
ambos p
uns p
certo1
nenhum s
nenhum p
q3 s
q3 p
tanto s
tanto p
todo s
todo p
algum s
algum p
mesmo
tal s
tal p
próprio
outro; outra; outros; outras
cada
qualquer; quaisquer
vários, várias
ambos; ambas
uns; umas
certo; certa; certos; certas
nenhum; nenhuma
nenhuns; nenhumas
muito; pouco; bastante
muitos; poucos; bastantes
tanto; tanta
tantos; tantas
todo; toda
todos; todas
alguns, algumas
alguns; algumas
mesmo; mesma; mesmos; mesmas
tal
tais
próprio; própria; próprios; próprias
Outras classes de categorias
Etiqueta
Valor
card p
ord
poss
dem
cujo
artd
arti s
ppas
copinf
coord
virg
unknown
break
inconnu
eliminer
cinco. (numerais cardinais)
terceira. (numerais ordinais)
tua. (pocessivos)
este; aquele; esse. (demostrativos flexionados)
cujo. (pronome relativo)
o. (artigo definido)
um; uma. (artigo indefinido singular)
particı́pios passados
verbos copulativos no infinitivo
coordenação
vı́rgula
palavra desconhecida
separador de segmento
palavra desconhecida
categoria especial que pode ser ignorada
108
APÊNDICE A. DESCRIÇÃO DAS CATEGORIAS E MODELOS
Este capı́tulo apresenta alguma da terminologia utilizada na dissertaç ão. Alguns dos termos
apresentados resultam da tradução de termos utilizados na literatura internacional, caso em que
se apresenta tanto a lı́ngua de origem como o termo original, assim como referências às fontes e a
outras partes da dissertação onde é focado com maior profundidade.
algoritmo anytime Em termos genéricos, são Chunks Sintagmas com coerência, termos
algoritmos que satisfazem as três propriede arte (Exemplo: Desvio de padrão,
dades seguintes: 1- são tolerantes a probleDistribuição Normal, etc. Inglês: phrases
mas de
, isto é, podem ser susthat cohere, terms of art (like standard depensos por algum tempo sem que daı́ reviation, chi squared, normal distribution,
sulte um grande
etc.)
; 2- mesmo que
sejam interrompidos a qualquer instante,
conseguem devolver sempre uma resposta; Cobertura (recall) definida habitualmente
como sendo o número de respostas correc3 - as respostas que devolvem melhoram
tas, calculadas por um sistema, sobre o
em função do tempo. Gorz (1994) propõe
número total de respostas correctamente
a seguinte definição: um algoritmo é dito
esperadas. (ver precisão)
ser produtor se o programa que o
implemente conduzir a uma granularidade
na produção de resultados, compatı́vel com Cobertura lexical entendida com base no
número de formas diferentes validadas
as restrições de tempo do consumidor.
pelo léxico e às quais pode, eventualmente,
ser aplicada uma etiqueta.
API
Qualquer conjunto de rotinas, geralmente
disponı́veis para utilização por parte de Constituinte de uma frase é uma sequência de
unidades lexicais que fazem parte dessa
programadrers. O sistema operativ, por
frase e que se comportam como uma simexemplo, tem uma API para uma variedade
ples unidade. Um constituinte é um elede tarefas de manuseamento de discos e fimento que funciona como unidade numa
cheiros. As API são escritas para proporciconstrução semiótica de nı́vel superior.
onar código portável. O Programador apenas tem de se preocupar com a chamada e
os parâmetros da função e não com os deDTD
- O propósito
talhes de implementação, os quais podem
de um DTD é definir a correcta construção
variar de sistema para sistema.
dos blocos de um documento XML, SGML
ou HTML. O DTD define a estrutura de
um documento com uma lista de etiquetas
Chinks Pequenas palavras, delimitadoras que
e atributos permitidos para a construção
quebram as unidades com significado
do seu conteúdo, e que etiquetas podem
semântico (como um, de, é, etc.). Inglês: litser incluı́das dentro de outras etiquetas.
tle words, delimiters that break apart the
Pode ser declarado no próprio documento
meaningful units of thought (like a, of, is,
ou como uma referência externa.
etc.)
3
(
GLOSSÁRIO
110
Gramática descreve como uma frase pode ser
decomposta em sintagmas. Na construção
de uma gramática para uma dada linguagem, deve-se ter em conta a generalidade,
o conjunto de frases que a gramática analisa correctamente; selectividade que se define como o conjunto de não-frases identificadas como problemáticas; e compreensibilidade que se entende como a simplicidade
da gramática em si (Allen, 1995).
Reduz a complexidade do desenvolvimento de aplicações que se distribuem em
múltiplos sistemas operativos e protocolos
de redes, permitindo abstrair o programador dos detalhes subjacentes aos vários sistemas operativos e interfaces de rede. O
programador utiliza as funções definidas
por RPC como interface. (Rao, 1995). O
conceito de RPC tem sido discutido na literatura desde 1976, com implementações de
larga escala entre finais da década de 70 e
princı́pios da década de 80 (Birrell et al.,
1984).
Granularidade entendida como o grau de complexidade da informação associada às formas que o dicionário reconhece/valida, independentemente do formalismo utilizado
Sintagma é uma sequência de palavras que forpara as representar.
mam uma unidade significativa. Cada sintagma tem uma palavra principal, que é
Modelos são estruturas linguı́sticas que os
designada
por núcleo e outras palavras deanalisadores de superfı́cie AF e SuSAna
pendentes
desse núcleo. Ver Unidade Sinidentificam. Os modelos definem-se semtagmatica. Texto Editora: Conjunto de elepre à custa de um conjunto de propriementos
linguı́sticos que se ordenam como
dades. Um modelo para um conjunto de
complementos
de uma unidade maior. conpropriedades é uma sequência de sı́mbolos
junto
de
duas
ou mais palavras que posque satisfaz o conjunto das propriedades
suem
um
significado,
mas que por si só não
consideradas. Assumindo que as caracpodem
formar
uma
frase
completa.
terı́sticas morfossintácticas das palavras
correspondem ao conjunto de sı́mbolos, um
modelo para um conjunto de proprieda- Sintagma não recursivo Um sintagma diz-se
não recursivo se não puder ocorrer dentro
des linguı́sticas, no contexto da análise
dele
próprio. Propriedade: sendo A e B dois
sintáctica, é uma sequência de categosintagmas
não recursivos, se A ocorre denrias morfossintácticas que satisfazem estro
de
B,
ent
ão B não poderá ocorrer dentro
sas propriedades. Esta questão é focada na
de
A.
sub-secção 3.1.1.
Palavras funcionais palavras cuja função é,
em grande parte ou inteiramente, gramatical, como é o caso das preposições, artigos, pronomes e conjunções (APL e ILTEC,
1992).
subcategorização certos tipos de relações entre palavras e sintagmas. Dizemos que, por
subcaexemplo, um verbo como
tegorisa um SN.
Texto não restrito do inglês unrestricted text,
esta expressão é utilizada para designar
texto não processado ao nı́vel linguı́stico,
que pode oferecer dificuldades de tratamento do nı́vel computacional, uma vez que
pode conter, por exemplo: erros gramaticais, palavras desconhecidas e construções
- infra-estrutura
RPC
pouco comuns. (ver Texto Real)
cliente/servidor que aumenta a interoperabilidade, portabilidade, e flexibili- Texto real texto tal como existe. Erros gramadade de uma aplicação, permitindo que
ticais, palavras desconhecidas, construções
essa aplicação possa estar distribuı́da sopouco comuns, são alguns dos problemas a
bre múltiplas plataformas heterogéneas.
enfrentar na análise deste tipo de texto.
Precisão (precision) definida habitualmente
como sendo o número de respostas correctas, calculadas por um sistema, sobre o
número total de respostas, dadas por esse
sistema. (ver cobertura)
3
GLOSSÁRIO
111
Traço gramatical informação essencialmente
juntar estruturas compatı́veis numa estrurelevante para a relação de acordo, ou
tura mais geral e rejeitar as incompatı́veis.
de concordância, que se verifica entre,
por exemplo, o especificador e o núcleo.
São considerados traços sintácticos, ou XSLT Acrónimo de funcionais, os elementos que fornecem
- Linguainformação de pessoa, número, género e
gem declarativa que permite traduzir
caso (Chomsky, 1981).
documentos em formato XML noutros
documentos em formato XML ou em texto
Unidade Sintagmática é definida como sendo
arbitrário. O XSLT foi desenhado para
um agrupamento intermediário entre o
ser usado como parte do XSL, que é uma
nı́vel do vocábulo e o da oração. Desta
linguagem de estilos (
) para
maneira, um ou mais vocábulos unem-se,
o XML. O XSLT é concebido para ser
em sintagmas, para formar uma unidade
também usado independentemente do
maior, que é a oração.
XSL. Consultar http://xmlsoft.org/XSLT/ e
http://www.w3.org/TR/xslt/
Unificação técnica computacional que permite
- 2
112
GLOSSÁRIO
Abney, S. (1992). Prosodic Structure, Performance Structure and Phrase Structure. In Proceedings,
Speech and Natural Language Workshop, pp. 425–428. Morgan Kaufmann Publishers, San Mateo, CA.
Abney, S. P. (1991). Parsing by Chunks. In Berwick, R. C., Abney, S. P., e Tenny, C., editores,
Principle-Based Parsing: Computation and Psycholinguistics, pp. 257–278. Kluwer Academic Publishers, Dordrecht.
Abney, S. P. (1996). Part-of-Speech Tagging and Partial Parsing. In Church, K., Young, S., e Bloothooft, G., editores, Corpus-Based Methods in Language and Speech, chapter Dordrecht. Kluwer
Academic Publishers.
Afonso, Susana, Bick, E., Haber, R., e Santos, D. (2002). Floresta sintá(c)tica:a treebank for Portuguese. In Rodrı́guez, M. G. e Araujo, C. P. S., editores, Proceedings of LREC 2002, the Third
International Conference on Language Resources and Evaluation, pp. 1698–1703, Las Palmas de
Gran Canaria, Spain. ELRA.
Aho, A. V. e Ullman, J. D. (1972). The Theory of Parsing, Translation, and Compiling, volume II.
Prentice-Hall, Englewood Cliffs, NJ.
Allen, J. (1995). Natural Language Understanding. Benjamin/Cummings, Redwood City, CA, 2nd
edition.
APL e ILTEC, editores (1992). Dicionário de Termos Linguı́sticos, volume I e II. Edições Cosmos.
Associação Portuguesa de Linguı́stica e Instituto de Engenharia Teórica e Computacional.
Appelt, D. E. e Israel, D. (1999). Introduction to Information Extraction Technology. In IJCAI-99
Tutorial.
Araújo, P. (2003). Classificação de Poemas e Sugestão das Palavras Finais dos Versos. Tese de
Mestrado, Universidade Técnica de Lisboa - Instituto Superior Técnico, Lisboa. trabalho em
curso.
Aı̈t-Mokhtar, S. (1998). L’analyse présyntaxique en une seule étape. Tese de Doutoramento, Université Blaise Pascal, GRIL.
Backus, J. W. (1959). The syntax and semantics of the proposed international algebraic language of
the Zurch ACM-GAMM Conference. In Information Processing: Proceedings of the International
Conference on Information Processing, pp. 125–132, Paris.
114
BIBLIOGRAFIA
Batista, F. e Mamede, N. (2002). SuSAna: Módulo Multifuncional da Análise Sintáctica de Superfı́cie. In Gonzalo, J., Peñas, A., e Ferrández, A., editores, Proceedings of the Multilingual
Information Access and Natural Language Processing Workshop, pp. 29–37, Sevilla, Spain. IBERAMIA 2002.
Bick, E. (1996). Automatic Parsing of Portuguese. In Actas do II Encontro de Processamento da
Lı́ngua Portuguesa Escrita e Falada (EPLP 96).
Bick, E. (2000). The Parsing System Palavras, Automatic Grammatical Analysis of Portuguese in a
Constraint Grammar Framework. Aarhus University Press.
Birrell, D., A., Nelson, e J., B. (1984). Implementing Remote Procedure Calls. In ACM Transactions
on Computer Systems, number 2, pp. 39–59. ACM.
Bray, T., Paoli, J., Sperberg-McQueen, C. M., e Maler, E. (2000). Extensible Markup Language
(XML) 1.0 (Second Edition) W3C Recommendation. web document. http://www.w3.org/XML/.
Bès, G. G., Hagège, C., e Coheur, L. (1999). De la description des propriétés linguistiques à l’analyse
d’une langue. In VEXTAL, Venice, Italy. Poster.
Butt, M., King, T., Nino, M., e Segond, F. (1999). A Grammar Writer’s Cookbook. CSLI Publications.
Carroll, J., Briscoe, E., e Grover, C. (1991). A development environment for large natural language
grammars. Relatório Técnico 233, Computer Laboratory, Cambridge University, UK.
Chanod, J.-P. (2000). Robust Shallow Parsing and Beyond. Xerox Research Centre Europe.
Chomsky, N. (1956). Three Models for the Description of Language. IRE Transactions on Information
Theory, 2(3):113–124.
Coheur, L. e Mamede, N. (2002). From Syntax to Semantics: Taking Advantages of 5P. In Ranchhod, E. e Mamede, N., editores, Advances in Natural Language Processing, Third International Conference, Portugal for Natural Language Processing (PorTAL), pp. 79–82, Faro, Portugal.
Springer-Verlag, LNAI 2389.
Cole, R., Mariani, J., Uszkoreit, H., Zaenen, A., e Zue, V. (1995). Survey of the State of the Art in
Human Language Technology. http://citeseer.nj.nec.com/article/cole95survey.html.
Dowty, D. R., Karttunen, L., e Zwicky, A. M., editores (1988). Natural Language Parsing, chapter 9,
pp. 307–319. Cambridge University Press.
Earley, J. (1970). An efficient context-free parsing algorithm. Communications of the ACM, 13(2):94–
102.
Ejerhed, E. (1996). Finite state segmentation of discourse into clauses. In Proceedings of ECAI 96
Workshop Extended finite state models of language, pp. 24–33.
Fach, M. (1999). A Comparison Between Syntactic and Prosodic Phrasing. In Proceedings of Eurospeech 1999, volume 1, pp. 527–530, Budapest.
Frazier, L. e Fodor, J. D. (1978). The Sausage Machine: A new two-stage parsing model. Cognition,
6:291–325.
BIBLIOGRAFIA
115
Gansner, E. R., Koutsofios, E., North, S. C., e Vo, K. P. (1993). A Technique for Drawing Directed
Graphs. In IEEE Trans. on Soft. Eng., volume 3, pp. 214–230.
Gansner, E. R., North, S. C., e Vo, K. P. (1988). DAG – A Program to Draw Directed Graphs. In
Software – Practice and Experience, volume 17, pp. 1047–1062.
Giguet, E. (1998). Méthode pour l’analyse automatique de structures formelles sur documents
multilingues. Tese de Doutoramento, Université de Caen Basse-Normandie.
Gorz, G. e Kesseler, M. (1994). Anytime Algorithms for Speech Parsing? In Proceedings of COLING94, Kyoto.
Graham, S. L., Harrisson, M. A., e Ruzzo, W. L. (1980). An Improved Context-Free Recognizer. ACM
Transactions on Programming Languages and Systems, 2(3):415–462.
Grover, C., Carroll, J., e Briscoe, E. (1993). The Alvey Natural Language Tools grammar (4th release). Relatório Técnico 284, Computer Laboratory, Cambridge University, UK.
Hagège, C. (2000). Analyse Syntaxique automatique du portugais. Tese de Doutoramento, Laboratoire de Recherche sur le Language, Université Blaise Pascal, Clermont-Ferrand, GRIL.
Hagège, C. e Bès, G. G. (1999). Delimitação das construções relativas e completivas na análise de
superfı́cie de textos. In Actas do IV Encontro para o Processamento Computacional da Lı́ngua
Portuguesa Escrita e Falada PROPOR99, Universidade de Évora, Évora.
Hindle, D. (1983). User manual for Fidditch, a deterministic parser. Relatório técnico, Naval Research Laboratory.
Hindle, D. (1994). A Parser for Text Corpora. In Computational Approaches to the Lexicon, pp.
103–151. Oxford University Press, Oxford.
Jensen, K., Heidorn, G. E., e Richardson, S. D., editores (1993). PEG: The plnlp english grammar.
Natural Language Processing: The PLNLP Approach, chapter 3, pp. 29–45. Kluwer Academic
Publishers.
Jurafsky, D. e Martin, J. H. (2000). Speech and Language Processing. Prentice Hall.
Karlsson, F., Voutilainen, A., Heikkilä, J., e Anttila, A., editores (1995). Constraint Grammar: A
Language-Independent System for Parsing Unrestricted Text. Mouton de Gruyter, Berlin - New
York.
Kasami, J. (1965). An Efficient Recognition and Syntax Analysis Algorithm for Context-Free Languages. Relatório técnico, Air Force Cambridge Research Laboratory.
Kimball, J. (1973). Seven principles of surface structure parsing in natural language. Cognition,
2(1):15–47.
Koehn, P., Abney, S., Hirschberg, J., e Collins, M. (2000). Improving intonational phrasing with syntactic information. In 25th International Conference on Acoustics, Speech, and Signal processing
(ICASSP).
116
BIBLIOGRAFIA
Koskenniemi, K. (1983). Two-level Morphology. A General Computational Model for Word-form
Production and Generation. Number 11. Department of General Linguistics, University of Helsinki.
Koutsofios, E. e North, S. C. (1996). Drawing Graphs with dot.
Lavie, A. (1996). GLR* - A Robust Parser For Spontaneously Spoken Language.
LIMSI (2002). GRACE: Gramaires et Ressources pour les Analyseus de Corpus et leur Evaluation.
http://m17.limsi.fr/TLP/grace/.
Moll, R. N., Arbib, M. A., e Kfoury, A. (1988). An Introduction to Formal Language Theory. Springer
Verlag, New York, USA.
Naur, P., Backus, J. W., Bauer, F. L., Green, J., Katz, C., McCarthy, J., Perlis, A. J., Rutishauser, H.,
Samelson, K., Vauquois, B., Wegstein, J. H., van Wijngaarden, A., e Woodger, M. (1960). Report
on the algorithmic language ALGOL 60. Communications of the ACM, 3(5):299–314.
Norvig, P. (1992). Paradigms of Artificial Intelligence Programming. Morgan Kaufmann Publishers,
San Francisco, California.
Paulo, J. L., Correia, M., Mamede, N. J., e Hagège, C. (2002). Using Morphological, Syntactical, and
Statistical Information for Automatic Term Acquisition. In Ranchhod, E. e Mamede, N., editores,
Advances in Natural Language Processing, Third International Conference, Portugal for Natural
Language Processing (PorTAL), pp. 219–227, Faro, Portugal. Springer-Verlag, LNAI 2389.
Paulo, J. L. e Mamede, N. J. (2001). ATA - Automatic Term Acquisition. In Proceedings of the
Workshop on Extraction of Knowledge from Databases, pp. 51–54, Porto, Portugal.
Pavia, N. G. (1999). Using the Incremental Finite-State Architecture to create a Spanish Shallow
Parser. In XV Congres of SEPLN.
Pentus, M. (1993). Lambek Grammars Are Context Free. In Proc. of 8th Ann. IEEE Symp. on Logic in
Computer Science, LICS’93, pp. 429–433. IEEE Computer Society Press, Los Alamitos, Montreal,
Canada.
Petitepierre, D., Krauwer, S., des Tombe, L., Arnold, D., e Varile, G. (1987). A Model for Preference.
In Proceedings of the 3rd Conference of the European Chapter of the ACL.
Rao, B. R. (1995). Making the Most of Middleware. In Data Communications International, volume 12, pp. 89–96. Setembro.
Ritchie, G., Black, A., Pulman, S., e Russell, G. (1987). The Edinburgh/Cambridge Morphological
Analyser and Dictionary System. Relatório Técnico 10, Department of Artificial Intelligence,
University of Edinburgh.
Russell, S. J. e Zilberstein, S. (1991). Composing Real-Time Systems. In Proceedings of the Twelfth
International Joint Conference on Artificial Intelligence, pp. 212–217, Sydney, Australia.
Salton, G. (1989). Automatic Text Processing. Addison-Wesley Publishing Company.
BIBLIOGRAFIA
117
Schulze, B., Heid, U., Schmid, H., Schiller, A., Rooth, M., Grefenstette, G., Gaschler, J., Zaenen, A., e
Teufel, S. (1994). Comparative State-of-the-Art Survey and Assessment Study of General Interest
Corpus-oriented Tools. DECIDE - MLAP-Project 93-19, Deliverable D-1b.
Shieber, S. M. (1986). An Introduction to Unification-Based Approaches to Grammar. CSLI, Stanford.
Shieber, S. M., Schabes, Y., e Pereira, F. C. N. (1995). Principles and Implementation of Deductive
Parsing. Journal of Logic Programming, 24(1,2):3–36.
Stolcke (1995). An Efficient Probabilistic Context-Free Parsing Algorithm that Computes Prefix
Probabilities. In Computational Linguistics, MIT Press for the Association for Computational
Linguistics, volume 21.
Strzalkowski, T., editor (1994). Reversible Grammar In Natural Language Processing. Kluwer
Academic Publishers, Boston, London.
Tomita, M. (1987). An Efficient Augmented-Context-Free Parsing Algorithm. Computational Linguistics, 13:31–46.
Vergne, J. e Giguet, E. (1988). Regards Théoriques sur le Tagging. In actes de la cinquième
conférence Le Traitement Automatique des Langues Naturelles (TALN98), Paris, França.
Voutilainen, A., Heikkilä, J., e Anttila, A. (1992). Constraint Grammar of English. A PerformanceOriented Introduction. Number 21. Department of General Linguistics, University of Helsinki.
W3C (1999). XSL Transformations (XSLT) Version 1.0. Web site. http://www.w3.org/TR/xslt.
Xerces (2003). The Apache XML Project. http://xml.apache.org/. The Apache Software Foundation.
Younger, D. (1966). Context-Free Language Processing in Time
10(2):189–208.
. In Information and Control, pp.
Zechner, K. e Waibel, A. (1998). Using Chunk Based Partial Parsing of Spontaneous Speech in
Unrestricted Domains for Reducing Word Error Rate in Speech Recognition. In Proceedings of the
COLING / ACL98.
118
BIBLIOGRAFIA
algoritmo, 35, 62, 66
anytime, 68
CKY, 19, 26
CYK, 16
Earley, 19
GHR, 16
alternativas
frase, 34
ambiguidade, 17, 20, 36, 41
análise
complexidade da, 73
de superfı́cie, 4
hipóteses, 74
processo de, 62
resultados, 80
robusta, 5
sintáctica, 3
análises, 59
analisador
de Earley, 18
LR, 18
API, 58
aposição mı́nima, 7
arquitectura, 59
associação à direita, 7
avaliação
AF, 40
condições de, 40, 83
BNF, 14, 48
caminhos
registo de, 67
categorias
generalização de, 30
maximais, 30
não maximais, 30
CCG, 15
cobertura, 40
lexical, 4
coordenação, 37, 84, 88, 103
corpus, 80
custos
atribuição de, 66
identificação, 5
funcionamento
interno, 59
function composition, 20
DAG, 20, 31, 62–64, 67
DCG, 14
declaratividade, 25
desambiguação, 78
DOM, 91
DTD, 43, 56
grafo, 62
grafos
vértices do, 62
visualização, 77
gramática, 80, 83
gramáticas
livres de contexto, 14
paralelas, 103
grau de confiança, 47
elemento
bloco, 45
de topo, 45, 74
preference, 47
superclass, 46
estratégia, 8, 53
estruturas
incompletas, 78
múltiplas, 70
extracção
sintagmas nominais, 79
ferramentas
af2xml, 87
Jonction, 34
MPS, 33, 34, 40
Pasmo2Af, 85
SMORPH, 33
Fidditch, 23
formatos
contagens, 75
grafos, 77
Sintagmas, 77
Texto, 77
XML, 43, 75
fragmentos, 3, 59, 62
continuação de, 66
criação de, 63
definição, 59
HG, 15
Hierarquia de Chomsky, 13
Lambek
cálculo de, 19
gramáticas de, 19
late closure, 7
LIG, 15
low attachement, 20
módulo
de análise, 61
de extracção, 61
minimal attachment, 7
modelo
anterior, 32
break, 84
de topo, 30, 45, 70
definição, 43
não terminal, 44
superior, 32
terminal, 44
modelos, 45, 46
candidatos, 66
comportamento, 30
identificação, 29
ÍNDICE REMISSIVO
120
mais longos, 65, 72, 73, 80
previsão de, 78
motivação, 2
objectivos, 8, 53
operações
flechagem, 34
folhagem, 34
parâmetros
da análise, 68
de extracção, 75
precisão, 40
preferências, 20, 47, 72
contexto, 47
recuperação de texto, 79
repositório, 61, 62, 67
resultados, 80
AF, 34
extracção de, 74
formatos, 75
restrição de, 71
retrocesso, 17, 23
right association, 7
robustez, 9
RPC, 9, 54, 59
sı́mbolo
inicial, 14
não terminal, 14
terminal, 14
segmentos, 70
demarcação de, 70
estrutura, 56
shallow
parsers, 4, 21
syntax, 4
shift-reduce, 17, 18
sintagma nuclear, 38
sintaxe
de superfı́cie, 4
domı́nio, 3
sistemas
ATA, 79
Poeta, 79
SN
complementos, 40
SNs
existência de, 41
extracção de, 38
extractor, 39
teor, 41
TAG, 15
teorias
psicolinguı́sticas, 3, 6, 20
termos
extracção de, 79
texto real, 79
unidades lexicais
definição, 56
desprezar, 70
unificação
formalismos, 16
vértices
registo de, 67
visibilidade, 25
XML, 9, 55, 58, 75, 91
XSLT, 55, 85
Download

universidade técnica de lisboa instituto superior técnico - INESC-ID