Как использовать синтаксический вывод
Я начал играть с Syntaxnet два дня назад, и мне интересно, как использовать / экспортировать вывод (дерево ASCII или Conll) в формате, который легко анализировать (например: Json, XML, Python Graph).
Спасибо за вашу помощь!
3 ответа
Прежде чем перейти к дереву ascii (я думаю, что вы следуете demo.sh), ввод проходит разметку и анализ. Удалите последний шаг в командном конвейере.
Ваш модифицированный файл demo.sh будет выглядеть так:
PARSER_EVAL=bazel-bin/syntaxnet/parser_eval
MODEL_DIR=syntaxnet/models/parsey_mcparseface
[[ "$1" == "--conll" ]] && INPUT_FORMAT=stdin-conll || INPUT_FORMAT=stdin
$PARSER_EVAL \
--input=$INPUT_FORMAT \
--output=stdout-conll \
--hidden_layer_sizes=64 \
--arg_prefix=brain_tagger \
--graph_builder=structured \
--task_context=$MODEL_DIR/context.pbtxt \
--model_path=$MODEL_DIR/tagger-params \
--slim_model \
--batch_size=1024 \
--alsologtostderr \
| \
$PARSER_EVAL \
--input=stdin-conll \
--output=stdout-conll \
--hidden_layer_sizes=512,512 \
--arg_prefix=brain_parser \
--graph_builder=structured \
--task_context=$MODEL_DIR/context.pbtxt \
--model_path=$MODEL_DIR/parser-params \
--slim_model \
--batch_size=1024 \
--alsologtostderr \
Затем вы можете запустить:-
$ echo 'Bob brought the pizza to Alice.' | syntaxnet/demo.sh 1>sample.txt 2>dev/null
Ваш результат будет сохранен в sample.txt, и он будет выглядеть так:
1 Bob _ NOUN NNP _ 2 nsubj _ _
2 brought _ VERB VBD _ 0 ROOT _ _
3 the _ DET DT _ 4 det _ _
4 pizza _ NOUN NN _ 2 dobj _ _
5 to _ ADP IN _ 2 prep _ _
6 Alice _ NOUN NNP _ 5 pobj _ _
7 . _ . . _ 2 punct _ _
Отсюда вы можете легко получить информацию о заголовке каждого слова, частях речи и типе узла, разделив данные с помощью \n
Дерево ASCII само по себе строится с использованием выше.
Я написал сообщение в блоге, объясняющее, как получить выходные данные SyntaxNet для любого данного языка в Python, в частности в NLTK, и использовать его в классах Dependency Graph и Tree.
Вы можете проверить это здесь: http://www.davidsbatista.net/blog/2017/03/25/syntaxnet/
Я пришел сюда в поисках легенды для выходных частей речи. Он был передан в удаленном ответе, который другие пользователи могут не видеть.
Части речевых аббревиатур, кажется, совпадают с Пеннскими частями речевых тегов для моих предложений. Цитируя эту таблицу здесь в случае, если страница закрывается или изменяется:
- Координационное соединение СС
- CD Кардинальный номер
- DT определитель
- EX Existential там
- FW Иностранное слово
- Предлог или подчиненное соединение
- JJ Прилагательное
- JJR прилагательное, сравнительный
- JJS Прилагательное, превосходный
- Маркер элемента списка LS
- МД Модал
- NN Существительное, единственное или массовое
- NNS Существительное, множественное число
- NNP имя собственное, единственное число
- NNPS Собственное существительное, множественное число
- Предопределитель ФДТ
- POS притяжательное окончание
- PRP Личное местоимение
- PRP$ Притяжательное местоимение
- РБ Адверб
- RBR Adverb, сравнительный
- RBS Adverb, превосходная степень
- RP Particle
- SYM Symbol
- К
- UH Interjection
- VB Глагол, базовая форма
- Глагол VBD, прошедшее время
- VBG Глагол, герунд или настоящее причастие
- Глагол VBN, причастие прошедшего времени
- VBP Глагол, не от третьего лица
- VBZ Глагол, 3-й человек единственное настоящее
- WDT Wh-определитель
- WP Wh-местоимение
- WP$ Притяжательное wh-местоимение
- WRB Wh-наречие