2016-05-13 6 views
10

Как получить синтаксический анализ зависимости (не синтаксическое дерево), выводимый из SyntaxNet (https://github.com/tensorflow/models/tree/master/syntaxnet)? Я вижу описание анализа зависимостей ... описание того, как обучать модель, но не как получить результат анализа зависимости.Как получить результат анализа синтаксиса из SyntaxNet

Имеет ли SyntaxNet (в частности, модель Parsey McParseface) даже обработку зависимостей из коробки?

ответ

14

Передача --arg_prefix brain_parser на номер parser_eval.py должна выполняться трюком. Но для этого требуется, чтобы помеченный вывод подавался как вход.

Вот пример, где первый проход помечает слова и второй проход удовлетворял зависимости:

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 _  _ 
+8

Чтобы добавить к этому, если вы просто комментарий вне финальной строки bazel-bin/syntaxnet/conll2tree (и args) моделей/syntaxnet/syntaxnet/demo.sh вы получите этот результат автоматически. – user22490234

+0

У меня возникли проблемы с поиском подробного объяснения этого вывода. Что означают строки тире? Также какова цель строки чисел (не 1 - 10. Другая) – Kahless

+2

@Kahless: См. Http://ilk.uvt.nl/conll/#dataformat для определения полей. – Nirmal

Смежные вопросы