发布于 2026-01-06 0 阅读
0

利用马尔可夫链生成随机的 Cure 乐队歌曲标题

利用马尔可夫链生成随机的 Cure 乐队歌曲标题

在你继续阅读之前,请注意,这篇博文没有任何价值。这是我昨晚突发奇想的一个愚蠢想法,我今天早上就匆匆把它实现了。它居然成功了,还把我逗乐了。但这篇文章真的没有任何价值。如果你被老板发现你在读这篇文章,你很可能会被炒鱿鱼。我已经警告过你了。

所以,马尔可夫链——据我理解——是一种根据一组初始输入值来预测下一个值之后可能出现的值的方法。例如,给定一组数据(比如单词),你可以确定哪个单词最有可能出现在另一个单词之后。你可以找到一个用这种方法生成逼真的Lifetime电影标题的绝佳例子:“使用JavaScript和马尔可夫链生成文本”。可惜的是,博客中的代码示例无法打开,但这些例子真的非常有趣。

我快速搜索了一下,发现一个很棒的 npm 库,可以简化创建类似这样的演示:titlegen。以下是文档中的一个示例,展示了它的易用性:

var generator = titlegen.create();

generator.feed([
  'You Only Live Twice',
  'From Russia with Love',
  'The Man with the Golden Gun',
  'Live and Let Die',
  'Die Another Day'
]);

console.log(generator.next()); // -> "From Russia with the Golden Gun" 
console.log(generator.next()); // -> "You Only Live and Let Die Another Day" 
console.log(generator.next()); // -> "The Man with Love" 
Enter fullscreen mode Exit fullscreen mode

是不是很酷?于是我想——如果我用The Cure的歌来试试呢?我从维基百科抓取了相关内容,稍作整理,制作了这个演示:

https://cfjedimaster.github.io/webdemos/generateCure/titlegen.html

如果您不想点击链接,以下是一些示例:

示例治疗歌曲
示例治疗歌曲
示例治疗歌曲
示例治疗歌曲

这个演示是一个非常简单的 Vue 应用。布局部分只有几个标签,所以我就不赘述了,这里是 JavaScript 代码。注意,为了简洁起见,我删除了大部分 Cure 的标题:

// source: https://en.wikipedia.org/wiki/Category:The_Cure_songs
let input = `10:15 Saturday Night
The 13th
Accuracy
LOTS OF STUFF REMOVED
The Walk
Why Can't I Be You?
Wrong Number`;

input = input.split('\n');

var generator = titlegen.create();
generator.feed(input);

const app = new Vue({
    el:'#app',
    data() {
        return {
            title:""
        }
    },
    created() {
        this.newTitle();
    },
    methods: {
        newTitle() {
            console.log('generating cureness');
            this.title = generator.next();
        }
    }
});
Enter fullscreen mode Exit fullscreen mode

我感觉自己连其中1%的数学原理都不懂,也不知道这到底有多现实,但老天,它真的让我很开心。如果你想看完整的代码,可以点击这里:https://github.com/cfjedimaster/webdemos/tree/master/generateCure

对了,最后,你可以在这里测试一下 Depeche Mode 版本:https://cfjedimaster.github.io/webdemos/generateDepecheMode/titlegen.html

文章来源:https://dev.to/raymondcamden/generating-random-cure-song-titles-with-markov-chain--1ke3