0

Stanford NLP Parser を使用して POS タグ付きデータを解析しようとしています。私のデータはすでにタグ付けされ、トークン化されているため、このsetOptionFlags()方法を使用してパーサーに次のように通知しようとしています。

LexicalizedParser lp = LexicalizedParser.loadModel("edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz");
lp.setOptionFlags(new String[]{"-sentences", "newline", "-tokenized", "-tagSeparator", "_", "-tokenizerFactory", "edu.stanford.nlp.process.WhitespaceTokenizer", "-tokenizerMethod", "newCoreLabelTokenizerFactory"});

ただし、例外が発生し続けます。

Exception in thread "main" java.lang.IllegalArgumentException: Unknown option: -sentences

提供されているJavadocをオンラインで検索しましたが、これが例で行われている方法です。助けてください!

4

1 に答える 1

0

トークン化、タグ区切りなどのオプションは、パーサー sensu stricto のオプションではなく、DocumentPreprocessorのメイン メソッドでパーサーへの入力を構築するために使用されるのオプションですLexicalizedParser。実際のパーサーの場合、入力はトークンのリストであり、これらは解析されます。したがって、これらのオプションを でパーサー オプションとして指定することはできませんsetOptions()

LexicalizedParserトークンのリストがある場合は、このメソッド in :を使用してそれらをパーサーに直接入れることができますpublic Tree parse(List<? extends HasWord> lst)HasTagリスト内の項目が(aTaggedWordまたは a など) を実装し、CoreLabelnull 以外のタグを持っている場合、パーサーはそれを使用して文を解析します。

を使用してDocumentPreprocessor、トークン化されたタグ付き単語でテキストを分割する場合は、 を作成してDocumentPreprocessorから、 のようなメソッドを使用して (少し手動で申し訳ありませんが) 設定する必要がありますsetTagDelimiter(String s)

于 2013-10-23T00:18:46.760 に答える