Search code examples
pythontreenlpnltkcorpus

AttributeError: 'ParentedTree' object has no attribute 'label'


I am basically working on parsed tree and trying to annotate tree nodes dominating empty categories(Empty node annotation).

I have defined a recurvsive function as below but the error that I am getting is "AttributeError: 'ParentedTree' object has no attribute 'label'".

def annotateTraceNodes(node):
numChildren = len(node);
numNone=0;

    for child in node:
        if isinstance(child,Tree):
            annotateTraceNodes(child);
            if(numChildren==0 or child.label().endswith("-NONE-")):
            numNone+=1;            
    if(numChildren==numNone):
        print "setting the label";
        node.set_label(node.label()+"-NONE-");

Solution

  • Google suggests you're using NLTK, which I'm going to assume is the case.

    A ParentedTree does not have a method called .label(). So when you write things like this:

    child.label().endswith("-NONE-")
    

    Python doesn't know what to do.

    A Tree, on the other hand, does have a .label() method. Did you perhaps use a ParentedTree instead of a Tree somewhere?