Python - Introducción al procesamiento de texto

El procesamiento de texto tiene una aplicación directa al procesamiento del lenguaje natural, también conocido como NLP. La PNL tiene como objetivo procesar los idiomas hablados o escritos por humanos cuando se comunican entre sí. Esto es diferente de la comunicación entre una computadora y un humano donde la comunicación es un programa de computadora escrito por un humano o algún gesto por un humano como hacer clic con el mouse en alguna posición. La PNL intenta comprender el lenguaje natural hablado por los humanos y clasificarlo, analizarlo también si es necesario responder a él. Python tiene un amplio conjunto de bibliotecas que satisfacen las necesidades de la PNL. El Kit de herramientas de lenguaje natural (NLTK) es un conjunto de bibliotecas de este tipo que proporciona las funcionalidades necesarias para la PNL.

A continuación se muestran algunas aplicaciones que utilizan NLP e indirectamente NLTK de Python.

Resumen

Muchas veces, necesitamos obtener el resumen de un artículo de noticias, la trama de una película o una gran historia. Todos están escritos en lenguaje humano y sin PNL tenemos que confiar en la interpretación y presentación de otro humano de tal resumen. Pero con la ayuda de NLP podemos escribir programas para usar NLTK y resumir el texto largo con varios parámetros, como cuál es el porcentaje de texto que queremos en el resultado final, elegir las palabras positivas y negativas para resumir, etc. Los feeds de noticias en línea dependen sobre tales técnicas de resumen para presentar ideas sobre noticias.

Herramientas basadas en voz

Las herramientas basadas en voz como las manzanas Siri o Amazon Alexa se basan en la PNL para comprender la interacción loca con los humanos. Tienen un gran conjunto de datos de entrenamiento de palabras, oraciones y gramática para interpretar la pregunta o comando proveniente de un humano y procesarlo. Aunque se trata de voz, indirectamente también se traduce a texto y el texto resultante de la voz se toma a través del sistema de PNL para producir resultados.

Extracción de información

El desguace web es un ejemplo común de extracción de datos de las páginas web utilizando código Python. Aquí puede que no esté estrictamente basado en PNL, pero implica procesamiento de texto. Por ejemplo, si necesitamos extraer solo los encabezados presentes en una página html, entonces buscamos la etiqueta h1 en la estructura de la página y encontramos una manera de extraer el texto solo entre esas etiquetas. Esto necesita un programa de procesamiento de texto de Python.

Filtrado de spam

El spam en los correos electrónicos se puede identificar y eliminar analizando el texto en la línea de asunto así como en el contenido del mensaje. Como los correos electrónicos no deseados generalmente se envían de forma masiva a muchos destinatarios, incluso si sus asuntos y contenidos tienen poca variación, se pueden emparejar y etiquetar para marcarlos como correo no deseado. De nuevo, se necesita el uso de las bibliotecas NLTK.

Traducción de idiomas

La traducción de idiomas computarizada se basa en gran medida en la PNL. A medida que se utilizan cada vez más idiomas en la plataforma en línea, se vuelve una necesidad automatizar la traducción de un idioma humano a otro. Esto involucrará programación para manejar el vocabulario, la gramática y el etiquetado de contexto de los idiomas involucrados en la traducción. Nuevamente, NLTK se utiliza para manejar tales requisitos.

Análisis de los sentimientos

Para conocer la reacción general a la presentación de una película, es posible que tengamos que leer miles de publicaciones de comentarios de la audiencia. Pero eso también se puede automatizar utilizando la clasificación de comentarios positivos y negativos a través del análisis de palabras y oraciones. Y luego medir la frecuencia de críticas positivas y negativas para encontrar el sentimiento general de la audiencia. Esto obviamente necesita el análisis del lenguaje humano escrito por la audiencia y NLTK se usa mucho aquí para procesar el texto.