2014-10-29 1 views
2

기본적으로 파싱 된 트리를 작업하고 비어있는 카테고리 (빈 노드 주석)를 지배하는 트리 노드에 주석을 추가하려고합니다.AttributeError : 'ParentedTree'객체에 'label'속성이 없습니다.

다음과 같이 recurvsive 함수를 정의했지만 "AttributeError : 'ParentedTree'객체에 '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-"); 
+0

이 코드에는 'ParentedTree'라는 객체가 없습니다 –

+0

혼란과 오자를 쓴 죄송합니다. 오타를 바로 잡았습니다. 어떻게하면 작동합니까? – Linguist

+0

줄 끝에 세미콜론이 필요하지 않습니다. 이것은 C/C++가 아닙니다. – IanAuld

답변

1

Google에서 NLTK를 사용하고 있다고 가정합니다.

ParentedTree에는 .label()이라는 메서드가 없습니다. 따라서 다음과 같은 것을 쓸 때 :

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

파이썬은 무엇을 해야할지 모릅니다. 한편,

Tree.label() 방법을 갖는다. 아마도 Tree 대신 ParentedTree를 사용하셨습니까?

+0

예. 나는 사용했다. – Linguist

관련 문제