Adding MMR and Portfolio IR rank re-adjusting

Search result diversity re-ranking and evaluation - submission for the IRDM group project.
Group 22: Abhishek Aggarwal, Clive Austin, John Lyon

This is a submission of code for our group project of COMPGI15 Information Retrieval and Data Mining. We forked the original repository and added two features onto the Panda platform:

The -MMR or -Portfolio mode : These modes readjusts ranking. 
The -bMMR or -bPortfolio mode: These can run batch evaluation on MMR/Portfolio hyper-parameters.

See Panda Help (Panda.java)

Examples command line options:

Evaluation
-MMR 10 -m 2:  readjusts top 10 ranks using MMR algorithm on results retrieved using BM25 model (#2). Default value of lambda = 0.5  as found optimal. See report. This default can be changed.
-Portfolio 20 -m 2: readjusts top 20 ranks using Portfolio IR algorithm on results retrieved using BM25 model (#2). Default value of hyper-parameter b = -1 as optimal. See report. This default value can be changed.

Batch Evaluation
-bPIR 10:-4:0.5:4 -m 2:  readjusts top 10 documents using Portfolio IR, with underlying model as BM25 in 
                                      batch mode. That is, for the hyper parameter (b) taking value from -4 to +4 with  
                                      increments of 0.5

-bMMR 30:0:0.1:1 -m 2:  readjusts top 30 documents using MMR, with underlying model as BM25 in batch mode. That is, for the hyper parameter (lambda) taking value from 0 to 1 with increments of 0.1

The implementation is well commented as well as the results and methodology documented in the report submitted. For any questions, please email - abhishek.aggarwal.13@ucl.ac.uk