将单词标记为古吉拉特语的音节(古吉拉特语字符)

我正在尝试将Gujarati(一种Indian语言)单词标记为字符。


示例:વાનર 是单词,然后我想要 [વા, ન, ર] 等字符列表


我试过java.text.BreakIterator了,Gujarati locale但没有用。虽然它非常适用于Hindi.


这是代码:


import java.text.*;

import java.util.*;


public class Language{

    public static void main(String[] args) {

        String text = "વાનર";

        Locale gujarati = new Locale("gu","IN");

        BreakIterator breaker = BreakIterator.getCharacterInstance(gujarati);

        breaker.setText(text);

        int start = breaker.first();

        for (int end = breaker.next(); end != BreakIterator.DONE; start = end, end = breaker.next()) {

            System.out.println(text.substring(start,end));

        }    

    }

}

输出:


是否有任何图书馆可以正确地做到这一点?我对其他语言很好Java


Cats萌萌
浏览 163回答 2
2回答

慕田峪7331174

不确定该库是否提供了您想要的确切解决方案,但我编写了一个名为 MgntUtils 的库并将其作为开源发布,可作为 Maven 中心(见此处)以及github上的 Maven 工件那里有一个实用程序可以转换任何字符串到 unicode 序列,反之亦然。您所要做的就是:String codes = StringUnicodeEncoderDecoder.encodeStringToUnicodeSequence("Hello world");它会返回字符串"\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064"这同样适用于任何语言的任何字符串,包括特殊字符。有一种方法可以进行解码:decodeUnicodeSequenceToString(String unicodeSequence)这是javadoc链接。您可以轻松地将 unicode 序列字符串分解为单个 unicode 并像这样存储它们,甚至将它们转换回单独的字符串并获取您的字符。这是文章Open Source Java library with stack trace filtering、Silent String parsing Unicode converter 和 Version comparison文章的链接,它解释了该库

aluckdog

我编写了一个小 Python 函数来将Gujarati单词转换为Syllables. 我的代码受到这个 Github repo libindic/syllabalizer的启发。代码:def syllabify_gu(text):        signs = [u'\u0abe',                u'\u0abf',                u'\u0ac0',                 u'\u0ac1',                 u'\u0ac2',                 u'\u0ac3',                 u'\u0ac4',                 u'\u0ac5',                u'\u0ac7',                 u'\u0ac8',                 u'\u0ac9',                u'\u0acb',                u'\u0acc',                u'\u0a81',                u'\u0a82',                u'\u0a83',                u'\u0acd']         limiters = ['\"', '\'', '`', '!', ';', ', ', '?', '.']        lst_chars = []        for char in text:            if char in limiters:                lst_chars.append(char)            elif char in signs:                lst_chars[-1] = lst_chars[-1] + char            else:                try:                    if char == u'\u0ab0' and len(lst_chars) > 0 and lst_chars[-1][-1] == u'\u0acd' and lst_chars[-1][-2] == u'\u0aa4':                         lst_chars[-1] = lst_chars[-1] + char                    else:                        lst_chars.append(char)                except IndexError:                    lst_chars.append(char)        return lst_charssyllabify_gu("સંગીત એ એવું પવિત્ર ઝરણું છે, જેનાં વહેતા તરંગોથી અંતરનાં તાર રણઝણી ઉઠે છે.")输出:['સં', 'ગી', 'ત', ' ', 'એ', ' ', 'એ', 'વું', ' ', 'પ', 'વિ', 'ત્ર', ' ', 'ઝ', 'ર', 'ણું', ' ', 'છે', ',', ' ', 'જે', 'નાં', ' ', 'વ', 'હે', 'તા', ' ', 'ત', 'રં', 'ગો', 'થી', ' ', 'અં', 'ત', 'ર', 'નાં', ' ', 'તા', 'ર', ' ', 'ર', 'ણ', 'ઝ', 'ણી', ' ', 'ઉ', 'ઠે', ' ', 'છે', '.']在此处查找古吉拉特语字符的 Unicode 。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java