IndriDirichletSimilarity (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.search.similarities, class: IndriDirichletSimilarity

Package org.apache.lucene.search.similarities

# Class IndriDirichletSimilarity

java.lang.Object
org.apache.lucene.search.similarities.Similarity
org.apache.lucene.search.similarities.SimilarityBase
org.apache.lucene.search.similarities.LMSimilarity
org.apache.lucene.search.similarities.IndriDirichletSimilarity

public class IndriDirichletSimilarity extends LMSimilarity
Bayesian smoothing using Dirichlet priors as implemented in the Indri Search engine (http://www.lemurproject.org/indri.php). Indri Dirichelet Smoothing!

     tf_E + mu*P(t|D) P(t|E)= documentLength + documentMu
     mu*P(t|C) + tf_D where P(t|D)= doclen + mu

A larger value for mu, produces more smoothing. Smoothing is most important for short documents where the probabilities are more granular.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `IndriDirichletSimilarity.IndriCollectionModel`
  Models `p(w|C)` as the number of occurrences of the term in the collection, divided by the total number of tokens `+ 1`.

  ## Nested classes/interfaces inherited from class org.apache.lucene.search.similarities.LMSimilarity

  `LMSimilarity.CollectionModel, LMSimilarity.DefaultCollectionModel, LMSimilarity.LMStats`

  ## Nested classes/interfaces inherited from class org.apache.lucene.search.similarities.Similarity

  `Similarity.BulkSimScorer, Similarity.SimScorer`

- ## Field Summary

  ### Fields inherited from class org.apache.lucene.search.similarities.LMSimilarity

  `collectionModel`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IndriDirichletSimilarity()`
  Instantiates the similarity with the default μ value of 2000.
  `IndriDirichletSimilarity(float mu)`
  Instantiates the similarity with the provided μ parameter.
  `IndriDirichletSimilarity(LMSimilarity.CollectionModel collectionModel)`
  Instantiates the similarity with the default μ value of 2000.
  `IndriDirichletSimilarity(LMSimilarity.CollectionModel collectionModel, boolean discountOverlaps, float mu)`
  Instantiates the similarity with the provided parameters.
  `IndriDirichletSimilarity(LMSimilarity.CollectionModel collectionModel, float mu)`
  Instantiates the similarity with the provided μ parameter.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `explain(List<Explanation> subs, BasicStats stats, double freq, double docLen)`
  Subclasses should implement this method to explain the score.
  `float`
  `getMu()`
  Returns the μ parameter.
  `String`
  `getName()`
  Returns the name of the LM method.
  `protected double`
  `score(BasicStats stats, double freq, double docLen)`
  Scores the document `doc`.

  ### Methods inherited from class org.apache.lucene.search.similarities.LMSimilarity

  `fillBasicStats, newStats, toString`

  ### Methods inherited from class org.apache.lucene.search.similarities.SimilarityBase

  `explain, log2, scorer`

  ### Methods inherited from class org.apache.lucene.search.similarities.Similarity

  `computeNorm, getDiscountOverlaps`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### IndriDirichletSimilarity

    public IndriDirichletSimilarity(LMSimilarity.CollectionModel collectionModel, boolean discountOverlaps, float mu)
    Instantiates the similarity with the provided parameters.

  - ### IndriDirichletSimilarity

    public IndriDirichletSimilarity(LMSimilarity.CollectionModel collectionModel, float mu)
    Instantiates the similarity with the provided μ parameter.

  - ### IndriDirichletSimilarity

    public IndriDirichletSimilarity(float mu)
    Instantiates the similarity with the provided μ parameter.

  - ### IndriDirichletSimilarity

    public IndriDirichletSimilarity(LMSimilarity.CollectionModel collectionModel)
    Instantiates the similarity with the default μ value of 2000.

  - ### IndriDirichletSimilarity

    public IndriDirichletSimilarity()
    Instantiates the similarity with the default μ value of 2000.

- ## Method Details

  - ### score

    protected double score(BasicStats stats, double freq, double docLen)
    Description copied from class: `SimilarityBase`
    Scores the document `doc`.

    Subclasses must apply their scoring formula in this class.

    Specified by:
      `score` in class `SimilarityBase`
    Parameters:
      `stats` - the corpus level statistics.
      `freq` - the term frequency.
      `docLen` - the document length.
    Returns:
      the score.

  - ### explain

    protected void explain(List<Explanation> subs, BasicStats stats, double freq, double docLen)
    Description copied from class: `SimilarityBase`
    Subclasses should implement this method to explain the score. `expl` already contains the score, the name of the class and the doc id, as well as the term frequency and its explanation; subclasses can add additional clauses to explain details of their scoring formulae.

    The default implementation does nothing.

    Overrides:
      `explain` in class `LMSimilarity`
    Parameters:
      `subs` - the list of details of the explanation to extend
      `stats` - the corpus level statistics.
      `freq` - the term frequency.
      `docLen` - the document length.

  - ### getMu

    public float getMu()
    Returns the μ parameter.

  - ### getName

    public String getName()
    Description copied from class: `LMSimilarity`
    Returns the name of the LM method. The values of the parameters should be included as well.

    Used in `LMSimilarity.toString()`.

    Specified by:
      `getName` in class `LMSimilarity`