Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
¿Qué es el Procesamiento del Lenguaje Natural?
Muchos de vosotros trabajáis a diario con datos numéricos, ya sea en un programa de hoja de cálculo como Microsoft Excel o en un entorno de programación como Jupyter Notebook. Cuando trabajas con números, dejas el cálculo numérico en manos del ordenador. No hay casi ninguna razón para que no lo hagas.
Los ordenadores son rápidos y precisos con los cálculos numéricos, mientras que el cerebro humano se atasca con facilidad. Si se les pidiera que calcularan 24 × 36 × 48, los humanos no dudarían ni un segundo en sacar una calculadora o un ordenador y dejar que las máquinas hicieran el trabajo pesado.
Pero, cuando se trata de analizar datos textuales, las poderosas máquinas de hacer números no han sido tan buenas, históricamente hablando. Los humanos utilizan ordenadores para hacer números, pero dependen del cerebro humano para analizar documentos con texto. Hasta la fecha, esta incapacidad para trabajar con texto ha limitado el alcance del trabajo que podían realizar las máquinas.
Esto está a punto de cambiar. En muchos sentidos, este cambio ya está en marcha. Las máquinas son ahora capaces de procesar texto y audio de formas que la mayoría de los humanos habrían considerado mágicas hace sólo dos décadas.
Piensa en lo mucho que dependes de los ordenadores para analizar y dar sentido a los datos textuales en el mundo cotidiano que te rodea. He aquí varios ejemplos:
- Búsqueda en Google
-
Busca en toda la Web y emerge resultados de búsqueda relevantes.
- Google Gmail
-
Autocompleta frases mientras escribes correos electrónicos.
- Google Translate
-
Convierte texto y audio de un idioma a otro.
- Amazon Alexa, Apple Siri, Google Assistant, Microsoft Cortana
-
Da órdenes de voz y controla los aparatos de tu casa.
- Chatbots de Atención al Cliente
-
Haz preguntas relacionadas con la cuenta y obtén respuestas (en su mayoría razonables).
Estas tecnologías se han arraigado en nuestra vida cotidiana de forma tan gradual y fluida que casi olvidamos lo mucho que las utilizamos día a día. La historia de las máquinas capaces de trabajar con datos textuales no ha hecho más que empezar. En los últimos años se han producido avances bastante espectaculares en este campo y, con el tiempo, veremos cómo los ordenadores se encargan cada vez más del trabajo que antes sólo eran capaces de hacer los humanos.
¿Por qué debería leer este libro?
El procesamiento del lenguaje natural (PLN) es uno de los temas más candentes de la IA en la actualidad. Tras años de retraso con respecto a otros campos del aprendizaje profundo, como la visión por ordenador, la PNL sólo ha ganado popularidad recientemente. Aunque Google, Facebook y OpenAI han abierto grandes modelos de lenguaje preentrenados para facilitar el PNL, muchas organizaciones siguen teniendo dificultades para desarrollar y producir aplicaciones de PNL. Esta guía práctica te ayudará a aprender este campo rápidamente.
¿Qué necesito saber ya?
Este libro no es para principiantes. Vamos a suponer que ya sabes algo sobre aprendizaje automático y que ya has utilizado Python y bibliotecas como NumPy, pandas y matplotlib.
Para más información sobre Python, visita el sitio web oficial de Python, y para más información sobre Jupyter Notebook, visita el sitio web oficial de Jupyter. Para refrescar conocimientos de cálculo, álgebra lineal, probabilidad y estadística de nivel universitario, lee la Parte I del libro de texto Deep Learning (MIT Press) de Ian Goodfellow, Yoshua Bengio y Aaron Courville. Para refrescar conocimientos sobre aprendizaje automático, lee The Elements of Statistical Learning (Springer) de Jerome H. Friedman, Robert Tibshirani y Trevor Hastie.
¿De qué trata este libro?
Si tienes conocimientos básicos a intermedios de aprendizaje automático y experiencia en programación con Python, aprenderás a crear e implementar aplicaciones de PNL del mundo real en tu organización.
Te guiaremos por el proceso sin atascarte en la teoría.
Después de leer este libro y practicar por tu cuenta, deberías ser capaz de hacer losiguiente:
-
Comprende cómo funcionan los modelos de PNL más avanzados.
-
Aprende las herramientas del oficio, incluidos los frameworks más populares hoy en día.
-
Realiza tareas de PNL como clasificación de textos, búsqueda semántica ycomprensión lectora.
-
Resuelve problemas utilizando nuevos modelos basados en transformadores y técnicas como el aprendizaje por transferencia.
-
Desarrolla modelos de PNL con un rendimiento comparable o superior al de los sistemas listos para usar.
-
Implementación de modelos en producción y monitoreo y mantenimiento de su rendimiento
-
Implementa un conjunto de algoritmos de PNL utilizando Python y PyTorch.
El objetivo de nuestro libro es esbozar los conceptos y herramientas necesarios para que desarrolles la intuición necesaria para aplicar esta tecnología a los problemas cotidianos en los que trabajas. En otras palabras, se trata de un libro aplicado, que te permitirá crear aplicaciones para el mundo real. Este libro no contendrá toda la teoría relevante para la PNL, y con el tiempo tendrás que complementar tus conocimientos en este ámbito utilizando otros recursos, pero te permitirá iniciarte y avanzar en este campo.
El libro utilizará un enfoque práctico, introduciendo algo de teoría pero centrándose sobre todo en la aplicación de técnicas de lenguaje natural para resolver problemas del mundo real. Los conjuntos de datos y el código están disponibles en línea como cuadernos Jupyter en nuestro repositorio de GitHub.
¿Cómo está organizado este libro?
Este libro está organizado en tres partes.
- Parte I (Capítulos1-3)
-
Estos capítulos se centran en una visión general de alto nivel de la PNL, incluyendo la historia de la PNL, las aplicaciones más populares en este campo y cómo utilizar modelos preentrenados para realizar aprendizaje de transferencia y resolver rápidamente problemas del mundo real.
- Parte II (Capítulos 4-8)
-
En estos capítulos, nos sumergiremos en los detalles de bajo nivel de la PNL, como el preprocesamiento del texto, la tokenización y la incrustación de palabras. Aunque no son los temas más atractivos, son fundamentales en el campo de la PNL. A continuación, exploramos los enfoques de modelado más eficaces en la PNL actual, como los transformadores, los mecanismos de atención, las redes neuronales recurrentes de vainilla, la memoria a largo plazo (LSTM) y las unidades recurrentes con compuerta (GRU). Por último, lo unimos todo para presentar el año decisivo en PNL: el llamado momento ImageNet de 2018, cuando los grandes modelos lingüísticos preentrenados batieron los récords de rendimiento anteriores y se hicieron ampliamente accesibles para su uso tanto por investigadores como por ingenieros aplicados.
- Parte III (Capítulos 9-11)
-
Aquí trataremos el aspecto más importante de la PNL aplicada: cómo producir los modelos desarrollados para que aporten un valor tangible a las organizaciones. Discutiremos el panorama de las herramientas disponibles hoy en día, y compartiremos nuestras opiniones sobre ellas. También trataremos temas especiales que, en sentido estricto, no están relacionados con la PNL, pero que pueden afectar al modo en que se producen los modelos de PNL.
Aunque no podremos cubrir todos los temas de PNL en este libro, incluidos los temas más avanzados para veteranos experimentados, seguiremos apoyando a nuestra comunidad con material nuevo y actualizado (incluido el código) en línea a través de nuestro sitio web oficial del libro y de GitHub. Por favor, ¡sintoniza con las actualizaciones cuando termines de leer este libro!
Como nota al margen, vale la pena mencionar que este libro se escribió íntegramente en Jupyter Notebooks. Puedes encontrar el código de este libro en nuestro repositorio de GitHub. Te animamos a que ejecutes los experimentos de los cuadernos mientras lees para que te familiarices con la aplicación de las ideas presentadas en código real (pero también porque hemos omitido algunas salidas en este libro por limitaciones de espacio).
Convenciones utilizadas en este libro
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
-
Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.
Constant width
-
Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Constant width bold
-
Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.
Constant width italic
-
Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.
Consejo
Este elemento significa un consejo o sugerencia.
Nota
Este elemento significa una nota general.
Advertencia
Este elemento indica una advertencia o precaución.
Utilizar ejemplos de código
El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en https://github.com/nlpbook/nlpbook.
Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a bookquestions@oreilly.com.
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requierepermiso.
Agradecemos la atribución, pero en general no la exigimos. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "Procesamiento aplicado del lenguaje natural en la empresa ", de Ankur A. Patel y Ajay Uppili Arasanipalai (O'Reilly). Copyright 2021 Human AI Collaboration, Inc. y Taukren, LLC, 978-1-492-06257-8".
Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en permissions@oreilly.com.
Aprendizaje en línea O'Reilly
Nota
Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.
Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos, conferencias y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.
Cómo contactar con nosotros
Dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-998-9938 (en Estados Unidos o Canadá)
- 707-829-0515 (internacional o local)
- 707-829-0104 (fax)
Puedes acceder a la página web de este libro, donde figuran las erratas y cualquier información adicional, en https://oreil.ly/Applied_NLP_in_the_Enterprise.
Envía un correo electrónico a bookquestions@oreilly.com para comentar o hacer preguntas técnicas sobre este libro.
Para obtener noticias y más información sobre nuestros libros y cursos, visita nuestro sitio web en http://www.oreilly.com.
Encuéntranos en Facebook: http://facebook.com/oreilly
Síguenos en Twitter: http://twitter.com/oreillymedia
Míranos en YouTube: http://youtube.com/oreillymedia
Agradecimientos
Queremos dar las gracias a todo el equipo de O'Reilly por ayudarnos a hacer posible este proyecto, empezando por Jonathan Hassell por defender y dar luz verde a este libro en el verano de 2019. Queremos enviar un gran saludo a nuestra editora, Melissa Potter. Nos ha ayudado mucho a cumplir el calendario durante 2020, a pesar de todos los retos de COVID-19.
Muchas gracias a Jeremy Howard por proporcionarnos valiosos consejos desde el principio y por compartir el código fuente de FastDoc, una increíble herramienta para convertir cuadernos Jupyter a AsciiDoc que hemos utilizado durante todo el proceso de desarrollo. Su trabajo con Rachel Thomas, Sylvain Gugger, Zach Mueller, Hamel Husain y muchos colaboradores de fastai para hacer que el aprendizaje profundo sea accesible y práctico ha sido una enorme fuente de inspiración para este libro.
Nuestra editora de producción, Deborah Baker, y la Directora de Servicios de Contenido, Kristen Brown, ayudaron a pulir este libro hasta su forma final con la ayuda de Kim Cofer, David Futato, Karen Montgomery, Kate Dullea y los equipos de Piper Editorial Consulting, LLC, y nSight, Inc. Hicieron que el tramo final del proceso de escritura fuera pan comido.
Un agradecimiento especial a Artiom Tarasiuk, Victor Borges y Benjamin Muskalla por dedicar incontables horas a leer y revisar el libro y por proporcionarnos comentarios críticos a lo largo del proceso. Estamos muy agradecidos por su afinidad y generosidad a la hora de hacer de este proyecto lo que es hoy.
Ajay
Ante todo, quiero dar las gracias a mis padres, Uppili y Hema, que han trabajado incansablemente para apoyarme durante una pandemia furiosa, y a mi hermana, Anika, en quien tengo puestas las mayores esperanzas.
Hay muchas otras personas con las que tengo una deuda de gratitud inconmensurable. Gayathri Srinivasan, que fue mi mentor hace tantos años y fue la persona lo suficientemente amable como para dar a un estudiante de secundaria cualquiera acceso a un superordenador que me introdujo por primera vez en la idea de que las máquinas pueden aprender. Ganesan Narayanaswamy, por su generosidad al proporcionarme los recursos informáticos y la infraestructura necesarios para apoyar mi investigación a través de la OpenPOWER Foundation. Diganta Misra, Trikay Nalamada, Himanshu Arora y mis otros colaboradores en Landskape, que han pasado incontables horas realizando experimentos y uniéndose a mí en las discusiones de las 2 de la madrugada sobre los mecanismos de la atención por nada más que una pasión compartida por el aprendizaje profundo y el deseo de contribuir a la comunidad investigadora. Su aliento y entusiasmo por el libro y por mi trabajo en general han sido extraordinariamente valiosos.
Ankur
Estoy muy contenta de formar parte de una familia increíblemente generosa y solidaria, a la que debo todo. Quiero dar las gracias a mis padres, Amrat e Ila, por sus sacrificios a lo largo de los años y por invertir en mí y en mi educación; sencillamente, sin ellos no estaría aquí haciendo lo que hago hoy. Quiero dar las gracias a mi hermana, Bhavini, y a mi hermano, Jigar, por defenderme siempre. Y estoy muy agradecido a mi hermosa novia, Maria Koval, y a nuestro golden retriever, Brody, que han soportado pacientemente muchas noches y fines de semana escribiendo y programando. ¡Gracias a todos!
También quiero dar las gracias a mis cofundadores de Glean, Howard Katzenberg y Alexander Jia, y a mi buen amigo y cofundador de Mellow, Nate Collins, por su increíble paciencia y apoyo durante todo el proceso de escritura. Soy realmente afortunada por tener amigos y colegas tan increíbles: aportan felicidad a mi vida cada día.
Get Procesamiento del Lenguaje Natural Aplicado en la Empresa now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.