def write_sa_verb_and_pattern_of_particle_and_morphs_oneline(i, oneline): map_sa_verb_and_pattern_of_particle_and_morphs = {} for i_d, dst in enumerate(oneline): if not NLP43.is_verb(dst.morphs()[0]): continue for i_s in dst.srcs(): chunk = oneline[i_s].morphs() if len(chunk) < 2: continue last_morph_of_src = chunk[-1] second_last_morph_of_src = chunk[-2] if not (is_particle_wo(last_morph_of_src) and is_noun_connected_sa(second_last_morph_of_src)): continue key_base = NLP42.concat_morphs(chunk) + dst.morphs()[0].base() for i_src_of_s in dst.srcs(): if i_src_of_s == i_s: continue c = oneline[i_src_of_s].morphs() c = omit_punctual_from_morphs(c) if len(c) < 1: continue last_morph_of_i_src_of_s = c[-1] if NLP45.is_particle(last_morph_of_i_src_of_s): if key_base in map_sa_verb_and_pattern_of_particle_and_morphs: d = map_sa_verb_and_pattern_of_particle_and_morphs[key_base] d['particles'].append(copy.deepcopy(last_morph_of_i_src_of_s.surface())) d['morphs'].append(copy.deepcopy(c)) else: new_dict = dict(particles = copy.deepcopy([last_morph_of_i_src_of_s.surface()]), morphs = copy.deepcopy([c])) map_sa_verb_and_pattern_of_particle_and_morphs[key_base] = new_dict write_verb_and_pattern_of_particle_and_morphs_result(i, map_sa_verb_and_pattern_of_particle_and_morphs)
def write_verb_and_pattern_of_particle_and_morphs_oneline(i, oneline): map_verb_and_pattern_of_particle_and_morphs = {} for i_d, dst in enumerate(oneline): if not NLP43.is_verb(dst.morphs()[0]): continue particles = [] morphs = [] for i_s in dst.srcs(): last_morph_of_src = oneline[i_s].morphs()[-1] if NLP45.is_particle(last_morph_of_src): particles.append(last_morph_of_src.surface()) morphs.append(oneline[i_s].morphs()) key_base = dst.morphs()[0].base() if key_base in map_verb_and_pattern_of_particle_and_morphs: d = map_verb_and_pattern_of_particle_and_morphs[key_base] d['particles'] += copy.deepcopy(particles) d['morphs'] += copy.deepcopy(morphs) else: new_dict = dict(particles = copy.deepcopy(particles), morphs = copy.deepcopy(morphs)) map_verb_and_pattern_of_particle_and_morphs[key_base] = new_dict write_verb_and_pattern_of_particle_and_morphs_result(i, map_verb_and_pattern_of_particle_and_morphs)
def is_particle_wo(m): return NLP45.is_particle(m) and m.surface().startswith('を')