递归火山软件开发平台

标题: (开源)超级取拼音,很强,因为是超级的不是普通的 [打印本页]

作者: weilai    时间: 前天 16:30
标题: (开源)超级取拼音,很强,因为是超级的不是普通的
本帖最后由 weilai 于 2025-10-26 20:47 编辑

超级取拼音,只包含一个高速哈希表模块,如果不想用高速哈希表,换成普通哈希表即可,几乎没什么影响
词库来自pinyin-data
应该是支持任意汉字吧
(, 下载次数: 13)
(, 下载次数: 12)


作者: shuimiao    时间: 前天 16:40
超级在哪?自动识别多音字选择准确拼音吗
作者: weilai    时间: 前天 16:59
shuimiao 发表于 2025-10-25 16:40
超级在哪?自动识别多音字选择准确拼音吗

准确度应该比普通的(无词库)高很多的,因为有一个大词库,只要词库内能匹配到的词就会有准确的拼音
作者: 小小小小鸟    时间: 前天 17:03
支持分享
作者: 山梦    时间: 前天 18:44
大佬厉害

作者: 山梦    时间: 昨天 11:18
取无调拼音时,带āáǎà时,有错,AI下,修改如下
<火山程序 类型 = "通常" 版本 = 1 />

方法 去音调数组 <公开 注释 = "将音调替换成无音调的">
参数 含音调拼音 <类型 = 字符标准数组类 注释 = "直接替换">
{
    变量 i <类型 = 整数>
    变量 单字符 <类型 = 字符>
    变量 j <类型 = 整数>
    循环 (0, 含音调拼音.取成员数 (), i)
    {
        单字符 = 含音调拼音.取成员 (i)
        如果 (单字符 < 128)  // 带拼音的没有128以内的
        {
            到循环尾
        }
        j = 0
        判断循环 (j < 30)
        {
            如果 (单字符 == 拼音对应1 [j])
            {
                跳出循环
            }
            j = j + 1
        }
        如果 (j < 30)
        {
            // 找到对应组中的无音调字符(每组最后一个)
            变量 组索引 <类型 = 整数>
            组索引 = j / 5 * 5 + 4
            含音调拼音.置成员值 (i, 拼音对应1 [组索引])
        }
    }
}

作者: weilai    时间: 昨天 15:44
试了下,好像没发现错误,具体的错误是什么呢?能举个例子吗
作者: 山梦    时间: 昨天 18:31
“田田”tiɑn tiɑn  取无音调拼音,变成错误的tion tion。大佬你试下
作者: weilai    时间: 昨天 18:50
山梦 发表于 2025-10-26 18:31
“田田”tiɑn tiɑn  取无音调拼音,变成错误的tion tion。大佬你试下

我试了试是正确的。你是不是不小心把类的成员,拼音对应那里的 a 不小心改成o了 (, 下载次数: 0)

(, 下载次数: 0)


作者: 山梦    时间: 昨天 19:45
本帖最后由 山梦 于 2025-10-26 19:47 编辑

大佬对,我错了。我把拼音改了a改成ɑ了,v改成ü。所以出错
作者: weilai    时间: 昨天 20:32
本帖最后由 weilai 于 2025-10-26 20:48 编辑
山梦 发表于 2025-10-26 19:45
大佬对,我错了。我把拼音改了a改成ɑ了,v改成ü。所以出错

没有错,你这样改挺好的,直接取最后一位了。我也直接更新成这样了,这样不管无符号改成什么样的都能取到
如果 (j < 30)
{
    含音调拼音.置成员值 (i, 拼音对应 [j / 5 * 5 + 4])

}





欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4