Introducción al procesamiento del lenguaje natural

La esencia del procesamiento del lenguaje natural radica en hacer que las computadoras entiendan el lenguaje natural. Sin embargo, esa no es una tarea fácil. Las computadoras pueden comprender la forma estructurada de los datos, como las hojas de cálculo y las tablas en la base de datos, pero los lenguajes, los textos y las voces humanos forman una categoría de datos no estructurada, y se vuelve difícil para la computadora comprenderlos, y surge la necesidad de Natural Procesamiento del lenguaje.

Hay una gran cantidad de datos de lenguaje natural en varias formas y sería muy fácil si las computadoras pudieran entender y procesar esos datos. Podemos entrenar los modelos de acuerdo con el resultado esperado de diferentes maneras. Los seres humanos han estado escribiendo durante miles de años, hay muchas piezas de literatura disponibles, y sería genial si hiciéramos que las computadoras entendieran eso. Pero la tarea nunca va a ser fácil. Hay varios desafíos que surgen, como comprender el significado correcto de la oración, el Reconocimiento de entidad nombrada (NER) correcto, la predicción correcta de varias partes del discurso, la resolución de correferencia (lo más desafiante en mi opinión).

Las computadoras no pueden entender verdaderamente el lenguaje humano. Si alimentamos suficientes datos y entrenamos un modelo adecuadamente, puede distinguir e intentar categorizar varias partes del discurso (sustantivo, verbo, adjetivo, partidario, etc.) en función de los datos y experiencias previamente alimentados. Si encuentra una palabra nueva, intenta hacer la conjetura más cercana, lo que puede resultar vergonzosamente incorrecto algunas veces.

Es muy difícil para una computadora extraer el significado exacto de una oración. Por ejemplo: el niño irradiaba fuego como vibraciones. ¿El chico tenía una personalidad muy motivadora o en realidad irradiaba fuego? Como puede ver aquí, analizar el inglés con una computadora va a ser complicado.

Hay varias etapas involucradas en el entrenamiento de un modelo. Resolver un problema complejo en Machine Learning significa construir una tubería. En términos simples, significa dividir un problema complejo en varios problemas pequeños, hacer modelos para cada uno de ellos y luego integrar estos modelos. Algo similar se hace en la PNL. Podemos dividir el proceso de comprensión del inglés de un modelo en varias partes pequeñas.

Sería genial si una computadora pudiera entender que San Pedro es una isla en el distrito de Belice en América Central con una población de 16,444 y es la segunda ciudad más grande de Belice. Pero para que la computadora entienda esto, necesitamos enseñarle a la computadora conceptos muy básicos del lenguaje escrito.

Entonces, comencemos creando una canalización de NLP. Tiene varios pasos que nos darán el resultado deseado (tal vez no en algunos casos raros) al final.

  • Paso #1: Segmentación de oraciones

    Separar el fragmento de texto en varias oraciones.

    Entrada: San Pedro es un pueblo en la parte sur de la isla de Cayo Ambergris en el Distrito de Belice de la nación de Belice, en América Central. Según estimaciones de mitad de año de 2015, la ciudad tiene una población de aproximadamente 16 444 habitantes. Es la segunda ciudad más grande del distrito de Belice y la más grande del distrito electoral de Belize Rural South.

    Salida: San Pedro es un pueblo en la parte sur de la isla de Cayo Ambergris en el Distrito 2.Belize de la nación de Belice, en América Central.
    Según estimaciones de mitad de año de 2015, la ciudad tiene una población de aproximadamente 16 444 habitantes.
    Es la segunda ciudad más grande del distrito de Belice y la más grande del distrito electoral de Belize Rural South.
    Para codificar un modelo de segmentación de oraciones, podemos considerar dividir una oración cuando encuentre cualquier signo de puntuación. Pero las canalizaciones modernas de NLP tienen técnicas para dividir incluso si el documento no tiene el formato adecuado.

  • Paso #2: tokenización de palabras

    Dividir la oración en palabras individuales llamadas tokens. Podemos tokenizarlos cada vez que nos encontramos con un espacio, podemos entrenar un modelo de esa manera. Incluso los signos de puntuación se consideran tokens individuales, ya que tienen algún significado.

    Entrada: San Pedro es un pueblo en la parte sur de la isla de Cayo Ambergris en el Distrito de Belice de la nación de Belice, en América Central. Según estimaciones de mitad de año de 2015, la ciudad tiene una población de aproximadamente 16 444 habitantes. Es la segunda ciudad más grande del distrito de Belice y la más grande del distrito electoral de Belize Rural South.

    Salida: ‘San Pedro’, ‘es’, ‘a’, ‘pueblo’ y así.

  • Paso #3: Predicción de partes del discurso para cada token

    Predecir si la palabra es un sustantivo, verbo, adjetivo, adverbio, pronombre, etc. Esto ayudará a entender de qué está hablando la oración. Esto se puede lograr alimentando los tokens (y las palabras que los rodean) a un modelo de clasificación de parte del discurso previamente entrenado. Este modelo recibió muchas palabras en inglés con varias partes del discurso etiquetadas para que clasifique las palabras similares que encuentre en el futuro en varias partes del discurso. Nuevamente, los modelos realmente no entienden el ‘sentido’ de las palabras, simplemente las clasifican en base a su experiencia previa. Es pura estadística.

    El proceso se verá así:

    Input : Part of speech classification model 
    Output : Town - common noun
             Is - verb 
             The - determiner
    

    Y de manera similar, clasificará varios tokens.

  • Paso #4: Lematización

    Alimentar al modelo con la raíz de la palabra.
    Por ejemplo –

    There’s a Buffalo grazing in the field. 
    There are Buffaloes grazing in the field. 

    Aquí, tanto Buffalo como Buffaloes significan lo mismo. Pero, la computadora puede confundirlo como dos términos diferentes ya que no sabe nada. Así que tenemos que enseñarle a la computadora que ambos términos significan lo mismo. Tenemos que decirle a una computadora que ambas oraciones están hablando del mismo concepto. Por lo tanto, debemos encontrar la forma más básica o la forma raíz o el lema de la palabra y alimentarlo al modelo en consecuencia.

    De manera similar, también podemos usarlo para verbos. ‘Reproducir’ y ‘Reproducir’ deben considerarse iguales.

  • Paso #5: Identificar palabras vacías

    Hay varias palabras en el idioma inglés que se usan con mucha frecuencia como ‘a’, ‘and’, ‘the’, etc. Estas palabras hacen mucho ruido al hacer un análisis estadístico. Podemos sacar estas palabras. Algunas canalizaciones de NLP categorizarán estas palabras como palabras vacías, se filtrarán mientras se realiza un análisis estadístico. Definitivamente, son necesarios para comprender la dependencia entre varios tokens para obtener el sentido exacto de la oración. La lista de palabras vacías varía y depende del tipo de salida que espera.

  • Paso 6.1: análisis de dependencia

    Esto significa descubrir la relación entre las palabras en la oración y cómo se relacionan entre sí. Creamos un árbol de análisis en análisis de dependencia, con la raíz como verbo principal en la oración. Si hablamos de la primera oración en nuestro ejemplo, entonces ‘es’ es el verbo principal y será la raíz del árbol de análisis. Podemos construir un árbol de análisis de cada oración con una palabra raíz (verbo principal) asociada. También podemos identificar el tipo de relación que existe entre las dos palabras. En nuestro ejemplo, ‘San Pedro’ es el sujeto e ‘isla’ es el atributo. Así, se puede establecer la relación entre ‘San Pedro’ y ‘es’, e ‘isla’ y ‘es’.

    Al igual que entrenamos un modelo de aprendizaje automático para identificar varias partes del discurso, podemos entrenar un modelo para identificar la dependencia entre palabras alimentando muchas palabras. Aunque es una tarea compleja. En 2016, Google lanzó un nuevo analizador de dependencias, Parsey McParseface, que utilizaba un enfoque de aprendizaje profundo.

  • Paso 6.2: Encontrar frases nominales

    Podemos agrupar las palabras que representan una misma idea. Por ejemplo: es la segunda ciudad más grande del distrito de Belice y la más grande de la circunscripción rural del sur de Belice. Aquí, los tokens ‘segundo’, ‘más grande’ y ‘ciudad’ se pueden agrupar, ya que juntos representan lo mismo ‘Belice’. Podemos usar la salida del análisis de dependencia para combinar tales palabras. Hacer este paso o no depende completamente del objetivo final, pero siempre es rápido hacerlo si no queremos mucha información sobre qué palabras son adjetivos, sino centrarnos en otros detalles importantes.

  • Paso #7: Reconocimiento de entidad nombrada (NER)

    San Pedro es una ciudad en la parte sur de la isla de Ambergris Caye en el 2. Distrito de Belice de la nación de Belice, en América Central.
    Aquí, el NER mapea las palabras con los lugares del mundo real. Los lugares que realmente existen en el mundo físico. Podemos extraer automáticamente los lugares del mundo real presentes en el documento usando NLP.

    Si la oración anterior es la entrada, NER la mapeará de esta manera:

    San Pedro - Geographic Entity
    Ambergris Caye - Geographic Entity
    Belize - Geographic Entity
    Central America - Geographic Entity

    Los sistemas NER buscan cómo se coloca una palabra en una oración y utilizan otros modelos estadísticos para identificar qué tipo de palabra es realmente. Por ejemplo, ‘Washington’ puede ser una ubicación geográfica, así como el apellido de cualquier persona. Un buen sistema NER puede identificar esto.

    Tipos de objetos que un sistema NER típico puede etiquetar:

    People’s names. 
    Company names. 
    Geographical locations
    Product names. 
    Date and time. 
    Amount of money. 
    Events.
  • Paso #8: Resolución de Correferencia:

    San Pedro es un pueblo en la parte sur de la isla de Ambergris Caye en el Distrito de Belice de la nación de Belice, en América Central. Según estimaciones de mitad de año de 2015, la ciudad tiene una población de aproximadamente 16 444 habitantes. Es la segunda ciudad más grande del distrito de Belice y la más grande del distrito electoral de Belize Rural South.

    Aquí, sabemos que ‘eso’ en la oración 6 significa San Pedro, pero para una computadora, no es posible entender que ambos tokens son iguales porque trata ambas oraciones como dos cosas diferentes mientras las procesa. Los pronombres se usan con mucha frecuencia en la literatura inglesa y se vuelve difícil para una computadora entender que ambas cosas son lo mismo.

Publicación traducida automáticamente

Artículo escrito por Jaydeep1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *