Буква N-грам використовується замість слів з кількох причин:
1) Список слів, необхідних для даної мови, досить великий, можливо, 100 000, якщо ви вважаєте швидкий, швидший, найшвидший, швидкий, швидкий, пости, ... як усі різні слова. Для 80 мов вам потрібно приблизно 80 разів стільки слів, займаючи багато місця - 50+ мегабайт.
2) Кількість літер триграм для алфавіту з 26 літер становить 26 ** 3 або приблизно 17 000, а для квадраграм (N = 4) близько 450 000, які охоплюють ВСІ мови, що використовують цей алфавіт. Аналогічні, але дещо більші числа для N-грамів у більших алфавітах розміром 30-100 символів. Для мов CJK, що мають 4000+ літер у сценарії Han, достатньо уніграм (N = 1). Для деяких скриптів Unicode існує лише одна мова на скрипт (грецька, вірменська), тому комбінації літер не потрібні (так звані нульові грами N = 0)
3) За словами, у вас взагалі немає інформації, коли слово не в словнику, тоді як з буквою N-грам у вас часто є хоча б кілька корисних комбінацій літер у цьому слові.
CLD2 використовує квадраграми для більшості скриптів Unicode (алфавітів), включаючи латинську, кириличну та арабську мови, уніграми для скриптів CJK, ніграми для інших сценаріїв, а також включає обмежену кількість досить відмінних і досить поширених повних слів і пар слів для розрізнення. у складних групах статистично схожих мов, таких як індонезійська та малайська. Буквені діаграми та триграми, можливо, корисні для розрізнення крихітної кількості мов (приблизно вісім, див. Https://docs.google.com/document/d/1NtErs467Ub4yklEfK0C9AYef06G_1_9NHL5dPuKIH7k/edit), але марні для розрізнення десятків мов. Таким чином, CLD2 використовує квадраграми, асоціюючи з кожною буквою комбінацію трійки найімовірніших мов, що використовують цю комбінацію. Це дозволяє охопити 80 мов приблизно 1,5 МБ таблиць і 160 мов більш детально, приблизно 5 Мб таблиць.