En morfología lingüística y recuperación de información, la lematización es el proceso de reducir palabras flexivas (o a veces derivadas) a su raíz , base o forma raíz , generalmente una forma escrita de la palabra. La raíz no necesita ser idéntica a la raíz morfológica de la palabra; suele ser suficiente que las palabras relacionadas se correspondan con la misma raíz, incluso si esta raíz no es en sí misma una raíz válida. Los algoritmos para la lematización se han estudiado en informática desde la década de 1960. Muchos motores de búsqueda tratan las palabras con la misma raíz como sinónimos como una especie de expansión de la consulta , un proceso llamado conflación.
Un programa de computadora o subrutina que deriva palabras puede llamarse programa de derivación , algoritmo de derivación o lematizador .
Un lematizador para inglés que opere sobre la raíz cat debería identificar cadenas como cats , catlike y catty . Un algoritmo de lematización también podría reducir las palabras fishing , fished y fisher a la raíz fish . La raíz no necesita ser una palabra, por ejemplo, el algoritmo de Porter reduce argue , argue , argues , arguing y argus a la raíz argu .
El primer algoritmo de derivación publicado fue escrito por Julie Beth Lovins en 1968. [1] Este artículo fue notable por su fecha temprana y tuvo gran influencia en el trabajo posterior en esta área. [ cita requerida ] Su artículo hace referencia a tres intentos anteriores importantes de algoritmos de derivación, por parte del profesor John W. Tukey de la Universidad de Princeton , el algoritmo desarrollado en la Universidad de Harvard por Michael Lesk , bajo la dirección del profesor Gerard Salton , y un tercer algoritmo desarrollado por James L. Dolby de R and D Consultants, Los Altos, California.
Martin Porter escribió un algoritmo posterior para la lematización de palabras , que se publicó en la edición de julio de 1980 de la revista Program . Este algoritmo se utilizó ampliamente y se convirtió en el algoritmo estándar de facto para la lematización de palabras en inglés. El Dr. Porter recibió el premio Tony Kent Strix en 2000 por su trabajo sobre la lematización y la recuperación de información.
Se escribieron y distribuyeron libremente muchas implementaciones del algoritmo de lematización de Porter; sin embargo, muchas de estas implementaciones contenían fallas sutiles. Como resultado, estos lematizadores no estaban a la altura de su potencial. Para eliminar esta fuente de error, Martin Porter lanzó una implementación oficial de software libre (en su mayoría con licencia BSD ) [2] del algoritmo alrededor del año 2000. Amplió este trabajo durante los siguientes años mediante la creación de Snowball , un marco para escribir algoritmos de lematización, e implementó un lematizador de inglés mejorado junto con lematizadores para varios otros idiomas.
El lematizador Paice-Husk fue desarrollado por Chris D. Paice en la Universidad de Lancaster a fines de la década de 1980. Es un lematizador iterativo que cuenta con un conjunto de reglas de lematización almacenadas externamente. El conjunto estándar de reglas proporciona un lematizador "fuerte" y puede especificar la eliminación o el reemplazo de una terminación. La técnica de reemplazo evita la necesidad de una etapa separada en el proceso para recodificar o proporcionar una coincidencia parcial. Paice también desarrolló una medición directa para comparar lematizadores basada en el recuento de errores de lematización excesiva y insuficiente.
Existen varios tipos de algoritmos de derivación que difieren en cuanto a rendimiento y precisión y en cómo se superan ciertos obstáculos.
Un lematizador simple busca la forma flexiva en una tabla de búsqueda . Las ventajas de este enfoque son que es simple, rápido y maneja fácilmente las excepciones. Las desventajas son que todas las formas flexivas deben estar explícitamente enumeradas en la tabla: las palabras nuevas o desconocidas no se manejan, incluso si son perfectamente regulares (por ejemplo, gatos ~ gato), y la tabla puede ser grande. Para idiomas con morfología simple, como el inglés, los tamaños de tabla son modestos, pero los idiomas altamente flexivos como el turco pueden tener cientos de formas flexivas potenciales para cada raíz.
Un enfoque de búsqueda puede utilizar un etiquetado preliminar de las partes del discurso para evitar la sobreexpresión. [3]
La tabla de búsqueda que utiliza un lematizador generalmente se produce de forma semiautomática. Por ejemplo, si la palabra es "run", entonces el algoritmo invertido podría generar automáticamente las formas "running", "runs", "runned" y "runly". Las dos últimas formas son construcciones válidas, pero es poco probable que se produzcan. [ cita requerida ] .
Los algoritmos de eliminación de sufijos no se basan en una tabla de búsqueda que consta de formas flexivas y relaciones entre formas raíz. En su lugar, se almacena una lista de "reglas" generalmente más pequeña que proporciona una ruta para que el algoritmo, dada una forma de palabra de entrada, encuentre su forma raíz. Algunos ejemplos de las reglas incluyen:
Los métodos de eliminación de sufijos tienen la ventaja de ser mucho más sencillos de mantener que los algoritmos de fuerza bruta, siempre que el encargado de su mantenimiento tenga los conocimientos suficientes sobre los desafíos de la lingüística y la morfología y sobre las reglas de codificación para la eliminación de sufijos. A veces, los algoritmos de eliminación de sufijos se consideran rudimentarios debido a su bajo rendimiento cuando se trata de relaciones excepcionales (como "ran" y "run"). Las soluciones que producen los algoritmos de eliminación de sufijos se limitan a aquellas categorías léxicas que tienen sufijos bien conocidos, con pocas excepciones. Sin embargo, esto es un problema, ya que no todas las partes del discurso tienen un conjunto de reglas tan bien formulado. La lematización intenta mejorar este desafío.
También se puede implementar la eliminación de prefijos. Por supuesto, no todos los idiomas utilizan prefijos o sufijos.
Los algoritmos de eliminación de sufijos pueden diferir en los resultados por diversas razones. Una de ellas es si el algoritmo limita o no la palabra de salida si debe ser una palabra real en el idioma dado. Algunos enfoques no requieren que la palabra exista realmente en el léxico del idioma (el conjunto de todas las palabras del idioma). Alternativamente, algunos enfoques de eliminación de sufijos mantienen una base de datos (una lista grande) de todas las raíces morfológicas de palabras conocidas que existen como palabras reales. Estos enfoques verifican la lista para verificar la existencia del término antes de tomar una decisión. Por lo general, si el término no existe, se toma una acción alternativa. Esta acción alternativa puede involucrar varios otros criterios. La no existencia de un término de salida puede hacer que el algoritmo pruebe reglas de eliminación de sufijos alternativas.
Puede darse el caso de que dos o más reglas de eliminación de sufijos se apliquen al mismo término de entrada, lo que crea una ambigüedad en cuanto a qué regla aplicar. El algoritmo puede asignar (por mano humana o de forma estocástica) una prioridad a una regla u otra. O el algoritmo puede rechazar la aplicación de una regla porque da como resultado un término inexistente mientras que la otra regla superpuesta no lo hace. Por ejemplo, dado el término en inglés friendlyies , el algoritmo puede identificar el sufijo ies y aplicar la regla apropiada y obtener el resultado de friendl . Es probable que Friendl no se encuentre en el léxico y, por lo tanto, la regla se rechaza.
Una mejora con respecto a la eliminación básica de sufijos es el uso de la sustitución de sufijos. De manera similar a una regla de eliminación, una regla de sustitución reemplaza un sufijo con un sufijo alternativo. Por ejemplo, podría existir una regla que reemplace ies con y . La forma en que esto afecta al algoritmo varía según el diseño del algoritmo. Para ilustrar esto, el algoritmo puede identificar que se aplican tanto la regla de eliminación del sufijo ies como la regla de sustitución del sufijo. Dado que la regla de eliminación da como resultado un término inexistente en el léxico, pero la regla de sustitución no, se aplica la regla de sustitución en su lugar. En este ejemplo, friendlyies se convierte en friendly en lugar de friendl' .
Profundizando en los detalles, una técnica común es aplicar reglas de manera cíclica (recursivamente, como dirían los científicos informáticos). Después de aplicar la regla de sustitución de sufijo en este escenario de ejemplo, se realiza una segunda pasada para identificar reglas coincidentes en el término friendly , donde es probable que se identifique y acepte la regla de eliminación de ly . En resumen, friendly se convierte (a través de la sustitución) en friendly , que se convierte (a través de la eliminación) en friend .
Este ejemplo también ayuda a ilustrar la diferencia entre un enfoque basado en reglas y un enfoque de fuerza bruta. En un enfoque de fuerza bruta, el algoritmo buscaría palabras amigables en el conjunto de cientos de miles de formas de palabras con inflexión e idealmente encontraría la forma raíz correspondiente friend . En el enfoque basado en reglas, las tres reglas mencionadas anteriormente se aplicarían en sucesión para converger en la misma solución. Es probable que el enfoque de fuerza bruta sea más lento, ya que los algoritmos de búsqueda tienen un acceso directo a la solución, mientras que el enfoque basado en reglas debería probar varias opciones y combinaciones de ellas, y luego elegir el resultado que parezca ser el mejor.
Un enfoque más complejo para el problema de determinar la raíz de una palabra es la lematización . Este proceso implica determinar primero la parte gramatical de una palabra y aplicar diferentes reglas de normalización para cada parte gramatical. La parte gramatical se detecta primero antes de intentar encontrar la raíz, ya que en algunos idiomas las reglas de lematización cambian según la parte gramatical de una palabra.
Este enfoque depende en gran medida de la obtención de la categoría léxica (parte del discurso) correcta. Si bien existe una superposición entre las reglas de normalización para ciertas categorías, identificar la categoría incorrecta o no poder producir la categoría correcta limita el beneficio adicional de este enfoque sobre los algoritmos de eliminación de sufijos. La idea básica es que, si el lematizador puede captar más información sobre la palabra que se está describiendo, puede aplicar reglas de normalización más precisas (que, a diferencia de las reglas de eliminación de sufijos, también pueden modificar la raíz).
Los algoritmos estocásticos implican el uso de la probabilidad para identificar la forma raíz de una palabra. Los algoritmos estocásticos se entrenan ("aprenden") en una tabla de relaciones entre la forma raíz y la forma flexiva para desarrollar un modelo probabilístico. Este modelo se expresa típicamente en forma de reglas lingüísticas complejas, de naturaleza similar a las de la eliminación de sufijos o la lematización. La lematización se realiza ingresando una forma flexiva al modelo entrenado y haciendo que el modelo produzca la forma raíz de acuerdo con su conjunto de reglas internas, que nuevamente es similar a la eliminación de sufijos y la lematización, excepto que las decisiones involucradas en la aplicación de la regla más apropiada, o si se debe o no lematizar la palabra y simplemente devolver la misma palabra, o si se deben aplicar dos reglas diferentes secuencialmente, se aplican sobre la base de que la palabra de salida tendrá la mayor probabilidad de ser correcta (es decir, la menor probabilidad de ser incorrecta, que es como se mide típicamente).
Algunos algoritmos de lematización son estocásticos, ya que, dada una palabra que puede pertenecer a varias partes del discurso, se asigna una probabilidad a cada una de las partes posibles. Esto puede tener en cuenta las palabras circundantes, llamadas contexto, o no. Las gramáticas independientes del contexto no tienen en cuenta ninguna información adicional. En cualquier caso, después de asignar las probabilidades a cada posible parte del discurso, se elige la parte del discurso más probable y, a partir de ahí, se aplican las reglas de normalización adecuadas a la palabra de entrada para producir la forma normalizada (raíz).
Algunas técnicas de derivación utilizan el contexto n-grama de una palabra para elegir la raíz correcta para una palabra. [4]
Los enfoques híbridos utilizan dos o más de los enfoques descritos anteriormente al unísono. Un ejemplo simple es un algoritmo de árbol de sufijos que primero consulta una tabla de búsqueda mediante fuerza bruta. Sin embargo, en lugar de intentar almacenar todo el conjunto de relaciones entre palabras en un idioma determinado, la tabla de búsqueda se mantiene pequeña y solo se utiliza para almacenar una cantidad mínima de "excepciones frecuentes" como "ran => run". Si la palabra no está en la lista de excepciones, se aplica la eliminación de sufijos o la lematización y se genera el resultado.
En lingüística , el término afijo se refiere a un prefijo o a un sufijo . Además de ocuparse de los sufijos, existen varios enfoques que también intentan eliminar los prefijos comunes. Por ejemplo, dada la palabra indefinidamente , se identifica que el "in" inicial es un prefijo que se puede eliminar. Se aplican muchos de los mismos enfoques mencionados anteriormente, pero se conocen con el nombre de eliminación de afijos . Se puede encontrar un estudio sobre la derivación de afijos para varios idiomas europeos aquí. [5]
Estos algoritmos utilizan una base de datos de raíces (por ejemplo, un conjunto de documentos que contienen raíces de palabras). Estas raíces, como se mencionó anteriormente, no son necesariamente palabras válidas en sí mismas (sino más bien subcadenas comunes, como "brows" en "browse" y en "browsing"). Para encontrar la raíz de una palabra, el algoritmo intenta hacerla coincidir con raíces de la base de datos, aplicando varias restricciones, como la longitud relativa de la raíz candidata dentro de la palabra (de modo que, por ejemplo, el prefijo corto "be", que es la raíz de palabras como "be", "been" y "being", no se consideraría como la raíz de la palabra "beside"). [ cita requerida ] .
Si bien gran parte del trabajo académico inicial en esta área se centró en el idioma inglés (con un uso significativo del algoritmo Porter Stemmer), se han investigado muchos otros idiomas. [6] [7] [8] [9] [10]
El hebreo y el árabe todavía se consideran lenguas de investigación difíciles para la lematización. Los lematizadores ingleses son bastante triviales (con solo problemas ocasionales, como "dries" es la forma singular en tercera persona del presente del verbo "dry", "axes" es el plural de "axe" y "axis"); pero los lematizadores se vuelven más difíciles de diseñar a medida que la morfología, la ortografía y la codificación de caracteres del idioma de destino se vuelven más complejas. Por ejemplo, un lematizador italiano es más complejo que uno inglés (debido a un mayor número de inflexiones verbales), uno ruso es más complejo (más declinaciones de sustantivos ), uno hebreo es aún más complejo (debido a la morfología no concatenativa , un sistema de escritura sin vocales y el requisito de eliminar los prefijos: las raíces hebreas pueden tener dos, tres o cuatro caracteres, pero no más), y así sucesivamente.
La lematización multilingüe aplica reglas morfológicas de dos o más idiomas simultáneamente en lugar de reglas para un solo idioma al interpretar una consulta de búsqueda. Existen sistemas comerciales que utilizan la lematización multilingüe. [ cita requerida ]
Existen dos métodos de medición de errores en los algoritmos de lematización: el sobrelematizado y el sublematizado. El sobrelematizado es un error en el que dos palabras con inflexión independientes tienen la misma raíz, pero no deberían tenerla (un falso positivo) . El sublematizado es un error en el que dos palabras con inflexión independientes deberían tener la misma raíz, pero no la tienen (un falso negativo ). Los algoritmos de lematización intentan minimizar cada tipo de error, aunque reducir un tipo puede llevar a aumentar el otro.
Por ejemplo, el lematizador Porter, muy utilizado, deriva "universal", "university" y "universe" para dar "univers". Se trata de un caso de sobrelematización: aunque estas tres palabras están relacionadas etimológicamente , sus significados modernos pertenecen a ámbitos muy diferentes, por lo que tratarlas como sinónimos en un motor de búsqueda probablemente reducirá la relevancia de los resultados de la búsqueda.
Un ejemplo de subraíz en el lematizador de Porter es "alumnus" → "alumnu", "alumni" → "alumni", "alumna"/"alumnae" → "alumna". Esta palabra inglesa conserva la morfología latina, por lo que estos cuasi-sinónimos no se mezclan.
La lematización se utiliza como método aproximado para agrupar palabras con un significado básico similar. Por ejemplo, un texto que menciona "narcisos" probablemente esté estrechamente relacionado con un texto que menciona "narciso" (sin la s). Pero en algunos casos, las palabras con la misma raíz morfológica tienen significados idiomáticos que no están estrechamente relacionados: un usuario que busque "marketing" no se sentirá satisfecho con la mayoría de los documentos que mencionan "mercados" pero no "marketing".
Los lematizadores pueden utilizarse como elementos en sistemas de consulta como los motores de búsqueda web . Sin embargo, pronto se descubrió que la eficacia de la lematización para los sistemas de consulta en inglés era bastante limitada, y esto ha llevado a los primeros investigadores de recuperación de información a considerar la lematización irrelevante en general. [11] En su lugar, se puede utilizar un enfoque alternativo, basado en la búsqueda de n-gramas en lugar de lematizadores. Además, los lematizadores pueden proporcionar mayores beneficios en otros idiomas además del inglés. [12] [13]
La derivación se utiliza para determinar vocabularios de dominio en el análisis de dominio . [14]
Muchas empresas comerciales han estado utilizando la lematización desde al menos la década de 1980 y han producido lematizadores algorítmicos y léxicos en muchos idiomas. [15] [16]
Los lematizadores Snowball se han comparado con lematizadores léxicos comerciales con resultados variables. [17] [18]
La búsqueda de Google adoptó la derivación de palabras en 2003. [19] Anteriormente, una búsqueda de "fish" no habría arrojado "fishing". Otros algoritmos de búsqueda de software varían en su uso de la derivación de palabras. Los programas que simplemente buscan subcadenas obviamente encontrarán "fish" en "fishing", pero cuando busquen "fishes" no encontrarán apariciones de la palabra "fish".
La derivación se utiliza como una tarea de preprocesamiento de textos antes de realizar análisis de minería de texto en ellos.