Ejemplo n.º 1
0
        public override sealed float Score(BasicStats stats, float tfn)
        {
            long N = stats.NumberOfDocuments;
            long n = stats.DocFreq;

            return(tfn * (float)(SimilarityBase.Log2((N + 1) / (n + 0.5))));
        }
Ejemplo n.º 2
0
        public override sealed float Score(BasicStats stats, float tfn)
        {
            long N = stats.NumberOfDocuments;
            long F = stats.TotalTermFreq;

            return(tfn * (float)(SimilarityBase.Log2(1 + (N + 1) / (F + 0.5))));
        }
Ejemplo n.º 3
0
        public override sealed float Score(BasicStats stats, float tfn)
        {
            // just like in BE, approximation only holds true when F << N, so we use lambda = F / (N + F)
            double F      = stats.TotalTermFreq + 1;
            double N      = stats.NumberOfDocuments;
            double lambda = F / (N + F);

            // -log(1 / (lambda + 1)) -> log(lambda + 1)
            return((float)(SimilarityBase.Log2(lambda + 1) + tfn * SimilarityBase.Log2((1 + lambda) / lambda)));
        }
Ejemplo n.º 4
0
 public override sealed float Tfn(BasicStats stats, float tf, float len)
 {
     return((float)(tf * SimilarityBase.Log2(1 + c * stats.AvgFieldLength / len)));
 }