Skip to content

Normalization

The normalizer module provides Unicode normalization, whitespace cleanup, and script detection for Nepali text.

Features

  • Unicode NFC normalization: Standardizes composed/decomposed characters
  • ZWNJ/ZWJ stripping: Removes zero-width joiner/non-joiner characters
  • Control character cleanup: Strips non-printable characters
  • Script detection: Identifies Devanagari, Latin, or mixed scripts

Basic Usage

from nepalikit.normalizer import normalize, detect_script

# Normalize text
text = "म  नाम   राम हो"
normalized = normalize(text)
print(normalized)  # "म नाम राम हो"

# Detect script
script = detect_script("मेरो नाम राम हो")
print(script)  # "devanagari"

script = detect_script("Hello world")
print(script)  # "latin"

script = detect_script("नमस्ते world")
print(script)  # "mixed"

Why Normalize?

Nepali text from different sources may use inconsistent Unicode representations. Normalization ensures consistent processing downstream.