В настоящее время нет способа заставить теги разбирать вещи так, чтобы они считались «слишком странными».Если он считает тег для слова невозможным, вы не можете сделать это возможным, но вы можете указать, что он должен использовать в диапазоне, который он считает возможным.Обычно этого достаточно.Здесь должно быть достаточно.Вот пример.Как вы заметили, это часто дает неверные указания без посторонней помощи (отчасти потому, что они плохо подтверждаются данными обучения. Они не всегда ошибаются, но обычно так и есть, и я выбрал 3, что он ошибается:
$ cat imper.txt
Use care when opening.
Brush your hair!
Shut the door.
$ java -cp stanford-parser.jar edu.stanford.nlp.parser.lexparser.LexicalizedParser englishPCFG.ser.gz imper.txt 2> /dev/null
(ROOT
(S
(NP (NNP Use))
(VP (VBP care)
(SBAR
(WHADVP (WRB when))
(S
(VP (VBG opening)))))
(. .)))
(ROOT
(NP
(NP (NNP Brush))
(NP (PRP$ your) (NN hair))
(. !)))
(ROOT
(NP
(NP (NNP Shut))
(NP (DT the) (NN door))
(. .)))
Но с токенами и частично помеченным текстом, подобным этому:
$ cat imper.tok
Use_VB care when opening .
Brush_VB your hair !
Shut_VB the door .
все исправлено:
$ java -cp stanford-parser.jar edu.stanford.nlp.parser.lexparser.LexicalizedParser -tokenized -tagSeparator _ englishPCFG.ser.gz imper.tok 2> /dev/null
(ROOT
(S
(VP (VB Use)
(NP (NN care))
(SBAR
(WHADVP (WRB when))
(S
(VP (VBG opening)))))
(. .)))
(ROOT
(S
(VP (VB Brush)
(NP (PRP$ your) (NN hair)))
(. !)))
(ROOT
(S
(VP (VB Shut)
(NP (DT the) (NN door)))
(. .)))
Но вы должны использовать правильные теги.Он не будет помечать «Использование» как VB. Это считается слишком странным. «Использование» в качестве глагола должно быть VBG. Это настоящая форма причастия, а не голый глагол, используемый в императивах.