code: def tag(self: object, tokens: List[str]):
          
          tags = []
          taggers = []
          for i in range(len(tokens)):
              tag, tagger = self.tag_one(tokens, i, tags)
              tags.append(tag)
              taggers.append(str(tagger)) if tag else taggers.append(None)
  
          if self.VERBOSE:
              return list(zip(tokens, tags, taggers))
          else:
              return list(zip(tokens, tags))
docs: Docs (mostly) inherited from TaggerI; cf.
          https://www.nltk.org/_modules/nltk/tag/api.html#TaggerI.tag
  
          Two tweaks:
          1. Properly handle 'verbose' listing of current tagger in
          the case of None (i.e. ``if tag: etc.``)
          2. Keep track of taggers and change return depending on
          'verbose' flag
  
          :rtype list
          :type tokens: list
          :param tokens: List of tokens to tag