Design Philosophy
BASA is built around a simple principle:
Conservative defaults, developer-friendly APIs, and practical tools for Indonesian NLP.
The project prioritizes reliability and maintainability over rapid feature expansion.
Conservative by Default
Text normalization can be destructive.
Proper nouns, technical terms, abbreviations, and domain-specific vocabulary should not be modified without explicit user intent.
For this reason:
normalize(
text,
apply_typo=False
)
Typo correction is always opt-in.
One-Line APIs
Most users should not need to read extensive documentation before becoming productive.
The simplest workflow should look like this:
from basa import quick
quick("gw gk ngerti bngtttt")
BASA aims to provide sensible defaults while still allowing advanced configuration when necessary.
Indonesian First
BASA focuses primarily on Indonesian language processing.
Many global NLP tools are designed for English-first workflows, leaving Indonesian-specific problems underrepresented.
Examples include:
- Social media slang normalization
- Repeated-character reduction
- Regional language support
- Indonesian evaluation pipelines
The project addresses these problems directly.
Regional Language Support
Indonesia has hundreds of local languages, many of which remain underrepresented in modern NLP ecosystems.
Future BASA releases aim to support:
- Javanese
- Sundanese
- Additional regional languages
The long-term goal is practical tooling rather than academic benchmarks alone.
Explicit Over Implicit
BASA prefers explicit configuration over hidden behavior.
For example:
normalize(
text,
apply_typo=True,
lowercase=False
)
Users should always understand which transformations are being applied to their data.
Stable Public APIs
Breaking changes are introduced cautiously.
The public API is intentionally small:
from basa import (
normalize,
quick,
slang,
typo,
)
A small API surface is easier to maintain, document, and support over time.
Incremental Growth
BASA follows an incremental development model.
Instead of shipping many unfinished features, the project focuses on:
- Strong testing
- Good documentation
- Stable releases
- Conservative defaults
- Real-world usability
The objective is not to become the largest NLP framework, but to become a dependable toolkit for Indonesian and regional language processing.