« SimilarBot » : différence entre les versions

De Wikipast
Aller à la navigation Aller à la recherche
(description de getPlaces)
Ligne 30 : Ligne 30 :


=== getPlaces ===
=== getPlaces ===
Cette fonction permet de créer, pour chacun des personnages, un objet Python "dictionnaire", contenant le nom de chacun des lieux cité au début de l’évènement, et sa fréquence de citation respective. Le "dictionnaire" est ensuite normalisé, et on obtient une liste des lieux des évènements cité dans la biographie wikipast du personnaire et leur poids respectifs.
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 :
==== Exemple : ====
* [[1926.12.12]] / [[Genève]]. [[Le Grand Schtroumpf]] publie ''Vivre à [[Lyon]]''.
* [[1926.12.12]] / [[Genève]]. [[Naissance]] du '''Grand Schtroumpf'''.
Dans ce cas, seul [[Genève]] sera pris en compte, car il correspond au lieu l'évènement s'est produit.
* [[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 tirets ne sont pas pris 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]]).

Version du 24 avril 2018 à 15:18

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 :

Le programme associera au personnage : Genève : 66.6%, Lausanne : 33.3%. Les tirets ne sont pas pris 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).