Skip to main content

PyTorch implementation of RQUGE score

Project description

RQUGE🤗: Reference-Free Metric for Evaluating Question Generation by Answering the Question

made-with-python arxiv PyPI version bert-scoreLicense: MIT Code style: black

We propose RQUGE, a Reference-free QUestion Generation Evaluation metric that can compute the quality of the candidate question without requiring the access to the reference question. Given the corresponding context and answer span, our metric calculates the acceptability score by applying a general question-answering module, followed by a span scorer. You can find more detail in the paper (ACL2023).

Contents

HuggingFace Evaluation 🤗

RQUGE score is available on Huggingface Evaluate. It can be used as:

from evaluate import load
rqugescore = load("alirezamsh/rquge")
generated_questions = ["how is the weather?"]
contexts = ["the weather is sunny"]
answers = ["sunny"]
results = rquge.compute(generated_questions=generated_questions, contexts=contexts, answers=answers)
print(results["mean_score"])
>>> [5.05]

The demo and further details are also available on here.

Installation

You should have the following packages:

  • transformers
  • pytorch
  • sentencepiece

Install from pypi with pip by

pip install rquge

Install latest unstable version from the master branch on Github by:

pip install git+https://github.com/alirezamshi/RQUGE

Install it from the source by:

git clone https://github.com/alirezamshi/RQUGE
cd RQUGE
pip install .

Note: you need to download the pre-trained model for the span scorer module (available on Huggingface🤗 alirezamsh/quip-512-mocha):

wget https://storage.googleapis.com/sfr-qafacteval-research/quip-512-mocha.tar.gz
tar -xzvf quip-512-mocha.tar.gz
rm quip-512-mocha.tar.gz

RQUGE Calculation

Python Function

The RQUGE class is provided in rquge_score/scorer.py. We also provide a python function in rquge_score_cli/scorer_cli.py to use different features of RQUGE metric.

Command Line Interface (CLI)

We provide a command line interface (CLI) of RQUGE, you can use it as follows:

rquge --input_type #MODE --sp_scorer_path #PATH_TO_SPAN_SCORER --qa_model_path #PATH_TO_QA_MODEL --context #CONTEXT_FILE --question #QUESTION --answer #ANSWER --output_path #OUTPUT

#MODE: The type of input (sample or offline). In the sample mode, "--context", "--question", and "--answer" commands contain string, while in offline mode, they contain path to files including contexts, corresponding questions and answers
#PATH_TO_SPAN_SCORER: path to the local checkpoint of span scorer model or "alirezamsh/quip-512-mocha"
#PATH_TO_QA_MODEL: name of QA model on Huggingface or local path 
#CONTEXT_FILE: a text file containing one context per line (directly in the input in "sample" mode)
#QUESTION_FILE: a text file containing one question per line (directly in the input in "sample" mode)
#ANSWER_FILE: a text file containing one answer per line (directly in the input in "sample" mode)
#OUTPUT: local path for saving RQUGE scores for each (context,question,answer) pair

Here is a sample score computation for the interactive mode

rquge --input_type sample --sp_scorer_path ckpt/quip-512-mocha --qa_model_path 'allenai/unifiedqa-v2-t5-large-1363200' --context "the weather is sunny" --question "how is the weather?" --answer sunny

Note: the rquge score is between 1 to 5.

Citation

If you use this code for your research, please cite the following work:

@misc{mohammadshahi2022rquge,
    title={RQUGE: Reference-Free Metric for Evaluating Question Generation by Answering the Question},
    author={Alireza Mohammadshahi and Thomas Scialom and Majid Yazdani and Pouya Yanki and Angela Fan and James Henderson and Marzieh Saeidi},
    year={2022},
    eprint={2211.01482},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}

Have a question not listed here? Open a GitHub Issue or send us an email.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rquge-0.3.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

rquge-0.3-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file rquge-0.3.tar.gz.

File metadata

  • Download URL: rquge-0.3.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for rquge-0.3.tar.gz
Algorithm Hash digest
SHA256 a08b90cedd3dadb0b6242ce41b0e4b605414a2c051e2cec59c212f18e278a8d5
MD5 b5095700c917797b14d24149ca388e16
BLAKE2b-256 69e850294bedf549f3d61d6d1ecedb259614ea5020088b95025a5a4946dc6ab6

See more details on using hashes here.

File details

Details for the file rquge-0.3-py3-none-any.whl.

File metadata

  • Download URL: rquge-0.3-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for rquge-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 24c41fb48bfb8263adbe575c030c1bfa622536f28fa9bd89cd170f9637255b71
MD5 baf1bb7fa5d3f4af0ae591a93aa5ad28
BLAKE2b-256 52efeda7d5db14e1df70da730fd8fc125142086cf085e41bc6dadfb5f80b2f86

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page