Stemming es el proceso de producir variantes morfológicas de una raíz/palabra base. Los programas de derivación se conocen comúnmente como algoritmos de derivación o lematizadores. Un algoritmo de derivación reduce las palabras «chocolates», «chocolatey» y «choco» a la raíz de la palabra, «chocolate» y «recuperación», «recuperado», «recuperado» se reducen a la raíz «recuperar».
Prerrequisito: Introducción a Stemming
Some more example of stemming for root word "like" include: -> "likes" -> "liked" -> "likely" -> "liking"
Errores en la lematización: Hay principalmente dos errores en la lematización: overstemming y understemming . Overstemming ocurre cuando dos palabras se derivan de la misma raíz que son de diferentes raíces. La falta de raíz ocurre cuando dos palabras se derivan de la misma raíz que no tiene raíces diferentes.
Las aplicaciones de la derivación son:
- Stemming se utiliza en sistemas de recuperación de información como motores de búsqueda.
- Se utiliza para determinar vocabularios de dominio en análisis de dominio.
La derivación es deseable ya que puede reducir la redundancia, ya que la mayoría de las veces la palabra derivación y sus palabras derivadas o flexionadas significan lo mismo.
A continuación se muestra la implementación de palabras derivadas usando NLTK:
Código #1:
Python3
# import these modules from nltk.stem import PorterStemmer from nltk.tokenize import word_tokenize ps = PorterStemmer() # choose some words to be stemmed words = ["program", "programs", "programmer", "programming", "programmers"] for w in words: print(w, " : ", ps.stem(w))
Producción:
program : program programs : program programmer : program programming : program programmers : program
Código #2: Derivación de palabras a partir de oraciones
Python3
# importing modules from nltk.stem import PorterStemmer from nltk.tokenize import word_tokenize ps = PorterStemmer() sentence = "Programmers program with programming languages" words = word_tokenize(sentence) for w in words: print(w, " : ", ps.stem(w))
Producción :
Programmers : program program : program with : with programming : program languages : language