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



0 ответов

Другие вопросы по тегам