Info
Content

Capítulo 7-2º | Chapter 7-2º

Procesamiento del Lenguaje Natural (PLN) | Natural Language Processing (NLP)


Fig. I A. C2.4.1-. Procesamiento de lenguaje natural en 10 minutos | Natural Language Processing In 10 Minutes. Crédito imag (Edureka). URL: https://youtu.be/5ctbvkAMQO4 


Ir al índice principal del libro Go to the main index of the book

Contenidos

 

Contents

7.2.1.- Introducción

7.2.1.- Introduction

7.2.2.- ¿Para qué es útil PLN?

7.2.2.- What is NLP useful for?

7.2.3.- Uso de algoritmos de PLN: Algorithmia

7.2.3.- Use of NLP algorithms: Algorithmia

7.2.4.- Bibliotecas PLN de código abierto

7.2.4.- NLP open source libraries

7.2.5.- Ejemplos de casos de uso del procesamiento del lenguaje natural

7.2.5.- Examples of use cases of natural language processing

7.2.6.- IBM lleva el PLN a nuevos horizontes

7.2.6.- IBM takes the NLP to new horizons

7.2.7.- Cursos o libros de PLN

7.2.7.- NLP courses or books


| Autor / Author: Juan Antonio Lloret Egea | Miembro de la Alianza Europea para la IA / Member to the European AI Alliance |https://orcid.org/0000-0002-6634-3351|© 2019. Licencia de uso y distribución / License for use and distribution: [ Los estados de la inteligencia artificial (IA) | The states of artificial intelligence (AI) ] creative commons CC BY-NC-ND |ISSN 2695-3803|| Escrito / Writed: 25/08/2019. Actualizado / Updated: 25/08/2019 |


7.2.1.- Introducción | Introduction


El campo de estudio que se centra en las interacciones entre el lenguaje humano y las computadoras se llama procesamiento del lenguaje natural, o PLN para abreviar. Se encuentra en la intersección de la informática, la inteligencia artificial y la lingüística computacional (Wikipedia). El chatbot de arriba llamado 'Chico' es un buen ejemplo de ello. Se utiliza PLN de Google, Dialogflow.

PLN es una forma para que las computadoras analicen, comprendan y obtengan significado del lenguaje humano de una manera inteligente y útil. Al utilizar PLN los desarrolladores pueden organizar y estructurar el conocimiento para realizar tareas como resumen automático, traducción, reconocimiento de entidades con nombre, extracción de relaciones, análisis de sentimientos, reconocimiento de voz y segmentación de temas. Y está lleno de posibilidades para la recopilación de noticias.

Los avances en la investigación en PLN como BERT de Google AI, ELMo de Allen Institute, GPT-2  de OpenAI y ULMFiT suelen estar capacitados para grandes cantidades de texto sin etiquetar y disponible públicamente desde Internet.


[English]

The field of study that focuses on the interactions between human language and computers is called natural language processing, or PLN for short. It is located at the intersection of computer science, artificial intelligence and computational linguistics (Wikipedia). The chatbot above called ''Chico' is a good example of this. Google PLN, Dialogflow is used.

NLP is a way for computers to analyze, understand and obtain meaning of human language in an intelligent and useful way. By using NLP developers can organize and structure knowledge to perform tasks such as automatic summary, translation, recognition of named entities, relationship extraction, sentiment analysis, voice recognition and segmentation of topics. And it is full of possibilities for news gathering.

Advances in research in NLP such as BERT from Google AI, ELMo from Allen Institute, GPT-2 from OpenAI and ULMFiT are usually trained for large amounts of unlabeled text and publicly available from the Internet.

Y aprenden mediante transferencia de aprendizaje, es decir, el conocimiento obtenido de un problema se almacena y se aplica a un problema diferente o relacionado. Éstos modelos de lenguaje previamente entrenados pueden mejorar sustancialmente el rendimiento de la PLN.


Cuando Google decidió abrir BERT como código abierto, en noviembre de 2018, afirmó que cualquier persona en el mundo puede entrenar su propio sistema de respuesta a preguntas de última generación (o una variedad de otros modelos) en aproximadamente 30 minutos en una TPU en la nube, o en unas pocas horas usando una sola GPU.

OpenAI  lanzó un nuevo modelo de lenguaje llamado GPT-2, en febrero de 2019, y afirmó que GPT-2 podría predecir cuáles serían las siguientes palabras de un usuario después de permitirle recoger una oración o frase. Aparentemente el sistema era tan bueno que tuvo que ser retirado del dominio público por temor a que fuera mal utilizado (eso transmitió la entidad a la prensa)C7.2-1



Fig. I A. C2.4.2-. Cómo OpenAI escribe historias de noticias convincentes y obras de ficción | How OpenAI writes convincing news stories and works of fiction. Crédito imag (Guardian News). URL: https://youtu.be/XMJ8VxgUzTc


[English]
When Google decided to open BERT as open source, in November 2018, it stated that anyone in the world can train their own system of answering the latest generation of questions (or a variety of other models) in approximately 30 minutes on a TPU in the cloud, or in a few hours using a single GPU.

OpenAI (nonprofit AI research entity) launched a new language model called GPT-2, in February 2019, and stated that GPT-2 could predict what a user's next words would be after allowing him to pick up a sentence or phrase Apparently the system was so good that it had to be removed from the public domain for fear that it would be misused (that the entity transmitted to the press) C7.2-1.


Dam Daniel King (uno de los padre de la herramienta) ha publicado la función online de OpenAI para probarlo. Ha publicado la versión completa de su generador de texto en Talk to Transformer. Y nuestra prueba ha sido introducir el texto: I am writing a book on Artificial Intelligence called "The States of AI". Y el resultado ha sido éste (algo decepcionante porque habla del 2015 y alguna salida de tono más). (Update Aug 20: OpenAI released a larger model: 774M).


[English]

Dam Daniel King (one of the tool's parents) has published the OpenAI online feature to prove it. He has published the full version of his text generator in Talk to Transformer. And our test has been to introduce the text: I am writing a book on Artificial Intelligence called "The States of AI". And the result has been this (somewhat disappointing because it speaks of 2015 and some more tone output). (Update Aug 20: OpenAI released a larger model: 774M).


GPT2.png


Cómo configurar el entorno para GPT-2 en Python / How to Setup the Environment for GPT-2 in Python

El modelo a usar de GPT-2 es el mediano,  con 345 millones de parámetros (el del ejemplo de antes es el grande con 774 millones).  Puede descargar el modelo previamente entrenado desde el repositorio oficial deOpenAI GitHub. Y siga estas instrucciones.


[English]
The model to use of GPT-2 is the medium one, with 345 million parameters (the one in the example above is the large one with 774 million). You can download the previously trained model from the official OpenAI GitHub repository. And follow these instructions.


Ver también / See too: Sesgo racial en el procesamiento del lenguaje natural / Racial bias in natural language processing


7.2.2.- ¿Para qué es útil PLN? | What is NLP useful for?

Además de las operaciones comunes de procesador de textos (que tratan el texto como una mera secuencia de símbolos) PLN considera la estructura jerárquica del lenguaje; porque varias palabras forman una frase, varias frases forman una oración y las oraciones transmiten ideas. Durante tiempo ha cumplido  funciones útiles como corregir la gramática, convertir el habla en texto y traducir automáticamente a otros idiomas.  PLN permite a las máquinas entender cómo hablamos los seres humanos. Y sus aplicaciones van incluso hasta el análisis de sentimientos, extracción de temas, extracción de relaciones y también para minería de textos y respuestas automáticas de preguntas.

PLN es un problema difícil en informática, porque el lenguaje humano rara vez es preciso. Comprender el lenguaje humano es comprender no sólo las palabras, sino también los conceptos y cómo están vinculados para crear significado. La ambigüedad del lenguaje es lo que hace que el procesamiento del lenguaje natural sea un problema difícil de dominar para las computadorasC7.2-1.


[English]

Other common word processor operations (which treat the text as a mere sequence of symbols) NLP considers the hierarchical structure of the language; because several words form a sentence, several sentences form a sentence and sentences convey ideas.

For a long time has fulfilled useful functions such as correcting grammar, converting speech into text and automatically translating into other languages. NLP allows machines to understand how we speak human beings. And its applications even go to the analysis of feelings, extraction of topics, extraction of relationships and also for text mining and automatic answering of questions.

NLP is a difficult problem in computer science, because human language is rarely accurate. Understanding human language is understanding not only the words, but also the concepts and how they are linked to create meaning. Language ambiguity is what makes natural language processing a difficult problem to master for computers C7.2-1.


7.2.3.- Uso de algoritmos de PLN: Algorithmia | Use of NLP algorithms: Algorithmia

Algorithmia.png

Fig. I A. C2.4.3-. Creación de una cuenta en Algorithmia / Creating an account in Algorithmia. Crédito imag (Creación propia). Ampliar / Enlarge.


Generalmente éstos se basan en algoritmos de aprendizaje automático. En lugar de codificar manualmente grandes conjuntos de reglas, PLN puede evolucionar desde el aprendizaje automático para aprender de forma autónoma estas reglas mediante el análisis de un conjunto de ejemplos y hacer una inferencia estática. Como norma cuantos más datos se analicen más preciso será el modelo. La ejecución de los algoritmos podemos realizarla de forma concatenada para que uno siga al anterior y obtener una Σ de algoritmos.

(Algorithmia es una compedio de algoritmos que van desde el análisis de textos, Machine Learning, visión por computador y Deep Learning).  Algunos de los algoritmos usados para el análisis de contenidos en textos en Algorithmia son:

  • Summarizer |Este algoritmo toma grandes bloques de texto no estructurado y extrae oraciones de temas clave en función de la frecuencia de los temas y términos clave. Docs. 

Por visualizar, por ejemplo, Summarizer he tomado el texto completo del inicio (usted puede utilizar otros para probrar los diferentes algoritmos. Previamente se le solicitará que cree una cuenta nueva como en la Fig. I A. C2.4.3. Tiene limitaciones de uso en cantidad en 55K créditos al mes):

"El campo de estudio que se centra en las interacciones entre el lenguaje humano y las computadoras se llama procesamiento del lenguaje natural, o PLN para abreviar. Se encuentra en la intersección de la informática, la inteligencia artificial y la lingüística computacional (Wikipedia). PLN es una forma para que las computadoras analicen, comprendan y obtengan significado del lenguaje humano de una manera inteligente y útil. Al utilizar PLN los desarrolladores pueden organizar y estructurar el conocimiento para realizar tareas como resumen automático, traducción, reconocimiento de entidades con nombre, extracción de relaciones, análisis de sentimientos, reconocimiento de voz y segmentación de temas. Y está lleno de posibilidades para la recopilación de noticias. Los avances en la investigación en PLN como BERT de Google AI, ELMo de Allen Institute, GPT-2  de OpenAI y ULMFiT suelen estar capacitados para grandes cantidades de texto sin etiquetar y disponible públicamente desde Internet".

Y nos devuelve estas oraciones como claves o resumen:

PLN es una forma para que las computadoras analicen, comprendan y obtengan significado del lenguaje humano de una manera inteligente y útil. Al utilizar PLN los desarrolladores pueden organizar y estructurar el conocimiento para realizar tareas como resumen automático, traducción, reconocimiento de entidades con nombre, extracción de relaciones, análisis de sentimientos, reconocimiento de voz y segmentación de temas.


  • AutoTag |Aprovecha LDA, una técnica que descubre temas contenidos en un cuerpo de texto. Este algoritmo toma texto sin formato, ya sea solo o como un conjunto de documentos, y genera etiquetas candidatas para el texto. Docs.
  • Reconocimiento de entidad (Named Entity Recognition). |Este algoritmo recupera entidades reconocidas de un cuerpo de texto utilizando la biblioteca stanfordNlp. (Hay algunos más en este campo).
  • Análisis de sentimientos |Para identificar el sentimiento de una cadena de texto, de muy negativo a neutral y a muy positivo. Docs.
  • PorterStemmer |Para reducir las palabras a su raíz.
  • Tokenizer |Para dividir el texto en tokens. Docs.

[English]

Generally these are based on machine learning algorithms. Instead of manually coding large sets of rules, PNL can evolve from machine learning to learn these rules autonomously by analyzing a set of examples and making a static inference. As a rule, the more data analyzed, the more accurate the model will be. The execution of the algorithms can be done concatenated so that one follows the previous one and obtain an Σ algorithm.

(Algorithmia is a compendium of algorithms ranging from text analysis, Machine Learning, computer vision and Deep Learning). Some of the algorithms used for the analysis of content in texts in Algorithmia are:

  • Summarizer | This algorithm takes large blocks of unstructured text and extracts sentences from key topics based on the frequency of key topics and terms. Docs

To visualize, for example, Summarizer I have taken the full text of the start (you can use others to test the different algorithms. Previously you will be asked to create a new account as Fig. I A. C2.4.3. It has limitations of use in quantity to 55k credits/month):

"Other common word processor operations (which treat the text as a mere sequence of symbols) NLP considers the hierarchical structure of the language; because several words form a sentence, several sentences form a sentence and sentences convey ideas. For a long time has fulfilled useful functions such as correcting grammar, converting speech into text and automatically translating into other languages. NLP allows machines to understand how we speak human beings. And its applications even go to the analysis of feelings, extraction of topics, extraction of relationships and also for text mining and automatic answering of questions. NLP is a difficult problem in computer science, because human language is rarely accurate. Understanding human language is understanding not only the words, but also the concepts and how they are linked to create meaning. Language ambiguity is what makes natural language processing a difficult problem to master for computers".

And he returns these sentences as key themes or overview:

The field of study that focuses on the interactions between human language and computers is called natural language processing, or PLN for short. NLP is a way for computers to analyze, understand and obtain meaning of human language in an intelligent and useful way.


  • AutoTag | Take advantage of LDA, a technique that discovers topics contained in a body of text. This algorithm takes plain text, either alone or as a set of documents, and generates candidate labels for the text. Docs
  • Entity recognition (Named Entity Recognition). | This algorithm retrieves recognized entities from a body of text using the stanfordNlp library. (There are some more in this field).
  • Sentiment analysis | To identify the feeling of a text string, from very negative to neutral and very positive. Docs
  • PorterStemmer | To reduce words to their root.
  • Tokenizer | To divide the text into tokens. Docs

7.2.4.- Bibliotecas PLN de código abierto | NLP open source libraries

Estas bibliotecas proporcionan los bloques de construcción algorítmicos de PLN en aplicaciones del mundo real. (Algorithmia proporciona un punto final de API gratuito para muchos de estos algoritmos, sin tener que configurar o aprovisionar servidores e infraestructura)C7.2-1.

  • Apache OpenNLP: un kit de herramientas de aprendizaje automático que proporciona tokenizadores, segmentación de oraciones, etiquetado de parte del discurso, extracción de entidades con nombre, fragmentación, análisis, resolución de coreferencia y más.
  • Natural Language Toolkit (NLTK) : una biblioteca de Python que proporciona módulos para procesar texto, clasificar, tokenizar, derivar, etiquetar, analizar y más. (Propio para la mintería de datos. Lanzamiento de NLTK 3.4.5: agosto de 2019).
  • MALLET: un paquete de Java que proporciona asignación de Dirichlet latente, clasificación de documentos, agrupamiento, modelado de temas, extracción de información y más. (Está basado en Java).

[English]

These libraries provide the algorithmic building blocks of PNL in real-world applications. (Algorithmia provides a free API endpoint for many of these algorithms, without having to configure or provision servers and infrastructure)C7.2-1.

  • Apache OpenNLP: a machine learning toolkit that provides tokenizers, sentence segmentation, part-of-speech labeling, named entity extraction, fragmentation, analysis, coreference resolution and more.
  • Natural Language Toolkit (NLTK): a Python library that provides modules to process text, classify, tokenize, derive, label, analyze and more. (Own for data mining. NLTK 3.4.5 release: August 2019).
  • MALLET: a Java package that provides latent Dirichlet allocation, document classification, grouping, topic modeling, information extraction and more.

7.2.5.- Ejemplos de casos de uso del procesamiento del lenguaje natural | Examples of use cases of natural language processing

El análisis de las redes sociales es un gran ejemplo del uso de PLN. Las marcas hacen un seguimiento de las conversaciones en línea para comprender lo que dicen los clientes y obtener información sobre el comportamiento del usuario. "Una de las formas más convincentes de que PLN ofrece inteligencia valiosa es mediante el seguimiento de los sentimientos (el tono de un mensaje escrito (tweet, actualización de Facebook, etc.) y etiquetar ese texto como positivo, negativo o neutral". (Rehling. Ex ingeniero de software senior y experto en PLN en Meltwater Group) C7.2-1. El artículo puede encontrarlo aquí.

  • Herramienta para monitoreo de redes sociales
  1. Comience usando el algoritmo Recuperar Tweets con palabras clave para capturar todas las menciones de su marca en Twitter.
  2. Luego, canalice los resultados en el algoritmo de Análisis de opinión, que asignará una calificación de opinión de 0-4 para cada cadena (Tweet).
  • PLN para construir su propio lector RSS

Puede construir un lector RSS de aprendizaje automático en menos de 30 minutos utilizando los siguientes algoritmos:

  1. ScrapeRSS para tomar el título y el contenido de una fuente RSS.
  2. Html2Text para conservar el texto importante, pero eliminar todo el HTML del documento.
  3. AutoTag utiliza la asignación de Dirichlet latente para identificar palabras clave relevantes del texto.
  4. El análisis de sentimientos se usa para identificar si el artículo es positivo, negativo o neutral.
  5. El resumen se utiliza finalmente para identificar las oraciones clave.

[Inglish

The analysis of social networks is a great example of the use of NLP. Brands track online conversations to understand what customers say and get information about user behavior. One of the most convincing ways that NLP offers valuable intelligence is by tracking feelings (the tone of a written message (tweet, Facebook update, etc.) and labeling that text as positive, negative or neutral, "said Rehling (former senior software engineer and NLP expert at Meltwater Group) C7.2-1. The article can be found here.

  • Social network monitoring tool
  1. Start using the Recover Tweets with keywords algorithm to capture all your brand mentions on Twitter.
  2. Then, channel the results in the Opinion Analysis algorithm, which will assign an opinion rating of 0-4 for each string (Tweet).
  • PLN to build your own RSS reader

You can build a machine learning RSS reader in less than 30 minutes using the following algorithms:

  1. ScrapeRSS to take the title and content of an RSS feed.
  2. Html2Text to preserve important text, but remove all HTML from the document.
  3. AutoTag uses the latent Dirichlet assignment to identify relevant keywords in the text.
  4. Sentiment analysis is used to identify whether the article is positive, negative or neutral.
  5. The summary is finally used to identify key sentences.

7.2.6.- IBM lleva el PLN a nuevos horizontes | IBM takes the NLP to new horizons


Fig. I A. C2.4.4-. LIVE DEBATE – IBM Project Debater. URL: https://youtu.be/m3u-1yttrVw


IBM Project Debater es el primer sistema de inteligencia artificial (IA) que puede debatir sobre humanos en temas complejos. Después de años de desarrollo, Project Debater participó con éxito en un debate en vivo con el campeón de debate humano Harish Natarajan el 11 de febrero de 2019 en la conferencia IBM Think en San Francisco. Dominar el lenguaje es un gran desafío para la IA, y Project Debater es un hito importante en este viaje ( Fuente, IBM. 28 de julio, 2019). Más información aquí.

En Intelligence Squared U.S., hemos debatido sobre IA antes: los riesgos, las recompensas y si puede cambiar el mundo, pero por primera vez, estamos debatiendo con AI. En asociación con IBM, Intelligence Squared US está organizando un debate único entre un defensor de campeones de clase mundial y un sistema de inteligencia artificial. IBM Project Debater es el primer sistema de IA diseñado para debatir sobre humanos en temas complejos utilizando una combinación de investigación pionera desarrollada por investigadores de IBM, que incluye: redacción y entrega de discursos basados en datos, comprensión auditiva y modelado de dilemas humanos. Debutó por primera vez en un pequeño evento a puerta cerrada en junio de 2018, Project Debater ahora se enfrentará a su oponente más duro hasta ahora frente a su mayor audiencia, con nuestro propio John Donvan en el asiento del moderador. El tema no será revelado al Proyecto Debater y al campeón del debate humano hasta poco antes de que comience el debate. (Youtube, IBM).


[English]

IBM Project Debater is the first artificial intelligence (AI) system that can discuss humans on complex issues. After years of development, Project Debater successfully participated in a live debate with human debate champion Harish Natarajan on February 11, 2019 at the IBM Think conference in San Francisco. Mastering language is a great challenge for AI, and Project Debater is an important milestone on this trip. (Source, IBM. July 28, 2019). More information here.

"At Intelligence Squared U.S., we’ve debated AI before – the risks, the rewards, and whether it can change the world – but for the first time, we’re debating with AI. In partnership with IBM, Intelligence Squared U.S. is hosting a unique debate between a world-class champion debater and an AI system. IBM Project Debater is the first AI system designed to debate humans on complex topics using a combination of pioneering research developed by IBM researchers, including: data-driven speechwriting and delivery, listening comprehension, and modeling human dilemmas. First debuted in a small closed-door event in June 2018, Project Debater will now face its toughest opponent yet in front of its largest-ever audience, with our own John Donvan in the moderator’s seat. The topic will not be revealed to Project Debater and the champion human debater until shortly before the debate begins". (Youtube, IBM).


7.2.7.- Cursos o libros de PLN | NLP courses or books


 Bibliografía  | Bibliography


[C7.2-1] Kiser,  M. (11 de agosto, 2016). Introduction to Natural Language Processing (NLP). Algorithmia. [Recuperado (14/08/2019) de: https://blog.algorithmia.com/introduction-natural-language-processing-nlp/ ]


Back to top