Waarom één emoji in de meeste tellers 8 tekens is
Een JavaScript-string is een reeks UTF-16 code-eenheden, geen tekens, en .length telt die eenheden. De gezinsemoji 👨👩👧 antwoordt 8: vijf codepunten verbonden door twee zero-width joiners, waarvan er drie buiten het basisvlak vallen en elk twee eenheden kosten. Een lezer ziet één teken.
De eenheid die past bij wat een lezer ziet is het grapheme cluster (Unicode Annex #29), hier geteld met Intl.Segmenter. De gezinsemoji telt dus 1, een e met een los combinerend accent aigu telt 1 in plaats van 2, en een CRLF-regeleinde telt volgens regel GB3 als 1. De rij Code-eenheden toont wat een teller die .length aanroept in plaats daarvan meldt.
Wat als woord telt
Elk segment dat het Unicode-algoritme voor woordgrenzen als woordachtig markeert, en dat is niet "tekst tussen twee spaties". "don't" is één woord, want een apostrof tussen letters is geen grens. "state-of-the-art" zijn er vier, want koppeltekens wel. Een emoji is er geen. Chinees, Japans en Thai worden op woordenboek gesegmenteerd, dus een zin zonder spaties telt alsnog, terwijl splitsen op witruimte het hele ding als één woord meldt.
Tools verschillen een paar procent en geen enkele heeft ongelijk. Word telt "state-of-the-art" als één; een URL is in sommige tools één woord en in andere vijf. Is een telling contractueel, gebruik dan de tool die de tegenpartij gebruikt.
Waar de lees- en spreeksnelheden vandaan komen
238 woorden per minuut is de stille leessnelheid voor Engelse non-fictie uit de meta-analyse van 190 studies door Marc Brysbaert uit 2019; datzelfde overzicht zet fictie op 260 en hardop lezen op 183. Spreken gebruikt 150, volgens het National Center for Voice and Speech. De ronde 200 of 250 die de meeste leestijdwidgets gebruiken heeft geen bron.
Sms-segmenten
SMS gebruikt het 7-bits GSM 03.38-alfabet: 160 tekens, ASCII plus een set letters met accenten, dus "café" kost niets extra en "fête" past niet. Het euroteken, blokhaken, accolades en de backslash kosten elk twee eenheden. Eén teken buiten het alfabet, en een gekrulde apostrof of één emoji is al genoeg, zet het hele bericht om naar UCS-2 en laat de limiet zakken naar 70. Gesplitste berichten dragen per deel een header van 6 bytes, dus daar passen er 153 in plaats van 160.
De cijfers voor zoekmachines zijn afkappunten en geen regels: Google tekent een titel in ruwweg 580 pixels. X weegt CJK en Hangul als 2 en telt elke link als precies 23 tekens.
Veelgestelde vragen
Waarom klopt mijn aantal alinea's niet?
Een alinea eindigt bij een lege regel en niet bij elk regeleinde, dus tekst met enkele regeleindes tussen alinea's, wat een PDF je geeft, telt als één. Gebruik Regels.
Wordt mijn tekst ergens geüpload?
Nee. Alleen de instellingen voor leessnelheid en veelvoorkomende woorden gaan de URL in, want een URL reist mee naar de browsergeschiedenis, een gedeelde link en de referrer-header van de volgende pagina.
Wat telt als zin?
Hetzelfde Unicode-algoritme dat woordgrenzen vindt. Het breekt nooit binnen "3.5", en een afkorting gevolgd door een woord met een kleine letter of een cijfer, zoals in "bijv. dit" of "Fig. 4", blijft één zin. Een punt gevolgd door een hoofdletter beëindigt er wel een, dus "Dr. Smith" telt als twee zinnen. Tekst vol afgekorte titels telt daarom hoog.
Is trefwoorddichtheid nog het bekijken waard?
Niet als doel. Geen enkel dichtheidscijfer laat een pagina ranken. Wel als diagnose: een term op 6 procent betekent herhalend schrijven, en een term die je verwachtte maar niet in de top tien staat betekent dat de pagina ergens anders over gaat.