Я бы сразу отбросил n-граммы уровня байта для задач, связанных с текстом, потому что байты не являются значимым представлением чего-либо.
Из двух оставшихся уровней на n-граммах уровня персонажа потребуется гораздо меньше места для хранения и в дальнейшем будет содержать гораздо меньше информации. Они обычно используются в таких задачах, как идентификация языка, идентификация писателя (то есть отпечатки пальцев), обнаружение аномалий.
Что касается текстовых n-граммов, они могут выполнять те же самые задачи и многое другое, но им нужно гораздо больше места для хранения. Например, вам понадобится до нескольких гигабайт для представления в памяти полезного подмножества английского слова 3 грамма (для задач общего назначения). Тем не менее, если у вас ограниченный набор текстов, с которыми вам нужно работать, n-граммовые уровни на уровне слов могут не требовать большого объема памяти.
Что касается вопроса об ошибках, то достаточно большое слово n-grams corpus также будет включать и представлять их. Кроме того, существуют различные способы сглаживания для решения проблемы разреженности.
Есть и другие проблемы с n-граммами, так как они почти никогда не смогут захватить весь необходимый контекст, поэтому будут только приближать его.
Вы можете узнать больше о n-граммах в классическом Foundations of Statistical Natural Language Processing.