import string
import unicodedata


def unicode_to_ascii(text: str) -> str:
    """
    Convert unicode text to plain ASCII. 
    See: https://stackoverflow.com/questions/517923
    
    Args:
        text: Unicode string
    
    Returns:
        text_norm: Normalized unicode string with just ascii letters and some punctuation.
    """
    # Remove characters that aren't letters (lower or upper) or in list of special characters.
    allowed_characters = string.ascii_letters + " .,;'"
    
    # NFD (Normal Form Decomposed) decomposes a letter with an accent into two separate elements in the list.
    # (NFC (Normal Form Composed) keeps the accent and letter as a single character in the list.)
    
    # Mn: Nonspacing_mark (accents, etc.)
    # This strips the nonspacing mark characters from the list.
    norm = [c for c in unicodedata.normalize("NFD", text) if (unicodedata.category(c) != "Mn") and (c in allowed_characters)]
    return "".join(norm)