readme: # Gupshup
  GupShup: Summarizing Open-Domain Code-Switched Conversations EMNLP 2021
  Paper: [https://aclanthology.org/2021.emnlp-main.499.pdf](https://aclanthology.org/2021.emnlp-main.499.pdf)
  Github: [https://github.com/midas-research/gupshup](https://github.com/midas-research/gupshup)
  
  ### Dataset
  Please request for the Gupshup data using [this Google form](https://docs.google.com/forms/d/1zvUk7WcldVF3RCoHdWzQPzPprtSJClrnHoIOYbzaJEI/edit?ts=61381ec0). 
  
  Dataset is available for `Hinglish Dilaogues to English Summarization`(h2e) and  `English Dialogues to English Summarization`(e2e). For each task, Dialogues/conversastion have `.source`(train.source) as file extension whereas Summary has `.target`(train.target) file extension. ".source" file need to be provided to `input_path` and ".target" file to `reference_path` argument in the scripts.
  
  
  ## Models
  All model weights are available on the Huggingface model hub.  Users can either directly download these weights in their local and provide this path to `model_name` argument in the scripts or use the provided alias (to `model_name` argument) in scripts directly; this will lead to download weights automatically by scripts. 
  
  Model names were aliased in "gupshup_TASK_MODEL" sense, where "TASK" can be h2e,e2e and MODEL can be mbart, pegasus, etc., as listed below.
  
  **1. Hinglish Dialogues to English Summary (h2e)**
  
  | Model   | Huggingface Alias                                                             |
  |---------|-------------------------------------------------------------------------------|
  | mBART   | [midas/gupshup_h2e_mbart](https://huggingface.co/midas/gupshup_h2e_mbart)     |
  | PEGASUS | [midas/gupshup_h2e_pegasus](https://huggingface.co/midas/gupshup_h2e_pegasus) |
  | T5 MTL  | [midas/gupshup_h2e_t5_mtl](https://huggingface.co/midas/gupshup_h2e_t5_mtl)   |
  | T5      | [midas/gupshup_h2e_t5](https://huggingface.co/midas/gupshup_h2e_t5)           |
  | BART    | [midas/gupshup_h2e_bart](https://huggingface.co/midas/gupshup_h2e_bart)       |
  | GPT-2   | [midas/gupshup_h2e_gpt](https://huggingface.co/midas/gupshup_h2e_gpt)         |
  
  
  **2. English Dialogues to English Summary (e2e)**
  
  | Model   | Huggingface Alias                                                             |
  |---------|-------------------------------------------------------------------------------|
  | mBART   | [midas/gupshup_e2e_mbart](https://huggingface.co/midas/gupshup_e2e_mbart)     |
  | PEGASUS | [midas/gupshup_e2e_pegasus](https://huggingface.co/midas/gupshup_e2e_pegasus) |
  | T5 MTL  | [midas/gupshup_e2e_t5_mtl](https://huggingface.co/midas/gupshup_e2e_t5_mtl)   |
  | T5      | [midas/gupshup_e2e_t5](https://huggingface.co/midas/gupshup_e2e_t5)           |
  | BART    | [midas/gupshup_e2e_bart](https://huggingface.co/midas/gupshup_e2e_bart)       |
  | GPT-2   | [midas/gupshup_e2e_gpt](https://huggingface.co/midas/gupshup_e2e_gpt)         |
  
  ## Inference
  
  ### Using command line
  1. Clone this repo and create a python virtual environment (https://docs.python.org/3/library/venv.html). Install the required packages using
  ```
  git clone https://github.com/midas-research/gupshup.git
  pip install -r requirements.txt
  ```
  
  2. run_eval script has the following arguments.
  *   **model_name** : Path or alias to one of our models available on Huggingface as listed above.
  *   **input_path** : Source file or path to file containing conversations, which will be summarized. 
  *   **save_path** : File path where to save summaries generated by the model.
  *   **reference_path** : Target file or path to file containing summaries, used to calculate matrices.
  *  **score_path** : File path where to save scores.
  *   **bs** : Batch size
  *   **device**: Cuda devices to use.
  
  Please make sure you have downloaded the Gupshup dataset using the above google form and provide the correct path to these files in the argument's `input_path` and `refrence_path.` Or you can simply put `test.source` and `test.target` in `data/h2e/`(hinglish to english) or `data/e2e/`(english to english) folder. For example, to generate English summaries from Hinglish dialogues using the mbart model, run the following command
  
  ```
  python run_eval.py \
      --model_name midas/gupshup_h2e_mbart \
      --input_path  data/h2e/test.source \
      --save_path generated_summary.txt \
      --reference_path data/h2e/test.target \
      --score_path scores.txt \
      --bs 8
  
  ```
  
  Another example, to generate English summaries from English dialogues using the Pegasus model
  ```
  python run_eval.py \
      --model_name midas/gupshup_e2e_pegasus \
      --input_path  data/e2e/test.source \
      --save_path generated_summary.txt \
      --reference_path data/e2e/test.target \
      --score_path scores.txt \
      --bs 8
  
  ```
  
  
  Please create an issue if you are facing any difficulties in replicating the results. 
  
  ### References
  
  Please cite [[1]](https://arxiv.org/abs/1910.04073) if you found the resources in this repository useful.
  
  
  [1] Mehnaz, Laiba, Debanjan Mahata, Rakesh Gosangi, Um