从nltk tree.fromString生成的树在生产中不显示左括号和右括号

时间:2018-09-28 08:01:56

标签: nltk

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',
 . -> '?']

这些作品在rhs上缺少()

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

正确的作品应该是这样的

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

这是怎么回事,我该如何解决?还是有解决方法?

1 个答案:

答案 0 :(得分:0)

有趣的是,它在执行树fromstring时有效。这实际上是一个错误(不确定此存储库属于什么,但这里也进行了描述:https://github.com/emilmont/pyStatParser/issues/4)。我通常通过在使用nltk解析器进行解析之前将所有括号都消除来解决此问题,这非常乏味(因此,如果有人知道解决此问题的更好方法,我也很乐意听到:)