public int TermFrequency(TokenUrl tokenUrl) { int res = 0; Uris.TryGetValue(tokenUrl, out res); return(res); }
public double Weight(TokenUrl tokenUrl, int n) { // The weight is 0 if the url doesn't have the token if (!this.Uris.ContainsKey(tokenUrl)) { return(0); } return(LogTermFrequency(tokenUrl, 10) * InverseDocumentFrequency(n)); }
public double NormalisedWeight(TokenUrl tokenUrl, int n) { // The weight is 0 if the url doesn't have the token if (!this.Uris.ContainsKey(tokenUrl)) { return(0); } return(Weight(tokenUrl, n) / Math.Sqrt(SqrtFactor(tokenUrl))); }
public double LogTermFrequency(TokenUrl tokenUrl, double logbase) { return(1.0 + Math.Log(TermFrequency(tokenUrl), logbase)); }
public double SqrtFactor(TokenUrl tokenUrl) { var sum = tokenUrl.Tokens.Sum(x => Math.Pow(x.LogTermFrequency(tokenUrl, 2), 2)); return(sum); }