rerank
rerank is a lightweight TypeScript library designed for combining multiple ranked lists into a single, improved rank list using various rank aggregation techniques. As of the current release, rerank supports the Reciprocal Rank Fusion (RRF) method, renowned for its effectiveness in information retrieval and ensemble learning contexts.
Features
- Reciprocal Rank Fusion (RRF): Combine multiple rank lists by assigning scores based on reciprocal ranks, effectively prioritizing higher-ranked items across all lists.
Installation
Install rerank using npm:
npm install rerank
Example Usage
import { reciprocalRankFusion } from "rerank";
interface ImageSearchResult {
url: string;
width: string;
height: string;
score: number
}
const rankedLists:ImageSearchResult[][] = await Promise.all([
searchIndex("imageEmbeddingIndex", "person riding skateboard"),
searchIndex("imageEmbeddingIndex", "person skating on the sidewalk"),
searchIndex("imageIndex", "skateboard trick")
]);
const rankedURLs = reciprocalRankFusion(rankedLists, "url");
const resultsMap = new Map<string, ImageSearchResult>();
rankedLists.flat().forEach((result) => {
resultsMap.set(result.url, result);
});
const sortedResults = Array.from(rankedUrls.keys()).map((url) => {
return resultsMap.get(url);
});