Learning to Rank
- My main goal of this project was to make letor officially releasable and write extensive tests and documentation which I successfully completed.
- My work involved adding PIMPL implementation of feature class and modified the api design to make some optimizations regarding sharing the Feature::Internal object among all the features in the featurelist object so that maps related to statistics do not get copied for every feature.
- Wrote xapianletor-config script and related macros.
- Fixed bugs in colltfcolllenfeature.cc.
- Fixed parse_query method and score method in ranker.cc.
- Tested xapian-letor through xapian-evaluation code and fixed bugs in xapian-evaluation and compare the performance of letor with other weighting schemes and also among different rankers.
- Fixed various bugs in ranker API.
- Fixed the implementation of rankers and indexing errors in ranker API and xapian-evaluation code.
- Added Xavier initialization and bias term.
- Wrote python3 bindings for xapian-letor.
Link of all the PRs https://github.com/xapian/xapian/pulls?q=is%3Apr+author%3AVaibhavKansagara+is%3Aclosed
Link of all the merged commits https://github.com/xapian/xapian/commits/master/?author=VaibhavKansagara
Work in Progress
PR 270 and 278 are work in progress. PR 270 adds python3 bindings along with python3 examples. PR 278 fixes the implementation of rankers.
- Investigate research papers which might help in improving the performance of letor against BM25+ weighting scheme.
- Write bindings for languages other than python3.