A Novel Python CNN Algorithm Helping Increase Literacy of Traditional Culture for Modern Society — recognizing handwritten Javanese, Sundanese & Lampung scripts with 95–98% accuracy.
The 2021 Javanese Script Congress proposed replacing Latin script
with Javanese script in public life across Yogyakarta.
However, this faces significant challenges due to the lack of widespread
literacy in Javanese, especially among younger generations.
IndoLLNet introduces a CNN-based framework
for handwritten character recognition covering
Javanese, Sundanese, and Lampung scripts —
handling diacritics (sandhangan), conjuncts
(pasangan), numerals, and all six vowel sounds.
# Dimensions of input and kernel input_h, input_w = len(input_matrix), len(input_matrix[0]) kernel_h, kernel_w = len(kernel), len(kernel[0]) # Output size output_h = input_h − kernel_h + 1 output_w = input_w − kernel_w + 1 # Convolution loop for i in range(output_h): for j in range(output_w): conv_sum = 0 for ki in range(kernel_h): for kj in range(kernel_w): conv_sum += input_matrix[i+ki][j+kj] \ * kernel[ki][kj] output_matrix[i][j] = conv_sum # ReLU + bias bias = random.choice([−1, 1]) relu_map = [[max(0, v+bias) for v in row] for row in output_matrix] # Max pooling 2×2, stride 2 pooled_map[i//2][j//2] = max(pooling_region)
| Script Type | Category | Accuracy | Bar |
|---|---|---|---|
| Javanese | Base Characters (20) | 98% | |
| Javanese | Pasangan (Conjuncts) | 97% | |
| Javanese | Sandhangan (Diacritics) | 96% | |
| Javanese | Vowel Disambiguation | 95% | |
| Javanese | Numerals (0–9) | 98% | |
| Sundanese | Base Characters | 97% | |
| Lampung | Base Characters | 96% | |
| All | Word-level Recognition | 95% |
Data Sorcerers is an organization that prepares digital talent for the AI world through project-based and open source initiatives. It bridges students with professionals, practitioners, and academics to build a collaborative ecosystem.