Procesamiento de idiomas naturales | Data Science Rebalanced | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Procesamiento de idiomas naturales

teacher avatar Data Science Rebalanced, Data Scientists

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Avance de la clase

      1:47

    • 2.

      ¿Qué es la PNL?

      2:10

    • 3.

      Resumen de cursos

      1:37

    • 4.

      Cómo cargar un cuaderno

      1:51

    • 5.

      spaCy

      2:14

    • 6.

      Bibliotecas de Python

      0:39

    • 7.

      Acerca de los datos

      3:52

    • 8.

      Términos de PNL

      5:03

    • 9.

      Datos de texto

      12:09

    • 10.

      Frecuencia a plazo

      9:47

    • 11.

      Reconocimiento de entidades

      8:29

    • 12.

      Parte de la etiqueta de voz y el análisis de dependencia

      6:52

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

264

Estudiantes

--

Proyecto

Acerca de esta clase

Si alguna vez has querido aprender a analizar datos de texto con Python, ¡este curso es para ti!

Leah es una científica de datos en una gran institución financiera y descubrió que existe una brecha grave entre las habilidades y técnicas que los estudiantes aprenden en la escuela versus lo que realmente necesitan en el trabajo en el mundo real. Ella usará su experiencia para enseñarte los fundamentos del procesamiento de idiomas naturales (PNL).

Este curso está dirigido a aspirantes a científicos y programadores de datos que buscan ampliar sus conocimientos sobre PNL.

En este curso aprenderás:

  • Terminología de PNL
  • Técnicas de preprocesamiento
  • Reconocimiento de entidades
  • Frecuencia a plazo
  • Análisis de dependencia
  • Etiquetado con partes de habla

Podrás obtener experiencia práctica con cada concepto analizando 500 reseñas de productos de Amazon Home y Kitchen.

Durante el curso pasarás por ejemplos de código en Python con un cuaderno de Jupyter. También utilizarás bibliotecas populares como pandas, spaCy, y aprendizaje de cigüeñal. Para este curso no se necesitan conocimientos previos de PNL; sin embargo, se recomienda un conocimiento práctico de conceptos básicos de programación (funciones, bucles, etc.) y habilidades intermedias de Python.

Música de TimMoor

Conoce a tu profesor(a)

Teacher Profile Image

Data Science Rebalanced

Data Scientists

Profesor(a)

Leah Berg and Ray McLendon are Data Scientists at a large financial institution and have over 15 years of combined experience. They have a passion for seeing people grow and become the best versions of themselves. When Leah and Ray graduated from university, they struggled at their first Data Scientist jobs and quickly realized that academia only told half the story.

While their degree programs placed a large emphasis on machine learning algorithms with perfectly cleaned and balanced data sets, they found the opposite true in the industry. Every problem they encountered required 90% of their time spent focusing on messy and imbalanced data sets, as well as the people generating those data sets.

Leah and Ray created Data Science Rebalanced to help data scientists new to the... Ver perfil completo

Habilidades relacionadas

Desarrollo Lenguajes de programación Python
Level: Beginner

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Tráiler/avance de la clase: Hola a todos, Bienvenidos al curso de hoy que está sobre el procesamiento del lenguaje natural en Python. Mi nombre es Leah y soy científico de datos en una gran institución financiera con cerca de cuatro años de experiencia en mi compañero de trabajo, Ray y yo realmente queríamos hacer estos videos porque notamos que hay una enorme brecha entre el habilidades que aprendes en la escuela versus las que realmente necesitas en el mundo real. Por lo que todos nuestros videos van a estar enfocados en usar conjuntos de datos del mundo real, problemas del mundo real, y también darte las habilidades que necesitas para resolver aquellas que no necesariamente enseñan en la escuela. Entonces estamos muy emocionados de tenerte hoy y esperamos que te quedes por ahí. En la lección de hoy. Vamos a estar cubriendo los conceptos básicos del procesamiento del lenguaje natural, incluyendo algunas técnicas de preprocesamiento y parte del etiquetado del habla Reconocimiento de Entidades Nombradas, análisis de dependencia y frecuencia de término. Y quizá no conozcas nada de eso significa todavía, pero serás un profesional al final de este video. Este tutorial está realmente destinado a ser amigable para principiantes. Vamos a empezar desde el principio con cuadernos Jupyter. Podrás seguir con lo que estoy haciendo y usar algunas bibliotecas realmente populares como pandas, Spacey, y scikit aprender. Ahora estos son realmente populares en la comunidad de ciencia de datos en general, pero sobre todo para el procesamiento del lenguaje natural. El dato que vamos a utilizar para el curso de hoy es un conjunto de varios miles de reseñas de Amazon. Elegí opiniones de Amazon porque casi todo el mundo ha comprado algo de Amazon a la 1 y lo más probable es que haya dejado tu opinión. Entonces este es un conjunto de datos realmente familiar para todos. Específicamente, estaremos echando un vistazo a la categoría de casa y cocina. Pero también te vincularé al conjunto de datos de donde saqué esto. Y podrás ver un montón de diferentes reseñas de categorías Amazon como tech AB, maquillajes, cualquier cosa por el estilo. Y con eso, empecemos. 2. ¿Qué es NLP?: Entonces en el curso de hoy, vamos a estar hablando de procesamiento del lenguaje natural o PNL con Python, un poco de antecedentes sobre lo que realmente es PNL. Es realmente a un nivel alto, solo una forma de que las computadoras entiendan o procesen el lenguaje humano. Si tomas otros cursos en un LP, es posible que escuches el término comprensión del lenguaje natural. Y algunos cursos hacen la distinción entre el procesamiento del lenguaje natural como realidad descomponiendo los datos de texto en una forma que las computadoras pueden entenderlo. Y entonces la comprensión del lenguaje natural es reconocer las relaciones entre las palabras dentro de la oración. Relaciones entre sentencias, o incluso relaciones entre todos los documentos el uno al otro. Entonces un par de ejemplos de PNL con los que probablemente estés familiarizado en tu propia vida. O nuestro número uno, tu Amazon, Alexa. Mucha gente tiene estos dispositivos en sus casas y eres capaz de hacer una pregunta como Alexa, ¿Cuál es el clima? Y ella te devolverá una respuesta diciendo, el clima es actualmente de 65 grados en pulsar. Entonces detrás de bambalinas, realmente lo que Alexa está haciendo es usar algún procesamiento del lenguaje natural o comprensión del lenguaje natural para poder tomar tu texto o discurso que realmente dijiste en voz alta. Y luego convertir eso en texto escrito y luego convertir eso en algo que la computadora pueda entender. Procesos que obtienen la respuesta y luego te la envían de vuelta. Ahora, Amazon ha puesto mucho tiempo y energía e investigación en esto. Realmente hacen que todo parezca súper sencillo. Haces una pregunta rápida, obtienes una respuesta muy rápida, pero en realidad pasa mucho debajo del capó. Entonces otro ejemplo de PNL con el que podrías estar familiarizado en tu vida diaria es un texto predictivo en el iPhone. Ahora si no estás familiarizado con esto, aquí es donde empezarás a escribir una frase en tu mensaje de texto. Y entonces Apple intentará predecir lo que quieres decir junto a él, hacerlo más fácil para que no tengas que escribir realmente todas tus palabras. Podrías simplemente hacer clic en los botones para lo que quieras ver. Entonces en el ejemplo aquí hemos tecleado quieren agarrar el almuerzo. Se lo vamos a mandar a Jane. Y entonces Apple nos está dando algunos pequeños emojis que podríamos querer ponerlo con él, y también algunas otras palabras que quizá quisiéramos incluir ahí también. 3. Descripción resumen y herramientas del curso: En el curso de hoy, como mencioné antes, realmente estamos empezando a un nivel amistoso muy principiante. Entonces si no sabes mucho de PNL, Eso es genial. Vamos a aprender todo eso en este curso. Y luego si, también si realmente no estás familiarizado con los espacios bibliotecarios, no puedo aprender y Pandas, Vamos a pasar por esos también. Ahora sí he enumerado aquí que tal vez quieras tener algo de experiencia con Python 3. Esto realmente no es extremadamente necesario. Vamos a estar usando Cuadernos Jupyter. Por lo que deberías poder seguir muy fácilmente con lo que estoy haciendo. Pero voy a estar usando algunas funciones más avanzadas o intermedias dentro de Pandas, como aplicar enunciados con funciones lambda. Pero también estaré hablando a través de esos a medida que pasamos por todo. Los temas que vamos a cubrir en el curso de hoy, nuestra frecuencia de término de preprocesamiento, etiquetado de parte del habla denominado reconocimiento de entidades y análisis de dependencia. Ahora estas son realmente la punta del iceberg cuando se trata del procesamiento del lenguaje natural. Porque realmente para cualquiera de estos, puedes tener un curso completo sobre ellos, pero aquí te vamos a dar lo básico. Y entonces deberías poder aplicar tu comprensión en los problemas del mundo real que ves, las herramientas para el curso que estaremos usando nuestros Cuadernos Jupyter. Como dije, voy a estar corriendo esto a través de PyCharm, nauseas, mi IDE preferido, pero pocos están usando Anaconda. Eso está perfectamente bien. Tan sólo como puedas ejecutar un cuaderno de Júpiter de alguna manera, eso es genial. Y como ya he mencionado antes, las bibliotecas que vamos a estar utilizando principalmente nuestros Pandas, scikit-learn y SPAC. Y de nuevo, si no sabes nada de esas bibliotecas, eso está totalmente bien. Hoy vas a aprender. 4. Carga un cuaderno de Jupyter: Muy bien, entonces ahora vamos a empezar a caminar por algún código que debiste haber descargado en tu archivo, el cuaderno de Júpiter de la lección, así como el conjunto de datos de que la forma en que voy a abrir esto es a través de PyCharm. Este es mi editor preferido. Generalmente no me gusta usar Anaconda solo porque realmente no juega bien cuando estás intentando crear archivos ejecutables y hacer un desarrollo de software más tradicional. Entonces voy a estar usando PyCharm, pero si tienes Anaconda o tu IDE favorito, eso no es uno de esos a un cargarlo en tu computadora. Siéntase libre de hacer eso. Pero sólo voy a abrir un cuaderno de Júpiter yendo a la terminal y luego escribiendo a Júpiter. Y lo que esto va a hacer es dar vuelta eso. Por lo que deberías poder hacer esto en cualquier IDE que estés usando, pero solo prefiero usar PyCharm. De acuerdo, Así que podemos seguir adelante y empezar ahora que tenemos abierto nuestro cuaderno de Júpiter, he incluido mucho texto aquí. Entonces esto podría ser realmente un cuaderno independiente de Júpiter con esta información de fondo, pero vas a estar recibiendo mucho de esto a través las diapositivas que estoy hablando en otras partes de este video. Por lo que muchas veces podría saltarme esto, pero si alguna vez necesitas volver atrás y referirte a algo, di que te olvidaste de qué tokenización había algo que puedes sentirte libre de solo mirar en el Cuaderno de Jupyter en estas secciones de texto, También incluí un enlace para descargar PyCharm. Si quieres hacer eso. Acabo de descargar la edición comunitaria, que es gratuita. Voy a salir a ese enlace sólo para mostrarles cómo se ve eso. Este es mi entorno de desarrollo preferido, como he dicho, pero sé que mucha gente usa ya sea Anaconda porque viene con Python y todas esas cosas buenas. O VS Code y otro popular. Así que escoge lo que funcione para ti. Pycharm Community Edition es gratis, por lo que solo tienes que descargar eso e instalarlo en tu computadora si quieres jugar con eso. 5. spaCy: Ahora bien, si eres completamente nuevo en el procesamiento del lenguaje natural en Python, es posible que no hayas oído hablar de esta biblioteca llamada spacey. Lo que básicamente es, es solo una biblioteca libre de código abierto que es realmente popular en la fase de Uso de PNL. Mucha gente lo usa para sus ductos preentrenados, los cuales se almacenan como modelos. Entonces la forma en que el espacio almacena las cosas es un poco complicada. Sabe un poco de acostumbrarse, pero lo vamos a descomponer. Y resumen aquí es que vamos a tomar algunos textos para ponerlo en este motor de PNL, que hace muchas cosas detrás de bambalinas. Nos va a tokenizar nuestras palabras. Se, va a hacer algún etiquetado de parte del discurso, hacer algún análisis denominado reconocimiento de entidad. Y realmente también puedes agregar en tus propios pasos personalizados si lo deseas. Pero esto es sólo un ejemplo aquí. Y una vez que todo eso se hace, básicamente se ahorra como lo que se llama un DACA. Y luego desde ahí dentro del muelle, se puede acceder a todas estas cosas. Y tendrá mucho más sentido cuando pasemos por el tutorial en realidad, pero esto es solo una visión general de alto nivel por ahora. Entonces como mencioné en las diapositivas, vamos a estar usando una biblioteca llamada SPAC, que es extremadamente popular para el procesamiento del lenguaje natural en Python. Y una de las cosas que tienes que hacer aquí es primero instalar un modelo de que el espacio lo va a usar. Cuentan con versiones pequeñas, medianas y grandes de modelos. También puedes entrenar tu propio modelo si lo deseas. Entonces para esta demo, vamos a descargar el pequeño modelo inglés que fue entrenado en texto de blogs, noticias y comentarios. Primero voy a salir y mostrarte cómo lucen estos modelos en la documentación de SPAC. Por lo que puedes ver aquí mismo estamos usando la web English Core pequeña, y te da un poco más de información sobre esos. Pero también se puede ver incluso medianos por ahí, grandes y tienen algunas otras versiones también. También hay es importante para muchos idiomas diferentes. Entonces si estás trabajando con datos que están en otro idioma distinto al inglés. Puedes salir aquí y descargar, digamos, una modelo española si quieres hacer eso. Por lo que este primer paso aquí donde acaba de descargar el modelo. Y ya he descargado esto. Entonces probablemente me vaya a dar un mensaje diciendo que ya lo he descargado. Pero para ti, probablemente tendrás que sentarte a través de la descarga que no debería tardar demasiado. Está bien. Entonces es decir que ya lo tengo descargado. Eso está totalmente bien. Tan solo asegúrate de obtener tu se descarga. 6. Bibliotecas de Python: Tener todas las importaciones que vamos a estar usando para este conjunto de datos y análisis. Entonces vamos a estar usando pandas spacey, scikit-learn, una herramienta de visualización llamada ladrillo amarillo y también la biblioteca de caminos. También seguimos adelante y cargamos en el modelo inglés de Spacey y solo etiquetamos eso como PNL porque estaremos usando eso más adelante. Entonces voy a importar todos esos. Si estás ejecutando esto por primera vez, probablemente necesitemos instalar todas estas bibliotecas también. Así que solo asegúrate de hacer eso. También he incluido un archivo de requisitos. Por lo que si estás usando PyCharm, puedes hacer tu propio entorno virtual y hacer solo una instalación pip desde el archivo de requisitos. Y descargará todo lo que necesites a partir de ahí. 7. Acerca de los datos: A continuación, quería dar un poco de fondo sobre estos datos que estamos usando. Enorme grito a Julian Macaulay en la Universidad de California, San Diego, quien en realidad armó estos datos. Proporciona una tonelada de diferentes reseñas de Amazon desde atrás en 1996 hasta 2014. Y para nuestros propósitos hoy, lo que vamos a hacer es solo analizar un subconjunto de 500 revisiones de productos de cocina y hogar de Amazon. Por lo que además de las reseñas, eso incluye los modos de calificaciones, texto, y saludabilidad, Julianne también nos da algunos metadatos del producto, como descripciones sobre la categoría del producto, información, precio, imagen de marca características, y también enlaces para el curso de hoy, solo vamos a mirar los datos de revisión. Por lo que estas serán sólo las lecturas, el texto de las revisiones así como cualquier voto de amabilidad. Entonces, ¿cuántas personas encontraron útil esta revisión de producto? Me gusta mucho este conjunto de datos porque la mayoría de nosotros probablemente hemos comprado algo de Amazon en algún momento de nuestras vidas. Y potencialmente he escrito una reseña. Entonces esto es realmente familiar para muchos de nosotros. También me gustó mucho este dato porque es un ejemplo impresionante de cómo los humanos realmente escriben o se comunican a través del texto. Y eso va a incluir un montón de errores tipográficos corridos en oraciones, todos gorras para incluir emoción, muchos puntos de exclamación y cualquier cosa bajo el sol que se te ocurra prácticamente. tanto que si estuviéramos lidiando con algún tipo de texto formal, no tendríamos tantos de estos errores y más emoción que la gente usa en general de la forma en que podrían escribir reseñas de productos. Entonces saldré a estos datos y les mostraré lo que en realidad hay por ahí. Puede sentirse libre de salir a este sitio web y echar un vistazo. Incluye una tonelada de diferentes categorías de revisión de productos. Si sólo vamos a estar centrándonos en la sección de casa y cocina. Pero si quisieras mirar críticas para libros, CBS Sports, lo que quieras. Ahí afuera hay algunos datos para ello. Y aquí da mucha información sobre lo que realmente significan estos conjuntos de datos. Así que siéntete libre de ir y leer esos en tu propio tiempo. Julian también fue realmente agradable proporcionarnos un par de funciones para poder analizar los datos porque sí viene en formato JSON. Y en última instancia queremos meterlo en un DataFrame de Pandas para poder manipularlo un poco más fácil. Por lo que ya ha escrito estas dos funciones para nosotros. Uno para analizar la ruta del archivo y luego quería crear realmente un DataFrame a partir del archivo JSON. Entonces vamos a seguir adelante y usar esas funciones. Y luego aquí solo estamos leyendo en el DataFrame y luego tomando una muestra de 500 elementos, esta opción de estado aleatorio, puedes establecer eso a lo que quieras. Pero si quieres obtener el mismo conjunto de datos con el que estoy trabajando, solo tienes que dejar esto en uno, pero esto es útil para la reproducibilidad. Y así que adelante y corre eso. Y tomará un poco porque en realidad hay alrededor de 0.5 millones de revisiones. Están en formato JSON. Y luego tenemos que analizar a través de ese JSON para obtener el DataFrame de Pandas que queremos, por el bien de este tutorial y no tener las cosas que se ejecuten súper largas, solo vamos a tomar un subconjunto de 500 de esas. Y así dejaremos que eso funcione por un minuto y luego regresaremos en un segundo. Entonces parece que estamos cargados y echemos un vistazo a cómo se ve realmente el DataFrame. Por lo que puedes ver aquí, los pandas nos dan este ID único, entonces tenemos este ID de revisor. Otra idea parece que tal vez para el producto que el revisor nombre una pieza diciéndonos cuántas personas encontraron esto útil versus no lo encontraron útil. el texto de la revisión, que será lo principal en lo que nos enfocamos en la lección de hoy, el puntaje general de cinco, el resumen de la revisión, y luego algunas columnas sobre lo que hay en la revisión. Por lo que puedes ver por aquí tenemos pocos del 2013, mucho del 2011. Pero estos datos sí se remontan hasta 1986. 8. Términos de la NLP: Entonces, cuando empiezas en el espacio PNL, probablemente vas a empezar a escuchar muchos términos que no habías escuchado antes. Lo sé, sobre todo cuando empecé, fue un poco abrumador escuchar el diferente vocabulario que usó para esto. Entonces en este curso vamos a empezar definiendo todos esos términos para luego mostrar cómo se usan. En primer lugar, vamos a empezar con token, y se puede pensar en esto como una agrupación de personajes. Entonces en este ejemplo, estamos tokenizando a nivel de personaje. Y esto significa que estamos tomando una sentencia donde estamos empezando con ella se le ofreció el trabajo hace 11 meses y tomando a cada personaje individual y haciendo de eso una ficha. Ahora esto es realmente útil cuando tienes textos cortos como nombres de archivo o en el ejemplo de los datos que estamos usando. Pero ese podría ser el título de una visión diferente. Por lo que en esos casos podría no haber suficientes textos ahí para poder marcar iones a nivel de palabras muy bien, sobre todo con nombres de archivo. A menudo la gente pondrá guiones bajos u otro tipo de caracteres ahí para que en realidad no podamos separarnos en espacios en blanco. Por lo que muchas veces puede ser útil desglosarlo a nivel de carácter y luego enviarlo a otros pasos de procesamiento. También puedes hacer fichas a nivel de palabra o un unigrama. Entonces en este ejemplo, estamos tomando esa misma frase y luego dividiéndola de una manera diferente. Entonces en realidad lo estamos dividiendo en lo que se conoce como unigramas, que son básicamente pueden pensar como palabras. Entonces aquí están nuestras fichas, se le ofreció, así sucesivamente y así sucesivamente. Ahora también puedes agrupar fichas en grupos de dos como pozos. En lugar de descomponer las cosas por palabras, podemos juntar dos palabras. Por lo que esto toma nuestra sentencia de que le ofrecieron el trabajo hace 11 meses para dividirlo en dos fichas de palabras, le ofrecieron el trabajo hace 11 meses. bigramas también son muy interesantes porque nos dieron información posicional. Entonces podemos decir, en este caso, nuestro primer bigrama, ella fue podemos decir que ella es la primera palabra y era es la segunda palabra. Eso sería diferente, por ejemplo, de un bigrama llamado era ella sería la primera palabra o la primera ficha y no y entonces sería la segunda ficha. Ahora esto en la industria se conoce en realidad como n-gramos, y puedes hacer tantas agrupaciones como quieras. Por lo que los bigramas serían dos grupos de fichas juntos. Se pueden hacer trigramas para tres grupos de fichas juntos, así sucesivamente y así sucesivamente. También puedes hacer este tipo de fichas a nivel de personaje también. Por lo que podríamos agrupar SH y EW como tokens. Y cuando nos metamos en el código aquí vamos a ver algunos ejemplos de por qué podríamos querer usar unigramas versus bigramas. Pero los tokens son realmente la base del procesamiento del lenguaje natural. Entonces una vez que tengamos todo nuestro texto en tokens, lo que podemos hacer es agrupar los tokens juntos como lo documenta. Entonces vas a escuchar documentar aliados. Y normalmente lo que podrías pensar como un doc de Word o un trozo de papel o algo así. Pero en realidad, cuando estamos hablando en el procesamiento del lenguaje natural, un documento es solo un grupo de fichas. Entonces un ejemplo de eso es justo aquí tenemos documento uno. Eso fue que le ofrecieron el trabajo hace 11 meses. Pashas a una sola oración, pero aquí lo llamamos un documento. Y luego comparado con documento a, las dos niñas fueron al parque después de la escuela, vieron tres ardillas y ardillas. Observe que eso son dos frases lo, pero en conjunto que se agrupa como documento. Ahora podrías hacer esto con más que solo frases. Se puede hacer. Por ejemplo, los párrafos agrupan a esos juntos. Se pueden agrupar páginas o documentos completos también. A partir de ahí, subimos otro paso. Y cuando agrupamos documentos juntos, eso se conoce como corpus. Por lo que puedes pensar en un corpus como todo tu grupo de todos los documentos que tienes. Y un ejemplo de eso, tomamos los dos documentos que acabamos de ver en nuestro último ejemplo y decimos que los agrupamos y ese va a ser nuestro corpus. Por lo que en el curso de hoy, vamos a estar trabajando con reseñas de Amazon. Todas las revisiones amazónicas van a ser nuestro corpus de documentos. Por lo que el próximo término que vas a escuchar con bastante frecuencia en el procesamiento del lenguaje natural se llama vocabulario. Y el vocabulario es realmente solo los tokens únicos que están en tu corpus. Entonces es de nuevo un ejemplo de vocabulario que vamos a sacar de nuestro ejemplo que acabamos de ver un corpus. Y todo lo que vamos a hacer es conseguir las fichas únicas entre los dos documentos. Por lo que he enumerado todos esos a continuación y te darás cuenta, por ejemplo, que aparece en ambos documentos. Pero está listado como dos fichas individuales dentro del vocabulario aquí. Uno con mayúscula y otro con minúscula. Y esto será importante cuando hablemos más adelante de algunas de nuestras técnicas de preprocesamiento para que en realidad pudiéramos minúsculas potencialmente la sentencia. Y entonces sólo tendríamos una instancia de eso. 9. Tratamiento Preprocessing de datos de texto: Hablemos de pasos de preprocesamiento. Existen una amplia variedad de pasos de preprocesamiento que puedes hacer a tus datos. Y dependiendo de la situación, es posible que no utilices todos estos pasos de preprocesamiento de los que voy a hablar o incluso hacerlos en el mismo orden. Depende totalmente de tu caso de uso y de tus datos. Uno de los pasos de preprocesamiento más básicos que puedes hacer es en minúsculas tus datos. Esto realmente asegura que el caso no afectará a ninguna frecuencia de término son conteos de palabras que estás haciendo. Entonces tomemos una frase de ejemplo. Se le ofreció el trabajo hace 11 meses. Esto está escrito de la forma en que probablemente lo escribiríamos con mayúscula al principio de la sentencia y luego un punto al final. Entonces lo que haríamos esta frase como nuestro primer stub de preprocesamiento potencialmente sería solo para minúsculas todo. Entonces todo lo que estamos cambiando aquí es solo hacer ese capital como un s. minúscula Así que de esa manera cuando estamos identificando tokens, no la estamos contando con una S mayúscula, ELLA con una s minúscula como dos fichas separadas. Queremos que esos sean reconocidos como el mismo token. Ahora tal vez no quieras hacer cosas en minúsculas si estás potencialmente trabajando con datos donde es gente real escribiendo y tal vez están escribiendo en todos los mayúsculas para expresar cierto sentimiento. En ese caso, es posible que no quieras minúsculas todo. Es posible que desee extraer las palabras o fichas que están en todos los mayúsculas. Por ejemplo, el siguiente paso de preprocesamiento que voy a cubrir es eliminar la puntuación. Esto es exactamente lo que suena. Vamos a estar eliminando personajes como periodos, exclamación, signo de interrogación. Entonces si realmente algún tipo de puntuación, la razón por la que queremos hacer esto es solo para limpiar un poco nuestros datos para que no estemos contando estas puntuaciones como tokens. De verdad, probablemente no nos importan esos. Realmente nos importan las propias palabras dentro del texto. Y así muchas veces nos desharemos de los que están en nuestro preprocesamiento. No obstante, es posible que no quieras quitar puntuación si estás intentando separar oraciones dentro de un documento, quizá quieras dejar esas en para que tengas una forma de decir esto como una frase, esta es una segunda frase, así sucesivamente y así sucesivamente. Por lo que un ejemplo de eliminar la puntuación. Aquí tenemos nuestra misma sentencia. Tenemos un periodo al final para quitar la puntuacion que van a hacer es deshacernos de eso. Y verás en la siguiente frase que no tenemos puntuación. Y otro paso para el preprocesamiento que podría hacer es eliminar cualquier carácter numérico entre 0 y 9. A veces cuando estás tratando con datos de texto, quieres deshacerte de los números es porque no proporcionan mucho valor. A veces nos interesan las palabras mismas y no los números. Pero puede haber situaciones en las que quieras mantener números si estás lidiando con texto que tiene mucha fecha. Por lo que podría querer dejar a los adentro para poder identificar este texto era de este estado. A continuación te mostramos un ejemplo de sacar números. Simplemente vamos a quitar 11 de la sentencia con la que estamos trabajando aquí. Este paso de preprocesamiento de texto se trata de eliminar palabras stop. Y si antes no has trabajado en el procesamiento del lenguaje natural, probablemente no has oído hablar de lo que es una palabra stop. Realmente a lo que se reduce son sólo palabras sin importancia como y para cualquier cosa que sea corta y realmente no agrega mucho valor a una frase, pero también sucede mucho. Al igual que pensar en cuánto la palabra que se usa en el lenguaje humano. De verdad, si vamos a ver cuáles son las palabras más populares en una frase tratando de averiguar qué tipo de sentimiento está expresando alguien. El probablemente no va a agregar mucho valor. Por lo que muchas veces los quitamos. Entonces tal vez te estés preguntando, ¿cómo se te ocurre una lista de palabras stop, cuál es la lista de palabras stop? Diferentes bibliotecas que utilizan diferentes listas. Por lo que podrías probar una biblioteca que use una lista determinada. Podrías probar otra que use otra lista e incluir algunas otras palabras que el otro callejón sin salida. Y también puedes crear tu propia lista de palabras stop. Por ejemplo, si tienes un conjunto de datos que es altamente específico para decir en datos financieros, y no quieres incluir palabras como presupuesto o bang, cosas como esa que probablemente aparezcan en muchos datos de texto financiero. Puedes incluir un diccionario de todas esas palabras y luego decirle a Python que las elimine también y que las cuente como tus palabras stop. Para este ejemplo, las palabras stop que estoy usando sólo van a ser las típicas que usan muchas bibliotecas. Entonces vamos a terminar quitando ella era. Y así la sentencia que nos quedan es de empleos ofrecidos hace meses. El siguiente paso de preprocesamiento que voy a repasar es lo que se llama tokenización. Al inicio de este curso, hablamos de tokens y cómo se pueden obtener tokens que son palabras. Se pueden hacer fichas que son personajes. Realmente puedes crear cualquier tipo de tokens que quieras. Pero solo piensa en tokenizar un documento como separar el texto en unidades o fichas más pequeñas como hemos hablado antes. Ahora en este ejemplo, estamos tomando nuestra cadena o una sentencia ofrecida trabajo hace meses, y entonces sólo estamos dividiendo eso en espacios en blanco aquí. Yo lo estoy dividiendo para que sean palabras lo. Por lo que terminamos con ofrecido un trabajo hace meses, todo como unidades más pequeñas de la cadena original. En el procesamiento del lenguaje natural, probablemente vas a empezar a escuchar sobre el tallo y la lematización. Y estas son formas de tomar palabras y llevarlas a su forma original. Estas técnicas son bastante similares con un ligero matiz. Se deriva en realidad sólo corta los últimos caracteres de una palabra para llegar a la palabra raíz. Si bien la lematización en realidad utiliza partes del etiquetado del habla para poder convertir una palabra en su ruta para IMA. Ahora hay diferentes casos de uso por qué podrías usar el tallo y la lemmatización. Tiendo a preferir usar la lematización porque convierte las palabras en un formato más legible. Con el tallo, podrías tener una palabra que justo fuera las últimas letras y en realidad no sabes cuál era esa palabra. Y así a pesar de que prefiero la lematización y el tallo, vale la pena señalar que en realidad es mucho más rápido porque solo está cortando los últimos personajes en el token. tanto que la lematización necesita pasar por una ronda de etiquetado de parte del habla, potencialmente algún análisis de dependencia para poder obtener el lemma correcto para el token. lo que un ejemplo de frenar aquí es tomar la palabra problema y simplemente quitarse la última letra E para bajarla a su forma raíz. Ahora se podría pensar en problemas o problemas viejos, todos esos se transformarían en problemas. El TRO. Ahora la lematización toma una palabra basada en su parte del habla y la mete en su forma raíz. Por lo que es un poco más legible. Aquí se puede ver que tomamos ofrecido un se transformó en oferta la presente forma de la misma a los empleos se quedan los mismos meses. No nos quitamos el ácido apenas llega a su forma de raíz hace un mes y no cambia. Entonces el resultado final, si recuerdas dónde empezamos en esta sentencia, le ofrecieron el trabajo hace 11 meses. En realidad llegamos a ofrecer trabajo hace mes como nuestro conjunto final de tokens. Y esto ayuda a recortar muchas de las palabras que no nos importan y realmente bajar al significado de la frase. Empezaremos preprocesando nuestros datos. Puedes escribir absolutamente tus propias funciones para hacer todos estos pasos de preprocesamiento como minúsculas, groove y puntuación o números, stopwords, tokenize y lemmatizados. Pero SPAC en realidad es realmente agradable y lo hace todo en función de atributos de token si tienen muchos atributos diferentes en sus tokens. Y voy a salir a este enlace aquí, donde en la documentación se pueden ver todos los atributos que tienen. Entonces, para cada token, puedes ver si hay espacios en blanco en él. Se puede ver qué tipo de entidad es. Se puede ver la forma en minúscula del token. Se puede ver la forma del token. Tengo todos estos atributos diferentes. Entonces Spacey tiene muchos atributos de token diferentes, pero los tres que nos van a interesar por hacer nuestro preprocesamiento nuestro token. Ese lemma, que nos da el lemma del token, token dot es alfa, que elimina la puntuación y los números del token. Y entonces Token dot es stop, que elimina cualquier palabra stop en este texto aquí, solo estoy tomando este mismo ejemplo que pasé en las diapositivas. Por lo que le ofrecieron el trabajo hace 11 meses, aplicándole el procesamiento del lenguaje natural para ahorrarlo como documento. Y luego diciendo, regresemos el lemma por cada ficha del documento, siempre y cuando no sea un carácter numérico y tampoco sea una palabra stop. Y esta sintaxis, si no te resulta familiar, se llama lista de comprensión, lo que nos trae de vuelta una lista de los tokens limpios. Entonces vamos a ejecutar eso y luego imprimir el documento. Entonces como pueden ver aquí, cuando imprimimos nuestro muelle espacial, parece que no pasó nada. Básicamente es almacenar toda esta información entre bastidores. Queremos ver realmente los textos limpios imprimirán textos limpios. Y se puede ver aquí que con lo que nos queda es igual que tuvimos en nuestro ejemplo de diapositivas, sólo nos quedan los siguientes tokens. Ofrecer empleo hace mes. Entonces esto es sólo un ejemplo de juguete para ver cómo funciona esto. Pero lo que realmente vamos a querer hacer es tokenizar y limpiar todas nuestras críticas que tenemos. Por lo que hoy esto, escribí una función llamada texto preprocesado. Toma en un docket de SPAC y luego devuelve una cadena y doy un poco de información sobre lo que esta haciendo esta función. Esta es una práctica realmente buena que sugeriría altamente que te metas en el hábito de hacer es escribir lo que se llaman docstrings para poder hacer que tu código sea más legible y permitir que otros lo recojan más fácilmente. Y lo que estamos haciendo aquí realmente es preprocesar un dock de SPAC monetizándolo, eliminando cualquier palabra stop y luego eliminando caracteres no alfabéticos. Y de nuevo, estamos tomando un SPAC Doc, que es una secuencia de objetos token y volviendo a la limpieza al texto, el código real que estamos ejecutando es el mismo código que tenía arriba, excepto que lo que estoy haciendo es en lugar de devolviendo una lista, solo estoy uniendo todos los tokens juntos en una sola cadena. Esto hace que sea un poco más fácil de leer. Por lo que primero aplicaremos el modelo PNL a toda la columna de texto de revisión. Y lo estoy haciendo vía Pandas, aplique con una función Lambda. Si no estás familiarizado con lo que es una función lambda, es solo una función en línea donde x es nuestra variable aquí. Por lo que estoy aplicando eso a todos los datos dentro del texto de revisión. Y digo eso fuera como una nueva columna llamada espacio. El motivo por el que queremos ahorrar esto ya que sí se requieren muchos recursos informáticos para poder ejecutar spacey ya que está haciendo tantas cosas detrás bambalinas que vamos a estar haciendo referencia a esto una y otra vez. No queremos calcularlos varias veces. Entonces guarde eso en una nueva columna llamada spaceey doc. Y luego a partir de ahí vamos a trabajar en el doc de SPAC y aplicar esta función que acabamos de escribir aquí llamada texto preprocesado. Eso lo ahorraremos en este nuevo texto de revisión para limpiar columna. Entonces voy a correr eso y se va a aplicar a esas columnas, hacer nuestra nueva columna, y luego vamos a imprimir los resultados. Entonces imprimamos cómo es Spacey Doc. Esta es sólo las primeras cinco filas de nuestro DataFrame. Entonces lo que esto ha hecho es tokenizado, hecho algún Reconocimiento de Entidades Nombradas detrás , análisis de dependencias, muchas cosas. Y solo nos está mostrando que estos tokens están separados por comas y mezclas. Si imprimimos los textos de revisión limpiados que llegamos a nuestros textos originales para éste fue abrí la caja y para mi sorpresa, basado en todos nuestros pasos de preprocesamiento, lo que nos queda es caja abierta, sorpresa, scoop, manejar, enviar lo antes posible. Pero para que veas que estamos cortando muchas de estas palabras que probablemente no nos importan. Pasan mucho en el idioma inglés y realmente bajando a las palabras que están marcando la diferencia. O le hice mucho valor a esta frase. Entonces, así es lo fácil que hace un espacio para preprocesar. Pero como dije, dependiendo de tu caso de uso y con qué datos estés trabajando, es posible que no utilices todos estos pasos de preprocesamiento, o que en realidad los hagas en un orden diferente. Por lo que es muy importante pensar en los datos que tienes y en qué tipo de pasos te gustaría aplicar a los datos para limpiarlos. 10. Frecuencia de plazo: Por lo que una definición formal de término frecuencia es el número de veces que el token aparece en el corpus. Y realmente a lo que eso se traduce muchas veces es hacer una palabra counte, que esto puede ser una manera realmente genial de resumir datos. Entonces por ejemplo, en nuestros datos tenemos cientos de miles de opiniones. No tenemos tiempo para sentarnos y leer cada uno de esos para tener una idea de lo que la gente está hablando. Podríamos hacer frecuencia de término para ver cuáles son las palabras o términos más populares de los que la gente está hablando. Y eso podría darnos una mejor comprensión de los datos en una cantidad muy corta de tiempo en lugar de pasar horas, potencialmente días leyendo a través de todas y cada una de las revisiones individuales. Una forma realmente popular de hacer frecuencia a término es a través de Scikit-learn count vectorizer. Count vectorizer es realmente agradable porque hace todo el trabajo por ti. No tienes que pasar por todas tus etiquetas, recorrer cada token, almacenar cuenta para todas esas. Simplemente lo hará todo en uno por ti. Existen varios parámetros diferentes dentro del vectorizador de conteo que puedes retocar. Y te animaría a salir a scikit-aprender documentación y echarte un vistazo a esos por ti mismo. Pero porque sí impactan cómo se cuentan las palabras. Pero los dos en los que nos vamos a centrar hoy son stopwords y engram range for count vectorizer stop words. Tienes algunas opciones diferentes. O bien no puedes usar ninguna palabra stop. Por lo que ya preprocesaste tus datos y sacaste paros. Ese podría ser un caso en el que no uses stopwords o si realmente quieres incluir stopwords en tu cuenta. Por lo que podrías hacer eso también. Puedes usar sus palabras de parada en inglés integradas, o puedes pasar en tu propia lista personalizada. Y esto podría ser algo donde tengas datos específicos relacionados con cierta industria y aparecen palabras que no son necesariamente comunes en todo el idioma inglés, pero muy específicos para tu conjunto de datos que no te importa. Por lo que podrías pasar en una lista de esos a quitar también. Y el rango de gramo es un perímetro realmente poderoso de conteo vectorizador. Puedes pasar si quieres ver solo unigramas, solo bigramas, unigramas y bigramas, trigramas, realmente hasta cualquier rango de n que quieras. Y esto es realmente bonito porque nos permite no sólo ver qué palabras son realmente populares, sino también empezar a captar qué frases están usando la gente. Entonces a continuación, vamos a entrar en alguna frecuencia de término, o se puede pensar en eso como un contador de palabras. Como dije antes, tenemos en total en este conjunto de datos cerca de 0.5 millones de revisiones. Y sólo hemos muestreado alrededor de 500 de esos. Entonces eso definitivamente sí hace que sea más amigable con el ser humano poder leer a través de esos. Potencialmente puedes pasar por todos los 500 si quisieras manualmente. Pero algo realmente grandioso que podemos hacer aquí es empezar a conseguir algunas tramas de qué tipo las palabras o frases de las que la gente está hablando en estas críticas. Y para resumirlas más rápidamente, en lugar de hacernos leer manualmente todas las revisiones que nos quedan las personas. Para ello, vamos a estar usando conteo vectorizador de scikit-learn. Count vectorizer tiene una amplia variedad de parámetros. Voy a ir a este enlace y mostrarles chicos cómo es eso. Entonces esta es la documentación de scikit-learn on count vectorizer. Y se puede ver que estos son todos los insumos a los que se lo puede dar. Por lo que puedes decirle si quieres que las cosas en minúsculas, si lo quieres, cómo quieres que tokenize, ya sea a nivel de palabra o de carácter. También puede incluir palabras de detención y un patrón de token. Aquí hay muchas opciones diferentes. Así que siéntete libre de mirar a través de esos y jugar con algunas de estas diferentes opciones y ver cómo afectan a los datos. Pero hoy solo nos vamos a centrar realmente en los n-gramos y las palabras stop. Entonces la forma en que usamos el conteo vectorizador de scikit-learn es que llamamos contador vectorizador. Y para nosotros, voy a dejar todos los incumplimientos excepto que voy a decir, usemos las palabras “stop” en inglés. Y luego empecemos con un rango de engram de 11. Entonces esto significa que sólo voy a ver unigramas o palabras solteras. Y así ahorramos eso como este vectorizador de conteo variable. Y de ahí en adelante vectorizador sí encajamos función de transformación. Y pasamos en nuestros textos de revisión limpios, guarde eso como docs. Y podemos hacer vectorizer dot obtener nombres de características. Y eso nos da las características. Y eso es básicamente conseguir que nuestros conteos de palabras para nosotros entre bastidores. Ahora si realmente queremos trazar esos, podemos usar una biblioteca llamada ladrillo amarillo scikit y visualizarlos realmente fácilmente. Entonces desde scikit yellow break, vamos a estar llamando a este visualizador de distribución de frecuencias. Y vamos a pasar en las características que acabamos de crear, así como el tamaño de la trama para luego hacer un ajuste en eso y luego finalmente un espectáculo. Entonces vamos a ver cómo se ve eso. Aquí podemos ver una gráfica de las distribuciones de frecuencia en el top 50 tokens de nuestros 500 comentarios que hemos jalado. Se usa la palabra superior, lo cual probablemente tiene sentido si estás teniendo un producto, lo vas a estar usando. Entonces tenemos algunas palabras positivas como pierna, buenas, grises para lucir bastante positivas hasta ahora. Y tenemos unas palabras como taza de café aquí abajo. Y así, pudimos resumir las palabras principales que la gente está usando en sus reseñas de Amazon para 500 reseñas. Ahora di tal vez estas sólo palabras simples no son realmente suficiente información para nosotros. Bueno, en realidad podemos hacer es volver a nuestro vectorizador y cambiar el rango de engram de solo unigramas a que podríamos simplemente hacer bigramas o dos palabras juntos. Entonces si volvemos a ejecutar esta celda y luego rehacemos nuestra trama veremos en qué dos palabras la gente está usando mucho juntas. Por lo que puedes ver tenemos trabajo de acero inoxidable fácil, limpio, genial, fácil Hughes en antiadherente. Y puedes pasar por aquí y mirar eso en muchos de ellos tiene sentido porque el reino de los productos de Amazon que estaban en ese hogar y cocina K. Entonces hierro fundido, acero inoxidable, todas esas cosas tienen sentido. Lavavajillas, tabla de cortar segura. Sí, es realmente interesante ver y se puede un poco empezar a pensar en qué tipo de productos están revisando las personas potencialmente de estos conjuntos para bigramas? Ahora una cosa que también podemos hacer es que no tienes que hacer solo unigramas o solo bigramas. Incluso podemos hacer unigramas y bigramas juntos. Entonces volvemos a ejecutar ese sonido, volver a ejecutar la trama. Veremos juntos los unigramas y los bigramas. Pero parece que para este caso, la frecuencia de los unigramas es en realidad mayor que cualquiera de los bigramas. Entonces por eso solo estamos viendo unigramas en esta trama. Pero Definitivamente interesante de ver, y también puedes hacer trigramas. Y veamos qué frases de tres palabras está usando la gente. Por lo que tenemos dispensador de jabón sensor y revestimiento antiadherente. Esto probablemente sería funciona como un encanto, pero el preprocesamiento que hicimos lo cambió para funcionar. Al igual que puedes mirar por aquí y ver tipo de qué está hablando la gente y potencialmente qué críticas la gente también se va. Entonces, además de qué tipo de palabras o personas están hablando, también podríamos querer averiguar cuánto tiempo es la revisión promedio que la gente está dejando. Entonces para hacer eso, en realidad podemos tomar nuestro doc spacey y simplemente hacer la función lambda para obtener la longitud de eso, guardar eso como todo el token cuenta, y luego echar un vistazo a nuestro texto de revisión limpio para ver cuántos tokens cayendo del texto original frente al texto limpio. Entonces si ejecutamos eso, obtendremos dos nuevas columnas llamadas token count all, que sería el token count, todos los tokens que, y luego tendremos una nueva llamada token count clean, que es el token count de los datos de texto preprocesados. Lo siguiente que voy a hacer es simplemente trazar eso consiguiendo los conteos de valor a partir de ahí y luego haciendo solo un gráfico de barras con lo que es nuestro recuento de tokens promedio. Por lo que puedes ver tenemos una variedad bastante amplia de enlaces de tokens. Para que este gráfico sea aún más claro, probablemente podrías simplemente agrupar las cosas como un histograma, pero solo estoy haciendo los conteos exactos. Para que veas que tenemos la mayoría de nuestras opiniones estando alrededor por debajo de un 100 tokens. Y luego tenemos algunos valores atípicos aquí, éste, y este grande de aquí afuera tiene 739 fichas. Por lo que deben haber sido realmente jazzados, están realmente molestos por lo que sean los productos que tenían. Estoy adivinando definitivamente si ustedes atípicos aquí en críticas más largas, pero yo diría que tienden a ser, parece alrededor del rango de 30 a 40 de tokens, que en realidad bastante corto para las críticas. Y, pero recuerda que este es el recuento de todos los tokens, puntuacion stop palabras, it, Vamos a ver qué sucede cuando realmente hacemos el recuento de tokens en la columna limpia o los datos preprocesados, se puede ver que nuestro conteo o los valores atípicos cayeron drásticamente de 700 y tokens a 271. Se puede ver nuestro promedio de tokens que tenemos en nuestra opinión es en realidad alrededor de diez a 15 o así, que realmente no son tantos como yo pensaría para una revisión de Amazon. Ahora, por lo general cuando estés buscando en tus datos, querrás echar un vistazo a los valores atípicos y ver cómo se ven. Entonces solo voy a echar un vistazo a esta revisión que tiene 271 tokens de preproceso y voy a imprimir el impuesto de vista original real. Así que tenga en cuenta que ya que estoy imprimiendo el texto de revisión, así que esto realmente va a ser donde estén los 700 o así tokens. Pero se puede ver a alguien que realmente tenía mucho que decir sobre su amoladora de rebabas. Y parece que en realidad regresaron varias veces y actualizaron su revisión. Entonces esto no fue sólo una sola revisión es en realidad con el tiempo, lo cual es interesante. Podrás jugar y comprobar cuáles crees que son interesantes. A lo mejor quieres mirar los donde solo había 10 fichas al final, imprime esas también. 11. Reconocimiento de entidades: El reconocimiento de entidades con nombre es una herramienta extremadamente poderosa dentro del procesamiento del lenguaje natural que permite a una computadora ser capaz de identificar objetos del mundo real dentro de mensajes de texto. Ahora Spacey tiene su propia lista de cosas que reconoce. Cualquier cosa desde nombres específicos de personas, nacionalidades, países, y realmente muchas otras opciones. Y te vincularé a su página web para poder mirar a través de eso también. El modo en que spacey reconoce a las entidades es a través de un modelo preformado. Entonces eso significa que alguien ha pasado por un anotado se les etiqueta un montón de datos donde toman oraciones o párrafos de texto. Y por cada ficha dentro de ese texto, podrían tener etiquetada a Jane Doe como persona o a Japón etiquetada como país. Por lo que con el uso de un modelo preentrenado, es importante notar que no va a ser un 100 por ciento exacto si tu texto es tremendamente diferente de los textos en los que se entrenó, probablemente va a reconocer un montón de basura. Y veremos un poco de eso en nuestro ejemplo con el que estamos trabajando en las reseñas de Amazon. En general, suele hacer un trabajo bastante bueno en texto genérico. Un ejemplo del mundo real de cuándo podría usar reconocimiento de entidades con nombre es enmascarar cualquier dato sensible, como nombres o números de seguridad social o números de teléfono. Por lo que a continuación pasaremos por un ejemplo de reconocimiento de entidad con nombre. Básicamente hace que esto sea súper fácil, lo cual es impresionante y ya tiene unos modelos pre-entrenados. Y prácticamente podemos aplicar esto directamente a nuestros datos. Entonces solo para dar un ejemplo antes de aplicar esto a todos los conjuntos de datos, solo voy a tomar este índice aleatorio de una revisión y guardarlo y también imprimirlo. Entonces veremos cómo se ve eso. Entonces lo que vamos a hacer es imprimir todos ellos espaciosos reconocen de ella así como qué personaje comenzó en el texto a qué personaje terminó también. Podemos ver que este revisa hablando de alguna habilidad que signifique leer a través de eso si quieres. Pero las cosas que SPAC reconoció fuera de aquí, somos valores numéricos, así que 1 y 2, Eso es lo que cardinal lo quiere decir. Y reconoció a Amazon como una organización por 100 grados como cantidad y a los agarradores de silicona como FAC. No estoy realmente seguro de lo que significa FAC, pero salgamos al espacio. Es documentación y ver todas las entidades que podrá reconocer. Y entonces podemos averiguar qué significa FAC. Fac se ve como desde el espacio Su documentación es un edificio, aeropuerto, autopista o puente. Ahora si volvemos a nuestros datos, nos vemos agarradores de silicona definitivamente no es la autopista o puente. Parece que es el nombre del producto o el tipo de producto potencialmente. Entonces es interesante que el espacio lo reconoció, pero eso es un poco lo que encontrarás fueron bases nombradas reconocimiento de entidades ya que fue entrenado en un conjunto específico de datos web. Y potencialmente por la forma en que esta capitalización lo mira, Podría estar pensando que eso es un edificio o algo así, pero al parecer alguna vez visto algo en los datos antes de eso lo hace pensar que es un edificio. Reconoce que cada vez que estás haciendo Reconocimiento de Entidades Nombradas, está basado en modelos, lo que no vas a obtener una precisión del 100 por ciento alguna vez que van a ser algunos errores. Y notaremos que un poco cuando empecemos a cavar más en los datos aquí y aplicamos esto en todo nuestro espacio de conjunto de datos. Reconoce una gran cantidad de diferentes tipos de entidad es en realidad, generalmente se puede pensar en entidad como un sustantivo propio, una persona, lugar, o cosa. Pero echemos un vistazo a todas las cosas que las especies reconocen para que podamos ver que reconocen a persona. ¿ Te dan una pequeña descripción de lo que es eso? Gente real y gente ficticia también, lo cual es interesante, Got ni brujas, nacionalidades, grupos religiosos o políticos, un GPE países, ciudades, estados, productos, documentos hechos en leyes. Se puede ver que aquí hay mucho espacio. También tiene una visualización realmente cool de estas entidades que reconoce. Y te mostraré cómo se ve eso aquí. Básicamente, lo que está haciendo es tomar estos textos que habíamos impreso antes, el impuesto completo así como las entidades reconocidas. Y sólo está haciendo un poco más fácil para nosotros leer. Está tomando su revisión y luego resaltando la entidad es que reconoce ahí dentro. Esto podría ser útil si estás intentando crear algún tipo de sitio web donde estás haciendo Reconocimiento de Entidades Nombradas y quieres mostrarlo fácilmente al usuario. Esto es mucho más bonito que esta impresión de aquí arriba. Ahora pasando de ese ejemplo, queremos aplicar esto a todo el DataFrame. Y la forma en que voy a hacer eso es realmente crear un nuevo DataFrame sólo para porque puede haber múltiples entidades que se reconocen dentro de una sola revisión. Y quiero separar esos de nuestros otros DataFrame con los que estamos trabajando. Estoy creando un DataFrame llamado entidades de subrayado df. Y tengo los siguientes índices de columnas. Entonces eso va a coincidir si alguna vez quisiera fusionar mis resultados con el DataFrame original, puntos, ¿cuál sería la unión? Tenemos el doc SPAC, que esencialmente es la revisión gravada con la entidad texturada. Tenemos la etiqueta de entidad, tenemos el inicio de la entidad y la entidad. Y lo que voy a hacer es recorrer mi DataFrame muestreado con el que hemos estado trabajando hasta ahora, haciendo esta tuplas internas, esto solo significa pasar por cada fila dentro del marco de datos. Y luego por cada fila, vamos a estar mirando el texto de revisión y ahorrando a todas las entidades que reconoce. Voy a ejecutar este código y luego revisaremos las primeras cinco filas más o menos del DataFrame. Si estás trabajando con un conjunto de datos muy grande, esto definitivamente va a tomar algún tiempo porque el espacio tiene que hacer muchas cosas en segundo plano. Entonces echemos un vistazo a cómo se ve realmente este DataFrame. Por lo que estas son las primeras cinco filas. Tenemos nuestro texto aquí son spacey doc, así que este ha sido un texto de revisión. Este está hablando de comprar ese termómetro. Entonces tenemos los textos que está reconociendo como lo está reconociendo. Y luego si necesitábamos volver atrás y hacer algún análisis, tiene el carácter inicial en el texto así como donde termina ese carácter. Y si puedes ver en este ejemplo específico, al menos para las primeras cinco filas, reconocemos el fin de semana como un día. Tenemos algunos valores numéricos como cardenales, el fin de semana de nuevo como fecha. Entonces echemos un vistazo y veamos cuáles son las entidades más populares que reconoces. Somos más parecidos a cardenales. Entonces esa es la gente hablando como 12 valores numéricos diferentes. También tenemos muchas fechas reconocidas. Tenemos algunas organizaciones. Compró alguna obra de arte, así que creo que esas probablemente no sean en realidad obra de arte. Entonces echemos un vistazo a qué productos se reconocen. Ya que en realidad estamos viendo las reseñas de productos, pensarías que habría mucho. Entonces lo que voy a hacer es simplemente subestablecer mi DataFrame o filtrarlo hasta las filas donde había habido productos reconocidos. Y entonces la autoinmunidad aquí es solo el valor cuenta para ver cuántos de cada producto estamos viendo. Entonces echemos un vistazo. Tenemos todo vestido supuesto sal marina, cocina, arte. Y parece un montón de cosas que no tienen sentido. Como dije antes, esto está basado en modelos, por lo que fue entrenado en diferentes datos y no en estas revisiones de productos. Si tuviéramos suficientes datos que nos habíamos anotado, definitivamente podríamos entrenar y modelar para potencialmente hacer un mejor trabajo en reconocer entidades. Pero conseguir datos etiquetados normalmente lleva mucho tiempo o hay que gastar dinero para conseguir que alguien etiquete los datos por ti. Entonces a veces solo tienes que trabajar con lo que tienes algún tipo de filtrar los resultados a partir de ahí. Por lo que podemos cambiar esto para mirar a otras entidades que reconoció. Por ejemplo, echemos un vistazo a la gente que lo reconocí. Les interesarán las revisiones de pares están llamando a la gente en realidad se ve como aquí. No es en realidad gente siendo reconocida sin embargo. Muchas cosas que aquí no tienen sentido. Voy a probar esa obra de arte sólo por diversión. Yo sería muy sorprendido si hay obras de arte siendo mencionadas en las críticas de cocina homing. Entonces es gracioso porque se puede ver un poco dónde Spaceey podría confundirse aquí. Joy of Cooking y por Roma, bar y Becker en 1975, tal vez eso es un libro o algo así, pero en realidad estoy, en realidad no estoy seguro si eso es real o no, pero se puede ver que algunos de estos, cómo para tener sentido donde pudiera ser una obra de arte. Echemos un vistazo a o también y veamos qué organizaciones se mencionaron. Amazon, amazon.com. Definitivamente tiene sentido ya que estas son opiniones de Amazon esperaría tamaño. Ahora nota con estos punto-punto, muchos de estos están siendo cortados. Por lo que definitivamente guardas esta oficina y otros DataFrame e imprimes todo el DataFrame si quisieras obtener todos los resultados aquí, siéntete libre de pasar por cualquiera de ustedes y mirar a través de una entidades se están reconociendo y podrías sorprenderse de lo que hay ahí dentro. 12. Parte del etiquetado y el parsing de la voz y el parsing de dependencias: Parte del etiquetado del habla es una forma de identificar diferentes partes del habla para cada token. Ahora si recuerdas de nuevo en tal vez clase de inglés de primer año cuando tenías que aprender todas las diferentes partes del habla y frases de diagramas, todas esas cosas divertidas que probablemente olvidaste. Vas a necesitar recordar cuando comienzas a hablar de etiquetado de parte del habla. Ahora, diferentes partes del habla, las básicas son como sustantivos y verbos, lo adverbia, pero hay una tonelada de diferentes partes del habla por ahí. Y en función de dónde está un token dentro de una frase, se puede identificar qué parte del discurso es. Ahora tal vez te estés preguntando, ¿por qué alguna vez necesitaría saber que la parte del discurso, diferentes textos a, bueno, a menudo se usa detrás de bambalinas para poder lemmatizar fichas así como hacer reconocimiento de entidades con nombre. Pero un caso de uso genial es para una traducción. Entonces si le pedimos a la computadora que traduzca la siguiente frase, el español, puede tirar este canon la basura lo. Necesitaríamos probablemente usar el etiquetado de parte del discurso para poder reconocer la primera instancia de CAN es un verbo para poder traducir eso correctamente. Y entonces la segunda instancia de CAN es un sustantivo similar a parte del etiquetado de voz, análisis de dependencia. Si vas a estar haciendo esto y procesamiento del lenguaje natural, probablemente vas a necesitar volver al primer año de inglés y poder recordar cuando diagramas frases para identificar dónde está la raíz de una oración, qué el objeto de los sustantivos es, lo que es el modificador, todo eso. Pero realmente lo que está haciendo el análisis de dependencia aquí es simplemente analizar la estructura de una oración basada en cómo las palabras se relacionan entre sí son dependientes unas de otras. Esto a menudo se usa detrás de bambalinas realmente para la lematización y el reconocimiento de entidades nombradas, así como otras herramientas para poder identificar las relaciones entre palabras o tokens. último, pero no menos importante, estaremos tocando parte del etiquetado del habla y la dependencia analizando la persona cuando salgan a este enlace que tiene un montón de partes del discurso de Wikipedia. Si necesitas un refresco, siéntete libre de salir aquí y echar un vistazo en inglés, nuestro idioma occidental, tenemos algunas de estas diferentes partes del discurso. Noun, verbo, participio, artículo, pronombre, preposición, adverbio, conjunción. Pero dependiendo del idioma con el que estés trabajando, podría ser diferente para ti. Entonces como dije en las diapositivas presentes, el etiquetado del habla se suele utilizar para detrás bambalinas para poder conseguir el reconocimiento de entidad nombrado para funcionar. Pero les daré un ejemplo de dónde podríamos usar esto en el mundo real. Y primero, veamos cómo hacemos esto con spacey. Solo estoy tomando una de esas revisiones de ejemplo con las que hemos trabajado hasta ahora, esta ID. Y luego asignando eso a la variable bursátil. Ahí dentro estoy imprimiendo el texto token, la parte token del discurso, y la dependencia de Token. Por lo que esto también entra en el análisis de dependencia al mismo tiempo. Y se puede ver que esto es un poco difícil de leer. Estamos viendo que estos se etiquetan como DET y ET. Tenemos cosas que es un sustantivo o sustantivo sujeto. Puedes desplazarte por toda la revisión y conseguir todos esos y es un poco difícil de leer. Por lo que el espacio, sí tiene una forma fresca de visualizar su análisis de dependencia y parte del etiquetado del habla. Lo que nos hace pequeño árbol, que definitivamente te lleva de vuelta a cuando tenías que diagramar oraciones y te muestra cómo todos estos Sin relación entre sí. Entonces un ejemplo de dónde podríamos usar esto en el mundo real es contar cuántos adjetivos y adverbios están usando las personas en sus reseñas de Amazon para ver lo descriptivas que son sus reseñas. Y entonces potencialmente podemos ver cuáles son las revisiones más descriptivas y cuáles son las menos descriptivas. Entonces solo voy a tomar un documento de ejemplo que hemos estado utilizando a lo largo este curso y guardarlo como DACA. Y solo para hacernos una idea de cómo podría parecer esto, solo voy a imprimir los tokens que son ADJ para adjetivo o ADV para adverbio. Pero él puede ver antes si me desplazo de nuevo aquí arriba, teníamos una tonelada de tokens, imprimimos aquí porque estábamos imprimiendo literalmente cada parte del habla y la dependencia, ese efecto espacial organizado aquí sólo lo estamos limitado a los adverbios y adjetivos. Entonces eso es solo un ejemplo para una revisión de Amazon. Pero si quisiéramos aplicar esto a todo el DataFrame, lo que podríamos hacer es solo hacer una función, lo llamo contar adverbios, adjetivos. Toma un doc de SPAC, devuelve un int o el recuento de los adverbios y adjetivos. De esta manera podemos ver cuáles son los textos más descriptivos. Entonces es como que estoy haciendo aquí es solo configurar un contador que sea igual a 0 y luego tomar ese código más o menos que escribimos antes, excepto que en lugar de imprimir, voy a hacer es agregar uno al contador si es un adjetivo o un adverbio, luego devolver el número de adjetivos o adverbios en el texto. Entonces una vez que eso se ejecute, podemos usar una función lambda como lo hemos estado haciendo lo largo del curso para aplicarlo al DataFrame, guarde eso como una nueva columna llamada adjetivos de conteo, adverbios. Y entonces hagamos realmente una trama para ver cuántos adjetivos o adverbios suelen usar las personas en su texto. Ahora puedes ver que hay, nuevo, siempre van a haber algunos valores atípicos. Por lo que parece que el atípico es un 125 adjetivos y adverbios. Entonces eso deben ser textos realmente descriptivos. Y probablemente sea una pieza de texto realmente larga y echaremos un vistazo a cómo se ve eso. A juzgar por este gráfico, generalmente, las personas están en el rango uno a 10 de adjetivos o adverbios, cual tiene sentido probablemente para nuestro conjunto de datos. Y por último, lo que podemos hacer aquí es echar un vistazo al que fue nuestro atípico. Pero de nuevo, se podría pasar por cualquiera de estos, reemplazar 125 diría 24, y va a traer de vuelta todas las revisiones donde había 24 adjetivos o adverbios, en realidad se puede ver que éste que tenía un 125 adjetivos y adverbios fue el mismo ejemplo que teníamos antes del que era un montón de fichas como 700 o algo así para la versión impura y luego 200 para la zona de versión limpia. Generalmente, probablemente pensarías que a medida que el impuesto se hace más largo, tendrías cada vez más adjetivos y adverbios que se están acostumbrando y más descripción del producto también. Pero también puedes probar esa hipótesis tú mismo. Entonces eso no fue el procesamiento de lenguaje natural usando Python. En pocas palabras, cubrimos algunas técnicas de preprocesamiento, frecuencia de término, etiquetado de parte del habla denominado reconocimiento de entidades y análisis de dependencia, lo cual definitivamente era mucho por recorrer. Y esta es solo la punta del iceberg para el procesamiento del lenguaje natural. Hay un montón de cosas por ahí que en realidad no lo cubrimos hoy como tal, estar al pendiente de unos futuros videos. Y esperamos que hayan disfrutado hoy de este video. Muchas gracias por unirse a nosotros y aprender sobre PNL.