SystemExit: ошибка 2 с Argparse для SRL (маркировка семантической роли)
У меня есть файл с именем srl.csv, и я пытаюсь применить SRL (маркировку семантических ролей с помощью allennlp) для предложений в этом CSV. Я попробовал тот же код с colab, но все равно имел ту же ошибку. Я был бы рад, если бы вы помогли мне заставить этот код работать.
Я использую jupyterlab через anaconda и использую следующий код:
import sys
import argparse
import json
import time
import nltk
import csv
import allennlp
from allennlp.predictors import Predictor
from allennlp.models.archival import load_archive
os.chdir("../sec_cleaning")
sents= "srl.csv"
def get_args():
"""Gets command line arguments
Returns:
args object with all the arguments as keys of the object
"""
p = argparse.ArgumentParser(description=
"""
Given an input CSV of lines from a collection, perform Semantic Role Labeling and write
the output in JSONL format.
"""
)
p.add_argument("--input","-i",
help="srl.csv",
#default="../output/sents/wiki_sample_sents.csv"
default="/srl.csv"
)
p.add_argument("--output", "-o",
help="out",
#default="../output/srl/wiki_sample_sents_srl.jsonl"
default="out.jsonl"
)
return p.parse_args()
if __name__ == '__main__':
if sys.version_info < (3, 0, 0):
sys.stderr.write("You need python 3.0 or later to run this script\n")
sys.exit(1)
start_time = time.time()
args = get_args()
infile = open(args.input, "r")
inreader = csv.reader(infile)
outfile = open(args.output, "w")
archive = load_archive("https://allennlp.s3.amazonaws.com/models/srl-model-2018.05.25.tar.gz",
weights_file=None)
model_type = archive.config.get("model").get("type")
if model_type != 'srl':
raise Exception('the given model is not for srl.')
predictor = Predictor.from_archive(archive, 'semantic-role-labeling')
print("SRL Model loaded.")
sent_count = 0
for row in inreader:
sent_count += 1
id = row[0]
i = row[1]
sent = row[2]
outobj = { "id": id, "i": i, "sentence": sent }
srl = predictor.predict(sent)
outobj["srl"] = srl
outfile.write(json.dumps(outobj)+"\n")
outfile.close()
print("SRL performed on {} sentences, output: {}".format(sent_count,args.output))
print("Total run time: {} seconds.".format(time.time() - start_time))
Ошибка, которую я получил;
usage: ipykernel_launcher.py [-h] [--input INPUT] [--output OUTPUT]
ipykernel_launcher.py: error: unrecognized arguments: -f /Users/hilal.pataci/Library/Jupyter/runtime/kernel-dc28fe77-b054-4301-a23c-255960b6265c.json
An exception has occurred, use %tb to see the full traceback.
SystemExit: 2