A Framework for Integrating Natural Language Tools: Difference between revisions

From HLT@INESC-ID

No edit summary
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
__NOTOC__
{{infobox|name=João Graça
|username=javg
|contact=javg
|phone=+351-213-100-351
|fax=+351-213-145-843
}}
== Abstract ==
Natural Language Processing (NLP) is a subfield of artificial intelligence and linguistics
that studies the problems inherent to the processing and manipulation of natural
language. NLP systems are typically characterized by a pipeline architecture, in which
several NLP tools connected as a chain of filters apply successive transformations to
the data that flows through the system. Usually, each tool is independently developed
by a different researcher whose focus is on his/her own research problem rather than
on the future integration of the tool in a broader system. Hence, when integrating such
tools, one may face problems that lead to information losses, such as: (i) the output of
a tool consists of the data it has acted upon and usually does not contain all the input
data. Sometimes this raises a problem if the discarded information is required by a
tool that appears at a later stage of the pipeline; (ii) each tool has its own input/output
format so conversions between data formats may be needed when a tool consumes
data produced by another one. This conversion may not be possible if the descriptive
power of each format is distinct; (iii) the formats used by different tools do not establish
relations between the input/output data. These relations are useful for aligning
information produced at different levels and to avoid the repetition of common data
across them. These problems make the reuse of NLP tools in distinct NLP systems a
cumbersome task.
This dissertation proposes a solution to these problems, by using a client-server
architecture. The server acts as a blackboard where all tools add/consult the data. In
our solution, a tool adds a layer of linguistic information over a data signal and the
system maintains the cross-relations between the existing layers of data. The data is
kept in the repository under a conceptual model that is independent of the client tools
which allow the representation of a broad range of linguistic information. The tools
interact with the repository through a generic remote API which allows the creation
of new data and the navigation through all the existing data. Moreover, this work
provides libraries implemented in several programming languages that abstract the
connection and communication protocol details between the NLP tools and the server.
These libraries also offer additional levels of functionality that simplify the creation of
NLP tools.
'''Keywords:''' Sistemas de processamento de Língua Natural; Integração de ferramentas de processamento de Língua Natural; Repositório; Anotação Linguística; Alinhamento de dados; Perda de informação
== Resumo ==
O Processamento de Língua Natural (PLN) é um ramo da Inteligência Artificial que
estuda os problemas inerentes ao processamento e manipulação da Língua Natural.
Os sistemas de PLN são normalmente caracterizados por uma arquitectura de canais
e filtros onde um conjunto de ferramentas de PLN aplica um conjunto sucessivo de
transformações aos dados que fluem no sistema. Cada ferramenta é normalmente desenvolvida
por um investigador, cuja preocupação se centra no seu problema e não
na integração da sua ferramenta em futuros sistemas. Quando se integram diferentes
ferramentas para criar um sistema, surgem tipicamente os seguintes problemas, que
podem levar à perda de informação: i) a saída de cada ferramenta consiste nos dados
que ela alterou, e pode não conter todos os dados de entrada. Este facto pode originar
problemas se a informação que foi descartada for necess´aria para ferramentas que
apareçam posteriormente no sistema; ii) cada ferramenta possui o seu próprio formato
de dados, logo é necessário converter os diferentes formatos para permitir que as ferramentas
comuniquem entre si. Adicionalmente a expressividade de cada formato pode
não ser diferente, caso em que a conversão pode não ser possível; iii) as diferentes
ferramentas não estabelecem relações entre os dados de entrada e saída necessários
para alinhar os dados produzidos por diversas ferramentas, e para evitar a replicação
de informação. Estes problemas dificultam a reutilização de ferramentas de PLN em
diferentes sistemas de PLN.
Este trabalho apresenta uma solução para estes problemas que consiste na
utilização de uma arquitectura cliente servidor. O servidor é um repositório usado
pelas ferramentas para adicionar e consultar informação. Cada ferramenta adiciona
um nível de informação sobre um sinal de dados e o sistema mantem relações entre
os diversos níveis. Os dados são guardados no repositório sob um modelo conceptual,
independente das diversas ferramentas, e que permite representar diversos tipos
de informação linguística. As ferramentas interagem com o servidor através de uma
interface remota que permite que estas adicionem dados e naveguem através de todos
os dados existentes. Este trabalho oferece ainda bibliotecas implementadas em
diversas linguagens de programação que abstraem os detalhes referentes ao protocolo
de ligação e comunicação entre o cliente e o servidor. Estas bibliotecas oferecem
funcionalidade acrescida às ferramentas, o que simplifica a sua criação.
'''Palavras Chave:''' Natural Language processing systems; Natural Language processing tools integration; Repository; Linguistic Annotation; Data lineage; Information loss
== Full Text ==
* [http://www.inesc-id.pt/pt/indicadores/Ficheiros/1488.pdf A Framework for Integrating Natural Language Tools]
[[category:Research]]
[[category:Research]]
[[category:Theses]]
[[category:Theses]]
[[category:Masters Theses]]
[[category:Masters Theses]]

Latest revision as of 00:56, 6 July 2006

João Graça
João Graça

Abstract

Natural Language Processing (NLP) is a subfield of artificial intelligence and linguistics that studies the problems inherent to the processing and manipulation of natural language. NLP systems are typically characterized by a pipeline architecture, in which several NLP tools connected as a chain of filters apply successive transformations to the data that flows through the system. Usually, each tool is independently developed by a different researcher whose focus is on his/her own research problem rather than on the future integration of the tool in a broader system. Hence, when integrating such tools, one may face problems that lead to information losses, such as: (i) the output of a tool consists of the data it has acted upon and usually does not contain all the input data. Sometimes this raises a problem if the discarded information is required by a tool that appears at a later stage of the pipeline; (ii) each tool has its own input/output format so conversions between data formats may be needed when a tool consumes data produced by another one. This conversion may not be possible if the descriptive power of each format is distinct; (iii) the formats used by different tools do not establish relations between the input/output data. These relations are useful for aligning information produced at different levels and to avoid the repetition of common data across them. These problems make the reuse of NLP tools in distinct NLP systems a cumbersome task.

This dissertation proposes a solution to these problems, by using a client-server architecture. The server acts as a blackboard where all tools add/consult the data. In our solution, a tool adds a layer of linguistic information over a data signal and the system maintains the cross-relations between the existing layers of data. The data is kept in the repository under a conceptual model that is independent of the client tools which allow the representation of a broad range of linguistic information. The tools interact with the repository through a generic remote API which allows the creation of new data and the navigation through all the existing data. Moreover, this work provides libraries implemented in several programming languages that abstract the connection and communication protocol details between the NLP tools and the server. These libraries also offer additional levels of functionality that simplify the creation of NLP tools.

Keywords: Sistemas de processamento de Língua Natural; Integração de ferramentas de processamento de Língua Natural; Repositório; Anotação Linguística; Alinhamento de dados; Perda de informação

Resumo

O Processamento de Língua Natural (PLN) é um ramo da Inteligência Artificial que estuda os problemas inerentes ao processamento e manipulação da Língua Natural. Os sistemas de PLN são normalmente caracterizados por uma arquitectura de canais e filtros onde um conjunto de ferramentas de PLN aplica um conjunto sucessivo de transformações aos dados que fluem no sistema. Cada ferramenta é normalmente desenvolvida por um investigador, cuja preocupação se centra no seu problema e não na integração da sua ferramenta em futuros sistemas. Quando se integram diferentes ferramentas para criar um sistema, surgem tipicamente os seguintes problemas, que podem levar à perda de informação: i) a saída de cada ferramenta consiste nos dados que ela alterou, e pode não conter todos os dados de entrada. Este facto pode originar problemas se a informação que foi descartada for necess´aria para ferramentas que apareçam posteriormente no sistema; ii) cada ferramenta possui o seu próprio formato de dados, logo é necessário converter os diferentes formatos para permitir que as ferramentas comuniquem entre si. Adicionalmente a expressividade de cada formato pode não ser diferente, caso em que a conversão pode não ser possível; iii) as diferentes ferramentas não estabelecem relações entre os dados de entrada e saída necessários para alinhar os dados produzidos por diversas ferramentas, e para evitar a replicação de informação. Estes problemas dificultam a reutilização de ferramentas de PLN em diferentes sistemas de PLN.

Este trabalho apresenta uma solução para estes problemas que consiste na utilização de uma arquitectura cliente servidor. O servidor é um repositório usado pelas ferramentas para adicionar e consultar informação. Cada ferramenta adiciona um nível de informação sobre um sinal de dados e o sistema mantem relações entre os diversos níveis. Os dados são guardados no repositório sob um modelo conceptual, independente das diversas ferramentas, e que permite representar diversos tipos de informação linguística. As ferramentas interagem com o servidor através de uma interface remota que permite que estas adicionem dados e naveguem através de todos os dados existentes. Este trabalho oferece ainda bibliotecas implementadas em diversas linguagens de programação que abstraem os detalhes referentes ao protocolo de ligação e comunicação entre o cliente e o servidor. Estas bibliotecas oferecem funcionalidade acrescida às ferramentas, o que simplifica a sua criação.

Palavras Chave: Natural Language processing systems; Natural Language processing tools integration; Repository; Linguistic Annotation; Data lineage; Information loss

Full Text