-
-
Notifications
You must be signed in to change notification settings - Fork 860
Open
Description
如下API,segmentation虽然对拼音做了分组,但是没有返回对应的汉字词语(或其索引)。
console.log(pinyin("我喜欢你", {
segment: "segmentit", // 启用分词
group: true, // 启用词组
})); // [ [ 'wǒ' ], [ 'xǐhuān' ], [ 'nǐ' ] ]
这样导致我无法根据返回值关联汉字与拼音,无法为字/词创建如下拼音注解。
<ruby>我<rt>wǒ</rt></ruby>
<ruby>喜欢<rt>xǐhuān</rt></ruby>
<ruby>你<rt>nǐ</rt></ruby>
要解决这个问题,需要修改API的返回值格式,否则就得先分词,再对与每个字/词调一遍pinyin()方法。
如果不想修改现有pinyin()方法的返回值格式(以免造成breaking change),那么我提议添加一个方法pinyin.segment()
,用法如下:
pinyin.segment("我喜欢你", {
method: "segmentit", // 选择分词的实现方法
group: true, // 启用词组
// ...其他选项保持与pinyin()的选项一样
})
// 返回值格式
[
{segment: '我', index: 0, candidates: ['wǒ']},
{segment: '喜欢', index: 1, candidates: ['xǐhuān']},
{segment: '你', index: 3, candidates: ['nǐ']}
]
注:原拼音候选数组将移动一个对象作为属性candidates
的值,另需在对象中返回属性segment
,index
二者至少其一。
参考类似的API设计
yihui
Metadata
Metadata
Assignees
Labels
No labels