NLTK条款和短语故障

时间:2012-08-15 00:13:30

标签: nltk

有没有办法让NLTK返回完全用所有Treebank子句和Treebank短语分界标记的文本(或等效的;它不必是Treebank)?我需要能够返回两个条款和短语(单独)。我发现的唯一一件事是在第7章的NLTK Bird / Klein / Loper书中,它说你不能同时处理名词短语和动词短语,但我想要做的远不止这些!我认为Stanford POS解析器可以做到这一点,但客户端只想使用NLTK。感谢。

1 个答案:

答案 0 :(得分:1)

你看过第8章了吗?这听起来像你想要的东西:

>>> from nltk.corpus import treebank
>>> t = treebank.parsed_sents('wsj_0001.mrg')[0]
>>> print t
(S
  (NP-SBJ
    (NP (NNP Pierre) (NNP Vinken))
    (, ,)
    (ADJP (NP (CD 61) (NNS years)) (JJ old))
    (, ,))
  (VP
    (MD will)
    (VP
      (VB join)
      (NP (DT the) (NN board))
      (PP-CLR
        (IN as)
        (NP (DT a) (JJ nonexecutive) (NN director)))
      (NP-TMP (NNP Nov.) (CD 29))))
  (. .))

除了您已经找到的分块资源。但如果您的意思是要解析您提供的文本,还有以下选项:

>>> sr_parse = nltk.ShiftReduceParser(grammar1)
>>> sent = 'Mary saw a dog'.split()
>>> print sr_parse.parse(sent)
(S (NP Mary) (VP (V saw) (NP (Det a) (N dog))))

但这取决于事先手动填充grammar1。分块比分析更容易。