コード例 #1
0
        public override void onStartIteration()
        {
            var matrix = wRecord.context.targets.GetLinkMatrixRotated();

            if (matrix != null)
            {
                pageRank = new PageRank(matrix, alpha, convergence, checkSteps);

                double[]   dbl = pageRank.ComputePageRank();
                List <int> pri = new List <int>();
                foreach (double db in dbl)
                {
                    pri.Add(Convert.ToInt32(db * scoreUnit));
                }

                ranks = wRecord.context.targets.linkMatrix.MapToX(pri);
            }
        }
コード例 #2
0
        /// <summary>
        /// Prepares the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="log">The log.</param>
        public override void Prepare(DocumentSelectResult context, ILogBuilder log)
        {
            var byDomain = context.GetByDomain(log);

            foreach (var pair in byDomain)
            {
                WebSiteGraph webSiteGraph = context.domainNameToGraph[pair.Key];

                var matrix = webSiteGraph.GetIDMatrix(scoreUnit);
                p_matrix.Add(pair.Key, matrix);

                switch (algorithm)
                {
                case GraphFactorAlgorithm.HITS:
                    HITSRank hits = new HITSRank();
                    hits.recalculate(matrix, convergence, steps);
                    p_hits.Add(pair.Key, hits);
                    break;

                case GraphFactorAlgorithm.PageRank:



                    var pageRank = new PageRank(matrix.GetMatrix(), alpha, convergence, steps);

                    double[]     dbl = pageRank.ComputePageRank();
                    List <Int32> pri = new List <Int32>();
                    foreach (Double db in dbl)
                    {
                        pri.Add(Convert.ToInt32(db * scoreUnit));
                    }
                    var ranks = new Dictionary <String, Int32>();
                    ranks = matrix.MapToX(pri);

                    p_rank.Add(pair.Key, ranks);


                    break;
                }
            }
        }