so I've written a tiny tool that (given a query) lists the top 1000 resulting documents ordered by their query score. Obviously, not all of them are relevant. As a user I and other people often do the following:
- Look at the scores
- Scroll down the list until you see "significant" loss in score.
For example the scores of the top docs are like this: 4.2, 3.9, 3.9, 3.85, ..., 3.7, 0.3, 0.3, 0.25, ... Often we could just say that all the documents until the 3.7 score are relevant, and all the remaining (starting wit 0.3) are not relevant. Given this list of scores this is even kind of obvious and luckily in our use case it just works fine.
Is there any state of the art algorithm to find such "gaps" / "losses" in a list of numbers (here scores)?
Following facts:
- Top documents are always relevant
- There is a point from which none (or almost none) document is relevant
- This point can be identified by the first gap in score