如何从SyntaxNet(https://github.com/tensorflow/models/tree/master/syntaxnet)获取依存句法分析(而不是句法树)输出?我看到了一些关于依存句法分析的描述…关于如何训练模型的描述,但没有关于如何获取依存句法分析输出的说明。
SyntaxNet(特别是Parsey McParseface模型)是否直接支持依存句法分析?
回答:
向parser_eval.py
传递--arg_prefix brain_parser
应该可以解决问题。但这需要将标记过的输出作为输入提供。
以下是一个示例,第一遍标记词语,第二遍解析依存关系:
echo 'The quick brown fox ran over the lazy dog.' | bazel-bin/syntaxnet/parser_eval \--input stdin \--output stdout-conll \--model syntaxnet/models/parsey_mcparseface/tagger-params \--task_context syntaxnet/models/parsey_mcparseface/context.pbtxt \--hidden_layer_sizes 64 \--arg_prefix brain_tagger \--graph_builder structured \--slim_model \--batch_size 1024 | bazel-bin/syntaxnet/parser_eval \--input stdin-conll \--output stdout-conll \--hidden_layer_sizes 512,512 \--arg_prefix brain_parser \--graph_builder structured \--task_context syntaxnet/models/parsey_mcparseface/context.pbtxt \--model_path syntaxnet/models/parsey_mcparseface/parser-params \--slim_model --batch_size 1024
这将生成以下输出:
1 The _ DET DT _ 4 det _ _2 quick _ ADJ JJ _ 4 amod _ _3 brown _ ADJ JJ _ 4 amod _ _4 fox _ NOUN NN _ 5 nsubj _ _5 ran _ VERB VBD _ 0 ROOT _ _6 over _ ADP IN _ 5 prep _ _7 the _ DET DT _ 9 det _ _8 lazy _ ADJ JJ _ 9 amod _ _9 dog _ NOUN NN _ 6 pobj _ _10 . _ . . _ 5 punct _ _