我把这个事儿说给柏林后 , 我们一时忍不住嘴角抽搐 , 实在无法解释 。这是啥奇怪的机制么?还是什么更莫名其妙的bug?
丈二和尚摸不着头脑 。
在沉默了几分钟后 , 一个奇怪的想法浮上了我的心头——“Q”、“J”……难不成 , “浅”居然是个多音字?!
最终 , 百度百科给出了答案 , 毫无疑问 , 是我才疏学浅了 。
“浅”确实是个多音字 , 发“qiǎn”这个音时 , 指代水不深和一些表示距离、时间、内容等不深、不多的抽象含义;发“jiān”这个音时 , 是古时候形容水流声的象声词 , 现在基本不用了 。
所以『浅入深出』在“ J ”之下并不是什么bug , 有很完整的底层逻辑 , 就是按照首字母排列 。
倒是我们在观察的时候不仔细 , 进行归因的时候局限在常识、经验里面 , 并且未给到更广泛、合理的猜测和验证方案 。如果这是个正式项目 , 我们可能就因为错误的验证浪费了一些工作周期 。
这是个警示 , 通常说的不要陷入惯性思维和先入为主 , 在这里我们犯了个遍 , 在给出猜想的时候也没给到预留的空间 , 值得反……反思个p呀!
谁知道“浅”是个多音字啊!就算知道 , 为什么多音字也用那个不常用的发音啊!很奇怪啊好不好!
为此我们决定一探究竟 , 微信的中文多音字首字母排列到底是什么样的?常见中文首字母排列是否是同样做法?
结合对公众号的一些观察 , 我们确定了实验的要求:
挑选多音字开头的公众号关注 , 且要求开头的多音字必须是非同字母异音 。什么意思呢?就是得类似“qiǎn”和“jiān”这样 , 而类似蚌埠的“bàng”和“bèng”就完全没用 。发音具有差异的同时 , 词义也要有明显差异 。主要是我们想测一测发音、词义和首字母排列的相关关系 。筛选实际词义和发音不同的多个公众号关注测试 。对此我们粗略确定了几个字——“浅”、“秘”、“重”、“乐” 。
对“浅”、“秘”、“重”的测试很快就完成了 , 并成功让我们一整嘴角抽抽 , 结果如下:

文章插图
实际可以看出 , 微信的中文首字母排序不分词义 , 很好理解 , 费力也没那么讨好 。但这个排序实在有点让我脑子疼:
“浅”这个字都取了“ J ”开头 , 不是常用的qian的“Q”“重”这个字都取了重复和重庆的“C” , 而不是重要的“Z” , 不过这个说不上哪一个更重要可以见到 , 这个排列并不是完全按照常用的发音来选择 。
仔细观察一下似乎所有选取发音的首字母 , 都较后一个未选择的发音首字母更靠前 , 那应该是多音字在选择排列之前 , 汉字转换拼音时选择对应发音的逻辑 , 也是按首字母排列选择更靠前的 。
然后 , 在测试完最后一个“乐”字后我的心情又郁闷了……

文章插图
如上图所示 , “乐”字居然选择的是乐谱的“Y” , 而不是更靠前的“L”!我……这……为什么啊!tell me why!
是什么奇怪的策略吗?比如说城市、姓氏发音优先?好吧 , 这样“秘”和“重”都可以说得通 , 但“浅”怎么解释?就算查到了浅确实是个稀有姓氏 , 但是人家也发音“qiǎn”啊喂 。
至此可能就需要转化一下想法了 , 按照奥卡姆剃刀原理——“如无必要 , 勿增实体” , 把推测简化一下 , 或许首字母排列并不是什么重要内容 , 产品和程序在做的时候并不会特别处理 。
那么实际在应用的开发中 , 对相关规则的处理可能就是产品提出列表按首字母排序 , 程序使用已经封装好的库快速上线 。
如此一来只要找到相关的轮子这个谜题就可以得到解决——即使我们可能并没有办法明白为什么之一个处理相关需求的产品和开发人员要这样处理 , 但他们的工作确实导致了现在的现象 。
通过了解相关开 *** 况 , 这个需求往更深的底层逻辑是需要把汉字转换成拼音 , 再截取首字母 , 再进一步排序 。
推荐阅读
- 分付的钱怎么套出来使用-流程操作步骤告诉大家
- 大腿怎么画 大腿怎么办
- 老年人微信名字
- 愆怎么读拼音和组词,衍怎么读拼音和组词
- 毛巾发粘怎么办,键盘键帽发粘怎么处理?
- 网上可以查个人征信吗 网上怎么查个人征信
- 生肖属鼠女2020年11月份生小孩好不好,性格怎么样
- 钻石回收价格查询今日 钻石吊坠怎么回收
- 巴南区甘远明建材经营部_工商信用信息_经营范围期限状态_法人_地址_注册资本_怎么样
- 工作室的工作总结怎么写 工作室的工作总结