2

Existe-t-il quelque chose d'une notion [directionnelle?]/Implémentation de la distance entre les catégories/pages Wikipedia?Wiki-distance: distance entre les rubriques et catégories Wiki?

Par exemple considérer: A) "Université Saint-Louis" B) "université"

Il est clair que "A" est un type de "B". Comment pouvez-vous extraire ceci de Wiki? Si vous extrayez toutes les catégories se connecter à un, vous verriez qu'il donne

Category:1818 establishments in Missouri Territory 
Category:Articles containing Latin-language text 
Category:Association of Catholic Colleges and Universities 
Category:Commons category with local link same as on Wikidata 
Category:Coordinates on Wikidata 
Category:Educational institutions established in 1818 
Category:Instances of Infobox university using image size 
Category:Jesuit universities and colleges in the United States 
Category:Roman Catholic Archdiocese of St. Louis 
Category:Roman Catholic universities and colleges in Missouri 

et il ne contient rien qui se connecter directement à B (https://en.wikipedia.org/wiki/University). Mais essentiellement si vous regardez plus loin, vous devriez être capable de trouver un chemin multi-hop entre A et B, éventuellement plusieurs sauts. Quelles sont les façons populaires d'accomplir cela?

+0

vous pouvez envisager de regarder dans mon projet sur l'extraction de la hiérarchie des catégories Wikipédia - https://github.com/wasiahmad/Mining-Wikipedia/tree/master/WikiNomy –

+0

@WasiAhmad En quoi votre projet diffère-t-il de l'accès aux informations Wiki via MediaWiki api? – Daniel

+0

Mon projet n'utilise aucune API, il extrait la hiérarchie de catégories directement à partir du vidage Wiki. J'avais besoin de toute la hiérarchie des catégories Wiki pour l'un de mes travaux de recherche, j'ai donc développé ce projet. –

Répondre

1

Si vous avez la taxonomie complète de la catégorie Wikipedia, vous pouvez calculer la distance (la plus courte) entre deux catégories. Si une catégorie est l'ancêtre de l'autre, elle est simple.

Sinon, vous pouvez trouver le Subsumer Common Subsumer qui est défini comme suit.

moins subsumer commun de deux concepts A et B est le concept le plus spécifique qui est un ancêtre de A et B.

Puis la distance Calculons entre eux par l'intermédiaire LCS.

Je vous encourage à passer par similarity measures où vous trouverez des techniques de pointe pour calculer la similarité sémantique entre les mots.

Ressource: Mon project sur l'extraction de la catégorie/concept Wikipedia pourrait vous aider.

Un très bon exemple lié

Compute similarité sémantique entre les mots en utilisant WordNet. WordNet organise les mots anglais de façon hiérarchique. Voir ceci wordnet similarity for java demo. Il utilise huit états de techniques différents pour calculer la similarité sémantique entre les mots.

1

Quelques idées/ressources que j'ai recueillies. Je mettrai à jour si j'en trouve plus.

- Utilisation de DBPedia: base de connaissances basée sur Wiki. Ils fournissent un SparQL end-point pour interroger cette base de connaissances. Mais il faut simuler le comportement de similarité/distance souhaité via leur interface SparQL. Certaines idées sont here et here, mais elles semblent être obsolètes. - Utilisant UMBEL: http://umbel.org/ qui est un graphe de connaissances de concepts. Je pense que la taille de ce graphe de connaissances est relativement petite. Mais je soupçonne que sa précision est probablement élevée. Cela étant dit, je ne suis pas sûr de savoir comment cela se rapporte à Wikipedia du tout. Ils ont this api pour calculer la mesure de distance entre n'importe quelle paire de leurs concepts (au moment d'écrire ce post, leur API de similarité est en panne.) Donc, pas une solution faisable pour le moment).

- Utilisation http://degreesofwikipedia.com/ Je ne donne pas les détails de leur algorithme et comment ils le font, mais ils fournissent une distance entre les concepts Wiki. Et aussi c'est directionnel. Par exemple this et this.

1

Vous cherchez peut-être la relation "is a": Q734774 (l'objet Wikidata pour Saint Louis University) est une université, un bâtiment et un établissement d'enseignement privé à but non lucratif. Vous pouvez utiliser SPARQL pour l'interroger:

+0

Ceci est très agréable @Tgr! Pourriez-vous également écrire une forme équivalente de la première requête en utilisant DBPedia? – Daniel

+0

Je ne suis pas familier avec DBPedia. Mon impression générale était qu'ils ont plus de données, mais il est plus plat (principalement des paires valeur/paramètre infobox) donc il est moins approprié pour des requêtes comme celle-ci ... peut-être complètement faux à ce sujet cependant. – Tgr

+0

Je vois merci @Tgr. Un autre. Comment imprimer les résultats de la requête 'ASK' (pour le premier lien)? Comme je veux voir le chemin qui relie les deux. – Daniel