Master – 2e année Science et Ingénierie Informatiques, filière Logiciel Systèmes d'information et applications web 2014-2015 Éric Laporte
Cours 3
Méthodes symboliques
Sommaire
Prédicats sémantiques
Graphes de grammaires locales Insérer des balises XML
Remplacer du texte
Extraction d'informations • 3
Apprentissage supervisé
Inconvénients
Annoter le corpus d’apprentissage (100 000 mots)
De nouvelles entités nommées apparaissent souvent :
annoter de nouveaux corpus
Impossible de corriger une erreur corpus
brut
corpus annoté apprentissage
supervisé
corpus d’apprentissage
modèle probabiliste
Méthodes symboliques
Entités nommées On décrit directement
- les entités nommées connues (dictionnaire)
- les contextes caractéristiques des entités nommées (grammaire) Avantage
On peut corriger une erreur en révisant l'annotateur Inconvénients
La construction et la révision de l'annotateur demandent - du travail
corpus brut
corpus annoté annotateur
symbolique
révision manuelle
Extraction d'informations • 5
Prédicats sémantiques
Prédicats et arguments
Les arguments peuvent être des entités nommées Prédicats unaires
développement(cellule-pileuse) est-une-entreprise(Wal-Mart) Prédicats binaires
auteur(Amélie Nothomb, Stupeur et Tremblements)
adresse-mail(Éric Laporte, [email protected]) date(élections-municipales-France-2014, mars-2014) Prédicats ternaires
rang-entreprise-par-secteur(Carrefour, grande distribution, 2) député-parti-lieu(Henri Cuq, RPR, Yvelines)
Le format RDF
Resource description framework (modèle de description de ressources)
Format pour les prédicats à deux arguments Triplets RDF
adresse-mail(Eric Miller, [email protected])
<http://www.w3.org/People/EM/contact#me
>
<http://www.w3.org/2000/10/swap/pim/cont act#mailbox> <mailto:[email protected]>
3 identifiants, dans l'ordre : - premier argument
- prédicat
Extraction d'informations • 7
Le format RDF
URI
Universal resource identifier (identifiant uniforme de ressource)
Le prédicat et les deux arguments peuvent être représentés par des URI
URI de prédicats
http://purl.org/dc/terms/date date() http://purl.org/dc/terms/creator créateur() 70 prédicats définis sur
http://dublincore.org/documents/dcmi-terms/
http://www.w3.org/2000/10/swap/pim/contact#mailb ox
adresse-mail() URI d’arguments
http://www.w3.org/People/EM/contact#me mailto:[email protected]
Le format RDF
Chaines littérales
Le deuxième argument peut aussi être
représenté par une chaine littérale: en fr es...
Exemple
langue (telle-page-web, français)
<http://fr.wikipedia.org/wiki/Informatique>
<http://purl.org/dc/terms/language> "fr"
Extraction d'informations • 9
Sommaire
Prédicats sémantiques
Graphes de grammaires locales Insérer des balises XML
Remplacer du texte
Graphes de grammaires locales
Extraction d'informations • 11
Graphes de grammaires locales
Objectif
Représenter manuellement des expressions Il faut connaitre la langue des textes
Reconnaitre automatiquement les expressions dans des textes Le système Unitex
Logiciel libre
Éditeur graphique pour les graphes Outil de reconnaissance
Évaluation
On fait les graphes manuellement
Gross, M. 1997. The Construction of Local Grammars. Finite State
Language Processing, Cambridge, Mass., The MIT Press, p. 329-352.
Évaluer la précision avec Unitex
Ouvrir un corpus
Créer un répertoire Unitex personnel qui ne servira qu'à Unitex Ouvrir Unitex et spécifier le répertoire Unitex personnel
Choisir la langue du corpus
Copier le corpus dans le répertoire Corpus de cette langue
Répertoire Unitex personnel Répertoires des langues
Pour les corpus à traiter Pour les dictionnaires Pour les graphes
Extraction d'informations • 13
Évaluer la précision avec Unitex
Ouvrir un corpus
Copier le corpus dans le répertoire Corpus de la langue Cliquer sur Text puis Open
Ouvrir la liste de types de fichiers et choisir Raw Unicode Texts Choisir le corpus
Appliquer le graphe
Copier le graphe dans le répertoire Graphs de la langue Cliquer sur Text puis Locate pattern
Choisir le graphe
Cliquer sur SEARCH
Noter le nombre d'occurrences (vp+fp) Cliquer sur OK puis Build concordance
Compter les faux positifs dans la concordance
Concordance
Extraction d'informations • 15
Concordance
faux positif
Comparer deux extractions
Première extraction
Cliquer sur Text puis Locate pattern Choisir le graphe
Choisir l'option Index all utterances in text Cliquer sur SEARCH puis OK
Deuxième extraction Même chose
Produire une concordance différentielle Cliquer sur Show differences with previous
concordance
Extraction d'informations • 17
Concordance différentielle
Extraction 1 sur fond grisé Extraction 2 sur fond blanc
Extraction 1 Extraction 2 : rien
Concordance différentielle
Extraction 1 Extraction 2 : faux négatif
Extraction d'informations • 19
Retoucher un graphe
Ouvrir le graphe
Cliquer sur FSGraph puis Open Lire le graphe
Sur fond grisé : invocation d'un sous-graphe (Alt-clic pour l'ouvrir) Sur fond rouge : invocation d'un sous-graphe inexistant
Sens des transitions : indiqué par les flèches à droite des nœuds Nœud final
Sélectionner et désélectionner
Cliquer sur un nœud pour le sélectionner Cliquer dans le vide pour désélectionner
Cliquer et déplacer la souris pour dessiner un rectangle et sélectionner les nœuds qui touchent le rectangle
Graphes de grammaires locales
Extraction d'informations • 21
Retoucher un graphe
Créer un nœud
Ctrl-clic, éditer le contenu, valider Créer une transition de a vers b Cliquer sur a puis sur b
Supprimer une transition de a vers b Cliquer sur a puis sur b
Retoucher un graphe
Symboles
<MOT> constitué de lettres seulement
<MAJ> tout en majuscules
<PRE> initiale majuscule
<TOKEN> token
. , ; - ' chaque symbole est un token
député reconnait un mot littéralement (la minuscule reconnait la majuscule)
<député> reconnait aussi le pluriel et le féminin
Extraction d'informations • 23
Grammaires locales
Grammaires locales
Appel de sous-graphes
Un graphe peut en appeler un autre Récursivité possible
Équivalent à une grammaire algébrique (context-free) Avantages
plus de réutilisation
plus lisible pour l'auteur des ressources
construction et maintenance manuelle plus faciles
Gross, Maurice. 1997. The Construction of Local Grammars. Finite State Language Processing, Cambridge, Mass., The MIT Press, p. 329-352.
Extraction d'informations • 25
Appeler un sous-graphe
Sur fond grisé : invocation d'un sous-graphe dans le même répertoire
Sur fond kaki : invocation d'un sous-graphe dans le répertoire de dépôt
Sur fond rouge : invocation d'un sous-graphe inexistant
Appeler un sous-graphe qui est dans le même répertoire que le graphe
Sélectionner un nœud et éditer le contenu
Ajouter une ligne commençant par le caractère ":" avec le nom du graphe
Valider
Appeler un sous-graphe
Dans le répertoire de dépôt
Déclarer le répertoire de dépôt dans le menu Info > Preferences > Directories
Comme ci-dessus, mais en commençant par
"::"
Ouvrir un sous-graphe Linux : clic central
Windows : Alt-clic
Extraction d'informations • 27
Sommaire
Prédicats sémantiques
Graphes de grammaires locales Insérer des balises XML
Remplacer du texte
Balises insérées autour du nom du député
Insérer des balises XML
Extraction d'informations • 29
Avant
Pierre Cardo (UDF), tombeur de Michel Rocard dans les Yvelines, Eric Raoult, bouillant député RPR de Seine-Saint-Denis, Gilles de Robien, député (UDF) et maire d'Amiens sont sur les rangs, mais se heurtent au veto de Simone Veil.
Après
Pierre Cardo (UDF), tombeur de Michel Rocard dans les Yvelines, <depute- parti-lieu><pers>Eric Raoult</pers>, bouillant député<parti> RPR</parti>
de<loc> Seine-Saint-Denis</loc></depute-parti-lieu>, Gilles de Robien, député (UDF) et maire d'Amiens sont sur les rangs, mais se heurtent au veto de Simone Veil.
Insérer des balises XML
Transducteurs
Automate fini
Contient des séquences qui peuvent être reconnues dans un texte existant Transducteur fini
Utilisé pour produire un texte en sortie Contient:
- des séquences qui seront reconnues (séquences d’entrée) - d’autres qui seront insérées (séquences de sortie)
Graphes de grammaires locales avec séquences de sortie Équivalent à un transducteur fini
Les séquences d'entrée sont affichées dans les nœuds
Les séquences de sortie sont affichées au-dessous des nœuds
Extraction d'informations • 31
Ajouter une sortie à un nœud Éditer le contenu du nœud
Insérer une barre (/) entre la séquence d’entrée et la séquence de sortie correspondante
En général, la séquence d'entrée est vide On la représente par <E>
Graphes avec séquences de sortie
Graphes avec séquences de sortie
Appliquer le graphe pour insérer les séquences de sortie
1) Text > Locate Pattern
Par défaut, Unitex ignore toutes les sorties Cocher l'option "Merge with input text"
Les séquences de sortie seront insérées à gauche des séquences d’entrée
correspondantes
2) Text > Located Sequences > Modify text Indiquer le nom du fichier de sortie
Extraction d'informations • 33
Sommaire
Prédicats sémantiques
Graphes de grammaires locales Insérer des balises XML
Remplacer du texte
Extraire sous forme d'éléments XML
Avant
Pierre Cardo (UDF), tombeur de Michel Rocard dans les Yvelines, Eric Raoult, bouillant député RPR de Seine-Saint-Denis, Gilles de Robien, député (UDF) et maire d'Amiens sont sur les rangs, mais se heurtent au veto de Simone Veil.
Après
Pierre Cardo (UDF), tombeur de Michel Rocard dans les Yvelines, <depute><pers name="Eric Raoult"/><parti name="RPR"/><loc name="Seine-Saint-
Denis"/><source quote="Eric Raoult, bouillant député RPR de Seine-Saint-
Denis"/></depute>, Gilles de Robien, député (UDF) et maire d'Amiens sont sur les rangs, mais se heurtent au veto de Simone Veil.
Extraction d'informations • 35
Initialisation d'une variable
Copier une partie du texte d'entrée
Utilisation de la variable
Copier une partie du texte d'entrée
Extraction d'informations • 37
Graphes avec séquences de sortie
Appliquer le graphe pour remplacer du texte par les séquences de sortie 1) Text > Locate Pattern
Cocher l'option "Replace recognized sequences"
Les séquences de sortie remplaceront les séquences d'entrée correspondantes 2) Text > Located Sequences
Indiquer le nom du fichier de sortie
Pour Unitex, un nœud sans barre (/) a une sortie vide (/<E>) Appliquer le graphe en mode Replace
Les parties reconnues par des nœuds sans sortie ne sont pas copiées dans le fichier de sortie
Exemple
Pour supprimer le balisage, faire un transducteur qui reconnaît les balises et l'appliquer en mode Replace
Effacer avec un graphe
Extraction d'informations • 39
Variable d'entrée
Variable dans laquelle on copie une partie du texte d'entrée
Initialisation de la variable
Sélectionner la partie du graphe qui reconnait le texte à copier
Dans le menu contextuel, choisir "Surround with input variable"
Utilisation de la variable
Dans une séquence de sortie, l'expression
$<nom de la variable>$ copie le contenu de la variable