code: def remove_odd_punct(text: str, punctuation: List[str] = None) -> str:
      """Remove certain characters that downstream processes do
      not handle well. It would be better to use ``split_leading_punct()``
      and ``split_trailing_punct()``, however the default models
      out of Stanza make very strange mistakes when, e.g., ``"‘"``
      is made its own token.
  
      What to do about the apostrophe following an elision (e.g.,
      ``"δ᾽""``)?
  
      >>> raw_text = "‘κατηγόρων’, οὐκ οἶδα: ἐγὼ δ᾽ οὖν"
      >>> remove_odd_punct(raw_text)
      'κατηγόρων, οὐκ οἶδα ἐγὼ δ᾽ οὖν'
      """
      if not punctuation:
          punctuation = ["‘", "“", ":", "’", "”"]
      chars: List[str] = [
          char for char in text if char not in punctuation
      ]
      return "".join(chars)
  
file_path: cltk/src/cltk/alphabet/text_normalization.py
imports: from typing import List, Optional
  from unicodedata import normalize
label_desc: Use image node_id 6 for calling a global function with example usage: remove_odd_punct(text, punctuation) and returns: str