class_docstr: >>> from cltk.core.data_types import Doc, Word
  >>> from cltk.stops.processes import StopsProcess
  >>> from cltk.languages.example_texts import get_example_text
  >>> lang = "lat"
  >>> words = [Word(string=token) for token in split_punct_ws(get_example_text(lang))]
  >>> stops_process = StopsProcess(language=lang)
  >>> output_doc = stops_process.run(Doc(raw=get_example_text(lang), words=words))
  >>> output_doc.words[1].string
  'est'
  >>> output_doc.words[1].stop
  True
docstr: Note this marks a word a stop if there is a match on
  either the inflected form (``Word.string``) or the
  lemma (``Word.lemma``).
code: def run(self, input_doc: Doc) -> Doc:
      """Note this marks a word a stop if there is a match on
      either the inflected form (``Word.string``) or the
      lemma (``Word.lemma``).
      """
      output_doc = copy(input_doc)
      stops_list = self.algorithm
  
      for index, word_obj in enumerate(output_doc.words):
          if (word_obj.string in stops_list) or (
              word_obj.lemma in stops_list
          ):
              word_obj.stop = True
          else:
              word_obj.stop = False
          output_doc.words[index] = word_obj
  
      return output_doc
  
file_path: cltk/src/cltk/stops/processes.py
imports: from copy import copy, deepcopy
  from dataclasses import dataclass
  from boltons.cacheutils import cachedproperty
  from boltons.strutils import split_punct_ws
  from cltk.core.data_types import Doc, Process
  from cltk.stops.words import Stops
label_desc: Use image node_id 2 for calling the StopsProcess obj's underlying member method code with example usage: obj.run(input_doc) and returns: output_doc