23 de febrero de 2021
¿Trabaja en proyectos de PNL? ¿Cansado de buscar siempre las mismas funciones tontas de preprocesamiento en la web, como eliminar los acentos de los mensajes en francés? ¿Cansado de pasar horas con Regex para extraer eficazmente direcciones de correo electrónico de un corpus? ¡Amale El Hamri le mostrará cómo NLPretext le tiene cubierto!

Medium Tech Blog by Artefact

Visión general de NLPretext

NLPretext se compone de 4 módulos: básico, social, de fichas y de aumento.

Cada uno de ellos incluye diferentes funciones para gestionar las tareas de preprocesamiento de texto más importantes.

Preprocesamiento básico

El módulo básico es un catálogo de funciones transversales que pueden utilizarse en cualquier caso de uso. Le permiten manejar

  • Espacios en blanco incorrectos en un texto, caracteres de fin de línea
  • Problemas de codificación
  • Caracteres especiales como símbolos monetarios, números, signos de puntuación, caracteres latinos y no latinos

  • Correos electrónicos y números de teléfono
from nlpretext.basic.preprocess import replace_emails
ejemplo = “He reenviado este correo electrónico a obama@whitehouse.gov”
ejemplo = replace_emails(ejemplo, replace_with=”*EMAIL*”)
print(ejemplo)
# “He reenviado este correo electrónico a *EMAIL*”

Preprocesamiento social

El social El módulo es un catálogo de prácticas funciones que pueden ser útiles a la hora de procesar el data social, como:

  • extracción/eliminación de hashtags

  • extracción/eliminación de emojis

  • extracción/eliminación de menciones

  • limpieza de etiquetas html

from nlpretext.social.preprocess import extraer_emojis
ejemplo = “Me cuido la piel 😀”
ejemplo = extraer_emojis(ejemplo)
print(ejemplo) #[‘:grinning_face:’]

Aumento del texto

El módulo de aumento le ayuda a generar nuevos textos a partir de los ejemplos dados modificando algunas palabras de los iniciales y a mantener sin cambios las entidades asociadas, si las hay, en el caso de las tareas NER. Si desea que las palabras que no sean entidades permanezcan inalteradas, puede especificarlo en el argumento stopwords. Las modificaciones dependen del método elegido, las que actualmente admite el módulo son sustituciones con sinónimos utilizando Wordnet o BERT de la biblioteca nlpaug.

Cree su canalización de extremo a extremo

Tubería por defecto

Nuestra biblioteca proporciona un objeto Preprocesador para canalizar eficazmente todas las operaciones de preprocesamiento.
Si necesita conservar todos los elementos de su texto y realizar una limpieza mínima, utilice la canalización por defecto. Normaliza los espacios en blanco y elimina los caracteres de nueva línea, corrige los problemas de unicode y elimina los artefactos recurrentes del data social, como las menciones, los hashtags y las etiquetas HTML.

from nlpretext import Preprocesador
¡¡¡text = “Acabo de recibir la mejor cena de mi vida @latourdargent !!! Recomiendo 😀 #food #paris n”
preprocesador = Preprocesador()
text = preprocessor.run(text) print(text)
¡¡¡# “Acabo de recibir la mejor cena de mi vida !!! Recomiendo”

Tubería personalizada

Si tiene una idea clara de las funciones de preprocesamiento que desea canalizar en su canalización de preprocesamiento, puede añadirlas en su propio preprocesador.

from nlpretext import Preprocesador
from nlpretext.basic.preprocess import (normalize_whitespace, remove_punct, remove_eol_characters, remove_stopwords, lower_text)
from nlpretext.social.preprocess import remove_mentions, remove_hashtag, remove_emoji
¡¡¡text = "Acabo de recibir la mejor cena de mi vida @latourdargent !!! Recomiendo 😀 #food #paris n"
preprocesador = Preprocesador()
preprocesador.pipe(texto_inferior)
preprocessor.pipe(eliminar_menciones)
preprocessor.pipe(remove_hashtag)
preprocessor.pipe(eliminar_emoji)
preprocessor.pipe(eliminar_caracteres_eol)
preprocessor.pipe(remove_stopwords, args=)
preprocesador.pipe(eliminar_punto)
preprocessor.pipe(normalizar_espacios_en_blanco)
text = preprocessor.run(text) print(text) # "cena vida recomendar"

Instalación de NLPretext

Para instalar la biblioteca ejecute

pip install nlpretext

Puede encontrar el repositorio github aquí y la documentación de la biblioteca aquí

Este artículo se publicó por primera vez en el Artefact Tech Blog en Medium.