code: def _build_conversation_span_map(unannotated_tsv_object):
      result = {}  # conversationId to (start line, length) map
      start = 0
      prev_conversation_id = ""
      length = 0
      for i, row in enumerate(unannotated_tsv_object):
          conversation_id = row[0][
              4:-2
          ]  # do substring cause conversationId has extra filler in unannotated
          if conversation_id != prev_conversation_id:
              result[prev_conversation_id] = (start, length)
              start = i
              prev_conversation_id = conversation_id
              length = 0
          length += 1
      result[conversation_id] = (start, length)
      return result
  
imports: import parlai.core.build_data
  from parlai.core.build_data import DownloadableFile
  import csv
  from itertools import islice
  from pathlib import Path
  import os
  import json
  import re
  import tqdm
label_desc: Use image node_id 6 for calling a global function with example usage: _build_conversation_span_map(unannotated_tsv_object) and returns: result