class_docstr: Coref Sample
class_docstr_tok: ["Coref","Sample"]
docstr: Only sentences [sen_idx:] will be kept, and all the structures of
  `clusters` are kept for convenience of concat.
  
  :param int sen_idx: sentences with idx < sen_idx will be preserved
  :return ~textflint.input.component.sample.CorefSample:
      a CorefPartSample of a conll-part
docstr_tok: ["Only","sentences","[","sen_idx",":","]","will","be","kept",",","and","all","the","structures","of","`","clusters","`","are","kept","for","convenience","of","concat",".",":","param","int","sen_idx",":","sentences","with","idx","<","sen_idx","will","be","preserved",":","return","~textflint.input.component.sample.CorefSample",":","a","CorefPartSample","of","a","conll-part"]
code: def part_after_conll(self, sen_idx):
      r"""
      Only sentences [sen_idx:] will be kept, and all the structures of
      `clusters` are kept for convenience of concat.
  
      :param int sen_idx: sentences with idx < sen_idx will be preserved
      :return ~textflint.input.component.sample.CorefSample:
          a CorefPartSample of a conll-part
  
      """
      doc_key = self.doc_key
      # sentences, speakers
      sentences = CorefSample.doc2sens(self.x.words, self.sen_map)
      sens = sentences[sen_idx:]
      speakers = CorefSample.doc2sens(self.doc_sp.words, self.sen_map)
      sps = speakers[sen_idx:]
      # clusters, constituents, ner
  
      @shift_decor
      def index_shift(word_idx):
          return word_idx - sum(self.sen_map[:sen_idx])
  
      def preserve(span):
          return self.index_in_sen(span[0]) >= sen_idx
  
      clusters = recur_ap(
          index_shift,
          [
              [span for span in cluster if preserve(span)]
              for cluster in self.clusters.field_value
          ],
      )
      constituents = recur_ap(
          index_shift,
          [
              span
              for span in self.constituents.field_value
              if preserve(span)
          ],
      )
      ner = recur_ap(
          index_shift,
          [span for span in self.ner.field_value if preserve(span)],
      )
      ret_conll = {
          "doc_key": doc_key,
          "sentences": sens,
          "speakers": sps,
          "clusters": clusters,
          "constituents": constituents,
          "ner": ner,
      }
      return CorefPartSample(data=ret_conll, origin=self)
  
imports: from ....common.settings import ORIGIN, TASK_MASK
  from ....common.utils.fp_utils import *
  from ....common.utils.shift_utils import *
  from .sample import Sample
  from ..field import ListField, TextField
label_desc: Use image node_id 22 for calling the CorefSample obj's underlying member method code with example usage: obj.part_after_conll(sen_idx) and returns: CorefPartSample, unknown, unknown