« EventFormatBot » : différence entre les versions

De Wikipast
Aller à la navigation Aller à la recherche
(Annulation des modifications 159456 de Ancrette (discussion))
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
EventFormatBot a pour but d'étendre les fonctionnalités de [[FormatBot]]. Il vérifie que la syntaxe d'écriture des événements est bien respectée selon le dictionnaire des typologies d'événements. Si ce n'est pas le cas, le bot réécrit si possible les entrées selon une syntaxe basique.


== Implémentation Technique ==
EventFormatBot prend un article Wikipast comme argument. Il distingue les entrées et vérifie la syntaxe indépendament de chacune d'elles. Cette particularité permet de traiter chacune des entrées de manière parallèle.
=== Interprétation de la nature d'un mot ===
La syntaxe d'un événement est une succession ordonnée de mots de nature spécifique. Dans le cadre de cet algorithme, il est donc nécessaire de déterminer la nature d'un mot (Personnage, Lieu, Objet, autre...) : principe d'un NER (Named Entity Recognition)[https://en.wikipedia.org/wiki/Named-entity_recognition].
==== Example ====
:'''NAISSANCE''' : DATE / LIEU. Naissance de PERSONNAGE. [http://wikipast.epfl.ch/wikipast/index.php/Naissance]
Ici trois natures différentes sont utilisées : Date, Lieu et Personnage.
L'une des étapes du EventFormatBot est donc de vérifier que la nature du mot correspond à celle attendue par la syntaxe de l'événement.
Dans le cadre du cours, nous n'avons pas le temps de développer nous-même le NER, ainsi nous utiliserons une librairie externe Python open-source : spaCy [https://spacy.io]. spaCy regroupe les mots selon les catégories suivantes [https://spacy.io/api/annotation#section-named-entities]
==== Nature d'un mot ====
*PERSON - Personnages, fictionnels inclus
*NORP - Nationalités ou groupes politique ou religieux
*FAC - Bâtiments, aéroports, autoroutes, ponts...
*ORG - Entreprises, institutions, agences...
*GPE - Pays et villes
*LOC - Lieu autre que pays ou villes
*PRODUCT - Objets, véhicules, nourritures...
*EVENT - Ouragans, batailles historique, événements sportif...
*WORK_OF_ART - Titres de livre, morceaux de musique...
*LAW - Nom d'article de loi
*LANGUAGE - Nom de language
*DATE - Dates absolue ou relative, période historique...
*TIME - Périodes plus courte qu'une journée
*PERCENT - Pourcentage, incluant '%'
*MONEY - valeurs monétaire
*QUANTITY - Mesures de poids ou distance.
*ORDINAL
*CARDINAL - Nombres hors-catégorie
=== Normalisation de la syntaxe typologique du dictionnaire ===
Pour chaque événement, il est nécessaire d'extraire automatiquement la syntaxe typologique de l'article correspondant. Nous avons mis en place une syntaxe standardisée située au début de l'article, inspirée de celle de [[Parution]] et mis à jour tous les autres événements afin qu'il soit conforme à la nouvelle syntaxe :
#Chaque entrée commence par une date.
#La date peut être suivie d'un lieu, séparé d'un séparateur.
#Chaque mot avec une nature imposée se traduit par un hypermot.
#Il est possible d'ajouter des hypermots optionnels avec des parenthèses.
Nous avons également simplifié le nombre de natures possibles de mot, il y a maintenant 6 natures possibles :
*Date
*Lieu
*Personnage
*Oeuvre d'Art
*Institution
*Objet - qui regroupe toutes les catégories, inclue tous les mots
Un hypermot peut être de natures différentes, précisés par un séparateur '/' entre chaque nature possible, voir exemple ci-dessous.
==== Example - [[Parution]] ====
Syntaxe: <code><nowiki> [[Date]] / [[Lieu]]. [[Publication]] de [[Oeuvre d'Art]] par [[Personnage/Institution]] (dans [[Journal]]) </nowiki></code>
=== Vérification de la syntaxe ===
Pour une entrée donnée, EventFormatBot commence par extraire l'événement associé.
=== Correction de la syntaxe ===

Version du 7 mai 2019 à 12:25

EventFormatBot a pour but d'étendre les fonctionnalités de FormatBot. Il vérifie que la syntaxe d'écriture des événements est bien respectée selon le dictionnaire des typologies d'événements. Si ce n'est pas le cas, le bot réécrit si possible les entrées selon une syntaxe basique.

Implémentation Technique

EventFormatBot prend un article Wikipast comme argument. Il distingue les entrées et vérifie la syntaxe indépendament de chacune d'elles. Cette particularité permet de traiter chacune des entrées de manière parallèle.

Interprétation de la nature d'un mot

La syntaxe d'un événement est une succession ordonnée de mots de nature spécifique. Dans le cadre de cet algorithme, il est donc nécessaire de déterminer la nature d'un mot (Personnage, Lieu, Objet, autre...) : principe d'un NER (Named Entity Recognition)[1].


Example

NAISSANCE : DATE / LIEU. Naissance de PERSONNAGE. [2]

Ici trois natures différentes sont utilisées : Date, Lieu et Personnage.


L'une des étapes du EventFormatBot est donc de vérifier que la nature du mot correspond à celle attendue par la syntaxe de l'événement. Dans le cadre du cours, nous n'avons pas le temps de développer nous-même le NER, ainsi nous utiliserons une librairie externe Python open-source : spaCy [3]. spaCy regroupe les mots selon les catégories suivantes [4]

Nature d'un mot

  • PERSON - Personnages, fictionnels inclus
  • NORP - Nationalités ou groupes politique ou religieux
  • FAC - Bâtiments, aéroports, autoroutes, ponts...
  • ORG - Entreprises, institutions, agences...
  • GPE - Pays et villes
  • LOC - Lieu autre que pays ou villes
  • PRODUCT - Objets, véhicules, nourritures...
  • EVENT - Ouragans, batailles historique, événements sportif...
  • WORK_OF_ART - Titres de livre, morceaux de musique...
  • LAW - Nom d'article de loi
  • LANGUAGE - Nom de language
  • DATE - Dates absolue ou relative, période historique...
  • TIME - Périodes plus courte qu'une journée
  • PERCENT - Pourcentage, incluant '%'
  • MONEY - valeurs monétaire
  • QUANTITY - Mesures de poids ou distance.
  • ORDINAL
  • CARDINAL - Nombres hors-catégorie

Normalisation de la syntaxe typologique du dictionnaire

Pour chaque événement, il est nécessaire d'extraire automatiquement la syntaxe typologique de l'article correspondant. Nous avons mis en place une syntaxe standardisée située au début de l'article, inspirée de celle de Parution et mis à jour tous les autres événements afin qu'il soit conforme à la nouvelle syntaxe :

  1. Chaque entrée commence par une date.
  2. La date peut être suivie d'un lieu, séparé d'un séparateur.
  3. Chaque mot avec une nature imposée se traduit par un hypermot.
  4. Il est possible d'ajouter des hypermots optionnels avec des parenthèses.

Nous avons également simplifié le nombre de natures possibles de mot, il y a maintenant 6 natures possibles :

  • Date
  • Lieu
  • Personnage
  • Oeuvre d'Art
  • Institution
  • Objet - qui regroupe toutes les catégories, inclue tous les mots

Un hypermot peut être de natures différentes, précisés par un séparateur '/' entre chaque nature possible, voir exemple ci-dessous.

Example - Parution

Syntaxe: [[Date]] / [[Lieu]]. [[Publication]] de [[Oeuvre d'Art]] par [[Personnage/Institution]] (dans [[Journal]])

Vérification de la syntaxe

Pour une entrée donnée, EventFormatBot commence par extraire l'événement associé.

Correction de la syntaxe