Litery N-gram są używane zamiast słów z kilku powodów:
1) Lista słów potrzebnych w danym języku jest dość duża, być może 100 000, jeśli weźmiesz pod uwagę szybkie, szybsze, najszybsze, szybkie, szybkie, szybkie, ... jak wszystkie inne słowa. W przypadku 80 języków potrzebujesz około 80 razy więcej słów, zajmując dużo miejsca - ponad 50 megabajtów.
2) Liczba trygramów literowych dla 26-literowego alfabetu wynosi 26 ** 3 lub około 17 000, a dla kwadratowych (N = 4) około 450 000 dla WSZYSTKICH języków używających tego alfabetu. Podobne, ale nieco większe liczby dla N-gramów w większych alfabetach o długości 30-100 znaków. W przypadku języków CJK z ponad 4000 liter w skrypcie Han, unigramy (N = 1) są wystarczające. W przypadku niektórych skryptów Unicode jest tylko jeden język na skrypt (grecki, ormiański), więc nie są potrzebne kombinacje liter (tak zwane nil-gram N = 0)
3) W przypadku słów nie ma żadnych informacji, gdy podano słowo spoza słownika, natomiast w przypadku liter N-gram często występuje co najmniej kilka przydatnych kombinacji liter w tym słowie.
CLD2 używa quadgramów dla większości skryptów Unicode (alfabetów), w tym łacińskiego, cyrylicy i arabskiego, unigramów dla skryptów CJK, nilgramów dla innych skryptów, a także zawiera ograniczoną liczbę dość charakterystycznych i dość powszechnych pełnych słów i par słów do rozróżnienia w trudnych grupach statystycznie podobnych języków, takich jak indonezyjski i malajski. Bigramy literowe i trygramy są prawdopodobnie przydatne do rozróżnienia niewielkiej liczby języków (około ośmiu, patrz https://docs.google.com/document/d/1NtErs467Ub4yklEfK0C9AYef06G_1_9NHL5dPuKIH7k/edit), ale są bezużyteczne do rozróżnienia dziesiątek języków. Tak więc CLD2 wykorzystuje kwadramy, wiążąc z każdą kombinacją liter trzy najpopularniejsze języki używające tej kombinacji. Pozwala to na obsługę 80 języków z około 1,5 MB tabel i 160 języków bardziej szczegółowo z około 5 MB tabel.