extraction d'information et systemes QA

This commit is contained in:
François Pelletier 2019-12-07 11:02:41 -05:00
parent 93569706a8
commit daa04653b4
6 changed files with 317 additions and 3 deletions

View file

@ -14,6 +14,17 @@ fontsize: 12pt
Objectif: obtenir de l'information utile et la structurer.
Usages:
- Compréhension de textes
- Systèmes questions-réponses
- Traductions automatiques
Approches:
- À base de règles
- Par apprentissage
## Types d'information:
- Quasi structurée: texte préformaté, par exemple un bulletin météo
@ -55,19 +66,320 @@ Enjeux: ambiguité du type des entités. Peuvent appartenir à plusieurs catégo
#### Apprentissage automatique:
- Étiquetage
- Nécessite des exemples
Encodage IOB mot par mot:
- **B**eginning (premier jeton de l'entité)
- **I**nside (autres jetons de l'entité)
- **O**utside (ne fait pas partie d'une entité nommée)
Chaque étiquette a une position et un type, pour un total de $2n+1$ étiquettes possibles.
Étiquetage séquentiel:
- MEMM/CRF (généralisation de Viterbi)
- bi-LSTM (réseau de neurones récurrent et bidirectionnel)
- HMM (Modèle de Markov caché)
- SVM (Modèle discriminant)
Extraction des attributs des mots:
- identité, plongement, POS du mot et des voisins
- Étiquette syntaxique du mot, du groupe de mot et des mots voisins
- Mot présent dans un index géographique
- Contient un préfixe ou un suffixe
- Tout en majuscules
- Forme du mot et des voisins
- Forme du mot court et des voisins
- Présente de trait ou de tiret
Portée d'un classificateur MEMM:
![Diagramme MEMM pour NER](memm-ner.png)
#### Base de règles
Caractéristiques:
- Largement utilisé en pratique
- Fort niveau de précision
Composantes:
- Listes d'entités
- Patrons ou expressions régulière pour reconnaitre des entités potentielles
- Patrons pour reconnaitre les environnements où des entités peuvent se trouver
Approche hybride:
1. Identifier les attributs:
- Règles pour repérer les entités non-ambigues
- Comparer des sous-chaines avec des entités connues
- Listes de noms d'entités spécifiques
2. Classificateur de séquence
## Détection et classification de relations
## Détection et classification d'évènements
Objectif: capturer les relations sémantiques du domaine d'application, populer une base de données
Formes des relations:
ENTITÉ - RELATION - ENTITÉ
Types de relations:
- PERSON-SOCIAL
- Family
- Business
- Lasting personal
- PHYSICAL
- Near
- Located
- GENERAL AFFILIATION
- Citizen
- Resident
- Ethnicity
- Religion
- Org-Location-Origin
- PART-WHOLE
- Subsidiary
- Geographical
- ORG AFFILIATION
- Founder
- Ownership
- Membership
- Sports affiliation
- Employment
- Student-Alumni
- Investor
- ARTIFACT
- User
- Owner
- Inventor
- Manufacturer
### Exemple
| Domain | D = {a, b, c, d, e, f , g, h, i} |
|----------------------------------------------------------|--------------------------------------------|
| United, UAL, American Airlines, AMR | a, b, c, d |
| Tim Wagner | e |
| Chicago, Dallas, Denver, and San Francisco | f , g, h, i |
| Classes | |
|----------------------------------------------------------|--------------------------------------------|
| United, UAL, American, and AMR are organizations | Org = {a, b, c, d} |
| Tim Wagner is a person | Pers = {e} |
| Chicago, Dallas, Denver, and San Francisco are places | Loc = { f , g, h, i} |
| Relations | |
|----------------------------------------------------------|--------------------------------------------|
| United is a unit of UAL | PartOf = {ha, bi, hc, di} |
| American is a unit of AMR | |
| Tim Wagner works for American Airlines | OrgAff = {hc, ei} |
| United serves Chicago, Dallas, Denver, and San Francisco | Serves = {ha, f i, ha, gi, ha, hi, ha, ii} |
### Ressources
- Wikipedia
- Infobox
- DBPedia
- Représentation structurée de données provenant de Wikipedia
- Freebase
- Personnes, lieux et objets
- Wordnet
- Différentes relations sémantiques
### Approches possibles
- Règles écrites à la main
- Forte précision
- Faible rappel
- Utiles pour un domaine spécifique, demande du temps pour la création des règles
- Apprentissage supervisé
- Corpus d'entraînement étiqueté avec des entités et des relations
- Classificateur pour chaque paire d'entités:
- Vérifier si reliées (modèle 1, exemples positifs et négatifs),
- Puis classifier la relation (modèle 2)
- Régression logistique, Naïve Bayes, SVM
- Attributs:
- Prémisse (headword)
- Mots précédant M1
- Mots suivant M2
- Mots entre M1 et M2
- Type d'entité de M1
- Type d'entité de M2
- Concaténation des types
- Analyse syntaxique des constituants
- Analyse par morceaux (chunk) des constituants
- Analyse des dépendances syntaxiques
- Apprentissage semi-supervisé
- Classifier une relation sans corpus étiqueté
- Bootstrapping (répéter plusieurs fois):
- Quelques exemples
- Extraire les paires d'entités de ces exemples
- On les recherche dams un corpus ou sur le web
- On apprend des patrons qui généralisent le contexte
- On recherche ces patrons et on conserve ceux qui donnent plusieurs résultats
- Semantic drift
- Exemples erronés
- Niveau de confiance:
$$
Conf(p) = \frac{hits_p}{finds_p} log(finds_p)
$$
- Niveau de confiance d'un exemple:
$$
Conf(t) = 1-\prod_{p \in P}(1-Conf(p))
$$
- Supervision distante
- Utiliser une ressource avec un grand nombre d'exemples de qualité (DBPedia, Freebase, WordNet)
- Trouver des phrases avec les entités de cette ressource
- Extraire des exemples d'entraînement
- Classificateur supervisé (avec les mêmes types d'attributs que l'approche supervisée)
- Exemples négatifs: paires d'entités tirés au hasard qui n'apparaissent pas dans les relations
- Avantages: mêmes que ceux des approches précédentes
- Désavantage: Peu de relations pour de nouveaux domaines
- Apprentissage non supervisé
- Patrons syntaxiques pour les relations:
```
V | VP | VW*P
V = verb particle? adv?
W = (noun|adj|adv|pron|det)
P = (prep|particle|inf. marker)
```
- Segmenter les textes en phrases
- Pour chaque phrase:
- Faire un POS tagging et une analyse syntaxique
- Trouver la plus longue séquence qui satisfait un patron à partir d'un verbe
- Trouver les groupes nominaux à gauche et à droite
- Déterminer un niveau de confiance en fonction de la fréquence des relations
- Avantage: pas besoin de connaître les relations
- Désavantage: On doit les convertir en relations sémantiques pour les stocker. Les relations sont basées sur des verbes, on va manquer les autres types de relations.
## Autres extractions
### Extraction d'expressions temporelles
- Similaire à l'extraction d'entitées nommées
- Doivent être normalisées. Peuvent être absolues, relatives ou sous la forme de durées.
### Détection et classification d'évènements
- Repérage des verbes d'actions, d'état ou de communication
- Classificateurs de séquences
- Tri chronologique des évènements, en utilisant aussi l'extraction d'expressions temporelles
# Systèmes questions-réponses
Types de questions:
- Factuelles (Qui, où) ?
- Complexes (Que pense, Comment) ?
![Système QA factuel](systeme-qa-factuel.png)
## Approche avec un corpus de texte
- Réponses dans des documents
- Recherche d'information (moteur de recherche et indexation)
### Traitement des questions
- Détection du type de réponse
- Formulation de requête pour le moteur de recherche d'information
- Information à extraire de la question:
- Type de réponse
- Focus
- Type de question
- Mots-clés pour la requête
### Extraction des termes de requête
- Termes de requête: pour repérer des passages.
Exclure:
- le mot-question,
- les mots-outils et
- les verbes fréquents
- Taille du corpus: une seule réponse, formulation différente
- Expansion de requête:
- variantes morphologiques (mots de la même famille)
- synonymes (provenant d'un thesaurus)
- Reformulation:
- Forme affirmative, avec règles de réécriture (phrase ou le mot manquant est la réponse)
- Ex:
```
wh-word did A verb B -> A verb +ed B
Where is A -> A is located in
```
### Détection du type d'entité de la réponse
- Permet de limiter les passages pertinents et se concentrer sur les bonnes phrases.
- **Limitations**: les types d'entités détectés par les logiciels NER sont limités
- Taxonomie de réponse à deux niveaux: Li&Roth
- 6 grandes classes
- 50 sous-classes
Deux approches:
- Règles manuelles (expressions régulières)
- Classification automatique:
- Annotation des données d'entraînement
- Classification avec ces attributs
- Mots de la question
- POS
- Entités nommées
- Mot principal (headword), du premier groupe nominal après le mot question
### Traitement de passages
- Résultat de la recherche: liste de documents priorisés selon leur similarité
- Problèmes:
- Les documents ne sont pas les meilleures unités
- Les documents en haut de la liste ne contiennent pas nécessairement la réponse
- Solution:
- Découper les extraits des documents (segmantation)
- Section, paragraphe, phrase
- Fenêtre de mots
- Filtrer les extraits qui ne semblent pas contenir de réponse
- Réordonner ces extraits (avec des attributs)
- \# d'entités nommées du bon type
- \# de mots clés de la requête
- Plus longue séquence de mots de la question
- Rang du document d'où le passage provient
- Proximité des mots-clés de la requête
- Nombre de N-grammes en commun
- Sur le web, utiliser les "snippets"
### Extraction de réponses
- Span labeling: identifier la portion du texte qui constitue la réponse
- Approche: NER, retourner la chaîne du bon type
- Si la réponse n'est pas une entité nommée, on utilise des règles. Ces règles peuvent être apprises (comme pour l'extraction de relations, par exemple)
- Si plusieurs réponses: on propose les différentes réponses ou on utilise un classificateur
- Type de la réponse
- Correspondance à un patron
- Distance du mot-clé
- Mot observé pour la première fois
- Apposition (nombre de mots entre le mot-question et la réponse, avec un maximum de 3 mots et une virgule)
- Position des ponctuations
- Séquence de mots de la question
- Mean reciprocal rank
$$
MRR = \frac{1}{N}\sum_{i=1}^N \frac{1}{rank_i}
$$
## Approche avec des données structurées
- Base de connaissances (entités et relations, dbPedia, Freebase, WordNet). Extraction d'information
- Ex: Siri, Wolfram Alpha
# Modèles statistiques de traduction automatique

1
memm-ner.drawio Normal file
View file

@ -0,0 +1 @@
<mxfile host="www.draw.io" modified="2019-12-04T21:56:33.290Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" etag="jQpfNaXFtKk1AcKrwZeq" version="12.3.6" type="device" pages="1"><diagram id="3FOrd1r8Gg9en9qxrKnn" name="Page-1">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</diagram></mxfile>

BIN
memm-ner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

View file

@ -0,0 +1 @@
<mxfile host="www.draw.io" modified="2019-12-07T05:12:49.744Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" etag="hpt7P64XPa5TU7JI8bcZ" version="12.3.8" type="device" pages="1"><diagram id="li8Nz4ug8IP1PxZ90VDc" name="Page-1">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</diagram></mxfile>

BIN
systeme-qa-factuel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB