用户工具

站点工具


api:pinyin

拼音接口

支持多音字、繁体字、生僻字、英文

  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提交

Ansj拼音Demo示例 音标 pinyin

ʌ ɑ: æ 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年

api/pinyin.txt · 最后更改: 2022/06/06 10:30 由 admin