Word, Phrase & Character Frequency
Analyze Chinese and multilingual text with word segmentation, phrase windows, grapheme counts, stop words and CSV export.
Words, phrases and graphemes
Word mode uses Intl.Segmenter with the selected language and includes word-like segments rather than splitting Chinese only on spaces. Phrase mode counts overlapping windows of 2–5 words within each source line. Grapheme mode counts visible Unicode clusters, so a combining accent or joined emoji stays together.
Filtering without changing the denominator
Excluded terms are exact matches after the chosen case and NFC settings; the list is empty by default. Phrase windows containing an excluded word are skipped without joining the words around it. The total counts eligible occurrences before minimum-count and row-limit filters. Percentages use that total, so hiding a rare row does not inflate the remaining percentages.
Use counts as evidence, not a ranking target
Rows sort by count, then Unicode string order for ties. JSON includes totals; CSV contains the returned terms, counts and percentages with CRLF line endings. Spreadsheet formula-leading terms receive an apostrophe prefix. Browser language-data versions can produce different word boundaries. Input is capped at 200,000 UTF-16 units. Frequency does not measure relevance, originality or search ranking quality.
Related text counts
For a general word and character count, use Count Words or the site’s word counter. This page adds segmented frequency and export rather than repeating a reading-time estimate.
Questions & answers
Does phrase mode cross paragraphs?
No phrase crosses a source line break. Punctuation inside one line is not a boundary; word-like segments remain adjacent after punctuation is excluded.
Is a grapheme the same as a byte?
No. A grapheme can contain several code points and many UTF-8 bytes. This mode counts grapheme clusters, not storage size or UTF-16 length.
Are inputs uploaded or stored?
No. Processing runs on this device in a Web Worker. Input text is not sent to an API or saved in local storage. Changing an option cancels old work and clears the prior result.
Other Languages
References
How we make sure
We check this tool with the automated test suites linked below. Example checks are shown in their original language.
- Verification method
- Compare word/character/line/frequency totals, including empty input, Unicode, ordering and percentage denominators.
- Comparison reference
- Explicit text fixtures and expected counts.
- Verification scope
- These samples and boundaries do not prove correctness for every input.
Test source and cases (select a file to read it)
-
text-frequency-tools.test.js
- frequency totals, descending counts and percentages use the counted population
- Chinese segmentation and normalization keep actual words and canonical accented forms
These checks cover the listed examples and boundaries, not every possible input. Round trips and checks using the same library are not independent verification.