public override spiderEvalRuleResult evaluate(spiderLink link) { spiderEvalRuleResult output = new spiderEvalRuleResult(this); output.score = 0; double coeficient = 0; linknodeElement node = wRecord.linkHierarchy.GetByOriginalPath(link.link.originalUrl); if (node == null) { return(output); } if (node.level == 0) { return(output); } if (rootScore > 0) { coeficient = ((double)node.score) / ((double)rootScore); output.score = Convert.ToInt32(coeficient * scoreUnit); } return(output); }
public override spiderEvalRuleResult evaluate(spiderLink link) { spiderEvalRuleResult output = new spiderEvalRuleResult(this); linknodeElement node = wRecord.linkHierarchy.GetByOriginalPath(link.url); if (node == null) { wRecord.log("Link not found in the hierarchy"); return(output); } if (node.level == 0) { return(output); } int range = (max - min); if (range > 0) { double coeficient = ((double)node.level) / range; output.score = Convert.ToInt32(penaltyUnit * coeficient); } return(output); }
/// <summary> /// Takes information from page - called before evaluation /// </summary> /// <param name="page">The page.</param> public override void learn(spiderLink link) { // linknodeElement node = wRecord.linkHierarchy.GetByOriginalPath(link.url); if (node == null) { wRecord.log("Link not found in the hierarchy"); return; } min = Math.Min(node.level, min); max = Math.Max(node.level, max); }
public override spiderEvalRuleResult evaluate(spiderLink link) { spiderEvalRuleResult result = new spiderEvalRuleResult(this); if (tree.Gd == null) { tree.buildGd(); } int max = tree.bestNode.score; linknodeElement linkNode = tree.Gd.sourceNodes[link.url]; double score = ((double)scoreUnit) * ((double)linkNode.score / ((double)max)); result.score = Convert.ToInt32(score); return(result); }
public override spiderEvalRuleResult evaluate(spiderLink link) { spiderEvalRuleResult result = new spiderEvalRuleResult(this); if (tree.Gd == null) { tree.buildGd(); } if (tree.Gd == null) { result.layer = layer3ID; return(result); } linknodeElement linkNode = tree.GetLinkNode(link.url); //.Gd.sourceNodes[link.url]; if (linkNode == null) { result.layer = layer3ID; return(result); } if (tree.bestNode == linkNode) { result.layer = layerID; } else if (tree.bestNode.items.Values.Contains(linkNode)) { result.layer = layerID; } else if (tree.bestNode.items.Values.Any(x => x.items.Values.Contains(linkNode))) { result.layer = layer2ID; } else { result.layer = layer3ID; } return(result); }
protected void rebuildGd() { Gd = new linknodeBuilder(); foreach (var pair in Gt.newpathNodes) { string path = pair.Key; int score = pair.Value.score; if (Gc.newpathNodes.Count() > 0) { if (Gc.newpathNodes.ContainsKey(path)) { score = score / Gc.newpathNodes[path].score; } } if (Gb.newpathNodes.ContainsKey(path)) { score = score + Gb.newpathNodes[path].score; } string opath = Gt.newpathNodes[path].originalPath; Gd.Add(opath, Gt.newpathNodes[path].meta, score); } int sc = int.MinValue; linknodeElement scBest = null; foreach (var nd in Gd.sourceNodeList) { if (nd.score > sc) { sc = nd.score; scBest = nd; } } bestNode = scBest; }