Skip to content

Complete NLP Pipeline

A full-featured example showing how to combine multiple NepaliKit modules for comprehensive Nepali text analysis.

Pipeline Code

from nepalikit.normalizer import normalize
from nepalikit.stemmer import stem_text
from nepalikit.pos_tagger import tag_pos
from nepalikit.number_extractor import extract_numbers
from nepalikit.manage_stopwords import remove_stopwords_from_text
from nepalikit.transliterate import devanagari_to_roman
from nepalikit.spell_checker import check_spelling

def analyze_nepali_text(text):
    """Complete NLP analysis of Nepali text."""
    # 1. Normalize
    normalized = normalize(text)

    # 2. Tokenize
    tokens = normalized.split()

    # 3. Remove stopwords
    filtered = remove_stopwords_from_text(normalized)

    # 4. Get POS tags
    pos_tags = tag_pos(tokens)

    # 5. Stem
    stemmed = stem_text(filtered)

    # 6. Extract numbers
    numbers = extract_numbers(text)

    # 7. Transliterate
    roman = devanagari_to_roman(text)

    return {
        'original': text,
        'normalized': normalized,
        'tokens': tokens,
        'pos_tags': pos_tags,
        'filtered': filtered,
        'stemmed': stemmed,
        'numbers': numbers,
        'roman': roman,
    }

# Example
text = "मैले २ लाख रुपैयाँमा किताब किनें।"
result = analyze_nepali_text(text)
for key, value in result.items():
    print(f"{key}: {value}")

Output

original: मैले २ लाख रुपैयाँमा किताब किनें।
normalized: मैले २ लाख रुपैयाँमा किताब किनें।
tokens: ['मैले', '२', 'लाख', 'रुपैयाँमा', 'किताब', 'किनें।']
pos_tags: [('मैले', 'PRON'), ('२', 'N_NN'), ('लाख', 'N_NN'), ('रुपैयाँमा', 'N_NN'), ('किताब', 'N_NN'), ('किनें।', 'N_NN')]
filtered: २ रुपैयाँमा किताब किनें।
stemmed: २ रुपैयाँ किताब किनें।
numbers: [('२', 2), ('२ लाख', 200000)]
roman: maailae 2 laaakha raupaaiyaaanmaaa kaitaaaba kainaen