origin/mainv1 有两档:中文诗词(9378 首)、English Poetry(1696 首)。
English Poetry 这一档全部来自 PoetryDB,而 PoetryDB 收的是英语世界的诗人——莎士比亚、惠特曼、狄金森、弥尔顿。
所以给巴黎配的是英国诗,给莫斯科配的还是英国诗。这等于没解决「本国诗歌」。
v2 加的第三档换了一条完全不同的路:
| 档 | 逻辑 | 给什么 |
|---|---|---|
| 🀄 中文诗词 | 算法匹配:城市意象向量 × 诗歌意象向量 | 敦煌 → 边塞诗 |
| 🌍 本国诗人(新) | 纯查表:城市 → 所属国家 → 该国诗人名单 | 莫斯科 → 普希金、莱蒙托夫、马雅可夫斯基 |
| 🔤 English Poetry | 算法匹配(英文意象词) | 英美经典诗 |
新档不做主题匹配,就是把这个国家自己的著名诗人摆出来——这正是主席要的。
`
第一段【谁是这个国家的诗人】
中文维基「X国诗人」分类 → 人工策展、天然含历史人物、直接给中文名
⚠️ 分类名不能猜,要【搜分类名字空间】让维基自己告诉你
(普希金不在「俄罗斯诗人」里,他在「俄罗斯帝国诗人」)
第二段【他是谁】
中文维基导言 → 中文简介(主席不必读外文)
Wikidata sitelinks(多少种语言的维基写过他)→ 知名度排序
第三段【他的诗】
en.wikisource 公版英译 → 用 <div class="ws-poem"> 容器精确切出正文
🔴 归属校验闸:每一首诗都必须过 verify_author()
页面头部必须出现该诗人的姓,否则整首丢弃。宁可少收,绝不错挂。
`
[世纪前缀] + 国名 + [政体/裔后缀] + 诗人|歌人|俳人|词人。这样「俄罗斯帝国诗人」能进(同一国家的历史政权),「印度尼西亚诗人」进不来。
verify_author() 闸——wikisource 页眉固定写「XXX by <作者>, translated by <译者>」,所以"页面头部必须出现该诗人的姓"这个检查简单但有效。不过闸的整首丢弃。<div class="ws-poem"> 里、把导航包在 <div class="ws-noexport"> 里——用容器切,别用启发式猜。7_repair_poems.py 按来源页重洗一遍,不必重跑整个发现流程。http_guard 按 ME-018 设计封了 en.wikisource 端点——它做对了。
正确反应是结构性改变而不是加退避硬撞:并发降到 1、请求间隔 0.45 秒、带官方背压参数 maxlag=5、User-Agent 带联系方式(Wikimedia 明文要求)。做完这三条才复位该端点。
抓诗很贵(每位诗人要向 wikisource 发十几次请求,限速下约 2 分钟/国),拉诗人名单很便宜。
所以分层——这正对应主席说的「有些小城市可能太难了,但把那些国家有关的诗放进来也完全可以」:
1. 只有公有领域的东西能拿——作者与译者都要逝世 70 年以上。
当代诗人(北岛、辛波斯卡、聂鲁达的多数译本)没有合法免费源,页面上会明说"他的诗或译本还在版权期内,绝不抓盗版凑数",只给简介和维基入口。
2. 诗作是英译不是中译。公版中译几乎不存在(译者版权期未过),所以正文是英文,配中文诗人简介。
3. 日本是个明显缺口:中文维基「日本詩人」分类里多是近现代诗人,而他们的作品在 en.wikisource 上几乎没有公版英译,所以日本目前是"有诗人卡片、没有诗"。松尾芭蕉这类古典俳人不在这个分类里(他属"俳人"类),后续要单独接。
4. 小语种国家在中文维基本来就收录稀薄,没有「X国诗人」分类的国家,页面会明说拿不到,不编。
build/verify.mjs 新增了本国诗人档的判据(原有 v1 判据全部保留):
1. 诗作只覆盖前 32 个国家;其余国家目前只有诗人名单和简介。
2. 日本、韩国等东亚国家的古典诗人(俳人/歌人/词人)尚未接入。
3. 诗作全是英译,没有中译(版权限制,无解)。
4. 每位诗人最多 3 首,头部诗人也只取前 4 位——是请求预算的取舍,不是能力上限。
5. 没做人工盲评:目前只有机器判据(归属对不对、渲不渲染得出来),没有人评过"这些诗人是不是真的代表这个国家"。