Spaces:
Runtime error
Runtime error
import argparse | |
import numpy as np | |
from questiongenerator import QuestionGenerator | |
from questiongenerator import print_qa | |
def main(): | |
parser = argparse.ArgumentParser() | |
parser.add_argument( | |
"--text_dir", | |
default=None, | |
type=str, | |
required=True, | |
help="The text that will be used as context for question generation.", | |
) | |
parser.add_argument( | |
"--model_dir", | |
default=None, | |
type=str, | |
help="The folder that the trained model checkpoints are in.", | |
) | |
parser.add_argument( | |
"--num_questions", | |
default=10, | |
type=int, | |
help="The desired number of questions to generate.", | |
) | |
parser.add_argument( | |
"--answer_style", | |
default="all", | |
type=str, | |
help="The desired type of answers. Choose from ['all', 'sentences', 'multiple_choice']", | |
) | |
parser.add_argument( | |
"--show_answers", | |
default='True', | |
type=parse_bool_string, | |
help="Whether or not you want the answers to be visible. Choose from ['True', 'False']", | |
) | |
parser.add_argument( | |
"--use_qa_eval", | |
default='True', | |
type=parse_bool_string, | |
help="Whether or not you want the generated questions to be filtered for quality. Choose from ['True', 'False']", | |
) | |
args = parser.parse_args() | |
with open(args.text_dir, 'r') as file: | |
text_file = file.read() | |
qg = QuestionGenerator(args.model_dir) | |
qa_list = qg.generate( | |
text_file, | |
num_questions=int(args.num_questions), | |
answer_style=args.answer_style, | |
use_evaluator=args.use_qa_eval | |
) | |
print_qa(qa_list, show_answers=args.show_answers) | |
# taken from https://stackoverflow.com/questions/15008758/parsing-boolean-values-with-argparse | |
def parse_bool_string(s): | |
if isinstance(s, bool): | |
return s | |
if s.lower() in ('yes', 'true', 't', 'y', '1'): | |
return True | |
elif s.lower() in ('no', 'false', 'f', 'n', '0'): | |
return False | |
else: | |
raise argparse.ArgumentTypeError('Boolean value expected.') | |
if __name__ == "__main__": | |
main() |