code: def dict_trie(dict_source: Union[str, Iterable[str], Trie]) -> Trie:
      
      trie = None
  
      if isinstance(dict_source, Trie):
          trie = dict_source
      elif isinstance(dict_source, str):
          # Receive a file path of the dict to read
          with open(dict_source, "r", encoding="utf8") as f:
              _vocabs = f.read().splitlines()
              trie = Trie(_vocabs)
      elif isinstance(dict_source, Iterable):
          # Note: Trie and str are both Iterable, Iterable check should be here
          # Received a sequence type object of vocabs
          trie = Trie(dict_source)
      else:
          raise TypeError(
              "Type of dict_source must be marisa_trie.Trie, or Iterable[str], or str (path to source file)"
          )
  
      return trie
docs: Create a dict trie which will be used for word_tokenize() function.
      For more information on the trie data structure,
      see: https://marisa-trie.readthedocs.io/en/latest/index.html
  
      :param string/list dict_source: a list of vocaburaries or a path to source file
      :return: a trie created from a dictionary input