SimilarBot
Bot qui a pour but de suggérer des personnages similaires.
Idées de critères
- profession(s)
- lieux
- période
- évènements en commun (p.ex publication commune)
- personnage cité
Calcul d'un score dans différentes catégories et corrélation
par exemple :
- 40% des entrées font référence au tennis
- 70% des entrées font référence à Genève
- les entrées s'étalent entre 1910 et 1990
- liens familiaux
- présence au même évènement un même jour
- publication commune
Suggestion en bas de la page de personnalités liées.
Code
lien vers le code : [1]
Description des fonctions
getacquaintance
Cette fonction est la plus basique pour déterminer un lien de similitude entre deux personnages du wikipast, elle se contente de vérifer si un autre des personnages est cité dans la biographie. Pour être utilise à notre SimilarBot qui a pour but de suggérer une page en lien il faut que la personne citée dans la biographie ai une page wikipast à son nom. Pour ce faire le bot parcourt une page biographique et vérifie si une autre des biographies du Wikipast est citée dans cette page il va ensuite l'ajouter à sa liste de connaissance puis la fonction "checkAquaintanceReciprocity" s'assure que le personnage dont on parcourt la biographie est lui aussi ajouté à la liste de connaissance du nouveau personnage.
getPlaces
Cette fonction sert à miner les informations concernant les lieux associés aux entrées évènements de chaque personnage de Wikipast. Elle crée ensuite, pour chacun des personnages, un objet Python "dictionnaire", contenant le nom de chacun des lieux cité au début des entrées-évènements, et leur fréquence de citation relative (normée).
Exemple :
- 1926.12.12 / Genève. Naissance du Grand Schtroumpf.
- 1929.02.06 / Genève. Publication : Le Grand Schtroumpf publie Vivre à Lyon.
- 1933.07.01 / Lausanne. Election du Grand Schtroumpf au poste de Grand Schtroumpf.
- 1935.11.22 / -. Publication : Le Grand Schtroumpf publie La salsepareille dans tous ses états.
- 1939.09.30. Décès du Grand Schtroumpf.
Le programme associera au personnage : Genève : 66.6%, Lausanne : 33.3%. Les entrées où le lieu n'est pas spécifié ne sont pas prises en compte par l'algorithme.
Limitations :
- Lorsque la syntaxe n'est pas respectée, le programme peut comprendre une suite de lettres, se trouvant à la place normale du lieu, c'est-à-dire après le signe / et entre crochets, comme étant un nom de lieu. Cela n'est pas le cas lorsque la syntaxe est respectée (pas de problème donc dans les entrées-évènements 4 et 5 de l'exemple).
- Un second problème concerne les éventuels espaces dans les noms de lieux. En effet, un lieu comme Suisse romande ne pourra pas être détecté. Les noms à tirets, par contre, ne sont pas un problème (comme Aix-la-Chapelle)
- Actuellement, la proximité topographique des lieux n'est pas prise en compte, ainsi, l'algorithme n'accordera pas un seul point de corrélation entre Paris et Versailles, même si ces lieux sont géographiquement proches.
- Les évolutions toponymiques (Istanbul, Constantinople) ne sont pas prises en compte, de même que les variantes orthographiques d'un même nom de lieu (Biel, Bienne).
getLifespan
Cette fonction récupère les informations concernant l'époque où le personnage a vécu (date de naissance et de décès).
Exemple :
- 1926.12.12 / Genève. Naissance du Grand Schtroumpf.
- 1949.02.06 / Genève. Naissance de Petit Schtroumpf, fils de Grand Schtroumpf.
- 1999.04.01 / Genève. Décès du Grand Schtroumpf.
Le programme comprendra que la durée de vie du Grand Schtroumpf s'étend sur la période [1926,1999].
Limitations :
- Lorsque ni la date de naissance, ni la date de décès ne sont spécifiées, le programme n'enregistre pas d'informations à propos de la période de vie du personnage.
- Lorsque la date de naissance est spécifiée, mais pas la date de décès, le programme part du principe que le personnage est toujours vivant, pour autant que la durée de vie que cela implique ne soit pas hors norme (max. 98 ans). Si la durée de vie parait déraisonnable, le programme considère une durée de vie moyenne de 70 ans.
- Lorsque la date de décès est spécifiée, mais pas la date de naissance, le programme considère la première entrée de la biographie comme début de la période de vie du personnnage.
- Le programme ne comprend que les entrées liées aux hypermots conventionnels : Naissance, Décès, Mort et Exécution.
getWork
Cherche et repère, dans chaque évènement de la Biographie, une liste de mots clé, en lien avec différents domaines d'activité. Établit ensuite, à l'image de getPlaces, un tableau (dictionnaire Python) qui attribue à chaque domaine d'activité un poids relatif. Actuellement, il existe 15 domaines d'activité principaux : Sport, Arts plastiques, Littérature, Musique, Cinéma, Sciences naturelles, Sciences humaines, Mathématiques, Politique, Philosophie et psychologie, Médecine et santé, Militaire et Affaires. Les catégories d'activités les plus grandes sont divisées en sous-catégories (comme par exemple Politique, Sport, Sciences naturelles).
Exemple :
- 1932.04.01 / Genève. Publication de Petits théorèmes schtroumpfants par le Grand Schtroumpf.
- 1933.07.01 / Lausanne. Election du Grand Schtroumpf au poste de Grand Schtroumpf.'.
- 1935.04.01 / Genève. Publication de Mes meilleures parties d'échecs par le Grand Schtroumpf.
Le programme attribuera les poids suivants à cet extrait
- 40% Littérature (2 lignes contiennent le mot-clé Publication)
- 20% Mathématiques (1 ligne contien le mot-clé théorèmes)
- 20% Politique (1 ligne contient le mot-clé Election, de la sous-catégorie Démocratie)
- 20% Sport (1 ligne contient le mot-clé échecs, de la sous-catégorie Échecs)
Limitations :
- Les catégories sont définies directement dans le code Python, ainsi que les mots-clés. Cela limite le nombre de catégories et les capacités de compréhension du programme.
- L'intention du personnage n'est pas prise en compte. Par exemple, un antimilitariste qui s'expose à des situations de guerre, et dont la biographie contiendra des mots-clé lié à la guerre, pourra être mis en lien avec un général, militaire de carrière.