public class LMJelinekMercerSimilarity extends LMSimilarity
The model has a single parameter, λ. According to said paper, the
optimal value depends on both the collection and the query. The optimal value
is around 0.1
for title queries and 0.7
for long queries.
Values should be between 0 (exclusive) and 1 (inclusive). Values near zero act score more like a conjunction (coordinate level matching), whereas values near 1 behave the opposite (more like pure disjunction).
LMSimilarity.CollectionModel, LMSimilarity.DefaultCollectionModel, LMSimilarity.LMStats
Similarity.SimScorer
collectionModel
discountOverlaps
Constructor and Description |
---|
LMJelinekMercerSimilarity(float lambda)
Instantiates with the specified λ parameter.
|
LMJelinekMercerSimilarity(LMSimilarity.CollectionModel collectionModel,
float lambda)
Instantiates with the specified collectionModel and λ parameter.
|
Modifier and Type | Method and Description |
---|---|
protected Explanation |
explain(BasicStats stats,
Explanation freq,
double docLen)
Explains the score.
|
protected void |
explain(List<Explanation> subs,
BasicStats stats,
double freq,
double docLen)
Subclasses should implement this method to explain the score.
|
float |
getLambda()
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 . |
fillBasicStats, newStats, toString
computeNorm, getDiscountOverlaps, log2, scorer, setDiscountOverlaps
public LMJelinekMercerSimilarity(LMSimilarity.CollectionModel collectionModel, float lambda)
public LMJelinekMercerSimilarity(float lambda)
protected double score(BasicStats stats, double freq, double docLen)
SimilarityBase
doc
.
Subclasses must apply their scoring formula in this class.
score
in class SimilarityBase
stats
- the corpus level statistics.freq
- the term frequency.docLen
- the document length.protected void explain(List<Explanation> subs, BasicStats stats, double freq, double docLen)
SimilarityBase
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.
explain
in class LMSimilarity
subs
- the list of details of the explanation to extendstats
- the corpus level statistics.freq
- the term frequency.docLen
- the document length.protected Explanation explain(BasicStats stats, Explanation freq, double docLen)
SimilarityBase
SimilarityBase.score(BasicStats, double, double)
method) and the explanation for the term frequency. Subclasses content with
this format may add additional details in
SimilarityBase.explain(List, BasicStats, double, double)
.explain
in class SimilarityBase
stats
- the corpus level statistics.freq
- the term frequency and its explanation.docLen
- the document length.public float getLambda()
public String getName()
LMSimilarity
Used in LMSimilarity.toString()
getName
in class LMSimilarity
Copyright © 2000-2019 Apache Software Foundation. All Rights Reserved.