Beispiel #1
0
    def processRelations(self):

        # create relations list
        self.fetchRelations()

        # resolve <actor> roles
        RoleResolver.resolveActorRoles(self.relations, self.sentences)

        # apply constraints and remove invalid roles
        self.applyConstraints()

        # debug
        # print '\n---------------------------------------------------'
        # self.printRelations()
        # print '---------------------------------------------------'

        # look over all relations
        for relation in self.relations:

            # check whether relation contains state/price information
            # what's the point?
            if relation.containsMainInformation():

                # first find agency
                # agency_role = relation.getSecondLevelRole('<actor_agency:1>')
                agency_roles = relation.getSecondLevelRoles('<actor_agency:1>')
                for agency_role in self.orderRoles(agency_roles):
                    self.findNamedEntityCoreferent(agency_role)

                    # ...then resolve stock role
                stock_roles = relation.getSecondLevelRoles('<actor_stock:1>')
                for stock_role in self.orderRoles(stock_roles):
                    self.findNamedEntityCoreferent(stock_role)