Natural Language Processing in Action – Hobson Lane, Cole Howard, Hannes Max Hapke – 1st Edition

Descripción

Alrededor de 2013, el procesamiento del lenguaje natural y los chatbots comenzaron a dominar nuestras vidas. Al principio, Google Search parecía más un índice, una herramienta que requería un poco de habilidad para encontrar lo que uno buscaba. Pero pronto se volvió más inteligente y aceptó cada vez más búsquedas en lenguaje natural. Luego, el autocompletado de los teléfonos inteligentes comenzó a volverse sofisticado. El botón del medio a menudo era exactamente la palabra que uno buscaba.1 A fines de 2014, Thunder Shiviah y yo estábamos colaborando en un proyecto de Hack Oregon para extraer datos de financiación de campañas en lenguaje natural. Estábamos tratando de encontrar conexiones entre donantes políticos. Parecía que los políticos estaban ocultando las identidades de sus donantes detrás de un lenguaje ofuscado en sus declaraciones de financiación de campañas. Lo interesante no fue que pudiéramos usar técnicas simples de procesamiento del lenguaje natural para descubrir estas conexiones.

Lo que más me sorprendió fue que Thunder a menudo respondía a mis correos electrónicos confusos con una respuesta sucinta pero acertada segundos después de que presionara enviar en mi correo electrónico. Estaba usando Smart Reply, un “asistente” de la bandeja de entrada de Gmail que redacta respuestas más rápido de lo que uno puede leer su correo electrónico. Así que investigué más a fondo para aprender los trucos detrás de la magia. Cuanto más aprendía, más factibles y comprensibles me parecían estas impresionantes hazañas de procesamiento del lenguaje natural. Y casi todos los proyectos de aprendizaje automático que asumí parecían implicar el procesamiento del lenguaje natural. Tal vez esto se debió a mi afición por las palabras y a mi fascinación por su papel en la inteligencia humana. Pasaba horas debatiendo si las palabras tenían siquiera un “significado” con John Kowalski, mi jefe teórico de la información en Sharp Labs. A medida que gané confianza y aprendí más y más de mis mentores y aprendices, parecía que yo mismo podría construir algo nuevo y mágico. Uno de los trucos que aprendí fue iterar a través de una colección de documentos y contar con qué frecuencia palabras como “Guerra” y “Hambre” son seguidas por palabras como “Juegos” o “III”. Si haces eso con una gran colección de textos, puedes llegar a ser bastante bueno adivinando la palabra correcta en una “cadena” de palabras, una frase u oración. Este enfoque clásico del procesamiento del lenguaje me resultó intuitivo.

Los profesores y jefes lo llamaban cadena de Markov, pero para mí era solo una tabla de probabilidades. Era solo una lista de los recuentos de cada palabra, basada en la palabra anterior. Los profesores lo llamarían distribución condicional, probabilidades de palabras condicionadas a la palabra anterior. El corrector ortográfico que Peter Norvig creó para Google mostró cómo este enfoque se escala bien y requiere muy poco código Python.2 Todo lo que necesitas es mucho texto en lenguaje natural. No pude evitar emocionarme mientras pensaba en las posibilidades de hacer algo así en colecciones masivas de texto gratuitas como Wikipedia o el Proyecto Gutenberg.

Luego oí hablar del análisis semántico latente $LSA$. Parecía ser solo una forma elegante de describir algunas operaciones de álgebra lineal que había aprendido en la universidad. Si llevas un registro de todas las palabras que aparecen juntas, puedes usar álgebra lineal para agruparlas en “temas”. LSA podía comprimir el significado de una oración entera o incluso de un documento largo en un solo vector. Y, cuando se usaba en un motor de búsqueda, LSA parecía tener una capacidad asombrosa para devolver documentos que eran exactamente lo que estaba buscando. ¡Los buenos motores de búsqueda harían esto incluso cuando no pudiera pensar en las palabras que podrían estar en esos documentos! Luego gensim lanzó una implementación de Python de vectores de palabras Word2vec, lo que hizo posible hacer matemáticas semánticas con palabras individuales. Y resultó que esta sofisticada matemática de red neuronal era equivalente a la antigua técnica LSA si simplemente dividías los documentos en fragmentos más pequeños. Esto fue una revelación. Me dio esperanza de que podría contribuir a este campo.

Había estado pensando en vectores semánticos jerárquicos durante años: cómo los libros están hechos de capítulos de párrafos de oraciones de frases de palabras de caracteres. Tomas Mikolov, el inventor de Word2vec, tuvo la idea de que la semántica dominante del texto se podía encontrar en la conexión entre dos capas de la jerarquía, entre palabras y frases de 10 palabras. Durante décadas, los investigadores de PNL habían pensado que las palabras tenían componentes, como amabilidad e intensidad emocional. Y estos puntajes de sentimiento, componentes, se podían sumar y restar para combinar los significados de múltiples palabras. Pero Mikolov había descubierto cómo crear estos vectores sin crearlos a mano, o incluso definir cuáles deberían ser los componentes. ¡Eso hizo que la PNL fuera divertida! En esa época, Thunder me presentó a su aprendiz, Cole. Y más tarde, otros me presentaron a Hannes. Entonces, los tres comenzamos a “dividir y conquistar” el campo de la PNL. Me intrigaba la posibilidad de construir un chatbot que sonara inteligente. Cole y Hannes se inspiraron en las poderosas cajas negras de las redes neuronales. Al poco tiempo, estaban abriendo la caja negra, mirando dentro y describiéndome lo que encontraron.

Ver más
  • PART 1WORDY MACHINES
    1 Packets of thought (NLP overview)
    2 Build your vocabulary (word tokenization)
    3 Math with words (TF-IDF vectors)
    4 Finding meaning in word counts (semantic analysis)
    PART 2DEEPER LEARNING (NEURAL NETWORKS)
    5 Baby steps with neural networks (perceptrons and backpropagation)
    6 Reasoning with word vectors (Word2vec)
    7 Getting words in order with convolutional neural networks (CNNs)
    8 Loopy (recurrent) neural networks (RNNs)
    9 Improving retention with long short-term memory networks
    10 Sequence-to-sequence models and attention
    PART 3GETTING REAL (REAL-WORLD NLP CHALLENGES)
    11 Information extraction (named entity extraction and question answering)
    12 Getting chatty (dialog engines)
    13 Scaling up (optimization, parallelization, and batch processing)
  • Citar Libro

Descargar Natural Language Processing in Action

Tipo de Archivo
Idioma
Descargar RAR
Descargar PDF
Páginas
Tamaño
Libro
Inglés
545 pag.
9 mb

¿Qué piensas de este libro?

No hay comentarios

guest
Valorar este libro:
0 Comentarios
Comentarios en línea
Ver todos los comentarios
0
Nos encantaría conocer tu opinión, comenta.x