Esempio n. 1
0
def read_annotation_file(filename):
    """Loads a file annotated for co-references with brat."""
    annotations = Annotations(filename, read_only=True)
    entities = {entity.id: entity for entity in annotations.get_entities()
                if entity.type in ('Actor', 'Location')}
    relations = defaultdict(list)
    for relation in annotations.get_relations():
        relations[relation.arg1].append(relation.arg2)
    chains = resolve(relations, entities)
    actors, locations = [], []
    for chain in chains:
        chain = [(entity, entities[entity].tail.strip(),
                          entities[entity].get_start(),
                          entities[entity].get_end()) for entity in chain]
        entity_type = entities[chain[0][0]].type
        if entity_type == 'Actor':
            actors.append(chain)
        elif entity_type == 'Location':
            locations.append(chain)
    return actors, locations, entities