après antidote sommaire

This commit is contained in:
François Pelletier 2019-10-22 01:02:06 -04:00
parent 89de4f257f
commit ee956315bd

View file

@ -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)}$