Exemplo n.º 1
0
 def __init__(self, freebase_graph_name_entity_file,
              freebase_graph_alias_entity_file,
              graphquestions_train_friendlyname_entity_file,
              clueweb_mention_pro_entity_file):
     self.freebase_graph_name_entity = read_dict(
         freebase_graph_name_entity_file)
     self.freebase_graph_alias_entity = read_dict(
         freebase_graph_alias_entity_file)
     if graphquestions_train_friendlyname_entity_file != '':
         self.graphquestions_train_friendlyname_entity = read_dict(
             graphquestions_train_friendlyname_entity_file)
     else:
         self.graphquestions_train_friendlyname_entity = dict()
     self.clueweb_mention_pro_entity = read_dict_dict(
         clueweb_mention_pro_entity_file)
Exemplo n.º 2
0
        graphq.graph_query = questionAnnotation["graph_query"]
        for node in questionAnnotation["graph_query"]["nodes"]:
            graphq.nodes.append(GroundedNode(
                nid=node["nid"], node_type=node["node_type"], type_class=node["class"],
                friendly_name=node["friendly_name"], question_node=node["question_node"],
                function=node["function"], id=node["id"], score=1.0))
        for edge in questionAnnotation["graph_query"]["edges"]:
            graphq.edges.append(GroundedEdge(
                start=edge["start"], end=edge["end"], relation=edge["relation"],
                friendly_name=edge["friendly_name"], score=1.0))
        graphq.sparql_query = questionAnnotation["sparql_query"]
        graphquestionsList.append(graphq)
    return graphquestionsList

graph_questions_struct = read_graph_question_json(globals_args.fn_graph_file.graphquestions_testing_dir)
def look_for_aggregation_by_qid(qid):
    function = "none"
    for graphq_struct in graph_questions_struct:
        if graphq_struct.qid == qid:
            function = graphq_struct.function
            break
    return function

qid_to_q_dict = read_dict(globals_args.fn_graph_file.question_qid_normal_dict)
def look_for_q_normal_by_qid(qid):
    q_normal = "none"
    if str(qid) in qid_to_q_dict:
        q_normal = qid_to_q_dict[str(qid)][0]
    return q_normal

from collections import OrderedDict
from fuzzywuzzy import fuzz

from common import globals_args
from common import hand_files
from method_sp.grounding._2_1_grounded_graph.node_linking import node_linking_utils


quotation_dict = hand_files.read_dict(globals_args.kb_freebase_latest_file.quotation_file)


def node_linking(node=None, top_k=10, elp=None):
    '''node grounding
    {'entity_id', 'entity_pro'}
    return top_k results'''
    results_dict = OrderedDict()
    if node.node_type == 'entity':
        entities_pros = elp.get_indexrange_entity_el_pro_one_mention(node_linking_utils.get_old_mention(node.friendly_name).lower(), top_k=top_k)
        if len(entities_pros) == 0:
            entities_pros = _node_entity_linking_quotation(node_mention=node.friendly_name, top_k=1)
        for entity, pro in entities_pros.items():
            results_dict[entity] = pro
    elif node.node_type == 'class':
        results_dict['hhh'] = 1.0  # results_dict = cl_interface(node=node) 2020.11.03
    elif node.node_type == 'literal' or node.node_type == 'DATE':
        if node.normalization_value is not None:
            results_dict[node.normalization_value] = 1.0
        else:
            results_dict[node.friendly_name] = 1.0
        node.node_type = 'literal'
    return results_dict
Exemplo n.º 4
0
q_mode = globals_args.argument_parser.q_mode

# 2.2 args
if q_mode == 'cwq':
    oracle_file_root = globals_args.fn_cwq_file.grounded_graph_file + 'result/'
    oracle_all_files_path_names = os.listdir(oracle_file_root)
    literal_to_id_map = grounding_utils.read_literal_to_id_map(
        file_root=globals_args.fn_cwq_file.grounded_graph_file)
    kb_relations = hand_files.read_set(
        globals_args.kb_freebase_latest_file.freebase_relations_file)

    mediators_instances_set = hand_files.read_set(
        globals_args.kb_freebase_latest_file.mediators_instances_file)
    schema_lines_list = hand_files.read_list(
        globals_args.kb_freebase_latest_file.schema_file)
    property_reverse_dict = hand_files.read_dict(
        globals_args.kb_freebase_latest_file.freebase_reverse_property)
    literal_property_dict = hand_files.read_dict(
        globals_args.kb_freebase_latest_file.freebase_literal_property)

elif q_mode == 'graphq':
    oracle_file_root = globals_args.fn_graph_file.grounded_graph_file + 'result/'
    oracle_all_files_path_names = os.listdir(oracle_file_root)
    literal_to_id_map = grounding_utils.read_literal_to_id_map(
        file_root=globals_args.fn_graph_file.grounded_graph_file)
    kb_relations = hand_files.read_set(
        globals_args.kb_freebase_en_2013.freebase_relations_file)

    mediators_instances_set = hand_files.read_set(
        globals_args.kb_freebase_en_2013.mediators_instances_file)
    schema_lines_list = hand_files.read_list(
        globals_args.kb_freebase_en_2013.schema_file)