protected static Map<String, UnicodeSet> createUnicodeSets() {
        final Map<String, UnicodeSet> unicodeSets = new TreeMap<>();
        unicodeSets.put("Latin, ASCII", new UnicodeSet("[:ASCII:]"));
        unicodeSets.put("Latin, non-ASCII", subUnicodeSet("[:Latin:]", "[:ASCII:]"));
        unicodeSets.put("Arabic", new UnicodeSet("[:Script=Arabic:]"));
        unicodeSets.put("Armenian", new UnicodeSet("[:Script=Armenian:]"));
        unicodeSets.put("Bengali", new UnicodeSet("[:Script=Bengali:]"));
        unicodeSets.put("Cyrillic", new UnicodeSet("[:Script=Cyrillic:]"));
        unicodeSets.put("Devanagari", new UnicodeSet("[:Script=Devanagari:]"));
        unicodeSets.put("Greek", new UnicodeSet("[:Script=Greek:]"));
        unicodeSets.put("Han", new UnicodeSet("[:Script=Han:]"));
        unicodeSets.put("Gujarati", new UnicodeSet("[:Script=Gujarati:]"));
        unicodeSets.put("Georgian", new UnicodeSet("[:Script=Georgian:]"));
        unicodeSets.put("Gurmukhi", new UnicodeSet("[:Script=Gurmukhi:]"));
        unicodeSets.put("Hangul", new UnicodeSet("[:Script=Hangul:]"));
        unicodeSets.put("Hebrew", new UnicodeSet("[:Script=Hebrew:]"));
        unicodeSets.put("Hiragana", new UnicodeSet("[:Script=Hiragana:]"));
        // unicodeSets.put("Kanji", new UnicodeSet("[:Script=Kanji:]"));
        unicodeSets.put("Kannada", new UnicodeSet("[:Script=Kannada:]"));
        unicodeSets.put("Katakana", new UnicodeSet("[:Script=Katakana:]"));
        unicodeSets.put("Malayalam", new UnicodeSet("[:Script=Malayalam:]"));
        // unicodeSets.put("Mandarin", new UnicodeSet("[:Script=Mandarin:]"));
        unicodeSets.put("Oriya", new UnicodeSet("[:Script=Oriya:]"));
        unicodeSets.put("Syriac", new UnicodeSet("[:Script=Syriac:]"));
        unicodeSets.put("Tamil", new UnicodeSet("[:Script=Tamil:]"));
        unicodeSets.put("Telugu", new UnicodeSet("[:Script=Telugu:]"));
        unicodeSets.put("Thaana", new UnicodeSet("[:Script=Thaana:]"));
        unicodeSets.put("Thai", new UnicodeSet("[:Script=Thai:]"));
        return unicodeSets;
    }
protected static Map < String , UnicodeSet > createUnicodeSets ( ) { final Map < String , UnicodeSet > unicodeSets = new TreeMap < > ( ) ; unicodeSets . put ( "Latin, ASCII" , new UnicodeSet ( "[:ASCII:]" ) ) ; unicodeSets . put ( "Latin, non-ASCII" , subUnicodeSet ( "[:Latin:]" , "[:ASCII:]" ) ) ; unicodeSets . put ( "Arabic" , new UnicodeSet ( "[:Script=Arabic:]" ) ) ; unicodeSets . put ( "Armenian" , new UnicodeSet ( "[:Script=Armenian:]" ) ) ; unicodeSets . put ( "Bengali" , new UnicodeSet ( "[:Script=Bengali:]" ) ) ; unicodeSets . put ( "Cyrillic" , new UnicodeSet ( "[:Script=Cyrillic:]" ) ) ; unicodeSets . put ( "Devanagari" , new UnicodeSet ( "[:Script=Devanagari:]" ) ) ; unicodeSets . put ( "Greek" , new UnicodeSet ( "[:Script=Greek:]" ) ) ; unicodeSets . put ( "Han" , new UnicodeSet ( "[:Script=Han:]" ) ) ; unicodeSets . put ( "Gujarati" , new UnicodeSet ( "[:Script=Gujarati:]" ) ) ; unicodeSets . put ( "Georgian" , new UnicodeSet ( "[:Script=Georgian:]" ) ) ; unicodeSets . put ( "Gurmukhi" , new UnicodeSet ( "[:Script=Gurmukhi:]" ) ) ; unicodeSets . put ( "Hangul" , new UnicodeSet ( "[:Script=Hangul:]" ) ) ; unicodeSets . put ( "Hebrew" , new UnicodeSet ( "[:Script=Hebrew:]" ) ) ; unicodeSets . put ( "Hiragana" , new UnicodeSet ( "[:Script=Hiragana:]" ) ) ; unicodeSets . put ( "Kannada" , new UnicodeSet ( "[:Script=Kannada:]" ) ) ; unicodeSets . put ( "Katakana" , new UnicodeSet ( "[:Script=Katakana:]" ) ) ; unicodeSets . put ( "Malayalam" , new UnicodeSet ( "[:Script=Malayalam:]" ) ) ; unicodeSets . put ( "Oriya" , new UnicodeSet ( "[:Script=Oriya:]" ) ) ; unicodeSets . put ( "Syriac" , new UnicodeSet ( "[:Script=Syriac:]" ) ) ; unicodeSets . put ( "Tamil" , new UnicodeSet ( "[:Script=Tamil:]" ) ) ; unicodeSets . put ( "Telugu" , new UnicodeSet ( "[:Script=Telugu:]" ) ) ; unicodeSets . put ( "Thaana" , new UnicodeSet ( "[:Script=Thaana:]" ) ) ; unicodeSets . put ( "Thai" , new UnicodeSet ( "[:Script=Thai:]" ) ) ; return unicodeSets ; }
Creates a map of unicode sets, with their names as keys.

There's a usable list of Unicode scripts on this page:
http://unicode.org/cldr/utility/properties.jsp?a=Script#Script

Additionally, this page has some explanations on some of the more exotic
sources, like japanese:
http://userguide.icu-project.org/transforms/general#TOC-Japanese

@return