HyperAIHyperAI

Command Palette

Search for a command to run...

用24年博客数据训练马尔可夫模型,生成令人惊叹的文本预测

我将自己24年来撰写的全部博客内容输入了一个马尔可夫文本生成模型,结果令人又惊又笑。这个项目是我在GitHub上发布的“Mark V. Shaney Jnr”——一个极简版的马尔可夫语言生成器,灵感来自1980年代著名的“Mark V. Shaney”程序。它不追求效率,只讲简洁,是我探索编程概念的“实验性小玩具”之一。 我平时会写很多这类小代码,只为了玩一玩、试一试。这次,我决定把20多万字的博客内容(不含500多条评论的4万字)喂给这个模型。训练完成后,生成的文本既荒诞又充满“似是而非”的逻辑。 比如,它会生成:“while a query replace operation is approved by the user. The above variable defines the build job. It can be incredibly useful while working on assembly language and machine code.” 读起来像极了我写代码时的口吻,但语义却完全错乱。 更妙的是,它会“拼贴”我文章中的真实片段。比如“Lisp source file”来自我关于Lisp的博文,“self-esteem”则来自另一篇谈教育的随笔。它把不同语境的词句胡乱组合,却意外地制造出一种“似懂非懂”的荒诞感。 默认情况下,模型基于三元组(三个连续词)建模,即用前两个词预测第三个。这被称为“二阶马尔可夫模型”。如果把阶数提高到4,生成的文本会更连贯,甚至能“像模像样”地讲点道理。但若升到5阶,结果反而变得干巴巴,几乎在“照搬”原文,失去了趣味。 最有趣的是,我让模型从“Finally we”开始生成100个词,结果是:“Finally we divide this number by a feed aggregrator for Emacs-related blogs...” 读起来像我突然用AI口吻在写技术文章,但又完全走调。 这正是马尔可夫模型的魅力:它不理解语言,只学习模式。它能模仿风格,却无法理解意义。而当它把我的24年文字“消化”后,生成的不是内容,而是一面荒诞的镜子——照出我写作风格的痕迹,也照出语言在无意义中生成“意义”的荒谬。

相关链接