def getAgencies(self, relation): agencies = [] agencies_phrases = relation.getSecondLevelRoles('<actor_agency:1>') # collect all agency phrases from given relation for candidate in agencies_phrases: if candidate.coreferent != None and Utils.isNamedEntity(candidate.coreferent) and not candidate.coreferent in agencies_phrases: # get named entities from given phrase for entity_str in Utils.getNamedEntities(candidate.coreferent): # is it relevant agency string? Dfens against bugs and wrong parses if RoleResolver.isRelevantAgencyEntity(entity_str) and not entity_str.replace('_', ' ') in agencies: agencies.append(entity_str.replace('_', ' ')) return agencies