¿Cuándo uso cada uno?
Además ... ¿la lematización de NLTK depende de las partes del discurso? ¿No sería más preciso si lo fuera?
¿Cuándo uso cada uno?
Además ... ¿la lematización de NLTK depende de las partes del discurso? ¿No sería más preciso si lo fuera?
Respuestas:
Corto y denso: http://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html
El objetivo de la derivación y la lematización es reducir las formas de inflexión y, a veces, las formas derivadas de una palabra a una forma básica común.
Sin embargo, las dos palabras difieren en su sabor. La derivación generalmente se refiere a un proceso heurístico crudo que corta los extremos de las palabras con la esperanza de lograr este objetivo correctamente la mayor parte del tiempo, y a menudo incluye la eliminación de afijos derivados. La lematización generalmente se refiere a hacer las cosas correctamente con el uso de un vocabulario y un análisis morfológico de las palabras, normalmente con el objetivo de eliminar solo las terminaciones de inflexión y devolver la forma básica o de diccionario de una palabra, que se conoce como lema.
De los documentos de NLTK:
La lematización y la derivación son casos especiales de normalización. Identifican un representante canónico para un conjunto de formas de palabras relacionadas.
La lematización está estrechamente relacionada con la deriva . La diferencia es que un stemmer opera en una sola palabra sin conocimiento del contexto, y por lo tanto no puede discriminar entre palabras que tienen diferentes significados dependiendo de parte del discurso. Sin embargo, los stemmers suelen ser más fáciles de implementar y ejecutar más rápido, y la precisión reducida puede no ser importante para algunas aplicaciones.
Por ejemplo:
La palabra "mejor" tiene "bueno" como lema. Este enlace se pierde al derivar, ya que requiere una búsqueda en el diccionario.
La palabra "caminar" es la forma básica de la palabra "caminar" y, por lo tanto, esto se corresponde tanto con la derivación como con la lematización.
La palabra "reunión" puede ser la forma básica de un sustantivo o la forma de un verbo ("encontrarse") según el contexto, por ejemplo, "en nuestra última reunión" o "Nos reuniremos de nuevo mañana". A diferencia de la derivación, la lematización puede, en principio, seleccionar el lema apropiado según el contexto.
Hay dos aspectos para mostrar sus diferencias:
Una raíz devolverá la raíz de una palabra, que no necesita ser idéntica a la raíz morfológica de la palabra. Por lo general, es suficiente que las palabras relacionadas se asignen a la misma raíz, incluso si la raíz no es en sí misma una raíz válida, mientras que en la lematización , devolverá la forma del diccionario de una palabra, que debe ser una palabra válida.
En la lematización , la parte del habla de una palabra debe determinarse primero y las reglas de normalización serán diferentes para diferentes partes del discurso, mientras que el stemmer opera en una sola palabra sin conocimiento del contexto, y por lo tanto no puede discriminar entre palabras que tienen diferentes significados dependiendo de parte del discurso.
Referencia http://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lemmatization
El propósito de la derivación y la lematización es reducir la variación morfológica. Esto contrasta con los procedimientos más generales de "combinación de términos", que también pueden abordar variaciones lexico-semánticas, sintácticas u ortográficas.
La diferencia real entre la derivación y la lematización es triple:
La derivación reduce las formas de las palabras a (pseudo) tallos, mientras que la lematización reduce las formas de las palabras a lemas válidos lingüísticamente. Esta diferencia es evidente en los idiomas con una morfología más compleja, pero puede ser irrelevante para muchas aplicaciones de IR;
La lematización se ocupa solo de la varianza flexiva, mientras que la derivación también puede tratar la varianza derivativa;
En términos de implementación, la lematización suele ser más sofisticada (especialmente para lenguajes morfológicamente complejos) y generalmente requiere algún tipo de léxico. La derivación satisfactoria, por otro lado, se puede lograr con enfoques bastante simples basados en reglas.
La lematización también puede estar respaldada por un etiquetador de parte del discurso para desambiguar homónimos.
Como MYYN señaló, la derivación es el proceso de eliminar afijos inflexionales y a veces derivados a una forma base con la que probablemente todas las palabras originales estén relacionadas. La lematización se refiere a la obtención de una sola palabra que le permita agrupar un conjunto de formas flexionadas. Esto es más difícil que la derivación porque requiere tener en cuenta el contexto (y, por lo tanto, el significado de la palabra), mientras que la derivación ignora el contexto.
En cuanto a cuándo usaría uno u otro, es una cuestión de cuánto depende su aplicación de obtener el significado de una palabra en contexto correcto. Si está haciendo traducción automática, probablemente desee lematizar para evitar traducir mal una palabra. Si está recuperando información de más de mil millones de documentos con un 99% de sus consultas que van desde 1 a 3 palabras, puede conformarse con la derivación.
En cuanto a NLTK, el WordNetLemmatizer utiliza la parte de la voz, aunque debe proporcionarlo (de lo contrario, el valor predeterminado es sustantivo). Pasarlo "paloma" y "v" produce "inmersión" mientras que "paloma" y "n" producen "paloma".
Una explicación basada en ejemplos sobre las diferencias entre lematización y derivación:
La lematización maneja la coincidencia de “automóvil” con “automóviles” junto con la coincidencia de “automóvil” con “automóvil”.
Stemming maneja emparejar "auto" con "autos" .
La lematización implica un alcance más amplio de coincidencia de palabras difusas que todavía es manejado por los mismos subsistemas. Implica ciertas técnicas para el procesamiento de bajo nivel dentro del motor, y también puede reflejar una preferencia de ingeniería por la terminología.
[...] Tomando FAST como ejemplo, su motor de lematización maneja no solo variaciones básicas de palabras como singular versus plural, sino también operadores de sinónimos como tener "caliente" coincidencia "cálido".
Esto no quiere decir que otros motores no manejen sinónimos, por supuesto que lo hacen, pero la implementación de bajo nivel puede estar en un subsistema diferente a los que manejan la derivación de bases.
ianacl
pero creo que Stemming es un truco duro que la gente usa para obtener todas las diferentes formas de la misma palabra en una forma base que no necesita ser una palabra legítima por sí misma
Algo como Porter Stemmer puede usar expresiones regulares simples para eliminar sufijos de palabras comunes
La lematización lleva una palabra a su forma base real que, en el caso de los verbos irregulares, podría no parecerse a la palabra de entrada
Algo como Morpha que usa FST para traer sustantivos y verbos a su forma base
La derivación simplemente elimina o deriva los últimos caracteres de una palabra, lo que a menudo conduce a significados y ortografías incorrectas. La lematización considera el contexto y convierte la palabra a su forma básica significativa, que se llama Lemma. A veces, la misma palabra puede tener múltiples Lemmas diferentes. Deberíamos identificar la etiqueta Parte de discurso (POS) para la palabra en ese contexto específico. Estos son los ejemplos para ilustrar todas las diferencias y casos de uso:
La derivación es el proceso de eliminar los últimos caracteres de una palabra dada, para obtener una forma más corta, incluso si esa forma no tiene ningún significado.
Ejemplos,
"beautiful" -> "beauti"
"corpora" -> "corpora"
La derivación se puede hacer muy rápidamente.
La lematización, por otro lado, es el proceso de convertir la palabra dada en su forma básica de acuerdo con el significado del diccionario de la palabra.
Ejemplos,
"beautiful" -> "beauty"
"corpora" -> "corpus"
La lematización lleva más tiempo que la derivación.