当前位置: 首页 > news >正文

AI懂不懂幽默

前言

过去的几年里,往往一觉睡醒,打开手机。媒体里就在说哪哪哪又开始打战了,哪哪哪又发布了新的AI技术了。

过去的几年里,笔者基本平均每个月会回一趟老家(此处感谢AI带来了自动驾驶)。去一些 有锄头和镰刀,没有战争和AI的地方——自家的天台菜园、朋友家的海边果园,看小西瓜一天天变成大西瓜。身边没有人会说:用XXX,三分钟可以写出一个“坦克大战”(游戏程序)。

回到深圳,为了不被这个AI时代抛弃。还是得和小伙伴去学习一个个新出的“AI”技术,探索其能力边界。类似一次次台风前夕 我们的心情——“怕它不来 又怕它乱来”。笔者所在的程序员圈子 对于AI的态度是——怕它不强,又怕它太强

业界目前推了许多benchmark 来测评AI能力的方法,但笔者好像还没看到 有benchmark涉及到这么一个主题——AI懂不懂幽默。本文,笔者想浅浅地搜索一下这一主题。

测试数据

测试数据 选用笔者之前爬取的两千多条笑话(段子)。懒得写SQL,我们直接用“claude code”查看一下数据的基本情况

❯ 用python读取本地数据库,用户名为XXX,密码为XXX, 库名为XXX, 表名为XXX ❯ 表里有多少条数据,共有多少分类

让AI挑选最好笑的

我们同样用“claude code”进行实现,大致指令如下:

> 分类选出一条最好笑的笑话 > 要选出最好笑的,不是随机返回 > 把每个分类的笑话,喂给大模型,让他返回最好笑的一个 > 将输出形成csv文件

中间遇到 max_tokens不够大的问题,自己手动调大了下数值。核心代码如下:

prompt = f"""以下是"{joke_type}"分类下的所有笑话,每条前面有编号。 {joke_list} 请从中选出你觉得最好笑的1条,只返回 JSON 格式: {{"index": 编号, "reason": "一句话说明为什么好笑"}} 不要返回其他内容。""" for attempt in range(max_retries): try: resp = client.messages.create( model=MODEL, max_tokens=4096, thinking={"type": "disabled"}, messages=[{"role": "user", "content": prompt}], ) raw = "" for block in resp.content: if block.type == "text": raw = block.text.strip() if not raw: # print(f"模型返回空内容:", resp.content) raise ValueError("模型返回空内容") return extract_json(raw) except Exception as e: if attempt < max_retries - 1: time.sleep(2) continue raise

最终得到的输出如下(多次执行返回的结果 并不一致,选取其中一次):

对于AI(选用模型为“deepseek-v4-pro”)的返回,笔者虽然对于很多类别的选取结果 不太认可。但确实也没法说 AI返回的结果 一无是处。

AI评选逻辑

为了探究AI的评选逻辑。我们通过deepseek的对话窗口,让它对两段笑话进行评选,得到的结果如下:

不得不说,回答得挑不出毛病。

总结

从上述的文本表现上看,我们很难说AI不懂幽默。它能识别笑话的套路(谐音梗、反转、预期违背等),能告诉你一个笑话为什么好笑,甚至能根据你的要求生成笑话

不过,AI自己也谦虚地表示(以下源于AI的回答):如果“懂”是指像人类那样,因为某个笑话会心一笑,那 AI 不懂。AI没有情绪,没有生活经历,不会因为一个段子分泌多巴胺。有点像背下了全世界所有菜谱,但自己永远尝不到咸淡的大厨。

后语

向Deepseek提以下问题的时候,笔者脑里浮现了校园时代的画面:几个小伙伴,异口同声地说出“我有时间也不捡屎”,然后一起开怀大笑。

值得珍惜从来不是多巧妙的段子,而是那些一起笑、一起犯傻的人。

http://www.jsqmd.com/news/887848/

相关文章:

  • 告别混乱文件管理:用Minio的‘伪文件夹’实现清晰的数据分层与查询
  • WaveTools:提升《鸣潮》游戏体验的3大核心功能深度解析
  • VS Code + DeepSeek插件配置全链路故障排查(含token截断、context溢出、多文件联想失效三大暗坑)
  • 客户终身价值CLV:动态分群建模与实时计算实战指南
  • Kaggle新手必看:除了submission.csv,Windows上提交结果前你该检查的5个细节
  • CANoe测试中UDS 27服务安全算法调用避坑指南:从DLL编译错误到CAPL完美集成
  • 浙江保安公司推荐:2026浙江临时/靠谱专业安保公司汇总 - 栗子测评
  • 精通开源Switch模拟器:yuzu核心技术深度解析与实战配置指南
  • alexa-app框架错误处理与调试技巧:开发者必知的10个要点
  • 终极指南:3步掌握Wayback Machine批量下载神器
  • Smardaten多维可视化大屏|全网独家实战,无代码极速搭建篇 引入多源数据融合+交互联动增强,助力企业级监控中心快速落地、效能翻倍
  • 别再只盯着PF值了!聊聊LED电源设计中THD与PF的真实关系与取舍
  • Linux 自定义协议与序列化反序列化:从原理到落地
  • Linux多线程编程(二):互斥锁与条件变量,手写生产者消费者模型
  • 浙江口碑最好的安保公司推荐:2026浙江靠谱工厂外包保安公司甄选攻略 - 栗子测评
  • 别再乱接线了!手把手教你用万用表和逻辑分析仪搞定无刷电机霍尔与绕组的对应关系
  • openapi2proto核心功能解析:自动生成Protobuf和gRPC服务定义
  • Windows 10/11 系统下HYSPLIT模型完整安装配置指南(含ImageMagick、Tcl/Tk避坑要点)
  • 如何实现完美图像矢量化:3分钟掌握开源vectorizer工具的核心技巧
  • 杭州正规保安公司哪家好?2026杭州工厂/大型活动安保公司优选指南 - 栗子测评
  • 自动化集成与测试资源管理方案
  • 安卓VMP+Dex2C混合加固逆向实战:从壳识别到逻辑还原
  • 深入理解《Effective Java》 之条目2:当构造器参数较多时考虑使用生成器
  • 库早报|国家统计局:前4月3D打印设备产量增长50.9%;京东520上线3D打印手办活动;星世线STARAY亮相米兰设计周
  • 别再死记硬背公式了!用Python/Simulink手把手带你仿真PMSM的Clark与Park变换
  • 洛雪音乐音源配置终极指南:免费获取全网高品质音乐资源的完整教程
  • 2026年比较好的外地孩子可以就读的东莞职校/东莞周边优质职校评价怎么样 - 品牌宣传支持者
  • Android音视频开发深度解析:MediaCodec、OpenGL ES与FFmpeg实战
  • 手把手教你用Proteus 8.15仿真STM32F103流水灯(STM32CubeMX + Keil MDK-ARM配置全流程)
  • C++11 包装器(适配器模式)深度解析