Luana Vieira Morellato
SIDSN
Sistema Identificador de Sintagmas Nominais
Vitória - ES, Brasil
17 de Julho de 2007
Luana Vieira Morellato
SIDSN
Sistema Identificador de Sintagmas Nominais
Monografia apresentada para obtenção do Grau
de Bacharel em Ciência da Computação pela
Universidade Federal do Espírito Santo.
Orientador:
Sérgio Antônio Andrade de Freitas
D EPARTAMENTO DE I NFORMÁTICA
C ENTRO T ECNOLÓGICO
U NIVERSIDADE F EDERAL DO E SPÍRITO S ANTO
Vitória - ES, Brasil
17 de Julho de 2007
Monografia de Projeto Final de Graduação sob o título “SIDSN - Sistema Identificador
de Sintagmas Nominais” defendida por Luana Vieira Morellato e aprovada em 17 de Julho de
2007, em Vitória, Estado do Espírito Santo, pela banca examinadora constituída pelos membros:
Prof. Sérgio Antônio A. de Freitas, D. Sc.
Orientador
Prof. Ayrton Monteiro Cristo Filho, M. Sc.
Examinador
Carlos Roberto de Souza Rodrigues, B. Sc
Examinador
Resumo
Este trabalho trata de um sistema que identifica, automaticamente, sintagmas nominais em
sentenças escritas em português. Os sintagmas são formados por grupos de palavras que constituem uma unidade dentro da frase com comportamento de sujeito ou de objeto.
As literaturas apresentam a utilização de sintagmas nominais em sistemas de Recuperação
de Informações (RI), por exemplo, como termos de índices para sistemas de indexação de documentos, no lugar das palavras-chave, normalmente usadas. Na análise semântica, heurísticas
baseadas em resolução de anáforas consideram sintagmas nominais como possíveis antecedentes para expressões anafóricas
O Sistema de Identificação de Sintagmas Nominais (SIDSN) desenvolvido é composto de
dois módulos para obtenção de sintagmas a partir de textos digitalizados. O primeiro faz o préprocessamento no texto, estruturando-o em frases; a partir daí, o módulo Identificador realiza a
análise sintática da sentença e extraí os sintagmas nominais identificados.
Dedicatória
Dedico este trabalho à minha família, papai, mamãe, Lice e Dinho, razão da minha vida.
Agradecimentos
Agradeço a Deus, força maior que nos rege, por estar sempre presente em minha vida.
Aos professores que contribuíram em minha formação acadêmica, obrigado pela paciência
e a dedicação ao transformar o desconhecido em sabedoria. Em especial, aos docentes do
departamento de informática.
Ao Sérgio pela confiança e disponibilidade como professor e orientador. Mesmo com inúmeras atividades, trabalhos e reuniões, sempre respondeu a email’s, tirou dúvidas e, nos momentos de “aflição” da minha parte, a insistente pergunta surgia: Você tá bem?.
Agradeço aos meus pais por dedicarem, ao longo desses anos, o que fosse preciso para
que eu pudesse seguir os caminhos que escolhi. Ao papai por ser, para mim, exemplo de honestidade, responsabilidade e ética, e a mamãe, pelo amor dedicado e demostrado, seja em
sucos levados até o quarto, quando passava horas fazendo trabalho, ou em ligações preocupadas
quando eu esquecia de avisar que ia chegar tarde.
À vovó Teresinha por ser a minha maior “puxa-saco” e sempre ter meu biscoito favorito e
um café quentinho ao passar em sua casa. À madrinha e ao padrinho pelo carinho, e à Marlúcia
por ser a “primã”, a prima-irmã em quem posso confiar.
À Alice por acumular papéis de irmã, amiga, confidente, e por se propor a entender o que
era uma árvore vermelho-preto só para me ajudar a encontrar o motivo de um segmentation full
“inexplicável”. Amo-te de maneira imensurável. À Cris pela amizade incondicional dedicada
desde a época que Ciência da Computação era só uma opção no vestibular. Obrigado por
acreditar, sonhar e lutar junto, pelo sorriso, teimosia, pelas conversas no Transcol ou no sofá de
casa em tardes de domingo.
À Nick pela desenvoltura e flexibilidade demonstrada nos ótimos momentos vividos, por
me deixar fazer da sua república a minha segunda casa, por esperar (dormindo na janela) que
eu chegasse, por me deixar falar por horas. À Magdíssima pela sinceridade, alegria e companheirismo em todos os momentos, e por sempre me dizer o que eu precisava e não o que eu
queria ouvir. À Bruna pelas muitas, e foram muitas mesmo, histórias que, graças à ela, tenho
para contar. Obrigada pelos colchões divididos, roupas emprestadas, pelas fotos “oficiais” e por
me ajudar a acreditar que vale a pena. À querida amiga ártemis Sassá, pela simplicidade, força
e confiança.
Agradeço ao Tatá, o amigo japa mais legal do cantinho, por me ensinar que vírgula é um
sinal de pontuação e não deve ser usado de forma duvidosa. Graças a você, hoje bebo muito
cappucino e me jogo de cabeça, mas também sei a quem procurar quando surge a questão “E
agora, o que faço?”. Muito obrigado por fazer parte da minha vida.
Aos amigos de Santana (Wellington, Deivid, Lilian e Sheilla) e da PJ, Pastoral da Juventude
que, mesmo não havendo a alegria da convivência, continuam a ser muito importantes e queridos. À Lu por ser o recurso humano responsável pelos esclarecimentos e correções lingüísticas
deste trabalho e, também, por cuidar da Lice na minha ausência.
Aos grandes amigos que adquiri durante o curso, em especial, aos 66,666... % das meninas
da sala, Débora e Mary, pela cumplicidade feminina e por formarmos as “programadoras superpoderosas”.
Aos amados amigos e sócios da Top Three, Salomão e Kbelo, pelos trabalhos em duplas
(realizados em trio), os estudos em véspera de prova, pelas brincadeiras e os “papos-cabeça”,
os rocks na cachoeira do Brother e o “minha preta”. Sem a presença de vocês, chegar até aqui
seria muito mais difícil e menos divertido.
Ao Jão pelo companherismo, pelas vezes que o fiz de google, e por aprender antes para me
explicar depois. Agradeço ao Victão pela sinceridade e franqueza, ao Camilo pela amizade e
ternura, e ao Paulim pelo apoio, por compartilhar indecisões e por sempre lembrar que “Dormir
é para os fracos!”. Ao Guilherme, Ckin, Macarrão, Lufe, Diêgo, Gazzela e outros meninos da
turma pela companhia em aula, trabalhos e momentos de descontração.
E a todos que não foram citados, mas, de alguma maneira, fizeram e fazem parte da minha
história.
Sumário
Lista de Figuras
Lista de Tabelas
1 Introdução
p. 11
1.1
Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 11
1.2
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 11
1.3
Revisão bibliográfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 12
1.4
Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 13
1.5
Estrutura da monografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 13
2 Lingüística Computacional
p. 14
2.1
Introdução
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 14
2.2
Processamento da Linguagem Natural . . . . . . . . . . . . . . . . . . . . .
p. 15
2.3
Analisadores Sintáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 16
2.3.1
Léxico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 16
2.3.2
Gramáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 16
2.3.2.1
Formalismo . . . . . . . . . . . . . . . . . . . . . . . . .
p. 18
Métodos de Análise . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 18
Gramática Sintagmática do Português . . . . . . . . . . . . . . . . . . . . .
p. 19
2.4.1
Os Sintagmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 20
2.4.1.1
Sintagma Nominal . . . . . . . . . . . . . . . . . . . . . .
p. 20
2.4.1.2
Sintagma Verbal . . . . . . . . . . . . . . . . . . . . . . .
p. 21
2.3.3
2.4
2.4.1.3
Sintagma Adjetival e Preposicional . . . . . . . . . . . . .
3 SIDSN, um identificador de sintagmas nominais
p. 21
p. 23
3.1
Definição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 23
3.2
O Pré-processador de Textos . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 24
3.3
Identificador de Sintagmas Nominais . . . . . . . . . . . . . . . . . . . . . .
p. 25
3.3.1
Regras Gramaticais . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 26
3.3.1.1
DCG - Definite Clause Grammar . . . . . . . . . . . . . .
p. 27
3.3.1.2
Nomes e Verbos Composto . . . . . . . . . . . . . . . . .
p. 29
3.3.1.3
Sintagma Preposicional . . . . . . . . . . . . . . . . . . .
p. 30
3.3.1.4
Sintagma Verbal . . . . . . . . . . . . . . . . . . . . . . .
p. 30
3.3.1.5
Sintagma Nominal
. . . . . . . . . . . . . . . . . . . . .
p. 32
Dicionário de Dados . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 34
3.3.2.1
Classificação das palavras . . . . . . . . . . . . . . . . . .
p. 35
Interface de Comunicação . . . . . . . . . . . . . . . . . . . . . . .
p. 36
3.3.2
3.3.3
4 Testes e Avaliação dos Resultados
p. 39
4.1
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 39
4.2
Testes Iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 39
4.3
Testes por Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 43
4.4
Análise Qualitativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 50
4.5
Análise do Dicionário de Dados . . . . . . . . . . . . . . . . . . . . . . . .
p. 51
5 Conclusões e trabalhos futuros
p. 54
Referências
p. 57
Lista de Figuras
1
Modelo de implementação do SIDSN . . . . . . . . . . . . . . . . . . . . .
p. 23
2
Exemplo de entrada e saída dos módulos do SIDSN . . . . . . . . . . . . . .
p. 24
3
Descrição do Identificador de Sintagma Nominal . . . . . . . . . . . . . . .
p. 26
4
Árvore de derivação sintática de uma frase . . . . . . . . . . . . . . . . . . .
p. 26
5
Exemplos de frases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 29
6
Modelo do Dicionário de Dados . . . . . . . . . . . . . . . . . . . . . . . .
p. 34
7
Estrutura da Interface de Comunicação . . . . . . . . . . . . . . . . . . . . .
p. 36
8
Gráfico de Média e Desvio Padrão dos Grupo de Testes . . . . . . . . . . . .
p. 50
9
Gráficos de análise do dicionário de dados: Grupos Informal e Formal . . . .
p. 52
10
Gráficos de análise do dicionário de dados: Grupos Noticiário e Científico . .
p. 52
11
Gráficos de análise do dicionário de dados: Grupos Técnico e Narrativa . . .
p. 53
Lista de Tabelas
1
Resultados dos Testes Iniciais . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 40
2
Resultados de Testes Posteriores . . . . . . . . . . . . . . . . . . . . . . . .
p. 42
3
Resultado Geral
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 43
4
Textos Informais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 44
5
Textos Formais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 45
6
Textos Técnicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 46
7
Textos Noticiários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 47
8
Textos Narrativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 48
9
Textos Científicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 49
10
Análise Qualitativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 50
11
Tempos de execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 55
11
1
Introdução
1.1 Motivação
O Processamento de Linguagem Natural (PLN) é voltado ao desenvolvimento de sistemas
que possam interpretar, planejar e produzir informação em linguagem natural. Com o grande
volume de informações armazenadas, atualmente, em formato digital, existe a preocupação em
se obter (e melhorar) ferramentas que possibilitem, dentre outras funcionalidades, organizar,
representar e facilitar a busca nestes dados.
Torna-se interessante, então, o desenvolvimento de sistemas de interpretação de linguagem
natural como aplicação específica ou, ainda, para auxiliar outros programas. O SIDSN, ao
identificar sintagmas nominais, pode ser utilizado por softwares de PLN, principalmente, da
área de Recuperação de Informação (RI), para obter informações de documentos.
O trabalho de Júnior [Júnior 2007] propõe uma metodologia para recuperar informações
relevantes a partir da resolução das anáforas de um documento. A recuperação de informações
é dada pela estrutura proposta por Freitas, [Freitas 2005]. Essa estrutura permite acompanhar
as entidades que se mantêm em evidência ao longo do discurso. No processo de resolução de
anáforas e na obtenção desta estrutura, faz-se necessária a identificação dos sintagmas nominais
contidos no documento.
1.2 Objetivos
O objetivo deste trabalho é construir um sistema para identificar e recuperar, automaticamente, sintagmas nominais contidos em textos escritos. Os textos são irrestritos em relação aos
assuntos tratados, à origem e à estruturação de escrita. A língua adotada nos textos, disponíveis
por meio de documentos digitais, é o Português.
O sistema desenvolvido deve ser capaz de processar documentos para obtenção de textos
em estrutura de frases, além de analisar sintaticamente cada uma para obter a sua composição,
1.3 Revisão bibliográfica
12
de acordo com a gramática sintagmática da língua portuguesa. Deve ser capaz, também, de
identificar todos os sintagmas nominais da frase, recuperar os elementos e informações morfológicas que os compõem, as características sintáticas e a função exercida pelos mesmos na
frase.
1.3 Revisão bibliográfica
A área de Processamento de Linguagem Natural contém trabalhos que implementam a recuperação de sintagmas nominais e trabalhos que utilizam os SN’s como parte da solução. Esta
seção apresenta brevemente alguns exemplos encontrados nas literaturas.
Miorelli [Miorelli 2001] desenvolveu um método denominado ED-CER, de extração de
sintagmas nominais, constituído de dois módulos. O módulo Seletor elimina palavras que não
fazem parte de um sintagma nominal (como verbos, locuções e pontuação), encontrando candidatos a SN. O módulo Analisador recebe esses candidatos, realiza análise sintática, verificando
a sua conformidade com as regras da gramática e, então, o sintagma nominal é reconhecido.
Vieira, em [Vieira et al. 2001], apresenta um trabalho de extração semi-automática de sintagmas nominais para resolver co-referência textual para a Língua Portuguesa. A extração dos
sintagmas nominais foi feita por meio de árvores sintáticas geradas pelo software interativo do
projeto Visual Interactive Syntax Learning (VISL) em forma de listas PROLOG. As correções
nos sintagmas obtidos foi feita manualmente. O trabalho utilizou um corpus constituído por um
conjunto de textos do jornal Correio do Povo.
Kuramoto [Kuramoto 1996] aborda o uso de sintagmas nominais como uma alternativa
na recuperação da informação. Propõe, por meio da construção de um protótipo, um sistema
de recuperação de informação capaz de navegar em uma estrutura em árvore de SN’s. Em
[Kuramoto 2002], procurou explicitar e analisar as freqüências de ocorrências de cada estrutura
possível para os sintagmas nominais.
Souza [Souza 2005], em sua tese de doutorado, investiga o potencial de uso dos sintagmas
nominais em processos de indexação automática, partindo do pressuposto que estes têm maior
grau de informação semântica embutida e, assim, podem vir a se tornar mais eficazes do que
as palavras-chave normalmente utilizadas como descritores em processos automatizados de representação de documentos ou em sistemas de leitura das palavras oferecidas pelo autor dos
documentos.
Em [Freitas 2005] é proposto, por Freitas, um método de resolução de anáforas nominais
1.4 Metodologia
13
definida. Tal tarefa, dependendo do seu tipo, é feita mediante a procura de um antecedente,
tendo como estrutura uma lista de entidades explícitas, composta por sintagmas nominais indefinidos, pronomes e elipses e uma implícita com sintagmas nominais definidos. O conceito de
definido e indefinido está associado ao tipo do artigo que acompanha o sintagma.
1.4 Metodologia
A metodologia adotada para o desenvolvimento deste trabalho iniciou-se com uma revisão
bibliográfica, incluindo estudos relacionados ao conhecimento sobre processamento de linguagem natural, linguagem de programação lógica e armazenamento de dados por meio de banco
relacional; além da realização de estudos da gramática da língua portuguesa.
Logo após a revisão bibliográfica, definiram-se as ferramentas para implementar o identificador de sintagmas nominais e iniciou-se o processo de desenvolvimento. A seguir, foram
realizados testes no sistema e, paralelamente, foi produzido um cronograma para a elaboração
da monografia, seguido até sua conclusão.
1.5 Estrutura da monografia
O presente trabalho está estruturado da seguinte forma:
O capítulo 2 apresenta pontos teóricos relacionados ao sistema. Os conhecimentos computacionais abrangem na área Processamento de Linguagem Natural o estudo de Analisadores
Sintáticos. A descrição de conceitos da Gramática da Língua Portuguesa relativos aos sintagmas
são encontrados na seção 2.4
No capítulo 3, é apresentado o SIDSN, o modelo de implementação, as etapas envolvidas
e ferramentas utilizadas. O capítulo 4 trata dos testes efetuados e da análise dos resultados
obtidos. As considerações finais, conclusões e trabalhos futuros são descritas no capítulo 5.
14
2
Lingüística Computacional
Neste capítulo apresentam-se os principais conceitos relacionados ao desenvolvimento de
um identificador de sintagmas nominais.
2.1 Introdução
“A Lingüística Computacional é a área de conhecimento que explora as relações entre
lingüística e informática, tornando possível a construção de sistemas com capacidade de reconhecer e produzir informação apresentada em linguagem natural” [Vieira e Lima 2001]. Envolve conhecimentos de lingüística teórica e aplicada como, por exemplo, a sintaxe, a semântica, a pragmática e análise de discurso, normalmente provenientes de estudiosos linguistas, e de
linguagens de programação e software para processar as línguas naturais. A Lingüística Computacional pode ser dividida em duas áreas: Lingüística baseada em Corpus e Processamento
de Linguagem Natural (PLN).
A Lingüística baseada em Corpus utiliza um conjunto de textos, corpus, com a finalidade
de obter informações como freqüência de palavras, de formas, fazer comparações entre a língua
falada e escrita, analisar usos da língua em diferentes épocas, encontrar diferenças entre o português do Brasil e de Portugal, dentre outras. Existem corpus de diferentes fontes e tipos como
os de linguagem falada, linguagem escrita literária, textos de jornal, dentre outros.
Nessa área da lingüística, a utilização da computação limita-se a auxiliar na obtenção das
informações e no armazenamento dos dados, não se destinando diretamente à construção ou
aperfeiçoamento de algum software ou aplicativo.
O Processamento de Linguagem Natural (PLN) é voltado à construção de softwares, aplicativos e sistemas computacionais específicos que possam interpretar, planejar e produzir informação em linguagem natural. Sendo necessário “diversos subsistemas para dar conta dos
diferentes aspectos da língua: sons, palavras, sentenças e discurso nos níveis estruturais, de
significado e de uso”, [Vieira e Lima 2001].
2.2 Processamento da Linguagem Natural
15
Analisadores sintáticos, também chamados de parsers, chatterbots (programas que simulam a conversação humana), tradutores automáticos, reconhecedores de voz e geradores de
resumo são alguns exemplos de sistemas desenvolvidos pelo PLN.
Este trabalho compreende o Processamento de Linguagem Natural para o desenvolvimento
de um software específico que identifique sintagmas nominais.
2.2 Processamento da Linguagem Natural
“O Processamento de Linguagem Natural é um subcampo da Inteligência Artificial (IA)
e da lingüística que estuda os problemas de geração automática e entendimento da linguagem
natural”, [Wikipédia]. O PLN envolve sistemas para tratar a linguagem escrita e falada.
Na linguagem falada tem-se o desenvolvimento de sistemas de reconhecimento e de síntese
da fala. O reconhecimento da fala compreende a interpretação dos sons e a ligação destes com
os símbolos existentes na linguagem. A síntese da fala contém programas capazes de gerar uma
saída sonora a partir de um texto. Os conhecimentos em lingüística considerados englobam
estudo de fonética, que consiste na análise da fala humana num nível fisiológico de produção, e
fonologia, que estuda as regras e princípios da distribuição dos sons da língua.
As áreas da Lingüística de grande importância para o desenvolvimento de programas que
manipulam linguagem escrita são a morfologia, a sintaxe, a semântica e, em alguns casos, a
pragmática e o discurso. Aplicativos nessa área podem fazer traduções automáticas de textos,
geração de resumos, correção ortográfica e gramatical, análise sintática, dentre outras funcionalidades.
Segundo [Xavier 1992], a sintaxe é “a área da lingúistica que estuda as regras, as condições
e os princípios subjacentes à organização estrutural dos constituintes das frase, ou seja, o estudo
da ordem dos constituintes das frases”. Os analisadores sintáticos, parsers, são os programas
responsáveis pela interpretação automática (ou semi-automática) de sentenças de linguagem
natural.
“A semântica é a área que estuda o significado tal como ele é estruturado nas línguas”,
[Xavier 1992]. É a parte do estudo da linguagem que se ocupa do significado das expressões da
língua, enquanto a pragmática relaciona o significado com o contexto no qual está inserido.
A pragmática é, então, definida como “a área que estuda os princípios da linguagem em
situação de uso, na qual os comunicadores e o contexto são as categorias principais que determinam a interpretação lingüística”, [Xavier 1992].
2.3 Analisadores Sintáticos
16
O sistema identificador de sintagmas nominais lida com o tratamento em nível sintático de
linguagem natural, fundamentado na obtenção de um analisador sintático que classifica palavras
e expressões sintagmáticas em sentenças e define uma estrutura de relação entre estas, de acordo
com uma gramática definida.
2.3 Analisadores Sintáticos
O analisador sintático tem a função de reconhecer uma seqüência de palavras e afirmar
se esta compõe uma frase da língua. As relações entre as palavras que constituem uma frase
podem ser mostradas por meio de uma representação gráfica dada por uma árvore de derivação.
A análise sintática determina a sintaxe de uma linguagem, dada pelas regras de uma gramática. Estas são definidas pela combinação de um conjunto de palavras, denominado léxico. É
necessário, também, especificar um método de análise para o processo de analisador sintático,
[Louden 2004].
2.3.1 Léxico
O léxico, também conhecido como dicionário, é a estrutura que contém os itens lexicais
e suas informações morfológicas. Os itens podem ser palavras isoladas ou composições vocabulares e, dentre as informações associadas a eles, tem-se a classe gramatical, além de valores
como gênero, número, grau, pessoa, tempo, modo, regência e, em alguns casos, representações
ou descrições semânticas.
A morfologia estuda a constituição das palavras e sua classificação em categorias, sendo
necessária na composição do léxico de um analisador. Trata do conhecimento da estrutura das
palavras, que podem ser constítuídas por unidades básicas, chamadas de morfemas, e elementos
adicionais, como sufixos e prefixos.
Também é a morfologia que classifica as palavras em diferentes categorias gramaticais
como substantivos, verbos, adjetivos, preposições etc. Uma palavra pode ser classificada em
mais de uma categoria, dependendo do contexto no qual está inserida e de sua função na frase.
2.3.2 Gramáticas
A gramática utilizada num analisador sintático deve ser capaz de reconhecer as sentenças
válidas da língua, além de mostrar sua expressividade. É composta por regras por meio das
2.3 Analisadores Sintáticos
17
quais é possível obter os elementos da linguagem. A classificação de gramáticas, segundo
[Chomsky 1956], possui 4 níveis:
• Tipo 0: Gramáticas sem restrição
As gramáticas pertencentes a essa classificação são aquelas às quais nenhuma limitação
é imposta.
• Tipo 1: Gramáticas livres de contexto
São gramáticas que não levam em consideração o contexto em que estão sendo analisadas,
permitindo a representação de linguagens com um certo grau de complexidade. Para a
linguagem natural, o maior problema está relacionado às dependências e concordâncias,
pois abordagens puramente livres de contexto não são suficientemente poderosas para
captar a descrição adequada deste gênero de linguagem.
• Tipo 2: Gramáticas sensíveis ao contexto
Ao utilizar gramática sensível ao contexto, o problema de dependência é resolvido. Porém, seu uso em PLN é restrito devido à complexidade algorítmica envolvida. Além
disso, tais gramáticas não tratam de maneira satisfatória algumas restrições gramaticais.
• Tipo 3: Gramáticas regulares
São gramáticas simples e facilmente reconhecidas. Porém, apresentam um poder de expressão limitado.
Em Exemplo 1 tem-se exemplo de uma gramática com duas regras de formação definidas
por meio de fatos e regras em lógica de 1a ordem.
Exemplo 1 : A menina sorriu. Ela sorriu.
frase ⇒ artigo , nome, verbo.
frase ⇒ pronome, verbo.
verbo(sorriu).
artigo(a).
nome(menina).
pronome(ela).
2.3 Analisadores Sintáticos
18
2.3.2.1 Formalismo
Pode-se definir um formalismo como uma maneira de escrever uma gramática. Porém, não
há como demarcar um formalismo que contemple todas as necessidades da linguagem natural.
Os modelos utilizados e propostos seguem em um nível intermediário às gramáticas de livre
contexto e às gramáticas sensíveis ao contexto.
Segundo [Vieira e Lima 2001], dentre os formalismos gramaticais destacam-se as redes de
transição, gramáticas de constituintes imediatos (phrase structure grammar PSG), gramáticas
de constituintes imediatos generalizadas (GPSG), gramáticas de unificação funcional, PATR-II,
e, ainda, HPSG (head-driven phrase strutcture grammar).
Dos formalismos gramaticais citados anteriormente, mostrar-se-á dois deles. Primeiramente, as PSG’s (phrase structure grammar), gramáticas livres de contexto que estruturam
a sintaxe frasal em função de seus constituintes. Por exemplo, define-se uma Frase como sendo
composta pelos constituintes Sintagma Nominal e Sintagma Verbal.
O formalismo PSG tem poder gerativo e capacidade computacional e é utilizado, por exemplo, em algoritmos que reconhecem linguagens de programação. No entanto, não consegue
resolver questões de concordância de gênero, número e pessoa, que são de grande importância
em linguagem natural.
O problema de concordância é resolvido no formalismo PATR-II, onde é possível fornecer
informações de gênero, número e pessoa nas regras gramaticais.
2.3.3 Métodos de Análise
Apresentada as noções de gramática e os formalismos de representação, a seguir tem-se
diferentes métodos de análise sintática, por meio de analisadores top-down, bottom-up, leftcorner e chart parser.
A análise top-down caracteriza-se por construir uma árvore de derivação da raiz para as
folhas, ou seja, começando pelas regras iniciais e descendo para os símbolos da sentença, as
palavras. Um analisador top-down utilizado no Exemplo 1, encontraria o conceito frase e,
então, verificaria as regras das quais é composto. Uma análise de regras da esquerda para a
direita irá descer pelo ramo mais à esquerda da árvore até encontrar um elemento terminal que
a satisfaça.
O método top-down permite uma redundância na análise de dados, ao precisar verificar as
regras mais de uma vez. Dependendo da estruturação das regras, pode acontecer uma recursão
2.4 Gramática Sintagmática do Português
19
em loop mais a esquerda, não sendo possível terminar a análise da frase.
Um analisador bottom-up faz o contrário, começa pelas folhas da árvore de derivação, e
tenta montá-la combinando as regras. Não há problemas com loop para regras recursivas à
esquerda, porém, não tem como tratar fenômenos linguísticos como constituintes vazios, componentes facultativos na frase, entre outros.
O left-corner é uma combinação das análises bottom-up e top-down pois, ao encontrar uma
palavra, ele verifica que tipo de regra inicia com tal palavra e, então, faz o restante da análise de
forma top-down partindo desta regra. Assim, não há problemas com loop.
O chart parser, também chamado de tabular, evita a redundância de buscas ao guardar as
estruturas já analisadas e reutilizá-las, se for preciso. Assim, elimina-se o backtraking e previne
a explosão combinatorial de possibilidades que poderia vir a ocorrer durante o processamento.
Verificados os assuntos computacionais relacionados à estruturação de um programa para
processamento de linguagem natural, no caso específico dos analisadores sintáticos, tem-se a
necessidade de ligação com um domínio.
Na análise sintática, a gramática abrange um conjunto de regras que definem as formas
permitidas de uma linguagem. A Gramática Sintagmática do Português explicita as regras de
formação de sentenças válidas da língua por meio de seus constituintes, os sintagmas.
2.4 Gramática Sintagmática do Português
Segundo [Silva 1993] “uma frase é a expressão verbal de um pensamento, ou seja, todo
enunciado suficiente por si mesmo para estabelecer comunicação”. A frase consiste, então, em
uma combinação de elementos lingüísticos agrupados segundo regras e princípios que a tornam
uma sentença válida da língua.
Oração é todo enunciado lingüístico que se estrutura ao redor de um verbo. O conceito de
frase, por vezes, é empregado como sinônimo de oração. Mas a frase não precisa obrigatoriamente ter um verbo. Em Exemplo 2 tem-se casos de orações e frases.
Exemplo 2 :
1. Cuidado!
2. A aula irá começar mais cedo.
3. Viajaremos nas férias de julho.
2.4 Gramática Sintagmática do Português
20
As regras gramaticais têm como função especificar e formalizar as relações existentes entre
os elementos que compõem as frases. As regras devem ser capazes de descrever a estrutura
sintática da língua a qual se referem. Os elementos que, quando combinados, formam orações
são chamados de sintagmas.
2.4.1 Os Sintagmas
“O sintagma consiste num conjunto de elementos que constituem uma unidade significativa
dentro da oração e que mantêm entre si relações de dependência e de ordem”, [Silva 1993]. Um
sintagma é formado por uma ou várias palavras que, juntas, desempenham uma função na frase.
A natureza do sintagma depende da classe gramatical a qual seu núcleo pertence, existindo
assim sintagmas nominais (SN), sintagmas verbais (SV), sintagmas adjetivais (SA) e sintagmas
preposicionais (SP).
Uma oração deve conter, obrigatoriamente, o SN e o SV, e, de forma facultativa, o SA e o
SP. O sintagma nominal apresenta-se oculto em algumas frases, como no Exemplo 2.3, em que
o vocábulo Nós não aparece. No Exemplo 3, vê-se um frase e sua decomposição em sintagmas.
Exemplo 3 : O bebê acordou cedinho.
• Sintagma Nominal ⇒ O bebê
• Sintagma Verbal ⇒ acordou cedinho
• Sintagma Preposicional ⇒ cedinho
2.4.1.1 Sintagma Nominal
O Sintagma Nominal é a unidade sintática-semântica em que o núcleo é constituído por um
nome ou pronome. O núcleo pode ser acompanhado pelos elementos caracterizadores denominados determinante e modificador.
Um sintagma nominal pode ter função de sujeito ou objeto na frase, dependendo da sua
relação com os outros constituintes. A seguir, tem-se a regra de formação geral de um sintagma
nominal, onde os parênteses indicam que o elemento é facultativo, no caso o determinante, Det,
e o modificador, Mod.
SN −→ (Det) + (Mod) + Núcleo + (Mod)
2.4 Gramática Sintagmática do Português
21
O nome pode ser representado por elementos da classe dos substantivos (sobretudo simples,
composto e próprio), e dos pronomes (pessoal). O determinante é composto por artigos definidos e indefinidos, numeral, pronomes possessivos, indefinidos, e pode também ser formado de
maneira composta. O modificador é constituído de sintagmas adjetivais e preposicionais.
O Exemplo 4 exibe frases que destacam os sintagmas nominais, além de ressaltar sua função.
Exemplo 4 :
• Duas caixas caíram no chão. (sujeito - objeto)
• Os meus dois cachorros fugiram. (sujeito)
• Ela chama-se Maria José. (sujeito - objeto)
• Todos choraram. (sujeito)
2.4.1.2 Sintagma Verbal
O sintagma verbal é constituído do seu núcleo, o verbo, e de modificadores facultativos
SN, SP e/ou SA. O verbo pode ser composto por um ou mais vocábulos. Alguns exemplos de
sintagmas verbais com os seus respectivos tipos de verbos são mostrados no Exemplo 5.
Exemplo 5 :
• A menina adormeceu. (adormecer - verbo intransitivo)
• Alice vendeu a casa. (vender - verbo transitivo direto)
• Os alunos faltaram à aula. (faltar - verbo transitivo indireto)
• O professor falou de você ao diretor. (falar - verbo transitivo direto e indireto)
2.4.1.3 Sintagma Adjetival e Preposicional
O sintagma adjetival (SA) e o sintagma preposicional (SP) podem ser encontrados como
parte de outros sintagmas, exercendo a função de modificadores destes. O SA tem como núcleo
um adjetivo e pode possuir modificadores e intensificadores, conforme exibido no Exemplo 6.
Exemplo 6 :
2.4 Gramática Sintagmática do Português
22
• A escola é velha. (adjetivo)
• A escola é muito velha. (advérbio + adjetivo)
O sintagma preposicional é composto por uma preposição e um SN, ou de um advérbio,
mostrados no Exemplo 7.
Exemplo 7 :
• A caminhada começa cedinho. (advérbio)
• A caminhada começa de madrugada. (preposição + SN)
Fundamentado nos conhecimentos obtidos no que diz respeito às áreas computacionais de
Análise Sintática em Processamento de Linguagem Natural, e lingüísticas de Gramática da
Língua Portuguesa, é possível construir um sistema capaz de identificar expressões da língua,
no caso específico, de sintagmas nominais em frases.
23
3
SIDSN, um identificador de sintagmas
nominais
Este capítulo apresenta o SIDSN - Sistema Identificador de Sintagmas Nominais.
3.1 Definição
O Sistema Identificador de Sintagmas Nominais - SIDSN - é um conjunto de programas
que tem por objetivo reconhecer e retornar os sintagmas nominais contidos em frases. Estas,
por sua vez, pertencem a textos que estão disponíveis em formato digital.
Na Figura 1, tem-se um modelo geral da estrutura de implementação do sistema, que foi
dividido em dois módulos: o Pré-processador de Textos e o Identificador de Sintagmas Nominais.
Figura 1: Modelo de implementação do SIDSN
O Pré-processador de Textos tem a função de estruturar em frases um texto digital submetido ao sistema. O programa recebe um arquivo em formato texto (.txt) como entrada, e fornece
um arquivo contendo as frases pertencentes a esse texto na saída. As frases estão descritas em
forma de lista de palavras.
O Identificador de Sintagmas Nominais utiliza como entrada o conjunto de frases segmentadas fornecido pelo Pré-processador de Textos. Cada frase é processada e verificada se, de
acordo com as regras definidas da língua portuguesa, é uma sentença válida. Nesse caso, retorna uma lista contendo os sintagmas nominais encontrados com suas respectivas funções de-
3.2 O Pré-processador de Textos
24
sempenhadas dentro da frase. Caso essa frase não obedeça às regras gramaticais estabelecidas
no identificador, uma mensagem é retornada informando que não foi possível reconhecê-la.
A Figura 2 mostra um exemplo de entrada e saída de cada etapa do sistema. A mensagem
No indica que a frase não foi reconhecida.
Figura 2: Exemplo de entrada e saída dos módulos do SIDSN
A seguir, descreve-se de maneira mais detalhada a implementação dos dois módulos que
compõem o SIDSN.
3.2 O Pré-processador de Textos
O Pré-processador de Textos é o módulo do SIDSN responsável pela organização do texto
em frases e pela retirada de símbolos, tais como pontuação e caracteres de delimitação.
Os textos submetidos a processamento devem estar em formato texto (.txt), mas, caso estejam em outro formato, pode-se utilizar programas disponíveis no sistema operacional Linux,
por exemplo, para fazer a transformação. Existem disponíveis os comandos de conversão pdfto-
3.3 Identificador de Sintagmas Nominais
25
text para formato pdf, html2text para html e wvText para documentos Microsoft Word e BrOffice
Writer. Ao utilizar esses programas, símbolos não identificáveis pelo pré-processador podem
surgir devido a diferenças de codificação dos arquivos.
O pré-processador foi implementado usando AWK, uma linguagem de programação script
para processamento de dados baseados em texto. Uma linguagem de programação script tem
como característica ser formada de um conjunto de componentes já desenvolvidos em outras
linguagens, além de ser interpretada. No caso específico do AWK, possui uma sintaxe parecida
com a liguagem C, utiliza vetores indexados por palavras chave e expressões regulares.
O Algoritmo 1 descreve os procedimentos do script. Ao encontrar um sinal de pontuação,
tal como ponto final, exclamação, interrogação, reticências etc, é formada uma nova frase. O
critério utilizado para separar uma frase de outra quando estas são compostas por mais de uma
oração separadas por vírgula é a quantidade de palavras existentes.
Algoritmo 1: Script pré-processador de texto
Entrada: Arquivo texto
1
Construir Lista com as frases (Lista de palavras);
2
para cada um dos tokens de texto faça
3
Retira símbolos encontrados;
4
Insere token numa Lista de palavras;
5
se símbolo estiver em (! . ? ; : ... )
6
OR símbolo for (,) e a tamanho da lista for maior que 3 então
7
Termina Lista de palavras, formando assim uma frase;
8
Insere na Lista de frases;
9
Inicia uma nova Lista de palavras;
10
11
enquanto não for fim da Lista de frases faça
Imprime no arquivo cada Lista de palavras;
Saída: Arquivo com lista de frases
3.3 Identificador de Sintagmas Nominais
O Identificador de Sintagmas Nominais é responsável pelo reconhecimento dos sintagmas
nominais nas frases. Seu diagrama de blocos é apresentado na Figura 3.
O Identificador de Sintagmas Nominais analisa a estrutura sintática das frases e retorna seus
sintagmas nominais, desconsiderando os demais elementos. A gramática necessária na análise
3.3 Identificador de Sintagmas Nominais
26
Figura 3: Descrição do Identificador de Sintagma Nominal
sintática é definida pelas Regras Gramaticais e o léxico utilizado pelas regras encontra-se no
Dicionário de Dados. A comunicação entre a gramática e o léxico é dada pela Interface de
Comunicação.
3.3.1 Regras Gramaticais
As Regras Gramaticais implementam um subconjunto das regras definidas da língua portuguesa para determinar sentenças válidas da linguagem. A explicação de composição das regras
será feita em modo top-down e, em alguns casos, usando árvore de derivação, como observado
na Figura 4.
Figura 4: Árvore de derivação sintática de uma frase
3.3 Identificador de Sintagmas Nominais
27
A linguagem de programação utilizada foi o PROLOG que, originalmente projetado para
o processamento de linguagem natural, possui algumas características vantajosas. Dentre elas,
um formalismo para representação de gramáticas livres de contexto denominado DCG (Definite
Clause Grammar), associado a um analisador top-down recursivo, da esquerda para a direita.
Para melhor entendimento das regras, apresenta-se o formalismo DCG e, logo após, como
é empregado nas regras.
3.3.1.1 DCG - Definite Clause Grammar
A DCG, Definite Clause Grammar, é um formalismo representativo de gramáticas livres de
contexto, onde as regras gramaticais podem ser definidas como no Exemplo 8.
Exemplo 8 :A menina sorriu. O menino sorriu.
frase --> sn, sv.
sn --> artigo, subst.
sv --> verbo.
artigo --> [a]; [o].
subst --> [menina]; [menino].
verbo --> [sorriu].
As regras descritas em DCG são diretamente transformadas em cláusulas PROLOG, [SWI-Prolog],
como pode ser observado no Exemplo 9.
Exemplo 9 :
DCG:
frase --> sn, sv.
Prolog: frase(R1,R2) :- sn(R1,R2), sv(R1,R2).
DCG:
artigo --> [a]; [o].
Prolog:
artigo(A, B) :-
( A=[a|B] ;
A=[o|B]).
O formalismo DCG possibilita a extensão da gramática livre de contexto por meio da inclusão de argumentos para, por exemplo, tratar concordância entre os componentes de uma regra
3.3 Identificador de Sintagmas Nominais
28
gramatical. O Exemplo 10 exibe uma regra de formação de um sintagma nominal com a adição de informações. Dessa forma, o analisador só identifica como corretos os sintagmas que
concordem em número e gênero.
Exemplo 10 :
sn(Numero,Genero) --> artigo (Numero,Genero), subst(Numero,Genero).
artigo(singular,masculino) --> [o].
artigo(singular,feminino) --> [a].
artigo(plural,masculino) --> [os].
artigo(plural,feminino) --> [as].
subst(singular, masculino) --> [menino].
subst(singular, feminino) --> [menina].
subst(plural, masculino) --> [meninos].
subst(plural, feminino) --> [meninas].
As regras utilizadas no módulo Identificador de Sintagmas Nominais foram implementadas
em DCG’s e serão mostradas de maneira similar, porém, em um nível mais alto de abstração. A
composição das frases faz uso das regras contidas nas seções 3.3.1.3, Sintagma Preposicional,
3.3.1.4, Sintagma Verbal, e 3.3.1.5, Sintagma Nominal.
O conceito mais alto na hierarquia da análise sintática é o de FRASE, que é definido em
quatro regras. Na Regra 1, vê-se FRASE definida como uma ORACAO, e em Regra 2. como
sendo composta de duas orações unidas por uma conjunção. O conceito ORACAO não é a
implementação da definição do português para oração.
Regra 1 FRASE =⇒ ORACAO
Ex: A menina chegou em casa feliz.
Regra 2 FRASE =⇒ ORACAO + conjunção + ORACAO
Ex: A casa era grande e o jardim era pequeno.
Regra 3 FRASE =⇒ pronome interrogativo + ORACAO
Ex: Quem é você ?
3.3 Identificador de Sintagmas Nominais
29
Regra 4 FRASE =⇒ SP + ORACAO
Ex: Certamente ele virá.
A Regra 3 abrange as frases que utilizam os pronomes interrogativos no ínicío da oração, e
na Regra 4, as frases que têm um modificador, advérbio ou locução adverbial, antes de ORACAO.
As regras de formação do termo ORACAO são mostradas na Figura 5, abrangendo os tipos
de frase existentes na língua. Na Figura 5(a) tem-se a formação da maioria das frases, contendo
um sintagma nomimal e um verbal. Na Figura 5(b) observa-se um exemplo de frase que não
contém o sintagma nominal, as chamadas frases verbais. Nas frases nominais não existe a
presença de um verbo, como visto na Figura 5(c).
(a) Oração
(b) Frase Verbal
(c) Frase nominal
Figura 5: Exemplos de frases
Os termos, como conjunção, pronome interrogativo, nome presentes nas regras, são classificações dadas pelo Dicionário de Dados. Este faz a verificação de qual categoria pertence as
palavras analisadas da frase.
As palavras que não estão presentes em nenhuma categoria do Dicionário de Dados são
classificadas como sem_categoria. As regras seguintes utilizam NOMECOMPOSTO e VERBOCOMPOSTO para tratar os casos de nomes e verbos formados de maneira composta.
3.3.1.2 Nomes e Verbos Composto
Um nome composto é um composição de substantivos podendo estar ligados por conectivos, como por exemplo, Secretaria Municipal de Saúde, Donald Knuth. Na Regra 5 tem-se a
descrição de formação da regra NOMECOMPOSTO, compostos recursivamente por palavras
encontradas na categoria nome ou classificadas em sem_categoria.
3.3 Identificador de Sintagmas Nominais
30
Os verbos compostos são definidos na Regra 6, englobando uso de verbos consecutivos
como em Vai ser feito o acordo.
Regra 5 NOMECOMPOSTO =⇒ [nome OU sem_categoria] + NOMECOMPOSTO
NOMECOMPOSTO =⇒ []
Regra 6 VERBOCOMPOSTO =⇒ [verbo OU sem_categoria] + VERBOCOMPOSTO
VERBOCOMPOSTO =⇒ []
3.3.1.3 Sintagma Preposicional
Os sintagmas preposicionais são tratados em regras explícitas ou como parte de outras regras. A formação prep + SN de um sintagma preposicional está imbutida nas regras de sintagmas nominais. As regras a seguir têm o sintagma preposicional definido como advérbio, Regra
7, e locuções adverbiais, Regra 8 e Regra 9.
Regra 7 SP =⇒ adverbio
• Ex: Provalvelmente virá amanhã.
Regra 8 SP =⇒ preposicao + adverbio
• Ex: Executou com rapidez a ação.
Regra 9 SP =⇒ preposicao + adverbio + adverbio
• Ex: Executou com muita rapidez a ação.
3.3.1.4 Sintagma Verbal
O Sintagma Verbal é um dos elementos básicos de uma oração, sendo composto de um ou
mais vocábulos e podendo vir acompanhado de complemento e modificadores. As regras de
formação são definidas pelo EXPVERBAL com a presença, de forma facultativa, de sintagmas
nominais (SN).
A Regra 10 trata o caso dos verbos intransitivos ou impessoais. Os verbos transitivos diretos
ou indiretos, ou seja, aqueles que precisam de somente um complemento, objeto direto (não
exige preposição) ou indireto (exige preposição), são tratados na Regra 11. E os verbos que são
transitivos diretos e indiretos (exigem os dois objetos) são tratados na Regra 12.
3.3 Identificador de Sintagmas Nominais
31
Regra 10 SV =⇒ EXPVERBAL
• Ex: A menina chorona adormeceu.
• Ex: Ontem, não choveu.
Regra 11 SV =⇒ EXPVERBAL + SN
• Ex: Ele mora em Vitória.
• Ex: O céu é azul.
Regra 12 SV =⇒ EXPVERBAL + SN + SN
• Ex: Eu falei de você ao meu pai.
• Ex: Os alunos desse ano ofereceram um convite de formatura ao coordenador do
curso.
A regra EXPVERBAL, contida na formação dos sintagmas verbais, é constituída de VERBO,
Regra 15 e 16, e mostrada a seguir. Os componentes que estão entre parênteses são termos facultativos, e entre aspas duplas, palavras específicas.
Regra 13 EXPVERBAL =⇒ VERBO
• Ex: João correu muito.
Regra 14 EXPVERBAL =⇒ (“não”) + “se”+ VERBO
• Ex: Ele não se conteve.
Regra 15 VERBO =⇒ (SP) + VERBOCOMPOSTO + (SP)
• Ex: Alice muito falou que se cansou.
• Ex: Ele irá trabalhar arduamente.
Regra 16 :
VERBO =⇒ (SP) + VERBOCOMPOSTO + conjuncao + VERBOCOMPOSTO + (SP)
• Ex: As vendas cresceram e caíram de forma acentuada naquele ano
3.3 Identificador de Sintagmas Nominais
32
3.3.1.5 Sintagma Nominal
O elemento de maior interesse do SIDSN são os sintagmas nominais. A Regra 17 e a
Regra 18 tratam o caso de sintagmas compostos por SINTAGMANOMINAL podendo estar
precedidos por preposição e unidos por conjunção.
Regra 17 SN =⇒ (preposicao) + SINTAGMANOMINAL
Regra 18 SN =⇒ (preposicao) + SINTAGMANOMINAL + conjuncao + SINTAGMANOMINAL
A regra EN encontrada nos sintagmas é a composição que abrange os nomes compostos,
podendo conter adjetivos.
Regra 19 EN =⇒ (adjetivo) + (sem_categoria) + NOMECOMPOSTO + (adjetivo)
As regras a seguir são relativas aos sintagmas nominais, implementadas pela gramática. Os
SN’s podem exercer função de sujeito ou objeto na frase, mas as Regras 30 a 32 só podem ser
encontradas com a função de objeto.
Regra 20 SINTAGMANOMINAL =⇒ pronome pessoal
• Ex: Ela está aqui.
• Vou com vocês.
Regra 21 SINTAGMANOMINAL =⇒ (artigo) + EN + (SP)
• Ex: O restaurante provalvelmente está funcionando.
• O professor encontra-se no departamento de informática.
Regra 22 SINTAGMANOMINAL =⇒ (artigo) + pronome possessivo + EN
• Ex: Meu cachorro fugiu.
Regra 23 SINTAGMANOMINAL =⇒ (artigo) + “mesmo” + EN
3.3 Identificador de Sintagmas Nominais
• Ex: É o mesmo carro.
Regra 24 SINTAGMANOMINAL =⇒ (artigo) + “próprio” + EN
• Ex: O próprio filho comprou a casa.
• Ex: Maria sabia da história da própria família.
Regra 25 SINTAGMANOMINAL =⇒ (artigo) + “outro” + EN
• O outro caso discutido será mostrado na próxima reunião.
Regra 26 SINTAGMANOMINAL =⇒ pronome indefinido + EN
• Ex: Nenhum aluno foi embora.
• Todos os países assinaram o acordo.
Regra 27 SINTAGMANOMINAL =⇒ (“qualquer”/“cada”) + (“um”/“uma”)
• Qualquer um pode participar.
• É dever de cada um.
Regra 28 SINTAGMANOMINAL =⇒ “qualquer” + (“outro”/“outra”) + EN
• Escolha qualquer outro.
• Qualquer outro medicamento lhe fará mal.
Regra 29 SINTAGMANOMINAL =⇒ pronome demonstrativo
• Aquele é o advogado da família.
Regra 30 SINTAGMANOMINAL =⇒ pronome obliquo + “mesmo”
• Ex: Entregue a mim mesmo.
Regra 31 SINTAGMANOMINAL =⇒ pronome obliquo + “próprio”
33
3.3 Identificador de Sintagmas Nominais
34
• O réu condenou a si próprio
Regra 32 SINTAGMANOMINAL =⇒ pronome obliquo
• Ex: Entregou a mim.
O conjunto das 32 regras descritas compõe a gramática que o SIDSN utilizará para definir
sentenças válidas da língua portuguesa.
Considerando a árvore de derivação formada pelas regras gramaticais, os elementos encontrados nas folhas são as classes das palavras e, em algumas regras específicas, é utilizada a
própria palavra. Durante o processo de análise sintática é preciso verificar se os elementos da
frase pertencem a uma categoria de palavras. As informações das palavras pertencentes à língua
e sua classificação estão contidas no Dicionário de Dados.
3.3.2 Dicionário de Dados
O Dicionário de Dados é a implementação do léxico do analisador sintático. Contém o
conjunto de vocábulos da língua e as informações correspondentes a estes. Foi implementado
utilizando o banco de dados relacional PostgreSQL, segundo o modelo conceitual visto na Figura 6.
Figura 6: Modelo do Dicionário de Dados
As palavras contidas no dicionário de dados possuem informações como número, grau,
gênero, pessoa, além da classe gramatical a qual pertence.
3.3 Identificador de Sintagmas Nominais
35
3.3.2.1 Classificação das palavras
Os substantivos e verbos são as principais classes gramaticais do português, pois formam
o núcleo das orações. Algumas classes servem para exprimir atributos das classes principais,
como os artigos, adjetivos, pronomes e advérbios, mas pode ocorrer, no caso dos adjetivos
e pronomes, do núcleo do sintagma ser composto por uma dessas classes. As preposições e
conjunções têm função conectiva e são necessárias para estruturar a sintaxe de uma oração.
O Dicionário de Dados define a seguinte classificação incluindo as respectivas classes de
palavras do português:
• Pronome: contém os pronomes pessoais, possessivos, demonstrativos, indefinidos, relativos, interrogativos;
• Determinante: engloba os artigos definidos (o, a, os, as) e os indefinidos (um, uma, uns,
umas);
• Adjetivo: todos os adjetivos;
• Verbo: contém verbos regulares e irregulares, no infinitivo e conjugados;
• Nome: os substantivos masculinos, femininos e de dois gêneros;
• Conjunção: as conjunções definidas por integrante (que, se), causal (pois, porque), concessiva (embora, conquanto), condicional (quando, caso), conformativa (conforme, segundo), comparativa (quanto, como), proporcionais (enquanto, quanto mais), temporal
(quando, antes que), final (para que, a fim de) e consecutiva (que tal, que tanto). No caso
das locuções conjuntivas, a identificação é feita por meio das regras gramaticais.
• Preposição: ante, após, até, com, contra, de, entre outras.
• Advérbios: afirmação (sim, realmente), negação (não, nunca), dúvida (talvez, provavelmente), tempo (ontem, atualmente), lugar (aqui, perto), modo (rapidamente, tristemente),
intensidade (pouco, bastante).
• sem_categoria: classificação dada a palavras que não se encontram no dicionário de
dados.
Uma palavra é classificada como sem_categoria quando não está no dicionário de dados.
As regras permitem essa classe em sua formação como uma alternativa no papel de substantivos,
verbos ou adjetivos. A adição de elementos no Dicionário de Dados priorizou as classes com
3.3 Identificador de Sintagmas Nominais
36
número menor de elementos, possibilitando o uso da classificação sem_categoria somente nas
classes mais numerosas.
Definidas as regras gramaticais e o dicionário de dados, deve-se criar um meio para a troca
de informação entre as partes. A função de permitir essa comunicação é exercida pela Interface
de Comunicação.
3.3.3
Interface de Comunicação
A Interface de Comunicação faz a ligação entre a implementação das Regras Gramaticais,
em linguagem PROLOG, e o Dicionário de Dados, em banco de dados PostgreSQL, como
mostrado na Figura 7. Foi implementada em linguagem C, utilizando funções definidas pela
biblioteca libpq para a comunicação com o banco de dados e a biblioteca SWI-Prolog para
ligar-se ao PROLOG.
Figura 7: Estrutura da Interface de Comunicação
A libpq é uma biblioteca do PostgreSQL que permite, dentre outras funcionalidades, abrir
uma conexão com o banco, executar consultas SQL’s, verificar status da conexão. Algumas das
funções de controle de conexão disponibilizada na biblioteca:
• PQsetdbLogin: estabelece uma nova conexão com o servidor de banco de dados, passando informações como host, nome do banco de dados, login e senha.
PGconn *PQsetdbLogin(const char *pghost,
const char *pgport,
const char *pgoptions,
const char *pgtty,
const char *dbName,
3.3 Identificador de Sintagmas Nominais
37
const char *login,
const char *pwd);
• PQfinish: fecha a conexão com o servidor e libera a memória utilizada para conectar.
void PQfinish(PGconn *conn);
• PQstatus: retorna o valor CONNECTION_OK quando uma conexão é bem sucedida
com o banco de dados, do contrário, CONNECTION_BAD.
ConnStatusType PQstatus(const PGconn *conn);
• PQexec: submete um comando ao servidor e aguarda pelo resultado. São processados
em uma única transação, a menos que existam comandos BEGIN e COMMIT explícitos,
para dividi-la em várias transações.
PGresult *PQexec(PGconn *conn, const char *command);
• PQresultStatus: retorna o status do resultado do comando, dentre eles, PGRES_EMPTY_QUERY,
envio de comando vazio, PGRES_COMMAND_OK, término bem-sucedido, PGRES_FATAL_ERRO
ocorreu um erro fatal.
ExecStatusType PQresultStatus(const PGresult *res);
• PQresStatus: cadeia de caracteres que descreve o código do status do PQresultStatus.
char *PQresStatus(ExecStatusType status);
• PQclear: libera o armazenamento associado a PGresult.
void PQclear(PGresult *res);
O objetivo da relação C - Prolog é ter flexibilidade e desempenho. As funções que serão
utilizadas pela outra linguagem devem ter o mesmo número dos argumentos e ocorrer a conversão de tipos C a argumentos de instanciação e unificação Prolog. A comunicação foi realizada
do Prolog, chamando funções estrangeiras definidas em C, mas o contrário também é possível utilizando outras funções da biblioteca SWI-Prolog. A seguir algumas funções de retorno,
unificação e conversão de tipos que foram utilizadas.
• PL_succeed: sucesso alcançado, definida como return True;
3.3 Identificador de Sintagmas Nominais
38
foreign_t PL_succeed()
• PL_fail: Falha e inicia o backtracking do Prolog.
foreign_t PL_fail()
• PL_unify_integer: unifica um inteiro no termo Prolog.
int PL_unify_integer(term_t ?t, long n)
• PL_get_wchars: Funcão para usar o caracter extendido wchar, que foi utilizado devido o
uso de palavras acentuadas.
int PL_get_wchars(term_t t, size_t *len, pl_wchar_t **s,
unsigned flags)
Após implementado o Sistema Identificador de Sintagmas Nominais, faz-se necessário executar testes no programa, a fim de verificar se este atinge o objetivo pretendido.
39
4
Testes e Avaliação dos Resultados
Este capítulo apresenta os testes realizados no SIDSN e a avaliação dos resultados obtidos.
4.1 Introdução
Para a realização dos testes, utilizou-se um conjunto de textos de diversas fontes, com
diferentes características, obtidos, principalmente, por meio de pesquisas em sites de busca na
Internet. Dentre os tipos, pode-se citar, notícias jornalísticas, artigos científicos, blogs, teses de
doutorado e livros literários.
As informações apresentadas nos resultados se referem às características dos textos, como
quantidade de palavras e frases, e dos testes, como número de acertos, erros, valores de médias
e desvio padrão.
Durante o processo de implementação foram realizados os primeiros testes, quando o identificador não compreendia todas as regras definidas, e, então, observado o comportamento dos
resultados. Posteriormente, com o sistema contendo as regras gramaticais explicitadas no capítulo 3, novos testes foram realizados, além de uma análise de resultados por agrupamento de
instâncias semelhantes. Por fim, fez-se uma análise qualitativa nos sintagmas identificados pelo
SIDSN, e uma avaliação do dicionário de dados.
4.2 Testes Iniciais
Inicialmente definiu-se um conjunto de regras gramaticais que contemplam alguns casos
de definições de frase do português, como os descritos nas Regras 1 e 3 do Capítulo 3. Estas
regras e exemplos de casos abrangidos por elas podem ser vistos no Exemplo 11. Os primeiros
testes foram executados sobre o Identificador de Sintagmas Nominais implementado com esse
conjunto limitado de Regras Gramaticais e um Dicionário de Dados incompleto.
4.2 Testes Iniciais
40
Exemplo 11 :
1. Frase =⇒ Oração
Oração =⇒ Sintagma Nominal + Sintagma Verbal + Sintagma Nominal
• O menino alegre chegou da cidade.
• Papai está triste.
2. Frase =⇒ pronome interrogativo + Oração
Oração =⇒ Sintagma Verbal
• Quem ganhou ?
• Por que choveu ?
A Tabela 1 mostra, para cada instância testada, a quantidade de palavras e de frases do
texto, o número e as percentagens de acertos e erros, as médias e o Desvio Padrão. Considera-se
acerto quando o sistema encontra uma regra que se ajustou à frase e, então, retorna os sintagmas
nominais contidos nela. A Média Geral é dada pela razão da quantidade total de acertos dos
textos pela a quantidade total de frases e a Média Percentual é média dos percentuais de acerto.
Texto Palavras Frases
Texto1
102
13
Texto2
143
15
Texto3
176
19
Texto4
240
20
Texto5
465
75
Texto6
496
63
Texto7
825
80
Texto8
1044
149
Texto9
1706
235
Texto10
4862
419
Total de Frases
Média
Média %
Desvio Padrão
Acertos
9
4
7
5
40
19
26
77
95
180
Erros
4
11
12
15
35
44
54
72
140
239
%Acertos %Erros
69,23
30,77
26,67
73,33
36,84
63,16
25,00
75,00
53,33
46,67
30,16
69,84
32,50
67,50
51,68
48,32
40,43
59,57
42,96
57,04
1088
42,46 %
40,88 %
41,60 %
Tabela 1: Resultados dos Testes Iniciais
Os dez textos submetidos a teste contabilizam um total de 1088 frases, são distintos em
número de palavras, tipo, fonte, englobando notícias jornalística, estórias infantis, blogs e artigos científicos. A Média Geral obtida foi de 42,46 % e a Média Percentual de 40,88%. O pior
resultado de acertos, 25,00%, foi apresentado pelo Texto4, e o melhor, 69,23%, pelo Texto1,
obtendo assim um Desvio Padrão de 41,60%.
4.2 Testes Iniciais
41
Observa-se uma grande variação entre os resultados obtidos e um baixo valor médio de
acertos. Esse resultado decorre do ambiente de testes compreender um dicionário de dados e um
conjunto de regras gramaticais incompleto. Classes de palavras como Artigos e Preposições,
por exemplo, não continham seus elementos no dicionário de dados, o sistema também não
compreendia as regras gramaticais, Regra 2, 4 e 5, definidas no Capítulo 3. A descrição e os
exemplos de frases que seguem essas regras são exibidos em Exemplo 12.
Exemplo 12 :
1. Frase =⇒ advérbio + Sintagma Nominal + Sintagma Verbal + Sintagma Nominal
• Indubitavelmente, ele é inteligente.
2. Frase =⇒ Oracao + conjunção + Oracao
• Ele é feliz e ela vive sozinha.
3. Nome Composto
• Ciência da Computação
• Exame Nacional de Desempenho de Estudantes
Buscando melhorar os resultados obtidos, estas regras foram incorporadas ao escopo do
identificador e novas palavras ao Dicionário de Dados. Um novo conjunto de testes foi realizado, utilizando as mesmas instâncias do teste anterior e os resultados são exibidos na Tabela
2.
Houve uma melhora nos resultados, e os novos valores encontrados foram 49,72% e 48,98%
para Média Geral e Percentual, respectivamente. O Desvio Padrão aumentou para 50,05%
devido, principalmente, ao Texto3 que, diferente dos demais, diminuiu o número de acertos.
Nesse caso, a frase foi identificada erroneamente, caracterizando os chamados falsos positivos. O Exemplo 13 mostra tal frase, os sintagmas identificados ao efetuar o primeiro teste e a
categoria de cada palavra no dicionário de dados.
Exemplo 13 :
>>> À medida em que se aproxima o prazo final.
Sintagma nomimal, sujeito => [a, medida, em]
4.2 Testes Iniciais
42
Texto Palavras Frases
Texto1
102
13
Texto2
143
15
Texto3
176
19
Texto4
240
20
Texto5
465
75
Texto6
496
63
Texto7
825
80
Texto8
1044
149
Texto9
1706
235
Texto10
4862
419
Total de Frases
Média
Média %
Desvio Padrão
Acertos
11
5
6
9
50
28
27
80
103
222
Erros
2
10
13
11
25
35
53
69
132
197
%Acertos %Erros
84,62
15,38
33,33
66,67
31,58
68,42
45,00
55,00
66,67
33,33
44,44
55,56
33,75
66,25
53,69
46,31
43,83
56,17
52,98
47,02
1088
49,72%
48,98%
50,05%
Tabela 2: Resultados de Testes Posteriores
artigo -
a
substantivo - medida
não encontrada no banco - em
pronome relativo - que
=> se
Sintagma verbal => aproxima
verbo - aproxima
Sintagma nominal, objeto => [o, prazo, final]
artigo - o
substantivo - prazo
adjetivo - final
A palavra em não estava presente no Dicionário de Dados e foi empregada com o papel de
substantivo, formando o sintagma nominal [a, medida, em] de forma errada. Após as modificações no Dicionário de Dados, a palavra em foi incorporada à classe das preposições. Ao testar
novamente o texto, o programa não mais identificou essa frase, porque a sua regra formação
não estava presente em Regras Gramaticais. Percebe-se, então, que, apesar da diminuição da
quantidade de frases identificadas, ocorre uma melhora na qualidade da solução obtida e torna
menor o número de falsos positivos.
Ao analisar os conjuntos de testes e perceber uma melhora geral nos resultados obtidos
advindos das mudanças efetuadas, o desenvolvimento do identificador focou a adição de regras
gramaticais e aumento do número de elementos do dicionário de dados.
4.3 Testes por Grupo
43
Após o processo de implementação das 32 regras definidas no Capítulo 3, novos testes
foram realizados em um conjunto de 40 textos, diferentes dos utilizados anteriormente e o
Resultado Geral pode ser verificado na Tabela 3.
Resultado Geral
40
71.362
37.742
57,57%
54,72%
51,74%
38,46%
71,60%
Total de Textos
Total de Palavras
Total de Frases
Média
Média %
Desvio Padrão
Menor %Acerto
Maior %Acerto
Tabela 3: Resultado Geral
A Média de acertos obtida foi de 57,57% e a Média Percentual de 54,72%, valores maiores
que os encontrados anteriormente. Porém, o valor de Desvio Padrão para o novo conjunto de
instâncias, 51,74% foi consideravelmente maior que o valor obtido no primeiro grupo, 41,60%.
Tal valor contrasta com as melhoras obtidas nas médias de acertos, indicando a influência de um
fator, ou presença de uma característica, ainda não identificada. Sugere-se, então, uma divisão
de instâncias em grupos semelhantes de textos.
4.3 Testes por Grupo
A separação de textos em grupos deu-se a partir de semelhança de gênero (formais, funcionais, formal-funcional) e tipos textuais (noticiário, científico, editorial, carta, entrevista etc).
Entretanto, não foi realizado agrupamento por assunto dos textos (computação, biologia, arte
etc).
O primeiro grupo engloba textos que têm como características em comum a pequena quantidade de frases e linguagem informal, onde podem ocorrer erros léxicos, desrespeito às regras
gramaticais, uso de gírias e neologismos. Como, por exemplo, encontrados em blogs, emails,
wikis. Os resultados para divisão dos Textos Informais são mostrados na Tabela 4.
Os valores obtidos de Média, 46,17%, e de Média Percentual, 44,73%, foram menores
que os alcançados em Resultado Geral, mas percebe-se que o Desvio Padrão foi muito menor,
8,52%. Algumas frases extraídas dos textos utilizados neste grupo podem ser vistas no Exemplo
14.
A informalidade dos textos é percebida no item 1 do Exemplo 14, onde ocorre uma ono-
4.3 Testes por Grupo
44
Texto
Palavras Frases Acertos
Informal1
743
78
30
Informal2
521
52
23
Informal3
366
30
14
Informal4
1218
134
60
Informal5
4677
426
188
Informal6
4395
441
221
Total Frases
Média
Média %
Desvio Padrão
Erros
48
29
16
74
238
220
%Acertos
38,46
44,23
46,67
44,78
44,13
50,11
1161
46,17 %
44,73 %
8,52 %
%Erros
61,54
55,77
53,33
55,22
55,87
49,89
Tabela 4: Textos Informais
matopéia, palavra que imita sons e ruídos e que não se encontra na escrita formal. Porém,
isso não ocasionou um erro na identificação da frase, porque a palavra foi classificada como
sem_categoria e enquadrada em uma regra que permite palavras que não estejam no dicionário
de dados.
Em Exemplo 14.3 e 14.4 a existência de palavras que não estão no dicionário de dados,
fazem, dá e pudessem, e de palavras com mais de uma classificação, voto e muito, leva à não
identificação da frase nas regras estabelecidas.
Exemplo 14 :
1. Ela tem seguidores, hahahahaha. (Inform2) Acerto
2. A divisão continental separa a floresta da sua vizinha. (Inform5) Acerto
3. Uma máquina de calcular onde a forma de calcular pudesse ser controlada por cartões.
(Inform6) Erro
4. Aqui no Brasil, os políticos fazem coisas muito piores com quem lhes dá voto. (Inform1)
Erro
Relatórios administrativos, editais, normas e diário oficial são alguns dos textos utilizados
no próximo teste. Têm como características em comum a grande quantidade de palavras não
encontradas no dicionário de dados e de estruturas como enumeração de itens, tabelas etc. Os
resultados deste grupo formado pode ser observado na Tabela 5.
O desvio padrão foi de 10,90% e a média de 68,96%, bem maior que a Média Geral. Os
melhores resultados percentuais de acerto atingidos pertencem a este grupo, devido, principalmente, à estrutura dos textos. O Exemplo 15 mostra um trecho retirado do texto Formal5
4.3 Testes por Grupo
45
Texto
Palavras Frases Acertos
Formal1
27157
4147
2849
Formal2
18456
2595
1858
Formal3
12791
1695
1192
Formal4
629
95
59
Formal5
5041
737
487
Formal6
4502
541
320
Total Frases
Média
Média %
Desvio Padrão
Erros
1298
737
503
36
250
221
%Acertos
68,7
71,6
70,32
62,11
66,08
59,15
9810
68,96%
66,33%
10,90%
%Erros
31,3
28,4
29,68
29,68
37,89
40,85
Tabela 5: Textos Formais
que, ao ser submetido ao Pré-processador de Textos, teve como saída a geração de uma frase
para cada item. Todas essas frases, segundo as regras definidas em Regras Gramaticais, estão
corretas.
Exemplo 15 :
a)
Comprovação dos pré-requisitos/escolaridade;
b)
Comprovação dos requisitos enumerados no item 1 do Capítulo III;
c)
Certidão de nascimento ou casamento;
d)
Título de eleitor;
e)
Certificado de Reservista ou de Dispensa de Incorporação;
f)
Cédula de Identidade;
g)
CPF;
h)
Documento de inscrição no PIS ou PASEP, se houver;
i)
Quatro fotos 3x4 recentes;
j)
Curriculum Vitae (2 cópias);
k)
Comprovante do tipo sangüineo e Fator RH;
O próximo agrupamento utiliza textos técnicos como apostilas, capítulos de livros, artigos,
abrangendo assuntos diversos tais como geografia, química, direito, psicologia e matemática.
Os textos presentes nesse grupo têm característica dissertativa e descritiva, são normalmente
objetivos e coerentes, têm maior quantidade de frases que os textos do grupo anterior, escrita
formal, e palavras específicas da área a qual se referem.
A Tabela 6 mostra um Desvio Padrão de 11,45%, Média Geral de 51,27% e Percentual de
51,80%. Percebe-se pelas frases do Exemplo 16 que os textos tratam de assuntos diferentes e
4.3 Testes por Grupo
46
Texto
Palavras Frases
Tecnic1
2474
310
Tecnic2
7854
942
Tecnic3
872
92
Tecnic4
2155
134
Tecnic5
487
51
Tecnic6
1357
161
Tecnic7
3376
372
Tecnic8
564
59
Tecnic9
2832
250
Tecnic10
11712
1141
Tecnic11
648
65
Total frases
Média
Média %
Desvio Padrão
Acertos
172
490
49
63
26
96
195
31
125
556
31
Erros
138
452
43
71
25
65
177
28
125
585
34
%Acertos
55,48
52,2
53,26
47,01
50,98
59,63
52,42
52,54
50
48,73
47,69
3577
51,27%
51,80%
11,45%
%Erros
44,52
47,98
46,74
52,99
49,02
40,37
47,58
47,46
50
51,27
52,31
Tabela 6: Textos Técnicos
que é possível identificar uma frase, como o Exemplo 16.2, mesmo esta possuindo estruturas
como uma expressão matemática.
Exemplo 16 :
1. A transformação desta energia se inicia nas plantas verdes através da fotossíntese. (Tecnic8) Acerto
2. Um aluno pode escrever 7 + 5 = 2 x 6 ou 7 + 5 = 10 + 5 - 3. (Tecnic9) Acerto
3. Esta campanha, entretanto, marcou o início da derrocada de Napoleão. (Tecnic1) Acerto
4. Entretanto, ângulos ahb de até 30o já foram medidos. (Tecnic4) Erro
5. Por exemplo, a molécula de água pode formar ligações do tipo ponte de hidrogênio cuja
representação é: (Tecnic5) Erro
Um exemplo de erro decorrido do dicionário de dados incompleto pôde ser observado na
frase 16.4, na qual o verbo foram foi classificado como sem_categoria e adequado como correto em parte de uma regra. Mas na análise total da frase não é encontrada regra que a satisfaça.
Frases com estrutura como a do Exemplo 16.5 não têm regra definida na gramática implementada.
Os próximos testes foram realizados utilizando textos jornalísticos que caracterizam-se por
serem descritivos e informativos, de linguagem objetiva, compreendendo uma quantidade média
4.3 Testes por Grupo
47
de frases. Os resultados do grupo Textos Noticiários são exibidos na Tabela 7, onde se pode ver
a Média de 58,72%, a Média Percentual de 57,03%, e Desvio Padrão de 12,31%. Os valores
obtidos estão acima da Média Geral encontrada na análise dos 40 textos.
Texto
Palavras Frases Acertos
Noticia1
15357
1354
826
Noticia2
590
63
40
Noticia3
2074
209
105
Noticia5
824
110
65
Noticia6
1053
128
66
Noticia7
2252
221
120
Noticia8
2325
267
159
Total Frases
Média
Média %
Desvio Padrão
Erros
528
23
104
45
62
101
108
%Acertos %Erros
61
39
63,49
36,51
50,24
49,76
59,09
40,91
51,56
48,44
54,3
45,7
59,55
40,45
2352
58,72%
57,03%
12,31%
Tabela 7: Textos Noticiários
A análise do Exemplo 17.1 mostrou que, mesmo com a ausência, no dicionário de dados,
do verbo da frase, reúne, ela foi identificada corretamente. No item 2 tem-se um exemplo de
frase nominal, onde se encontra apenas um sintagma nominal.
Durante a análise da frase, pode ocorrer o exame de verbos que não estão definidos no
dicionário de dados, como substantivos, ocasionando falha na identificação. Tal como pode ser
visto no Exemplo 17.4, em que o erro não se deu pela presença do nome próprio Vera Simão,
mas pelo verbo garante, que não se encontra no dicionário.
Exemplo 17 :
1. Na Áustria encontro anual que reúne aficionados pelo carro da montadora alemã. (Noticia2) Acerto
2. Queda nas taxas de juros e aumento do crédito bancário. (Noticia1) Acerto
3. O medicamento age sobre o neurotransmissor gaba. (Noticia3) Erro
4. Garante a empresária Vera Simão. (Noticia6) Erro
O grupo a seguir é composto por textos narrativos, relatam fatos, ações, acontecimentos,
incluindo, por exemplo, histórias infantis e obras literárias. Caracterizam-se por ter subjetividade, predominância de verbos, escrita com certo grau de informalidade. Porém, espera-se que
4.3 Testes por Grupo
48
Texto
Palavras Frases Acertos
Narrativa1
651
77
39
Narrativa2
465
76
51
Narrativa3
10809
1480
961
Narrativa4
17298
2291
1145
Narrativa5
52088
7146
4197
Narrativa6
11543
1613
934
Total Frases
Média
Média %
Desvio Padrão
Erros
38
25
519
1146
2949
679
%Acertos %Erros
50,65
49,35
67,11
32,89
64,93
35,07
49,98
50,02
58,73
41,27
57,90
42,10
12683
57,77%
58,22%
15,80%
Tabela 8: Textos Narrativos
obedeçam às regras gramaticais do português. O resultado dos testes pode ser verificado na
Tabela 8.
A quantidade de frases analisadas é superior aos grupos analisados anteriormente, pois,
dentre os textos utilizados, encontram-se livros da literatura nacional como A viuvinha, de José
de Alencar, Escrava Isaura, de Bernardo Guimarães e Adão e Eva, de Eça de Queirós. A média
de acertos obtida foi de 57,77% e a média percentual, de 58,22%.
O desvio padrão de 15,80% destaca a diferença entre o resultado do texto Narrativa4 (A
viuvinha), 49,98%, e o texto Narrativa2 (Chapeuzinho Vermelho - Estória Infantil), 67,11%. O
primeiro texto tem linguagem poética com regras gramaticais antigas, enquanto o segundo é
composto de linguagem simples e tal diferença pode ser vista nas frases do Exemplo 18.
Exemplo 18 :
1. O lobo resolveu dar uma cochilada e começou a roncar. (Narrativa2) Acerto
2. Por que não vai pela floresta?. (Narrativa2) Acerto
3. Minha prima, antes que as novas ruas que se abriram tivessem dado um ar de cidade
às lindas encostas do morro de Santa Teresa, veria de longe sorrir-lhe entre o arvoredo.
(Narrativa4) Erro
4. Não conheceis esse sublime requinte da alma que sente um alívio em deixar-se vencer
pela dor. (Narrativa4) Erro
Os textos classificados no grupo Textos Científicos têm como característica em comum a
organização em partes, como por exemplo, introdução, objetivos, resultados e referências bibliográficas. Estes podem incluir termos funcionais para descrever operações ou processos, além
4.3 Testes por Grupo
49
de possuir muitas figuras e tabelas. Foram utilizadas nos testes teses, dissertações, monografias que compreendiam diferentes assuntos como educação, engenharia etc. Os resultados estão
presentes na Tabela 9.
Texto Palavras Frases Acertos
Cientif1
25954
2910
1684
Cientif2
31205
3076
1471
Cientif3
41706
4367
2173
Cientif4
47186
5511
3081
Total Frases
Média
Média %
Desvio Padrão
Erros
1226
1605
2194
2430
%Acertos
57,87
47,82
49,76
55,91
15864
53,01%
52,81%
8,33%
%Erros
42,13
52,18
50,24
44,09
Tabela 9: Textos Científicos
Os resultados mostram Média de 53,01%, Média Percentual 52,81% e Desvio Padrão de
8,33%. Alguns exemplos de frases deste grupo são encontrados no Exemplo 19.
Exemplo 19 :
1. Uma estratégia metodológica que privilegie a relação teoria-prática. (Cientific2) Acerto
2. Nesta última etapa apresentamos o levantamento quantitativo. (Cientific4) Acerto
3. Os autores citam que em 1830 instala-se o primeiro serviço de medicina do trabalho.
(Cientific4) Erro
4. Em todos os grupos observa-se um aumento significativo no tempo de uso passando de
acessos esporádicos a acessos semanais ou diários. (Cientific2) Acerto
A Figura 8 apresenta um gráfico que confronta os valores obtidos de Média Percentual de
acerto e Desvio Padrão de cada grupo e a Média Geral e Desvio Padrão do teste realizado com
todos os textos.
O grupo Formal, que compreendia editais, relatórios e outros arquivos onde existe um
grande número de estruturas como tabelas, gráficos e citações, teve o melhor resultado em
quantidade de acertos. O valor de média mais baixo foi encontrado no grupo Informal.
Percebe-se a grande diferença entre o Desvio Padrão do teste geral e o obtido nos grupos,
mostrando que o agrupamento por estrutura, tipo e gênero semelhantes, mesmo tratando de
assuntos distintos, é válido, porque obtém-se uma menor variação dos resultados.
4.4 Análise Qualitativa
50
80
Media %
Desvio Padrao
70
60
Porcentagem
50
40
30
20
10
0
Total Geral
Informal
Formal
Tecnico
Noticia
Narrativa Cientifico
Figura 8: Gráfico de Média e Desvio Padrão dos Grupo de Testes
Para averiguar a autenticidade dos sintagmas nominais identificados pelo SIDSN, faz-se
necessária uma análise qualitativa dos resultados.
4.4 Análise Qualitativa
A análise qualitativa do resultado foi realizada nas frases que o programa reconheceu como
acerto, verificando se os sintagmas nominais foram identificados corretamente. É um trabalho
realizado manualmente, necessitando, por vezes, conhecimentos específicos da língua portuguesa. Por isso, a quantidade de textos utilizados é menor. A Tabela 10 mostra o resultado da
análise feita em alguns dos textos utilizados anteriormente.
Texto
% Acertos
Inform1
38,46
Tecn5
50,98
Formal4
62,11
Noticia5
59,09
Narrativa2
67,11
Acertos
30
26
59
65
51
%SN incorreto
46,65
34,61
0,05
29,23
43,13
SN incorreto
14
9
3
19
22
Motivo1* Motivo2*
10
4
7
2
2
1
17
2
20
2
Tabela 10: Análise Qualitativa
*Motivo1: Palavras não encontradas no Dicionário de Dados
*Motivo2: Palavras com várias classificações gramaticais
Dois foram os motivos que ocasionaram a identificação dos SN de forma incorreta: palavras
4.5 Análise do Dicionário de Dados
51
presentes na frase que não se encontravam no Dicionário de Dados, e palavras que tinham mais
de um registro, ou seja, pertencentes a mais de uma classe gramatical.
Percebe-se um grande número de frases nas quais o SIDSN identifica de forma errada os
sintagmas nominais. Em alguns casos, esse valor chegou a 46,65% dos acertos obtidos, sendo
a maioria dos erros advinda do dicionário de dados incompleto.
O baixo valor de frases com sintagma identificado erroneamente em Formal4, 0,05%, foi
devido à grande quantidade de frases nominais encontradas neste texto. Em Exemplo 20, vê-se
frases que abordam os motivos da falha na identificação dos sintagmas.
Exemplo 20 :
1. A menina vai dormir cedo.
2. Casa, mas logo separa.
A identificação incorreta no caso mostrado no item 1 é ocasionada pelo Motivo1. A palavra
vai não está presente no dicionário de dados, e, durante a análise da frase pelo Identificador de
Sintagmas Nominais, foi classificada e considerada como um substantivo retornando o sintagma
nominal com função de sujeito da frase, [A menina vai]. O segundo caso, item 2, ocorre quando
a palavra tem mais de uma classificação gramatical. Nesse exemplo a palavra casa é a 3a pessoa
do verbo casar, mas o programa identifica como substantivo casa.
Com intuito de obter uma maior quantidade de frases reconhecidas pelo sistema e que os
sintagmas identificados estejam corretos, é preciso melhorar o dicionário de dados. Uma análise
comparativa entre a freqüência de palavras encontradas no dicionário e a quantidade de acertos
pode ajudar neste processo.
4.5 Análise do Dicionário de Dados
Para obter os bons resultados pretendidos na interpretação de textos, é necessário um dicionário de dados com grande número de elementos que estejam definidos de forma correta. O
banco de dados utilizado contém aproximadamente:
• 716 mil palavras, sendo que 64 mil estão inseridas em mais de uma classe de palavras;
• 700 palavras básicas, como pronomes, conjunções, artigos, preposições, advérbios etc;
4.5 Análise do Dicionário de Dados
52
• 144 mil adjetivos;
• 231 mil substantivos, sendo que 80 mil são primitivos, sem derivação de gênero, grau
e/ou número. Como a base de dados está incompleta, os substantivos derivados não têm
informação sobre grau, somente concernente a gênero e número.
• 18 mil verbos no infinitivo, sendo que somente 7,6 mil estão conjugados, referentes às
conjugações básicas(-AR, -ER, -IR), totalizando 404 mil verbos conjugados;;
De todas as palavras contidas nos textos utilizados para teste, verificou-se, na média, que
18,94% não estavam presentes no dicionário de dados. A seguir, tem-se gráficos para uma
análise comparativa dos grupo de teste, mostrando a porcentagem de frases de acertadas e de
palavras não encontradas, para cada texto.
Teste na base de dados
Teste na base de dados
80
80
%Nao encontradas
%Acertos
70
60
Porcentagem
Porcentagem
60
50
40
30
50
40
30
20
20
10
10
0
%Nao encontradas
%Acertos
70
Inf6
Inf1
Inf2
Inf5
Inf3
0
Inf4
Formal5 Formal1 Formal6 Formal3 Formal4 Formal2
(a) Informal
(b) Formal
Figura 9: Gráficos de análise do dicionário de dados: Grupos Informal e Formal
Teste na base de dados
Teste na base de dados
80
70
80
%Nao encontradas
%Acertos
60
Porcentagem
Porcentagem
60
50
40
30
50
40
30
20
20
10
10
0
%Nao encontradas
%Acertos
70
Notic8 Notic3 Notic5 Notic4 Notic6 Notic7 Notic1 Notic2
(a) Noticiario
0
Cientif1
Cientif2
Cientif3
(b) Científico
Figura 10: Gráficos de análise do dicionário de dados: Grupos Noticiário e Científico
Cientif4
4.5 Análise do Dicionário de Dados
53
Teste na base de dados
Teste na base de dados
80
80
%Nao encontradas
%Acertos
70
60
Porcentagem
Porcentagem
60
50
40
30
50
40
30
20
20
10
10
0
%Nao encontradas
%Acertos
70
T10 T2
T7
T5
T3 T11 T8
T6
T1
T9
T6
0
Narrat5 Narrat2 Narrat1 Narrat4 Narrat3 Narrat6
(a) Técnico
(b) Narrativa
Figura 11: Gráficos de análise do dicionário de dados: Grupos Técnico e Narrativa
Como o número de dados presente em cada caso é pequeno, pode-se fazer uma estimativa
do comportamento da quantidade de acertos que cada categoria terá em relação à qualidade da
base de dados utilizada.
Na Figura 9(a), vê-se que os bons resultados do grupo de teste Informal são obtidos quando
os textos contêm pequeno número de palavras não encontradas no dicionário. Quando esse
valor aumenta, os resultados tendem a ser piores.
No grupo de teste Formal, visto pela Figura 9(b), os melhores resultados são obtidos com o
aumento do número de palavras desconhecidas presentes nos textos.
Os grupos de textos Noticiário, Figura 10(a), e Científico, Figura 10(b), mostram bons
resultados obtidos quando os textos têm menores e maiores taxas de palavras desconhecidas do
dicionário.
Os gráficos das figuras 11(a) e 11(b), relativos aos grupos Técnico e Narrativa, respectivamente, apresentam melhores resultados quando o dicionário de dados está mais completo.
Pode-se perceber, a partir desses resultados, que a quantidade de palavras do texto que
encontram-se no banco influencia na porcentagem de acertos e também na veracidade destes,
pois palavras não conhecidas podem identificar sintagmas de forma incorreta. Mas não é o
único fator determinante. O processamento do texto para transformá-lo em frase e as regras
gramaticais que o identificador abrange também são de grande importância para obtenção de
bons resultados.
54
5
Conclusões e trabalhos futuros
Este trabalho abordou o problema de interpretar, computacionalmente, informações fornecidas em linguagem natural. O PLN, Processamento de Linguagem Natural, é voltado ao
desenvolvimento de programas para este fim, exigindo, além de estudos em computação, conhecimentos específicos em lingüística. Apresentou-se um sistema que realiza a análise sintática e
a identificação de sintagmas nominais em frases da língua portuguesa, o SIDSN.
Na construção do identificador, foi considerada a Gramática Sintagmática do Português
para a composição de regras gramaticais, e palavras categorizadas segundo classificação morfológica da língua portuguesa para compor o dicionário de dados. Todavia, a implementação do
SIDSN se deu com um subconjunto de regras gramaticais e um dicionário de dados incompleto.
Foram realizados testes no sistema, utilizando um conjunto de textos com características
distintas, como a quantidade de palavras, assunto, gênero e fonte. A identificação de todas as
frases que foram submetidas à análise configura o quadro ideal. Entretanto, considerando a
limitação do sistema referente ao conjunto de regras gramaticais, ao dicionário de dados e à
dificuldade em resolver determinadas questões sintáticas da língua, os resultados obtidos são
considerados satisfatórios.
Dentre as maiores dificuldades encontradas, durante a implementação do Pré-processador
de Textos, destaca-se o tratamento da diferença do uso de vírgulas para a separação de sintagmas
e separação de orações. Além disso, há problemas para identificar fórmulas, uso de cifras
e expressões numéricas de forma correta dentro da oração. Nas regras gramaticais, a questão
dava-se na distinção de casos em que uma conjunção liga termos simples dos casos de separação
de orações.
Relacionado à comunidade científica e acadêmica, há muita pesquisa e trabalhos realizados, principalmente, para o processamento do Inglês. Porém, tem-se carência de pesquisas,
ferramentas e recursos lingüísticos para tratar computacionalmente a Língua Portuguesa.
Melhores resultados em relação aos alcançados neste trabalho podem ser obtidos aperfeiçoando o dicionário de dados e incorporando novos elementos, principalmente, a forma conjugada
5 Conclusões e trabalhos futuros
55
de verbos. Pode-se, também, aumentar o conjunto de regras gramaticais implementadas para
tratar casos como, por exemplo, locuções adjetivas e preposicionais, orações coordenadas e
subordinadas.
O processo de implementação do SIDSN seguiu o critério definido no objetivo: identificar
sintagmas nominais em frases. Portanto, não foi prioridade encontrar uma solução otimizada de
tempo do algoritmo. Porém, de qualquer maneira, foram adotadas medidas para diminuir este
tempo de execução. Como exemplo, tem-se, no gerenciamento do banco de dados, a criação
de índices para os campos mais acessados das tabelas e o uso de comandos para recolher e
armazenar estatísticas sobre o conteúdo das tabelas. Assim, posteriormente, o planejador de
comandos poderá utilizá-las para determinar o plano de execução de consultas de maneira mais
eficiente.
A tabela Tabela 11 exibe um exemplo de tempos de execução do algoritmo para algumas
das instâncias testadas.
Texto
Frases
Inform2
52
Tecnic8
59
Narrat1
77
Tecnic1
310
Inform1
78
Noticia2
63
Cientif1 2910
Narrat4
2291
Formal1 4147
%Acertos Tempo(s)
44,23
12
52,54
13
50,65
28
55,48
32
38,46
48
63,49
166
57,87
222
49,98
501
68,7
682
Tabela 11: Tempos de execução
Os altos valores nos tempos de execução decorrem do alto grau de complexidade dos algoritmos envolvidos. Segundo [Cole et al. 1997], todos os algoritmos, para gramáticas livres
de contexto, (CFG), são relativos, de uma maneira ou de outra, aos conhecidos algoritmos de
Cock, Kasami e Younger, (CKY) e de Earley. A complexidade desses algoritmos, em um pior
caso, é O(n3 ) onde n é o tamanho da sentença. Existe um fator multiplicativo que depende do
tamanho da gramática e é da ordem de O(G2 ), onde G é o tamanho da gramática expresso pela
número de regras.
Como trabalho futuro ao que foi apresentado nesta monografia, pode-se citar o desenvolvimento de um identificador que possibilite a estruturação dinâmica das regras gramaticais, e
considere a classe gramatical dos elementos anteriores e posteriores ao efetuar classificação de
palavras que não estejam presentes no dicionário de dados.
5 Conclusões e trabalhos futuros
56
Pode-se, ainda, trabalhar na busca de soluções mais eficientes com relação ao tempo de
processamento. Além de analisar as vantagens de tratamento de acordo com agrupamento de
textos, tanto nas regras como no pré-processamento, considerando que o desvio padrão dos
resultados obtidos foi menor do que o encontrado com os testes sem agrupamento.
57
Referências
[Chomsky 1956]CHOMSKY, N. Three models for the description of language.
Information Theory, IEEE Transactions on, v. 2, n. 3, 1956. Disponível em:
<http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1056813>. 17
[Cole et al. 1997]COLE, R. A. et al. Survey of the State of the Art in Human Language
Technology. Cambridge: Cambridge University Press / Giardini, 1997. Disponível em:
<citeseer.ist.psu.edu/cole95survey.html>. 55
[Freitas 2005]FREITAS, S. A. A. de. Interpretação automatizada de textos: Processamento de
Anáforas. Tese (Doutorado) — Univerdade Federal do Espírito Santo, 2005. 11, 12
[Júnior 2007]JúNIOR, H. S. Recuperação de informações relevantes em documentos digitais
baseada na resolução de anáforas. Dissertação (Mestrado) — Universidade Federal do Espírito Santo, 2007. 11
[Kuramoto 1996]KURAMOTO, H. Uma abordagem alternativa para o tratamento e a recuperação de informação textual : os sintagmas nominais. Ciência da Informação (Brasília), 1996.
12
[Kuramoto 2002]KURAMOTO, H. Sintagmas nominais: uma nova proposta para a recuperação
de informação. DataGramaZero Revista de Ciência da Informação, v. 3, n. 1, Fevereiro 2002.
Disponível em: <http://www.dgzero.org/fev02/Art_03.htm>. 12
[Louden 2004]LOUDEN, K. C. Compiladores Princípios e Práticas. 1a . ed. [S.l.]: Editora:
Thomson Pioneira, 2004. 16
[Miorelli 2001]MIORELLI, S. T. ED-CER: Extração de Sintagma Nominal em Sentenças em
Português. Dissertação (Mestrado) — Porto Alegre: Faculdade de Informática da PUC-RS,
2001. 12
[Silva 1993]SILVA, I. G. V. K. Maria Cecília Pérez de Souza e. Lingüística aplicada ao português: sintaxe. [S.l.]: Cortez, 1993. 19, 20
[Souza 2005]SOUZA, R. R. Uma proposta de metodologia para escolha automática de descritores utilizando sintagmas nominais. Tese (Doutorado) — Escola de Ciência da Informação
Universidade Federal de Minas Gerais, 2005. 12
[SWI-Prolog]SWI-PROLOG. Documentação do interpretador SWI-Prolog. Disponível em:
<http://www.swi-prolog.org>. 27
[Vieira et al. 2001]VIEIRA, R. et al. Extração de sintagmas nominais para o processamento
de co-referência. Anais do V Encontro para o Processamento Computacional do Português
Escrito e Falado PROPOR Atibaia-SP, Novembro 2001. 12
Referências
58
[Vieira e Lima 2001]VIEIRA, R.; LIMA, V. de. Lingüística computacional: princípios e aplicações. IX Escola de Informática da SBC-Sul, 2001. 14, 18
[Wikipédia]WIKIPéDIA. Definição Processamento de Linguagem Natural. Disponível em:
<http://pt.wikipedia.org/wiki/Processamento_de_linguagem_natural>. 15
[Xavier 1992]XAVIER, M. H. M. M. e M. F. Dicionário de termos lingüísticos. Lisboa: Edições
Cosmos, 1992. Disponível em: <www.ait.pt/recursos/dic_term_ling/index2.htm>. 15
Download

SIDSN Sistema Identificador de Sintagmas Nominais