我正在尝试将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
答案 0 :(得分:1)
不确定该库是否提供所需的确切解决方案,但我编写了一个名为MgntUtils的库,并将其作为开源发布,可以在Maven Central上作为Maven工件使用 (请参见here)以及github上都有一个实用程序,可将任何String转换为unicode序列,反之亦然。您所要做的就是:
String codes = StringUnicodeEncoderDecoder.encodeStringToUnicodeSequence("Hello world");
它将返回字符串"\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064"
这对于任何语言(包括特殊字符)的任何String都适用。有一种方法可以解码回去:
decodeUnicodeSequenceToString(String unicodeSequence)
这里是javadoc链接。您可以轻松地将unicode序列字符串分解为单个unicode,并像这样存储它们,甚至可以将它们转换回为单独的Strings并获取您的字符。这是指向有关该库的文章Open Source Java library with stack trace filtering, Silent String parsing Unicode converter and Version comparison的链接
答案 1 :(得分:0)
我编写了一个小的python函数,将Gujarati
的单词转换为Syllables
的列表。我的代码受此Github存储库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("સંગીત એ એવું પવિત્ર ઝરણું છે, જેનાં વહેતા તરંગોથી અંતરનાં તાર રણઝણી ઉઠે છે.")
输出:
['સં',
'ગી',
'ત',
' ',
'એ',
' ',
'એ',
'વું',
' ',
'પ',
'વિ',
'ત્ર',
' ',
'ઝ',
'ર',
'ણું',
' ',
'છે',
',',
' ',
'જે',
'નાં',
' ',
'વ',
'હે',
'તા',
' ',
'ત',
'રં',
'ગો',
'થી',
' ',
'અં',
'ત',
'ર',
'નાં',
' ',
'તા',
'ર',
' ',
'ર',
'ણ',
'ઝ',
'ણી',
' ',
'ઉ',
'ઠે',
' ',
'છે',
'.']
查找古吉拉特语字符here的Unicode。