def spell(self, word: str) -> List[str]:
        """
        Return a list of possible words, according to edit distance of 1 and 2,
        sorted by frequency of word occurrance in the spelling dictionary

        :param str word: A word to check its spelling
        """
        if not word:
            return ""

        candidates = (
            self.known([word])
            or self.known(_edits1(word))
            or self.known(_edits2(word))
            or [word]
        )
        candidates.sort(key=self.freq, reverse=True)

        return candidates
Return a list of possible words, according to edit distance of 1 and 2,
        sorted by frequency of word occurrance in the spelling dictionary

        :param str word: A word to check its spelling