Overview
Analyze text locally for structure, style, vocabulary, readability, and language findings, then export the results.
Features
- Lokale Textanalyse
- Stil- und Lesbarkeitsprüfung
- Mehrsprachige Analyse
- Ergebnisexport
Manual
Requirements
Use a current browser with JavaScript and Web Workers. Initial loading of the application and language data needs a network connection. Text is processed locally. Persistent settings need browser storage. Morphological and grammatical analysis is available for German only.
Steps
Open a UTF-8 text file or paste plain text. Choose DE, EN or ES and select Analyze. Select a result occurrence to highlight the source text. Analyze again after editing and export JSON or Excel as needed.
Parameters
Toolbars control the text language, automatic analysis after a typing pause, font size, editor synchronization and view-specific filters. Result filters do not change the source text.
Result
The workbench displays metrics, grouped occurrences and applicable German grammar assignments. JSON exports the completed analysis; Excel exports the selected sections. Unknown or ambiguous assignments remain identifiable.
Common errors
The wrong language produces unsuitable findings. Editing makes previous results stale. An unknown word is not automatically misspelled. Blocked browser storage can prevent dictionaries and settings from persisting.
Troubleshooting
Check language, plain-text format and the displayed error. Let language data finish loading, then analyze again. Cancel a long-running analysis if needed. Save your text before reloading or deleting website data.
Start and editing
Open the Text Analyser workbench. Paste plain text, open a UTF-8 text file or drop a file into the editor. Select the text language (German, English or Spanish) independently of the interface language. Click Analyse. The status bar shows progress, elapsed time and document counts. Analysis runs locally; your text is not uploaded to an analysis server. Changing text or language invalidates the old results and disables their exports until a new analysis finishes.
Toolbar actions:
| Action | Effect |
|---|---|
| Open / Download text | Read a text file / save the complete current editor text. |
| Undo / Redo | Undo or repeat editor changes. |
| Analyse / Cancel | Start analysis / terminate the active worker operation. |
| Automatic analysis | Analyse after an editing pause; cancellation switches this off. |
| JSON / Excel | Export the completed revision. |
| Smaller / Reset / Larger font | Change editor font size within the supported limits. |
| Editor / Manuscript / Sentences | Switch the text presentation. |
| Analysis / Sanitizer / Search–Regex | Switch the right sidebar's tools. |
| Follow editor | Reveal the corresponding result when the editor selection changes. |
| DE / EN / ES | Select text language, not interface language. |
Sidebar controls collapse/reopen a sidebar, resize it or change icon/text navigation. Hover an icon for its label. Disabled actions require current results, non-empty text or an idle worker. A completed analysis of unchanged text is reused.
Results
The base category provides statistics, spelling, abbreviations, word frequency, hapax words, vocabulary diversity, sentence and paragraph lengths, sentence rhythm, speech and speech share, readability, brackets/quotes, punctuation, n-grams, repeated phrases, sentence starts, sentence endings, capitalization and text components. Length distributions are available inside their parent views.
Select a result and then an occurrence to navigate to the exact source. AT trees have no pagination; large datasets are virtualized. Their toolbar sorts roots, collapses nodes or restores expansion. Search finds leaves and reveals a selected suggestion; it does not necessarily hide unmatched roots. Selection and expansion are separate. Parameter/information views explain calculations and boundaries; use the back arrow to return. Controls immediately below a tree retain a small gap.
Spelling uses Hunspell independently of morphology. An unknown word is not proof of an error. Correct text in the editor; this view does not perform replacements. Capitalization counts spelling shapes, including sentence beginnings. Text components show accepted tokenizer classifications, not a grammatical verdict. Sentence endings classify terminal punctuation; they do not determine clauses. Rhythm compares sentence word counts and changes between successive sentences. Type-token ratio depends strongly on text length; compare the documented length-aware diversity measures and parameters. Readability is an estimate, with language-specific formulas; an unavailable score (including an unimplemented HIX mapping) is not reported as a fabricated number.
German dictionary analyses
German additionally offers potential filler words, repetitions excluding those matches, content words, stopword share, active/passive constructions, adverbs, weak verbs, modal verbs, nominalizations, hedging words, intensifiers, word-class distribution. Stopwords are common functional words; filler candidates are context-dependent style findings. Neither is an instruction to delete words. Excel includes recorded base-ID groups in its word-family sheet; there is currently no separate word-family subview. Those groups do not guarantee complete linguistic stem families. Active/passive classification uses the available sentence and verb-complex evidence; ambiguous or unsupported constructions remain unresolved.
In Sentences, source and analysis occupy aligned rows. Hide/show the right
analysis half or resize the divider. Switch between word classes and clause
structure (German HS/NS). Word classes follow source-word order, separated by |;
? indicates an uncertain preference, not another occurrence. Hover or focus an
assignment or clause to highlight its corresponding source span. Colored toggles
select which word classes are highlighted. Return to CodeMirror with the back
arrow. Headings and isolated years need not be complete grammatical sentences.
Search and sanitization
Search/Regex shows matches in the current text. Enter the search expression and replacement, inspect its matches, then use the available navigation/replacement actions. Invalid patterns are reported. Sanitizer rules preview changes before application. Apply the selected changes only after inspecting them; editor Undo reverses applied changes. Neither tool silently edits a finished analysis.
Downloads
Excel opens an AT dialog. Choose a report or full analysis, all results or the current result view, and optional occurrence/grammar sheets. A report emphasizes readable summaries; full analysis includes tokens, candidate readings, features, morphemes and sentence structures with stable IDs. Search and collapsed branches do not truncate the export. Whole-document statistics keep their original scope. Sheets include filters, frozen headers and links. Long cell texts and excessive row sets are split without dropping content. Workbook headings are currently German. Close dismisses the dialog; Cancel terminates a running export.
JSON format 2 stores repeated objects once in an object table. The public
readAnalysisJson reader reconstructs all analysis values and also accepts older
inline exports. Both formats include the original text and can therefore contain
confidential data. Files are downloaded locally.
Storage, developer mode and limits
The browser stores UI preferences locally and verifies cached dictionary releases. A failed update keeps a previously verified release; missing cache files are repaired online. German morphology is loaded compressed on first use. A fully loaded open tab can work offline. First-time offline loading is not supported. Keep your own text files; browser storage is not a backup service.
The desktop DevLab exposes the flag dictionary, supplemental abbreviations/proper
names, analysis pipeline, single-word decomposition, regex patterns, sentence lab
and workbench. New, Save, Reset, Delete and Build FST operate on
actual dictionary entries. Enter IPA, syllable/morpheme boundaries and stem;
| boundaries must reconstruct the spelling. Word-class checkboxes activate
right-sidebar matrices describing this spelling, not hypothetical other forms.
Adjective comparison fields record related forms. The local 1984 document is a
development input, not a gold grammatical annotation or a redistributable sample.
Missing dictionary entries, missing boundaries and ambiguous grammar remain visible. German morphology is unavailable for English/Spanish. Very long texts and full exports remain limited by browser memory. Cancel, reduce the input or reload after an error; errors do not imply that analysis completed successfully.
Data sources
akyao.text.analyser
Hunspell WebAssembly — 0.3.0
LGPL-2.0 OR GPL-2.0 OR MPL-1.1 · Hunspell and hunspell-wasm contributors; original copyright and licence texts retained in vendor/hunspell-wasm.
Modifications: Synchronous embedded loader; unreachable Node loaders removed by scripts/generate-hunspell-runtime.mjs. The original binary is unchanged.
Redistribution: Original licence choices apply. The source download includes the pinned upstream C++/WASM sources, build instructions, unmodified binary, modified loader and adaptation generator.
German Hunspell dictionary de_DE_frami — LibreOffice 32b006a2c22a4ac7e8ed3f03346f7b3d85a970a4
GPL-2.0 OR GPL-3.0 · Bjoern Jacke; Franz Michael Baumann; contributors.
Modifications: ISO-8859-1 to UTF-8 transcoding; SET UTF-8. Provenance and digests: assets/de-DE/provenance.json.
Redistribution: Distribute original authorship, GPL notices and corresponding dictionary source.
British English Hunspell dictionary — 4.0.1 (2025-04-01)
LGPL-3.0-or-later · Kevin Atkinson; David Bartlett; Brian Kelk; Andrew Brown; Marco A. G. Pinto and contributors.
Modifications: Distributed aff/dic bytes match the pinned upstream commit.
Redistribution: Retain LGPL and upstream notices; corresponding dictionary source remains available under the original licence.
Spanish Hunspell dictionary — RLA-ES 2.9
GPL-3.0-or-later OR LGPL-3.0-or-later OR MPL-1.1-or-later · Santiago Bosio and RLA-ES contributors.
Modifications: Distributed aff/dic bytes match the pinned upstream commit.
Redistribution: Retain original attribution and notices; redistribution is subject to the chosen original licence.
German Wiktionary lexical additions — 2026-10-05
CC-BY-SA-4.0 · German Wiktionary contributors. Permanent revision URLs and author histories are retained in the distributed provenance catalogue.
Modifications: Grammatical facts mapped to the existing morpheme/reading vocabulary; reusable stems isolated; no definitions or book text included in these additions.
Redistribution: Retain attribution, indicate modifications and share derived lexical data under CC BY-SA 4.0. This does not change the licence of separately owned application code.
Runtime dependencies by tool
- @codemirror/autocomplete 6.20.3: MIT
- @codemirror/commands 6.10.4: MIT
- @codemirror/language 6.12.4: MIT
- @codemirror/lint 6.9.7: MIT
- @codemirror/merge 6.12.2: MIT
- @codemirror/search 6.7.1: MIT
- @codemirror/state 6.7.1: MIT
- @codemirror/view 6.43.8: MIT
- @lezer/common 1.5.2: MIT
- @lezer/highlight 1.2.3: MIT
- @lezer/lr 1.4.10: MIT
- @marijn/find-cluster-break 1.0.3: MIT
- @tabler/icons-react 3.47.0: MIT
- @tabler/icons 3.47.0: MIT
- codemirror 6.0.2: MIT
- crelt 1.0.7: MIT
- react-dom 19.2.8: MIT
- react 19.2.8: MIT
- scheduler 0.27.0: MIT
- style-mod 4.1.3: MIT
- w3c-keyname 2.2.8: MIT