Я использую Stanford CoreNLP из терминала (Ubuntu), используя такие команды, как:
/path/to/corenlp/corenlp.sh -annotators tokenize,ssplit,pos,lemma,ner,parse -ssplit.eolonly true -file myfile.txt
Это работает, как и ожидалось, особенно опция eolonly
сзначение true
передается в аннотатор ssplit
.
Теперь я хотел бы, используя конвейер, передать более сложную опцию аннотатору parse
, чтобы указать формат вывода, как описанодля автономного синтаксического анализатора на https://nlp.stanford.edu/software/lex-parser.shtml, с помощью команды
java -mx200m edu.stanford.nlp.parser.lexparser.LexicalizedParser -retainTMPSubcategories -outputFormat "wordsAndTags,penn,typedDependencies"
.
Я пытался
corenlp.sh -annotators tokenize,ssplit,pos,lemma,ner,parse -ssplit.eolonly true -parse.flags "-retainTmpSubcategories -outputFormat wordsAndTags,penn,typedDependencies" -file myfile.txt
, ноЭто привело к ошибке
Exception in thread "main" java.lang.IllegalArgumentException: Unknown option: true
at edu.stanford.nlp.parser.lexparser.Options.setOption(Options.java:179)
Различные другие попытки с одинарными кавычками, экранирование кавычек, удаление тире, добавление true
к первому флагу и т. д. не работали.Используя конвейер, каков правильный синтаксис для передачи этих параметров из терминала?