El
procesamiento del lenguaje natural como problema computacional*
Natural
language processing as a computational problem
Sergio Balari
__________________________
* Este artículo es una versión resumida
del texto correspondiente al curso «Natural Language Processing as a
Computational Problem», impartido en el Curso de Tecnologías de la Lengua en la
Universidad Internacional Menéndez Pelayo (UIMP) de Barcelona. La versión
completa, en inglés, está disponible como «Report de recerca del Grup de
Gramàtica Teòrica de la UAB Nº GGT-00-11» en http://ggt.uab.es/.
Quisiera agradecer a los organizadores,
Toni Badia y Marsal Gavaldà, que me dieran la oportunidad de participar en el
curso. Raquel Fernández leyó una primera versión de este artículo e hizo
algunas sugerencias que me han sido muy útiles para mejorar la versión final.
Cualquier error es, pues, de mi única y exclusiva responsabilidad. El trabajo
que aquí se expone ha sido financiado parcialmente por los siguientes proyectos
de investigación: PB96-1199-C04-01 del Ministerio de Educación y Ciencia, así
como 1999SGR/00113 y CREL 9 de la Generalitat de Catalunya.
En la actualidad se han conseguido logros
importantes en el campo de las tecnologías de la lengua. El autor señala que
pese a los éxitos alcanzados, se debe de mantener la necesidad de un enfoque
con objetivos a largo plazo, el denominado enfoque computacional. El
artículo nos alerta sobre el peligro de concentrar excesivos esfuerzos en
enfoques aplicados a corto plazo que no hacen sino ocultar el estado real de
nuestros conocimientos sobre el lenguaje.
Currently,
new achievements are being reached in the area of language technologies. The
author mentions that despite the successes attained to this date, it is
necessary to move toward a long-run goal known as the computer approach.
The article warns us about the risks involved in devoting too many resources to
short-term projects that simply hide the current real status of our knowledge
on language.
En los últimos diez o quince años se ha vuelto a despertar
el interés por el desarrollo de las tecnologías del lenguaje, que muchos de los
nuevos profetas no han dudado en calificar como los cimientos de la sociedad de
la información del futuro (véase, por ejemplo, Dertouzos 1997).
A medida que las interacciones entre los humanos y las
máquinas se hacen más frecuentes, cualquier pequeño paso hacia adelante en la
tarea de hacerlas más fluidas será también un paso adelante en la construcción
de ese nuevo mundo de la sociedad de la información. Evidentemente, la mejor
manera de ganar fluidez y eficacia en estas interacciones es conseguir que
éstas sean lo más naturales posibles, y ¿qué sistema de comunicación resulta
más natural para los seres humanos que el lenguaje? El argumento es de lo más
razonable. Si olvidamos por el momento toda una serie de cuestiones
directamente relacionadas con la actividad comunicativa de los humanos así como
el papel que juegan ciertos elementos extralingüísticos en la regulación de
estas conductas,1 no cabe duda de que la única manera de acercarnos,
aunque sea un poco, al mundo que nos describen algunos autores de ciencia
ficción (piense el lector en el HAL 9000 de Arthur Clarke o en el Pez
de Babel de Douglas Adams, por ejemplo) es ser capaces de comunicarnos con
entidades artificiales utilizando medios naturales.
En la medida en que podemos considerar que ésta es una
empresa común, en la que participan comunidades científicas diversas, con
visiones y perspectivas diferentes, creo que podemos identificar dos maneras
(es de esperar que complementarias) de enfocar el problema de la comunicación
entre máquinas y humanos. Por un lado, tenemos un enfoque basado en los métodos
de la ingeniería y orientado principalmente al desarrollo de aplicaciones, cuyo
principal objetivo es desarrollar sistemas que funcionen y que sean capaces de
ofrecer un servicio eficiente, aunque sea limitado, a los usuarios. Este
enfoque suele caracterizarse por adoptar una estrategia basada en el principio
del «divide y vencerás», centrando su atención en problemas muy concretos, con
una aplicación industrial o comercial inmediata, y buscando estrategias que resulten
eficaces para solucionarlos. Un buen ejemplo de ello es el proyecto Verbmobil, en el que han
participado una serie de instituciones públicas y privadas alemanas, y que,
después de ocho años, concluyó con éxito su fase II a finales de julio del
2000. Este sistema es un dispositivo de traducción automática de voz a voz,
diseñado para servir de ayuda a dos individuos que interactúan en lenguas
distintas con el objetivo de fijar la fecha de una reunión.2 Resulta
más que evidente, sin embargo, que Verbmobil,
con todo su éxito, no es más que un grano de arena en el largo camino que
debería llevarnos algún día al Pez de Babel. El hecho es que este
sistema no es un sistema de traducción capaz de tratar con cualquier situación comunicativa
(algo que nadie todavía ha sido capaz de hacer y que difícilmente veremos en un
futuro cercano), sino un sistema que funciona sólo dentro de un universo muy
reducido que no es más que una mínima porción de las muchas (¿infinitas?)
situaciones comunicativas en que puede participar un ser humano. Que Verbmobil funcione es, sin duda, una
buena noticia, pero es importante no olvidar que funciona precisamente porque
fue diseñado para funcionar dentro del reducido universo en que funciona. Esto
es importante porque, como señaló el Dr. M. García-Carpintero durante la mesa
redonda que clausuró el curso de la UIMP, el deslumbrante éxito alcanzado por
algunos sistemas desarrollados desde este enfoque puede, con facilidad, no
dejarnos ver cuál es el estado actual de nuestros conocimientos sobre cómo
funciona realmente el lenguaje, lo cual puede, a su vez, crearnos muchas falsas
expectativas sobre el futuro inmediato de las tecnologías de la lengua. No
sería la primera vez: en 1964, una comisión de expertos reunida por el Gobierno
de Estados Unidos para evaluar el estado de las investigaciones en traducción
automática redactó lo que hoy se conoce como el Informe ALPAC, el cual
tuvo unas consecuencias devastadoras para el campo, ya que, automáticamente, se
suspendió la financiación de todo proyecto de este tipo. No fue hasta bien
entrados los años ochenta que la investigación en el ámbito de las tecnologías
del lenguaje volvió a recuperar el dinamismo y la fuerza que tuvo a principios
de los sesenta.3
¿Podemos hacer algo más, aparte de tomarnos muy en serio la
advertencia del Dr. García-Carpintero? En mi opinión, por muy sorprendentes que
nos parezcan los logros del enfoque aplicado, es imprescindible mantener vivo
un enfoque con unos objetivos a más largo plazo: lo que aquí denominaré el enfoque
computacional. También podría haber utilizado el término ciencia
cognitiva, ya que este enfoque se basa en la premisa de que una posible
solución para los problemas a los que me refería anteriormente sería la de ser
capaces de reproducir «lo mejor» con medios artificiales, y, por ahora, que
sepamos, «lo mejor» es la colección de capacidades cognitivas que intervienen
en la conducta comunicativa de los seres humanos.4 Con ello no
quiero decir que el objetivo principal de las ciencias cognitivas sea el de
simular la conducta humana de forma artificial (aunque no hay que desdeñar las
enormes posibilidades que ofrecen los ordenadores en este tipo de
investigaciones (véase, por ejemplo, Langton et al. [eds.] 1992), ya que
el mero hecho de llegar a comprender los misterios de la cognición humana es,
en sí mismo, un objetivo enormemente ambicioso. Quiero hacer hincapié,
simplemente, en el hecho de que, a largo plazo, obtendremos mayores beneficios
si llevamos adelante la investigación más teórica que nos propone la ciencia
cognitiva.
En lo que queda de artículo, centraré mi atención en el
lenguaje natural y expondré de forma muy breve y esquemática cómo podemos
estudiarlo desde esta perspectiva. A medida que avance, iré desarrollando lo
que, a mi modo de ver, son los dos ejes principales a lo largo de los cuales
debe desarrollarse todo enfoque computacional del lenguaje: la teoría de las
representaciones y la teoría de los procesos. Desgraciadamente, las
restricciones de espacio me impedirán tratar con detalle los elementos básicos
de cada teoría, así que me limitaré a esbozar con toda la precisión que pueda
los objetivos de cada una.
Antes de continuar, sin embargo, una advertencia al lector:
la ciencia cognitiva es, hoy por hoy, una disciplina muy heterogénea, donde
convergen (y a menudo divergen) los intereses y los métodos de la psicología,
las ciencias de la computación, la lingüística, la filosofía y la neurociencia
(por citar las disciplinas más directamente involucradas en el estudio de la
cognición humana). No debe sorprendernos, por tanto, que en ella convivan
muchas y diversas posiciones teóricas, a menudo contradictorias. Es posible,
por tanto, que más de una persona esté en total desacuerdo con muchas de las
cosas que yo diga aquí, lo cual es, por otra parte, un indicio de buena salud
en cualquier disciplina científica.
Como se deduce del título de este artículo, mi objetivo es
estudiar el problema del procesamiento del lenguaje natural (PLN) desde
una perspectiva computacional. Dicho de otro modo, e incorporando alguna idea
expuesta en la introducción, sea cual sea nuestro objetivo último, la mejor
manera de abordar el problema del PLN es desde una perspectiva computacional y
con métodos computacionales. Pero, ¿qué comporta la adopción de la perspectiva
computacional? La respuesta a esta pregunta es mucho menos evidente de lo que
podría parecer al principio, ya que si pensamos que ésta debe incluir alguna
referencia a los ordenadores, entonces estaremos equivocados. Es cierto que los
ordenadores son dispositivos especialmente diseñados para llevar a cabo tareas
que podríamos calificar de computacionales, pero no son los únicos: los
cerebros también son dispositivos computacionales, y también lo son los ábacos
e, incluso, nuestra mano, armada de lápiz y papel, es un dispositivo
computacional. Una interesante propiedad de los procesos computacionales es que
podemos analizarlos desde una perspectiva que es totalmente independiente del
mecanismo que debe implementarlos. Con ello no quiero decir que la
implementación sea irrelevante, que no lo es, sino que podemos aprender mucho
de un problema computacional sin tener en cuenta los detalles relacionados con
la implementación. Esta es, quizás, una de las enseñanzas más importantes del
legado intelectual del matemático británico Alan Turing, que convendrá tener
presente en todo momento.
Volvamos ahora a nuestra pregunta: ¿qué comporta la adopción
de la perspectiva computacional? Bueno, aquí voy a necesitar que alguien me
eche una mano, así que citaré unas palabras de uno de los más célebres
precursores de las ciencias cognitivas, el psicólogo norteamericano, ya
fallecido, David Marr (1982, pp. 24-25):5
«[T]he
different levels at which an information processing
device must be understood [are:] At one extreme, the top level, is the abstract
computational theory of the device, in which the performance of the device is
characterized as a mapping from one
kind of information to another, the abstract properties of this mapping are
defined precisely, and its appropriateness and adequacy for the task at hand
are demonstrated. In the center is the choice of representation for the input and output and the algorithm to be used to transform one
into the other. And at the other extreme are the details of how the algorithm
and representation are realized physically—the detailed computer architecture,
so to speak.»6
He destacado algunos términos en esta cita, ya que nos
servirán para definir el hilo conductor que vamos a seguir a partir de ahora.
El objetivo principal de David Marr era elaborar un modelo de la visión humana,
pero, y aquí es donde reside la belleza de las ideas de Turing, esto es
irrelevante, porque una de las ventajas del enfoque computacional es que nos
ofrece un marco general desde el cual podemos estudiar fenómenos en apariencia
muy diferentes. Ya tenemos, por tanto, unas cuantas cosas importantes que decir
acerca del PLN, concretamente que:
• Puede definirse como una tarea de procesamiento de la información
que caracterizaremos como una proyección
desde una representación de entrada
en una representación de salida, de tal modo que dicha proyección pueda
describirse mediante un algoritmo
determinado.
Mantengo las negritas porque, en lo que queda de artículo,
me ocuparé de analizar estos tres elementos con cierto detalle, poniendo de
relieve las relaciones que existen entre ellos. Quisiera empezar con una
analogía que nos será de utilidad más adelante. Considere el lector una
actividad artística como, por ejemplo, la escultura. En un estadio preliminar
de la producción de una pieza, el artista diseña su proyecto como una
proyección abstracta entre un determinado bloque de materia (aún por
determinar) y una forma que sólo existe en su mente o en forma de bocetos sobre
papel. En un segundo estadio, el escultor debe decidir qué tipo de material va
a utilizar. En esta decisión interviene toda una serie de consideraciones que
no nos incumben en este momento (de tipo estético o relacionada con las
preferencias y las capacidades del autor), pero, independientemente de si la
escultura se va a realizar en madera, piedra o metal, esta decisión repercute
definitivamente en el proceso de producción, ya que cada material debe tratarse
con las técnicas apropiadas (es decir, la piedra y la madera se puede tallar,
pero no fundir, por ejemplo); y viceversa, si nuestro escultor desea utilizar
una técnica específica, entonces no podrá utilizar cualquier material.
La idea que me interesa derivar de este ejemplo (y del siguiente
que discutiré) es que, en muchas ocasiones, la naturaleza de las entidades que
participan en un proceso determina el modo en que el proceso se lleva a cabo, y
viceversa, si queremos hacer algo de una manera determinada, impondremos una
restricción inevitable sobre el tipo de entidades que podremos manipular.
Traducida a términos computacionales, esta analogía puede reformularse como
sigue: la elección de un formato o modo de representación, condicionará la
elección del algoritmo, y viceversa. Veamos otro ejemplo, más próximo al caso
que nos ocupa.
Esta es una historia de números. Hace ya mucho tiempo que
los humanos conocen y utilizan los números, que saben de sus propiedades y
aplicaciones. Para usarlos, sin embargo, hemos tenido que buscar una manera de
representarlos. Por lo que yo sé, nadie ha visto nunca un número, podrían ser
peludos y azules o lisos y rojos, ¡qué más da! Lo importante es que, para
usarlos, tenemos que representarlos; mientras el modo de representación que
elijamos conserve las propiedades relevantes de los números, que nos permiten
hacer cosas tales como sumar o multiplicar, no hay problema.
En Occidente, los griegos y los romanos fueron los primeros
que descubrieron muchas de las propiedades y aplicaciones de los números. Los
griegos, por ejemplo, descubrieron los números irracionales, como p y Ö2, que, para desesperación de los pitagóricos, son números
que no se pueden expresar como la razón de dos números enteros, como ocurre con
1/2. Resulta sorprendente que hicieran tales descubrimientos (lo cual dice
mucho en favor de los matemáticos e ingenieros griegos y romanos), ya que ambos
utilizaban un sistema bastante curioso para representar los números. Tomemos
como ejemplo el sistema romano que todos conocemos (el griego se fundamentaba
en los mismos principios).
El sistema se basa en una serie de siete símbolos que
representan unos números concretos, más una serie de reglas para combinar esos
símbolos a fin de poder construir símbolos más complejos (tabla 1).
En cuanto a las reglas de combinación, todos sabemos más o
menos cómo funcionan: a) un símbolo a la derecha de otro tiene función
aditiva, b) un símbolo a la izquierda de otro tiene función sustractiva.
Con este modo de representación, la suma y la resta son operaciones
relativamente fáciles de llevar a cabo, ya que, de hecho, el sistema se basa
precisamente en las nociones de suma y resta. (Una manera de pensar en los
numerales romanos complejos es como un modo de escribir sumas, con signos de suma
y resta implícitos que conectan los diversos símbolos.) Pero, ¿qué hay de otras
operaciones más complejas como la multiplicación o la división? La
multiplicación es una auténtica pesadilla; la división es, simplemente,
imposible. Para que el lector pueda apreciar la verdadera dimensión del
problema, veamos cómo funciona el algoritmo de la multiplicación calculando, en
romanos, 32 x 46, en la tabla 2.
Ahora ya sabe el lector por qué los números romanos sólo se usan
para indicar la fecha de copyright de las películas de Hollywood. No
sirven para otros propósitos más prácticos. Si pensamos ahora en el sistema que
utilizamos hoy en día, el sistema árabigo, veremos que, a partir de la misma
idea de utilizar símbolos para representar los números, este sistema emplea un
conjunto de principios para combinarlos radicalmente distinto, además de
reconocer la existencia de una entidad bastante útil, el cero. Es un sistema
posicional basado en la suma y la multiplicación, de modo que cada cifra, según
sea su posición, nos indica la cantidad de unidades, decenas, centenas, etc.
(por ejemplo, n x 1, n x 10, n x 100, etc.). Con este
sistema de representación, es muy fácil efectuar cualquiera de las cuatro
operaciones elementales; nos basta con elegir nuestro algoritmo favorito para
verificar que, efectivamente, 32 x 46 es igual a 1472.
De vuelta al asunto que nos ocupa, vemos que nuestras
historias de escultores y de números tienen moraleja: cuando caracterizamos un
proceso computacional, debemos ser muy cuidadosos en el momento de escoger un
formato para las representaciones de entrada y de salida, y en el momento de
seleccionar un algoritmo capaz de describir el proceso de transformar las unas
en las otras. No vale cualquier cosa, ya que no es cierto que la forma de
nuestras representaciones no tenga ninguna repercusión sobre la manera cómo van
a ser procesadas. En el momento de elegir un formato apropiado para nuestras
representaciones debemos procurar no ser víctimas de la TNR («trampa de los
números romanos), y la única manera de evitarlo es conocer muy bien cuáles son
las propiedades formales del lenguaje de representación que vamos a utilizar.
Es la única manera de determinar qué algoritmo será el más apropiado e,
incluso, de saber si hay un algoritmo. Resumamos, pues, los tres elementos
básicos de nuestra teoría computacional:
1. Definición de una proyección desde una representación de
entrada en una de salida.
2. Una teoría de las representaciones de entrada y de
salida, que modelaremos utilizando un lenguaje de representación adecuado.
3. Una teoría de cómo se efectúa la proyección, que tenga en
cuenta la naturaleza de las representaciones que participan en el proceso.
¡Estupendo! Hecho esto, ya podemos reformular el punto 1 en
forma de pregunta.
¿Qué tipo de proyección
existe en una tarea de PLN?
Y la respuesta es... bueno, pues, depende. Depende porque el
problema del PLN contiene, de hecho, dos subproblemas: el problema del análisis
y el problema de la generación o, por ponerlo en términos más
psicolingüísticos, el problema de la comprensión y el problema de la producción.
Así pues, en función de en qué sentido nos movamos, tendremos una proyección
desde un tipo u otro de representación de entrada en un tipo u otro de representación
de salida.
Desde el punto de vista del proceso de comprensión/análisis,
la entrada será una señal acústica o una cadena de caracteres, mientras que la
salida podemos asumir que será una descripción estructural completa
(sintáctica) a partir de la cual se puede derivar una interpretación semántica.
De hecho, en el caso de la señal acústica, resulta práctico asumir que ésta se
traduce, primero, a una representación fonética/fonológica normalizada que
sirve de entrada al proceso (figura 1).
En el caso del proceso de producción/generación, la entrada
debe ser una representación semántica de algún tipo (una forma lógica, por
ejemplo), mientras que la salida será una descripción estructural completa a
partir de la cual se puede derivar una interpretación fonética. En la figura 2, esquema adaptado de Jackendoff (1997), se
resume lo dicho hasta ahora.
Se trata de un modelo muy general, no sólo un modelo
psicolingüístico; sustituya el lector las etiquetas por otras menos
comprometidas y obtendrá un modelo general de producción/comprensión del habla.
Evidentemente, esto no es más que el principio de una teoría que quiera
explicar esas capacidades en los humanos, ya que aún está todo por hacer,
especialmente todo lo referente a la caja que ocupa el centro del esquema. Aquí
es donde empieza el misterio y donde cobra particular importancia el trabajo de
lingüistas y psicólogos (contando, por supuesto, con la ayuda de todos los
demás). Necesitamos una teoría sobre cómo son esas representaciones que entran
y salen de la caja y una teoría sobre cómo se efectúan las transformaciones
necesarias para obtener unas representaciones a partir de otras. La lingüística
nos hablará entonces de gramáticas, en tanto que sistemas donde se almacena la
información sobre cómo debe ser la representación de una frase bien formada, y
la psicolingüística nos hablará de procesadores, en tanto que dispositivos
capaces de utilizar ese conocimiento gramatical para construir representaciones
de acuerdo con un algoritmo específico.
En otras palabras, vista independientemente del algoritmo,
la gramática no nos dice nada más que cómo debe ser la representación adecuada de
una frase. Esto es precisamente lo que hacen los lingüistas: desarrollan
teorías sobre cómo podemos representar la estructura de las expresiones de una
lengua natural a fin de capturar sus propiedades (a menudo bastante complejas).
Pero vista desde la perspectiva del PLN, la gramática nos dice algo más, ya que
define el conjunto de todas las representaciones de salida posibles, es decir,
define los objetivos del algoritmo. Este conjunto es infinito, pero la
gramática puede definirlo de un modo conciso, ya que el número de reglas de una
gramática es, en general, pequeño en relación con el conjunto infinito que con
ellas se puede generar. Esta, es una propiedad fundamental de las gramáticas,
ya que, de este modo, podemos explicar cómo es posible que los humanos tengan
el potencial de producir un número infinito de frases --de ser creativos, en
suma-- utilizando unos recursos que, a la fuerza, no pueden ser más que
finitos: los recursos que nos proporcionan la gramática y el algoritmo que la
utiliza.
Aquí es, también, donde acaba el artículo, en el punto donde
empieza el esfuerzo conjunto de muchos investigadores que nos llevará algún
día, estoy convencido de ello, a descifrar el misterio del lenguaje.
1 El asunto es muy
complejo y el espacio muy reducido para abordar estas cuestiones con detalle,
pero, piense el lector simplemente en el hecho de que en las interacciones cara
a cara, la conducta comunicativa de los humanos va mucho más allá del mero acto
de hablar, ya que los hablantes utilizan gran cantidad de pistas visuales y
gestos que resultan imprescindibles en el momento de hacer más fluida la
interacción (no es lo mismo hablar con alguien cara a cara que hacerlo por
teléfono). Este pequeño ejemplo basta para hacernos una idea de la complejidad que
entraña modelar la conducta comunicativa de los humanos. A este respecto, el
trabajo de Hauser (1996) es una buena fuente de información y de referencias
sobre este asunto.
2 Para más información
sobre Verbmobil, se puede
consultar su sitio web en http://verbmobil.dfki.de/ así como los trabajos
recopilados en un volumen monográfico de reciente publicación: Wahlster, ed.
(2000).
3 Para una breve revisión histórica, el lector puede acudir a
Wilks & Sparck Jones (1983). Este artículo es interesante, ya que, pese
haber sido redactado en 1983, muchas de las cosas que dice siguen siendo
válidas en el año 2000. Otro artículo ilustrativo es el de Dennett (1998,
escrito en 1985) y el postcriptum que lo acompaña.
4 Con toda probabilidad,
la mayoría de las ciencias humanas y sociales se beneficiarían enormemente si
abrieran nuevos frentes en el ámbito de la cognición humana. Algunas, como la
arqueología, parecen haberse tomado en serio el asunto (véanse, por ejemplo,
los artículos recopilados en Renfrew & Zubrow [eds.], 1994), otras, como la
economía, siguen sin darse por aludidas (con honrosas excepciones, véase Frank,
1988).
5 La definición que, en
su momento, propuso Marr para los tres niveles es útil para plantear el
problema, lo cual no significa que no sea discutible en alguno de sus aspectos
y que sea posible elaborar definiciones más precisas y más ajustadas a las
necesidades del investigador; véase Jackendoff (1987, cap. 4) y Peacocke
(1986).
6 «[Los] diferentes
niveles a que se puede estudiar un mecanismo de procesamiento de la información
[son:] En un extremo, el superior, está la teoría computacional abstracta del
mecanismo, donde se caracterizará la tarea que debe llevar a cabo el mecanismo
como una proyección desde un tipo de información en otra, se definirán con
precisión las propiedades abstractas de esta proyección y se demostrará su
adecuación para efectuar la tarea en cuestión. En el centro tenemos la elección
de una representación para la información de entrada y de salida, así como un
algoritmo para transformar la una en la otra. En el otro extremo, tenemos todo
aquello que tiene que ver con la realización física de la representación y el
algoritmo, lo que, en otras palabras, denominaríamos arquitectura del
ordenador.» [La traducción es mía, SBR].
Bibliografía / libros consultados
Dennett, D.C.:
«Can machines think?». En: Brainchildren.
Essays on designing minds, Cambridge, Massachusetts, The MIT Press,
1998/1985: 3-29.
Dertouzos, M.: What will be, Nueva York, HarperCollins,
1997.
Frank, R.H.: Passions within reason. The strategic role
of the emotions, Nueva York, W.W. Norton, 1988.
Hauser, M.D.:
1996. The evolution of communication,
Cambridge, Massachusetts, The MIT Press, 1996.
Jackendoff, R.: Consciousness and the computational mind,
Cambridge, Massachusetts, The MIT Press, 1987.
Jackendoff, R.: The architecture of the language faculty,
Cambridge, Massachusetts, The MIT Press, 1997.
Langton, C.G.;
Taylor, C.; Farmer J.D.; Rasmussen, S., eds.: Artificial Life II, Reading, Massachusetts, Addison-Wesley, 1992.
Marr, D.: Vision, Nueva York, Freeman, 1982.
Peacocke, C.:
«Explanation in computational psychology: Language, perception and Level 1.5», Mind & Language 1986; 1: 101-123.
Renfrew, C.;
Zubrow, E.B.W., eds.: The ancient mind.
Elements of cognitive archaeology, Cambridge, Cambridge University Press,
1994.
Wahlster, W.,
ed.: Verbmobil: Foundations of
speech-to-speech translation, Berlín, Springer, 2000.
Wilks, Y.A.,
Sparck Jones, K.: «Introduction: A little light history». En: Sparck Jones, K.;
Wilks, Y.A. (eds.): Automatic Natural
Language Parsing. Ellis Hornwood, Chichester, 1983: 11-21.
Sergio Balari Ravera
Profesor titular de Lingüística general
en la Universitat Autònoma de Barcelona, donde se doctoró en filosofía y letras
en 1993, después de pasar diversos períodos en la City University of New York y
la Stanford University en Estados Unidos, así como en la Universidad del Sarre
en Alemania. Entre 1987 y 1991 fue miembro activo del equipo de investigación eurotra-España, en el marco del
proyecto de traducción automática eurotra
financiado por la Unión Europea. Ha publicado diversos artículos en revistas y
libros sobre temas diversos relacionados con la teoría gramatical y la
lingüística computacional.