CatgirlIntelligenceAgency/code/features-index/domain-ranking
Viktor Lofgren 64acdb5f2a (domain-ranking) Clean up domain ranking
The domain ranking code was admittedly a bit of a clown fiesta; at the same time buggy, fragile and inscrutable.

Migrating over to use JGraphT to store the link graph
when doing rankings, and using their PageRank implementation.  Also added a modified version that does PersonalizedPageRank.
2024-02-16 18:04:58 +01:00
..
src (domain-ranking) Clean up domain ranking 2024-02-16 18:04:58 +01:00
build.gradle (domain-ranking) Clean up domain ranking 2024-02-16 18:04:58 +01:00
readme.md (domain-ranking) Clean up domain ranking 2024-02-16 18:04:58 +01:00

Domain Ranking

Contains domain ranking algorithms. The domain ranking algorithms are based on the JGraphT library.

Two principal algorithms are available, the standard PageRank algorithm, and personalized pagerank; each are available for two graphs, the link graph and a similarity graph where each edge corresponds to the similarity between the sets of incident links to two domains, their cosine similarity acting as the weight of the links.

With the standard PageRank algorithm, the similarity graph does not produce anything useful, but something magical happens when you apply Personalized PageRank to this graph. It turns into a very good "vibe"-sensitive ranking algorithm.

It's unclear if this is a well known result, but it's a very interesting one for creating a ranking algorithm that is focused on a particular segment of the web.

Central Classes

  • PageRankDomainRanker - Ranks domains using the PageRank or Personalized PageRank algorithm depending on whether a list of influence domains is provided.

Data sources

Note that the similarity graph needs to be precomputed and stored in the database for the similarity graph source to be available.

See Also

Useful Resources