为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Cats萌萌 2022-05-21 20:55:44
我正在尝试将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
查看完整描述

2 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

不确定该库是否提供了您想要的确切解决方案,但我编写了一个名为 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文章的链接,它解释了该库


查看完整回答
反对 回复 2022-05-21
?
aluckdog

TA贡献1847条经验 获得超7个赞

我编写了一个小 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_chars


syllabify_gu("સંગીત એ એવું પવિત્ર ઝરણું છે, જેનાં વહેતા તરંગોથી અંતરનાં તાર રણઝણી ઉઠે છે.")

输出:


['સં',

 'ગી',

 'ત',

 ' ',

 'એ',

 ' ',

 'એ',

 'વું',

 ' ',

 'પ',

 'વિ',

 'ત્ર',

 ' ',

 'ઝ',

 'ર',

 'ણું',

 ' ',

 'છે',

 ',',

 ' ',

 'જે',

 'નાં',

 ' ',

 'વ',

 'હે',

 'તા',

 ' ',

 'ત',

 'રં',

 'ગો',

 'થી',

 ' ',

 'અં',

 'ત',

 'ર',

 'નાં',

 ' ',

 'તા',

 'ર',

 ' ',

 'ર',

 'ણ',

 'ઝ',

 'ણી',

 ' ',

 'ઉ',

 'ઠે',

 ' ',

 'છે',

 '.']

在此处查找古吉拉特语字符的 Unicode 。


查看完整回答
反对 回复 2022-05-21
  • 2 回答
  • 0 关注
  • 162 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号