Blog ENI : Toute la veille numérique !
Le site Editions ENI sera inaccessible le mardi 10 décembre. Aucune commande de spiralé personnalisé ne pourra être expédiée le 12/12, en raison d'une opération de maintenance.Nous vous invitons à anticiper vos achats.
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée
  1. Supports de cours
  2. Traitement automatique du langage naturel avec Python - Le NLP avec spaCy et NLTK

Traitement automatique du langage naturel avec Python Le NLP avec spaCy et NLTK

Informations

Livraison possible dès le 12 décembre 2024
  • Version en ligne offerte pendant 1 an
  • Personnalisable
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • Reliure spirale - 17 x 21 cm (Médian)
  • ISBN : 978-2-409-04500-4
  • EAN : 9782409045004
  • Ref. ENI : EIMNLP

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • HTML
  • ISBN : 978-2-409-04501-1
  • EAN : 9782409045011
  • Ref. ENI : LNEIMNLP
Cet ouvrage sur le traitement automatique du langage natu­rel (NLP) avec le langage Python est un guide pratique pour les professionnels, étudiants ou passionnés, ayant des bases minimales en Python, désireux d’explorer les horizons de l’intel­ligence artificielle et de la linguistique. Dès les premières pages, le livre vous donne de solides bases en IA et en linguistique, essentielles pour comprendre le NLP. Vous serez guidé à travers les concepts clés et les outils de NLP, comme l’analyse...
Aperçu du livre papier
  • Niveau Confirmé à Expert
  • Nombre de pages 216 pages
  • Parution septembre 2024
  • Niveau Confirmé à Expert
  • Parution septembre 2024
Cet ouvrage sur le traitement automatique du langage natu­rel (NLP) avec le langage Python est un guide pratique pour les professionnels, étudiants ou passionnés, ayant des bases minimales en Python, désireux d’explorer les horizons de l’intel­ligence artificielle et de la linguistique.

Dès les premières pages, le livre vous donne de solides bases en IA et en linguistique, essentielles pour comprendre le NLP. Vous serez guidé à travers les concepts clés et les outils de NLP, comme l’analyse syntaxique et le POS-tagging, qui sont présen­tés avec clarté et précision. Le support couvre ensuite une gamme étendue de domaines d’application en NLP : la traduction auto­matique et la génération de texte, l’extraction de caractéris­tiques, la classification de documents, la reconnaissance de la parole ou encore l’analyse de sentiments.

L’approche très pratique du support vous permet d’utiliser systémati­quement spaCy ou NLTK au cours de mini-projets qui mobilisent également Jupyter, Gensim (Word2Vec), Scikit-Learn, Pytorch ou encore les modèles GPTs d’OpenAI. Le Web Scraping, un aspect crucial de la collecte de données en NLP, pour construire des jeux de données, est également abordé.

Que vous souhaitiez développer une application de reconnais­sance vocale, analyser des sentiments sur les réseaux sociaux ou simplement approfondir vos connaissances en NLP, ce support constitue une ressource utile, voire indispensable.

Téléchargements

Introduction au TALN et à ses applications
  1. 1. Qu'est-ce que le traitement du langage naturel ?
    1. 1.1 Présentation et définition
    2. 1.2 Brève histoire du TALN
      1. 1.2.1 Le test de Turing (1950)
      2. 1.2.2 L'expérience Georgetown-IBM (1954)
      3. 1.2.3 ELIZA (1964-1966)
      4. 1.2.4 La base de données lexicale WordNet (1968)
      5. 1.2.5 L'usage des réseaux de neurones (90)
      6. 1.2.6 L'usage de l'apprentissage profond (10)
  2. 2. Les domaines d'application du TALN
    1. 2.1 Traduction automatique
    2. 2.2 Analyse de sentiments
    3. 2.3 Reconnaissance de la parole
    4. 2.4 Génération de textes
    5. 2.5 Classification de textes
    6. 2.6 Extraction d'informations
    7. 2.7 Correction automatique
    8. 2.8 Génération de dialogue (chatbot)
  3. 3. Les défis contemporains du TALN
    1. 3.1 Compréhension et représentation de la sémantique
    2. 3.2 Variabilité du langage
    3. 3.3 Compréhension des énoncés implicites
  4. 4. Conclusion
Quelques éléments de linguistique et d'IA
  1. 1. Introduction
  2. 2. La linguistique
    1. 2.1 Signifié et signifiant
    2. 2.2 Du corpus vers le lexème
      1. 2.2.1 Introduction
      2. 2.2.2 Corpus
      3. 2.2.3 Document
      4. 2.2.4 Paragraphe
      5. 2.2.5 Phrase
    3. 2.3 Des définitions pour comprendre le lexème
      1. 2.3.1 Phone
      2. 2.3.2 Phonème
      3. 2.3.3 Morphème
      4. 2.3.4 Mot-forme - morphème lexical
      5. 2.3.5 Lemme - lexème
    4. 2.4 Linguistique et sous-disciplines
  3. 3. L'intelligence artificielle et l'apprentissage automatique
    1. 3.1 Introduction
    2. 3.2 Apprentissage automatique
    3. 3.3 Apprentissage profond
    4. 3.4 Distinction entre apprentissages supervisé et non supervisé
      1. 3.4.1 Apprentissage supervisé
      2. 3.4.2 Apprentissage non supervisé
    5. 3.5 Le « pipeline » d'un apprentissage automatique
      1. 3.5.1 Contexte de l'exemple
      2. 3.5.2 Le « pipeline » de l'apprentissage en NLP
  4. 4. Conclusion
Le traitement du langage naturel
  1. 1. Introduction
  2. 2. Le nettoyage préalable d'un modèle
    1. 2.1 Nettoyage de base
    2. 2.2 Stopwords
    3. 2.3 Stemming (racinisation)
    4. 2.4 Lemmatisation
  3. 3. La notion d'hyperparamètre
  4. 4. La vectorisation et le bag of words
  5. 5. Le topic modeling
  6. 6. Le word embedding
  7. 7. La fréquence d'apparition d'un mot
  8. 8. Les réseaux de neurones récurrents (RNN)
  9. 9. Les réseaux de neurones convolutionnels (CNN)
  10. 10. Les réseaux de neurones Transformers... et ChatGPT
  11. 11. BERT
  12. 12. L'évaluation de modèle TALN
  13. 13. Conclusion
Installation et contexte des outils utilisés
  1. 1. Introduction
  2. 2. Jupyter, méthodologie intéressante
    1. 2.1 Propos
    2. 2.2 Installation de Jupyter
    3. 2.3 Utilisation de Jupyter
  3. 3. Les bibliothèques NumPy et pandas
    1. 3.1 NumPy
    2. 3.2 pandas
    3. 3.3 Exemple illustrant NumPy et pandas
      1. 3.3.1 Première cellule
      2. 3.3.2 Deuxième cellule
      3. 3.3.3 Troisième cellule
      4. 3.3.4 Quatrième cellule
      5. 3.3.5 Cinquième cellule
      6. 3.3.6 Sixième cellule
      7. 3.3.7 Septième cellule
      8. 3.3.8 Huitième cellule
      9. 3.3.9 Neuvième cellule
      10. 3.3.10 Dixième cellule
  4. 4. spaCy
    1. 4.1 Introduction
    2. 4.2 spaCy et NLTK
    3. 4.3 Procédure d'installation de spaCy
    4. 4.4 Première utilisation de spaCy
      1. 4.4.1 Tokenisation avec spaCy
      2. 4.4.2 Reconnaissance des entités nommées avec spaCy
      3. 4.4.3 Étiquetage morphosyntaxique avec spaCy
  5. 5. NLTK
    1. 5.1 Introduction
    2. 5.2 Procédure d'installation de NLTK
    3. 5.3 Première utilisation de NLTK
      1. 5.3.1 Première cellule
      2. 5.3.2 Deuxième cellule
      3. 5.3.3 Troisième cellule
      4. 5.3.4 Quatrième cellule
      5. 5.3.5 Quatrième cellule
  6. 6. Gensim
    1. 6.1 Introduction
    2. 6.2 Installation de Gensim
    3. 6.3 Exemple d'utilisation de Gensim
      1. 6.3.1 Première et deuxième cellules
      2. 6.3.2 Troisième cellule
      3. 6.3.3 Quatrième cellule
      4. 6.3.4 Cinquième cellule
      5. 6.3.5 Sixième cellule
      6. 6.3.6 Septième cellule
  7. 7. scikit-learn
    1. 7.1 Introduction
    2. 7.2 Installation
    3. 7.3 Première utilisation de scikit-learn
      1. 7.3.1 Première cellule
      2. 7.3.2 Deuxième cellule
      3. 7.3.3 Troisième cellule
      4. 7.3.4 Quatrième cellule
      5. 7.3.5 Cinquième cellule
  8. 8. Conclusion
Analyse lexicale, lemmatisation et racinisation
  1. 1. Introduction
  2. 2. Tokenisation avec NLTK et spaCy
    1. 2.1 Tokenisation avec NLTK
    2. 2.2 Tokenisation avec spaCy
  3. 3. Lemmatisation avec NLTK et spaCy
    1. 3.1 Introduction
    2. 3.2 Lemmatisation avec NLTK
    3. 3.3 Lemmatisation avec spaCy
  4. 4. Racinisation avec NLTK et spaCy
    1. 4.1 Introduction
    2. 4.2 Racinisation avec NLTK
    3. 4.3 Racinisation avec spaCy
  5. 5. Conclusion
Étiquetage morphosyntaxique
  1. 1. Introduction et définition
    1. 1.1 Définition de l'étiquetage morphosyntaxique
    2. 1.2 Utilité du POS tagging en vue de la phase d'apprentissage
  2. 2. Étiquetage morphosyntaxique avec NLTK
  3. 3. Étiquetage morphosyntaxique avec spaCy
  4. 4. Conclusion
Extraction de caractéristiques de texte
  1. 1. Introduction
    1. 1.1 Fréquence des mots (Bag-of-Words)
    2. 1.2 TF-IDF (Term Frequency-Inverse Document Frequency)
    3. 1.3 Reconnaissance d'entités nommées
    4. 1.4 Analyse de sentiments
    5. 1.5 Extraction de mots-clés
    6. 1.6 Embeddings de phrases
  2. 2. Fréquence des mots (Bag-of-Words)
    1. 2.1 Fréquence des mots avec NLTK
    2. 2.2 Fréquence des mots avec spaCy
  3. 3. TF-IDF (Term Frequency-Inverse Document Frequency)
    1. 3.1 Introduction
    2. 3.2 Term Frequency (TF)
    3. 3.3 Inverse Document Frequency (IDF)
    4. 3.4 TF-IDF
    5. 3.5 Exemple de TF-IDF avec NLTK et scikit-learn
  4. 4. Reconnaissance d'entités nommées
    1. 4.1 Introduction
    2. 4.2 Reconnaissance d'entités nommées avec spaCy
    3. 4.3 Reconnaissance d'entités nommées avec NLTK
  5. 5. Analyse de sentiments
    1. 5.1 Introduction
    2. 5.2 Analyse de sentiments avec spaCy
    3. 5.3 Analyse de sentiments avec NLTK
      1. 5.3.1 Classificateur Naive Bayes
  6. 6. Extraction de mots-clés
    1. 6.1 Introduction
    2. 6.2 Exemple avec spaCy
  7. 7. Embeddings de phrases
    1. 7.1 Introduction
    2. 7.2 Principaux outils
      1. 7.2.1 Word2Vec
      2. 7.2.2 Doc2Vec
      3. 7.2.3 GloVe (Global Vectors for Word Representation)
      4. 7.2.4 BERT (Bidirectional Encoder Representations from Transformers)
    3. 7.3 Exemple avec Word2Vec et NLTK
    4. 7.4 Exemple avec BERT et spaCy
  8. 8. Conclusion
Génération de texte
  1. 1. Introduction à la génération de texte
  2. 2. Les modèles de chaînes de Markov
    1. 2.1 Définition
    2. 2.2 Fonctionnement dans le cadre de la génération de texte
      1. 2.2.1 Modélisation des transitions
      2. 2.2.2 Calcul des probabilités
      3. 2.2.3 Génération de texte
    3. 2.3 Génération de texte avec des chaînes de Markov et NLTK
    4. 2.4 Génération de texte avec des chaînes de Markov et spaCy
  3. 3. Les modèles de langage neuronaux
    1. 3.1 Explication théorique
    2. 3.2 Exemple pratique
    3. 3.3 Utilisation de GPT-3 via l'API d'OpenAI
      1. 3.3.1 Introduction
      2. 3.3.2 Exemple pratique
Reconnaissance de la parole
  1. 1. Introduction et définition
    1. 1.1 La bibliothèque SpeechRecognition
  2. 2. Reconnaissance de la parole avec Python/NLTK
    1. 2.1 Contexte et outils nécessaires à l'exemple
    2. 2.2 Exemple en Python et NLTK
      1. 2.2.1 Explication du code
      2. 2.2.2 Fichier audio en anglais et plus long (1'35)
  3. 3. Reconnaissance de la parole avec Python/spaCy
    1. 3.1 Introduction
    2. 3.2 Le code adapté à spaCy
Traduction du texte et de la parole
  1. 1. Traduction de texte en NLP
    1. 1.1 Définition et mise en perspective
    2. 1.2 Processus théorique de la traduction de texte
  2. 2. Exemple pratique : traduction de l'anglais vers le français
    1. 2.1 Introduction
    2. 2.2 Le choix technologique
    3. 2.3 Implémentation avec Hugging Face/MarianMT
  3. 3. Traduction du français vers l'allemand et réciproquement
  4. 4. Reconnaissance de la langue utilisée
    1. 4.1 Introduction
    2. 4.2 Stratégie en NLP
    3. 4.3 Exemple simple à l'aide de NLTK
    4. 4.4 Exemple élaboré avec LangDetect et spaCy
Correction orthographique/syntaxique et pipelines
  1. 1. Introduction
    1. 1.1 Correction orthographique et syntaxique
    2. 1.2 Pipelines avec spaCy
  2. 2. Première approche de la correction orthographique
    1. 2.1 SpellChecker
    2. 2.2 Exemple avec SpellChecker/NLTK
  3. 3. Notion de pipeline dans spaCy
    1. 3.1 Présentation
    2. 3.2 Composantes du pipeline
      1. 3.2.1 Comment connaître le contenu par défaut du pipeline ?
      2. 3.2.2 Clés principales utilisables dans le pipeline
      3. 3.2.3 Exemple d'utilisation
      4. 3.2.4 Considération sur l'industrialisation des traitements
  4. 4. Correction orthographique et syntaxique avec spaCy
    1. 4.1 Contextual Spell Check
    2. 4.2 Utilisation avec pipeline
    3. 4.3 Utilisation de façon classique (sans pipeline)
  5. 5. Quelques éléments théoriques
    1. 5.1 Distance de Levenshtein
    2. 5.2 Distance de Damerau-Levenshtein
    3. 5.3 N-grammes et modèles de Markov
Exploration de données et analyse de sentiments
  1. 1. Introduction
  2. 2. Exploration approfondie du jeu de données
    1. 2.1 Lecture et découverte du dataset
    2. 2.2 Répartition des « sentiments »
    3. 2.3 Nettoyage du jeu de données
    4. 2.4 Nuage de mots
    5. 2.5 Analyse de la longueur des tweets
  3. 3. Analyse de sentiments
    1. 3.1 Entraînement du modèle
      1. 3.1.1 Imports de bibliothèques
      2. 3.1.2 TF-IDF
      3. 3.1.3 Division en données de test et d'entraînement
      4. 3.1.4 Entraînement du modèle
      5. 3.1.5 Prédiction sur l'ensemble de tests
      6. 3.1.6 Indicateurs relatifs à l'évaluation du modèle
    2. 3.2 Évaluation de la qualité du modèle entraîné
    3. 3.3 Utilisation du modèle de prédiction
      1. 3.3.1 Nettoyage des trois tweets
      2. 3.3.2 Vectorisation des trois tweets
      3. 3.3.3 Prédiction pour chacun des trois tweets
  4. 4. Ensemble du code du chapitre
Lettres de Fusillés 1940-1944 sur Le Maitron en ligne
  1. 1. Introduction
  2. 2. Problématique identifiée
  3. 3. Obtention d'un jeu de données
    1. 3.1 Contexte
    2. 3.2 Web scraping
    3. 3.3 Parsing de chaque lettre de Fusillé
    4. 3.4 Corrections manuelles
    5. 3.5 Nettoyage du jeu de données
  4. 4. Rapide exploration du jeu de données
  5. 5. Apprentissage du modèle, différentes approches
    1. 5.1 Approche KMeans
      1. 5.1.1 Code
      2. 5.1.2 Analyse
    2. 5.2 Approche LDA
      1. 5.2.1 Code
      2. 5.2.2 Analyse
    3. 5.3 Approche avec Word2Vec
      1. 5.3.1 Code
      2. 5.3.2 Analyse
  6. 6. Conclusion
  7.  
  8. Glossaire du NLP
  9.  
  10.  
  11. Index
Auteur : Benoît PRIEUR

Benoît PRIEUR

Benoît PRIEUR est ingénieur logiciel et enseignant en informatique, diplômé de l'ISIMA de Clermont-Ferrand. Avec une expérience de vingt ans, il est spécialisé dans le développement logiciel, notamment avec les langages Python, C++, Rust et C#. Il est également expert en Machine Learning, en particulier dans le domaine du NLP et auteur de plusieurs ouvrages aux Éditions ENI depuis 2017, couvrant un large éventail de sujets tels que l'informatique quantique, l'industrie 4.0 et le Machine Learning. En tant que formateur et conférencier, il partage régulièrement ses connaissances sur ces technologies émergentes, et contribue à la communauté en écrivant des articles sur la programmation de logiciels.
Benoît Prieur reverse 100 % de ses droits d'auteur du livre Traitement automatique du langage naturel avec Python à l'association AGBU (Union générale arménienne de bienfaisance).


En savoir plus

Découvrir tous ses livres

  • Pygame Initiez-vous au développement de jeux vidéo en Python (2e édition)
  • Rust Développez des programmes robustes et sécurisés
  • PyQt5 Développez vos interfaces graphiques en Python
  • Informatique quantique De la physique quantique à la programmation quantique en Q#

Nos nouveautés

voir plus