Skip to content

[任务] 补上日期识别认不出的写法 #85

Closed

Description

@JunieXD

关联与状态

路线图 #2,一期。状态:已完成,@w-tong2004 的 PR #97 已合并,短数字日期这次先不认。来自 #81 的审查。

目标

抽取时模型只能从程序编了号的日期里选(总体设计 §8.2),程序认不出的写法,这条截止就会悄悄漏掉。要让日期识别认得出通知里常见的写法。

已经有的

  • crawler/src/crawler/parse/dates.py 的 find_dates(实现原文句子日期和链接编号 #75)认得 6月30日17:00、2026年6月30日、6月底、即日起至7月5日 这些写法。
  • 试过认不出的:2026-06-30、2026/6/30、6.30、6月30号。
  • 现在的 50 条抽取标注里也许都认得出来,但标注太少,不能说明别的网站也没问题。

范围

  1. 用更多正文找出认不出的写法:这一步不用标注。把初筛标注集(data/screening.csv)里相关通知的正文抓下来(经过 Fetcher,每条只抓一次,正文只存在本地、不提交),找出像日期、却没被 find_dates 认出来的文字,按出现次数列在 PR 里。标注集扩充以后可以再查一遍。
  2. 补进 find_dates:常见的写法补上,每种加测试。容易认错的(比如 6.30 也可能是版本号或小数)在 PR 里说明怎么区分,拿不准的先在这里讨论。
  3. 找漏认的脚本是一次性的,用完删掉、不提交;查了多少条、找到哪些写法写在 PR 里。

不做:模型看到截止、编号里却没有对应的日期时送审核页(写进了 #44);扩充标注集(#84)。

建议的第一步

留言认领,先做第 1 步,把找到的写法列出来。

验收标准

  • PR 里列出查了多少条通知、找到哪些认不出的写法、各出现几次
  • 常见的写法都认得出,每种有测试
  • ./check.sh 通过

Activity

  1. added
    task可以认领的具体工作
    crawler抓取节点:抓取、初筛、抽取
    on Nov 7, 2026
  2. w-tong2004 commented on Nov 8, 2026

    @w-tong2004
    Contributor

    认领

  3. JunieXD commented on Nov 9, 2026

    @JunieXD
    ContributorAuthor

    @w-tong2004 谢谢认领,已经指派给你了,范围没有变。

    建议按「建议的第一步」先做第 1 步:用 Fetcher 把 data/screening.csv 里相关通知的正文抓下来(每条只抓一次,正文只存在本地、不提交),找出像日期、却没被 find_dates 认出来的写法,按出现次数列出来,贴在这里或者开个 Draft PR 都行。本地怎么跑见 AGENTS.md 的「命令」,有问题直接在这里问。

  4. w-tong2004 commented on Nov 9, 2026

    @w-tong2004
    Contributor

    已按第 1 步调查当前 data/screening.csv 中的 129 条相关通知,分布在 16 个网站。请求统一经过共享 Fetcher,每条通知各发起一次抓取,响应与正文保存在本地。

    127 条返回 HTTP 200,其中 119 条有可读正文、8 条正文无可读文字。另有 1 条 404 和 1 条 410,均单独记录。

    确认的漏识别或精度缺口 出现次数 涉及通知数
    中文数字月份或旬 3 3
    中文数字年月日 2 2
    括号日期后紧邻时刻 2 2

    共确认 7 处,其中 2 处是正文署名日期。另核对了 13 个短数字候选,4 个是分数或面积,9 个是列表编号与后续中文月份相邻。Issue 中举出的数字年月日、短数字月日和“号”字日期在本批正文中出现次数为 0,已用合成用例验证。

    本地实现已补齐上述缺口和 Issue 列出的写法,识别规则写入总体设计 §8.2。短数字的合成用例采用以下保守边界。

    • 报名截止6.30、6.30开始报名、6.30截止。可生成日期候选。
    • 裸 6.30 保留原文。版本号、数值单位,以及前面紧邻上午或下午等时段、且无日/号的点分数字按普通文本保留。
    • 8.30-17:00 存在日期与日内时刻两种理解,需要日/号、含“日期”的标签或首端独立时刻才能按日期范围识别。

    当前 crawler/./check.sh 的 381 项测试全部通过,web/pnpm check 的 85 项测试及网站构建等 CI 步骤通过。同一份缓存修复前后为 437 → 442 个匹配,7 页发生预期变化,原有匹配除 2 处升级为分钟精度外均一致。7 处发现的时间值及原文偏移均已核对。

    调查还记录了表格跨行的 39 个时刻和同日第二段区间的 2 个时刻,继续按现有单行表达式边界处理。通知正文、响应和取证材料保留在本地,一次性调查脚本已清理。

    请维护者确认短数字日期和时刻歧义的这些边界是否符合项目预期,意见会继续在本 Issue 跟进。

  5. JunieXD commented on Nov 9, 2026

    @JunieXD
    ContributorAuthor

    @w-tong2004 谢谢,调查做得很扎实:129 条、16 个网站,每种写法出现几次、在哪儿都列清楚了。

    短数字日期这次先不认:119 条正文里 6.30 这种写法一次都没出现。要把它和版本号、小数、时刻分开,得靠标签、动作词、句末「截止」这一串规则,规则越多,越容易在没见过的网站上认错。而 #44(#96)正在做的是:原文写了时间、编号里却没有的,模型照抄原文送审核页由人判断,不会悄悄漏掉。所以裸的、带标签的 6.30 都按普通文字留着,等标注集扩充后真遇到了,再按实际的写法补。

    这次保留:完整年份的数字写法(2026-06-30、2026/6/30、2026.6.30)、6月30号、中文数字的年月日和月份/旬、括号里的日期后面紧跟时刻。表格跨行的时刻和同一天第二段时间,按你说的继续不处理。

    按这个改完,把 #97 转为待审,我们就来审。

  6. added a commit that references this issue on Nov 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

crawler抓取节点:抓取、初筛、抽取task可以认领的具体工作

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions