Traitement du langage naturel avec Python | Data Science Rebalanced | Skillshare

Vitesse de lecture


1.0x


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

Traitement du langage naturel avec Python

teacher avatar Data Science Rebalanced, Data Scientists

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Bande-annonce du cours

      1:47

    • 2.

      Qu'est-ce que le NLP? ?

      2:10

    • 3.

      Aperçu et outils du cours

      1:37

    • 4.

      Charger un carnet de notes Jupyter

      1:51

    • 5.

      spaCy

      2:14

    • 6.

      Bibliothèques Python

      0:39

    • 7.

      À propos des données

      3:52

    • 8.

      Termes de NLP

      5:03

    • 9.

      Prétraitement de données de texte

      12:09

    • 10.

      Fréquence des termes

      9:47

    • 11.

      Reconnaissance d'entités désignées

      8:29

    • 12.

      Fait partie de l'analyse de la dépendance et de l'étiquetage de la parole

      6:52

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

264

apprenants

--

projet

À propos de ce cours

Si vous avez déjà voulu apprendre à analyser les données de texte avec Python, ce cours est fait pour vous !

Leah est un scientifique en données dans une grande institution financière et a découvert qu'il existe un sérieux écart entre les compétences et les techniques que les élèves apprennent à l'école par rapport à ce dont ils ont réellement besoin sur le travail dans le monde réel. Elle utilisera son expertise pour vous enseigner les bases du traitement du langage naturel (NLP).

Ce cours s'adresse aux chercheurs et aux programmeurs en haute définition qui cherchent à approfondir leurs connaissances de la PNL.

Dans ce cours, vous apprendrez :

  • Terminologie NLP utilisée dans l'industrie
  • Techniques de prétraitement de texte
  • Reconnaissance d'entités nommées
  • Fréquence de terme
  • L'analyse de la dépendance
  • Balisage partiel

Vous aurez une expérience pratique à chaque concept en analysant 500 avis produits Amazon Home et Kitchen .

Tout au long du cours, vous parcourrez des exemples de codes en Python à l'aide d'un carnet Jupyter. Vous utiliserez également des bibliothèques populaires telles que des pandas, des spaCy et des scikit-learn. Aucune connaissance préalable de la PNL n'est nécessaire pour ce cours ; cependant, une connaissance active des concepts de programmation de base (fonctions, boucles, etc.) et des compétences intermédiaires en Python.

Musique de TimMoor de Pixabay

Rencontrez votre enseignant·e

Teacher Profile Image

Data Science Rebalanced

Data Scientists

Enseignant·e

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... Voir le profil complet

Level: Beginner

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Bande-annonce du cours: Bonjour à tous, Bienvenue au cours d'aujourd'hui qui est sur le traitement du langage naturel en Python. m'appelle Leah et je suis un spécialiste des données dans une grande institution financière avec environ quatre ans d'expérience chez mon collègue, Ray et moi voulions vraiment faire ces vidéos parce que nous avons remarqué qu'il y a un énorme écart entre les les compétences que vous apprenez à l'école par rapport celles dont vous avez réellement besoin dans le monde réel. Donc, toutes nos vidéos vont être axées sur l'utilisation de jeux de données réels, les problèmes du monde réel, et aussi vous donner les compétences dont vous avez besoin pour résoudre ceux qu'ils n'enseignent pas nécessairement à l'école. Donc nous sommes vraiment excités de vous avoir aujourd'hui et espérons que vous resterez dans le coin. Dans la leçon d'aujourd'hui. Nous allons couvrir les bases du traitement du langage naturel, y compris certaines techniques de prétraitement y compris certaines techniques de prétraitement et une partie du balisage vocal Named Entity Recognition, analyse des dépendances et la fréquence des termes. Et vous ne connaissez peut-être pas encore ces moyens, mais vous serez un pro à la fin de cette vidéo. Ce tutoriel est vraiment conçu pour être débutant convivial. Nous allons commencer dès le début avec les cahiers Jupyter. Vous serez en mesure de suivre ce que je fais et utiliser des bibliothèques vraiment populaires telles que pandas, Spacey, et scikit learn. Maintenant, ils sont très populaires dans la communauté de la science des données en général, mais surtout pour le traitement du langage naturel. Les données que nous allons utiliser pour le cours d'aujourd'hui sont un ensemble de plusieurs milliers d'avis Amazon. J' ai choisi les commentaires Amazon car à peu près tout le monde a acheté quelque chose d'Amazon à 1 et a probablement laissé votre avis. C' est donc un jeu de données très familier pour tout le monde. Plus précisément, nous allons jeter un oeil à la catégorie de la maison et de la cuisine. Mais je vais aussi vous lier à l'ensemble de données d'où j'ai tiré ça. Et vous serez en mesure de voir un tas de différents avis de catégorie Amazon tels que Tech AB, maquillage, quelque chose comme ça. Et avec ça, commençons. 2. Qu'est-ce que NLP ?: Donc, dans le cours d'aujourd'hui, nous allons parler de traitement du langage naturel ou NLP avec Python, un peu d'arrière-plan sur ce qu'est réellement NLP. C' est vraiment à un niveau élevé, juste un moyen pour les ordinateurs de comprendre ou de traiter le langage humain. Si vous prenez d'autres cours sur un LP, vous pouvez entendre le terme « compréhension du langage naturel ». Et certains cours font la distinction entre le traitement du langage naturel comme décomposant réellement les données textuelles en une forme que les ordinateurs peuvent comprendre. Et puis la compréhension du langage naturel est de reconnaître les relations entre les mots dans la phrase. Les relations entre les phrases, ou même les relations entre les documents entiers les uns avec les autres. Donc quelques exemples de PNL que vous connaissez probablement dans votre propre vie. Ou notre numéro un, votre Amazon, Alexa. Beaucoup de gens ont ces appareils chez eux et vous pouvez poser une question comme Alexa, Quel est le temps ? Et elle vous donnera une réponse disant que le temps est actuellement de 65 degrés en pulsar. Donc, dans les coulisses, Alexa fait vraiment en utilisant un traitement du langage naturel ou compréhension du langage naturel pour être en mesure de prendre votre texte ou votre discours que vous avez réellement dit à haute voix. Et puis convertissez cela en texte écrit , puis convertissez cela en quelque chose que l'ordinateur peut comprendre. Processus qui obtiennent la réponse et vous la renvoient ensuite. Maintenant, Amazon a mis beaucoup de temps, d'énergie et de recherche à ce sujet. Ils font vraiment tout paraître super simple. Vous posez une question rapide, vous obtenez une réponse très rapide, mais il se passe beaucoup sous le capot. Donc, un autre exemple de PNL que vous connaissez peut-être dans votre vie quotidienne est un texte prédictif sur l'iPhone. Maintenant, si vous n'êtes pas familier avec cela, c'est là que vous commencerez à taper une phrase dans votre message texte. Et puis Apple va essayer de prédire ce que vous voulez dire à côté de lui, rendre plus facile afin que vous n'ayez pas à taper tous vos mots. Vous pouvez simplement cliquer sur les boutons pour ce que vous voulez voir. Donc, dans l'exemple ici, nous avons tapé veulent prendre le déjeuner. On va envoyer ça à Jane. Et puis Apple nous donne quelques petits emojis que nous pourrions vouloir mettre avec, et aussi quelques autres mots que nous pourrions vouloir inclure là aussi. 3. Aperçu et outils du cours: Dans le cours d'aujourd'hui, comme je l'ai mentionné plus tôt, nous commençons vraiment à un niveau convivial très débutant. Donc, si vous ne savez pas grand-chose sur la PNL, c'est génial. Nous allons apprendre tout ça dans ce cours. Et puis si, aussi si vous n'êtes pas vraiment familier avec les espaces de la bibliothèque, je ne peux pas apprendre et les pandas, nous allons passer par eux aussi. Maintenant, j'ai énuméré ici que vous voudrez peut-être avoir une certaine expérience avec Python 3. Ce n'est vraiment pas extrêmement nécessaire. Nous allons utiliser Jupyter Notebooks. Donc vous devriez être capable de suivre très facilement ce que je fais. Mais j'utiliserai des fonctions plus avancées ou intermédiaires dans les Pandas, telles que les instructions d'application avec des fonctions lambda. Mais je vais aussi en parler pendant que nous traverserons tout. Les sujets que nous allons aborder dans le cours d'aujourd'hui, notre fréquence des termes de prétraitement, reconnaissance des entités nommées de marquage de partie de parole et l'analyse des dépendances. Maintenant, ce sont juste vraiment la pointe de l'iceberg quand il s' agit de traitement du langage naturel. Parce que pour n'importe lequel d'entre eux, vous pouvez avoir un cours complet à leur sujet, mais nous allons vous donner les bases ici. Et puis vous devriez être en mesure d'appliquer votre compréhension dans les problèmes réels que vous voyez, les outils pour le cours que nous allons utiliser nos Notebooks Jupyter. Comme je l'ai dit, je vais courir cela à travers PyCharm, nauséeux, mon IDE préféré, mais peu utilisent Anaconda. C' est parfaitement bien. Tant que vous êtes capable d'exécuter un cahier Jupiter d'une manière ou d'une autre, c'est génial. Et comme je l'ai déjà mentionné, les bibliothèques que nous allons utiliser principalement nos Pandas, scikit-learn et SPAC. Et encore une fois, si vous ne savez rien de ces bibliothèques, c'est tout à fait bien. Tu vas apprendre aujourd'hui. 4. Charger un carnet de notes Jupyter: Bon, donc maintenant nous allons commencer à parcourir un code que vous auriez dû télécharger sur votre fichier, le bloc-notes Jupiter de la leçon, ainsi que le jeu de données que la façon dont je vais ouvrir ceci est par PyCharm. C' est mon éditeur préféré. Je n'aime généralement pas utiliser Anaconda juste parce que cela ne joue pas vraiment bien lorsque vous essayez créer des fichiers exécutables et de faire du développement de logiciels plus traditionnels. Donc, je vais utiliser PyCharm, mais si vous avez Anaconda ou votre IDE préféré, ce n'est pas l'un de ceux à une charge sur votre ordinateur. N' hésitez pas à le faire. Mais je vais juste ouvrir un cahier Jupiter en allant au terminal et en tapant Jupiter. Et ce que ça va faire, c'est faire tourner ça. Donc, vous devriez être capable de le faire dans n'importe quel IDE que vous utilisez, mais je préfère juste utiliser PyCharm. Ok, donc nous pouvons aller de l'avant et commencer maintenant que nous avons notre cahier Jupiter ouvert, j'ai inclus beaucoup de texte ici. Donc, cela pourrait vraiment être un ordinateur portable Jupiter autonome avec ces informations de fond, mais vous obtiendrez beaucoup de cela à travers les diapositives que je parle dans d'autres parties de cette vidéo. Donc, souvent, je pourrais sauter dessus, mais si jamais vous avez besoin de revenir en arrière et de vous référer à quoi que ce soit, disons que vous avez oublié quel tokenization était là quelque chose que vous pouvez vous sentir libre regarder dans le bloc-notes Jupyter dans ces sections de texte, J' ai également inclus un lien pour télécharger PyCharm. Si tu veux faire ça. Je viens de télécharger l'édition communautaire, qui est gratuite. Je vais aller sur ce lien juste pour vous montrer à quoi ça ressemble. C' est mon environnement de développement préféré, comme je l'ai dit, mais je sais que beaucoup de gens utilisent Anaconda parce qu'il est livré avec Python et toutes ces bonnes choses. Ou VS Code et autre populaire. Alors choisissez celui qui fonctionne pour vous. Pycharm Community Edition est gratuite, il vous suffit de télécharger cela et de l'installer sur votre ordinateur si vous voulez jouer avec cela. 5. spaCy: Maintenant, si vous êtes complètement nouveau dans le traitement du langage naturel en Python, vous n'avez peut-être pas entendu parler de cette bibliothèque appelée spacey. Ce qui est fondamentalement, est juste une bibliothèque libre open source qui est vraiment populaire dans la phase d'utilisation de NLP. Beaucoup de gens l'utilisent pour ses pipelines pré-formés, qui sont stockés comme modèles. La façon dont l'espace qu'il stocke les choses est un peu compliquée. Ça a un peu le goût de s'y habituer, mais on va le décomposer. Et un aperçu ici est que nous allons prendre quelques textes pour le mettre dans ce moteur NLP, qui fait beaucoup de choses en coulisses. Ça va symboliser nos mots pour nous. Ça, ça va faire un balisage de partie de discours, faire une analyse de reconnaissance d'entité nommée. Et vraiment, vous pouvez également ajouter vos propres étapes personnalisées si vous le souhaitez. Mais ce n'est qu'un exemple ici. Et une fois que tout ce qui est fait, économise en gros comme ce qu'on appelle un DACA. Et puis de là à l'intérieur du quai, vous pouvez accéder à toutes ces choses. Et cela aura beaucoup plus de sens quand nous allons voir le tutoriel en fait, mais ce n'est qu'un aperçu de haut niveau pour l'instant. Donc, comme je l'ai mentionné dans les diapositives, nous allons utiliser une bibliothèque appelée SPAC, qui est extrêmement populaire pour le traitement du langage naturel en Python. Et l'une des choses que vous devez faire ici est d'abord installer un modèle que l'espace va l'utiliser. Ils ont des versions petites, moyennes et grandes de modèles. Vous pouvez également former votre propre modèle si vous le souhaitez. Donc, pour cette démo, nous allons télécharger le petit modèle anglais qui a été formé sur le texte de blogs, nouvelles et commentaires. Je vais d'abord vous montrer à quoi ressemblent ces modèles dans la documentation SPAC. Donc, vous pouvez voir ici, nous utilisons le Web English Core petit, et il vous donne un peu plus d'informations à ce sujet. Mais vous pouvez également voir même moyen là-bas, grand et ils ont d'autres versions aussi bien. Il y a aussi de l'importance pour beaucoup de langues différentes. Donc, si vous travaillez avec des données qui sont dans une autre langue que l'anglais. Vous pouvez sortir ici et télécharger, disons, un modèle espagnol si vous voulez le faire. Donc, cette première étape ici où il suffit de télécharger le modèle. Et j'ai déjà téléchargé ça. Donc ça va probablement me donner un message disant que je l'ai déjà téléchargé. Mais pour vous, vous devrez probablement vous asseoir à travers le téléchargement qui ne devrait pas prendre trop longtemps. D' accord. Donc, c'est dire que je l'ai déjà téléchargé. C' est tout à fait bien. Assurez-vous simplement d'obtenir votre est téléchargé. 6. Bibliothèques Python: Avoir toutes les importations que nous allons utiliser pour cet ensemble de données et cette analyse. Donc nous allons utiliser pandas spacey, scikit-learn, un outil de visualisation appelé brique jaune et aussi la bibliothèque de chemins. Nous allons également de l'avant et chargeons le modèle anglais de Spacey et simplement étiqueter cela comme NLP parce que nous allons l'utiliser plus tard. Je vais donc importer tous ces éléments. Si vous exécutez ceci pour la première fois, nous avons probablement besoin d'installer toutes ces bibliothèques également. Alors assure-toi juste que tu fais ça. J' ai également inclus un fichier d'exigences. Donc, si vous utilisez PyCharm, vous pouvez créer votre propre environnement virtuel et faire juste une installation pip à partir du fichier de configuration requise. Et il téléchargera tout ce dont vous avez besoin à partir de là. 7. À propos des données: Ensuite, je voulais donner un peu de contexte sur ces données que nous utilisons. Un grand cri à Julian Macaulay de l'Université de Californie, San Diego, qui a rassemblé ces données. Il fournit une tonne de différents avis Amazon depuis 1996 jusqu'en 2014. Et pour nos besoins aujourd'hui, ce que nous allons faire est juste d'analyser un sous-ensemble de 500 avis sur les produits de cuisine et de maison Amazon. Donc, en plus des commentaires, qui comprennent les évaluations, le texte et les modes de santé, Julianne nous donne également quelques métadonnées de produit, telles que des descriptions sur la catégorie de produit, des informations, des prix, de l'image de marque ainsi que des liens pour le cours d'aujourd'hui, nous allons examiner uniquement les données de révision. Ce ne sera donc que les lectures, le texte des critiques ainsi que tout vote utile. Alors, combien de personnes ont trouvé cette évaluation de produit utile ? J' aime vraiment cet ensemble de données parce que la plupart d'entre nous ont probablement acheté quelque chose d'Amazon à un moment donné de notre vie. Et potentiellement, j'ai écrit un commentaire. Donc c'est vraiment familier à beaucoup d'entre nous. J' ai aussi vraiment aimé ces données parce que c'est un exemple impressionnant de la façon dont les humains tapent vraiment ou communiquent à travers le texte. Et cela va inclure beaucoup de fautes de frappe sur les phrases, toutes les majuscules pour inclure l'émotion, beaucoup de points d'exclamation et tout ce que vous pouvez penser à peu près sous le soleil. Alors que si nous avions affaire à n'importe quelle sorte de texte formel, n' aurait pas autant de ces erreurs et plus d'émotion que les gens utilisent généralement dans la façon dont ils pourraient écrire des critiques de produits. Donc je vais aller voir ces données et vous montrer ce qu'il y a vraiment là-bas. Peut se sentir libre d'aller sur ce site et de jeter un oeil. Il inclut une tonne de différentes catégories d'avis de produits. Si on veut juste se concentrer sur la section maison et cuisine. Mais si vous vouliez regarder les critiques pour les livres, CBS Sports, vous le nommez. Il y a des données pour ça. Et il donne beaucoup d'informations ici sur ce que ces jeux de données signifient réellement. Alors n'hésitez pas à aller les lire dans votre temps. Julian a également été vraiment agréable de nous fournir quelques fonctions pour pouvoir analyser les données car elles viennent au format JSON. Et nous voulons finalement le mettre dans un DataFrame Pandas pour pouvoir le manipuler un peu plus facilement. Donc il a déjà écrit ces deux fonctions pour nous. Un pour analyser le chemin du fichier, puis voulait réellement créer un DataFrame à partir du fichier JSON. Donc, nous allons aller de l'avant et utiliser ces fonctions. Et puis ici, nous lisons simplement dans le DataFrame et puis prenons un échantillon de 500 éléments, cette option d'état aléatoire, vous pouvez définir ce que vous voulez. Mais si vous voulez obtenir le même jeu de données que je travaille, vous le laissez juste à un, mais cela est utile pour la reproductibilité. Et alors allez-y et exécutez ça. Et cela prendra un peu parce qu'il y a en fait environ 0,5 million de commentaires. Ils sont au format JSON. Et puis nous devons analyser ce JSON pour obtenir le DataFrame Pandas que nous voulons, pour le bien de ce tutoriel et ne pas avoir les choses trop longues, nous allons juste prendre un sous-ensemble de 500 d'entre eux. Nous allons laisser ça courir une minute et revenir dans une seconde. On dirait donc que nous sommes chargés et regardons à quoi ressemble le DataFrame. Donc vous pouvez voir ici, pandas nous donne cet ID unique, alors nous avons cet ID de réviseur. Une autre idée qu'il ressemble peut-être pour le produit que l'examinateur nomme un article nous indiquant combien de personnes ont trouvé cela utile par rapport à ne pas l'avoir trouvé utile. Le texte de la revue, qui sera la principale chose sur laquelle nous nous concentrons dans la leçon d'aujourd'hui, la note globale sur cinq, le résumé de l'examen, puis quelques colonnes sur ce qui est sur l'examen est faite. Donc, vous pouvez voir ici nous avons peu de 2013, beaucoup de 2011. Mais ces données remontent à 1986. 8. Termes NLP: Donc, quand vous commencez dans l'espace NLP, vous allez probablement commencer à entendre beaucoup de termes que vous n'avez pas entendus auparavant. Je sais, surtout quand j'ai commencé, c'était un peu accablant d'entendre le vocabulaire différent qu'il a utilisé pour ça. Dans ce cours, nous allons commencer par définir tous ces termes, puis montrer comment ils sont utilisés. abord, nous allons commencer par jeton, et vous pouvez considérer cela comme un regroupement de caractères. Donc, dans cet exemple, nous jetons au niveau des caractères. Et cela signifie que nous prenons une phrase où nous commençons avec qu'on lui a offert le poste 11 mois et qu'on prend chaque personnage et qu'on en fait un jeton. Maintenant, cela est vraiment utile lorsque vous avez des textes courts tels que des noms de fichiers ou dans l'exemple des données que nous utilisons. Mais cela pourrait être le titre d'un point de vue différent. Donc, dans ces cas, il pourrait ne pas y avoir assez de textes là pour être mesure de jetons très bien les ions au niveau des mots, en particulier avec les noms de fichiers. Souvent, les gens mettent des traits de soulignement ou d'autres types de caractères là, donc nous ne pouvons pas réellement séparer les espaces blancs. Donc, souvent, il peut être utile de le décomposer au niveau des caractères, puis de l'envoyer dans d'autres étapes de traitement. Vous pouvez également faire des jetons au niveau du mot ou un unigramme. Donc, dans cet exemple, nous prenons la même phrase et la divisons d'une manière différente. Donc, nous le divisons en ce qui est connu sous le nom d'unigrammes, qui sont fondamentalement peuvent penser comme des mots. Donc voici nos jetons, elle a été offerte, ainsi de suite et ainsi de suite. Maintenant, vous pouvez également regrouper des jetons en groupes de deux en tant que puits. Au lieu de briser les choses par des mots, nous pouvons mettre deux mots ensemble. Donc ça prend notre peine à elle on lui a offert le travail il y a 11 mois pour le diviser en deux jetons de mots, on lui a offert le travail il y a 11 mois. bigrammes sont également très intéressants parce qu'ils nous ont donné des informations de position. Donc nous pouvons dire, dans ce cas, notre premier bigramme, elle était nous pouvons dire qu'elle est le premier mot et était le deuxième mot. Ce serait différent, par exemple, d'un bigramme appelé si elle était serait le premier mot ou le premier jeton et non et alors elle serait le deuxième jeton. Maintenant, cela dans l'industrie est en fait connu sous le nom de n-grammes, et vous pouvez faire autant de regroupements que vous le souhaitez. Donc les bigrammes seraient deux groupes de jetons ensemble. Vous pouvez faire des trigrammes pour trois groupes de jetons ensemble, ainsi de suite et ainsi de suite. Vous pouvez également faire ces types de jetons au niveau des caractères. Nous pourrions donc regrouper SH et EW en tant que jetons. Et quand nous entrerons dans le code ici, nous allons voir quelques exemples de pourquoi nous pourrions vouloir utiliser des unigrammes contre des bigrammes. Mais les jetons sont vraiment le fondement du traitement du langage naturel. Donc, une fois que nous avons tout notre texte en jetons, ce que nous pouvons faire est de regrouper les jetons ensemble en tant que documents. Donc, vous allez entendre des alliés de documents. Et normalement ce que vous pourriez penser comme un doc Word ou un morceau de papier ou quelque chose comme ça. Mais vraiment, quand nous parlons de traitement du langage naturel, un document n'est qu'un groupe de jetons. Donc, un exemple de cela est ici, nous avons le document 1. C' est ce qu'on lui a offert le poste il y a 11 mois. Pashas à une seule phrase, mais nous appelons ça un document ici. Et puis comparé au document à, les deux filles sont allées au parc après l'école, elles ont vu trois écureuils et tamias. Notez que ce sont deux phrases, mais tout à fait cela est regroupé comme un document. Maintenant, vous pouvez le faire avec plus que des phrases. Tu peux le faire. Par exemple, les paragraphes les regroupent ensemble. Vous pouvez également regrouper des pages ou des documents entiers. De là, nous montons un autre pas. Et quand on regroupe des documents, c'est connu sous le nom de corpus. Ainsi, vous pouvez penser à un corpus comme tout votre groupe de tous les documents que vous avez. Et un exemple de cela, nous prenons les deux documents que nous venons de voir dans notre dernier exemple et nous disons que nous les regroupons et que ce sera notre corpus. Donc, dans le cours d'aujourd'hui, nous allons travailler avec les avis Amazon. Tous les avis Amazon seront notre corpus de documents. Donc, le terme suivant que vous allez entendre assez souvent dans le traitement du langage naturel est appelé vocabulaire. Et le vocabulaire est vraiment juste les jetons uniques qui sont dans votre corpus. Donc c'est encore un exemple de vocabulaire que nous allons tirer de notre exemple que nous avons juste regardé un corpus. Et tout ce qu'on va faire, c'est obtenir les jetons uniques entre les deux documents. J' ai donc énuméré tous ceux ci-dessous et vous remarquerez, par exemple, que cela apparaît dans les deux documents. Mais il est répertorié comme deux jetons individuels dans le vocabulaire ici. Une avec une majuscule et une avec une minuscule. Et ce sera important lorsque nous parlerons plus tard de certaines de nos techniques de prétraitement afin que nous réellement mettre en minuscules la phrase. Et alors nous n'aurions qu'un seul exemple de cela. 9. Prétraitement des données de texte: Parlons des étapes de prétraitement. Il existe une grande variété d'étapes de prétraitement que vous pouvez effectuer pour vos données. Et selon la situation, vous pourriez ne pas utiliser toutes ces étapes de prétraitement dont je vais parler ou même les faire dans le même ordre. Cela dépend totalement de votre cas d'utilisation et de vos données. L' une des étapes de prétraitement les plus élémentaires que vous pouvez effectuer est vos données en minuscules. Cela garantit vraiment que le cas n'affectera pas les fréquences de terme sont les nombres de mots que vous faites. Prenons donc un exemple de phrase. On lui a offert le poste il y a 11 mois. Ceci est écrit de la façon dont nous l'écririons probablement avec une majuscule au début de la phrase, puis un point à la fin. Donc, ce que nous ferions cette phrase comme notre premier talon de prétraitement potentiellement serait juste en minuscules tout. Donc, tout ce que nous changeons ici est juste de faire ce capital en minuscules. Donc, quand nous identifions des jetons, nous ne comptons pas elle avec un S majuscule, avec un s minuscule comme deux jetons séparés. Nous voulons qu'ils soient reconnus comme le même signe. Maintenant, vous ne voudrez peut-être pas de choses en minuscules si vous travaillez potentiellement avec des données où ce sont de vraies personnes qui écrivent et peut-être qu'elles écrivent dans toutes les majuscules pour exprimer un certain sentiment. Dans ce cas, vous ne voudrez peut-être pas tout en minuscules. Vous pouvez extraire les mots ou les jetons qui sont dans toutes les majuscules. Par exemple, la prochaine étape de prétraitement que je vais couvrir est la suppression de la ponctuation. C' est exactement à quoi ça ressemble. Nous allons supprimer des caractères comme des points, des points exclamation, des points d'interrogation. Donc, si vraiment n'importe quelle sorte de ponctuation, la raison pour laquelle nous voulons le faire est juste pour nettoyer un peu nos données afin que nous ne comptions pas ces ponctuations comme des jetons. Vraiment, nous ne nous en soucions probablement pas. Nous nous soucions vraiment des mots eux-mêmes dans le texte. Et si souvent nous nous débarrassons de ceux dans notre prétraitement. Cependant, vous ne voudrez peut-être pas supprimer la ponctuation si vous essayez de séparer des phrases dans un document, voulez les laisser dans afin que vous ayez un moyen de dire cela comme une phrase, il s'agit d'une deuxième phrase, ainsi de suite et ainsi de suite. Donc, un exemple de suppression de la ponctuation. Ici, nous avons la même phrase. Nous avons une période à la fin pour supprimer la ponctuation vont faire est de se débarrasser de cela. Et vous verrez dans la phrase suivante que nous n'avons pas de ponctuation. Et une autre étape pour le prétraitement que vous pourriez faire est supprimer tous les caractères numériques compris entre 0 et 9. Souvent, lorsque vous avez affaire à des données texte, vous voulez vous débarrasser des nombres est parce qu'ils ne fournissent pas beaucoup de valeur. Souvent, nous sommes intéressés par les mots eux-mêmes et pas par les chiffres. Mais il peut y avoir des situations où vous voulez garder des nombres si vous avez affaire à un texte qui a beaucoup de date. Donc, vous voudrez peut-être laisser ceux dans pour être en mesure d'identifier ce texte provient de cet état. Voici un exemple de prise de numéros. Nous allons juste supprimer 11 de la phrase avec laquelle nous travaillons ici. Cette étape de prétraitement du texte consiste à supprimer les mots d'arrêt. Et si vous n'avez pas travaillé dans le traitement du langage naturel auparavant, vous n'avez probablement pas entendu parler de ce qu'est un mot stop. Vraiment ce qu'il se résume à juste des mots sans importance comme et pour tout ce qui est court et n'ajoute pas vraiment beaucoup de valeur à une phrase, mais arrive aussi beaucoup. Comme penser à combien le mot qui est utilisé dans le langage humain. Vraiment, si nous voulons voir ce que les mots les plus populaires dans une phrase essaient de comprendre quel genre de sentiment quelqu'un exprime. Le ne va probablement pas ajouter beaucoup de valeur. Donc, souvent, nous les enlevons. Donc, vous pourriez vous demander, comment venez-vous avec une liste de mots stop sont, quelle est la liste des mots stop ? Différentes bibliothèques qui utilisent des listes différentes. Vous pouvez donc essayer une bibliothèque qui utilise une certaine liste. Vous pouvez essayer un autre qui utilise une autre liste et inclure d'autres mots que l'autre impasse. Et vous pouvez également créer votre propre liste de mots stop. Par exemple, si vous avez un jeu de données hautement spécifique à dire dans les données financières, et que vous ne voulez pas inclure des mots tels que budget ou bang, choses comme ça apparaissent probablement dans beaucoup de données textuelles financières. Vous pouvez inclure un dictionnaire de tous ces mots , puis dire à Python de les supprimer et de les compter comme mots d'arrêt. Pour cet exemple, les mots d'arrêt que j'utilise vont juste être les mots typiques que beaucoup de bibliothèques utilisent. Donc on va finir par enlever qu'elle était. Et donc la phrase qui nous reste est proposée il y a des mois. La prochaine étape de prétraitement que je vais passer est ce qu'on appelle la tokenisation. Au début de ce cours, nous avons parlé des jetons et de la façon dont vous pouvez obtenir des jetons qui sont des mots. Vous pouvez faire des jetons qui sont des caractères. Vous pouvez vraiment créer n'importe quel type de jetons que vous voulez. Mais pensez simplement à tokenizer un document comme séparant le texte en unités plus petites ou jetons comme nous avons déjà parlé. Maintenant, dans cet exemple, nous prenons notre chaîne ou une phrase offerte il y a des mois de travail, et puis nous sommes juste en train de diviser cela sur les espaces ici. Je le divise pour que ce soit le mot. Donc, nous nous retrouvons avec offert un emploi il y a des mois, tous comme des unités plus petites de la chaîne d'origine. Dans le traitement du langage naturel, vous allez probablement commencer à entendre parler de l'enracinement et de la lemmatization. Et ce sont des façons de prendre les mots et de les ramener à leur forme originale. Ces techniques sont assez similaires avec une légère nuance. Cela découpe en fait juste couper les derniers caractères d'un mot pour arriver au mot racine. Alors que la lemmatization utilise en fait des parties du balisage vocal pour être en mesure de convertir un mot dans sa route pour IMA. Maintenant, il y a différents cas d'utilisation pour expliquer pourquoi vous pourriez utiliser le stemming et la lemmatization. J' ai tendance à préférer utiliser la lemmatization car elle convertit les mots dans un format plus lisible. Avec stemming, vous pourriez avoir un mot qui vient des dernières lettres et vous ne savez pas vraiment quel était ce mot. Et donc, même si je préfère la lemmatization et l'enfoncement, il vaut la peine de noter est en fait beaucoup plus rapide parce que c' juste couper les derniers caractères dans le jeton. Alors que la lemmatization doit passer par une série de balisage de partie de parole, potentiellement une analyse de dépendance pour être en mesure d'obtenir le lemma correct pour le jeton. Donc, un exemple d'endiguement ici est de prendre le mot ennuis et simplement enlever la dernière lettre E pour le ramener à sa forme racine. Maintenant, vous pourriez penser comme troublant ou ennuyeux vieux, tout cela se transformerait en ennuis. Le TRO. Maintenant, la lemmatisation prend un mot basé sur sa partie du discours et le met dans sa forme racine. Donc c'est un peu plus lisible. Ici vous pouvez voir que nous avons pris offert un s'est transformé en offre la forme actuelle de celui-ci aux emplois rester les mêmes mois. On n'a pas enlevé l'acide arrive juste à sa forme radiculaire un mois et il n'y a pas de changement. Donc le résultat final, si vous vous souvenez où nous avons commencé cette phrase, on lui a offert le poste il y a 11 mois. Nous avons en fait l'occasion d'offrir un emploi il y a un mois comme notre ensemble final de jetons. Et cela aide à couper beaucoup de mots dont nous ne nous soucions pas et à obtenir vraiment le sens de la phrase. Nous commencerons par prétraiter nos données. Vous pouvez absolument écrire vos propres fonctions pour effectuer toutes ces étapes de prétraitement telles que minuscules, groove et ponctuation ou nombres, mots d'arrêt, tokenize et lemmatized. Mais SPAC est vraiment sympa et fait tout cela en fonction des attributs de jeton s'ils ont beaucoup d'attributs différents sur leurs jetons. Et je vais aller à ce lien ici, où dans la documentation, vous pouvez voir tous les attributs qu'ils ont. Donc, pour chaque jeton, vous pouvez voir s'il y a des espaces dedans. Vous pouvez voir quel type d'entité il s'agit. Vous pouvez voir la forme minuscule du jeton. Vous pouvez voir la forme du jeton. J' ai tous ces attributs différents. Donc Spacey a beaucoup d'attributs de jeton différents, mais les trois qui nous intéresseront pour faire notre prétraitement de notre jeton. Ce lemme, qui nous donne le lemme du jeton, jeton point est alpha, ce qui supprime la ponctuation et les nombres du jeton. Et puis le point de jeton est stop, qui supprime tous les mots d'arrêt dans ce texte ici, je prends juste ce même exemple que je suis allé sur les diapositives. On lui a donc offert ce poste il y a 11 mois, appliquant le traitement du langage naturel pour l'enregistrer comme document. Et puis en disant, revenons le lemme pour chaque jeton dans le document, tant que ce n'est pas un caractère numérique et n'est pas non plus un mot stop. Et cette syntaxe, si vous n'êtes pas familier, s' appelle la compréhension de liste, ce qui nous ramène une liste des jetons propres. Donc, nous allons lancer ça et puis imprimer le document. Comme vous pouvez le voir ici, quand nous imprimons notre quai spatial, dirait que rien ne s'est passé. C' est essentiellement stocker toutes ces informations dans les coulisses. Nous voulons réellement voir les textes propres imprimeront les textes propres. Et vous pouvez voir ici que ce qui nous reste est exactement comme nous l'avions dans notre exemple de diapositives, nous ne sommes qu'avec les jetons suivants. Offre d'emploi il y a un mois. Donc, ce n'est qu'un exemple de jouet pour voir comment cela fonctionne. Mais ce que nous allons réellement vouloir faire est jetonné et nettoyer tous nos commentaires que nous avons. Donc aujourd'hui, j'ai écrit une fonction appelée texte prétraité. Il prend dans un dossier SPAC, puis retourne une chaîne et je donne un peu d'informations sur ce que fait cette fonction. C' est une très bonne pratique que je suggère fortement que vous ayez l'habitude de faire est d'écrire ce qu' on appelle docstrings pour être en mesure de rendre votre code plus lisible et permettre aux autres de le ramasser plus facilement. Et ce que nous faisons ici c'est vraiment prétraiter un dock SPAC en le monétisant, en supprimant les mots stop et en supprimant les caractères non alphabétiques. Et encore une fois, nous prenons un Doc SPAC, qui est une séquence d'objets jetons et revenons au propre au texte, le code réel que nous exécutons est le même code que j'avais ci-dessus, sauf que ce que je fais est au lieu de retournant une liste, je suis juste en train de rejoindre tous les jetons ensemble dans une seule chaîne. Cela le rend un peu plus facile à lire. Donc, d'abord, nous allons appliquer le modèle NLP à toute la colonne de texte de révision. Et je le fais via Pandas, appliquez avec une fonction Lambda. Si vous n'êtes pas familier avec ce qu'est une fonction lambda, est juste une fonction en ligne où x est notre variable ici. Donc, j'applique cela à toutes les données contenues dans le texte de révision. Et je dis ça comme une nouvelle colonne appelée espace. La raison pour laquelle nous voulons économiser cela parce qu' il faut beaucoup de ressources de calcul pour être en mesure exécuter spacey car il fait tellement de choses dans les coulisses que nous allons faire référence encore et encore. Nous ne voulons pas les calculer plusieurs fois. Alors sauvegardez ça dans une nouvelle colonne appelée Spacey Doc. Et puis à partir de là, nous allons travailler sur le doc SPAC et appliquer cette fonction que nous venons d'écrire ici appelée texte prétraité. Nous allons enregistrer cela dans ce nouveau texte de révision pour nettoyer la colonne. Donc, je vais lancer ça et ça va s'appliquer à ces colonnes, faire notre nouvelle colonne, et ensuite nous allons imprimer les résultats. Alors imprimons à quoi ressemble Spacey Doc. Ce n'est que les cinq premières lignes de notre DataFrame. Donc, ce que cela a fait est jetonné, fait une reconnaissance d'entité nommée dans les coulisses, analyse des dépendances, beaucoup de choses. Et cela nous montre juste que ces jetons sont séparés par des virgules et des mélanges. Si nous imprimons les textes de révision nettoyés que nous avons obtenus à nos textes originaux pour celui-ci, j'ai ouvert la boîte et à ma grande surprise, fonction de toutes nos étapes de prétraitement, ce qu'il nous reste est ouvert boîte, surprise, scoop, manier, envoyer dès que possible. Mais vous pouvez voir que nous coupons beaucoup de ces mots dont nous ne nous soucions probablement pas. Ils se produisent beaucoup dans la langue anglaise et se retrouvent vraiment aux mots qui font une différence. Ou j'ai fait beaucoup de valeur à cette phrase. Donc, c'est à quel point un espace qu'il rend facile de prétraiter. Mais comme je l'ai dit, en fonction de votre cas d'utilisation et des données avec lesquelles vous travaillez, vous pourriez ne pas utiliser toutes ces étapes de prétraitement, ou vous pourriez en fait les faire dans un ordre différent. Il est donc très important de réfléchir aux données que vous possédez et au type d'étapes que vous souhaitez appliquer aux données pour les nettoyer. 10. Fréquence de terme: Donc, une définition formelle de la fréquence des termes est le nombre de fois que le jeton apparaît dans le corpus. Et vraiment ce que cela signifie souvent, c'est de faire un compte de mots, que cela peut être un excellent moyen de résumer les données. Ainsi, par exemple, dans nos données, nous avons des centaines de milliers d'avis. Nous n'avons pas le temps de nous asseoir et de lire chacun d'entre eux pour avoir une idée de ce dont les gens parlent. Nous pourrions faire la fréquence des termes pour voir quels sont les mots ou les termes les plus populaires dont les gens parlent. Et cela pourrait nous donner une meilleure compréhension des données en très peu de temps au lieu de passer des heures, potentiellement des jours à lire chaque examen individuel. Une façon vraiment populaire de faire la fréquence des termes est à travers le vectorisateur de comptage Scikit-Learn. Count vectorizer est vraiment sympa car il fait tout le travail pour vous. Vous n'avez pas besoin de parcourir toutes vos balises, parcourir chaque jeton, de stocker un compte pour tous ceux. Il fera tout ça en un pour vous. Il existe plusieurs paramètres différents dans le vectorisateur de nombre que vous pouvez modifier. Et je vous encourage à aller voir la documentation Scikit-Learn et à y jeter un coup d'oeil par vous-même. Mais parce qu'ils ont un impact sur la façon dont les mots sont comptés. Mais les deux sur lesquels nous allons nous concentrer aujourd'hui sont les mots d'arrêt et la plage d'engram pour les mots stop vectorizer count. Vous avez quelques options différentes. Vous ne pouvez pas utiliser de mots d'arrêt. Vous avez donc déjà prétraité vos données et pris des mots d'arrêt. Cela peut être un cas où vous n'utilisez pas de mots d'arrêt ou si vous voulez réellement inclure des mots d'arrêt dans votre compte. Pour que vous puissiez le faire aussi. Vous pouvez utiliser leurs mots d'arrêt anglais intégrés, ou vous pouvez passer dans votre propre liste personnalisée. Et cela peut être quelque chose où vous avez des données spécifiques liées à une certaine industrie et des mots apparaissent qui ne sont pas nécessairement communs dans toute la langue anglaise, mais très spécifiques à votre jeu de données dont vous ne vous souciez pas. Donc, vous pouvez passer dans une liste de ceux à supprimer aussi. Et la gamme de grammes est un périmètre vraiment puissant du vectorisateur de comptage. Vous pouvez passer si vous voulez voir juste des unigrammes, il juste des bigrammes, unigrammes et des bigrammes, des trigrammes, vraiment jusqu'à n'importe quelle gamme de n que vous voulez. Et c'est vraiment agréable car cela nous permet non seulement de voir quels mots sont vraiment populaires, mais aussi de commencer à ramasser les phrases que les gens utilisent. Ensuite, passons à une fréquence de terme, ou vous pouvez penser à cela comme un compteur de mots. Comme je l'ai dit plus tôt, nous avons au total dans cet ensemble de données environ 0,5 million de commentaires. Et nous n'en avons échantillonné que 500. Donc, cela rend certainement plus convivial pour être en mesure de lire à travers ceux-ci. Vous pouvez potentiellement passer par tous les 500 si vous le vouliez manuellement. Mais une chose vraiment géniale que nous pouvons faire ici est de commencer à obtenir quelques parcelles de ce genre de mots ou de phrases dont les gens parlent dans ces critiques. Et pour les résumer plus rapidement, au lieu de nous faire lire manuellement tous les commentaires laissés par les gens. Pour ce faire, nous allons utiliser count vectorizer de scikit-learn. Count vectorizer a une grande variété de paramètres. Je vais aller sur ce lien et vous montrer à quoi ça ressemble. Donc c'est la documentation de scikit-learn sur count vectorizer. Et vous pouvez voir ce sont toutes les entrées que vous pouvez lui donner. Donc, vous pouvez le dire si vous voulez que les choses en minuscules, si vous le voulez, comment vous voulez qu'il soit tokenize, que ce soit au niveau du mot ou du caractère. Peut également inclure des mots d'arrêt et un motif de jeton. Il y a beaucoup d'options différentes ici. N' hésitez donc pas à les regarder et à jouer avec certaines de ces différentes options et à voir comment elles affectent les données. Mais aujourd'hui, nous allons juste être concentrés sur les n-grammes et les mots stop. Donc, la façon dont nous utilisons count vectorizer de scikit-learn est que nous appelons count vectorizer. Et pour nous, je vais laisser toutes les valeurs par défaut sauf que je vais dire, utilisons les mots d'arrêt anglais. Et puis commençons par une plage d'engrammes de 11. Donc, ça veut dire que je ne verrai que des unigrammes ou des mots simples. Et donc nous sauvegardons cela comme ce vectorisateur de nombre de variables. Et à partir de là, sur vectoriseur, nous adaptons la fonction de transformation. Et nous passons dans nos textes de révision propres, sauvegardez cela comme des documents. Et nous pouvons faire vectorizer dot obtenir des noms de fonctionnalités. Et cela nous donne les caractéristiques. Et c'est que notre parole compte pour nous dans les coulisses. Maintenant, si nous voulons les tracer, nous pouvons utiliser une bibliothèque appelée scikit brique jaune et les visualiser très facilement. Donc, à partir de Scikit Yellow break, nous allons appeler ce visualiseur de distribution de fréquence. Et nous allons passer dans les fonctionnalités que nous venons de créer, ainsi que la taille de l'intrigue pour ensuite nous faire un ajustement sur cela et enfin un spectacle. Alors voyons à quoi ça ressemble. Ici, nous pouvons voir un graphique des distributions de fréquence dans les 50 meilleurs jetons de nos 500 commentaires que nous avons tirés. Le mot principal est utilisé, ce qui est probablement logique si vous avez un produit, vous allez l'utiliser. Donc nous avons des mots positifs comme jambe, bien, gris à l'air plutôt positif jusqu'à présent. Et nous avons des mots comme une tasse à café ici. Et comme ça, nous avons pu résumer les principaux mots que les gens utilisent dans leurs commentaires Amazon pour 500 avis. Maintenant, dites peut-être que ces mots simples ne sont pas vraiment assez d'informations pour nous. Eh bien, nous pouvons vraiment faire est de retourner à notre vectoriseur et de changer la gamme d'engrammes de seulement des unigrammes à nous pourrions juste faire des bigrammes ou deux mots ensemble. Donc, si nous réexécutons cette cellule et puis refaisons notre intrigue verra à quels deux mots les gens utilisent beaucoup ensemble. Donc vous pouvez voir que nous avons un travail facile, propre en acier inoxydable, excellent, facile Hughes à anti-adhésif. Et vous pouvez passer par ici et regarder cela dans beaucoup d'entre eux a du sens parce que le royaume des produits Amazon qui étaient dans cette maison K et la cuisine. Donc la fonte, l'acier inoxydable, tout ça a du sens. Lave-vaisselle, planche à découper sûre. Oui, c'est vraiment intéressant à voir et vous pouvez commencer à penser à quels types de produits les gens examinent potentiellement à partir de ces ensembles pour des bigrammes ? Maintenant, une chose que nous pouvons aussi faire est que vous n'avez pas à faire seulement des unigrammes ou simplement des bigrammes. On peut même faire des unigrammes et des bigrammes ensemble. Donc, nous relançons ce son, relancez l'intrigue. Nous verrons les unigrammes et les bigrammes ensemble. Mais il semble que dans ce cas, la fréquence des unigrammes est en fait plus élevée que n'importe lequel des bigrammes. C' est pour ça qu'on ne voit que des unigrammes sur ce complot. Mais Certainement intéressant à voir, et vous pouvez aussi faire des trigrammes. Et voyons quelles phrases de trois mots les gens utilisent. Nous avons donc un distributeur de savon à capteur et un revêtement antiadhésif. Ce serait probablement cela fonctionne comme un charme, mais le prétraitement que nous avons fait l'a changé pour fonctionner. Comme vous pouvez regarder à travers ici et voir une sorte de ce les gens parlent et potentiellement ce que les commentaires que les gens quittent aussi bien. Donc, en plus des mots ou des gens qui parlent, nous pourrions aussi savoir combien de temps les gens quittent les examens moyens. Donc, pour ce faire, nous pouvons réellement prendre notre doc spatial et simplement faire la fonction lambda pour obtenir la longueur de cela, sauf que le jeton entier compte, puis jeter un oeil à notre texte de révision propre pour voir combien de jetons en fait supprimées du texte original par rapport au texte propre. Donc, si nous lançons cela, nous obtiendrons deux nouvelles colonnes appelées token count all, ce qui serait le nombre de jetons, tous les jetons qui, et puis nous aurons un nouveau appelé token count clean, qui est le nombre de jetons de les données de texte prétraitées. La prochaine chose que je vais faire est juste de tracer cela en obtenant les comptes de valeur à partir de là et en faisant juste un graphique à barres avec ce que notre nombre de jetons moyen est. Donc, vous pouvez voir que nous avons une assez grande variété de liens de jetons. Pour rendre ce graphique encore plus clair, vous pourriez probablement simplement regrouper les choses comme un histogramme, mais je fais juste les comptes exacts. Donc, vous pouvez voir que nous avons la plupart de nos commentaires étant autour d'un 100 jetons. Et puis nous avons quelques valeurs aberrantes ici, celui-ci, et ce grand ici a 739 jetons. Donc, ils ont dû être vraiment bouleversés, sont vraiment fâchés par tous les produits qu'ils avaient. Je devine définitivement si vous aberrants ici à des critiques plus longues, mais je dirais qu'ils ont tendance à l'être, il ressemble à la gamme 30 à 40 de jetons, qui en fait assez court pour les critiques. Et, mais rappelez-vous que c'est le nombre de tous les jetons, mots d'arrêt de ponctuation, ça, Voyons ce qui se passe quand nous faisons réellement le nombre de jetons sur la colonne propre ou les données prétraitées, vous pouvez voir que notre nombre ou aberrants ont chuté drastiquement de 700 et jetons à 271. Vous pouvez voir notre nombre moyen de jetons que nous avons dans notre examen est en fait d'environ dix à 15 environ, ce qui n'est vraiment pas autant que je le pensais pour un examen Amazon. Maintenant, généralement lorsque vous examinez vos données, vous voudrez jeter un oeil aux valeurs aberrantes et voir à quoi elles ressemblent. Donc, je vais juste jeter un oeil à cette revue qui a 271 jetons de prétraitement et je vais imprimer la taxe de vue originale réelle. Donc, notez que puisque je suis en train d'imprimer le texte de révision, donc ce sera en fait où il y a les 700 jetons environ. Mais vous pouvez voir quelqu'un qui a vraiment beaucoup à dire sur leur meuleuse à bavures. Et il semble qu'ils sont revenus plusieurs fois et ont mis à jour leur examen. Donc, ce n'était pas seulement un examen unique est en fait au fil du temps, ce qui est intéressant. Vous pouvez jouer autour et vérifier ceux que vous pensez être intéressants. Peut-être que vous voulez regarder ceux où il n'y avait que 10 jetons à la fin, imprimez-les aussi bien. 11. Reconnaissance d'entité nommée: La reconnaissance d'entités nommées est un outil extrêmement puissant dans le traitement du langage naturel qui permet à un ordinateur d'identifier des objets du monde réel dans le texte. Maintenant, Spacey a sa propre liste de choses qu'il reconnaît. Quelque chose de noms spécifiques de personnes, nationalités, pays, et vraiment beaucoup d'autres options. Et je vais vous lier à leur site Web pour pouvoir regarder à travers cela aussi. La façon dont Spacey reconnaît les entités se fait par le biais d'un modèle pré-formé. Donc, cela signifie que quelqu'un a traversé un annoté sont étiquetés un tas de données où ils prennent des phrases ou des paragraphes de texte. Et pour chaque jeton dans ce texte, ils peuvent avoir Jane Doe étiquetée comme une personne ou le Japon étiqueté comme un pays. Donc, avec l'utilisation d'un modèle pré-formé, il est important de noter que ce ne sera pas une précision à 100 % si votre texte est très différent des textes sur lesquels il a été formé, il va probablement reconnaître un tas d'ordures. Et nous verrons un peu cela dans notre exemple avec lequel nous travaillons dans les revues Amazon. Dans l'ensemble, il fait généralement un bon travail sur le texte générique. Un exemple concret d'utilisation de la reconnaissance d'entités nommées consiste à masquer des données sensibles, telles que des noms, des numéros de sécurité sociale ou des numéros de téléphone. Ensuite, nous allons passer par un exemple de reconnaissance d'entité nommée. Fondamentalement rend ce super facile, qui est génial et a déjà un modèles pré-formés. Et nous pouvons à peu près appliquer cela directement à nos données. Donc, juste pour donner un exemple avant de l'appliquer à l'ensemble des jeux de données, je vais juste prendre cet index aléatoire d' un examen et l'enregistrer et aussi l'imprimer. Donc on verra à quoi ça ressemble. Ensuite, ce que nous allons faire est d'imprimer tous les espacey reconnaître de lui ainsi que le caractère qu'il a commencé dans le texte à quel caractère s'est terminé aussi. Nous pouvons voir que ces critiques parler d' une certaine compétence cela signifie lire à travers que si vous voulez. Mais les choses que le SPAC a reconnues d'ici, nous sommes des valeurs numériques, donc 1 et 2, c'est ce que cardinal veut dire. Et il a reconnu Amazon comme une organisation pour 100 degrés comme une quantité et les accrocheuses de silicone comme FAC. Je ne sais pas vraiment ce que signifie FAC, mais allons dans l'espace. Il est documenté et voir toutes les entités qu'il sera en mesure de reconnaître. Et puis nous pouvons comprendre ce que signifie FAC. Fac ça ressemble à de l'espace. Sa documentation est un bâtiment, un aéroport, une autoroute ou un pont. Maintenant, si nous revenons à nos données, nous verrons que les accrocheuses de silicone n'est certainement pas l'autoroute ou le pont. Il semble que c'est le nom du produit ou le type de produit potentiellement. Donc, il est intéressant que l'espace qu'il a reconnu cela, mais c'est un peu ce que vous trouverez était des bases nommées reconnaissance d'entité car il a été formé sur un ensemble spécifique de données Web. Et potentiellement à cause de la façon dont cette capitalisation lui regarde, Il peut être penser que c'est un bâtiment ou quelque chose, mais apparemment jamais vu quelque chose dans les données avant cela il fait penser que c'est un bâtiment. Reconnaissez que chaque fois que vous faites la reconnaissance d'entités nommées, elle est basée sur un modèle, donc vous n'obtiendrez pas une précision de 100 % jamais qui seront des erreurs. Et nous le remarquerons un peu lorsque nous commencerons à creuser les données ici et à l'appliquer à tout notre espace de jeu de données. Il reconnaît beaucoup de différents types d'entité est en fait, vous pouvez généralement penser à l'entité comme un nom approprié, une personne, un lieu, ou une chose. Mais jetons un coup d'oeil à toutes les choses que les espèces reconnaissent pour que nous puissions voir qu'elles reconnaissent la personne. Est-ce qu'ils vous donnent une petite description de ce que c'est ? Des gens réels et des gens fictifs ainsi, ce qui est intéressant, Got ni sorcières, nationalités, groupes religieux ou politiques, un pays GPE, villes, États, produits, documents faits en lois. Vous pouvez voir qu'il y a beaucoup d'espace ici. Il a également une visualisation vraiment cool de ces entités qu'il reconnaît. Et je vais te montrer à quoi ça ressemble ici. Fondamentalement, ce qu'il fait est de prendre ces textes que nous avions imprimés plus tôt, la pleine taxe ainsi que les entités reconnues. Et c'est juste un peu plus facile pour nous de lire. Il prend leur examen et ensuite mettre en évidence l'entité est qu'il reconnaît là-dedans. Cela peut être utile si vous essayez de créer une sorte de site Web où vous effectuez la reconnaissance d'entité nommée et que vous souhaitez l'afficher facilement à l'utilisateur. C' est beaucoup plus beau que cette impression ici. Maintenant, en passant à partir de cet exemple, nous voulons l'appliquer à l'ensemble DataFrame. Et la façon dont je vais le faire est en fait de créer un nouveau DataFrame juste pour parce qu' il peut y avoir plusieurs entités qui sont reconnues dans un seul examen. Et je veux les séparer de nos autres DataFrame avec lesquels nous travaillons. Je crée un DataFrame appelé entités de soulignement df. Et j'ai les index de colonnes suivantes. Donc, cela va correspondre si jamais je voulais fusionner mes résultats avec le DataFrame d'origine, points, quelle serait la jointure ? Nous avons le document SPAC, qui est essentiellement l'examen imposé avec l'entité envoyé par SMS. Nous avons le label d'entité, nous avons le début de l'entité et l'entité. Et ce que je vais faire est de parcourir mon DataFrame échantillonné avec lequel nous avons travaillé jusqu'à présent, faire ces tuples internes, cela signifie juste passer par chaque ligne dans le dataframe. Ensuite, pour chaque ligne, nous allons regarder le texte de révision et sauver toutes les entités qu'il reconnaît. Je vais exécuter ce code et ensuite nous allons vérifier les cinq premières lignes du DataFrame. Si vous travaillez avec un jeu de données très volumineux, cela va certainement prendre un certain temps car l'espace qu'il doit faire beaucoup de choses en arrière-plan. Jetons donc un coup d'oeil à ce que ce DataFrame ressemble réellement. Donc ce sont les cinq premières lignes. Nous avons notre texte ici sont Spacey Doc, donc c'est un texte de révision. Celui-ci parle d'acheter ce thermomètre. Ensuite, nous avons les textes qui reconnaissent ce qui est en train de le reconnaître. Et puis si nous devions revenir en arrière et faire une analyse, il a le caractère de départ dans le texte ainsi que l'endroit où ce caractère se termine. Et si vous pouvez voir dans cet exemple spécifique, au moins pour les cinq premières lignes, nous reconnaissons le week-end comme un jour. Nous avons des valeurs numériques comme cardinaux, le week-end à nouveau comme une date. Alors jetons un coup d'oeil et voyons ce que les entités les plus populaires que vous reconnaissez. On ressemble le plus à des cardinaux. Donc, ce sont des gens qui parlent comme 12 valeurs numériques différentes. On a aussi beaucoup de dates reconnues. On a des organisations. Il a acheté des œuvres d'art, donc je suppose que ce ne sont probablement pas des œuvres d'art. Jetons donc un coup d'oeil à quels produits sont reconnus. Puisque nous sommes en train de regarder des avis de produits, vous penseriez qu'il y en aurait beaucoup. Donc, ce que je vais faire est juste de sous-définir mon DataFrame ou de le filtrer aux lignes où il y avait eu des produits reconnus. Et puis l'auto-immunité ici est juste la valeur compte pour voir combien de chaque produit nous voyons. Alors jetons un coup d'oeil. Nous avons tout le sel de mer, la cuisine, l'art. Et ça ressemble à beaucoup de choses qui n'ont pas de sens. Comme je l'ai dit plus tôt, c'est basé sur un modèle, donc il a été formé sur différentes données et non sur ces examens de produits. Si nous avions suffisamment de données que nous avions annoté nous-mêmes, nous pourrions certainement former et modéliser pour mieux reconnaître les entités. Mais obtenir des données étiquetées prend généralement beaucoup de temps ou vous devez dépenser de l'argent pour amener quelqu'un à étiqueter les données pour vous. Donc, parfois, vous avez juste à travailler avec ce que vous avez n'importe quel type de filtrer les résultats à partir de là. Donc, nous pouvons changer cela pour regarder d'autres entités qu'il a reconnues. Par exemple, regardons les gens que je l'ai reconnu. Ils seront intéressés par les examens par les pairs qui appellent les gens ressemble en fait à ici. Ce n'est pas en fait que les gens soient reconnus. Beaucoup de choses qui n'ont pas de sens ici. Je vais essayer cette œuvre d'art juste pour m'amuser. Je serais très surpris s'il y a des œuvres d'art qui sont mentionnées dans les critiques de cuisine. Donc c'est drôle parce que vous pouvez voir où Spacey pourrait être confondu ici. Joy of Cooking et par Rome, bar et Becker en 1975, peut-être que c'est un livre ou quelque chose, mais je suis en fait, Je ne suis pas sûr si c'est un réel ou non, mais vous pouvez voir que certains d'entre eux, comment pour comprendre où il pourrait s'agir d'une œuvre d'art. Jetons un coup d'oeil à ou aussi et voyons quelles organisations ont été mentionnées. Amazon, amazon.com. C' est certainement logique puisque ce sont des commentaires Amazon que je m'attendrais à la taille. Maintenant, remarquez avec ces points, beaucoup d'entre eux sont coupés. Donc, vous enregistrez certainement ce bureau et d'autres DataFrame et imprimez l'ensemble DataFrame si vous voulez obtenir tous les résultats ici, n' hésitez pas à passer par l'un d'entre vous et regarder à travers une entité sont en cours de reconnaissance et vous pourriez soyez surpris de ce qu'il y a là-dedans. 12. Partie de l'étiquetage et de la Dependency: Une partie du marquage vocal est un moyen d'identifier différentes parties de la parole pour chaque jeton. Maintenant, si vous vous souvenez de retour en classe d'anglais de première année, quand vous deviez apprendre toutes les différentes parties du discours et des phrases de diagramme, toutes ces choses amusantes que vous avez probablement oublié. Vous allez devoir vous rappeler quand vous commencez à parler de marquage de la partie de la parole. Maintenant, différentes parties du discours, les basiques sont comme des noms et des verbes, adverbes, mais il y a une tonne de différentes parties du discours là-bas. Et en fonction de l'endroit où se trouve un jeton dans une phrase, vous pouvez identifier quelle partie du discours il s'agit. Maintenant, vous vous demandez peut-être, pourquoi aurais-je jamais besoin de savoir que la partie du discours, différents textes à, eh bien, il est souvent utilisé dans les coulisses pour être en mesure lemmatized tokens ainsi que de faire la reconnaissance d'entités nommées. Mais un cas d'utilisation cool est pour une traduction. Donc, si nous demandons à l'ordinateur de traduire la phrase suivante, l'espagnol, pouvez-vous jeter ce canon la poubelle il. Nous devrions probablement utiliser le balisage de partie de parole pour être en mesure de reconnaître la première instance de CAN est un verbe pour être en mesure de traduire cela correctement. Et puis la deuxième instance de CAN est un nom similaire à une partie du marquage de la parole, l'analyse de dépendance. Si vous allez faire cela et le traitement du langage naturel, vous aurez probablement besoin de revenir à l'année de première année de l'anglais et être en mesure de se rappeler quand vous diagramme phrases pour identifier où la racine d'une phrase est, ce que l'objet de noms est, ce que le modificateur est, tous ces trucs. Mais vraiment ce que l'analyse de dépendance fait ici est juste d'analyser la structure d' une phrase basée sur la façon dont les mots se rapportent les uns aux autres dépendent les uns des autres. Ceci est souvent utilisé dans les coulisses vraiment pour la lemmatization et la reconnaissance d'entités nommées, ainsi que d'autres outils pour être en mesure d'identifier les relations entre les mots ou les jetons. Last but not least, nous allons toucher sur une partie du marquage de la parole et l'analyse de la dépendance nous allons toucher sur une partie du marquage de la parole et l'analyse de la dépendancede la personne quand ils vont sur ce lien qui a un tas de parties de la parole de Wikipédia. Si vous avez besoin d'un rafraîchissement, n'hésitez pas à venir ici et à jeter un oeil en anglais, notre langue occidentale, nous avons quelques-unes de ces différentes parties du discours. Nom, verbe, participle, article, pronom, préposition, adverbe, conjonction. Mais selon la langue avec laquelle vous travaillez, peut être différent pour vous. Donc, comme je l'ai dit dans les diapositives présentes, marquage de la parole est généralement utilisé dans les coulisses pour être en mesure d'obtenir la reconnaissance d'entité nommée pour fonctionner. Mais je vais vous donner un exemple d'où nous pourrions utiliser ça dans le monde réel. Et d'abord, voyons comment on fait ça avec Spacey. Je prends juste un de ces exemples de commentaires avec lesquels nous avons travaillé jusqu'à présent, cet ID. Et puis l'assigner à la variable de stock. Là, je suis en train d'imprimer le texte de jeton, la partie jeton de la parole, et la dépendance Token. Donc, cela pénètre également dans l'analyse des dépendances en même temps. Et vous pouvez voir que c'est un peu difficile à lire. Nous voyons que ceux-ci sont étiquetés comme DET et ET. Nous avons des choses qui sont un sujet de nom ou de nom. Vous pouvez faire défiler la revue entière et obtenir tous ceux et c'est un peu difficile à lire. Donc, l'espace, il a une façon cool de visualiser leur analyse de dépendance et une partie du marquage de la parole. Ce qui nous fait petit arbre, ce qui vous ramène définitivement à quand vous avez dû tracer des phrases et vous montre comment tous ces Non liés les uns aux autres. Ainsi, un exemple de ce que nous pourrions utiliser dans le monde réel est de compter le nombre d'adjectifs et adverbes que les utilisateurs utilisent dans leurs commentaires Amazon pour voir à quel point leurs commentaires sont descriptifs. Et puis potentiellement nous pouvons voir quels sont les commentaires les plus descriptifs et quels sont les moins descriptifs. Donc, je vais juste prendre un exemple de document que nous avons utilisé tout au long ce cours et l'enregistrer comme DACA. Et juste pour nous avoir une idée de ce que cela pourrait ressembler, je vais seulement imprimer les jetons qui sont ADJ pour adjectif ou ADV pour adverb. Mais il peut voir plus tôt si je fais défiler ici, nous avions une tonne de jetons, imprimer ici parce que nous imprimons littéralement chaque partie de la parole et de la dépendance, cet effet d'espace organisé ici nous sommes juste limité aux adverbes et aux adjectifs. n'est donc qu'un exemple pour un avis Amazon. Mais si nous voulions appliquer cela à l'ensemble de DataFrame, ce que nous pourrions faire est juste de faire une fonction, je l'appelle count adverbes, adjectifs. Il prend dans un doc SPAC, retourne un int ou le nombre des adverbes et des adjectifs. De cette façon, nous pouvons voir quels sont le texte le plus descriptif. Donc, c'est comme si je faisais ici, c'est juste mettre en place un compteur égal à 0 et puis prendre ce code à peu près que nous avons écrit plus tôt, sauf au lieu d'imprimer, je vais faire est d'ajouter un au compteur si c'est un adjectif ou un puis revenez le nombre d'adjectifs ou d'adverbes dans le texte. Donc, une fois que cela est exécuté, nous pouvons utiliser une fonction lambda comme nous l'avons fait tout au long du cours pour l'appliquer au DataFrame, enregistrer cela comme une nouvelle colonne appelée adjectifs de comptage, adverbes. Et puis faisons un complot pour voir combien d'adjectifs ou d'adverbes les gens utilisent généralement dans leur texte. Maintenant, vous pouvez voir qu'il y aura, encore une fois, toujours des valeurs aberrantes. Donc, il semble que le seul aberrant est un 125 adjectifs et adverbes. Cela doit donc être des textes vraiment descriptifs. Et c'est probablement un très long morceau de texte et nous allons jeter un oeil à ce qui lui ressemble. A en juger par ce graphique, en général, les gens sont dans la gamme de 1 à 10 d'adjectifs ou adverbes, ce qui est probablement logique pour notre ensemble de données. Et enfin, ce que nous pouvons faire ici, c'est jeter un oeil à celui qui était notre aberrant. Mais encore une fois, vous pourriez passer par l'un de ces, remplacer 125 diraient 24, et il ramènera tous les commentaires où il y avait 24 adjectifs ou adverbes, peut effectivement voir que celui-ci qui avait un 125 adjectifs et adverbes était le même exemple que nous avions plus tôt de celui qui était beaucoup de jetons comme 700 ou quelque chose pour la version impure, puis 200 pour la zone de version propre. En général, vous penseriez probablement qu'à mesure que les taxes s'allongent, vous auriez de plus en plus d'adjectifs et d'adverbes habitués au produit et plus de description. Mais vous pouvez aussi tester cette hypothèse vous-même. Donc, ce n'était pas le traitement du langage naturel en utilisant Python. En bref, nous avons couvert certaines techniques de prétraitement, la fréquence des termes, reconnaissance des entités nommées de marquage en partie de parole et l'analyse des dépendances, ce qui était certainement beaucoup à parcourir. Et ce n'est que la pointe de l'iceberg pour le traitement du langage naturel. Il y a beaucoup de choses là-bas que nous ne l'avons pas réellement couvert aujourd'hui, comme donc, être à l'affût d'une future vidéo. Et nous espérons que vous avez apprécié cette vidéo aujourd'hui. Merci beaucoup d'avoir rejoint nous et d'avoir appris sur la PNL.