import unicodedata

class Normalizer:

    def normalize(text):
        """
        Normalize a given text applying all normalizations.

        Params:
            text: The text to be processed.

        Returns:
            The text normalized.
        """
        text = Normalizer.remove_extra_whitespaces(text)
        text = Normalizer.replace_hyphens(text)
        text = Normalizer.remove_accent_marks(text)

        return text.lower()

    @staticmethod
    def replace_hyphens(text):
        """
        Remove hyphens from input text.

        Params:
            text: The text to be processed.

        Returns:
            The text without hyphens.
        """
        return text.replace('-', ' ')

    @staticmethod
    def remove_extra_whitespaces(text):
        """
        Remove extra whitespaces from input text.

        This function removes whitespaces from the beginning and the end of
        the string, but also duplicated whitespaces between words.

        Params:
            text: The text to be processed.

        Returns:
            The text without extra whitespaces.
        """
        return ' '.join(text.strip().split());

    @staticmethod
    def remove_accent_marks(text):
        """
        Remove accent marks from input text.

        Params:
            text: The text to be processed.

        Returns:
            The text without accent marks.
        """
        return ''.join(c for c in unicodedata.normalize('NFKD', text.replace('ñ', '/n/'))
                       if unicodedata.category(c) != 'Mn').replace('/n/', 'ñ')

@@ -12,16 +12,47 @@
 odedata%0A
+from unidecode import unidecode
 %0Aclass N
@@ -440,16 +440,63 @@
 ks(text)
+%0A        text = Normalizer.remove_symbols(text)
 %0A%0A      
@@ -1650,9 +1650,448 @@
 /', '%C3%B1')
+.strip()%0A%0A    @staticmethod%0A    def remove_symbols(text):%0A        %22%22%22%0A        Remove symbols from input text.%0A%0A        Params:%0A            text: The text to be processed.%0A%0A        Returns:%0A            The text without symbols.%0A        %22%22%22%0A        return ''.join(c for c in unicodedata.normalize('NFKD', text.replace('%C3%B1', '/n/'))%0A                       if unicodedata.category(c) not in %5B'Sc', 'Sk', 'Sm', 'So'%5D).replace('/n/', '%C3%B1').strip()
 %0A

Add function to clean symbols