« MostWantedBot » : différence entre les versions
(14 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 7 : | Ligne 7 : | ||
==Résumé des fonctionnalités== | ==Résumé des fonctionnalités== | ||
Dans un premier temps, le bot récupérera les données de la page [https://en.wikipedia.org/wiki/Wikipedia:Most-wanted_articles "Most Wanted Wikipedia Article"] et placera le résultat dans un tableau. Dans un second temps, le robot vérifiera si les articles présents dans le tableau existent déjà (dans le cas où les articles ont été crées entre temps). Pour finir, dans le cas où l'article n'existe toujours pas, le bot crée la page dédiée tout en remplissant son contenu par les articles de Wikipédia ayant cités cet article (voir "Création & Contenu"). | Dans un premier temps, le bot récupérera les données de la page [https://en.wikipedia.org/wiki/Wikipedia:Most-wanted_articles "Most Wanted Wikipedia Article"] et placera le résultat dans un tableau. Dans un second temps, le robot vérifiera si les articles présents dans le tableau existent déjà (dans le cas où les articles ont été crées entre temps) et si ces articles correspondent bien à des personnes (Nom/Prénom). Pour finir, dans le cas où l'article n'existe toujours pas, le bot crée la page dédiée tout en remplissant son contenu par les articles de Wikipédia ayant cités cet article (voir "Création & Contenu"). | ||
==Description technique== | ==Description technique== | ||
Ligne 25 : | Ligne 25 : | ||
Pour réaliser cette étape, nous avons utilisé la librairie [https://spacy.io "spaCy"] qui permet de faire du language Processing en Python. Grâce à des modèles pré-entrainés pour plusieurs langues, spaCy reconnaît les entités présentes dans les phrases analysées, et donne une catégorie à chaque entité. Dans notre cas, nous avons donc lancé le language Processing sur la liste des Most Wanted Article précédemment extraite, et récupéré uniquement les items dont la catégorie était "Personne". | Pour réaliser cette étape, nous avons utilisé la librairie [https://spacy.io "spaCy"] qui permet de faire du language Processing en Python. Grâce à des modèles pré-entrainés pour plusieurs langues, spaCy reconnaît les entités présentes dans les phrases analysées, et donne une catégorie à chaque entité. Dans notre cas, nous avons donc lancé le language Processing sur la liste des Most Wanted Article précédemment extraite, et récupéré uniquement les items dont la catégorie était "Personne". | ||
Un deuxième tri est effectué pour enlever les items contenant des nombres, ceux-ci étant très rarement des personnes, mais dont un terme pourrait être détecté comme une personne par spaCy. Bien qu'imparfait, ce deuxième tri nous a donné de meilleurs résultats qu'en contrôlant uniquement les entités "Personne". | |||
===Création & Contenu=== | ===Création & Contenu=== | ||
Pour cette dernière partie, le bot se chargera d'exécuter la création des pages correspondant à la liste acquise à la fin de la partie précédente. Le bot se rendra attentif sur l'existence de l'article en question. En effet, si l'article a déjà été écrit avant que le bot n'effectue son travail, il ne faudrait pas que le robot écrase les données de l'article. | Pour cette dernière partie, le bot se chargera d'exécuter la création des pages correspondant à la liste acquise à la fin de la partie précédente. Le bot se rendra attentif sur l'existence de l'article en question sur wikipast. En effet, si l'article a déjà été écrit avant que le bot n'effectue son travail, il ne faudrait pas que le robot écrase les données de l'article. | ||
En outre, il se chargera de remplir le contenu de l'article en question en y plaçant | En outre, il se chargera de remplir le contenu de l'article en question en y plaçant une référence à toutes les pages qui ont voulu citer cet article. Nous respectons la syntaxe suivante : | ||
* Mention de [Nom du MostWantedTerm] dans [Nom de la source l'ayant citée][URL de la source] | * Mention de [Nom du MostWantedTerm] dans [Nom de la source l'ayant citée][URL de la source] | ||
Étant donné que chaque article à créer a été mentionné dans un minimum d'une vingtaine d'autres articles, nous devrions obtenir au moins 20 entrées de cette sorte dans nos nouvelles pages Wikipast. | Étant donné que chaque article à créer a été mentionné dans un minimum d'une vingtaine d'autres articles, nous devrions obtenir au moins 20 entrées de cette sorte dans nos nouvelles pages Wikipast. | ||
Ligne 35 : | Ligne 37 : | ||
==Résultats & Analyses== | ==Résultats & Analyses== | ||
Les résultats correspondent à peu de choses près à l'objectif voulu. En effet, nous obtenons bien les pages de la liste [https://en.wikipedia.org/wiki/Wikipedia:Most-wanted_articles "Most Wanted Wikipedia Article"] avec les références de chacune dans les autres articles. Quelques soucis interviennent notamment sur l'algorithme de détectection des "personnes" avec l'apparition de la création d'articles ne correspondant pas uniquement à des personnes. En effet, certains termes contenus dans des événements ou objets sont parfois aussi des noms/prénoms, et sont ainsi détectés comme des personnes. De plus, nous pouvons mentionner le fait que si un article a déjà été | Les résultats correspondent à peu de choses près à l'objectif voulu. En effet, nous obtenons bien les pages de la liste [https://en.wikipedia.org/wiki/Wikipedia:Most-wanted_articles "Most Wanted Wikipedia Article"] avec les références de chacune dans les autres articles. Quelques soucis interviennent notamment sur l'algorithme de détectection des "personnes" avec l'apparition de la création d'articles ne correspondant pas uniquement à des personnes. En effet, certains termes contenus dans des événements ou objets sont parfois aussi des noms/prénoms, et sont ainsi détectés comme des personnes. De plus, nous pouvons mentionner le fait que si un article a déjà été créé auparavant, notre bot se contente d'ignorer la création et ne rajoute donc pas les références faites à cet article. | ||
* Voici un exemple de page que nous obtenons avec l'utilisation de ce bot pour la personne de Grace Moore (Thanhouser actress)[http://wikipast.epfl.ch/wiki/Grace_Moore_(Thanhouser_actress)]: | |||
[[Image:Exbot.PNG|600px]] | |||
==Améliorations envisageables== | ==Améliorations envisageables== | ||
Ligne 45 : | Ligne 49 : | ||
==Code== | ==Code== | ||
Le code pour ce bot se trouve à l'adresse GitHub suivante : | Le code pour ce bot se trouve à l'adresse GitHub suivante : [https://github.com/Yuceflpb/MostWantedBot.git]. |
Dernière version du 25 mai 2021 à 21:56
Objectif du bot
Le but final de ce bot consiste dans la création de pages wikipast correspondant principalement à des personnes n'étant pas encore répertorier mais qui figurent parmi les demandes de création les plus réclamées.
Données traitées
La base de données pour ce bot est orientée autour de la page "Most Wanted Wikipedia Article". En effet, cette page recense les articles qui n'existe pas dans Wikipédia mais qui ont toutefois été cités au minimum une vingtaine de fois dans d'autres articles déjà existants.
Résumé des fonctionnalités
Dans un premier temps, le bot récupérera les données de la page "Most Wanted Wikipedia Article" et placera le résultat dans un tableau. Dans un second temps, le robot vérifiera si les articles présents dans le tableau existent déjà (dans le cas où les articles ont été crées entre temps) et si ces articles correspondent bien à des personnes (Nom/Prénom). Pour finir, dans le cas où l'article n'existe toujours pas, le bot crée la page dédiée tout en remplissant son contenu par les articles de Wikipédia ayant cités cet article (voir "Création & Contenu").
Description technique
Récupération des données
Comme expliqué ci-dessus, les données traitées par notre bot sont présentes dans la liste des “Most Wanted Wikipedia Article”.
Afin de récupérer ces données, nous utilisons la librairie "BeautifulSoup" qui permet de parcourir le code HTML de pages web. Cela nous permet de parcourir la page Wikipedia, et d'extraire les éléments de la liste en sélectionnant les éléments de la liste dont la classe HTML est "new", représentant des articles à créer.
BeautifulSoup nous permet ensuite de récupérer le texte des balises HTML satisfaisant les conditions ci-dessus. Ces textes, qui sont les titres des articles à créer, sont ajoutés à une liste afin de pouvoir traiter les données durant les étapes suivantes.
Tri des données
Une fois les données, à savoir les titres des articles à créer, récupérées, nous passons à l'étape du tri et de l'analyse de ces données afin d'obtenir un résultat cohérent et satisfaisant nos attentes.
Comme la liste des Most Wanted Articles est très hétérogène, nous avons du traiter cette liste pour retenir uniquement les articles pertinents à ajouter sur Wikipast. Le but de Wikipast étant de référencer principalement des personnes, nous avons choisi de trier la liste afin d'obtenir une liste contenant uniquement les personnes présentes dans la liste des Most Wanted Articles.
Pour réaliser cette étape, nous avons utilisé la librairie "spaCy" qui permet de faire du language Processing en Python. Grâce à des modèles pré-entrainés pour plusieurs langues, spaCy reconnaît les entités présentes dans les phrases analysées, et donne une catégorie à chaque entité. Dans notre cas, nous avons donc lancé le language Processing sur la liste des Most Wanted Article précédemment extraite, et récupéré uniquement les items dont la catégorie était "Personne".
Un deuxième tri est effectué pour enlever les items contenant des nombres, ceux-ci étant très rarement des personnes, mais dont un terme pourrait être détecté comme une personne par spaCy. Bien qu'imparfait, ce deuxième tri nous a donné de meilleurs résultats qu'en contrôlant uniquement les entités "Personne".
Création & Contenu
Pour cette dernière partie, le bot se chargera d'exécuter la création des pages correspondant à la liste acquise à la fin de la partie précédente. Le bot se rendra attentif sur l'existence de l'article en question sur wikipast. En effet, si l'article a déjà été écrit avant que le bot n'effectue son travail, il ne faudrait pas que le robot écrase les données de l'article. En outre, il se chargera de remplir le contenu de l'article en question en y plaçant une référence à toutes les pages qui ont voulu citer cet article. Nous respectons la syntaxe suivante :
- Mention de [Nom du MostWantedTerm] dans [Nom de la source l'ayant citée][URL de la source]
Étant donné que chaque article à créer a été mentionné dans un minimum d'une vingtaine d'autres articles, nous devrions obtenir au moins 20 entrées de cette sorte dans nos nouvelles pages Wikipast.
Résultats & Analyses
Les résultats correspondent à peu de choses près à l'objectif voulu. En effet, nous obtenons bien les pages de la liste "Most Wanted Wikipedia Article" avec les références de chacune dans les autres articles. Quelques soucis interviennent notamment sur l'algorithme de détectection des "personnes" avec l'apparition de la création d'articles ne correspondant pas uniquement à des personnes. En effet, certains termes contenus dans des événements ou objets sont parfois aussi des noms/prénoms, et sont ainsi détectés comme des personnes. De plus, nous pouvons mentionner le fait que si un article a déjà été créé auparavant, notre bot se contente d'ignorer la création et ne rajoute donc pas les références faites à cet article.
- Voici un exemple de page que nous obtenons avec l'utilisation de ce bot pour la personne de Grace Moore (Thanhouser actress)[1]:
Améliorations envisageables
- Rajouter les mentions des autres articles dans les pages étant déjà crées (Par la rajout d'une sous-partie "Mentions externes" par exemple).
- Gérer potentiellement les homonymes car si un nom apparait dans la liste des "Most Wanted Wikipedia Article" uniquement de par le fait que ce nom est un homonyme de plusieurs personnes différentes, cela peut tronquer le résultat voulu.
- Mettre en place un mécanisme de détection dans la liste des articles à créer afin de retirer les articles présentant des informations litigieuses (Nous pouvons donner l'exemple d'un utilisateur Wikipédia qui a été mentionné un bon nombre de fois mais uniquement dans le sens où on voulait signaler cette personne, et non dans l'optique de vouloir mentionner valeureusement cette personne).
Code
Le code pour ce bot se trouve à l'adresse GitHub suivante : [2].