3 · Stemming y lematización
Reduce variantes de palabras a una raíz — stemming rápido pero impreciso vs lematización precisa pero lenta.
Reduce variantes de palabras a una forma raíz única — el stemming es rápido pero impreciso, la lematización es correcta pero lenta.
Sin esto:
Tu modelo trata 'running', 'ran', 'runs' como 3 palabras distintas y nunca aprende que comparten significado.
Al tokenizar texto obtienes muchas formas flexionadas de la misma palabra base: "run", "running", "ran", "runs". Para un modelo BOW o TF-IDF, estas son cuatro entradas de vocabulario completamente separadas. Eso es inflación de vocabulario y fragmentación semántica — el modelo no aprende nada sobre su significado compartido.
Dos estrategias para normalizar a una forma raíz:
El stemming recorta sufijos de forma algorítmica usando un conjunto de reglas diseñadas a mano. Es rápido (O(longitud de la palabra)), no requiere diccionario, pero el resultado puede no ser una palabra real. "Fairly" puede quedar como "fairli" y "university" como "univers".
La lematización busca la palabra en un diccionario morfológico y devuelve la forma base canónica (el lema). "Running" (verbo) → "run". "Geese" (sustantivo) → "goose". Es más lenta que el stemming, requiere recursos de lenguaje (la base de datos WordNet) y necesita una pista de POS para ser plenamente precisa — "running" como sustantivo se lematiza como "running", no como "run".
| | Stemming | Lematización | |---|---|---| | Velocidad | Rápido | Lento | | Salida | Puede no ser palabra real | Siempre una palabra del diccionario | | Requiere | Nada | WordNet (o lexicón similar) | | Consciente de POS | No | Sí (con pista de POS) | | Usar cuando | Pipelines en tiempo real, índices de búsqueda | Análisis offline, NLP de alta precisión |
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Stemming vs lematización — cuándo usar cada uno
¿Cuál es la diferencia clave entre lematización y stemming?
- El stemming es rápido y basado en reglas pero puede producir no-palabras (`'univers'`); la lematización es más lenta pero siempre devuelve palabras reales del diccionario.
- Pasa una etiqueta POS (`pos='v'` para verbos, `pos='a'` para adjetivos) a `WordNetLemmatizer` para obtener resultados correctos — sin ella, todo toma el valor por defecto de sustantivo.
- Ninguna técnica se usa en el fine-tuning de Transformers modernos — la atención maneja la variación morfológica automáticamente.
Motores de búsqueda (Elasticsearch usa Porter por defecto); clasificación de texto clásica antes de TF-IDF; sistemas de recuperación de información que necesitan hacer coincidir formas flexionadas con consultas base.
Si lo quitas: Sin normalización, 'run', 'running', 'ran', 'runs' son cuatro features separadas — tus vectores BOW/TF-IDF son más grandes, más dispersos y pierden la conexión semántica.