The purpose is to investigate the performance of the state of the art methods and the new methodologies proposed by participants compared to the manual annotation that is widely used in public databases.

In this problem, the data that are available to the participants consist of biomedical articles published in MEDLINE. Specifically, for each article in the training data, the participants will be provided its title and abstract as it appears in MEDLINE and the MESH labels assigned to it. In the testing phase of the challenge the data contain only the title, the abstract, the journal and the year of the corresponding article without any further information. The articles are provided in their raw format (plain text) as well as in a pre-processed one (bag of words with weights). 

## The training dataset for your consumption

The data set for your reference contains annotated articles from [PubMed at https://pubmed.ncbi.nlm.nih.gov](https://pubmed.ncbi.nlm.nih.gov), where `annotated` means that the `Medical Subject Headings` (`MeSH`) terms have been assigned to the articles by the human curators at PubMed. The training set contains exactly `100,000` articles covering `22,373` MeSH.

## Annotated Test set
The test set will consist of articles having similar format as the training set. The test set contains exactly `20,000` articles covering `16,247` MeSH. Please note, the articles in the test set do not introduce any new MeSH.

## Unannotated Judge set
The judge set will consist of articles having `almost` similar format as the test /training set, except the `meshMajor` keys are absent for each article. The judge set contains exactly `10,001` unannoated PubMed articles. You need to train your model to predict the `meshMajor` column of these `10,001` articles, and submit to get into the leaderboard.

## Tasks
The task is simple: 
>Automate the process of assigning the MeSH terms to articles from PubMed

The task can be broken down in to 3 sub-tasks:
1. Build a suitable machine learning model that would be able to perform this kind of multi-label classification. We expect that you use the provided `training dataset` for building your model.
2. Evaluate your best model on the provided `test dataset` in terms of `micro-F1` score.
3. Predict the MeSH labels for each of the article present in the `judge dataset` and save it as a csv file. Please see the `sample-submission.csv` file for the formatting requirement of your submission. 

> Please note, the `meshMajor` terms are not required to be ordered before saving into the csv file. I have customized the Kaggle evaluator to read terms in any order for an article. Also note that the `meshMajor` terms should be considered case sensitive.
