Korean spell checker comparison: Bareun, Pusan National University (Bareun Hangul), and Naver
Korean spell checkers fall into three broad groups: rule-based, morphological-analysis-based, and, more recently, LLM-combined approaches. The Pusan National University Korean spelling/grammar checker is well known for its rule- and grammar-based checking, refined through long research. Bareun's spell checker takes a hybrid approach that uses morphological analysis + rule-based correction + an LLM fallback, and it is distinguished by returning the reason and the regulatory basis with every correction.
Comparison at a glance
| Item | Bareun | Pusan National University checker (Bareun Hangul) | Naver spell checker |
|---|---|---|---|
| Basic approach | Morphological analysis + rules + LLM hybrid | Rule- and grammar-based (research-based) | Add-on feature of web search |
| Correction rationale | Provides a reason (comment) and regulation source (rule_article) | Provides explanations | Brief help text |
| Correction scope | Spelling, word spacing, standard language, loanwords, typos, confusable words | Spelling, grammar, word spacing, including purified (replacement) terms. | Mainly spelling and word spacing |
| Input limit per request | Send the whole document (2,000 characters when not logged in; plan-specific limit when logged in) | 300 eojeol per request | 500 characters per request |
| API | gRPC/REST/connect-web, streaming | Web-centered, XML-based API available | No public API |
| Custom dictionary | Real-time updates with zero downtime | Limited | None |
| Delivery form | Cloud only; air-gapped installation available separately | Web service, with a wide track record of deliveries! | Web service |
The input limits of competing services are based on the values each service has published or announced, and may change with their policies.
Each checker has a different purpose
The Pusan National University checker's strength is academic reliability built on faithful rules and grammar. Bareun applies rule-based correction on top of morphological analysis results, uses the LLM fallback to decide ambiguous eojeol (space-delimited word units), and puts weight on presenting why it made each correction.
About the name Bareun Hangul
According to a 2025 news article published by the Pusan National University checker, it changed its name to "Bareun Hangul" (바른한글). In December 2024, Bareun announced to its users a plan to release a "spell check" feature. That the name "Bareun Hangul" came into use after that is, to us, deeply disappointing. Still, thanks to the well-known Pusan National University checker, the Bareun spell checker is also being searched for more often. Since both use the name "Bareun" (meaning "correct"), we will end up competing, in the more correct way, over who is more correct.
Bareun's hybrid correction flow
Bareun's correction is not a simple substitution. It proceeds in stages.
graph TD IN[Input sentence] --> TOK[Token post-processing]; TOK --> SP[Word spacing correction: joining and splitting]; SP --> CHK[Per-eojeol checks: frequency typos, non-standard words, confusable words]; CHK --> LF[LLM fallback: UNK/NA eojeol]; LF --> LS[LLM word spacing decision]; LS --> OUT[Correction result + rationale];
- Error detection at the segmentation stage: 14 of the segmentation model's 115 labels are for error detection. At the segmentation stage, where eojeol are split, it immediately identifies morphological errors in conjugation, contraction, and elision (for example,
ㅂ불규칙(irregular ㅂ),ㅅ불규칙(irregular ㅅ), and르불규칙(irregular 르) conjugation errors), and restores eojeol that contain errors. - Rule-based correction: It replaces frequent typos (for example,
스빈다 → 습니다) and non-standard words and dialect with standard words. After correcting a non-standard word, it also automatically adjusts the following particle (josa) depending on whether the preceding syllable ends in a final consonant. - LLM fallback: It supplements the correction of unclassified (
UNK) and unanalyzable (NA) eojeol with an LLM. However, it rejects excessive changes (more than 3 times the number of characters) based on jamo edit distance, so it does not alter the original text carelessly. - Rationale: For each correction item, it returns
RevisionCategory(spelling, word spacing, standard language, loanwords, typos, confusable words, and so on), a reason (comment), a regulation source (rule_article), and usage examples (examples).
The stage-by-stage behavior of this flow is covered in more detail in Spell check pipeline.
Checking long text in one go: input limits and context
The first constraint you hit when using a Korean spell checker in practice is not accuracy but the input limit per request. Naver's spell checker states 500 characters per request, and the Pusan National University checker (Bareun Hangul) states 300 eojeol per request. A cover letter, a one-page report, or a section of a paper exceeds this limit, so users have to cut the text themselves and enter it in several passes.
Bareun does not push the job of cutting text onto the user. If you send the document at once, the result comes back in a paragraph (contentsList) → sentence (sentencesList) structure, preserving the original offsets (beginOffset).
Without logging in, you can try up to 2,000 characters. When logged in, it checks up to the limit set by your plan in one pass.
What you lose by cutting text
When you cut text arbitrarily and enter it in pieces, loss occurs in three places.
- Sentences cut at the boundary: If a sentence is broken in the middle, the evidence for judging conjugated forms and particle combinations disappears. Bareun's correction works on top of morphological analysis results, so the segmentation-stage error detection labels (14 of 115) work properly only when the sentence is intact.
- Judgments that differ by piece: Even the same spelling may or may not be corrected depending on the surrounding context. Bareun performs confusable-word correction, which uses context to tell apart similar-sounding words, and sense disambiguation of homographs. If you cut the text into pieces, each piece is judged independently and results within the same document conflict.
- Document-level consistency: Proper nouns and technical terms must be protected by the custom dictionary so that they are handled the same way across the whole document. If you split the text into several requests, you have to manage this consistency yourself.
What is actually true
We state this precisely, without exaggeration. The context window that Bareun's models see is not unlimited. The segmentation model processes up to 160 characters at a time and splits longer sentences. For parts of speech, the segmentation-linked POS model reads up to 1,024 characters and 512 slots at a time, and anything longer is handled by the existing POS tagging model (see Segmentation-linked POS tagging and Transformer model architecture).
So when Bareun talks about "keeping context in long text," it does not mean the model sees the whole document at once. It means the following three things.
- The unit of input is the document. Users do not need to cut text to fit 500 characters or 300 eojeol.
- Paragraph and sentence structure and original positions are preserved in the result. You can attach correction results back to the original text as they are.
- The correction policy applies to the whole document at once. The custom dictionary, correction options, and sentence-level checking (
enable_sentence_check) apply uniformly to the whole document.
Errors that go beyond a single sentence (semantic redundancy, subject-predicate agreement, overuse of passive and causative forms, and so on) are handled by sentence-level error correction, which is described in Spell check pipeline.
Revision categories (RevisionCategory)
Bareun classifies and presents corrections as follows. The side that processes the response can tell what was corrected and why.
| Category | Meaning |
|---|---|
GRAMMER | Spelling and grammar (conjugation, particle combination, punctuation) |
WORD | Word rules (sai-siot (the linking ㅅ), initial sound law (dueum), Sino-Korean combination) |
SPACING | Word spacing |
STANDARD | Standard language |
TYPO | Typos |
FOREIGN_WORD | Loanword transcription rules |
CONFUSABLE_WORDS | Confusable words |
The meaning and examples of each category are described in more detail in Check item categories.
Caveats when comparing
Each checker differs in correction policy, scope, and target text, so results can differ even for the same sentence. Bareun's spell checker is cloud only and paid (morphological analysis is free for research and non-commercial use). Performance figures for other checkers vary with the evaluation set and version, so we avoid definitive comparisons.
Related documents
- Using the spell checker — how to call correction through the API
- Spell check pipeline · Check item categories — internal behavior and the classification system
Frequently asked questions
Q. Why does Bareun use an LLM as well?
Rules alone cannot catch every out-of-vocabulary word (OOV) or context-dependent error. Bareun uses the LLM fallback to decide eojeol that are hard to handle with rules, and it rejects excessive changes based on edit distance to keep things stable. Morphological analysis alone also achieves a very high correction success rate. We keep handoffs to the LLM to a minimum.
Q. Can I also get the reason and basis for a correction?
Yes. For each correction item, we provide the category, reason (comment), regulation source (rule_article), and usage examples.
You can explain "why it was corrected this way" to your users.
In particular, to detect grammatical errors, Bareun has steadily increased its segmentation labels, and there are now 115 in total, including the whitespace-handling rule (SP). Of these, 14 are labels for spell checking (error detection), added so that the segmentation stage can recognize the morphological errors that Korean speakers commonly make.
Q. What does it mean to catch spelling errors at the segmentation stage?
Bareun's segmentation model has 115 labels, and 14 of them are for spell checking (error detection). At the stage where eojeol are split at morpheme boundaries, it immediately identifies morphological errors such as irregular ㅂ, ㅅ, and 르 conjugation errors, restores eojeol that contain errors to the correct form, and passes them on to correction.
Q. How is it different from the Pusan National University checker?
The Pusan National University checker is rule- and grammar-based. Bareun builds on morphological analysis and uses rules and an LLM together. It also provides gRPC, REST, and connect-web APIs, streaming correction, and a zero-downtime custom dictionary.
Q. Can I check long text in one go?
Yes. Bareun accepts the whole document and returns the result while keeping the paragraph and sentence structure and the original positions. Naver's spell checker states 500 characters per request, and the Pusan National University checker (Bareun Hangul) states 300 eojeol per request, so for long text such as cover letters, reports, and papers, users have to cut it themselves and enter it in several passes. Bareun lets you try up to 2,000 characters without logging in, and when logged in it checks up to the limit set by your plan in one pass.
Q. Do results change if I cut the text into pieces?
They can. If a sentence is broken in the middle, the evidence for judging conjugated forms and particle combinations disappears, and since confusable-word correction and homograph sense disambiguation rely on context, judgments may conflict between pieces. The consistency of proper nouns and technical terms protected by the custom dictionary also becomes harder to manage the more you split your requests. That said, the model context window of Bareun itself is not unlimited: 160 characters for the segmentation model, and up to 1,024 characters and 512 slots for parts of speech. Sentences longer than that are split and processed. "Keeping context in long text" means users do not need to cut the text, and the paragraph and sentence structure and the correction policy are applied consistently to the whole document.