Cet ouvrage sur le traitement automatique du langage naturel (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’intelligence 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...
Cet ouvrage sur le traitement automatique du langage naturel (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’intelligence 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ésentés avec clarté et précision. Le livre couvre ensuite une gamme étendue de domaines d’application en NLP : la traduction automatique et la génération de texte, l’extraction de caractéristiques, la classification de documents, la reconnaissance de la parole ou encore l’analyse de sentiments.
L’approche très pratique du livre vous permet d’utiliser systématiquement 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 reconnaissance vocale, analyser des sentiments sur les réseaux sociaux ou simplement approfondir vos connaissances en NLP, ce livre constitue une ressource utile, voire indispensable.
d. BERT (Bidirectional Encoder Representations from Transformers)
3. Exemple avec Word2Vec et NLTK
4. Exemple avec BERT et spaCy
Conclusion
Génération de texte
Introduction à la génération de texte
Les modèles de chaînes de Markov
1. Définition
2. Fonctionnement dans le cadre de la générationde texte
a. Modélisation des transitions
b. Calcul des probabilités
c. Génération de texte
3. Génération de texte avec des chaînesde Markov et NLTK
4. Génération de texte avec des chaînesde Markov et spaCy
Les modèles de langage neuronaux
1. Explication théorique
2. Exemple pratique
3. Utilisation de GPT-3 via l’API d’OpenAI
a. Introduction
b. Exemple pratique
Reconnaissance de la parole
Introduction et définition
1. La bibliothèque SpeechRecognition
Reconnaissance de la parole avec Python/NLTK
1. Contexte et outils nécessaires à l’exemple
2. Exemple en Python et NLTK
a. Explication du code
b. Fichier audio en anglais et plus long (1’35)
Reconnaissance de la parole avec Python/spaCy
1. Introduction
2. Le code adapté à spaCy
Traduction du texte et de la parole
Traduction de texte en NLP
1. Définition et mise en perspective
2. Processus théorique de la traduction de texte
Exemple pratique : traduction de l'anglais vers le français
1. Introduction
2. Le choix technologique
3. Implémentation avec Hugging Face/MarianMT
Traduction du français vers l'allemand et réciproquement
Reconnaissance de la langue utilisée
1. Introduction
2. Stratégie en NLP
3. Exemple simple à l’aide de NLTK
4. Exemple élaboré avec LangDetectet spaCy
Correction orthographique/syntaxique et pipelines
Introduction
1. Correction orthographique et syntaxique
2. Pipelines avec spaCy
Première approche de la correction orthographique
1. SpellChecker
2. Exemple avec SpellChecker/NLTK
Notion de pipeline dans spaCy
1. Présentation
2. Composantes du pipeline
a. Comment connaître le contenu par défautdu pipeline ?
b. Clés principales utilisables dans le pipeline
c. Exemple d’utilisation
d. Considération sur l’industrialisation destraitements
Correction orthographique et syntaxique avec spaCy
1. Contextual Spell Check
2. Utilisation avec pipeline
3. Utilisation de façon classique (sans pipeline)
Quelques éléments théoriques
1. Distance de Levenshtein
2. Distance de Damerau-Levenshtein
3. N-grammes et modèles de Markov
Exploration de données et analyse de sentiments
Introduction
Exploration approfondie du jeu de données
1. Lecture et découverte du dataset
2. Répartition des « sentiments »
3. Nettoyage du jeu de données
4. Nuage de mots
5. Analyse de la longueur des tweets
Analyse de sentiments
1. Entraînement du modèle
a. Imports de bibliothèques
b. TF-IDF
c. Division en données de test et d’entraînement
d. Entraînement du modèle
e. Prédiction sur l’ensemble de tests
f. Indicateurs relatifs à l’évaluationdu modèle
2. Évaluation de la qualité du modèleentraîné
3. Utilisation du modèle de prédiction
a. Nettoyage des trois tweets
b. Vectorisation des trois tweets
c. Prédiction pour chacun des trois tweets
Ensemble du code du chapitre
Lettres de Fusillés 1940-1944 sur Le Maitron en ligne
Introduction
Problématique identifiée
Obtention d'un jeu de données
1. Contexte
2. Web scraping
3. Parsing de chaque lettre de Fusillé
4. Corrections manuelles
5. Nettoyage du jeu de données
Rapide exploration du jeu de données
Apprentissage du modèle, différentes approches
1. Approche KMeans
a. Code
b. Analyse
2. Approche LDA
a. Code
b. Analyse
3. Approche avec Word2Vec
a. Code
b. Analyse
Conclusion
Glossaire du NLP
Introduction
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.