我试图弄清楚如何使用NLTK的级联chunker,如Chapter 7 of the NLTK book。不幸的是,在执行非琐碎的分块度量时,我遇到了一些问题。在
让我们从这个短语开始:
"adventure movies between 2000 and 2015 featuring performances by daniel craig"
当我使用以下语法时,我能够找到所有相关的NPs:
grammar = "NP: {<DT>?<JJ>*<NN.*>+}"
但是,我不知道如何用NLTK构建嵌套结构。这本书给出了以下格式,但显然有几点遗漏(例如,一个人实际上如何指定多个规则?)公司名称:
grammar = r"""
NP: {<DT|JJ|NN.*>+} # Chunk sequences of DT, JJ, NN
PP: {<IN><NP>} # Chunk prepositions followed by NP
VP: {<VB.*><NP|PP|CLAUSE>+$} # Chunk verbs and their arguments
CLAUSE: {<NP><VP>} # Chunk NP, VP
"""
就我而言,我想做如下几点:
^{pr2}$假设我想为我的任务使用级联分块器,我需要使用什么语法?另外,在使用chunker时,我是否可以指定特定的词(例如“directed”或“acted”)?在
我不能对关系提取部分发表评论,尤其是因为你没有详细说明你想做什么以及你拥有什么样的数据。所以这是一个相当片面的答案。在
正如我在NLTK书中对"Building nested structure with cascaded chunkers"部分的理解,您可以将其与上下文无关的语法一起使用,但是您必须反复应用它来获得递归结构。chunker是平坦的,但是可以在chunks上添加chunk。在
我真的说不出来,不管怎样,正如我说的,你没有给出任何细节;但是如果你在处理真实的文本,我的理解是,手工编写的规则集对于任何任何任务都是无用的,除非你有一个庞大的团队和大量的时间。看看NLTK附带的概率工具。如果你有一个带注释的训练语料库,这会容易得多。在
不管怎样,还有几条关于RegexpParser的注释。在
您将在http://www.nltk.org/howto/chunk.html上找到更多的使用示例。(不幸的是,这不是一个真正的操作指南,而是一个测试套件。)
根据this,可以指定多个展开规则,如下所示:
我应该补充一点,语法可以有多个规则,并且具有相同的左侧。这样可以增加分组相关规则等的灵活性。
相关问题 更多 >
编程相关推荐