Natural Language Pro­ce­s­si­ng hace re­fe­re­n­cia al pro­ce­sa­mie­n­to del lenguaje natural por ordenador. En él se incluye la tra­du­c­ción de un idioma a otro, pero también del re­co­no­ci­mie­n­to de un lenguaje hablado o de las re­s­pue­s­tas au­to­má­ti­cas a de­te­r­mi­na­das preguntas. En este tipo de tareas los or­de­na­do­res tienen ciertos problemas de co­m­pre­n­sión, ya que se centran, sobre todo, en el si­g­ni­fi­ca­do de cada una de las palabras por separado. De este modo, a los programas de tra­du­c­ción les resulta co­m­pli­ca­do captar di­fe­re­n­cias entre los términos oca­sio­na­das por factores como la am­bi­güe­dad y la polisemia, entre otros.

Por medio de la di­s­ci­pli­na del Natural Language Pro­ce­s­si­ng, los or­de­na­do­res aprenden a entender el si­g­ni­fi­ca­do de aquellas secciones de texto que guardan relación entre sí, tales como modismos o frases, y a usarlos de­bi­da­me­n­te. Esto no solo resulta de utilidad en el caso de las tra­du­c­cio­nes o de los chats co­n­ve­r­sa­cio­na­les, sino también a la hora de ejecutar comandos de voz o al generar el lenguaje hablado para poderse comunicar, por ejemplo, con personas in­vi­de­n­tes. Asimismo, a la hora de resumir textos largos o extraer de­te­r­mi­na­da in­fo­r­ma­ción de grandes ca­n­ti­da­des de texto, los or­de­na­do­res necesitan co­m­pre­n­der las re­la­cio­nes li­n­güí­s­ti­cas exi­s­te­n­tes.

¿Cómo funciona el Natural Language Pro­ce­s­si­ng?

In­de­pe­n­die­n­te­me­n­te de si se trata de una tra­du­c­ción au­to­má­ti­ca o de la in­ter­ac­ción con un bot co­n­ve­r­sa­cio­nal, el aspecto común a todos los métodos de pro­ce­sa­mie­n­to del lenguaje natural es que tienen en cuenta las je­ra­r­quías que definen las re­la­cio­nes entre las palabras. Esto resulta algo co­m­pli­ca­do debido a que muchas palabras son po­li­sé­mi­cas, es decir, que tienen dos o más si­g­ni­fi­ca­dos, como por ejemplo capital (ciudad más im­po­r­ta­n­te de un país o pa­tri­mo­nio), cura (sacerdote o tra­ta­mie­n­to médico) o sierra (he­rra­mie­n­ta o formación rocosa).  Este tipo de di­fi­cu­l­ta­des es el re­s­po­n­sa­ble de que el pro­ce­sa­mie­n­to natural del lenguaje sea uno de los campos más complejos de la in­fo­r­má­ti­ca. A menudo, la lengua está cargada de dobles sentidos y su co­m­pre­n­sión requiere amplios co­no­ci­mie­n­tos sobre el contexto en el que se usa. Muchos usuarios pueden conocer por cuenta propia la co­mu­ni­ca­ción desigual que tiene lugar con los chats co­n­ve­r­sa­cio­na­les, que se usan cada vez más como su­s­ti­tu­tos de los chats en línea en el ámbito de la atención al cliente. A pesar de todo, los or­de­na­do­res entienden el lenguaje humano cada vez mejor. Para en­se­ñar­les la lengua, los li­n­güi­s­tas co­mpu­tacio­na­les recurren a las di­fe­re­n­tes áreas de la li­n­güí­s­ti­ca:

  • La mo­r­fo­lo­gía se ocupa de la co­m­po­si­ción de las palabras y de sus re­la­cio­nes con otras palabras.
  • La sintaxis define el modo en que las palabras se unen para formar frases.
  • La semántica hace re­fe­re­n­cia tanto al si­g­ni­fi­ca­do de las palabras como al de los grupos de palabras.
  • La pra­g­má­ti­ca se hace eco del contexto en el que se llevan a cabo las lo­cu­cio­nes li­n­güí­s­ti­cas.
  • La fonología se ocupa de la es­tru­c­tu­ra fonética del lenguaje hablado y es im­po­r­ta­n­te para el re­co­no­ci­mie­n­to de la voz.

Eti­que­ta­do gra­ma­ti­cal o Part-Of-Speech Tagging (POST)

El primer paso en el Natural Language Pro­ce­s­si­ng está re­la­cio­na­do con la mo­r­fo­lo­gía y consiste en de­te­r­mi­nar la función de cada palabra por separado. A la mayoría de la gente, una forma si­m­pli­fi­ca­da de este proceso le resulta familiar desde el colegio, donde se aprende que las palabras pueden cla­si­fi­car­se en su­s­ta­n­ti­vos, verbos o adjetivos. Sin embargo, el hecho de de­te­r­mi­nar la función de cada palabra no es una tarea sencilla para los or­de­na­do­res, ya que las palabras pueden cambiar de función de­pe­n­die­n­do de la frase en la que se colocan.

Para desglosar esa am­bi­güe­dad se puede recurrir a diversos métodos: los más antiguos se basan en extensos corpus de textos como el Brown Corpus o el British National Corpus. Estos están formados por millones de palabras eti­que­ta­das y de las que se pueden deducir normas de apre­n­di­za­je para el eti­que­ta­do de palabras. Mediante el Brown Corpus se pudo, por ejemplo, crear la norma de que los verbos dejen de tener función de predicado cuando van pre­ce­di­dos de un artículo.

Los nuevos programas de eti­que­ta­do emplean al­go­ri­t­mos de au­to­apre­n­di­za­je, lo que significa que so­bree­n­tie­n­den las normas de los corpus de texto exi­s­te­n­tes de manera au­to­má­ti­ca y las utilizan para definir otras funciones de palabras. Uno de los ejemplos más populares de métodos de eti­que­ta­do basados en dichos al­go­ri­t­mos es Brill Tagger, un método que primero define la función más frecuente en la frase para después, con ayuda de reglas, deducir el resto de funciones de las palabras. Una regla podría ser: si la primera palabra de una frase es un nombre propio, la segunda será, pro­ba­ble­me­n­te, un verbo. En una frase del tipo “Jan ha comprado un libro”, la palabra “ha” podría cla­si­fi­car­se como verbo.

Parse trees (árboles de análisis si­n­tá­c­ti­co)

En el paso siguiente se emplearán los co­no­ci­mie­n­tos extraídos de la sintaxis para entender la es­tru­c­tu­ra de las oraciones. Para ello, la li­n­güí­s­ti­ca co­mpu­tacio­nal utiliza diagramas de análisis si­n­tá­c­ti­co con los que se pueden dividir las oraciones en sintagmas. Algunos ejemplos de estos sintagmas son los sintagmas nominales, que están formados por un nombre propio o por un su­s­ta­n­ti­vo o artículo, o los sintagmas verbales, cuyo núcleo es un verbo.

En inglés se designa con el término de parsing a la división de las oraciones en sintagmas, y, en co­n­se­cue­n­cia, los árboles de análisis si­n­tá­c­ti­co reciben la de­no­mi­na­ción de parse trees. Cada idioma tiene su propia gramática, lo que significa que en cada lengua los sintagmas se forman de una manera diferente y la jerarquía de los sintagmas funciona de un modo distinto. La gramática de un idioma puede pro­gra­mar­se a mano en los programas in­fo­r­má­ti­cos, o se puede aprender mediante los corpus de textos, que pueden servir para dejar co­n­s­ta­n­cia de la es­tru­c­tu­ra de las oraciones.

Semántica

El tercer paso del Natural Language Pro­ce­s­si­ng es el que llevan a cabo los de­sa­rro­lla­do­res en el ámbito de la semántica. Aun cuando tanto el eti­que­ta­do como la función si­n­tá­c­ti­ca de una palabra son similares, puede ocurrir que la palabra en cuestión tenga varios si­g­ni­fi­ca­dos posibles, como podemos ver en el siguiente ejemplo: Hay un niño sentado en el banco de la plaza El banco concede créditos a muchas personas Una persona que tenga buenos co­no­ci­mie­n­tos li­n­güí­s­ti­cos sobre la lengua española, puede saber de inmediato que en la primera oración la palabra “banco” hace re­fe­re­n­cia al asiento en el que nos podemos sentar y en la segunda se habla del lugar en el que se realizan ope­ra­cio­nes fi­na­n­cie­ras. Esto, sin embargo, no es fácil de de­te­r­mi­nar en el caso de los or­de­na­do­res, puesto que estos no reconocen la am­bi­güe­dad y es muy difícil que la aprendan. Por lo tanto, en la mayoría de los casos los or­de­na­do­res intentan de­te­r­mi­nar el si­g­ni­fi­ca­do de una palabra con ayuda de las palabras que le preceden o le siguen. De este modo, pueden aprender que si la palabra “banco” va seguida de “plaza”, se trata de un asiento y en el caso de que “banco” vaya seguida de “créditos”, estaremos hablando de la entidad fi­na­n­cie­ra. Estas di­fe­re­n­cias pueden aprehe­n­de­r­se mediante el uso de corpus de textos, en los que el si­g­ni­fi­ca­do de cada palabra se reproduce con exactitud.  En términos generales, el Natural Language Pro­ce­s­si­ng es una es­pe­cia­li­dad muy compleja: en ella, los or­de­na­do­res tienen que hacer frente a casos concretos y, en el caso de las palabras ambiguas, existe la pro­ba­bi­li­dad de que el ordenador la in­te­r­pre­te erró­nea­me­n­te. En el ámbito de la pra­g­má­ti­ca, en pa­r­ti­cu­lar, todavía pueden hacerse muchas mejoras, ya que en el caso del contexto en el que se expresa la frase, se trata ge­ne­ra­l­me­n­te de un contexto mundano o, como mínimo, de un contexto que requiere amplios co­no­ci­mie­n­tos sobre el propio entorno. Si hilamos un poco más fino, la ironía, el sarcasmo y las metáforas hu­mo­rí­s­ti­cas son conceptos es­pe­cia­l­me­n­te co­m­pli­ca­dos de entender para los or­de­na­do­res, aun cuando ya se hayan hecho los primeros intentos para cla­si­fi­car­los.

He­rra­mie­n­tas para el pro­ce­sa­mie­n­to del lenguaje natural

Quien quiera es­ta­ble­cer un primer contacto con el Natural Language Pro­ce­s­si­ng puede recurrir a las diversas y prácticas he­rra­mie­n­tas e in­s­tru­c­cio­nes online. Decidir cuál es la he­rra­mie­n­ta que mejor se adecúa a las ne­ce­si­da­des de cada uno depende del idioma en sí y de los métodos de pro­ce­sa­mie­n­to del lenguaje natural que se quieran usar. A co­n­ti­nua­ción te pre­se­n­ta­mos algunas de estas he­rra­mie­n­tas de código abierto:

  • Natural Language Toolkit es una colección de he­rra­mie­n­tas para el Natural Language Pro­ce­s­si­ng escritas en Python. Estas permiten el acceso a más de 100 corpus de texto para idiomas como inglés, portugués, polaco, holandés, catalán y vasco. Además, Natural Language Toolkit también sirve para llevar a cabo di­fe­re­n­tes funciones de edición de textos, como el eti­que­ta­do gra­ma­ti­cal (Part-Of-Speech Tagging), el análisis si­n­tá­c­ti­co, la to­ke­ni­za­ción (de­fi­ni­ción de radicales, un paso pre­li­mi­nar usado a menudo para el pro­ce­sa­mie­n­to del lenguaje natural) y la ju­s­ti­fi­ca­ción de textos (wrapping). La he­rra­mie­n­ta Natural Language Toolkit también ofrece una in­tro­du­c­ción a la pro­gra­ma­ción, así como do­cu­me­n­ta­ción detallada, y está destinada tanto para es­tu­dia­n­tes uni­ve­r­si­ta­rios como para pro­fe­so­res e in­ve­s­ti­ga­do­res.
  • Stanford NLP Group Software: este es uno de los grupos de in­ve­s­ti­ga­ción líderes en el ámbito del Natural Language Pro­ce­s­si­ng y ofrece di­fe­re­n­tes he­rra­mie­n­tas, con las que se pueden de­te­r­mi­nar las formas básicas de las palabras (to­ke­ni­za­ción), las funciones de las palabras (eti­que­ta­do gra­ma­ti­cal o Part-Of-Speech Tagging) y la es­tru­c­tu­ra de las oraciones (parsing). Todo ello se co­m­ple­me­n­ta con he­rra­mie­n­tas para procesos más complejos como el apre­n­di­za­je profundo (deep learning), en el que se presta atención al contexto de las oraciones. A este respecto, el Stanford CoreNLP recoge la mayoría de funciones básicas. Como dato adicional, todos los programas del Stanford NLP Group están escritos en Java y di­s­po­ni­bles para diversos idiomas, entre ellos inglés, chino, alemán, francés y español.
  • Vi­sua­l­te­xt es un conjunto de he­rra­mie­n­tas escritas en NLP++, un lenguaje de pro­gra­ma­ción propio para el Natural Language Pro­ce­s­si­ng. Este lenguaje de pro­gra­ma­ción está es­pe­cia­l­me­n­te de­sa­rro­lla­do para los llamados deep text analyzers es decir, para los análisis de texto profundo que son ne­ce­sa­rios para obtener co­no­ci­mie­n­tos uni­ve­r­sa­les (in­fo­r­ma­ción sobre el medio ambiente y la sociedad). Vi­sua­l­te­xt sirve para extraer in­fo­r­ma­ción de grandes ca­n­ti­da­des de texto, por lo que en este caso la he­rra­mie­n­ta permite, por ejemplo, compilar textos largos, pero también recopilar eventos sobre temas concretos y de di­fe­re­n­tes páginas web y co­lo­car­los en una misma vista general. Vi­sua­l­te­xt también da la po­si­bi­li­dad de uti­li­zar­se de manera gratuita para fines no co­me­r­cia­les.
Ir al menú principal