From ee956315bddfab42d280758f5ce2c9b4532718b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Pelletier?= Date: Tue, 22 Oct 2019 01:02:06 -0400 Subject: [PATCH] =?UTF-8?q?apr=C3=A8s=20antidote=20sommaire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examen_partiel.md | 98 +++++++++++++++++++++++------------------------ 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/examen_partiel.md b/examen_partiel.md index 1db61c5..32a2e76 100644 --- a/examen_partiel.md +++ b/examen_partiel.md @@ -19,7 +19,7 @@ fontsize: 12pt ## Types de recherches -- Litéral +- Littéral - Classe de caractères - Alphanumériques: `/\w/` - Numériques: `/\d/` @@ -38,7 +38,7 @@ fontsize: 12pt - Zéro ou plusieurs espaces (en début de ligne): `/^\s*/` - Un ou plusieurs caractères (un mot): `/\w+/` - Groupes de capture - - Multiple, optionnel ou non-quantifié: `/(groupe 1)+(groupe 2)?(groupe 3)*/` + - Multiple, optionnel ou non quantifié: `/(groupe 1)+(groupe 2)?(groupe 3)*/` - Conditions - `/(?(?=si_expression)alors|sinon)/` @@ -60,7 +60,7 @@ Module **re** |compile|générer une version compilée de l'expression régulière| |match|rechercher depuis le début d'une chaîne de caractères| |search|rechercher dans une chaîne de caractères| -|sub|remplacer la première occurence d'un patron| +|sub|remplacer la première occurrence d'un patron| ## Automates à états finis @@ -100,7 +100,7 @@ Processus qui: - Démarre dans l'état initial - Examine le symbole en entrée - Consulte la table -- Sélectionne le nouvel état et met à jour le ruban +- Sélectionne le nouvel état et mets à jour le ruban - Continue jusqu'à ce qu'on atteigne le bout du ruban Algorithme déterministe: D-Recognise @@ -114,31 +114,31 @@ Vérification d'expressions régulières: - Traduire l'expression en table de transition - Passer la table et la chaîne à un interpréteur -### Reconnaissance non-déterministe +### Reconnaissance non déterministe Deux approches de base: -- Convertir un automate non-déterministe en automate déterministe. +- Convertir un automate non déterministe en automate déterministe. - Transition $\epsilon$ qui n'avance pas le ruban. - Gérer les différentes options comme une exploration dans un espace d'états - Il existe au moins un chemin complet pour une chaîne définie par le langage de l'automate. - Les chemins ne mènent pas tous à un état final. - Aucun chemin ne mène à un état final si la chaîne ne fait pas partie du langage - Les états de l'espace sont des paires (position du ruban, état de l'automate) -- On garde une trace des états non-explorés. Exploration en profondeur. +- On garde une trace des états non explorés. Exploration en profondeur. - Pour éviter le catastrophic backtracking, il fait éviter d'avoir deux match possibles pour le même caractère dans un groupe. ## Conclusion -Toute expression régulière peut être compilée automatiquement en un automate non-déterministe, que l'on peut convertir en automate déterministe. +Toute expression régulière peut être compilée automatiquement en un automate non déterministe, que l'on peut convertir en automate déterministe. # Prétraitement des textes ## Définitions -- **Jetons**: Nombre d'occurences de mots ($N$) +- **Jetons**: Nombre d'occurrences de mots ($N$) - **Types**: Nombre de mots distincts dans le vocabulaire ($|V|$) -- **Mot**: Plus petit élément pouvant être prononcé ou écrit en isolation avec un contenu sémantique. On peut accepter les signes de ponctuation dans certaines tâches +- **Mot**: Plus petit élément pouvant être prononcé ou écrit en isolation avec un contenu sémantique. On peut accepter les signes de ponctuation dans certaines tâches. Loi de Heaps: $|V| = kN^{\beta}, 0.67 < \beta < 0.75$ @@ -194,8 +194,8 @@ Techniques, en ordre décroissant de complexité: - Étude de la composition des mots en morphèmes - **Morphèmes** : Plus petite unité lexicale ayant un sens spécifique - - **Racines** : Morphèmes lexicaux, (*stems*) - - Central; Donne le sens au mot + - **Racines** : Morphèmes lexicaux (*stems*) + - Central; donne le sens au mot. - Radical ou lexème - **Affixes** : Morphèmes grammaticaux - Préfixe (**pré**historique), suffixes (préhistor**ique**) et infixe (t**a**ke, t**oo**k) @@ -222,7 +222,7 @@ Approches Consiste à trouver la racine du mot par troncature et des règles de réécriture. - Aucun lexique -- Dépend de la langue +- Dépends de la langue - Anglais: Lovins, Porter, Snowball - Français: Snowball - Peut faire des erreurs @@ -236,7 +236,7 @@ Découpage d'un texte en phrases |Signe|Précision|Exemple| |---|---|---| |! et ?|Assez fiable, sauf dans les dialogues|"Pourquoi aussi êtes-vous si insatiable?" répondit le renard.| -|.|Quelques ambiguités, abbrébiations et nombres|Monsieur Brossard, ing., Ph.D., est arrivé.| +|.|Quelques ambigüités, abréviations et nombres|Monsieur Brossard, ing., Ph.D., est arrivé.| |...|Interruption ou hésitation|Mais... c'est mon ami !| - Approximation à l'aide de règles @@ -246,7 +246,7 @@ Découpage d'un texte en phrases - Précédé et suivi de caractères sans espaces - Suivi de plusieurs espaces - Précédé ou suivi de signes de ponctuation - - Suivi de guillements + - Suivi de guillemets - ... - Une décision pour chaque signe de ponctuation selon le contexte - Meilleure performance: Apprentissage automatique, classification binaire @@ -316,7 +316,7 @@ La prédiction du mot suivant est utilisée dans plusieurs domaines - Correction d'orthographe - Traduction automatique -Classification de textes, désambiguation +Classification de textes, désambiguïsation ## Modèles @@ -327,7 +327,7 @@ Approches: Décompte des mots: -- On utilise seulement les formes de mots (les mots tel quels) +- On utilise seulement les formes de mots (les mots tels quels) Calcul: @@ -495,7 +495,7 @@ $$ - Enjeux - Approche trop drastique - On peut utiliser une valeur $\delta \in [0,1]$, mais ce choix est difficile - - Pas utilisé en pratique pour les N-grammes, il y a de meilleures méthodes. + - pas utilisé en pratique pour les N-grammes, il y a de meilleures méthodes. - Utilisé pour lisser d'autres types de modèles probabilistes. - Classification de textes - Études pilotes @@ -540,7 +540,7 @@ $$ Pourquoi classifier des textes: -- Filtrage du spam +- Filtrage du pourriel - Services d'information - Déterminer le genre de l'auteur - Analyse de sentiments @@ -560,7 +560,7 @@ Pourquoi classifier des textes: - Règles construites à la main - Combinaison de mots - - Performances potentiellement élevées, mais difficile à construire et à maintenir + - Performances potentiellement élevées, mais difficiles à construire et à maintenir - Apprentissage supervisé - Construire automatiquement un classificateur à partir de données d'entraînement. - $f: \text{doc} \rightarrow c$ @@ -660,8 +660,8 @@ Enjeux: ### Analyse de sentiments -- On remplace les fréquences des mots par document par leur occurence - - **Occurence**: Nombre de documents contenant le mot au moins une fois +- On remplace les fréquences des mots par document par leur occurrence + - **Occurrence**: Nombre de documents contenant le mot au moins une fois - Négation: inversion de la polarité des mots - Astuce: convertir en une représentation distincte (NOT_x) - Il y a d'autres approches plus précises avec une analyse syntaxique @@ -712,7 +712,7 @@ Meilleure estimation de la qualité du classificateur. - Prendre aléatoirement $k-1$ sous-ensembles pour l'entraînement et celui qui reste pour le test de performance. - Répéter $k$ fois et faire la moyenne des différentes métriques -Évaluation multi-classes: +Évaluation multiclasses: - Tables de contingence 2x2 - Micro-averaging @@ -724,7 +724,7 @@ Meilleure estimation de la qualité du classificateur. - Les collections de documents ont un grand nombre d'attributs. Les approches ne peuvent pas toutes les traiter. - Réduire le temps d'entraînement et rendre les classificateurs petits et efficaces. -- Généraliser les données. Éliminer le bruit, la redondance +- Généraliser les données. Éliminer le bruit, la redondance. - Éviter le surentraînement Approche: @@ -895,7 +895,7 @@ Usages: ## POS Tags -- Plusieurs ensemble d'étiquettes disponibles +- Plusieurs ensembles d'étiquettes disponibles - Haut niveau (N, V, ADJ, ADV, DET, PRE, PRO) - Plus détaillé (Penn Treebank: 45 étiquettes) @@ -950,7 +950,7 @@ Problème: Les mots ont souvent plus d'une étiquette, il faut alors déterminer **HMM**: Hidden Markov Models - Approche probabiliste -- Cas spécial d'intérence bayésienne +- Cas spécial d'inférence bayésienne - Modèle génératif: - On détermine la structure de la phrase - On choisit le mot associé à chaque étiquette @@ -1032,7 +1032,7 @@ Tableau: - Lignes: État possible - Colonnes: Mots - Treillis reliant les états possibles -- On multiplie les probabilité sur chacun des chemins et on conserve celui avec la probabilité la plus élevée aux noeuds qui recoupent deux chemins. +- On multiplie les probabilités sur chacun des chemins et on conserve celui avec la probabilité la plus élevée aux noeuds qui recoupent deux chemins. - $v_t(j)=\max_{i=1}^N v_{t-1}(i)a_{ij}b_j(o_t)$ ### Extension @@ -1089,7 +1089,7 @@ $$ - La résolution peut être bidirectionnelle. - La performance se mesure par l'exactitude. - - Les meilleurs algorithme obtiennent 97% en anglais. + - Les meilleurs algorithmes obtiennent 97% en anglais. # Analyse syntaxique @@ -1126,19 +1126,19 @@ Ils ont une structure interne souvent similaire Comportement externe: -- Par rapport aus autres unités +- Par rapport aux autres unités - On peut changer leur position dans la phrase - Il est difficile de déplacer les mots individuellement ## Grammaire -Formalisation: grammaire hors-contexte +Formalisation: grammaire hors contexte - Règles - - Un non-terminal à gauche et un certain nombre de terminaux et non-terminaux à droite + - Un non terminal à gauche et un certain nombre de terminaux et non-terminaux à droite - Symboles terminaux - Mots des phrases -- Symboles non-terminaux +- Symboles non terminaux - Groupes de mots Types de phrases @@ -1158,7 +1158,7 @@ Types de phrases L'analyseur: - Accepte ou rejette une phrase selon le respect de la grammaire d'une langue. -- Assigne une structure appropriés à une phrase (parsing): +- Assigne une structure appropriée à une phrase (parsing): - Arbre - Représentation compacte - Il peut produire plus d'un arbre @@ -1167,38 +1167,38 @@ L'analyseur: **Treebanks**: corpus de phrases associées à un arbre syntaxique. - Analyseur automatique et correction par l'humain. -- Sert à définir une grammaire à partir des dérivations. +- Sers à définir une grammaire à partir des dérivations. - Grammaire partielle, bonne couverture avec un large corpus Approches: - Descendant - Explore les arbres qui peuvent être des solutions - - Suggère des arbres non-consistants par rapport aux mots + - Suggère des arbres non consistants par rapport aux mots - Ascendant - Suggère seulement des arbres compatibles - Les arbres peuvent ne faire aucun sens globalement Enjeux du backtracking: -- Ambiguité (problème de rattachement, groupes de mots qui ne font pas de sens au niveau sémantique) +- Ambiguïté (problème de rattachement, groupes de mots qui ne font pas de sens au niveau sémantique) - Répétition de sous-arbres à différents endroits Solution: dynamic programming - Éviter de refaire du travail inutilement - Résoudre des problèmes exponentiels en temps polynomial -- Emmaganiser les sous-structures ambigues avec leurs sous-parties communes +- Emmaganiser les sous-structures ambiguës avec leurs sous-parties communes - CKY, Earley, Chart Parser ## CKY - La grammaire doit être composée de règles binaires - Si A, alors B et C existe et il y a un endroit pour les séparer -- Réécrire les règles non-binaires sous la forme normale de Chomsky: - - Deux symboles non-terminaux ou un symbole terminal - - Remplacer les symboles non-terminaux uniques par toutes les formes qu'il peut prendre - - Remplacer les symboles non-terminaux au nombre de 3 ou plus par de nouvelles règles et de nouveaux symboles pour faire le découpage: +- Réécrire les règles non binaires sous la forme normale de Chomsky: + - Deux symboles non terminaux ou un symbole terminal + - Remplacer les symboles non terminaux uniques par toutes les formes qu'il peut prendre + - Remplacer les symboles non terminaux au nombre de 3 ou plus par de nouvelles règles et de nouveaux symboles pour faire le découpage: - S -> A B C - S -> X C; X -> A B @@ -1206,7 +1206,7 @@ Solution: dynamic programming 1. Construire le tableau. Les mots forment les colonnes. 2. Identifier les POS sur la diagonale selon le lexique -3. Traverser le tableau et identifier les groupes applicables à partir des règles de la grammaire sans contexte. Il peut y avoir plusieurs combinaison à regarder pour chaque case. +3. Traverser le tableau et identifier les groupes applicables à partir des règles de la grammaire sans contexte. Il peut y avoir plusieurs combinaisons à regarder pour chaque case. Les boucles sont imbriquées pour remplir le tableau: @@ -1223,7 +1223,7 @@ Les boucles sont imbriquées pour remplir le tableau: - Pas d'analyse morphologique - En pratique, on devrait considérer ces éléments -### Approche Probabiliste +### Approche probabiliste - On ajoute des probabilités à toutes les règles de la grammaire. - On reprend l'algorithme CKY, mais en multipliant les probabilités des règles précédentes et de la règle courante. @@ -1299,7 +1299,7 @@ C'est un problème d'étiquetage **Recherche d'information**: - Matériel (documents) -- Non-structuré +- Non structuré - Besoin d'information - Grandes collections @@ -1307,7 +1307,7 @@ C'est un problème d'étiquetage - Plusieurs modèles: - Booléen - - Vectorial + - Vectoriel - Probabiliste - Latent semantic indexing @@ -1438,7 +1438,7 @@ $$ # Sémantique lexicale - Raisonnement: idées similaires avec des mots différents (thesaurus) -- Utilisation: détection de plagiat, système question-réponses, résumé de textes +- Utilisation: détection de plagiat, système question-réponse, résumé de textes - Approches possibles: - Taxonomie et thesaurus - Approche distributionnelle @@ -1455,7 +1455,7 @@ Les mots et leurs sens peuvent être reliés par différentes relations: - Homographes - Les deux - Problèmes en NLP: - - Synthèse vocale (même orthographe mais phonologie différente) + - Synthèse vocale (même orthographe, mais phonologie différente) - Recherche d'information (même mot, sens différents) - Traduction automatique - Reconnaissance vocale (même phonologie, orthographe différente) @@ -1481,7 +1481,7 @@ Il y a 4 types de synsets: - Adjectif - Adverbe -Ils forment un graphe sémantique. Ils forment aussi une hiérarchie de concepts +Ils forment un graphe sémantique. Ils forment aussi une hiérarchie de concepts. ### SentiWordNet @@ -1490,7 +1490,7 @@ Ils forment un graphe sémantique. Ils forment aussi une hiérarchie de concepts ## Mesure de la similarité - Synonymie (simple) -- En pratique, on utilise la hierarchie de concepts (noms et verbes). +- En pratique, on utilise la hiérarchie de concepts (noms et verbes). - On calcule la proximité par les chemins - $pathlen(c_1,c_2)$: 1+ nombre de liens - $sim_path(c_1,c_2) = \frac{1}{pathlen(c_1,c_2)}$