Python nltk分块错误

时间:2018-08-24 12:32:53

标签: python-2.7 nltk chunking

我正在使用nltk解析文本的项目。我正在用分块语法器来定义我要查找的单词。具体来说,我想找出('alt','NNS')后面('not','RB')后面(通常是几句话)。它们之间可以找到的词可能相差很大,但是我希望有一个能够处理此问题的分块表达式。

我的代码(到目前为止)是:

sentences = nltk.word_tokenize(text)
for sent in sentences:
    sent_tok = nltk.pos_tag(sent.split())
    myGrammar = '''
            NotAlter:
            {<RB.?><NNS>}
            {<RB.?><PDT>}'''
    parser = nltk.RegexpParser(myGrammar)
    treelist = [tree.leaves() for tree in parser.parse(sent_tok).subtrees() if tree.label() == 'NotAlter']
    for elem in treelist:
        print str(elem)

以下是一些(较简单的)示例输入文本短语:

遵守本条第(8)(b)款的规定,不得对已废除的房屋进行任何结构或外部的更改或增加

未经房东事先书面同意,不得对房舍进行任何改动或增加

承租人不得对公寓内部进行改动

是否可以使用nltk来处理像这样的分块,还是我应该完全尝试其他事情?

0 个答案:

没有答案