class_docstr: 对 **CNN/Daily Mail** 数据进行适用于 ``extractive summarization task`` 的预处理，预处理之后的数据具备以下结构：
  
  .. csv-table::
     :header: "text", "summary", "label", "publication", "text_wd", "words", "seq_len", "target"
  
      "['I got new tires from them and... ','...']", "['The new tires...','...']", "[0, 1]", "cnndm", "[['I','got',...'.'],...,['...']]", "[[54,89,...,5],...,[9,43,..,0]]", "[1,1,...,0]", "[0,1,...,0]"
      "['Don't waste your time.  We had two...','...']", "['Time is precious','...']", "[1]", "cnndm", "[['Don't','waste',...,'.'],...,['...']]", "[[5234,653,...,5],...,[87,234,..,0]]", "[1,1,...,0]", "[1,1,...,0]"
      "['...']", "['...']", "[]", "cnndm", "[[''],...,['']]", "[[],...,[]]", "[]", "[]"
  
  :param vocab_size: 词表大小
  :param sent_max_len: 句子最大长度，不足的句子将 padding ，超出的将截断
  :param doc_max_timesteps: 文章最多句子个数，不足的将 padding，超出的将截断
  :param vocab_path: 外部词表路径
  :param domain: 是否需要建立 domain 词表
  :param num_proc: 处理数据时使用的进程数目。
class_docstr_tok: ["\u5bf9","*","*","CNN\/Daily","Mail","*","*","\u6570\u636e\u8fdb\u884c\u9002\u7528\u4e8e","``","extractive","summarization","task","``","\u7684\u9884\u5904\u7406\uff0c\u9884\u5904\u7406\u4e4b\u540e\u7684\u6570\u636e\u5177\u5907\u4ee5\u4e0b\u7ed3\u6784\uff1a","..","csv-table",":",":",":","header",":","``","text","''",",","``","summary","''",",","``","label","''",",","``","publication","''",",","``","text_wd","''",",","``","words","''",",","``","seq_len","''",",","``","target","''","``","[","'","I","got","new","tires","from","them","and","...","'",",","'","...","'","]","''",",","``","[","'The","new","tires","...","'",",","'","...","'","]","''",",","``","[","0",",","1","]","''",",","``","cnndm","''",",","``","[","[","'","I","'",",","'got","'",",","...","'.","'","]",",","...",",","[","'","...","'","]","]","''",",","``","[","[","54,89",",","...",",5","]",",","...",",","[","9,43",",","..",",0","]","]","''",",","``","[","1,1",",","...",",0","]","''",",","``","[","0,1",",","...",",0","]","''","``","[","'Do","n't","waste","your","time",".","We","had","two","...","'",",","'","...","'","]","''",",","``","[","'Time","is","precious","'",",","'","...","'","]","''",",","``","[","1","]","''",",","``","cnndm","''",",","``","[","[","'Do","n't","'",",","'waste","'",",","...",",","'.","'","]",",","...",",","[","'","...","'","]","]","''",",","``","[","[","5234,653",",","...",",5","]",",","...",",","[","87,234",",","..",",0","]","]","''",",","``","[","1,1",",","...",",0","]","''",",","``","[","1,1",",","...",",0","]","''","``","[","'","...","'","]","''",",","``","[","'","...","'","]","''",",","``","[","]","''",",","``","cnndm","''",",","``","[","[","``","]",",","...",",","[","``","]","]","''",",","``","[","[","]",",","...",",","[","]","]","''",",","``","[","]","''",",","``","[","]","''",":","param","vocab_size",":","\u8bcd\u8868\u5927\u5c0f",":","param","sent_max_len",":","\u53e5\u5b50\u6700\u5927\u957f\u5ea6\uff0c\u4e0d\u8db3\u7684\u53e5\u5b50\u5c06","padding","\uff0c\u8d85\u51fa\u7684\u5c06\u622a\u65ad",":","param","doc_max_timesteps",":","\u6587\u7ae0\u6700\u591a\u53e5\u5b50\u4e2a\u6570\uff0c\u4e0d\u8db3\u7684\u5c06","padding\uff0c\u8d85\u51fa\u7684\u5c06\u622a\u65ad",":","param","vocab_path",":","\u5916\u90e8\u8bcd\u8868\u8def\u5f84",":","param","domain",":","\u662f\u5426\u9700\u8981\u5efa\u7acb","domain","\u8bcd\u8868",":","param","num_proc",":","\u5904\u7406\u6570\u636e\u65f6\u4f7f\u7528\u7684\u8fdb\u7a0b\u6570\u76ee\u3002"]
docstr: 传入文件路径，生成处理好的 :class:`~fastNLP.io.DataBundle` 对象。``paths`` 支持的路径形式可以参考 :meth:`fastNLP.io.Loader.load`
  
  :param paths:
  :return:
docstr_tok: ["\u4f20\u5165\u6587\u4ef6\u8def\u5f84\uff0c\u751f\u6210\u5904\u7406\u597d\u7684",":","class",":","`","~fastNLP.io.DataBundle","`","\u5bf9\u8c61\u3002","``","paths","``","\u652f\u6301\u7684\u8def\u5f84\u5f62\u5f0f\u53ef\u4ee5\u53c2\u8003",":","meth",":","`","fastNLP.io.Loader.load","`",":","param","paths",":",":","return",":"]
code: def process_from_file(self, paths=None):
      r"""
      传入文件路径，生成处理好的 :class:`~fastNLP.io.DataBundle` 对象。``paths`` 支持的路径形式可以参考 :meth:`fastNLP.io.Loader.load`
  
      :param paths:
      :return:
      """
      loader = ExtCNNDMLoader()
      if self.vocab_path is None:
          if paths is None:
              paths = loader.download()
          if not os.path.isdir(paths):
              error_msg = "vocab file is not defined!"
              print(error_msg)
              raise RuntimeError(error_msg)
          self.vocab_path = os.path.join(paths, "vocab")
      db = loader.load(paths=paths)
      db = self.process(db)
      for ds in db.datasets.values():
          db.get_vocab("vocab").index_dataset(
              ds, field_name="words", new_field_name="words"
          )
  
      return db
  
imports: import os
  import numpy
  from functools import partial
  from .pipe import Pipe
  from .utils import _drop_empty_instance
  from ..loader.summarization import ExtCNNDMLoader
  from ..data_bundle import DataBundle
  from ...core.vocabulary import Vocabulary
label_desc: Use image node_id 3 for calling the ExtCNNDMPipe obj's underlying member method code with example usage: obj.process_from_file(paths) and returns: db