Introduction au Traitement de Langage Naturel PDF

Document Details

SereneArgon3619

Uploaded by SereneArgon3619

Université Virtuelle du Burkina Faso

Rodrique KAFANDO

Tags

Traitement de langage naturel NLP apprentissage automatique intelligence artificielle

Summary

Ce document est un cours d'introduction au Traitement automatique du langage naturel (NLP). Il couvre les bases du NLP, les applications et les différents modèles.

Full Transcript

Introduction au Traitement de Langage Naturel Dr. Rodrique KAFANDO [email protected] 1...

Introduction au Traitement de Langage Naturel Dr. Rodrique KAFANDO [email protected] 1 rodrique kafando, PhD DISCLAIMER Le contenu de ce cours est basé en partie des ressources suivantes : - Applied Text Analysis with Python (O’REILLY) , Benjamin Bengfort, Rebecca Bilbro & Tony Ojeda 2 rodrique kafando, PhD Attentes des étudiants : 1. Participation active : ○ Participer activement aux discussions et aux ateliers pratiques. ○ Poser des questions et échanger des idées avec les pairs et l'instructeur. 2. Acquisition de compétences pratiques : ○ Être capable de prétraiter et de représenter des données textuelles. ○ Appliquer des modèles de classification pour résoudre des tâches spécifiques de NLP. 3. Approche éthique : ○ Adopter une approche éthique dans l'utilisation des technologies NLP. ○ Reconnaître les implications sociales et les défis éthiques liés au NLP. 3 rodrique kafando, PhD Objectifs principaux : - Comprendre les concepts fondamentaux du traitement du langage naturel - Se familiariser avec les techniques de prétraitement du texte - Explorer les modèles de langage et les méthodes d'apprentissage automatique appliquées au NLP - Appliquer des techniques de NLP pour résoudre des problèmes réels 4 rodrique kafando, PhD Le traitement du langage naturel (NLP) est un domaine de l'informatique et de l'intelligence artificielle qui se concentre sur l'interaction entre les ordinateurs et le langage humain (naturel). 5 rodrique kafando, PhD Importance et applications du NLP Importance du NLP Permet aux ordinateurs de comprendre, interpréter et répondre à des textes ou des discours humains de manière précieuse. Applications pratiques dans divers domaines. Applications du NLP Chatbots et assistants virtuels (e.g., Siri, Alexa) Traduction automatique (e.g., Google Translate) Analyse de sentiments (e.g., surveiller les avis clients) Extraction d'information (e.g., recherche d'informations spécifiques dans de grands textes) 6 rodrique kafando, PhD 7 rodrique kafando, PhD Classification des systèmes TAL suivant l'usage Natural Language Understanding (NLU) Comprendre le langage naturel de manière similaire à l'humain. Dans cette logique, le système NLU convertit les entrées en langage naturel (texte ou voix) en un format calculable (ici les vecteurs) pour analyser et extraire du sens. Applications : Essentiel pour le développement de chatbots, d'assistants vocaux et d'autres applications interactives. 8 rodrique kafando, PhD Classification des systèmes TAL suivant l'usage Natural Language Inference (NLI) Consiste à tirer des conclusions logiques à partir d'hypothèses textuelles. Le NLI permet d’analyse une prémisse textuelle donnée pour déterminer si une hypothèse spécifique en découle logiquement. Exemple : a. Prémisse : Chaque étudiant en linguistique au Burkina parle au moins trois langues. b. Inférence : Chaque étudiant en linguistique de l'Université de Ouaga parle plus de deux langues. 9 rodrique kafando, PhD Classification des systèmes TAL suivant l'usage Natural Language Generation (NLG) Création automatique de texte ou de parole à partir d'une représentation de l'information compréhensible par une machine. Ces systèmes intègrent de méthodes simples basées sur des modèles, des approches avancées intégrant la grammaire et l'apprentissage automatique. Ils sont couramment utilisé dans les chatbots, la génération de rapports et d'autres applications de création de contenu. 10 rodrique kafando, PhD Composantes du Langage Phonétique et morphologie Phonétique : Étude des sons de la parole. Morphologie : Étude de la structure des mots. Syntaxe et sémantique Syntaxe : Étude de la structure des phrases. Sémantique : Étude du sens des mots et des phrases. Pragmatique Pragmatique : Étude de l'utilisation du langage en contexte. 11 rodrique kafando, PhD Problèmes Courants en NLP Segmentation Décomposition du texte en unités plus petites (mots, phrases). Étiquetage Attribution de catégories grammaticales (noms, verbes) aux mots. Parsing Analyse de la structure grammaticale des phrases. Désambiguïsation Résolution des ambiguïtés lexicales et sémantiques. 12 rodrique kafando, PhD Pourquoi le prétraitement est-il Important ? Améliore la qualité des données textuelles. Facilite l'analyse et la modélisation. Réduit le bruit et les incohérences. 13 rodrique kafando, PhD Techniques courantes de prétraitement Tokenization Découpage du texte en mots ou en phrases. Normalisation Conversion en minuscules, suppression des ponctuations et des chiffres. Stemming et Lemmatization Stemming : Réduction des mots à leur racine. Lemmatization : Réduction des mots à leur forme de base (lemme). 14 rodrique kafando, PhD Techniques courantes de prétraitement Tokenization import nltk import spacy from nltk.tokenize import word_tokenize nlp = spacy.load("en_core_web_sm") text = "Natural Language Processing is fascinating!" doc = nlp("Natural Language Processing is fascinating!") tokens = word_tokenize(text) tokens = [token.text for token in doc] print(tokens) print(tokens) 15 rodrique kafando, PhD Techniques courantes de prétraitement Stemming et Lemmatization from nltk.stem.snowball import FrenchStemmer import spacy stemmer = FrenchStemmer() nlp = spacy.load("fr_core_news_sm") words = ["courir", "courait", "couru"] doc = nlp("courir courait couru") stemmed_words = [stemmer.stem(word) for word in words] lemmas = [token.lemma_ for token in doc] print(stemmed_words) print(lemmas) 16 rodrique kafando, PhD Techniques courantes de prétraitement Suppression des Stop Words avec NLTK et spaCy from nltk.corpus import stopwords import spacy stop_words = set(stopwords.words('english')) doc = nlp("This is a sample text with stop words.") filtered_text = [word for word in tokens if word.lower() not filtered_text = [token.text for token in doc if not in stop_words] token.is_stop] print(filtered_text) print(filtered_text) 17 rodrique kafando, PhD Représentation des textes 18 rodrique kafando, PhD Représentation des textes Importance de la représentation des textes - Convertir le texte en une forme que les algorithmes peuvent traiter - Applications : recherche d'information, analyse de sentiment, traduction automatique - Permet d'extraire des caractéristiques importantes des textes 19 rodrique kafando, PhD Représentation des textes Bag of Words (BoW) - Modèle simple de représentation des textes - Chaque document est représenté par un vecteur de la fréquence des mots - Les mots sont traités indépendamment (perte du contexte) - Utilisé pour des tâches comme la classification de textes Voc mots uniques : ['aime', 'chat', 'chien', 'lait', 'le'] "Le chat n’aime le lait" "Le chien aime le lait" Phrase 1 : Le chat aime le lait "aime" : 1 "aime" : 1 Phrase 2 : Le chien aime le lait "chat" : 1 "chat" : 0 (absent) "chien" : 0 (absent) "chien" : 1 "lait" : 1 "lait" : 1 "le" : 2 "le" : 2 Vecteur : [1, 1, 0, 1, 2] Vecteur : [1, 0, 1, 1, 2] 20 rodrique kafando, PhD Représentation des textes BoW Limitations : - Ignorance du contexte et de l'ordre des mots - La taille du vecteur augmente avec le nombre de mots uniques dans le corpus 21 rodrique kafando, PhD Représentation des textes TF-IDF (Term Frequency-Inverse Document Frequency) - Pondère la fréquence des mots par leur rareté dans le corpus - TF : fréquence d'un mot dans un document - IDF : importance d'un mot dans le corpus - Réduit l'importance des mots courants (stop words) 22 rodrique kafando, PhD Représentation des textes TF-IDF (Term Frequency-Inverse Document Frequency) TF(t,d) = (Nombre d'occurrences du terme t dans le document d) / (Nombre total de termes dans le document d) IDF(t) = log(N / (1 + Nombre de documents contenant le terme t)) TF-IDF(t,d) = TF(t,d) * IDF(t) 23 rodrique kafando, PhD Représentation des textes Limitations de BoW et TF-IDF - Les représentations sont des vecteurs très grands et clairsemés. - Manque de capture du contexte sémantique des mots - Nécessité de modèles de représentation plus avancés 24 rodrique kafando, PhD Représentation des textes Word Embeddings : Word2Vec - Représentations denses et continues des mots - Modèle basé sur des réseaux de neurones - Deux approches : CBOW (Continuous Bag of Words) et Skip-gram - Capture les relations sémantiques entre les mots Exemple : "king" - "man" + "woman" = "queen" - Les vecteurs Word2Vec peuvent capturer des analogies et des relations sémantiques 25 rodrique kafando, PhD Représentation des textes GloVe (Global Vectors for Word Representation) - Combinaison des avantages de Word2Vec et des statistiques globales - Basé sur la matrice de co-occurrence des mots - Entraîné sur des statistiques globales des mots dans un corpus 26 rodrique kafando, PhD Représentation des textes Introduction aux Transformers - Problèmes avec les modèles traditionnels : incapacité à capturer des dépendances longues - Attention mechanism : permet au modèle de se concentrer sur différentes parties de la phrase - Architecture Transformer : basé uniquement sur des mécanismes d'attention 27 rodrique kafando, PhD Représentation des textes Introduction aux Transformers Exemple de Transformer : BERT - BERT (Bidirectional Encoder Representations from Transformers) - Utilisation bidirectionnelle du contexte - Pré-entraînement sur des tâches de masquage de mots et de prédiction de la phrase suivante - Fine-tuning sur des tâches spécifiques (classification, QA, etc.) 28 rodrique kafando, PhD Représentation des textes Introduction aux Transformers Avantages de BERT - Capture le contexte des mots en tenant compte de leur position dans la phrase. - Pré-entraînement sur des tâches de masquage de mots et de prédiction de la phrase suivante. - Fine-tuning possible pour diverses tâches spécifiques (classification, QA, etc.). 29 rodrique kafando, PhD Représentation des textes Quelques exemples pratique : Objectifs - Appliquer BoW, TF-IDF et Word2Vec pour représenter des textes - Utiliser des bibliothèques Python : Scikit-learn, Gensim - Visualiser les résultats des différentes représentations 30 rodrique kafando, PhD Représentation des textes Implémentation de BoW avec Scikit-learn 31 rodrique kafando, PhD Représentation des textes Implémentation de TF-IDF avec Scikit-learn 32 rodrique kafando, PhD Représentation des textes Utilisation de Word2Vec avec Gensim 33 rodrique kafando, PhD Représentation des textes Vectorisation avec BERT (Introduction) from transformers import BertTokenizer, BertModel # Obtenir les embeddings de BERT import torch with torch.no_grad(): outputs = model(**inputs) # Charger le tokenizer et le modèle BERT tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') # Les embeddings de la dernière couche cachée model = BertModel.from_pretrained('bert-base-uncased') last_hidden_states = outputs.last_hidden_state # Texte d'exemple # Moyenne des embeddings pour obtenir une représentation text = "Le chat aime le lait." unique du texte sentence_embedding = torch.mean(last_hidden_states, dim=1) # Tokenizer le texte print("Représentation vectorielle du texte :") inputs = tokenizer(text, return_tensors='pt') print(sentence_embedding) 34 rodrique kafando, PhD Représentation des textes Vectorisation avec BERT (Introduction) 35 rodrique kafando, PhD Représentation des textes Vérifions la similarité cosinus entre ces deux phrases : Phrase 1 : Le chat aime le lait Phrase 2 : Le chien aime le lait Similarité Cosinus (BoW): 0.857 Similarité Cosinus (TF-IDF): 0.752 Similarité Cosinus (Word2Vec): 0.838 Similarité Cosinus (BERT): 0.961 Nous remarquons que BERT arrive a capte bien mieux la sémantique dans les différentes phrases, offrant plus une valeur de sim élevée. 36 rodrique kafando, PhD Représentation des textes Remarques - BERT fournit des représentations vectorielles riches en contexte pour les textes. - Utilisable pour diverses tâches de NLP : classification de texte, extraction d'entités, analyse de sentiment, etc. - Avantageux pour capturer les nuances contextuelles et sémantiques des mots dans les phrases. 37 rodrique kafando, PhD Représentation des textes Remarques - Comparaison des différentes techniques de représentation des textes - Avantages et inconvénients de chaque méthode - Questions et réponses 38 rodrique kafando, PhD Modèles de Langage et Classification de Textes 39 rodrique kafando, PhD Modèles de Langage et Classification de Textes Importance des Modèles de Langage - Prévoir la probabilité des séquences de mots - Applications pratiques - saisie semi-automatique, traduction automatique, génération de texte - Base pour de nombreuses tâches de NLP 40 rodrique kafando, PhD Modèles de Langage et Classification de Textes Modèles N-gram - Modèles basés sur les fréquences de séquences de N mots - N-gram (unigram, bigram, trigram, etc.) - Simplifie le modèle de langage en supposant que la probabilité d'un mot dépend uniquement des N-1 mots précédents 41 rodrique kafando, PhD Modèles de Langage et Classification de Textes Calcul des Probabilités N-gram P(wi|w{i-1},..., w{i-N+1}) = (Compte(w{i-N+1},..., wi)) / (Compte(w{i-N+1},..., w{i-1})) 42 rodrique kafando, PhD Modèles de Langage et Classification de Textes Maximum Likelihood Estimation (MLE) - Estimation des probabilités basées sur les fréquences observées - MLE pour les N-grams : P(wi|w{i-1},..., w{i-N+1}) = (Compte(w{i-N+1},..., wi)) / (Compte(w{i-N+1},..., w{i-1})) - Limites : sparsité des données 43 rodrique kafando, PhD Modèles de Langage et Classification de Textes Laplace Smoothing - Méthode pour gérer la sparsité - Ajout d'une constante alpha aux comptes de fréquence - Formule : (count + alpha) / (total + alpha * V) 44 rodrique kafando, PhD Modèles de Langage et Classification de Textes Introduction aux Modèles Transformer - Problèmes des modèles traditionnels : incapacité à capturer des dépendances longues - Attention Mechanism : permet au modèle de se concentrer sur différentes parties de la phrase - Architecture Transformer : basé uniquement sur des mécanismes d'attention 45 rodrique kafando, PhD Attention Is All You Need - Summary and results 2017, Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin Animation source: https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html Table source: "Attention Is All You Need" paper rodrique kafando, PhD Modèles de Langage et Classification de Textes Exemple de Transformer : BERT - BERT (Bidirectional Encoder Representations from Transformers) - Utilisation bidirectionnelle du contexte - Pré-entraînement sur des tâches de masquage de mots et de prédiction de la phrase suivante - Fine-tuning sur des tâches spécifiques (classification, QA, etc.) 47 rodrique kafando, PhD Classification de textes Introduction à la Classification de Textes - Tâches de classification courantes : analyse de sentiment, catégorisation de documents, détection de spam - Importance de la classification pour structurer et analyser les grandes quantités de texte 48 rodrique kafando, PhD Classification de textes Algorithmes de Classification - Naïve Bayes : basé sur le théorème de Bayes, efficace pour les grands corpus - Régression Logistique : modèle de classification linéaire, utilisé pour la classification binaire et multiclass - Support Vector Machines (SVM) : trouve l'hyperplan optimal pour séparer les classes, utilise le Kernel Trick pour les problèmes non liné 49 rodrique kafando, PhD Classification des approches NLP 50 rodrique kafando, PhD Approches NLP Approche linguistique Approche statistique Approche neuronale (modèles basés sur les réseaux de neurones) 51 rodrique kafando, PhD Approches NLP Approche linguistique Elle repose sur des symboles pour la modélisation linguistique. Cette approche utilise un modèle descendant (top-down) pour le traitement du texte, en utilisant des règles grammaticales pour dériver le sens associé au texte. Par exemple, on trouvera des règles grammaticales qui déterminent si une phrase est bien formée ou non. 52 rodrique kafando, PhD Approches NLP Approche linguistique - la morphologie Traite des éléments de base du langage ou du vocabulaire des textes tels que les mots. Par exemples : Prefix/suffix Spelling Singular/Plural 53 rodrique kafando, PhD Approches NLP Approche linguistique - la sémantique et syntax - Syntax, pour étudier les relations structurelles entre les mots. - Sémantique, trouver des groupes de mots grammaticalement bien formés et signifiants. 54 rodrique kafando, PhD Approches NLP Approche linguistique - Part-of-speech ou parties de discours (POS) Les parties du discours[13-20] principales Les autres catégories grammaticales Noms (N) : Mots qui désignent des personnes, des Pronoms (Pro) : Mots qui remplacent les noms. lieux, des objets, ou des idées. Exemple : chien, Exemple : il, elle. bonheur. Prépositions (Prép) : Mots qui montrent les Verbes (V) : Mots qui expriment des actions ou des relations entre les noms. Exemple : dans, sur. états. Exemple : courir, être. Conjonctions (Conj) : Mots qui relient des mots ou Adjectifs (Adj) : Mots qui décrivent ou modifient les des groupes de mots. Exemple : et, mais. noms. Exemple : rapide, bleu. Interjections (Interj) : Mots qui expriment des Adverbes (Adv) : Mots qui modifient des verbes, des émotions. Exemple : oh, hélas. adjectifs ou d'autres adverbes. Exemple : rapidement, très. 55 rodrique kafando, PhD Approches NLP Approche linguistique - Part-of-speech ou parties de discours (POS) Exemple : Analyse POS d'une phrase simple : "Le chat rapide attrape toujours la souris paresseuse." Le (Déterminant) chat (Nom) rapide (Adjectif) attrape (Verbe) toujours (Adverbe) la (Déterminant) souris (Nom) paresseuse (Adjectif). text = "Le chat rapide attrape toujours la souris paresseuse." (conf. pos.py) 56 rodrique kafando, PhD Approches NLP Approche linguistique - Importance de la grammaire en TAL La compréhension des parties du discours est cruciale pour le parsing syntaxique, l'analyse sémantique, et d'autres applications de TAL. Les POS aident à structurer et à interpréter correctement le langage naturel, facilitant la communication homme-machine. 57 rodrique kafando, PhD Approches NLP Approche statistique Cette approche est basée sur les statistiques et relève davantage d'une technique ascendante (bottom-up) qui utilise un grand corpus de texte pour associer un modèle au langage utilisé. Cependant, il est possible d'utiliser à la fois les approches linguistique et statistique dans le même projet. 58 rodrique kafando, PhD Approches NLP Approche statistique Nous distinguons plusieurs algorithmes statistiques y compris : - Linear regression - Naive Bayes - Support Vector Machine - Hidden Markov Model 59 rodrique kafando, PhD Approches NLP Approche neuronale (modèles basés sur les réseaux de neurones) - Utilisation des réseaux de neurones pour apprendre des structures cachées à partir de vastes ensembles de données. - Populaire en raison de ses résultats prometteurs et de l'amélioration des capacités de stockage et de calcul des ordinateurs. - Techniques de nettoyage et de transformation des composants du texte non structuré : documents, paragraphes, phrases, mots. 60 rodrique kafando, PhD Introduction à la modélisation de sujets (Topic Modeling) 61 rodrique kafando, PhD Topic Modeling ? La modélisation de sujets est une technique de traitement du langage naturel utilisée pour découvrir les thèmes ou "sujets" latents dans un corpus de documents textuels. Utile pour le regroupement, la recherche de documents et l'exploration de données textuelles. 62 rodrique kafando, PhD Topic Modeling ? Algorithmes de modélisation de sujets les plus couramment utilisés - LDA (Latent Dirichlet Allocation) : Algorithme probabiliste qui génère des distributions de mots pour chaque sujet et des distributions de sujets pour chaque document. - LSA - - NMF (Non-negative Matrix Factorization) : Technique factorisation de matrice utilisée pour identifier les thèmes en décomposant le texte en composants non négatifs. 63 rodrique kafando, PhD Topic Modeling ? Processus de modélisation de sujets avec LDA - Prétraitement des données : Nettoyage et préparation des données textuelles (tokenization, suppression des stopwords, etc.). - Vectorisation : Conversion des documents en une matrice de termes (BoW, TF-IDF ou BERT). - Application de LDA (ou autre algo) : Utilisation de l'algorithme LDA pour identifier les sujets dans les documents. - Interprétation des résultats : Analyse des mots les plus probables pour chaque sujet pour en comprendre le thème. 64 rodrique kafando, PhD Topic Modeling ? Processus de modélisation de sujets avec LDA 65 rodrique kafando, PhD Topic Modeling ? Exemple : Corpus de documents : Un ensemble d'articles de presse. Prétraitement des données : Nettoyage et vectorisation des articles. Application de LDA : Identification de 5 sujets principaux. Résultats : ○ Sujet 1 : Politique (mots clés : gouvernement, élections, parti) ○ Sujet 2 : Économie (mots clés : marché, croissance, taux) ○ Sujet 3 : Technologie (mots clés : innovation, numérique, internet) ○ Sujet 4 : Santé (mots clés : hôpital, médecine, patients) ○ Sujet 5 : Environnement (mots clés : climat, énergie, pollution) 66 rodrique kafando, PhD Topic Modeling ? Interprétation des résultats de la modélisation de sujets - Distribution des sujets : Comprendre la répartition des sujets au sein du corpus. - Mots clés des sujets : Utilisation des mots clés pour définir les thèmes. - Applications : Utilisation dans l'analyse de tendances, la recherche d'informations, et la recommandation de contenu. 67 rodrique kafando, PhD Topic Modeling ? Exemple - LDA (conf lda.py) Input Documents Output topics 68 rodrique kafando, PhD Topic Modeling ? Exemple - LDA - Visualisation (conf ldaViz.py) 69 rodrique kafando, PhD Topic Modeling ? Approches avancées - Utilisation des Transformers Les transformers, comme BERT, peuvent être utilisés pour la modélisation de sujets en extrayant des représentations sémantiques des documents et en les regroupant en sujets. 70 rodrique kafando, PhD Topic Modeling ? Approches avancées - Utilisation des Transformers Les transformers, comme BERT, peuvent être utilisés pour la modélisation de sujets en extrayant des représentations sémantiques des documents et en les regroupant en sujets. Avantages des Transformers pour la modélisation de sujets - Représentations contextuelles : Les transformers capturent le contexte des mots dans une phrase, améliorant ainsi la précision de la modélisation de sujets. - Polyvalence : Applicables à diverses tâches NLP, les transformers permettent une intégration facile dans des pipelines de modélisation de sujets. 71 rodrique kafando, PhD Topic Modeling ? Approches avancées - Utilisation des Transformers Prétraitement des données : Nettoyage et préparation des données textuelles. Vectorisation avec un modèle de transformer : Utilisation de BERT ou d'autres modèles pour obtenir des embeddings des documents. Clustering : Application d'algorithmes de clustering (comme K-means) sur les embeddings pour regrouper les documents en sujets. Interprétation des résultats : Analyse des clusters pour identifier les thèmes principaux. 72 rodrique kafando, PhD Topic Modeling ? Approches avancées - Utilisation des Transformers (conf bert.py) 73 rodrique kafando, PhD Topic Modeling ? Approches avancées - Utilisation des Transformers 74 rodrique kafando, PhD Topic Modeling ? Applications de la modélisation de sujets - Analyse des tendances : Identification des thèmes émergents dans de grandes collections de documents. - Recherche documentaire : Amélioration des systèmes de recherche en se basant sur les sujets. - Exploration de données : Aide à comprendre la structure et les thèmes principaux d'un grand corpus de textes. - Recommandation de contenu : Personnalisation des recommandations en fonction des sujets d'intérêt. - etc. 75 rodrique kafando, PhD Clustering de documents 76 rodrique kafando, PhD Clustering de documents Comment calculer la similarité entre documents ? Toujours fixer un seuil ! Une compréhension sur les bases de données vecteur sera un plus. Pour lecture : https://hal.science/hal-03243745/ document 77 rodrique kafando, PhD Clustering de documents String Matching Distance Metrics Relational Matching Other Matching Choisir la mesure de Edit distance - Euclidean set Based - Numeric distance similarité en fonction du - Levenstein - Manhattan - Dice - Boolean equality besoin - Smith-waterman - Minkowski - Tanimato (jaccard) - Fuzzy Matching - Affine - Common neighbors - Domain specific - Adar Weighted https://hal.science/hal-032 43745/document Alignment Text Analysis Aggregates Gazettes - Jaro-Winkler - Jaccard - average values - Lexical Matching https://www.sciencedirect. - Soft TFIDF - TFIDF - Max/Min values - Named Entities com/science/article/pii/S23 - Monge-Elkan - Cosine-similarity - Medians (NER) 52711023001760 - Frequency (Mode) Phonetic - Soundex - Translation 78 rodrique kafando, PhD Reconnaissance d'Entité Nommée (Named Entity Recognition) 79 rodrique kafando, PhD Named Entity Recognition - La Reconnaissance d'Entités Nommées (NER) est une sous-tâche du Traitement Automatique du Langage (TAL) qui vise à identifier et à classer les entités nommées dans un texte. - Les entités nommées peuvent inclure des noms de personnes, des organisations, des lieux, des dates, des quantités, etc. 80 rodrique kafando, PhD Named Entity Recognition Importance de la NER et cas d’application Facilite l'extraction de données structurées à partir de textes non structurés. - Analyse des tendances : Utile pour analyser des tendances et des relations dans de grandes collections de textes. - Amélioration de la recherche : Améliore la précision des moteurs de recherche en identifiant les entités clés. - Applications diverses : Utilisée dans les chatbots, l'analyse de sentiments, la gestion des connaissances, traitement automatique réclamations, données de call center, etc. 81 rodrique kafando, PhD Named Entity Recognition Importance de la NER et cas d’application - Applications diverses : - Utilisée dans les chatbots, l'analyse de sentiments, la gestion des connaissances, traitement automatique réclamations, données de call center, etc. - Extraction de données : Automatisation de l'extraction de données à partir de documents. - Veille médiatique : Suivi des mentions d'entités dans les médias. - Finance et commerce : Analyse des rapports financiers et des actualités économiques. - Santé : Extraction d'informations médicales à partir de publications scientifiques. 82 rodrique kafando, PhD Named Entity Recognition Types d'entités nommées - Personnes (PER) : Noms de personnes. Exemple : Marie Curie - Organisations (ORG) : Noms d'entreprises, d'institutions, etc. Exemple : OpenAI - Lieux (LOC) : Noms de lieux géographiques. Exemple : Paris - Dates (DATE) : Dates et expressions temporelles. Exemple : 27 mai 2024 - Quantités (QUANTITY) : Quantités, pourcentages, etc. Exemple : 100 kg - Autres catégories : Peut inclure des produits, des événements, des œuvres d'art, etc. NB : En plus des NER standard qu’offrent les différents modèles, vous avez la possibilite de definir des NER customisés. Ces cas sont souvent spécifique à un domaine donné. 83 rodrique kafando, PhD Named Entity Recognition Types d'entités nommées 84 rodrique kafando, PhD Named Entity Recognition Approches de la NER Basées sur des règles : Utilisent des règles linguistiques définies manuellement pour identifier les entités. Basées sur l'apprentissage automatique : Utilisent des modèles supervisés entraînés sur des corpus annotés. Exemples : CRF (Conditional Random Fields), HMM (Hidden Markov Models). Basées sur l'apprentissage profond : Utilisent des réseaux de neurones profonds pour capturer les dépendances complexes. Exemples : LSTM, BERT. 85 rodrique kafando, PhD Named Entity Recognition Défis de la NER - Ambiguïté : Un même mot peut désigner plusieurs entités (ex. : "Apple" peut être une entreprise ou un fruit). - Variabilité des noms : Différentes orthographes, abréviations, et variantes de noms. - Multilinguisme : Nécessité de traiter des textes dans plusieurs langues avec des règles et des modèles adaptés. 86 rodrique kafando, PhD Named Entity Recognition Comment customiser un modèle de NER pour une tâche spécifique ? Construire vos propre patterns Ex. d’app : https://rdius-herelles-ner-app-smoynm.streamlit.app/ Fichier test: https://drive.google.com/file/d/1ktym3p7LTiBdbaDlhcoipRT2DjQgIaTT/view?usp=drivesdk 87 rodrique kafando, PhD Regular Expression (Regex) 88 rodrique kafando, PhD Regular Expression (Regex) Introduction aux Expressions Régulières - Les expressions régulières sont des séquences de caractères qui forment un modèle de recherche. - Utilisées pour la correspondance de motifs, la validation de données, et la manipulation de texte. 89 rodrique kafando, PhD Regular Expression (Regex) Syntaxe de Base des Regex - Caractères littéraux : Correspondance directe des caractères. Exemple : "chat" correspond exactement à "chat". - Points : Correspond à n'importe quel caractère unique. Exemple : "c.t" correspond à "cat", "cut", etc. - Crochets : Définissent un ensemble de caractères. Exemple : "[abc]" correspond à "a", "b", ou "c". 90 rodrique kafando, PhD Regular Expression (Regex) Quantificateurs - Astérisque (*) : Correspond à zéro ou plusieurs occurrences du caractère précédent. Exemple : "a*" correspond à "", "a", "aa", etc. - Plus (+) : Correspond à une ou plusieurs occurrences du caractère précédent. Exemple : "a+" correspond à "a", "aa", etc. - Point d'interrogation (?) : Correspond à zéro ou une occurrence du caractère précédent. Exemple : "a?" correspond à "", "a" - Accolades ({n,m}) : Correspond à au moins n et au plus m occurrences du caractère précédent. Exemple : "a{2,3}" correspond à "aa" ou "aaa" 91 rodrique kafando, PhD Regular Expression (Regex) Groupes et alternances - Parenthèses () : Définissent des groupes. - Exemple : "(abc)" correspond à "abc" - Barre verticale (|) : Correspond à l'alternance (OU logique). - Exemple : "a|b" correspond à "a" ou "b" 92 rodrique kafando, PhD Regular Expression (Regex) Ancres et classes de caractères - Ancres : ○ ^ : Correspond au début de la chaîne. Exemple : "^a" correspond à "a" au début ○ $ : Correspond à la fin de la chaîne. Exemple : "a$" correspond à "a" à la fin - Classes de Caractères : ○ \d : Correspond à un chiffre (0-9). ○ \w : Correspond à un caractère alphanumérique (a-z, A-Z, 0-9, _). ○ \s : Correspond à un caractère d'espace (espace, tabulation, etc.). 93 rodrique kafando, PhD Regular Expression (Regex) Exemples - Validation d'un Email : - ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ - Extraction de numéros de téléphone : - \b\d{3}[-.]?\d{3}[-.]?\d{4}\b 94 rodrique kafando, PhD Regular Expression (Regex) Exemples 95 rodrique kafando, PhD Regular Expression (Regex) Extraction de mots spécifique dans du texte Présentation d'un exemple pratique pour extraire les verbes "enseigner" et "programmer" sous toutes leurs formes de conjugaison, y compris lorsqu'ils sont utilisés comme adjectifs. 96 rodrique kafando, PhD Regular Expression (Regex) Extraction de mots spécifique dans du texte Les défis de l'extraction de verbes - Les verbes peuvent apparaître sous différentes formes : infinitif, conjugué, participe passé, adjectif verbal. - Importance de gérer les variations morphologiques pour une extraction précise. 97 rodrique kafando, PhD Regular Expression (Regex) Extraction de mots spécifique dans du texte Construction des Expressions Régulières - Les expressions régulières doivent couvrir différentes formes verbales. - Utilisation des racines verbales et des suffixes communs pour créer des motifs. Motifs pour "enseigner" et "programmer" très long - Enseigner : enseigne(r|s|nt|z|ais|ait|ions|iez|aient|ant|é|ée|és|ées) - Programmer : programme(r|s|nt|z|ais|ait|ions|iez|aient|ant|é|ée|és|ées) 98 rodrique kafando, PhD Regular Expression (Regex) Extraction de mots spécifique dans du texte Utilisation des Lemmatisations pour les Motifs - L'utilisation des lemmes permet de capturer toutes les formes d'un mot (comme les différentes conjugaisons d'un verbe). - spaCy permet de créer des motifs basés sur les lemmes pour une reconnaissance plus flexible des entités. Création de Motifs avec spaCy - Utilisation de Matcher ou EntityRuler de spaCy pour ajouter des motifs basés sur les lemmes des mots cibles. - Avantages : Plus robuste et moins dépendant des variations morphologiques. 99 rodrique kafando, PhD Regular Expression (Regex) Extraction de mots spécifique dans du texte voir ner.py 100 rodrique kafando, PhD Regular Expression (Regex) Extraction de mots spécifique dans du texte Avantages de l'Approche Basée sur les Lemmatisations - Robustesse : Capture toutes les formes des mots cibles, indépendamment de leur conjugaison ou de leur utilisation grammaticale. - Simplicité : Simplifie la création de motifs en se concentrant sur les formes de base (lemmes). - Flexibilité : Facile à étendre en ajoutant plus de lemmes ou en modifiant les lemmes existants. 101 rodrique kafando, PhD Regular Expression (Regex) Extraction de mots spécifique dans du texte Exercice - Ajoutez des motifs pour extraire les formes de "manger" et "écrire" dans un texte. 102 rodrique kafando, PhD Final Project - Domain specific web scraping - Domain specific named entities recognition (regex, custom spaCy model) - Topic modeling - Sentiment analysis - ChatBot - Streamlit web app 103 rodrique kafando, PhD

Use Quizgecko on...
Browser
Browser