def get_morph_chain(nouns, chunks): if isinstance(nouns, list): chains = [] for i in nouns: chains.append(get_morph_chain(i, chunks)) return chains else: if nouns is None: return '' chunk = chunks[nouns] omitted = NLP47.omit_punctual_from_morphs(chunk.morphs()) omitted_string = NLP42.concat_morphs(omitted) if chunk.dst() == -1: return [omitted_string] else: return [omitted_string] + get_morph_chain(chunk.dst(), chunks)
def get_chunks_chain(nouns, chunks): if isinstance(nouns, list): chains = [] for i in nouns: chunks_chain, indice = get_chunks_chain(i, chunks) d = dict(chunks_chain = chunks_chain, index = indice) chains.append(d) return chains else: if nouns is None: return '' chunk = chunks[nouns] omitted_morphs = NLP47.omit_punctual_from_morphs(chunk.morphs()) new_chunk = NLP42.Chunk(omitted_morphs, chunk.dst()) for s in chunk.srcs(): new_chunk.append_srcs(s) if chunk.dst() == -1: return [new_chunk], [nouns] else: new_chunks, indice = get_chunks_chain(chunk.dst(), chunks) return [new_chunk] + new_chunks, [nouns] + indice
def get_chunk_surface_string(chunk): morphs = chunk.morphs() omitted_morphs = NLP47.omit_punctual_from_morphs(morphs) return ''.join(map(lambda x: x.surface(), omitted_morphs))