code: def get_parallel_noun_chunks(doc: Doc) -> List[List[Span]]:
      noun_phrases = list(_extract_noun_phrases(doc))
      last2idx = {
          taglist[-1]: i for i, taglist in enumerate(noun_phrases)
      }
      para_depends = {
          i: [_spans_to_span_without_last_aux(noun_phrases[i], "NP")]
          for i in range(len(noun_phrases))
      }
      for i, taglist in enumerate(noun_phrases):
          last = taglist[-1]
          if last._.get(KNP_USER_KEYS.tag.element).dpndtype == "P":
              parent = last2idx[last._.get(KNP_USER_KEYS.tag.parent)]
              para_depends[parent].extend(para_depends[i])
              del para_depends[i]
      return list(
          [
              list(reversed(v))
              for v in para_depends.values()
              if len(v) > 1
          ]
      )
  
file_path: camphr/packages/camphr_knp/camphr_knp/noun_chunker.py
imports: from typing import Iterable, List, Optional, Tuple
  import spacy
  from spacy.tokens import Doc, Span, Token
  from .consts import KNP_USER_KEYS
label_desc: Use image node_id 3 for calling a global function with example usage: get_parallel_noun_chunks(doc) and returns: list