支持多音字、繁体字、生僻字、英文
http://api.xlongwei.com/service/pinyin.json
参数 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
text | String | 必须 | 拼音 | 单字或句子 |
caseType | int | 可选 | 0 | 0小写1驼峰2大写 |
toneType | int | 可选 | 0 | 0有声调1无声调2数字 |
vcharType | int | 可选 | 0 | 迂0-ü 1-v 2-u: |
pinyin | String | pīn yīn | 拼音 |
header | String | py | 首字母缩写 |
words | [[word,phonetic],[word,phonetic]] | 支持英文音标 |
支持多音字:单 =》 dān chán shàn 支持生僻字:𠀝 =》 kōng 支持繁体字:慶 =》 qìng 支持英文:Good =》 gud
http://api.xlongwei.com/service/pinyin/sort
参数 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
array | String | 可选 | 中文数组 | [“重慶”,“背景”,“北京”,“杯子”],需url编码 |
caseType | int | 可选 | 0 | 0小写1驼峰2大写 |
toneType | int | 可选 | 2 | 0有声调1无声调2数字 |
vcharType | int | 可选 | 1 | 迂0-ü 1-v 2-u: |
pinyin | bool | 可选 | false | 是否返回拼音 |
[“重慶”,“背景”,“北京”,“杯子”]
array | String | [“杯子”, “北京”,“背景”,“重慶”] | 排序结果数组 |
pinyin | String | [“bei1zi5”,“bei3jing1”,“bei4jing3”,“chong2qing4”] | 拼音结果数组 |
示例:array方式可以get请求,body方式需post提交
ʌ ɑ: æ e ə ɜ: ɪ i: ɒ ɔ: ʊ u: aɪ aʊ eɪ oʊ ɔɪ eə ɪə ʊə b d f g h j k l m n ŋ p r s ʃ t tʃ θ ð v w z ʒ dʒ
pinyin4j,20903字,9874多音字词,Trie结构很占内存,补充了数据
MultiPinyinConfig.multiPinyinPath=/path/to/multipinyin.txt # 自定义多音字词 重庆 (chong2,qing4) 不重要 (bu2,zhong4,yao4) # 编码范围(汉字和拼音有别):〇=3007 líng yuán xīng <> líng Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS : 4E00-9FBF:CJK 统一表意符号 Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS :F900-FAFF:CJK 兼容象形文字 Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A :3400-4DBF:CJK 统一表意符号扩展 A Character.UnicodeBlock.GENERAL_PUNCTUATION :2000-206F:常用标点 Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION :3000-303F:CJK 符号和标点,〇=3007 Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS :FF00-FFEF:半角及全角形式 # houbb补充汉字 Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B,0x20000..2a6df Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C,0x2A700..2b73f Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D,0x2B740..2b81f Character.UnicodeBlock.PRIVATE_USE_AREA,0xE000..f8ff # 使用String.codePoints()而非toCharArray(),String.length()大于等于汉字数量 Character.isBmpCodePoint单个char,else if Character.isValidCodePoint,两个char StringBuilder.appendCodePoint转String,Character.highSurrogate+lowSurrogate转char(单个char时直接(char)codePoint) Integer.toHexString(codePoint).toUpperCase()转hex编码
tinypinyin,只有大写拼音,没有声调等风格
中文字符共有20378个:12295,19968 ~ 40869(Unicode的4E00 ~ 9FA5)排除524个非中文字符 拼音共有407个(不包含声调),需9位,short是16位=》byte存低8位,再用byte存8个汉字的第9位 初始映射:char --> String,如:20013(中) --> "ZHONG",两万多汉字映射4百多拼音,浪费内存 编码拼音:char --> short,short[21000]共需42K,final String[] PINYIN_TABLE = new String[]{"A", "AI", ... 编码压缩:byte[21000]存低8位,byte[21000/8]存第9位,共需21K+3K=24K 多音字基于词典实现:
jpinyin,基于pinyin4j改进,支持4E00-9FA5范围的20902个汉字,支持多音字、简繁转换、多种格式,上次更新2017年
houbb pinyin,性能是pinyin4j两倍,支持分词、词库、同音字,上次更新2022年,还会引入heaven和nlp-common两个依赖
PinyinStyleEnum= NORMAL,普通,不带声调,pin yin;toneType=1 vcharType=0|2 DEFAULT,默认,带声调,pīn yīn;toneType=0 NUM_LAST,末尾数字声调,pin1 yin1;toneType=2 FIRST_LETTER,首字母,p y INPUT,输入法,针对女 绿;toneType=1 vcharType=1
Bopomofo4j,支持沙盒模式,上次更新2020年