class_docstr: DmlCorpus implements a collection of articles. It is initialized via a DmlConfig
  object, which holds information about where to look for the articles and how
  to process them.
  
  Apart from being a regular corpus (bag-of-words iterable with a `len()` method),
  DmlCorpus has methods for building a dictionary (mapping between words and
  their ids).
docstr: The function that defines a corpus -- iterating over the corpus yields
  bag-of-words vectors, one for each document.
  
  A bag-of-words vector is simply a list of ``(tokenId, tokenCount)`` 2-tuples.
docstr_tok: ["The","function","that","defines","a","corpus","--","iterating","over","the","corpus","yields","bag-of-words","vectors",",","one","for","each","document",".","A","bag-of-words","vector","is","simply","a","list","of","``","(","tokenId",",","tokenCount",")","``","2-tuples","."]
code: def __iter__(self):
      """
      The function that defines a corpus -- iterating over the corpus yields
      bag-of-words vectors, one for each document.
  
      A bag-of-words vector is simply a list of ``(tokenId, tokenCount)`` 2-tuples.
      """
      for docNo, (sourceId, docUri) in enumerate(self.documents):
          source = self.config.sources[sourceId]
  
          contents = source.getContent(docUri)
          words = [
              source.normalizeWord(word)
              for word in source.tokenize(contents)
          ]
          yield self.dictionary.doc2bow(words, allowUpdate=False)
  
imports: import logging
  import os.path
  from gensim import interfaces, matutils
  import dictionary
label_desc: Use image node_id 3 for calling the DmlCorpus obj's underlying member method code with example usage: obj.__iter__() without return types