class_docstr: A class to get related words using the DataMuse API.
  Docs: https://www.datamuse.com/api/
  Endpoint: https://api.datamuse.com/words
  You can use this service without restriction and without an API key for up to 100,000 requests per day
  
  Args:
      word (str): The word to find related words for.
      constraint (str): Constraint for related words, rel_[code] Default: 'rel_syn'.
          [code] | Description | Example
          jja | Popular nouns modified by the given adjective, per Google Books Ngrams | gradual → increase
          jjb | Popular adjectives used to modify the given noun, per Google Books Ngrams | beach → sandy
          syn | Synonyms (words contained within the same WordNet synset) | ocean → sea
          trg | "Triggers" (words that are statistically associated with the query word) | cow → milking
          ant | Antonyms (per WordNet) | late → early
          spc | "Kind of" (direct hypernyms, per WordNet) | gondola → boat
          gen | "More general than" (direct hyponyms, per WordNet) | boat → gondola
          com | "Comprises" (direct holonyms, per WordNet) | car → accelerator
          par | "Part of" (direct meronyms, per WordNet) | trunk → tree
          bga | Frequent followers (w′ such that P(w′|w) ≥ 0.001, per Google Books Ngrams) | wreak → havoc
          bgb | Frequent predecessors (w′ such that P(w|w′) ≥ 0.001, per Google Books Ngrams) | havoc → wreak
          rhy | Rhymes ("perfect" rhymes, per RhymeZone) | spade → aid
          nry | Approximate rhymes (per RhymeZone) | forest → chorus
          hom | Homophones (sound-alike words) | course → coarse
          cns | Consonant match | sample → simple
  
      **kwargs: Additional parameters for the API. Valid parameters are:
          - ml: Means like constraint
          - sl: Sounds like constraint
          - sp: Spelled like constraint
          - rel_[code]: Related word constraints (e.g., rel_jjb for adjectives
                        that modify the given noun)
          - v: Identifier for the vocabulary to use
          - topics: Topic words to skew results towards
          - lc: The word that appears to the left of the target word
          - rc: The word that appears to the right of the target word
          - max: Maximum number of results to return
          - md: Metadata flags # Warning if you override this kwarg and don't include
              (p for parts of speech or f for word frequency, calls to those filters will fail)
docstr: Sends a request to the DataMuse API and returns the related words.
  
  Returns:
      A list of dictionaries containing related words and metadata.
docstr_tok: ["Sends","a","request","to","the","DataMuse","API","and","returns","the","related","words",".","Returns",":","A","list","of","dictionaries","containing","related","words","and","metadata","."]
code: def _get_related_words(self) -> List[Dict[str, str]]:
      """
      Sends a request to the DataMuse API and returns the related words.
  
      Returns:
          A list of dictionaries containing related words and metadata.
      """
      params = {"md": "frspd"}
      params.update(self.kwargs)
      response = requests.get(
          f"https://api.datamuse.com/words?{self.constraint}={self.word}",
          params=params,
      )
      return response.json()
  
imports: from abc import ABC, abstractmethod
  from typing import Any, Dict, Generator, List, Optional, Tuple, Union
  import requests
label_desc: Use image node_id 4 for calling the DataMuseRelatedWords obj's underlying member method code with example usage: obj._get_related_words() and returns: response