Stemming & Lematization en Python: ¿Cuál usar?
Publicado: 2021-02-09El Procesamiento del Lenguaje Natural (NLP) es una técnica de procesamiento de la comunicación que consiste en extraer características importantes del lenguaje. Es un avance en inteligencia artificial que implica construir agentes inteligentes con experiencia previa. La experiencia previa aquí se refiere a la capacitación que se realiza sobre enormes conjuntos de datos que involucran datos textuales de fuentes que incluyen redes sociales, web scraping, formularios de encuestas y muchas otras técnicas de recopilación de datos.
El paso inicial después de la recopilación de datos es la limpieza de estos datos y la conversión a la forma legible por máquina, la forma numérica que la máquina puede interpretar. Si bien el proceso de conversión es otra cosa, el proceso de limpieza es el primer paso que se debe realizar. En esta tarea de limpieza, la inflexión es un concepto importante que necesita una comprensión clara antes de pasar a la derivación y la lematización.
Tabla de contenido
Inflexión
Sabemos que los datos textuales comprenden oraciones con palabras y otros caracteres que pueden o no afectar nuestras predicciones. Las oraciones comprenden palabras y las palabras que se usan comúnmente, como is, there y, se denominan palabras vacías. Estos se pueden eliminar fácilmente formando un corpus para ellos, pero ¿qué pasa con las diferentes formas de la misma palabra?
No desea que su máquina considere "estudio" y "estudiando" como palabras diferentes, ya que la intención detrás de estas palabras sigue siendo la misma y ambas transmiten el mismo significado. El manejo de este tipo de casos es una práctica común en PNL, y esto se conoce como inflexión. Esta es la idea base de la derivación y la lematización con diferentes enfoques. Descubramos las diferencias entre ellos y echemos un vistazo a cuál es mejor usar.
derivación
Es una de las técnicas de normalización de texto que se enfoca en reducir la ambigüedad de las palabras. La derivación se enfoca en despojar la palabra de la raíz a la palabra. Lo hace eliminando los prefijos o sufijos, según la palabra que se esté considerando. Esta técnica reduce las palabras de acuerdo con el conjunto definido de reglas.
Las palabras resultantes pueden o no tener palabras raíz significativas. Su objetivo principal es formar grupos de palabras similares para optimizar el preprocesamiento. Por ejemplo, palabras como jugar, jugar y jugar pertenecen todas a la palabra raíz "jugar". Esto también ayuda a reducir el tiempo de búsqueda en los motores de búsqueda, ya que ahora se presta más atención al elemento clave.
Es necesario discutir dos casos con respecto al despalillado, es decir, el despalillado excesivo y el despalillado insuficiente . Si bien eliminar los prefijos y sufijos de la palabra resuelve algunos casos, algunas palabras se despojan más de los requisitos.
Esto puede conducir a más palabras basura sin significado. Aunque esta es la desventaja de la derivación en su conjunto, y si sucede de manera más drástica, se conoce como derivación excesiva. Debajo de la derivación es lo contrario, donde el proceso de derivación da como resultado muy poca o diferencia en las palabras.
lematización
Otro enfoque para normalizar el texto y convertirlo en significados fundamentales es la lematización. Esto tiene el mismo motivo de agrupar palabras de intención similar en un grupo, pero la diferencia es que aquí las palabras resultantes tienen significado.
No se eliminan con reglas predefinidas, sino que se forman utilizando un diccionario o lo llamamos Lema. Aquí, el proceso de conversión toma más tiempo porque primero, las palabras se emparejan con sus partes del discurso, lo que en sí mismo es un proceso que toma tiempo.
Esto asegura que la raíz de la palabra tenga un significado literal que ayude a obtener buenos resultados en el análisis. Esto es útil cuando no queremos dedicar mucho tiempo a la limpieza de datos y se requieren datos más limpios para un análisis posterior. Un inconveniente de esta técnica es que, dado que se centra más en la gramática de las palabras, los diferentes idiomas requerirían corpus separados, lo que conduciría a un manejo cada vez mayor de los datos.
Pago: Ideas de proyectos de aprendizaje profundo para principiantes
¿Cuál usar?
Ahora viene el punto de elegir uno entre los dos. Es muy subjetivo elegir a cualquiera, ya que el caso de uso al que se dirige juega un papel importante aquí.
Si desea analizar un fragmento de texto pero el tiempo es una limitación, puede optar por la derivación, ya que realiza esta acción en menos tiempo pero con una tasa de éxito baja, y las derivaciones se proporcionan a través de una forma algorítmica que puede no tener ninguna. sentido.
La adopción de la lematización brinda la ventaja adicional de obtener palabras raíz significativas y precisas aporreadas de diferentes formas. Si puede pagar buenos recursos informáticos con más tiempo, entonces esta puede ser una mejor opción. Esto debe adoptarse cuando queremos un análisis preciso. También puede ser el caso de algunas técnicas de búsqueda en los motores de búsqueda donde la palabra raíz es suficiente para obtener los resultados que el usuario desea.
Implementación de Python
El paquete NLTK (Kit de herramientas de lenguaje natural) es la implementación de Python de las tareas relacionadas con el NLP. Esta biblioteca tiene todas las herramientas necesarias, como Stemmers. Lematizadores, eliminación de palabras vacías, creación de árboles de análisis personalizados y mucho más. También contiene los datos del corpus de fuentes destacadas incluidas en el propio paquete.
La técnica de derivación tiene muchas implementaciones, pero la más popular y antigua es el algoritmo de Porter Stemmer. Snowball stemmer también se utiliza en algunos proyectos. Para comprender más claramente la diferencia entre la derivación y la lematización, observe el siguiente código y el resultado del mismo:
importar nltk
de nltk.stem importar PorterStemmer
desde nltk.stem importar WordNetLemmatizer
word_stemmer = PorterStemmer()
lematizador = WordNetLemmatizer()
print(lemmatizer.lemmatize('moscas'))
print(word_stemmer.stem('moscas'))
Producción:
mosca
volar
La primera salida es del lematizador y la segunda del lematizador. Puede ver la diferencia de que el lematizador dio la raíz de la palabra como resultado, mientras que el lematizador simplemente recortó la palabra desde el final.
Aprenda cursos de ciencia de datos de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.
Lea también: Ideas de proyectos de aprendizaje automático
Conclusión
La PNL está creciendo cada día y los nuevos métodos evolucionan con el tiempo. La mayoría de ellos se centran en cómo extraer de manera eficiente la información correcta de los datos de texto con una pérdida mínima y eliminando todos los ruidos. Ambas técnicas son de uso popular. Todo lo que importa es que el análisis se realice sobre datos limpios.
¿Cuáles son los dos tipos de algoritmos de IA que se utilizan para agrupar documentos?
El agrupamiento jerárquico y el agrupamiento no jerárquico son los dos tipos de algoritmos de IA que se utilizan para agrupar textos. El algoritmo de agrupamiento jerárquico divide y agrega documentos de acuerdo con un conjunto de reglas. A continuación, los pares de grupos de elementos de datos de la jerarquía se conectan entre sí. Si bien esta técnica es fácil de leer y comprender, puede que no sea tan efectiva como la agrupación en clústeres no jerárquica. Cuando hay muchas fallas en los datos, la agrupación puede ser difícil. La agrupación en clústeres no jerárquica implica fusionar y dividir los clústeres existentes para crear otros nuevos. Este es un enfoque de agrupamiento que es comparativamente más rápido, más confiable y más estable.
¿Se prefiere la lematización para el análisis de sentimientos?
La lematización y la derivación son procedimientos altamente efectivos. Sin embargo, cuando se convierte en forma de raíz, la lematización siempre produce el término con significado del diccionario. Cuando el significado del término no es crítico para el estudio, se recomienda la lematización. Cuando el significado de una palabra es vital para el análisis, se recomienda la lematización. Como resultado, si tuviera que elegir un enfoque para el análisis de sentimientos, la lematización sería la adecuada.
¿Cómo se utilizan la derivación y la lematización para la agrupación de documentos?
La agrupación de documentos, también conocida como agrupación de texto, es un método para analizar textos textuales agrupándolos. Sus aplicaciones van desde la disposición automatizada de documentos hasta la extracción de temas e incluso la recuperación rápida de información. La derivación y la lematización se utilizan para reducir la cantidad de tokens necesarios para comunicar la misma información, mejorando así la técnica general. Después de este paso de preprocesamiento, las características se calculan midiendo la frecuencia de cada token, seguido de los enfoques de agrupamiento más eficientes.