def get_all_tuples_of_relations(self): ''' Returns list of tuples of relations which connects 'self.concepts' sequence in the path. ''' relations_tuples = [] for index, (concept1, concept2) in enumerate(pairwise(self.concepts)): search = Search(start=concept1, end=concept2) data = search.search() result = Result(data) if result.get_num_found() > 0: edges = result.parse_all_edges() if index == 0: for e in edges: if not [e.rel] in relations_tuples: relations_tuples.append([e.rel]) else: for relation_tuple in relations_tuples: if len(relation_tuple) == index: for e in edges: relation_tuple_copy = copy.deepcopy( relation_tuple) relation_tuple_copy.append(e.rel) if not relation_tuple_copy in relations_tuples: relations_tuples.append( relation_tuple_copy) for relation_tuple in relations_tuples: if len(relation_tuple) != len(self.concepts) - 1: relations_tuples.remove(relation_tuple) return relations_tuples
def get_all_tuples_of_relations(self): ''' Returns list of tuples of relations which connects 'self.concepts' sequence in the path. ''' relations_tuples = [] for index, (concept1, concept2) in enumerate(pairwise(self.concepts)): search = Search(start=concept1, end=concept2) data = search.search() result = Result(data) if result.get_num_found() > 0: edges = result.parse_all_edges() if index == 0: for e in edges: if not [e.rel] in relations_tuples: relations_tuples.append([e.rel]) else: for relation_tuple in relations_tuples: if len(relation_tuple) == index: for e in edges: relation_tuple_copy = copy.deepcopy(relation_tuple) relation_tuple_copy.append(e.rel) if not relation_tuple_copy in relations_tuples: relations_tuples.append(relation_tuple_copy) for relation_tuple in relations_tuples: if len(relation_tuple) != len(self.concepts)-1: relations_tuples.remove(relation_tuple) return relations_tuples
def does_exist(self, print_where_breaks=False): ''' Checks whether this path exists in ConceptNet5. :param print_where_breaks: prints the assertion, if the assertion does not exist in the path. ''' for assertion in self.assertions: search = Search(start=assertion.start, rel=assertion.relation, end=assertion.end, limit=1000) data = search.search() result = Result(data) if result.get_num_found() == 0: if print_where_breaks == True: print('Assertion breaking the path: [ %s --> (%s) --> %s) ]' % ( assertion.start, assertion.relation, assertion.end)) return False return True
def does_exist(self, print_where_breaks=False): ''' Checks whether this path exists in ConceptNet5. :param print_where_breaks: prints the assertion, if the assertion does not exist in the path. ''' for assertion in self.assertions: search = Search(start=assertion.start, rel=assertion.relation, end=assertion.end, limit=1000) data = search.search() result = Result(data) if result.get_num_found() == 0: if print_where_breaks == True: print 'Assertion breaking the path: [ %s --> (%s) --> %s) ]' % ( assertion.start, assertion.relation, assertion.end) return False return True