class_docstr: 处理 **CMRC2018** 的数据，处理之后 :class:`~fastNLP.core.DataSet` 中新增的内容如下（原有的 field 仍然保留）：
  
  .. csv-table::
      :header: "context_len", "raw_chars",  "target_start", "target_end", "chars"
      
      492, "['范', '廷', '颂... ]", 30, 34, "[21, 25, ...]"
      491, "['范', '廷', '颂... ]", 41, 61, "[21, 25, ...]"
      ".", "...", "...","...", "..."
  
  ``raw_chars`` 列是 ``context`` 与 ``question`` 拼起来的结果（连接的地方加入了 ``[SEP]`` ）， ``chars`` 是转为
  index 的值， ``target_start`` 为答案开始的位置， ``target_end`` 为答案结束的位置（闭区间）； ``context_len``
  指示的是 ``chars`` 列中 context 的长度。
  
  :param max_len:
class_docstr_tok: ["\u5904\u7406","*","*","CMRC2018","*","*","\u7684\u6570\u636e\uff0c\u5904\u7406\u4e4b\u540e",":","class",":","`","~fastNLP.core.DataSet","`","\u4e2d\u65b0\u589e\u7684\u5185\u5bb9\u5982\u4e0b\uff08\u539f\u6709\u7684","field","\u4ecd\u7136\u4fdd\u7559\uff09\uff1a","..","csv-table",":",":",":","header",":","``","context_len","''",",","``","raw_chars","''",",","``","target_start","''",",","``","target_end","''",",","``","chars","''","492",",","``","[","'","\u8303","'",",","'","\u5ef7","'",",","'","\u9882","...","]","''",",","30",",","34",",","``","[","21",",","25",",","...","]","''","491",",","``","[","'","\u8303","'",",","'","\u5ef7","'",",","'","\u9882","...","]","''",",","41",",","61",",","``","[","21",",","25",",","...","]","''","``",".","``",",","``","...","''",",","``","...","''",",","''","...","''",",","``","...","''","``","raw_chars","``","\u5217\u662f","``","context","``","\u4e0e","``","question","``","\u62fc\u8d77\u6765\u7684\u7ed3\u679c\uff08\u8fde\u63a5\u7684\u5730\u65b9\u52a0\u5165\u4e86","``","[","SEP","]","``","\uff09\uff0c","``","chars","``","\u662f\u8f6c\u4e3a","index","\u7684\u503c\uff0c","``","target_start","``","\u4e3a\u7b54\u6848\u5f00\u59cb\u7684\u4f4d\u7f6e\uff0c","``","target_end","``","\u4e3a\u7b54\u6848\u7ed3\u675f\u7684\u4f4d\u7f6e\uff08\u95ed\u533a\u95f4\uff09\uff1b","``","context_len","``","\u6307\u793a\u7684\u662f","``","chars","``","\u5217\u4e2d","context","\u7684\u957f\u5ea6\u3002",":","param","max_len",":"]
docstr: ``data_bunlde`` 中的 :class:`~fastNLP.core.DataSet` 应该包含 ``raw_words`` ：
  
  .. csv-table::
     :header: "title", "context", "question", "answers", "answer_starts", "id"
  
     "范廷颂", "范廷颂枢机（，），圣名保禄·若瑟（）...", "范廷颂是什么时候被任为主教的？", ["1963年"], ["30"], "TRAIN_186_QUERY_0"
     "范廷颂", "范廷颂枢机（，），圣名保禄·若瑟（）...", "1990年，范廷颂担任什么职务？", ["1990年被擢升为天..."], ["41"],"TRAIN_186_QUERY_1"
     "...", "...", "...","...", ".", "..."
  
  :param data_bundle:
  :return: 处理后的 ``data_bundle``
docstr_tok: ["``","data_bunlde","``","\u4e2d\u7684",":","class",":","`","~fastNLP.core.DataSet","`","\u5e94\u8be5\u5305\u542b","``","raw_words","``","\uff1a","..","csv-table",":",":",":","header",":","``","title","''",",","``","context","''",",","``","question","''",",","``","answers","''",",","``","answer_starts","''",",","``","id","''","``","\u8303\u5ef7\u9882","''",",","``","\u8303\u5ef7\u9882\u67a2\u673a\uff08\uff0c\uff09\uff0c\u5723\u540d\u4fdd\u7984\u00b7\u82e5\u745f\uff08\uff09","...","''",",","``","\u8303\u5ef7\u9882\u662f\u4ec0\u4e48\u65f6\u5019\u88ab\u4efb\u4e3a\u4e3b\u6559\u7684\uff1f","''",",","[","``","1963\u5e74","''","]",",","[","``","30","''","]",",","``","TRAIN_186_QUERY_0","''","``","\u8303\u5ef7\u9882","''",",","``","\u8303\u5ef7\u9882\u67a2\u673a\uff08\uff0c\uff09\uff0c\u5723\u540d\u4fdd\u7984\u00b7\u82e5\u745f\uff08\uff09","...","''",",","``","1990\u5e74\uff0c\u8303\u5ef7\u9882\u62c5\u4efb\u4ec0\u4e48\u804c\u52a1\uff1f","''",",","[","``","1990\u5e74\u88ab\u64e2\u5347\u4e3a\u5929","...","''","]",",","[","``","41","''","]",",","''","TRAIN_186_QUERY_1","''","``","...","''",",","``","...","''",",","``","...","''",",","''","...","''",",","``",".","``",",","``","...","''",":","param","data_bundle",":",":","return",":","\u5904\u7406\u540e\u7684","``","data_bundle","``"]
code: def process(self, data_bundle: DataBundle) -> DataBundle:
      r"""
      ``data_bunlde`` 中的 :class:`~fastNLP.core.DataSet` 应该包含 ``raw_words`` ：
  
      .. csv-table::
         :header: "title", "context", "question", "answers", "answer_starts", "id"
  
         "范廷颂", "范廷颂枢机（，），圣名保禄·若瑟（）...", "范廷颂是什么时候被任为主教的？", ["1963年"], ["30"], "TRAIN_186_QUERY_0"
         "范廷颂", "范廷颂枢机（，），圣名保禄·若瑟（）...", "1990年，范廷颂担任什么职务？", ["1990年被擢升为天..."], ["41"],"TRAIN_186_QUERY_1"
         "...", "...", "...","...", ".", "..."
  
      :param data_bundle:
      :return: 处理后的 ``data_bundle``
      """
      data_bundle = _concat_clip(
          data_bundle,
          max_len=self.max_len,
          concat_field_name="raw_chars",
      )
  
      src_vocab = Vocabulary()
      src_vocab.from_dataset(
          *[
              ds
              for name, ds in data_bundle.iter_datasets()
              if "train" in name
          ],
          field_name="raw_chars",
          no_create_entry_dataset=[
              ds
              for name, ds in data_bundle.iter_datasets()
              if "train" not in name
          ],
      )
      src_vocab.index_dataset(
          *data_bundle.datasets.values(),
          field_name="raw_chars",
          new_field_name="chars",
      )
      data_bundle.set_vocab(src_vocab, "chars")
  
      return data_bundle
  
file_path: fastNLP/fastNLP/io/pipe/qa.py
imports: from copy import deepcopy
  from .pipe import Pipe
  from fastNLP.io.data_bundle import DataBundle
  from ..loader.qa import CMRC2018Loader
  from .utils import get_tokenizer
  from fastNLP.core.dataset import DataSet
  from fastNLP.core.vocabulary import Vocabulary
label_desc: Use image node_id 2 for calling the CMRC2018BertPipe obj's underlying member method code with example usage: obj.process(data_bundle) and returns: data_bundle