Skip to content

启用segmentation之后,支持让字/词与拼音的建立关联 #389

@fuweichin

Description

@fuweichin

如下API,segmentation虽然对拼音做了分组,但是没有返回对应的汉字词语(或其索引)。

console.log(pinyin("我喜欢你", {
  segment: "segmentit",         // 启用分词
  group: true,                  // 启用词组
}));                            // [ [ 'wǒ' ], [ 'xǐhuān' ], [ 'nǐ' ] ]

这样导致我无法根据返回值关联汉字与拼音,无法为字/词创建如下拼音注解。

<ruby><rt></rt></ruby>
<ruby>喜欢<rt>xǐhuān</rt></ruby>
<ruby><rt></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设计

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions