Apuntes / Procesamiento de Lenguaje Natural / Apunte 2 de 8

Read in English

Palabras, lemas y WordNet

De qué está hecha una palabra, cómo los stems y los lemas reúnen sus formas, cómo se etiquetan las palabras de una oración y cómo WordNet relaciona sus significados.

El apunte anterior terminó en una diferencia: el original usa 22 605 palabras distintas donde la traducción inglesa usa 14 921, porque un verbo castellano toma decenas de formas y un conteo toma cada una por una palabra distinta. Para un lector, dijo, dice y decir son un verbo; para un conteo, tres palabras. También pasa lo contrario: una sola grafía para varias palabras. Este apunte mira de qué están hechas las palabras y qué significan, con las herramientas que usa el NLP para ambas cosas:

  • dijodicedecir

    Tres palabras para un conteo, un verbo para un lector

  • la Manchadon Quijotede la Mancha

    Las mismas palabras: un lugar, o parte de un nombre

  • realresrex

    Una grafía, dos palabras: una de res, «cosa», y otra de rex, «rey»

Las secciones 1 y 2 tratan de las formas: de qué está hecha una palabra, y dos maneras de reunir sus formas, que acercan mucho los vocabularios de los dos libros. La sección 3 etiqueta cada palabra de una oración con su categoría gramatical y encuentra los nombres que contiene. Las secciones 4 y 5 tratan de los significados: cómo los relaciona WordNet, y cómo una grafía puede llevar varios.

1De qué está hecha una palabra

La lingüística describe el lenguaje en cuatro niveles, cada uno con la unidad que estudia y la disciplina que la estudia:

NivelUnidadDisciplina
Morfológicola palabramorfología
Sintácticola oraciónsintaxis
Léxico-semánticoel significadolexicología y semántica
Textualel textoanalítica textual

Un sistema de NLP puede necesitar cualquiera de ellos; este apunte cubre los tres primeros, empezando por la palabra. Su pieza más pequeña con forma y significado a la vez es el monema, y los hay de dos clases. Hablando tiene uno de cada una: habl-, el lexema, lleva el significado y lo comparten palabras emparentadas como hablador; -ando, un morfema, agrega significado gramatical, aquí una acción en curso. Los morfemas marcan género, número, persona, tiempo y rasgos parecidos.

Según tomen o no esos morfemas, las palabras forman dos grupos. Las variables, como sustantivos, adjetivos, artículos, pronombres y verbos, cambian de forma; las invariables, como preposiciones, conjunciones, adverbios e interjecciones, tienen una sola. Las variables son las que agrandan un vocabulario. Elige una palabra con los botones para ver todas sus formas en el libro, cada una dividida en su lexema, en tinta, y su terminación, en carmín, con su conteo. Debajo, las formas de la misma palabra en la traducción inglesa.

Elige una palabra con los botones. Las formas de una palabra son las que le da una lista de formas con sus lemas.

El castellano lleva persona, número, tiempo y modo en las terminaciones de sus verbos, donde el inglés usa palabras aparte: diremos es we will say. Un conteo toma la forma castellana por una palabra más, y las inglesas por tres que ya tiene; la sección 2 mide cuánto de la diferencia entre los libros explica eso.

2Stems y lemas

Hay dos métodos para reunir las formas de una palabra. El stemming corta terminaciones con reglas, sin diccionario: los stemmers de Snowball, que nacieron del stemmer de Martin Porter para inglés, de 1980, y hoy cubren muchos idiomas, convierten hablando y hablaba en habl. Lo que queda, el stem, no tiene por qué ser una palabra. La lematización devuelve el lema de cada forma, la forma bajo la que la registra un diccionario: dijo y dice dan ambas decir. Un lematizador nunca inventa una palabra, pero necesita la categoría gramatical de cada forma, porque vino es forma de venir como verbo y una palabra propia como sustantivo; sin ella, el lematizador de NLTK, que es para inglés, toma toda palabra por sustantivo.

Elige una palabra para ver cuáles de las palabras del libro comparten su stem y cuáles su lema; una palabra que está en uno solo de los dos grupos va con borde carmín. Debajo, cuánto achica cada método el vocabulario de cada libro.

Elige una palabra con los botones. Los stems son los de Snowball; los lemas, los de la lista de formas.

Cada método falla a su manera, como muestran los ejemplos, pero lematizar acerca mucho los libros: las 22 605 palabras distintas del original quedan en 12 596 lemas, y las 14 921 de la traducción en 10 337. Una palabra que la lista no trae cuenta como su propio lema. Eso es correcto para la mayoría, porque la lista deja fuera las palabras que ya son lemas, como con, pero también le faltan los verbos con un pronombre pegado, como decirle, y las grafías antiguas de un libro de 1605, como agora por ahora, así que el número real de lemas del original es aún menor.

3Categorías gramaticales y nombres

Las oraciones también tienen partes. Sus palabras forman grupos, los constituyentes, y los grupos menores caben dentro de otros mayores. En El escudero monta un asno, el escudero es un sintagma nominal (SN): él puede ocupar su lugar, como en Él monta un asno, lo que muestra que las dos palabras funcionan como una. Monta un asno es un sintagma verbal (SV), un verbo con un sintagma nominal propio.

O SN SV V SN Elescudero montaunasno él
La oración (O) se divide en el sintagma nominal el escudero, que él puede reemplazar, y el sintagma verbal monta un asno: un verbo (V) y el sintagma nominal un asno.

Los analizadores sintácticos recuperan esta estructura, muchas veces a partir de la clase de cada palabra, su categoría gramatical: sustantivo, verbo, preposición, etc. Etiquetar cada palabra con ella es el etiquetado POS (de part of speech). El reconocimiento de entidades nombradas (NER) lee las mismas palabras con otra pregunta: no qué clase de palabra es cada una, sino a qué se refiere, como una persona, un lugar, una organización o una fecha.

La figura muestra la primera línea del capítulo primero y el título del capítulo, cada palabra con su categoría en las etiquetas de Universal Dependencies, un conjunto que se usa en muchos idiomas, y las entidades nombradas subrayadas en carmín. Elige una palabra para leer sus etiquetas, y compara Mancha en las dos.

Elige una palabra, o muévete entre las palabras con las flechas.

Mancha es nombre propio las dos veces, así que su categoría no distingue un lugar de parte de un nombre. Las pistas vienen de dos fuentes. La forma de la palabra, como la mayúscula, dice que puede ser un nombre; sus vecinas dicen de qué clase: después de un lugar de viene un lugar, después de don una persona. Por eso el NER se llama una tarea morfosintáctica: necesita tanto la forma de la palabra como su lugar en la oración.

4Significados en red

Los significados también se relacionan, y dos relaciones importan más que las otras. Un caballero andante es una clase de caballero: caballero andante es hipónimo de caballero, y caballero hiperónimo de caballero andante. Un casco es una pieza de una armadura: casco es merónimo de armadura, y armadura holónimo de casco. La primera relación ordena las cosas en clases; la segunda las desarma.

WordNet registra ambas para el inglés, y está organizada por significados y no por palabras: cada synset es un conjunto de sinónimos con un significado, una definición y enlaces a otros synsets. El equipo de George Miller en Princeton empezó a construirla a mano en 1985; la versión 3.0 tiene 117 659 synsets y 147 306 palabras y expresiones distintas. NLTK la incluye, y su lematizador se apoya en ella: una forma irregular como saw se busca en una lista de excepciones, y una regular pierde su terminación solo si lo que queda está en WordNet. BabelNet va más allá: une WordNet con Wikipedia y otros recursos, de modo que cada una de sus entradas reúne las palabras de un concepto en muchos idiomas, junto con nombres de personas y lugares que a WordNet le faltan.

La figura muestra un trozo pequeño de WordNet, con las palabras en castellano que el Multilingual Central Repository da a cada synset. En Clases, la cadena de hiperónimos sobre caballero sube hasta entidad, y elegir un synset dibuja su cadena en azul; en Partes, diez de las partes de una armadura van de la cabeza a los pies. Una de ellas, la que protege el muslo, se llama quijote.

Elige un synset, o muévete entre ellos con las flechas. Las definiciones son del apunte, y también los nombres en castellano de los cinco synsets que el repositorio deja sin uno.

5Una grafía, varias palabras

La sinonimia es varias formas para un significado. Lo inverso, una forma para varios significados, se da de dos maneras. En la polisemia, los sentidos de una palabra se fueron separando desde un origen común, muchas veces por metáfora. En la homonimia, dos palabras sin relación comparten la grafía por azar. Los diccionarios marcan la diferencia: dan a cada homónimo su propia entrada, y ponen los sentidos de una palabra polisémica dentro de la suya.

El real del libro muestra ambas. Real como verdadero viene del latín realis, de res, «cosa», y real como del rey viene de otra palabra, regalis, de rex, «rey»: dos palabras que suenan y se escriben igual por un accidente de la historia, y que el diccionario de la RAE separa en dos entradas. Cada una tiene sus sentidos: del rey salió también una moneda, el real. La figura reparte los 47 usos de real en el libro por sentido, etiquetados a mano; elige uno para ver su parte y una línea del libro.

Elige un sentido, o muévete entre ellos con las flechas.

Elegir el sentido de una palabra a partir de su oración es la desambiguación de sentidos, y un lematizador no la hace: real recibe un solo lema, signifique lo que signifique. Los vectores de palabras de apuntes posteriores tienen el mismo punto ciego, un vector por palabra, hasta que los encoders construyen el vector de cada palabra a partir de su oración.

6Resumen

Las ideas del apunte en NLTK, una biblioteca de Python para trabajar con texto. Su etiquetador, su lematizador y su NER son para inglés, así que esas filas usan la traducción. tokens tiene las palabras de una oración, y wn es nltk.corpus.wordnet, con el Open Multilingual Wordnet instalado para el castellano.

Stem
hablando → habl
SnowballStemmer("spanish")
    .stem("hablando")
Lema, dada la categoría
saw → see
wnl = WordNetLemmatizer()
wnl.lemmatize("saw", "v")
Categorías gramaticales
Mancha → nombre propio
nltk.pos_tag(tokens)
Entidades nombradas
La Mancha → un lugar
nltk.ne_chunk(
    nltk.pos_tag(tokens))
Hiperónimos
knight → male aristocrat
wn.synset("knight.n.01")
    .hypernyms()
Merónimos
suit of armor → helmet, …
wn.synset(
    "body_armor.n.01"
).part_meronyms()
Un synset en castellano
knight → caballero
wn.synset("knight.n.01")
    .lemma_names("spa")
Sentidos de una forma
light → 47 synsets
len(wn.synsets("light"))

Los datos del apunte: los lemas vienen de las listas de lematización de Michal Měchura (ODbL), los stems de los stemmers de Snowball, los synsets y sus relaciones de WordNet 3.0, de la Universidad de Princeton, y sus palabras en castellano del Multilingual Central Repository 3.0 (CC BY 3.0).