Introducción al procesamiento natural del lenguaje

Inteligencia artificial

La inteligencia artificial (IA) es la habilidad de una máquina de presentar las mismas capacidades que los seres humanos, como el razonamiento, el aprendizaje, la creatividad y la capacidad de planear. Aunque los procesos de desarrollo de estas capacidades en una máquina difieran en los procesos ocupados por seres humanos.

De manera general, la IA permite que los sistemas tecnológicos perciban su entorno, se relacionen con él, resuelvan problemas y actúen con un fin específico. La máquina recibe datos (ya preparados o recopilados a través de sus propios sensores, por ejemplo, una cámara), los procesa y responde a ellos, ya sea de manera supervisada por el especialista que los diseña o de forma no supervisada (sin ayuda del especialista)

Los sistemas de IA son capaces de adaptar su comportamiento en cierta medida, analizar los efectos de acciones previas y de trabajar de manera autónoma. A continuación se muestran algunas de las aplicaciones prácticas al día de hoy.

 
We may regard the present state of the universe as the eff ect of its past and the cause of its
future. An intelligence which at a certain moment would know all forces that set nature in
motion, and all positions of all items of which nature is composed, if this intelligence were
also vast enough to submit these data to analysis, it would embrace in a single formula the
movements of the greatest bodies of the universe and those of the tiniest atom;
for such an intelligence nothing would be uncertain and,
the future just like the past would be present before its eyes.
- Pierre-Simon Laplace, 1814
'Laplace's Demon' (Essai philosophique sur les probabilites)


Conceptos clave del NLP

El procesamiento del lenguaje natural (NLP, por sus siglas en inglés) es una rama de la inteligencia artificial que ayuda a las computadoras a entender, interpretar y manipular el lenguaje humano. NLP toma elementos prestados de muchas disciplinas, incluyendo la ciencia de la computación y la lingüística computacional, en su afán por cerrar la brecha entre la comunicación humana y el entendimiento de las computadoras.
  • Técnicas comunes en el NLP
    • Tokenization: Consiste en separar el texto en palabras o frases individuales (tokens), que puedan ser leídos de forma entendible por la máquina.
    • Lemmatization: Reduce las palabras a su forma base mediante la ayuda de elementos del diccionario (am, are, is → be)
    • Stemming: Reduce las palabras a una forma base sin considerar su contexto (studies → studi, studying → study)
  • Markov chains: Proceso estocástico y sin memoria que predice eventos futuros basados solo en el estado actual
  • n-grams: Predice el siguiente termino en una secuencia de n-términos basados en Markov chains.
  • Bolsa de palabras (BOW - Bag of words): Representación del texto utilizando frecuencias de palabras sin considerar contexto u orden.
  • tf itf: (term frequency–inverse document frequency) Mide la importancia de la palabra en un corpus de texto.
  • Word embeddings: Mapeo de las palabras o frases a valores numéricos (vectores, arreglos)
  • GloVe: Técnica que combina ocurrencia de palabras tanto local como globalmente para hallar un patrón de similitud y obtener representaciones vectoriales de palabras. Del acrónimo Global Vectors for Word Representation.
  • BERT: Acrònimo para Bidirectional Encoder Representations from Transformers, es una técnica basada en redes neuronales para el pre-entrenamiento del procesamiento del lenguaje natural desarrollada por Google.
  • Topic modeling. Captura los temas subyacentes que aparecen en los documentos o corpus.
    • LDA (Latent Dirichlet Allocation). Genera k-temas asignando cada palabra a un tema aleatorio e iterando.
    • LSA (Latent Semantic Analysis). Identifica los patrones mediante la métrica de tf itf y reduce los datos de k-dimensiones mediante SVD (Single value decomposition)

Disciplinas de la IA

Diagrama de flujo de trabajo para sistemas basados en NLP

 
 
Adquisición de datos responde a las preguntas: ¿De dónde voy a conseguir estos datos? ¿Cuántos datos necesito?. Lo que conlleva a aplicar técnicas de búsqueda en Internet (Web scarping) para obtener la mayor cantidad de datos etiquetados en caso de que métodos supervisados deban aplicarse.

Limpieza de datos. El objetivo es obtener la mayor cantidad de datos limpios y en un formato estándar para su posterior análisis EDA. EL proceso general para limpieza de datos consiste en:

  • Colección de texto en corpus. Datos escritos crudos.
  • Limpieza de datos: Remover partes innecesarias, símbolos, otros alfabetos, números, dobles espacios, palabras repetidas, contracciones, conversión a minúsculas, puntuación innecesaria, etc
  • Tokenization. Consiste en separar el texto en partes mas pequeñas como frases o conjuntos de  palabras.
  • Conversión del texto al formado conocido como: Document-Term matrix, el cual se emplea alimentar los sistemas computacionales mediante un lenguaje numérico.

Análisis exploratorio de datos (EDA). Consiste en resumir la cantidad de texto mediante la búsqueda de patrones característicos, como palabras clave o más frecuentes. Esto se logra normalmente mediante técnicas de visualización como histogramas o nubes de palabras. Así como explorar el vocabulario para hacerlo consistente.

Tareas del NLP. Son métodos diseñados especialmente para procesar el lenguaje natural y obtener resultados significativos que van de la mano con procesos cognitivos. Entender las intenciones y entidades de un texto es una labor relevante para brindar respuestas plausibles. Dentro de las tareas más comunes están:
  • Análisis de sentimientos
  • Modelado de temas
  • Etiquetado de las partes de un texto (Tagging)
  • Resumido de textos
  • Comprensión lectora de máquina
  • Preguntas y respuestas
  • Conversacional
  • etc... 
Algunas tareas del NLP

 

Comentarios

Entradas más populares de este blog

4. Sobre la arquitectura de un asistente de aprendizaje y su cerebro

2. Sobre la arquitectura y las características de los chatbots

7. Sobre las habilidades de adquisición de información