Разделение гласных и согласных в индийских /abugida скриптах с использованием Python

Я пытаюсь создать программу, которая поможет мне конвертировать скрипт unicode abugida в список гласных и согласных. Я добился разделения фонетических звуков, используя следующий сценарий, взятый из игры вокруг персонажей деванагари

#!/usr/bin/python
# -*- coding: utf-8 -*-

import unicodedata, sys

def splitclusters(s):
    """Generate the grapheme clusters for the string s. (Not the full
    Unicode text segmentation algorithm, but probably good enough for
    Devanagari.)

    """
    virama = u'\N{DEVANAGARI SIGN VIRAMA}'
    cluster = u''
    last = None
    for c in s:
        cat = unicodedata.category(c)[0]
        if cat == 'M' or cat == 'L' and last == virama:
            cluster += c
        else:
            if cluster:
                yield cluster
            cluster = c
        last = c
    if cluster:
        yield cluster

name_in_indic = raw_input('Enter your name in devanagari: ').decode('utf8')

print (','.join(list(splitclusters(name_in_indic))))

Однако я намерен пойти дальше и отделить все гласные и согласные.

E.g हिंदी = ह+इ+न+द+ई 

что аналогично тому, как хинди становится h+i+n+d+i только в индийских скриптах, которые каждая фонема рассматривает как символ

Как мне это сделать?

0 ответов

Другие вопросы по тегам