周末闲得发慌,我没去写那堆技术债,反而给自己的歌单写了个推荐算法。输入是"心情标签+时间段",输出是"今晚该听哪张"。写完跑通那一刻,比上线一个业务模块还爽。

逻辑不复杂:通勤用快歌提神,深夜用慢板收心,周末上午用爵士当背景。可真正费劲的,是给每张碟打标签——"适合发呆""适合吵架后""适合想起某人"。打到最后,我发现自己在用写代码的方式,整理一整个人生情绪库。

程序员的通病,是想给一切建模型。天气、饮食、甚至和老婆吵架的概率,我都偷偷记过表。歌单只是其中一个温和的出口。它不解决 bug,却让那些说不清的心情,有了可检索的入口。

算法跑了一周,推荐准得有点吓人。某个雨夜它给我推了首老民谣,我听着眼眶热——那是我爸走那年常放的。它不知道这段,它只读了"雨夜+低落"两个标签。机器比人笨,却比人诚实,照着你给的线索,把你藏起来的东西翻出来。

我也反思:把听歌都算法化,会不会丢了点随性?可转念想,正因为我建了这系统,那些"不该听"的歌才被记下来,没被遗忘。秩序不是束缚,是替健忘的自己,保管住真心。

后来我把这算法开源给了几个朋友,他们回来说"你这哪是推荐歌,是推荐情绪"。我笑,没解释。有些东西,一旦说破就俗了。代码能算出版图,算不出哪首歌会让你停下来——那一下停顿,才是我写它真正的用意。

建议你也试试,不用写代码,拿张纸给常听的歌分分类。某天你心情说不清时,翻一翻,答案也许就在某个标签背后。