最近在逛知乎的時候,偶然看到起英文起名這個問題。
想想當時剛入職騰訊時第一件事就是要取個英文ID,不過當時傻不拉幾地取了中文名的前綴做 ID,所以當時取的ID是 cmm, 導致後面無論是自己用還是別人看起來都極其尷尬……
在知乎上面翻了下,發現有很多人有這個困惑,但是卻沒有發現一個可以解決英文起名的產品。
跟小夥伴們討論了技術的可行性之後,所以我們決定做一款英文起名的產品 -- 得名。
具體我們是怎麼做的呢?主要有以下兩點
01取英文名的本質是選英文名
首先要明白的是,取英文名的本質是我們從已有的一些英文名字庫中選出適合自己的名字,而不是憑空想像去造一些新的名字。因為不是 native speaker 的話,生搬硬造名字更容易鬧出笑話。
既然是這樣的話,那我們確定的方向是,給一定條件來讓計算機選出合適的名字。 這對於計算機而言是「輕車熟路」的。
所以,我們首先收集了很多英文名字的資料庫,包括像:美國社保局統計的官方數據、behindthename、imdb上影視庫中的出現的角色人物名稱等等,然後利用機器學習給這些名字分別打上各種各樣的標籤(也就是計算機需要做出判斷的各種條件)。
這樣就能基本做到可以根據用戶輸入的條件輸出符合條件的英文名。
02注重含義的同時優先考慮讀音的相關性
根據調查,國人在選擇英文名稱的時候,會優先考慮跟中文讀音相近的英文名,比如【周杰倫】的英文名【Jay Zhou】。
考慮到這一點,我們採用了 Phonetics語音算法,簡單來說就是將文字拆解成音素,再去語音庫裡匹配相同音素的語音片段。
比如【墨翟(modi)】這個中文名我們會匹配 【Medivh】這個英文名,因為這兩個名字讀音是非常相關的,而且也符合我們在取英文名的習慣,就是儘量讀音相關。這是我們最後的生成效果圖:
03內測用戶使用評價
做好了產品之後,我們找到了一些用戶來測試使用,普遍反映還可以,當然由於使用的是機器學習,需要不斷地調教我們的算法。

另外,考慮到我們的成本,我們的起名服務是收費的,一次 10 元錢, 可以獲得8個名字,以及像上面圖中的報告。
歡迎大家到得名體驗。