дерево, сгенерированное из nltk tree.fromString, не отображающее левую и правую скобки в продуктах - PullRequest
0 голосов
/ 28 сентября 2018
t = nltk.Tree.fromstring(
"""
(NP
  (( ()
  (NNP Fetchez)
  (NNP la)
  (NNP vache)
  (. .)
  () ))
  (NN wha)
  (. ?))
"""
)

t.productions()

Я получаю эти произведения в качестве вывода

[NP ->  NN .,
  -> ,
  ->  NNP NNP NNP . ,
  -> ,
 NNP -> 'Fetchez',
 NNP -> 'la',
 NNP -> 'vache',
 . -> '.',
  -> ,
 NN -> 'wha',
 . -> '?']

В этих производствах отсутствуют ( и ) в правой части

 -> ,
 ->  NNP NNP NNP . ,
 -> ,
 -> ,

Правильные производства будутбыть что-то вроде этого

 ( -> ,
 ( ->  NNP NNP NNP . ,
 ( -> ,
 ) -> ,

Что происходит и как это исправить или есть обходной путь?

1 Ответ

0 голосов
/ 28 сентября 2018

Интересно, что это работает при выполнении дерева из строки.Это на самом деле ошибка (не уверен, к чему принадлежит этот репозиторий, но он также описан здесь: https://github.com/emilmont/pyStatParser/issues/4). Я обычно обходил эту проблему, снимая любые (круглые) скобки перед анализом чего-либо с помощью синтаксического анализатора nltk, довольно утомительно(следовательно, если кто-то знает лучший способ обойти это / исправление, я также был бы рад услышать об этом:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...