This repository contains the code,data and models of the paper titled "Mukhyansh: A Headline Generation Dataset for Indic Languages" published in the 37th Pacific Asia Conference on Language, Information and Computation (PACLIC-2023)
Disclaimer: You must agree to the license and terms of use before using the dataset.
Please click here to download the language-wise datasets.
We are releasing the Mukhyansh, an extensive multilingual dataset, tailored for Indian language headline generation. Comprising an impressive collection of over 3.39 million article-headline pairs, Mukhyansh spans across eight prominent Indian languages, namely Telugu, Tamil, Kannada, Malayalam, Hindi, Bengali, Marathi, and Gujarati.
All dataset files are in .jsonl
format i.e. one JSON per line. Here is an example from Telugu
dataset.
{"id": 263,
"url": "https://www.ap7am.com/flash-news-682791/modi-coronavirus-cases-in-india",
"text": "ప్రధాన మంత్రి నరేంద్ర మోదీ మన్ కీ బాత్లో ప్రజలతో మాట్లాడుతున్నారు. కరోనాపై పోరులో భాగంగా లాక్డౌన్ వంటి అసాధారణ నిర్ణయాలు తీసుకోవాల్సి వస్తోందని, ప్రజలు ఇబ్బందులు ఎదుర్కొంటున్నారని, తనను క్షమించాలని వ్యాఖ్యానించారు. తనపై కొందరు ఆగ్రహంతో ఉన్నారని తనకు తెలుసని అన్నారు. అయినప్పటికీ, కరోనా వ్యాప్తిని అరికట్టడానికి ఈ కఠిన చర్యలు తీసుకోకతప్పదని చెప్పారు.\nముఖ్యంగా పేద ప్రజలు ఇబ్బందులు ఎదుర్కొంటున్నారని మోదీ గుర్తు చేశారు. ప్రస్తుతం మనం ఎదుర్కొంటున్నది జీవన్మరణ సమస్య అయినందువల్లే కఠిన నిర్ణయం తీసుకున్నామని చెప్పారు. వైరస్ వ్యాప్తి ప్రారంభమైన రోజుల్లో చర్యలు తీసుకుంటేనే కరోనాను తొలగించవచ్చని అన్నారు. వైరస్ వ్యాప్తిని అరికట్టాలంటే దేశ ప్రజలు కొన్ని రోజులు లక్ష్మణ రేఖ దాటొద్దని వ్యాఖ్యానించారు.",
"title": "ప్రజలు నన్ను క్షమించండి: 'మన్ కీ బాత్'లో ప్రధాని మోదీ",
"category": "state"}
Train-Dev-Test splits counts of each language:
Language | ISO 639-1 Code | Train | Dev | Test | Total |
---|---|---|---|---|---|
Telugu | te | 825,372 | 82,571 | 9,179 | 917,122 |
Tamil | ta | 298,543 | 26,539 | 6,626 | 331,708 |
Kannada | kn | 304,122 | 27,044 | 6,757 | 337,923 |
Malayalam | ml | 283,555 | 25,190 | 6,327 | 315,072 |
Hindi | hi | 540,568 | 48,042 | 12,013 | 600,623 |
Bengali | bn | 253,139 | 22,514 | 5,620 | 281,273 |
Marathi | mr | 301,001 | 26,751 | 6,690 | 334,442 |
Gujarati | gu | 248,367 | 22,073 | 5,518 | 275,958 |
Category wise statistics of Mukhyansh:
News Category | te | ta | kn | ml | hi | bn | mr | gu |
---|---|---|---|---|---|---|---|---|
state | 698,059 | 133,599 | 163,857 | 144,491 | - | 143,804 | 184,045 | 123,183 |
national | 91,787 | 80,711 | 61,170 | 92,833 | 314,528 | 42,913 | 72,182 | 53,248 |
entertainment | 59,244 | 31,265 | 22,697 | 14,939 | 80,202 | 31,470 | 2,819 | 19,710 |
international | 24,262 | 29,463 | 26,092 | 34,008 | 29,668 | 20,552 | 15,347 | 37,682 |
sports | 19,933 | 29,186 | 18,775 | 10,204 | 78,190 | 30,676 | 29,947 | 19,337 |
business | 13,495 | 12,874 | 8,747 | 3,446 | 60,524 | 775 | 10,379 | 21,884 |
crime | 8,917 | 6,656 | 7,541 | 7,064 | 8,052 | - | 16,489 | - |
covid | 1,425 | 6,470 | 14,147 | 4,348 | - | 4,205 | - | - |
politics | - | 4,484 | 5,816 | 843 | 29,459 | 346 | 3,234 | - |
other | - | - | 9,081 | 2,896 | - | 6,532 | - | 914 |
To use this code, you need to have Python 3.7.11 installed. You can install the required Python packages using pip:
pip3 install -r requirements.txt
We used huggingface transformers of version 4.25.0. Please click here to download the language-wise model-checkpoints.
To fine-tune the mT5-small model, run the following command:
python3 run_summarization.py \
--model_name_or_path google/mt5-small \
--do_train True \
--do_eval True \
--do_predict True \
--source_prefix "summarize: " \
--train_file <path to the '.jsonl' or '.csv' file> \
--validation_file <path to the '.jsonl' or '.csv' file> \
--test_file <path to the '.jsonl' or '.csv' file> \
--max_target_length <Specify the maximum target sequence length> \
--output_dir <path to the output directory> \
--per_device_train_batch_size=4 \
--per_device_eval_batch_size=4 \
--num_train_epochs 10 \
--logging_strategy "epoch" \
--save_strategy "epoch" \
--evaluation_strategy "epoch" \
--overwrite_output_dir True \
--predict_with_generate $@ 2>&1>./hg_mt5_log.txt
To fine-tune the IndicBARTSS model, run the following command:
python3 run_summarization.py \
--model_name_or_path ai4bharat/IndicBARTSS \
--do_train True \
--do_eval True \
--do_predict True \
--source_prefix "summarize: " \
--lang_id '<2te>' \
--train_file <path to the '.jsonl' or '.csv' file> \
--validation_file <path to the '.jsonl' or '.csv' file> \
--test_file <path to the '.jsonl' or '.csv' file> \
--max_target_length <Specify the maximum target sequence length> \
--output_dir <path to the output directory> \
--per_device_train_batch_size=4 \
--per_device_eval_batch_size=4 \
--num_train_epochs 10 \
--logging_strategy "epoch" \
--save_strategy "epoch" \
--evaluation_strategy "epoch" \
--overwrite_output_dir True \
--predict_with_generate $@ 2>&1>./hg_ssib_log.txt
Note: For fine-tuning IndicBARTSS model, you should include --lang_id
argument in the above command. For example, if you are doing it for Telugu language the lang_id
will be <2te>
. Here is the list of language id's: <2te>
,<2ta>
,<2kn>
,<2ml>
,<2hi>
,<2bn>
,<2mr>
,<2gu>
.
ROUGE-L scores of various baseline models of Mukhyansh for each language. We use the Multilingual ROUGE metric from xl-sum.
Language | FastText+LSTM | FastText+GRU | BPEmb+GRU | mT5-small | IndicBARTSS |
---|---|---|---|---|---|
te | 32.02 | 32.70 | 29.31 | 38.35 | 37.33 |
ta | 32.20 | 31.26 | 32.04 | 41.18 | 41.16 |
kn | 25.25 | 22.84 | 23.60 | 33.34 | 32.59 |
ml | 28.17 | 23.44 | 25.36 | 34.63 | 32.04 |
hi | 29.50 | 28.45 | 28.94 | 33.65 | 36.18 |
bn | 17.47 | 14.90 | 9.84 | 21.56 | 22.04 |
mr | 16.83 | 14.04 | 17.54 | 26.41 | 27.08 |
gu | 14.84 | 9.48 | 14.94 | 20.43 | 23.05 |
Avg | 24.54 | 22.14 | 22.70 | 31.19 | 31.43 |
Hyper-parameters:
Parameters | Seq-Seq(FastText) | Seq-Seq(BPEmb) | mT5-small | IndicBARTSS |
---|---|---|---|---|
Max Source Length | 200 | 300 | 1024 | 1024 |
Max Target Length | 20 | 30 | 30 | 30 |
Vocabulary Size | 40000 | 40000 | 250112 | 64000 |
Beam Width | 5 | 5 | 4 | 4 |
Batch Size | 16 | 16 | 16 | 16 |
Optimizer | Adam | Adam | Adam | Adam |
Learning Rate | 1e-4 | 1e-4 | 5e-5 | 5e-5 |
(GPU, CPU) | (1,10) | (1,10) | (4,40) | (4,40) |
Contents of this repository are restricted to only non-commercial research purposes under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0). Copyright of the dataset contents belongs to the original copyright holders.
If you use any of the datasets, models or code modules, please cite the following paper:
@inproceedings{madasu2023mukhyansh,
title={Mukhyansh: A Headline Generation Dataset for Indic Languages},
author={Madasu, Lokesh and Kanumolu, Gopichand and Surange, Nirmal and Shrivastava, Manish},
booktitle={Proceedings of the 37th Pacific Asia Conference on Language, Information and Computation},
pages={620--634},
year={2023}
}