예제 #1
0
    def __hit_endpoint(self, question, chunks):
        id = question
        input = {'nlquery': question}
        if chunks is not None and isinstance(chunks, list) and len(chunks) > 0:
            input['chunks'] = chunks
            id += "".join(chunks)

        if id not in self.cache or not self.use_cache:
            self.cache[id] = Utils.call_web_api(self.endpoint, input)
            self.__save_cache()
        return self.cache[id]
예제 #2
0
    def do(self, qapair, force_gold=False, top=5):
        entities = []
        relations = []
        for u in set(qapair.sparql.uris):
            question = qapair.question.text
            mentions = Utils.find_mentions(question, [u])
            surface = ""
            if len(mentions) > 0:
                surface = question[mentions[0]["start"]:mentions[0]["end"]]

            linked_item = LinkedItem(surface, [u])
            if u.is_entity():
                entities.append(linked_item)
            if u.is_ontology():
                relations.append(linked_item)

        return entities, relations