def verbs(relation, parse_dict): #load dict dict_verb_classes = Non_Explicit_dict().dict_verb_classes '''feature''' # 1. the number of pairs of verbs in Arg1 and Arg2 from same verb class Arg1_words = dict_util.get_Arg_Words_List(relation, "Arg1", parse_dict) Arg2_words = dict_util.get_Arg_Words_List(relation, "Arg2", parse_dict) count = 0 for w1, w2 in [(w1.lower(), w2.lower()) for w1 in Arg1_words for w2 in Arg2_words]: if w1 in dict_verb_classes and w2 in dict_verb_classes: c1 = dict_verb_classes[w1] c2 = dict_verb_classes[w2] if set(c1.split("#")) & set(c2.split("#")) != set([]): count += 1 feat_1 = Feature("", 1, {1: count}) #2. POS of main verb Arg1_MV_POS = dict_util.get_main_verb_pos(relation, "Arg1", parse_dict) Arg2_MV_POS = dict_util.get_main_verb_pos(relation, "Arg2", parse_dict) MV_POS_feature_list = Arg1_MV_POS + Arg2_MV_POS MV_POS_feature = get_feature_by_list(MV_POS_feature_list) return util.mergeFeatures([feat_1, MV_POS_feature])
def modality(relation, parse_dict): '''feature''' Arg1_words = dict_util.get_Arg_Words_List(relation, "Arg1", parse_dict) Arg2_words = dict_util.get_Arg_Words_List(relation, "Arg2", parse_dict) # Arg1_modality_vec = dict_util.get_modality_vec(Arg1_words) Arg2_modality_vec = dict_util.get_modality_vec(Arg2_words) cp = util.cross_product(Arg1_modality_vec, Arg2_modality_vec) features = [] features.append(get_feature_by_list(Arg1_modality_vec)) features.append(get_feature_by_list(Arg2_modality_vec)) features.append(get_feature_by_list(cp)) return util.mergeFeatures(features)