code: def paras(self, fileids=None) -> Generator[str, str, None]:
          
  
          def _recurse_to_strings(my_dict: Dict[str, Any]) -> List[str]:
              """Internal accumulator method."""
              vals = []  # type: List[str]
              m_keys = sorted(list(my_dict.keys()))
              for mkey in m_keys:
                  if isinstance(my_dict[mkey], dict):
                      vals += _recurse_to_strings(my_dict[mkey])
                  else:
                      vals += [my_dict[mkey]]
              return vals
  
          text_sections = []  # type: List[str]
          for doc in self.docs(fileids):
              text_data = _recurse_to_strings(doc['text'])
              for text_part in text_data:
                  skip = False
                  if self.skip_keywords:
                      for keyword in self.skip_keywords:
                          if keyword in text_part:
                              skip = True
                  if not skip:
                      text_sections.append(text_part)
              paras = (''.join(text_sections)).split(self.paragraph_separator)
              for para in paras:
                  yield para
docs: Yield paragraphs of the text, as demarcated by double new lines.
          :param fileids: single document file or files of proper JSON objects with a text key,
          and section subkey
          :return: a generator of paragraphs