class_docstr: A reader for markdown corpora whose documents are divided into
  categories based on their file identifiers.
  
  Based on nltk.corpus.reader.plaintext.CategorizedPlaintextCorpusReader:
  https://www.nltk.org/_modules/nltk/corpus/reader/api.html#CategorizedCorpusReader
class_docstr_tok: ["A","reader","for","markdown","corpora","whose","documents","are","divided","into","categories","based","on","their","file","identifiers",".","Based","on","nltk.corpus.reader.plaintext.CategorizedPlaintextCorpusReader",":","https",":","\/\/www.nltk.org\/_modules\/nltk\/corpus\/reader\/api.html","#","CategorizedCorpusReader"]
docstr: Initialize the corpus reader. Categorization arguments
  (``cat_pattern``, ``cat_map``, and ``cat_file``) are passed to
  the ``CategorizedCorpusReader`` constructor.  The remaining arguments
  are passed to the ``MarkdownCorpusReader`` constructor.
code: def __init__(self, *args, cat_field="tags", **kwargs):
      """
      Initialize the corpus reader. Categorization arguments
      (``cat_pattern``, ``cat_map``, and ``cat_file``) are passed to
      the ``CategorizedCorpusReader`` constructor.  The remaining arguments
      are passed to the ``MarkdownCorpusReader`` constructor.
      """
      cat_args = ["cat_pattern", "cat_map", "cat_file"]
      if not any(arg in kwargs for arg in cat_args):
          # Initialize with a blank map now,
          # and try to build categories from document metadata later.
          kwargs["cat_map"] = dict()
      CategorizedCorpusReader.__init__(self, kwargs)
      MarkdownCorpusReader.__init__(self, *args, **kwargs)
  
      # Map file IDs to categories if self._map exists but is still empty:
      if self._map is not None and not self._map:
          for file_id in self._fileids:
              metadata = self.metadata(file_id)
              if metadata:
                  self._map[file_id] = metadata[0].get(cat_field, [])
  
imports: from collections import namedtuple
  from functools import partial, wraps
  from nltk.corpus.reader.api import CategorizedCorpusReader
  from nltk.corpus.reader.plaintext import PlaintextCorpusReader
  from nltk.corpus.reader.util import concat, read_blankline_block
  from nltk.tokenize import blankline_tokenize, sent_tokenize, word_tokenize
label_desc: Use image node_id 1 to create a new CategorizedMarkdownCorpusReader object from inherited base classes: CategorizedCorpusReader, MarkdownCorpusReader with example: obj = CategorizedMarkdownCorpusReader()