Anderson Bonfim Guimarães
Identificação de Frases Nominais em Textos da
Língua Portuguesa do Brasil
Salvador
2014
Anderson Bonfim Guimarães
Identificação de Frases Nominais em Textos da Língua
Portuguesa do Brasil
Monografia apresentada ao Curso de graduação em Ciência da Computação, Departamento de Ciência da Computação, Instituto de Matemática, Universidade Federal da
Bahia, como requisito parcial para obtenção
do grau de Bacharel em Ciência da Computação.
Universidade Federal da Bahia
Instituto de Matemática
Bacharelado em Ciência da Computação
Orientador: Daniela Barreiro Claro
Salvador
2014
Resumo
O etiquetamento morfossintático é uma tarefa intermediária, as vezes presente, da Extração
de Informação(EI). Uma das etapas deste etiquetamento é a de detecção de sintagmas ou
chunking, cujo objetivo é agrupar palavras em uma unidade de análise sintática composta
por um núcleo e outros termos associados, formando um conjunto de palavras que equivalem
a um só vocábulo. Como por exemplo, na sentença A casa de Maria é azul, A casa de
Maria forma uma frase nominal1 cujo núcleo é Maria. Para alguns autores os elementos
pertencentes ao grupo cujo núcleo é um nome ou substantivo, também conhecido como
frases nominais, possuem uma função referencial, isto é, referem-se a um objeto do mundo
exterior, como por exemplo, uma entidade. Diversos trabalhos propõem uma etiquetagem
morfossintática para o português do Brasil. Em testes realizados em ferramentas para
tal tarefa, a que obteve os melhores resultados foi o CoGrOO(COLEN, 2014). Diante
desta situação esta foi a ferramenta escolhida para extração de frases nominais. Porém a
extração das frases nominais ainda não ocorre de forma a facilitar a etapa de identificação
de entidades de relações semânticas, devido a sintagmas extraídos de forma incompleta.
Como exemplo de modificação feita em cima do CoGrOO, uma frase nominal (NP) seria
juntada com uma frase preposicional (PP2 ) junto à outra NP para formar uma frase
nominal única, isso é, NP+PP+NP=FNC3 . O presente trabalho tem como principal
objetivo identificar estas frases nominais complexass. Sugere-se que tal modificação facilite
a etiquetação automática de relações semânticas em um corpus anotado. Com o intuito de
avaliar esta proposta foram realizados dois experimentos a fim de comparar os resultados
obtidos pelo algoritmo proposto com o da ferramenta CoGrOO e avaliar a extração de
entidades semânticas.
Palavras-chaves: PLN, extração da informação, relações semântica, etiquetagem morfossintática, chunking.
1
2
3
Neste trabalho o termo frase nominal foi utilizado como sinônimo de sintagma nominal
apesar de PP significar frase preposicional, na ferramenta CoGrOO esta representa apenas uma
preposição
Frase Nominal Completa
Abstract
The POS tagging is a intermediate task, sometimes present, in Information Extraction(IE).
One of the steps of this tagging process is text chunking whose main goal is segments
a sentence into sequences of adjacent words grouped that are equivalents to one term.
This term is composed by a head and near modifiers and determinants. In the sentence
A bolsa da mulher é azul, A bolsa da mulher is a noun phrase whose head is bolsa. Some
authors agree that the elements that belong to the group whose head is a noun, also
known as noun phrase refer to a object from the outside world, for example a entity. Many
researchs propose a POS tagging for brazilian portuguese. In tests in tools for such task,
the better results was seen in CoGrOO(COLEN, 2014) tool. Thus this was the tool chosen
to extract noun phrases to further step of identification of entities of semantic relations.
However the extraction of noun phrases or chunks, don’t occurs properly to the step
due to non noun phrases extracted or extracted incorrectly. As example of modification
made upon CoGrOO, a noun phrase(NP) would be joined to a prepositional phrase(PP4 )
join to another NP to form only one noun phrase, in other words, NP+PP+NP=FNC5 .
The present research has its main goal identify these phrases properly, or complex noun
phrases. Suggest that such modification improves semantic relations tagging in a corpus.
In this work wiil be shown the evaluation of the phrases extraction using the CoGrOO tool
adding modifications as suggested in the proposal. As intention of evaluate this proposal
were performed two experiments to compare the results of the proposed algorithm with
CoGrOO and evaluate semantic entities extraction.
Key-words: NLP, Information Extraction, POS Tags, Text Chunking
4
5
Despite PP means prepositional phrase, in CoGrOO tool this tag stands for preposition
Complete Noun Phrase
Lista de ilustrações
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
1
2
3
4
5
6
7
8
–
–
–
–
–
–
–
–
Template de um sistema de EI .
Sistema de EI . . . . . . . . . .
PLN. . . . . . . . . . . . . . . .
Maven . . . . . . . . . . . . . .
Biblioteca CoGrOO. . . . . . .
Configuração CoGrOO. . . . .
Análise do Documento . . . . .
Objeto DocumentoImpl . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
12
16
39
40
40
40
41
Lista de tabelas
Tabela
Tabela
Tabela
Tabela
Tabela
Tabela
1
2
3
4
5
6
–
–
–
–
–
–
Entidades da estrutura sintática .
Entidades e eventos . . . . . . .
Ferramentas de Etiquetamento .
Análise morfológica . . . . . . . .
Resultados do experimento 1 . .
Resultados do experimento 2 . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
14
22
25
31
33
Lista de abreviaturas e siglas
EI
Extração da Informação
ER
Extração de Relações
FNC
Frase Nominal Completa
IA
Inteligência Artificial
NP
Noun phrase
PP
Prepositional phrase
PLN
Processamento de Linguagem Natural
SN
Sintagma nominal
–
Sumário
1
1.1
1.2
1.3
INTRODUÇÃO . . .
Motivação . . . . . . .
Proposta . . . . . . . .
Estrutura do Trabalho
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
9
9
2
2.1
2.1.1
2.2
2.2.1
2.2.2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
10
14
16
17
18
2.4.1.1
FUNDAMENTAÇÃO TEÓRICA .
Extração da Informação . . . . . .
Processamento de Linguagem Natural
Etiquetador . . . . . . . . . . . . .
Modelos . . . . . . . . . . . . . . . .
Tipos . . . . . . . . . . . . . . . . .
Etiquetador morfológico . . . . . . . . .
Etiquetador morfossintático . . . . . . . .
Extração das Frases Nominais . .
Sintagmas . . . . . . . . . . . . . . .
Sintagmas Nominais . . . . . . . . . . .
Text Chunking . . . . . . . . . . . .
Ferramentas . . . . . . . . . . . . .
CoGrOO . . . . . . . . . . . . . . .
Módulos CoGrOO . . . . . . . . . . . .
3
3.1
PROPOSTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Algoritmo Proposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4
4.1
4.1.1
4.2
4.2.1
EXPERIMENTOS E RESULTADOS . . . . . . . . . . . . . .
CoGrOO x algoritmo proposto . . . . . . . . . . . . . . . . . .
Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Algoritmo proposto x Entidades extraídas manualmente . . .
Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
CONCLUSÕES E TRABALHOS FUTUROS . . . . . . . . . . . . . 35
2.2.2.1
2.2.2.2
2.3
2.3.1
2.3.1.1
2.3.2
2.4
2.4.1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
18
19
19
20
21
21
22
22
30
30
31
33
33
Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
APÊNDICE A – CONFIGURAÇÃO DO AMBIENTE . . . . . . . . 39
8
1 Introdução
Devido ao grande volume de dados produzidos em forma de texto, surge a necessidade de extrair conhecimento sobre esta grande massa. Uma das técnicas para compreensão
destes dados é a Extração da Informação (EI), que tem a função de transformar dados
não estruturados em informação estruturada. Para (FELDMAN; SANGER, 2007), EI
representa documentos como conjuntos de entidades e estruturas, que é outra forma de
descrever formalmente os relacionamentos entre entidades .
Para extrair esses relacionamentos citados anteriormente, utiliza-se a técnica de
Extração de Relações (ER) que segundo (FELDMAN; SANGER, 2007) pode ser definida
como a descoberta de relações de significado, geralmente binárias, explícitas ou implícitas,
entre entidades mencionadas contidas em documentos não estruturados.
Para extrair as entidades destas relações faz-se uso de um etiquetador, que segundo(DOMINGUES, 2011) é uma ferramenta que utiliza um conjunto de técnicas e
métodos, em diferentes abordagens para automatizar a tarefa de etiquetagem. Etiquetagem esta que consiste em definir um conjunto de etiquetas que possuam um significado
linguístico associado. Para a identificação destas entidades, utiliza-se a técnica de text
chunking, que consiste em dividir um texto em grupos sintaticamente correlacionados de
palavras como, por exemplo, grupo de substantivos, onde estão as frases nominais que são
utilizadas para identificar as já referidas entidades.
1.1 Motivação
A tarefa de identificação de frases nominais é sub tarefa de muitas outras, tais
como tradução automática, análise sintática e também, reconhecimento de entidades de
relações semânticas. A ferramenta CoGrOO(COLEN, 2014) que é uma ferramenta de
análise morfossintática têm um módulo específico para extração de chunks ou sintagmas, e
no caso particular, sintagmas ou frases nominais. Em sua versão 4.0.0, o CoGrOO utiliza
uma heurística para extrair as frases do corpus Bosque, e estas frases são utilizadas para o
treinamento do modelo OpenNLP. Esta versão da ferramenta apresentou bons resultados
para a extração de frases nominais simples.
Entretanto foi observado que algumas frases nominais complexas não são extraídas,
como por exemplo na sentença A casa de Maria, a frase nominal completa é A casa de
Maria, porém a ferramenta CoGrOO identificaria A casa como uma frase nominal de
como uma frase preposicional e Maria como outra frase nominal.
Capítulo 1. Introdução
9
1.2 Proposta
Propõe-se neste trabalho o uso da ferramenta CoGrOO como base para extração das
frases nominais através do módulo Chunker da mesma, e depois o uso de regras gramaticais
da língua portuguesa do Brasil para a extração de frases nominais mais completas, ou
complexas. Dessa maneira, para o exemplo da seção 1.1, a frase nominal extraída deve
ser A casa de Maria. Sugere-se que tal modificação facilite o etiquetamento automático
de relações semânticas em um corpus anotado, pois as entidades destas relações, que em
um texto são representadas por frases nominais, seriam extraídas de forma mais completa
também.
1.3 Estrutura do Trabalho
Este trabalho está estruturado em 5 capítulos. No capítulo 2 são apresentados os
conceitos necessários para o melhor entendimento deste trabalho, apresentando também a
ferramenta CoGrOO. No capítulo 3 será apresentada a proposta e o algoritmo proposto. No
capítulo 4 são apresentados os experimentos feitos para avaliar a proposta e os resultados
obtidos destes. E por fim no capítulo 5 tem-se a conclusão, sugerindo trabalhos futuros e
evidenciando a contribuição deste trabalho.
10
2 Fundamentação Teórica
Este capítulo apresenta os principais conceitos necessários para o entendimento deste
trabalho. É aprsentado também um pequeno comparativo de ferramentas de etiquetamento,
e a ferramenta utilizada neste trabalho, o CoGrOO.
2.1 Extração da Informação
Com o grande volume existente de dados produzidos em forma de textos eletrônicos,
atualmente, surge-se a necessidade de técnicas para compreender estes textos. Uma dessas
técnicas é a Extração de Informação(EI), e para extrair essas informações faz-se uso de
um sistema de EI. Segundo (COWIE; LEHNERT, 1996), sistemas de Recpuperação de
Informação podem ser vistos como colheitadeiras que devolvem material útil de um vasto
campo de materiais brutos. Com grandes quantidades de informações potencialmente
úteis em mãos, um sistema de EI pode, então, transformar o material bruto refinando e
reduzindo à idéia do texto original. Para (RILOFF; JONES, 1999) propósito de sistemas
de extração de informações é extrair informações de um domínio específico a partir de
textos em linguagem natural.
EI pode ser visto como uma forma limitada de "compreensão completa de texto".
Nenhum esforço é feito para entender um documento totalmente a mão. Ao invés disso,
são definidas a priori tipos de informações semânticas a serem extraídas de um documento.
EI representa documentos como conjuntos de entidades e estruturas que é outra forma de
formalmente descrever os relacionamentos entre entidades(FELDMAN; SANGER, 2007).
Segundo (ZAMBENEDETTI, 2002) na maioria dos sistemas de EI, o usuário define
templates de extração, ou seja, modelos estruturados, como campos de uma base de dados,
a serem preenchidos a partir do texto original pelo processo de extração. A figura 1 ilustra
o processo de extração de informação de um texto em língua natural retirado de um
jornal, transformado em campos estruturados. Tal estrutura permite que, mais adiante, o
processamento da informação possa ser feito por outras aplicações.
O processo de extração de informações tem duas partes principais. Primeiro, o
sistema extrai fatos individuais do texto de um documento através de uma análise local
do texto. Segundo, ele integra esses fatos, produzindo fatos maiores ou novos fatos, por
inferência. Como passo final, depois de os fatos estarem integrados, os fatos pertinentes
são traduzidos para o formato de saída requerido.(ZAMBENEDETTI, 2002)
Os próximos itens mostram as etapas de um sistema de extração de informações, de acordo com(ZAMBENEDETTI, 2002), como visto na figura 2. Para ajudar na
Capítulo 2. Fundamentação Teórica
Figura 1 – Template/Estrutura de um
ções(ZAMBENEDETTI, 2002)
11
sistema
de
extração
de
informa-
explicação das etapas será utilizado como base o texto a seguir também retirado de
(ZAMBENEDETTI, 2002):
Carlos Rodrigues aposentou-se como vice-presidente executivo de uma famosa fábrica de
cachorro-quente, a Dogs & Dogs SA. Ele irá ser sucedido por Antonio Farias.
• Análise Léxica: o texto é, primeiramente, dividido em orações e em tokens. Cada token
é procurado no dicionário para determinar suas possíveis características. No exemplo
apresentado anteriormente, Carlos e Antônio seriam rotulados como primeiros nomes,
e SA seria rotulado como um termo que é acrescentado ao nome de uma empresa.
• Reconhecimento de Nomes(Termos): esta fase do processo identifica os vários tipos
de nomes próprios e outras formas especiais, tais como datas e quantias em moeda.
Como os nomes aparecem frequentemente em muitos tipos de textos, identificá-los e
classificá-los simplifica os processos futuros.
Os nomes são identificados por um conjunto de padrões (expressões regulares) que
são declarados como partes da fala, características sintáticas e de ortografia. Nomes
pessoais, por exemplo, podem ser identificados pela precedência de um título(Sr.),
como:
Sr. Henrique Dias.
Capítulo 2. Fundamentação Teórica
12
Figura 2 – Estrutura de um sistema de extração de informações.(ZAMBENEDETTI, 2002)
Nomes de empresas podem, normalmente, ser identificados pelo seu token final(SA),
como:
Dogs & Dogs SA.
No parágrafo de exemplo, três nomes seriam identificados:
[tipo de nome: pessoa Carlos Rodrigues] aposentou-se como vice-presidente
executivo de uma famosa fábrica de cachorro-quente, a [tipo de nome: empresa
Dogs & Dogs SA]. Ele irá ser sucedido por [tipo de nome: pessoa Antônio Farias].
• Estrutura Sintática: a identificação de alguns aspectos da estrutura sintática irá
prover uma simplificação nas fases seguintes. Em geral, esta fase consiste-se da
construção de grupos de verbos e substantivos.
O primeiro conjunto de rótulos possui os grupos e frases de substantivos (np). Isto
inclui, no exemplo abaixo, os três nomes, o pronome e dois grupos de substantivos
maiores. Após segue um conjunto de rótulos para grupos de verbos (vg). Depois da
aplicação destes padrões, o texto é rotulado da seguinte maneira:
Capítulo 2. Fundamentação Teórica
13
[entidade np: e1 Carlos Rodrigues] [vg aposentou-se] como [entidade np: e2
vice-presidente executivo] de [entidade np: e3 uma famosa fábrica de
cachorro-quente], a [entidade np: e4 Dogs & Dogs SA]. [entidade np: e5 Ele]
[vg irá ser sucedido] por [entidade np: e6 Antônio Farias].
Os grupos de padrões fortalecem a estrutura das frases usando modificadores. Estas
expressões não obedecem aos padrões normais. Há expressões que modificam os
substantivos e outras não, pois têm o seu próprio significado.
Tabela 1 – Entidades da estrutura sintática
Entidade
Entidade
Entidade
Entidade
Entidade
e1
e2
e3
e5
e6
Tipo:nome de pessoa: Carlos Rodrigues
Tipo:valor da posição: Vice-Presidente Executivo empresa: e3
Tipo:nome do fabricante: Dogs & Dogs SA
Tipo:pessoa
Tipo:nome de pessoa: Antônio Farias
Fonte: (ZAMBENEDETTI, 2002)
A tabela 1 mostra as entidades obtidas através da análise sintática.
• Cenário de Combinação de Padrões: a função destes padrões é extrair os eventos ou
relacionamentos relevantes ao cenário. Para o exemplo da sucessão executiva haverá
dois padrões: pessoa que se aposenta em uma posição e pessoa é sucedida por outra
pessoa, onde pessoa e posição são elementos padrão que combinam NPs com o tipo
associado. Se aposenta e é sucedida são elementos padrão que combinam grupos de
verbos ativo e passivo, respectivamente. O resultado é um texto rotulado com duas
cláusulas, cada uma apontando para estruturas de evento. Estas estruturas de evento
apontam para as entidades previamente criadas:
[cláusula de evento: e7 Carlos Rodrigues aposentou-se como vice-presidente
executivo de uma famosa fábrica de cachorro-quente, a Dogs & Dogs SA].[cláusula
de evento: e8 Ele irá ser sucedido por Antônio Farias]
• Análise de Co-referência: a análise de co-referência tem a tarefa de resolver referências
à anáforas, que é a repetição de uma palavra no princípio de diferentes frases ou de
membros da mesma frase, provenientes de pronomes e substantivos. No texto da
sucessão, o único exemplo é o pronome ele (entidade e5). A análise de co-referência
irá procurar pela primeira entidade do tipo pessoa que aparecer antes de e5, e irá
encontrar a entidade e1. Então, conseqüentemente, ao invés de referenciar a entidade
e5 será referenciada a entidade e1.
Capítulo 2. Fundamentação Teórica
14
• Inferência e União de Eventos: em muitas situações, a informação parcial sobre
um evento pode ser estendida para várias sentenças. Esta informação precisa ser
combinada antes que um template/estrutura possa ser gerado. Em outros casos, uma
informação pode estar implícita, e é necessário torná-la explícita através do processo
de inferência.
No domínio da sucessão executiva, é necessário determinar o quê o predicado sucessão
implica, caso o desejo seja produzir templates que especifiquem quais indivíduos
perderam ou adquiriram posições particulares. Por exemplo, se há o seguinte:
Carlos era o presidente. Ele foi sucedido por Antônio.
É deduzido que Antônio se tornará o presidente. Reciprocamente, se
Carlos será o presidente. Ele sucedeu Antônio.
É deduzido que Antônio era o presidente. Tais deduções podem ser implementadas
por um sistema de regras.
Tabela 2 – Entidades e eventos
Entidade
Entidade
Entidade
Entidade
e1
e2
e3
e6
Evento e7
Evento e8
Evento e9
Tipo:nome de pessoa: Carlos Rodrigues
Tipo:valor da posição: Vice-Presidente Executivo empresa: e3
Tipo:nome do fabricante: Dogs & Dogs SA
Tipo:nome de pessoa: Antônio Farias
Tipo: pessoa deixando o trabalho: posição e1: e2
Tipo: sucede pessoa 1: e6 pessoa 2: e1
Tipo: pessoa começando-trabalho: posição e6: e2
Fonte: (ZAMBENEDETTI, 2002)
A tabela 2 mostra as entidades e eventos finais extraídos do texto inicial.
2.1.1 Processamento de Linguagem Natural
Processamento de Linguagem Natural (PLN) é uma área de Ciência da Computação
que estuda o desenvolvimento de programas de computador que analisam, reconhecem
e/ou geram textos em linguagens humanas, ou linguagens naturais. Desde o surgimento
das técnicas de PLN, muitos avanços foram obtidos, mas a compreensão plena de linguagem natural por métodos computacionais está ainda longe de ser resolvida(VIEIRA;
LOPES, 2010). O PLN é uma subárea da Inteligência Artificial (IA) e visa a projeção e a
Capítulo 2. Fundamentação Teórica
15
implementação de sistemas computacionais para simulação do conhecimento linguístico
humano nesses sistemas (Menuzzi and Othero, 2005).
As pesquisas nessa área ao mesmo tempo em que se beneficiam com os estudos provenientes da Linguística têm propiciado não só desenvolvimento de tecnologias ou recursos
aplicáveis a várias atividades, mas também o próprio desenvolvimento da Linguística e da
Ciência da Computação, duas das muitas disciplinas envolvidas no PLN (Di Felippo and
Dias-da-Silva, 2009). Ainda de acordo com (VIEIRA; LOPES, 2010), o PLN não é uma
tarefa trivial devido à rica ambiguidade da linguagem natural. Essa ambiguidade torna o
PLN diferente do processamento das linguagens de programação de computador, as quais
são desenvolvidas para que a ambiguidade seja evitada.
Segundo(VIEIRA; LOPES, 2010) e(GONZALEZ; LIMA, 2003) de um ponto de
vista linguístico, o foco das pesquisas em PLN pode estar em um de cinco níveis de análise:
(a)fonético ou fonológico: do relacionamento das palavras com os sons que
produzem;
(b)morfológico: da construção das palavras a partir unidades de significado
primitivas e de como classificá-las em categorias morfológicas;
(c)sintático: do relacionamento das palavras entre si, cada uma assumindo seu
papel estrutural nas frases, e de como as frases podem ser partes de outras, constituindo
sentenças;
(d)semântico: do relacionamento das palavras com seus significados e de como
eles são combinados para formar os significados das sentenças
(e)pragmático: do uso de frases e sentenças em diferentes contextos, afetando o
significado.
Todos esses níveis possuem suas características próprias e dificuldades associadas,
mas cada aplicação de PLN pode ter uma preocupação mais voltada para um subgrupo
desses níveis.
Pode-se destacar a relevância das atividades de reconhecimento de entidades
nomeadas, identifcação de termos, extração de informação, entre outras. Todas as atividades
complexas podem combinar análise morfossintática e semântica. De um ponto de visto
prático, muitas aplicações de PLN escolhem se dedicar a apenas alguns níveis para reduzir
a complexidade de tratamento.(VIEIRA; LOPES, 2010)
Como pode ser acompanhando na figura 3, a estrutura sintática de uma sentença é
obtida através do processamento morfosintático, sendo que a representação desta estrutura
é regidas por leis gramaticais definidas em uma gramática. Outras informações necessárias
a esta etapa, como as categorias morfológicas das palavras, são encontradas em uma análise
léxica. De acordo com (GONZALEZ; LIMA, 2003) o mapeamento da estrutura sintática
Capítulo 2. Fundamentação Teórica
16
Figura 3 – Transformações da sentença na estrutura sintática e na forma lógica(GONZALEZ; LIMA, 2003)
da sentença em sua forma lógica é realizado pelo processamento semântico e, nele, o léxico
também exerce papel fundamental, com informações sobre o significado dos itens lexicais
que fornecem informações de contexto linguistico.
2.2 Etiquetador
De acordo com (SILVA; MARTINS, 2008) para realizar a etiquetagem de um
texto é necessária a definição de um conjunto finito de etiquetas, também chamadas
tags, e essas etiquetas devem ter um significado linguístico associado (por exemplo, uma
etiqueta de verbo ou substantivo). Geralmente o significado dessa etiqueta refere-se à
categoria morfológica e/ou sintática de uma determinada palavra dentro de uma língua e
um determinado contexto. O processo de etiquetagem consiste em realizar a associação das
palavras que ocorrem em um dado texto à uma determinada etiqueta de um conjunto finito
de etiquetas. Essa associação é feita de acordo com o algoritmo do etiquetador utilizado.
Segundo(DOMINGUES, 2011), um etiquetador automático (ou tagger) é uma
ferramenta que utiliza um conjunto de técnicas e métodos, em diferentes abordagens para
automatizar a tarefa de etiquetagem. Basicamente, pode-se dizer que um etiquetador é
uma ferramenta de etiquetamento automático, seja ele morfológico ou morfossintático.
Um problema de etiquetamento a ser resolvido é que muitas palavras possuem
mais de um significado e sentido. Para estas palavras, dadas fora de contexto, existe
ambiguidade em relação a como elas devem ser interpretadas. A tarefa de desambiguar é
determinar qual dos sentidos de uma palavra ambígua é invocado em um uso particular
Capítulo 2. Fundamentação Teórica
17
dela. Isto é feito observando-se o contexto desta palavra(KEPLER, 2005).
Um dos grandes desafios na construção de um etiquetador automático é lidar com
o problema da ambiguidade no etiquetamento de uma palavra ou sentença como, por
exemplo, na palavra para.
Ex.1: João vai para São Paulo.
Ex.2: João para no Rio de Janeiro para almoçar.
No Ex.1 a etiqueta da palavra para deve ser de preposição. Já no exemplo 2, na
primeira ocorrência da palavra para, deve ser de verbo de acordo com o último Acordo
Ortográfico da Língua Portuguesa.
Segundo(SIMõES; ALMEIDA, 2002), o etiquetamento tenta determinar em qual das
categorias sintáticas é mais provável o uso de uma palavra particular em uma determinada
sentença, como no exemplo acima em que há ambiguidade. Em geral essas ferramentas de
etiquetamento utilizam um dicionário base e um conjunto de regras para a formação de
novas palavras.
A construção de um etiquetador envolve a escolha de um modelo teórico de
etiquetagem e a escolha do método usado pelos algoritmos para alimentar o modelo
(KEPLER, 2005).
2.2.1 Modelos
Os modelos usados em etiquetadores podem geralmente ser classificados em quarto
grupos:
Estatísticos - Os modelos estatísticos utilizam teoria probabilística com o objetivo
de identificar padrões de uso de linguagem, por exemplo, se a palavra para é etiquetada
muitas vezes como verbo quando esta é antecedida por um sujeito, então há uma grande
probabilidade dela ser etiquetada novamente como verbo se precedida por um sujeito.
Regras - As regras gramaticais são definidas manualmente, como por exemplo, a
regra a(s)/o(S) são artigos definidos. Então o algoritmo de etiquetamento ao encontrar
a(s) /o(s) deverá etiquetá-lo como um artigo. Uma abordagem utilizada pode ser regras
de transformação, em que o etiquetador analisa os erros de etiquetagem e induz regras
que os transformem em acertos.
Neurais - Os etiquetadores baseados em redes neurais utilizam técnicas de redes
neurais para classificar as palavras de acordo com sua classe gramatical.
Híbridos - Apresentam uma mistura dos modelos acima. Por exemplo, um modelo
que utilize regras, como a do artigo visto acima e probabilidade para derivar uma nova
regra a partir desta.
Capítulo 2. Fundamentação Teórica
18
2.2.2 Tipos
A seguir serão apresentados os tipos de etiquetadores existentes.
2.2.2.1 Etiquetador morfológico
Um analisador morfológico é capaz de identificar palavras ou expressões isoladas
em uma sentença com o auxílio de delimitadores que variam conforme a ferramenta
(por exemplo, sinais de tabulação e espaços em branco) e classifica-las em categorias
gramaticais(DOMINGUES, 2011).
O etiquetador morfológico realiza uma análise morfológica, dado um texto ou
sentença como entrada, isso é, identifica as características morfológicas (gênero, número,
classe gramatical).
Exemplo: João jogou a bola.
As etiquetas morfológicas seriam:
João=Substantivo Próprio, masculino, singular
jogou=Verbo, terceira pessoa do singular
a=Artigo, feminino, singular
bola=Substantivo, feminino, singular.
2.2.2.2 Etiquetador morfossintático
A etiquetagem morfossintática é uma tarefa de importância crescente para muitas
aplicações de PLN, tais como análise gramatical, anotação de corpus, extração e recuperação
de informação, simplificação de textos, geração automática de resumos e outras aplicações
que precisem extrair a categoria gramatical das palavras(SILVA; MARTINS, 2008).
Segundo(KEPLER, 2005), a análise morfossintática consiste em classificar gramaticalmente cada palavra de uma frase dentro do seu contexto.
A análise morfossintática mescla características morfológicas e sintáticas das palavras e sentenças, identificando as características morfológicas assim como em uma análise
puramente morfológica, mas também tenta encontrar as funções de cada palavra em
determinado contexto linguístico.
A sintaxe é a parte da gramática que estuda como esses elementos se combinam
para formarem as sentenças. O estudo da estrutura (forma) da sentença recebe o nome
tradicional de análise sintática.
Exemplo: João jogou a bola.
As etiquetas morfossintáticas seriam:
Capítulo 2. Fundamentação Teórica
19
João=Substantivo Próprio, masculino, singular, sujeito
jogou=Verbo, terceira pessoa do singular, predicado verbal
a=Artigo, feminino, singular
bola =Substantivo
a bola=objeto direto nominal.
O etiquetamento é de fundamental importância na extração dos sintagmas nominais,
pois as etiquetas morfológicas são utilizadas no processo. E também, para a própria extração
de sintagmas é necessário realizar um processo de etiquetamento(sintagmas nominais,
verbais, etc).
2.3 Extração das Frases Nominais
2.3.1 Sintagmas
As sequências gramaticais de uma língua são chamadas de sentenças. A combinação
de palavras para formarem as sentenças não é aleatória; é necessário obedecer a determinados princípios da língua.(SANTOS, 2005). Princípios que podem ser vistos como regras
gramaticais que dizem como a língua é estruturada. Segundo PERINI (2003), as sentenças
são formadas por constituintes, muitas vezes uns dentro dos outros. Constituintes que
podem ser vistos como certos grupos de unidades que fazem parte de seqüências maiores,
mas que mostram certo grau de coesão entre eles. Ou seja, as sentenças são formadas por
segmentos(ou constituintes) que indicam uma relação de dependência mantendo entre
si relações de dependência, organizando-se em torno de um núcleo. Segmentos que são
chamados também de sintagmas.
Cada sintagma possui um núcleo, que indica de que tipo de sintagma se trata: se
o núcleo for um verbo, o sintagma será verbal, se o núcleo for um nome(substantivo) o
sintagma será nominal.
Os alunos entregaram os livros.
Os alunos - sintagma nominal, cujo núcléo é um substantivo(alunos).
entregaram - sintagma verbal, cujo núcleo é o próprio sintagma.
os livros - sintagma nominal, cujo núcleo é também um substantivo(livros).
Sintagma Nominal: é formado por um nome (núcleo) e seus determinantes que
podem ser adjuntos adnominais ou orações adjetivas. Na Oração pode assumir a função
de sujeito ou de complemento verbal.
Sintagma Verbal: é formado pelo verbo (núcleo do sintagma) seguido ou não do
sintagma preposicional (objeto indireto), do sintagma nominal (objeto direto), do sintagma
Capítulo 2. Fundamentação Teórica
20
adverbial (adjunto adverbial ou do sintagma adjetivo (predicativo).
Sintagma Adjetival: na frase pode assumir a função de adjunto adnominal, predicativo ou complemento nominal, e tem como núcleo um adjetivo.
Sintagma Adverbial: na frase assume a função de adjunto adverbial, e tem como
núcleo um advérbio.
Sintagma Preposicional: ocorre mais comumente nas funções de complemento
nominal(quando complementa o sentido de um substantivo, de um adjetivo ou de um
advérbio) ou de objeto indireto, adjunto adnominal(quando modifica um substantivo,
assumindo papel de um adjetivo), mas pode ocorrer em qualquer outra função desde que
seja iniciada por uma locução prepositiva. Tem como núcleo uma preposição.
2.3.1.1 Sintagmas Nominais
O Sintagma Nominal(SN) apresenta um núcleo, que pode ser um nome próprio ou
comum; pode ser ainda um pronome substantivo, pronome pessoal, pronome demonstrativo,
pronome indefinido, pronome interrogativo, pronome possessivo, pronome relativo, etc.
Além do núcleo, o SN pode apresentar determinante(s) e/ou modificador(es), sendo os
determinantes os que antecedem o núcleo e os modificadores os antepostos ou pospostos(MIORELLI, 2001).
Os determinantes antecedem o núcleo do sintagma nominal, e determinam/especificam
o núcleo. Esses determinantes podem ser artigo, pronome, numeral, etc. Exemplo abaixo:
As formigas são rápidas.
Na sentença acima o determinante As está especificando/determinando o substantivo formiga, que é o núcleo do sintagma nominal as formigas, dizendo que não se trata de
qualquer formiga.
Os modificadores mudam o sentindo original da palavra a qual estão fazendo
referência. Em geral, são advérbios ou adjetivos.
Maria tem uma bolsa amarela.
Na sentença acima, amarela é um adjetivo que se refere ao núcleo bolsa do sintagma
nominal bolsa amarela. Este adjetivo modifica o substantivo bolsa.
Segundo(PERINI, 1994) o SN possui uma estrutura bastante complexa, incluindo
vários termos de comportamento sintático diverso, o que significa que é possível distinguir
dentro do SN diversas funções sintáticas.(PERINI, 1994) acredita que os constituintes, para
compor um SN, possuam posições rígidas. Ele estabelece o conceito de SN máximo, formado
pela seqüência mais longa possível de termos, tais que todos tenham comportamento
sintático claramente diferente. Este autor divide o SN máximo em duas estruturas: uma
estrutura que está à esquerda e outra à direita, incluindo o núcleo do sintagma nominal.
Capítulo 2. Fundamentação Teórica
21
Existem diferentes abordagens na literatura sobre o sintagma nominal. Para (LIBERATO, 1997) os SNs possuem uma função referencial, isto é, se referem a um objeto
do mundo exterior como, por exemplo, uma entidade, identificada através de uma palavra
ou expressão. Autores como (PERINI, 1995) definem SN como uma classe gramatical com
comportamento sintático de sujeito, de objeto direto e, se precedido de preposição, de
adjunto adnominal ou de objeto indireto.
Os sintagmas nominais representam o foco desse trabalho, pois é a partir deles,
que será feita a extração de entidades semânticas.
2.3.2 Text Chunking
De acordo com (ATTARDI; DELL’ORLETTA, 2008), a técnica de text chunking
pode ser vista como uma tarefa básica de Partial Parsing, que é uma técnica para recuperar
informações sintáticas de forma eficiente de um texto, contornando as dificuldades de um
parsing completo. Esta técnica recebe como entrada a saída do analisador morfológico, isso é,
as etiquetas morfológicas decorrentes da etapa anterior de um etiquetador morfossintático.
A técnica de partial parsing é utilizada para evitar os problemas de um parsing
completo(full parsing), como complexidade de tempo alta e possuir uma baixa acurácia. A
ambiguidade da língua natural dificulta/impossibilita de parsing completo, e além disso
esta técnica pode prover muita mais informação do que a necessária para muitas tarefas,
como as de PLN por exemplo.
O text chunking divide um texto em grupos de palavras sintaticamente correlacionadas, também chamadoschunks, como frases nominais ou frases verbais. Um chunk
é uma unidade textual de tokens de palavras adjacentes; chunks descontínuos não são
permitidos(FEDERICI; MONTEMAGNI, 1996). Em outras palavras, o chunk é uma
sequência de palavras em uma sentença que tenham relações entre si, como por exemplo,
na sentença O menino jogou a bola, a frase O menino forma um chunk ou frase, nesse
caso uma frase nominal. É possível ver que a definição de chunk vai de encontro com a
definição de sintagmas vista anteriormente.
O chunking no presente trabalho é utilizado através da ferramenta escolhida, o
CoGrOO para extrair os sintagmas existentes. Na ferramenta o módulo responsável por
essa tarefa é o Chunker.
2.4 Ferramentas
Foram analisadas ferramentas de etiquetamento morfológico e morfossintático para
o português do Brasil e com o objetivo de investigar as funcionalidades destas ferramentas
para a seleção de uma destas para a extração de frases nominais.
Capítulo 2. Fundamentação Teórica
22
Foram levadas em consideração as ferramentas da tabela 3. Todas são open source
e são voltadas para a análise morfológica e sintática do português do Brasil. O Free Ling
também faz análise para português de portugal, inclusive, a ferramenta para o português
do Brasil é instável.
Tabela 3 – Ferramentas de Etiquetamento
Ferramenta
CoGrOO
Curupira
Free Ling
Tipo de analisador
morfossintático
sintático
morfossintático
Linguagem
JAVA
C++
Perl
modelo
Híbrido(estatística e regras)
Regras
Híbrido(estatística e regras)
Em testes realizados com sentenças em português do Brasil nestas ferramentas foi
constatdo que a ferramenta CoGrOO é a mais completa em relação a análise morfológica
e morfossintática. E ainda, é possível utilizar os módulos dessa ferramenta separadamente,
como por exemplo, o módulo extrator de sintagmas, conhecido como Chunker. Por isso foi
a ferramenta escolhida para este trabalho.
2.4.1 CoGrOO
O CoGrOO é um corretor gramatical de código de aberto em uso por
milhares de usuários de uma popular suíte de escritório de código aberto.
Ele é capaz de indentifcar erros como: colocação pronominal, concordância
nominal, concordância sujeito-verbo, uso da crase, concordância nominal
e verbal e outros erros comuns de escrita em Português do Brasil. Para
tal, o CoGrOO realiza uma análise híbrida: inicialmente o texto é anotado
usando técnicas estatísticas de Processamento de Linguagens Naturais e,
em seguida, um sistema baseado em regras é responsável por identificar
os possíveis erros gramaticais.(COLEN, 2013)
2.4.1.1 Módulos CoGrOO
Os módulos a seguir são utilizados internamente pela ferramenta CoGrOO para
identificar frases nominais.
• Detector de limites de Sentença
O Detector de limites de Sentença é responsável por identificar o limite de sentenças
baseado em sinais de pontuação. Por exemplo, este detector é responsável por checar
se um ponto indica o fim de uma sentença ou é parte de uma abreviação. Uma
operação semelhante deve ser realizada para outros sinais de pontuação que dividem
sentenças em português, tais como exclamação, interrogação, aspas, ponto e vírgula,
etc. Ponto, ponto de exclamação, interrogação, ponto e vírgula são considerados
separadores absolutos de sentenças.
Os passos para se identificar uma sentença são:
1. Identificar sinais de pontuação no texto;
Capítulo 2. Fundamentação Teórica
23
2. Buscar construções que utilizem sinais de pontuação, mas não definem sentenças,
como um endereço de e-mail.
3. Extrair características, como limites de sinais de pontuação, ou seja, se a
próxima palavra começa com a primeira letra em caixa alta.
4. Adicionar a característica de abreviação conhecida, se o sinal de pontuação é
um ponto.
5. Considerar colchetes, hífens e aspas como separadores de sentenças somente se
houver pelo menos um verbo finito.
Entrada: O Sr. Mendonça chegou. Entrego-lhe os documentos.
Saída: [O Sr. Mendonça chegou.] [Entrego-lhe os documentos.]
• Tokenização
Sentenças são compostas por partes de texto, chamados tokens. Os tokens, em geral,
representam palavras, sinais de pontuação e outros símbolos.
Geralmente, sequências de tokens são delimitadas por espaços. Entretanto há casos
não triviais; por exemplo, se não há espaço entre os tokens, principalmente quando
um sinal de pontuação segue uma palavra. O tokenizer do CoGrOO foi construído
em cima do módulo Tokenizer do OpenNLP. Os passos são os seguintes:
1. Divide a sequencia em espaços em branco: Entrego-lhe os documentos? =>[Entregolhe] [os] [documentos?]
2. Para cada string, checa sua característica e compara com os dados de treinamento. Algumas características são:
– O fim de uma string é um potencial token separador (não alfanumérico)?
– O fim de uma string é um sinal de ponto ou é parte de uma abreviação
conhecida?
Entrada: O Sr. Mendonça chegou. | Entrego-lhe os documentos?
Saída: [O] [sr.] [Mendonça] [chegou] [.] | [Entrego] [-lhe] [os] [documentos] [?]
• Name Finder
Substantivos próprios são tidos como um único token. Por exemplo, o nome Jane
Doe é representado como o token Jane Doe.
O CoGrOO utiliza o módulo Name Finder do OpenNLP. O processo de treinamento
é feito enviando os substantivos próprios marcados com etiquetas para o módulo de
sentenças:
Eu penso que <START>Jane Doe<END> está vindo.
Capítulo 2. Fundamentação Teórica
24
O módulo irá procurar pelas características da ocorrência, e então avaliar a importância de cada característica para determinar se deve ser considerada quando os
novos textos são avaliados. Essas características são:
– Tokens são classificados como substantivos próprios no dicionário
– Palavras desconhecidas (que não estão no dicionário)
– Ocorrência de preposição entre os substantivos
Entrada: [As] [crianças] [se] [divertiram] [na] [Casa] [da][Boa] [Esperança] [.]
Saída: [As] [crianças] [se] [divertiram] <START>[na] [Casa] [da][Boa] [Esperança]<END>
[.]
• Post Tokenizer
O post tokenizer é responsável por rearranjar tokens.
a) Irá pegar os nomes próprios do módulo Name Finder e mesclará seus tokens em
somente um token.
b) Irá expandir tokens em formas contraídas.
Contrações são strings que, sintaticamente, correspondem a uma sequencia de
palavras, porém são escritas como um único token. Na ortografia do português, a
maioria dessas strings correspondem a uma contração de uma preposição, geralmente,
de ou em com o artigo ou pronome que segue: da ( de + a), nele (em + ele), consigo
(com + si),etc. Passos:
1. Substitui os tokens que são parte de um nome próprio pelo primeiro token dessa
sequencia.
2. Substitui as formas contraídas pela forma equivalente expandida.
Entrada: [A] [Maria] [Bonita] [chegou] [na] [casa] [da] [Boa] [da] [Esperança] [.]
Saída: [A] [Maria] [chegou] [em] [a] [Casa] [.]
• Part of speech tagger
O módulo POS Tagger atribui etiquetas morfológicas e flexões. O CoGrOO usa o
módulo POS Tagger do OpenNLP com algumas adições para as características já
existentes:
– Melhor suporte para nomes próprios agrupados.
– Características associando letras em caixa alta com nomes próprios.
– Características relacionadas ao dicionário, por exemplo, se uma palavra existe
ou não.
Capítulo 2. Fundamentação Teórica
25
Tabela 4 – Análise morfológica
Token
A
Maria
chegou
em
a
casa
.
Lemma
o
Maria
chegar
em
o
casa
.
POS Tag
Artigo, feminino, singular
Nome próprio, feminino, singular
Verbo finito, 3a pessoa do singular, pretérito perfeito , indicativo
preposição
Artigo, feminino, singular
Nome próprio, feminino, singular
Sinal de pontuação, abs
Fonte: (COLEN, 2013)
– Características para melhorar a performance de palavras hifenizadas.
• Multi-word Expressions (Expressões com mais de uma palavra)
O corpora utilizado para treinar o POS Tagger contem expressões com mais de
uma palavra, o que consiste de um lexema composto de dois ou mais lexemas que
juntos expressam funções e significados que não podem ser previstos de suas partes
individuais.
Exemplo:
Do que - preposição
Com base em - preposição
Esses tokens foram extraídos do corpora utilizado para o treinamento. A atual
implementação do CoGrOO não lida com esses tipos de expressões.
• Chunker
Text chunking consiste em dividir um texto em grupos sintaticamente correlacionados
de palavras como grupos de substantivos e grupos de verbos, mas não especifica sua
estrutura interna ou seu papel na sentença principal.
O CoGrOO utiliza uma heurística para extrair as frases do corpus Bosque, e estas
frases são utilizadas para o treinamento do modelo OpenNLP. Esta versão da
ferramenta apresentou bons resultados para a extração de frases nominais simples.
Os tipos de frases que o CoGrOO utiliza são: frase nominal(np), frase verbal(vp),
frase preposicional(pp) e frase adverbial(advp).
Este módulo recebe como entrada os tokens anotados com tags morfológicas.
Exemplo de Saída: [NP A Maria] [VP chegou] em [NP a Casa]
26
3 Proposta
Para obter informações de um texto é necessário saber não só a idéia que aquele
texto descreve, mas é necessário saber a quem ou ao que se refere a informação. Esse
que ou quem, em EI é representado por uma entidade. Assim, para realizar a extração
da informação faz-se necessário extrair as entidades, que podem ser representadas por
nomes próprios e outras formas especiais, tais como datas e quantias em moeda, à qual a
informação se refere. Entidades referenciadas em um texto são frases nominais.
Por exemplo na sentença:
Sarney desiste de disputar a prévia do PMDB contra Requião. As entidades são:
Entidade 1: Sarney
Entidade 2: a prévia do PMDB contra Requião
A ferramenta CoGrOO na versão 4.0.0 apresentou resultados relevantes na tarefa
de identificação de frases nominais, principalmente para frases nominais simples, para o
português do Brasil. Por isso esta ferramenta foi escolhida para a identificação de frases
nominais para a referida língua. Com as frases nominais etiquetadas pela ferramenta
constatou-se que a saída do CoGrOO não identifica algumas frases nominais complexas.
Como exemplo, tem-se a saída da ferramenta CoGrOO para a mesma sentença anterior:
[NP: Prop: Sarney ] [VP: desiste ] [PP: de ] [VP: disputar ] [NP: a prévia ]
[PP: de ] [NP: o Prop: PMDB ] [PP: contra ] [NP: Prop: Requião ].
No CoGrOO, a etiqueta NP representa uma frase nominal, PP representa uma
frase preposicional e VP uma frase verbal.
A relação para esta sentença é desiste de disputar e as entidades são Sarney e
a prévia do PMDB contra Requião. A ferramenta CoGrOO divide as frases em [NP: a
prévia ] [PP: de ] [NP: o Prop: PMDB ] [PP: contra ] [NP: Prop: Requião ]. Caso
fosse considerado apenas a primeira frase nominal com a etiqueta Prop, que indica nome
próprio, a segunda entidade seria apenas PMDB. E o relacionamento seria Sarney desiste
de disputar PMDB, o que deixaria este relacionamento incompleto, e até mesmo sem
sentido.
Foi observado em testes na ferramenta que a saída atual do CoGrOO não considera
preposições como partes de sintagmas nominais, como por exemplo na sentença:
A bolsa de Maria é amarela.
Saída do CoGrOO:
Capítulo 3. Proposta
27
[NP: A bolsa] [PP:de ] [NP:Maria] [VP: é] [NP:amarela].
O CoGrOO não considera A bolsa de Maria como um único sintagma nominal,
visto que a identificação completa da frase nominal facilita a extração de relações. Dessa
forma, o ideal seria que além de extrair o sintagma nominal A bolsa, a frase preposicional
de Maria também fosse extraída, pois esta se refere à frase nominal A bolsa.
Segundo (OTHERO, 2009), uma frase preposicional se antecedida de um substantivo
ou frase nominal tem um papel de adjunto adnominal ou de complemento nominal.
Enquanto o adjunto adnominal modifica o substantivo ou frase nominal, o complemento
nominal completa o sentido da frase nominal, portanto o adjunto e o complemento também
podem fazer parte do sintagma nominal. Na sentença Maria tem orgulho do filho, a frase
preposicional do filho está completando o sentido do substantivo orgulho. E na sentença
Ela se dizia carioca da gema, a frase preposicional da gema está modificando o substantivo
carioca, acrescentando uma nova informação .
Dessa forma, o presente trabalho propôs desenvolver um algoritmo para a extração
de frases nominais complexas não cobertas pelo CoGrOO, em textos do português do
Brasil, considerando uma abordagem sintática. Para isto foi desenvolvido um algoritmo
que utiliza a ferramenta CoGrOO para extrair as frases nominais já identificadas por esta,
e em seguida aplica regras gramaticais de formação de frases nominais para identificá-las.
De posse dessas frases nominais máximas sugere-se que as entidades extraídas em cima
das frases nominais tenham um sentido mais completo, como no exemplo anterior em que
a entidade extraída deveria ser a prévia do PMDB contra Requião e não apenas PMDB.
Regras de formação da frase nominal completa (FNC) baseado na saída do CoGrOO:
(1)FNC -> NP PP NP
(2)FNC -> FNC PP NP
Foi constatado que a frase preposicional(PP) do CoGrOO representa na verdade
uma preposição. Sendo assim, a frase preposicional, como definida na seção 2.3.1 é
representada por PP+NP.
Estas regras representam o padrão que deve ser buscado entre as frases extraídas
pelo CoGrOO, NP+PP+NP, isso é, uma frase nominal que contém uma frase preposcional.
É possível também que haja mais de uma frase preposicional dentro de uma frase nominal.
No caso mais básico(1), a frase nominal completa é formada por uma frase nominal seguida
de uma frase preposicional(preposição no CoGrOO) e outra frase nominal. E por(2) é
possível perceber que o padrão descrito pode se repetir duas ou mais vezes.
Capítulo 3. Proposta
28
3.1 Algoritmo Proposto
O propósito do algoritmo apresentado a seguir é etiquetar as frases nominais que
contenham frases preposicionais. O algoritmo, aqui sugerido, trabalha com a saída do
CoGrOO, sem fazer nenhuma alteração em seu funcionamento interno, isso é, seus módulos
permanecem inalterados.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Data: Lista de sentenças do documento com os chunks do CoGrOO
Result: Lista de sentenças com os chunks modificados
for cada sentença do
while etiqueta chunk = NP do
adicionaToken;
if próximo chunk tem etiqueta = PP and chunk seguinte tem etiqueta = NP
then
adicionaToken;
end
else
cria chunk modificado com a mesma etiqueta do CoGrOO;
end
end
if ocorreu padrao then
cria chunk modificado com a mesma etiqueta FNC;
end
else
cria chunk modificado com a mesma etiqueta do CoGrOO;
end
end
Algorithm 1: Algoritmo proposto(busca do padrão NP+PP+PP)
Para cada sentença recebida, seus chunks(lista de chunks ) são verificados, caso o
chunk possua etiqueta NP, então o padrão PP+NP(frase preposicional) é procurado na
linha 4. Caso o padrão seja encontrado os tokens do chunk do CoGrOO são adicionados
a um novo obejto chunk(linha 5). O laço da linha 2 continua até que seja encontrado
um chunk que não tenha a etiqueta NP (ou ainda, na prática, até que a lista de chunks
acabe). A linha 8 verifica se o padrão(PP+NP) ocorreu. Caso positivo, o chunk recebe a
etiqueta FNC(frase nominal completa), caso contrário o chunk recebe a mesma etiqueta
do CoGrOO.
Voltando ao exemplo visto em 3
Sarney desiste de disputar a prévia do PMDB contra Requião.
Com a aplicação do algoritmo o resultado fica:
Capítulo 3. Proposta
29
[NP: Sarney] [VP: desiste] [PP: de] [VP: disputar] [FNC: a prévia de o PMDB
contra Requião].
É possível perceber que o padrão NP+PP+NP(CoGrOO) se repete duas vezes na
frase [FNC: a prévia de o PMDB contra Requião]. A primeira frase preposicional é de o
PMDB e a segunda contra Requião.
30
4 Experimentos e Resultados
Este capítulo tem o objetivo de apresentar os experimentos realizados para avaliar
o algoritmo proposto e os resultados obtidos destes experimentos.
Para avaliar a proposta em cima do algoritmo implementado foram realizados dois
experimentos.
Para classificar as frases nominais extraídas como erros ou acertos faz-se necesário
fazer algumas considerações sobre a ferramenta CoGrOO, e consequentemente a saída
do algoritmo. O módulo Post Tokenizer da ferramenta CoGrOO, como visto na seção
2.4.1.1, obtém os nomes próprios do módulo Name Finder e mescla seus tokens em somente
um token. E ainda, expande tokens em formas contraídas. Por exemplo, os tokens São e
Paulo viram São Paulo, e a preposição da é expandida em de + a. Dessa forma, então, ao
encontrar por exemplo o chunk [FNC:A diária de o aluguel de um Prop: Uno Mille] e a
entidade ou frase nominal A diária do aluguel de um Uno Mille é computado um acerto,
sendo esta considerada como uma frase nominal aproximada.
Precisão
Precisão é a proporção dos documentos recuperados que são relevantes para uma
dada consulta em relação ao total de documentos recuperados. Essa medida reflete a
eficiência dos resultados do sistema, revelando a proporção das respostas corretas dentre
todas as respostas resultantes do sistema.
4.1 CoGrOO x algoritmo proposto
O primeiro experimento teve o objetivo de comparar a ferramenta CoGrOO com
o algoritmo proposto. Para isso foram executados testes com 50 sentenças do corpus
Bosque(BICK, 2009), que utillza o corpus do CETENFolha com vários tipos de etiquetas,
inclusive etiquetas que identificam frases nominais. Para comparação com os resultados
obtidos pelo CoGrOO e pelo algoritmo implementado foram utilizadas as etiquetas deste
corpus que indicam frases nominais como auxílio para identificar as frases nominais e
depois, se necessário, faz-se um ajuste manual. Estas frases nominais extraídas do corpus
Bosque e ajustadas manualmente serão chamadas aqui de frase nominal de referência.
Para cada sentença, primeiramente é analisado a quantidade de frases nominais
existentes, e depois analisa-se a saída em relação ao CoGrOO. E depois em relação ao
algoritmo implementado.
Casos encontrados:
Capítulo 4. Experimentos e Resultados
31
• Frase nominal extraída com etiqueta NP é igual ou aproximada à frase
nominal de referência: Tanto para o CoGrOO quanto para o algoritmo proposto,
um acerto é computado.
• Frase nominal extraída com etiqueta NP não é igual nem aproximada à
frase nominal de referência: Tanto para o CoGrOO quanto para o algoritmo
proposto, um erro é computado.
• Frase nominal extraída com etiqueta FNC é igual ou aproximada à frase
nominal de referência: Um acerto é computado para o algoritmo proposto(que é
o que possui a etiqueta FNC). E, é também computado uma melhora do algoritmo
em relação ao CoGrOO, pois o acerto só foi possibilitado devido à regra proposta.
• Frase nominal extraída com etiqueta FNC não é igual nem aproximada à
frase nominal de referência: Um erro é computado para o algoritmo implementado.
É verificado também se o CoGrOO identifica de forma correta. Se confirmado, uma
piora é computada para o algoritmo, pois um erro que não existia foi introduzido.
4.1.1 Resultados
Tabela 5 – Resultados do experimento 1
acertos
erros
melhora(em relação ao CoGrOO)
piora(em relação ao CoGrOO)
CoGrOO
83
77
0
0
Algoritmo Implementado
122
38
50
16
A tabela 5 mostra os resultados obtidos pelo algoritmo proposto e a ferramenta
CoGrOO. Na primeira linha são mostradas as quantidades de acertos, na seguinte a
quantidades de erros. Na terceira linha é mostrado a quantidade de acertos que foram
obtidos devido ao algoritmo proposto, e na quarta linha é mostrado a quantidade de erros
que foram introduzidos devido ao algoritmo.
Foram avaliadas um total de 160 frases nominais, que foram identificadas com o
auxilio do corpus Bosque(BICK, 2009).
A precisão aqui é a razão de frases classificadas como correta e o total de frases
avaliadas.
A precisão é do CoGrOO é de 51,9%.
A precisão do algoritmo implementado em cima do CoGrOO é de 76,3%.
Na sentença A direção do novo semanal será assinada por Ewaldo Ruy, os chunks
identificados pelo algoritmo proposto são [FNC:A direção de o novo semanal ] e [NP:
Capítulo 4. Experimentos e Resultados
32
Prop: Ewaldo Ruy ]. Para o primeiro chunk, o algoritmo implementado identifica corretamente a frase nominal aproximada, enquanto o CoGrOO divide a sentença em [NP:A
direção] [PP: de] [NP: o novo semanal ]. Dessa forma, para o algoritmo implementado foi
computado um acerto e uma melhoria em relação ao CoGrOO, enquanto para o CoGrOO
foi computado um erro.
Saída do algoritmo implementado para a sentença Free shops dos aeroportos
internacionais também vendem o equipamento:
[FNC:Free shops de os aeroportos internacionais ][ADVP:também ][VP:vendem
][NP:o equipamento]
Nesta sentença o algoritmo implementado identifica a frase nominal aproximada
de maneira correta, enquanto o CoGrOO erra.
Para a sentença Havelange aceitaria engolir o italiano Antonio Matarrese como
o seu vice-executivo e, além disso, esqueceria os seus modos autoritários, coordenando a
entidade de maneira colegiada, uma das frases nominais indentificada pelo algoritmo é :
[FNC: Prop: Antonio Matarrese como o seu vice-executivo além disso isso ]
A frase identificada acima com a etiqueta FNC não representa um sintagma nominal,
pois não é possível identificar um núcleo e os tokens desta frase não estão sintaticamente
correlacionados. Já para o CoGrOO, as seguintes frases ou chunks seriam identificados:
[NP: Prop: Antonio Matarrese ] [NP: o seu vice executivo ]
Como neste caso, pelo corpus Bosque e ajuste manual são identificadas duas frases
nominais,Antonio Matarrese e o seu vice executivo. Então seriam computados dois erros
para o algoritmo implementado e dois acertos para o CoGrOO. E ainda, uma piora
seria computada para o algoritmo, pois etiquetou incorretamente o que o CoGrOO o fez
corretamente.
Na sentença Ciano Hopkins era genro de Mussolini, os chunks extraídos pelo
algoritmo proposto são:
[NP: Prop: Ciano ][NP: Prop: Hopkins ][VP:era ][FNC:genro de Prop: Mussolini ]
Neste outro exemplo, a frase nominal, que se refere também a um nome próprio,
reconhecida deveria ser Ciano Hopkins, entretanto o CoGrOO divide em duas frases
nominais. Como o algoritmo proposto não cobre esse tipo erro, então um erro é computado
tanto para o CoGrOO quanto para o algoritmo implementado.
Essa melhora significativa se deve ao fato das frases preposicionais serem bastante
presente em frases nominais em português do Brasil, mas novos erros também foram
introduzidos devido a esta regra, pois muitas vezes a frase preposicional não se referencia
Capítulo 4. Experimentos e Resultados
33
somente à frase nominal que o antecede, e sim a uma estrutura maior, como no caso
Antonio Matarrese como o seu vice-executivo além isso isso, que causa uma frase nominal
sem sentido.
4.2 Algoritmo proposto x Entidades extraídas manualmente
O segundo experimento consistiu em comparar as frases nominais, que contém
entidades, extraídas pelo algoritmo proposto com as entidades extraídas do corpus do
CENTENFolha. Foram utilizadas 100 sentenças extraídas deste corpus. Suas entidades
foram extraídas com o auxilio da ferramenta CoGrOO para identificação de nomes próprios,
e foram ajustadas manualmente em (SOUZA, 2014).
Cada sentença foi avaliada pelo algoritmo e sua saída foi comparada com as entidades
identificadas por (SOUZA, 2014). Seguindo o mesmo critério do autor citado, foram
consideradas para comparação as frases nominais que possuam algum token identificado
como nome próprio através da tag PROP no CoGrOO, que indica nomes próprios.
Em cada sentença são consideradas duas entidades. Se a frase nominal extraída é
igual ou aproximada à entidade ajustada manualmente um acerto é computado para esta
sentença, e é verificado se o uso do algoritmo ajudou a melhorar o resultado em relação ao
CoGrOO (entidade extraída tem etiqueta FNC).
.
4.2.1 Resultados
Tabela 6 – Resultados do experimento 2
Total de setenças
100
Total de entidades avaliadas
200
acertos
119
erros
81
melhora(em relação ao CoGrOO) 50
Como dito anteriormente, foram avaliadas um total de 100 sentenças, cada uma
contendo duas entidades etiquetadas. O resultado pode ser visto na tabela 6.
Do total de 200 entidades avaliadas, 119 foram encontradas de forma completa, isso
é, igual ou aproximada, pelo algoritmo proposto. Sendo que dentre esses 119 acertos, 50
acertos ocorreram devido ao algoritmo implementado em cima do CoGrOO(frase nominal
com a etiqueta FNC).
A precisão aqui é a razão entre a quantidade de frases nominais identificadas como
entidades de forma correta e quantidade total de entidades avaliadas.
Capítulo 4. Experimentos e Resultados
34
A precisão do algoritmo implementado na identificação de entidades é de 59,5%.
[FNC:Dados sobre abuso sexual em bulimicas em o Prop: Brasil Áustria ][NP:
Prop: Estados Unidos ].
Neste exemplo a primeira entidade deveria ser Dados sobre abuso sexual em
bulímicas no Brasil, Áustria e Estados Unidos, mas na extração das frases nomimais
esta foi dividida em duas. Desse modo, esta entidade foi classificada como fora da frase
nominal.
[FNC:a Prop: Receita Federal segundo o coordenador-geral de fiscalização de o
órgão ]
Já neste outro exemplo a entidade Receita Federal encontra-se dentro da frase
nominal, mas esta frase nominal não representa uma entidade. Este é um exemplo também
de erro introduzido pelo algoritmo, se fosse considerado apenas o CoGrOO o chunk seria
[NP: a Prop: Receita Federal].
A entidade identificada manualmente é Harrison Pope da Escola de Medicina de
Harvard, a frase nominal extraída com etiqueta Prop foi [FNC: Prop: Harrison Pope
de a Prop: Escola de Medicina de Prop: Harvard ]. Esta frase nominal representa uma
entidade, sendo da Escola de Medicina e de Harvard frases preposicionais dão um sentido
mais completo à entidade. É um exemplo de melhoria feita pelo algoritmo implementado.
Somente com o CoGrOO o resultado seria:
[NP: Prop: Harrison Pope] [PP: de ] [NP: a Prop: Escola de Medicina ] [PP:
de ] [NP: Prop: Harvard]
Sugere-se para a extração automática de entidades que haja uma análise maior do
papel do nome próprio na frase nominal(para o caso que a entidade está dentro da frase)
e uma análise da vizinhança(para a caso em que a entidade está em mais de uma frase
nominal), pois uma abordagem puramente sintática pode introduzir novos erros ao passo
que soluciona outros.
35
5 Conclusões e Trabalhos Futuros
A proposta deste trabalho foi melhorar a identificação de frases nominais para o
português do Brasil como forma de melhorar a extração de entidades de relacionamentos
semânticos. Tomando como base a ferramenta CoGrOO na versão 4.0.0 que apresentou
bons resultados para a identificação de frases nominais simples. Entretanto, não identifica
frases nominais complexas, como por exemplo a frase A casa de Maria que contém uma
frase preposicional.
Foi implementado um algoritmo para reconhecer as frases nominais de forma mais
completa. Para a melhoria da identificação dessas frases foi sugerido juntar as frases
etiquetadas ao encontrar o padrão NP+PP+NP(CoGrOO), isso é, frases nominais que
tenham frases preposicionais como parte delas. Para avaliar o algoritmo proposto foram
realizados dois experimentos, o primeiro consistiu de uma comparação do algoritmo com
o CoGrOO. E o segundo, teve o objetivo de comparar as frases nominais extraídas pelo
algoritmo implementado com as entidades de relações semânticas extraídas. Para ambos
os experimentos foi utilizado o corpus do CENTENFolha.
No primeiro experimento foi obtida uma melhora significativa na identificação das
frases nominais do algoritmo implementado em relação ao CoGrOO, como foi visto na
seção 4.1.1. Já no segundo experimento a identificação das entidades representas por frases
nominais não obteve resultados muito expressivos.
Como pode ser observado nos resultados, houve uma melhora na identificação de
frases nominais utilizando a regra sugerida para implementar o algoritmo proposto. Mas
erros também foram introduzidos devido à esta regra, o que sugere uma maior atenção na
execução desta. (PERINI, 2000) diz que uma frase nominal muito longa seria considerada
excessivamente longa e entulhada de informação, sendo que neste algoritmo não é feito
qualquer controle sobre o tamanho da frase nem no aspecto sintático, nem no semântico.
Como sugestão para trabalhos futuros, poderia ser feita uma investigação para
descobrir se o fato da frase preposicional do padrão sugerido para identificação das
frases nominais atuar como adjunto adnominal ou complemento nominal pode ajudar à
descobrir se esta frase faz parte ou não da frase nominal anterior, evitando ou diminuindo
a quantidade de erros introduzidos pelo algoritmo proposto.
Uma outra questão que poderia ser investigada/melhorada em relação ao CoGrOO
é o fato dele dividir em duas ou mais frases nominais, quando deveria haver apenas uma,
como no exemplo anterior, em que são identificadas as frases Ciano e Hopkins quando a
frase nominal identificada deveria ser Ciano Hopkins.
Capítulo 5. Conclusões e Trabalhos Futuros
36
Para identificação de relações semânticas, uma abordagem puramente sintática
pode não ser tão eficiente para a extração de entidades, uma possibilidade poderia ser
uma combinação entre abordagem semântica e sintática para extrair estas entidades.
Este trabalho contribui com a avaliação da ferramenta CoGrOO na extração de
entidades de relações semânticas junto à adição de uma regra para se extrair estes sintagmas.
E traz uma melhoria em relação à identificação de frases nominais para o português do
Brasil com esta ferramenta, abrindo possibilidades para outros trabalhos como citados
acima.
37
Referências
APACHE. Apache Maven Project. 2013. Apacheȯrg. Disponível em:
<http://maven.apache.org/>. Acessado em: 15 mar. 2014. Citado na página
39.
ATTARDI, G.; DELL’ORLETTA, F. Chunking and Dependency Parsing. 2008. LREC
Workshop on Partial Parsing:Between Chunking and Deep Parsing. Marrakech,Morocco.
Citado na página 21.
BICK, E. Corpus Bosque. 2009. Linguateca.pt. Disponível em:
<http://www.linguateca.pt/floresta/corpus.html/>. Acessado em: 25 jul. 2014.
Citado 2 vezes nas páginas 30 e 31.
COLEN, W. API CoGrOO 4x. 2012. Ccslimeu̇spḃr. Disponível em:
<http://ccsl.ime.usp.br/redmine/projects/24/wiki/>. Acessado em: 16 mar.
2014. Citado na página 39.
COLEN, W. Aprimorando o Corretor gramatical CoGrOO. Dissertação de Mestrado.
2013. USP, São Paulo. Citado 2 vezes nas páginas 22 e 25.
COLEN, W. CoGrOO Corretor Gramatical para o LibreOffice. 2014. Ccslimeu̇sp.br.
Disponível em: <http://ccsl.ime.usp.br/cogroo/>. Acessado em: 16 mar. 2014. Citado 3
vezes nas páginas 2, 3 e 8.
COWIE, J.; LEHNERT, W. Information extraction. Commun. ACM, ACM, New
York, NY, USA, v. 39, n. 1, p. 80–91, jan. 1996. ISSN 0001-0782. Disponível em:
<http://doi.acm.org/10.1145/234173.234209>. Citado na página 10.
DOMINGUES, M. Abordagem para o desenvolvimento de um etiquetador de alta acurácia
para o português do Brasil. Tese de Doutorado. 2011. Universidade Federal do Pará,
Belém. Citado 3 vezes nas páginas 8, 16 e 18.
FEDERICI, S.; MONTEMAGNI, S. A shallow parsing and text chunking: a view on
underspecification in syntax. 1996. ILC-CNR Pisa, Italy. Citado na página 21.
FELDMAN, R.; SANGER, J. The Text Mining Handbook. Cambridge University Press,
New York: Cambridge University Press, 2007. Citado 2 vezes nas páginas 8 e 10.
GONZALEZ, M.; LIMA, V. L. S. de. Recuperação de Informação e Processamento da
Linguagem Natural. 2003. In: XXIII CONGRESSO DA SOCIEDADE BRASILEIRA
DE COMPUTAÇÃO, 2003, Campinas, 2003. Anais do III Jornada de Mini-Cursos de
Inteligência Artificial, v. 3, p.347-395. Citado 2 vezes nas páginas 15 e 16.
KEPLER, F. Etiquetador morfossintático baseado em cadeias de Markov de tamanho
variável. 2005. USP, São Paulo. Citado 2 vezes nas páginas 17 e 18.
LIBERATO, Y. A estrutura do SN em português. Tese de Doutorado. 1997. UFMG,
Minas Gerais. Citado na página 21.
Referências
38
MIORELLI, S. T. Extração do Sintagma Nominal em Sentenças em Português.
Dissertação de Mestrado. 2001. PUCRS, Porto Alegre. Citado na página 20.
OTHERO, G. de Ávila. A Gramática da Frase Em Português. Porto Alegre, Rio Grande
do Sul: ediPUCRS, 2009. Citado na página 27.
PERINI, M. A. Sintaxe portuguesa - Metodologia e funções. São Paulo: Editora Ática,
1994. Citado na página 20.
PERINI, M. A. Gramática descritiva do português. São Paulo: Editora Ática, 1995.
Citado na página 21.
PERINI, M. A. Para uma Nova Gramática do Português. 10. ed. São Paulo: Editora
Ática, 2000. Citado na página 35.
RILOFF, E.; JONES, R. Learning Dictionaries for Information Extraction by Multi-Level
Bootstrapping. 1999. In: NATIONAL CONFERENCE ON ARTIFICIAL INTELIGENCE,
AAAI, 16., 1999, Orlando. Citado na página 10.
SANTOS, C. N. Aprendizado de Máquina na Identificação de Sintagmas Nominais: O
caso do Português Brasileiro. 2005. Instituto Militar de Engenharia, Rio de Janeiro.
Citado na página 19.
SILVA, W.; MARTINS, L. E. PARADIGMA: Uma Ferramenta de Apoio à Elicitação e
Modelagens de Requisitos Baseada em Processamento de Linguagem Natural. 2008. Unasp,
São Paulo. Citado 2 vezes nas páginas 16 e 18.
SIMõES, A.; ALMEIDA, J. JSPELL. PM - um módulo de análise morfológica para uso
em processamento de linguagem natural. 2002. Universidade do Minho, Portugal. Citado
na página 17.
SOUZA, E. N. P. de. Classificação de Relações Semânticas Abertas Baseada em
Similaridade de Estruturas Gramaticais na Língua Portuguesa. Dissertação de Mestrado.
2014. In: Departamento de Ciência da Computação, Instituto de Matemática, Universidade
Federal da Bahiao. Citado na página 33.
VIEIRA, R.; LOPES, L. Processamento de linguagem natural e o tratamento
computacional de linguagens científicas. In: LINGUAGENS ESPECIALIZADAS EM
CORPORA MODOS DE DIZER E INTERFACES DE PESQUISA. [S.l.]: EDIPUCRS,
2010. p. 183–201. Citado 2 vezes nas páginas 14 e 15.
ZAMBENEDETTI, C. Extração de Informação sobre Bases de Dados Textuais.
Dissertação de Mestrado. 2002. Universidade Federal do Rio Grande do Sul. Programa de
Pós-Graduação em Computação, Porto Alegre. Citado 5 vezes nas páginas 10, 11, 12, 13
e 14.
39
APÊNDICE A – Configuração do ambiente
A ferramenta para atender a proposta foi desenvolvida em Java no sistema operacional Windows 7 com o uso da IDE NetBeans. Para fazer uso do CoGrOO foi utilizado o
Maven(APACHE, 2013), que é uma ferramenta de gerenciamento, construção e implantação
de projetos.
O primeiro passo foi criar um projeto maven no NetBeans e adicionar as dependências do CoGrOO no arquivo pom.xml do projeto criado, como segue na figura
4.
Figura 4 – Dependência Maven para rodar a ferramenta CoGrOO
Ao rodar a ferramenta as dependências necessárias para rodar o CoGrOO serão
baixadas. Na imagem 5 são mostradas as bibliotecas que foram baixadas.
Para realizar os passos seguintes pode ser utilizado o template Example.java que se
encontra disponível em (COLEN, 2012).
Para executar o CoGrOO é necessário criar uma variável do tipo Analyzer, que
será responsável por fazer as funcionalidades delegadas aos módulos, tal como, detecção
de sentenças, etiquetagem morfológica, etc. Antes de fazer a análise é necessário fazer as
configurações necessárias, indica-se a língua e o local, e então diz pro Analyzer que tipo de
análise deseja ser feita. Segue na figura 6 como foi utilizado na ferramenta em discussão.
A variável cogroo utilizada tem a seguinte declaração:
private Analyzer cogroo;
APÊNDICE A. Configuração do ambiente
40
Figura 5 – Biblioteca para rodar a ferramenta CoGrOO
Figura 6 – Configuração para rodar a ferramenta CoGrOO
Na primeira linha da imagem 6 instancia-se o ComponentFactory passando a língua,
pt(português) e o local, BR(Brasil). A partir desse componente, na segunda linha, cria-se
a configuração necessária para a análise através do método createPipe(), que prepara para
fazer a análise em todos os módulos citados anteriormente do CoGrOO, exceto o Detecção
de erros gramaticais. Seria possível também fazer a análise em apenas um módulo, como
por exemplo, no Detector de limites de sentenças. Para isso bastaria substituir cogroo =
factory.createSentenceDetector(); pela terceira linha.
Na figura 7, na primeira linha o Documento é inicializado, na segunda o mesmo
recebe o texto de entrada, que pode ser um corpus. E por fim o documento é analisado
com base nas configurações feitas anteriormente.
Figura 7 – Análise do documento
APÊNDICE A. Configuração do ambiente
41
O resultado desta análise estará no próprio documento. Como pode ser visto na
figura 8 o objeto documento contém o próprio texto e a lista de sentenças obtidas deste
texto. Cada sentença contém a lista de tokens e a lista de chunks(sintagmas) desta. E cada
chunk contém uma lista de tokens que fazem parte dele e uma tag, indicando o tipo de
chunk(nominal, verbal, etc). Sabendo disso, para exibir os chunks, basta obter os chunks
de cada sentença, e exibir seus tokens baseados na etiqueta do chunks.
Figura 8 – Objeto DocumentImpl
Download

Identificação de Frases Nominais em Textos da Língua Portuguesa