使用蒙特卡罗和ChatGPT制作关于机器学习的纵横字谜。

我是那种偶尔仍然觉得解决填字游戏很有趣的人之一。我一直对杂志和报纸上的填字游戏是如何制作的很好奇(如果你知道,请留下评论)。但我确信现代的 GPT 不能创造出合理的填字游戏。

thats how crossword puzzle usually to looks

这就是GPT-4 Omni处理任务的方式

提示> 请制作一个关于机器学习的简短填字游戏。

这里是一个关于机器学习(ML)的小填字游戏,有10个词。

   1B
I
2T 3A 4N
R S E
5A L G O R I T H M
I R W
N I O
6I T E R A T I O N
N H K
G M
7S V M

8O V E R F I T
T

Across:
5. Step-by-step procedure for solving a problem or performing a task
6. One complete cycle through the training data
8. When a model learns the training data too well, including noise
Down:
1. Systematic error in ML predictions
2. Process of teaching a model using data
3. Slope used in optimization algorithms
4. Interconnected nodes in deep learning
5. Measure of how well predictions match true values
7. "Support Vector" type of ML model (abbr.)

看起来不太像一个有效的难题,对吧?

由于 GPT 无法处理这项任务,我们将不得不想办法帮助它。在这个故事中,我将逐步指导您创建填字游戏。所有源代码均可在GitHub上获得。

TL; DR 有关 ML 的填字游戏

这里是链接。

要解决这个问题,您需要大约20-30分钟的时间。这个谜题确实可解,我已经在几个毫无戒心的受害者身上验证过。

步骤#1:挖掘ML单词

乍一看,我想要从我脑海中写出一些机器学习术语,但我的想象力只能产生大约30个词。我不得不凭借数据驱动的方法武装自己。

我在GitHub上找到了ML术语词汇表 - https://github.com/bfortuner/ml-glossary

然后我编写了一个脚本来解析唯一的单词 - 大约有3000个。之后,我手动查看它们,并仅保留适合用于填字游戏的单词:名词或动词的普通形式,如果单词有几种拼写方式,则我保留“看起来最自然”的那个。

因此,我得到了一个由242个单词组成的列表。

大约花了我半个小时的真实时间来处理 3 000 个字。理论上,数据库可以利用词嵌入之间的距离和类似TF-IDF的方法进行半自动筛选。

步骤2:制作填字游戏格子

在互联网上有许多网站允许您从单词列表中创建自己的填字游戏,例如CrosswordLabs,但最终的填字游戏可能会显得非常“稀疏”,我想让它更加紧凑。

Sparse crossword puzzle

我用C++写了一个小程序,随机尝试组装最紧凑的填字游戏,它的工作方式如下:1. 在随机位置水平放置一个单词2. 在随机位置垂直放置下一个单词,但至少与其他单词相交一次3. 也至少有一个相交的水平放置单词重复步骤 2 ⤴︎4. 如果单词无法放置,请查看“占用率”指标(占用单元格数除以空闲单元格数)5. 重复步骤1至4多次,选择具有最大“占用率”的填字游戏。

第三步:用ChatGPT制作线索

赞美LLM,这个阶段在GPT激增之前曾经是最难自动化的,现在一切都变得相当容易。我们通过OpenAI API运行每个单词(总共242个单词,我花费不到10美分)。

系统提示> 你是一位热爱机器学习的工程师,正在解一个小拼图(纵横字谜)来检查同事们对机器学习的了解。提示> 为‘{word}’这个词组准备一个短的人工智能/机器学习主题线索,不要提到线索中的字母数。

步骤#4 将所有内容整合在一起

我对网页开发一筹莫展,因此我尝试对几个网站进行反向工程,以“借用”它们的引擎来渲染填字游戏,不幸的是我没有成功。但在大约3个小时的互联网搜索后,我设法在GitHub上找到了一个很棒的存储库,它正是我渴望的 https://github.com/jweisbeck/Crossword。

不幸的是,有很多错误,但是我不知何故设法修复了所有这些错误(希望)。另一个Python脚本把一切都整合在一起,然后...

看哪 - 纵横填字游戏已准备就绪https://udalovilia.com/crossword/

结论

如果你是那些仍然喜欢填字游戏的两个人之一,请与你的朋友分享链接,或者给我的GitHub仓库点星。

2024-09-12 04:19:39 AI中文站翻译自原文