微信怎么取消關注公眾號 取消關注公眾號( 二 )


我把這個事兒說給柏林后 , 我們一時忍不住嘴角抽搐 , 實在無法解釋 。這是啥奇怪的機制么?還是什么更莫名其妙的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”啊喂 。
至此可能就需要轉化一下想法了 , 按照奧卡姆剃刀原理——“如無必要 , 勿增實體” , 把推測簡化一下 , 或許首字母排列并不是什么重要內容 , 產品和程序在做的時候并不會特別處理 。
那么實際在應用的開發中 , 對相關規則的處理可能就是產品提出列表按首字母排序 , 程序使用已經封裝好的庫快速上線 。
如此一來只要找到相關的輪子這個謎題就可以得到解決——即使我們可能并沒有辦法明白為什么之一個處理相關需求的產品和開發人員要這樣處理 , 但他們的工作確實導致了現在的現象 。
通過了解相關開 *** 況 , 這個需求往更深的底層邏輯是需要把漢字轉換成拼音 , 再截取首字母 , 再進一步排序 。

推薦閱讀