Preprocesamiento básico de PNL | espacioso | Pitón

En este artículo, discutiremos algunas de las técnicas de preprocesamiento de NLP mientras manejamos los datos de texto.

Como habrás adivinado por el título, usaremos espacioso para la mayoría de nuestras tareas en este artículo. Entonces, si no lo tiene instalado, vea el spaCy Instrucciones de instalación para obtener spaCy en su computadora.

Tokenización:

Cuando estamos trabajando con datos de texto, lo primero que tenemos que hacer es dividir el texto en una lista de tokens. Esto se llama tokenización. La tokenización es el proceso de dividir una secuencia de texto en tokens que pueden ser oraciones, palabras, números o signos de puntuación.

Realizar tokenización usando espacios es muy sencillo.


Podrías pensar que tokenizar es simplemente dividir la palabra por espacios en blanco o por signos de puntuación como ‘.’ o ‘,’. Sin embargo, es más complejo que eso.

Intentemos tokenizar la oración «He estado en el Reino Unido, EE. UU. y Francia».


Como puede ver en el resultado, el tokenizador identifica la palabra Reino Unido y EE. UU. como una sola entidad en lugar de ‘U’, ‘.’ y ‘K’.

También identifica el período que siguió a France denota el final de una oración y debe tratarse como un símbolo separado.

Stemming y Lematización:

La derivación y la lematización son dos métodos diferentes pero muy similares que se utilizan para convertir una palabra a su raíz o forma base.

Sin embargo, la diferencia entre la derivación y la lematización es que la derivación se basa en reglas donde recortaremos o agregaremos modificadores que indican su palabra raíz, mientras que la lematización es el proceso de reducir una palabra a su forma canónica llamada lema.

Por lo general, la lematización produce una forma base significativa en comparación con la lematización.

Dado que Spacy no tiene lematización, usaremos NLTK para realizar la lematización.

NLTK proporciona varios stemmers famosos como Lancaster, Porter y Snowball. El lematizador de Porter funciona muy bien en muchos casos, así que lo usaremos para extraer raíces de la oración.

Para saber más sobre las reglas de Porter Stemming visita este enlace.


Dado que la derivación generalmente elimina los últimos caracteres, a veces puede producir resultados que no tienen ningún significado para nosotros como humanos. Echa un vistazo al siguiente ejemplo.


Ahora, veamos cómo realizar la lematización usando spaCy. Podemos obtener el lema para cada token usando el atributo lemma_attr.


Las palabras go, gone, going, going all se han convertido a su raíz ‘go’, a diferencia del porter stemmer, que convirtió la palabra going en goe, going to going y gone to gone.

Para las palabras:

Las palabras vacías son palabras muy comunes en el idioma y no aportan nada a la semántica de una oración.

Por lo tanto, podemos eliminar las palabras vacías del texto antes de un proceso de NLP, ya que ocurren con mucha frecuencia y brindan poco valor para ayudar a que los documentos se diferencien. TSu presencia tampoco tiene mucho impacto en el sentido de una oración.

Los ejemplos de palabras vacías incluyen «a», «am», «and», «the», «in», «of» y más.

Podemos importar la lista de palabras vacías por defecto en spaCy usando el siguiente código.


Hay un total de 326 palabras vacías. Vamos a imprimirlos.

Ahora veremos cómo eliminar palabras vacías en una oración.


Sin embargo, el problema con la lista de palabras vacías predeterminada es que también contiene palabras que pueden ser útiles. Echa un vistazo al siguiente ejemplo.


Como puede ver en el resultado, dado que la lista predeterminada de palabras vacías incluye la palabra ‘no’, se eliminó de nuestra oración.

Debido a eso, el sentimiento de la oración cambió completamente de negativo a positivo.

Entonces, lo que podemos hacer es crear otro conjunto con palabras que creemos que no son palabras vacías y restarlas de las palabras vacías predeterminadas para eliminarlas.

Ahora volvamos a imprimir los resultados.


Puede agregar tantas palabras como desee al conjunto not_stopwords.

Etiquetado de parte del discurso:

Una etiqueta POS nos dice la parte del discurso de una palabra determinada. Las categorías comunes incluyen sustantivos, verbos, artículos, pronombres, adverbios, etc.

Asignar etiquetas POS a las palabras no es una tarea fácil, ya que la parte del discurso de la palabra depende del contexto y cambia según la oración.

Veamos un ejemplo con la palabra ‘jugar’. Fíjate en las siguientes dos oraciones.

‘Me gusta jugar en el parque con mis amigos’ y

Vamos a ver una obra de teatro esta noche en el teatro’.

En la primera oración, la palabra jugar es un ‘verbo’ y en la segunda oración, la palabra jugar es un ‘sustantivo’.

Veamos cómo funciona el etiquetador POS de Spacy


Para esta oración la palabra ‘jugar’ tiene correctamente identificado como verbo.

Ahora veamos la segunda oración.


spaCy ha identificado el POS para la palabra ‘jugar’ correctamente en ambas oraciones.

Para obtener la lista completa de etiquetas POS en spaCy, visite el enlace https://spacy.io/api/annotation#pos-tagging

Reconocimiento de entidad nombrada:

El reconocimiento de entidades con nombre identifica diferentes entidades en una secuencia de texto, como lugares, personas, ubicaciones, etc. La siguiente es la lista de tipos de entidades integradas en spaCy

  • PERSONA: Personas, incluidas las ficticias.
  • NORP: Nacionalidades o grupos religiosos o políticos
  • INSTALACIÓN: Edificios, aeropuertos, autopistas, puentes, etc.
  • ORG: Empresas, agencias, instituciones, etc.
  • GPE: países, ciudades y estados
  • LOC: ubicaciones no GPE, cadenas montañosas y masas de agua
  • PRODUCTO: Objetos, vehículos, alimentos, etc. (no servicios)
  • EVENTO: huracanes, batallas, guerras, eventos deportivos, etc.
  • OBRA_DE_ARTE: Títulos de libros, canciones, etc.
  • LEY: Documentos nombrados convertidos en leyes.
  • IDIOMA: cualquier idioma con nombre

Un problema con el reconocimiento de entidades con nombre es que son específicos del dominio. Un modelo NER desarrollado para un dominio puede no funcionar bien para otros dominios.

Uno de esos dominios es la atención médica. Echa un vistazo al siguiente ejemplo.


Esperamos que el modelo NER detecte el ‘hipertiroidismo’ como una enfermedad. Sin embargo, como puede ver, el modelo NER de Spacy no logró identificar el hipertiroidismo como una enfermedad.

Entonces, en tales casos, es mejor entrenar nuestro propio modelo NER.

RESUMEN:

En este artículo, discutimos varias técnicas relacionadas con el preprocesamiento de PNL. El siguiente es el resumen rápido de las técnicas que discutimos.

Tokenización: proceso de dividir una secuencia de texto en elementos que pueden ser oraciones, palabras, números o signos de puntuación.

Lematización: proceso de convertir una palabra a su forma base.

Eliminación de palabras de parada: eliminar palabras que no tienen mucho impacto en el sentido de una oración.

Etiquetado de parte del discurso: Identificar la parte gramatical de una palabra.

Reconocimiento de entidad nombrada: identificar diferentes entidades en una secuencia de texto, como lugares, personas, ubicaciones, etc.

Fuente del artículo

Deja un comentario