Vue d’ensemble
ArticleRank a été dérivé de PageRank pour mesurer l'influence des articles de journaux.
- J. Li, P. Willett, ArticleRank: une alternative basée sur PageRank aux nombres de citations pour analyser les réseaux de citations (2009)
Concepts
ArticleRank
Similaire aux liens entre les pages web, les citations entre articles (livres, rapports, etc.) représentent l'autorité et la haute qualité. Il est généralement supposé que plus un article reçoit de citations, plus cet article a d'impact dans son domaine de recherche particulier.
Cependant, tous les articles n'ont pas la même importance. Ainsi, cette approche basée sur PageRank a été proposée pour classer les articles.
ArticleRank conserve la méthodologie de base de PageRank tout en apportant quelques modifications. Lorsqu'un article transmet son rang parmi ses liens avant, il ne divise pas le rang de manière égale selon le degré de sortie de cet article, mais par la somme du degré de sortie de cet article et du degré de sortie moyen de tous les articles. Le rang de l'article u après une itération est :
où Bu est l'ensemble de rétroliens de u, d est le facteur d'amortissement. Ce changement du dénominateur réduit le biais qu'un article avec un très petit degré de sortie fait une plus grande contribution à ses liens avant.
Le dénominateur de l'ArticleRank d'Ultipa est différent de celui de l'article original tandis que l'idée principale est la même.
Considérations
En comparaison avec le WWW, certaines caractéristiques doivent être prises en compte pour les réseaux de citations, telles que :
- Un article ne peut pas se citer lui-même, c'est-à-dire qu'il n'y a pas de boucle auto-référentielle dans le réseau.
- Deux articles ne peuvent pas se citer mutuellement, c'est-à-dire qu'un article ne peut pas être à la fois le lien avant et le rétrolien d'un autre article.
- Les citations dans un article publié ne changeront pas, c'est-à-dire que les liens avant d'un article sont fixes.
Syntaxe
- Commande :
algo(page_rank)
- Paramètres :
Nom |
Type |
Spéc |
Défaut |
Optionnel |
Description |
---|---|---|---|---|---|
init_value | float | >0 | 0.2 |
Oui | Le même rang initial pour tous les nodes |
loop_num | int | >=1 | 5 |
Oui | Nombre d'itérations |
damping | float | (0,1) | 0.8 |
Oui | Facteur d'amortissement |
weaken | int | 1 , 2 |
1 |
Non | Pour ArticleRank, le garder à 2 ; 1 signifie exécuter PageRank |
limit | int | ≥-1 | -1 |
Oui | Nombre de résultats à retourner, -1 pour retourner tous les résultats |
order | string | asc , desc |
/ | Oui | Trier les nodes par le rang |
Exemples
L'exemple de graph est le suivant :
File Writeback
Spéc | Contenu |
---|---|
filename | _id ,rank |
algo(page_rank).params({
init_value: 1,
loop_num: 50,
damping: 0.8,
weaken: 2,
order: 'desc'
}).write({
file: {filename: 'rank'}
})
Résultats : Fichier rank
book4,0.428308
book5,0.375926
book6,0.319926
book7,0.2
book3,0.2
book2,0.2
book1,0.2
Property Writeback
Spéc | Contenu | Écrire à | Type de données |
---|---|---|---|
property | rank |
Node property | float |
algo(page_rank).params({
loop_num: 50,
weaken: 2
}).write({
db:{property: 'AR'}
})
Résultats : Le rang pour chaque node est écrit dans une nouvelle propriété nommée AR
Direct Return
Alias Ordinal | Type | Description | Colonnes |
---|---|---|---|
0 | []perNode | Node et son rang | _uuid , rank |
algo(page_rank).params({
init_value: 1,
loop_num: 50,
damping: 0.8,
weaken: 2,
order: 'desc',
limit: 3
}) as AR
return AR
Résultats : PR
_uuid | rank |
---|---|
4 | 0.42830801 |
5 | 0.37592599 |
6 | 0.31992599 |
Stream Return
Alias Ordinal | Type | Description | Colonnes |
---|---|---|---|
0 | []perNode | Node et son rang | _uuid , rank |
algo(page_rank).params({
loop_num: 50,
damping: 0.8,
weaken: 2,
order: 'desc',
limit: 3
}).stream() as AR
find().nodes({_uuid == AR._uuid}) as nodes
return table(nodes._id, AR.rank)
Résultats : table(nodes._id, AR.rank)
nodes._id | AR.rank |
---|---|
book4 | 0.42830801 |
book5 | 0.37592599 |
book6 | 0.31992599 |