Skip to content

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

Open

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

    认领

  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

    已按第 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 转为待审,我们就来审。

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