J•JEV 学习站
首页/Jev 日期与候选值抽取:选对角色,再由代码规范化

入门之后 · 实战攻略

Jev 日期与候选值抽取:选对角色,再由代码规范化

从包含多个日期与金额的报名邮件学习候选 span、角色选择、国家格式、参考时间及缺失处理。

资料核对 2026-10-0218 分钟
读完你能做什么

从原文候选复制目标值,保存角色与范围,让日期计算和金额规范化可复核。

先修课 · Jev 的 state 怎么写?从原始消息到可判断的事实

一步步设计

01

先定字段角色,别先抓第一个数字

虚构邮件:“10月3日开票,10月8日报名截止。原价 USD 120,优惠价 USD 90。”若要截止日与应付价,字段应命名 registration_deadline、payable_amount。日期出现的位置与金额大小不是角色判断;代码不能默认取第一个或最大值。

02

规则抽取候选并保留跨度

先用解析器或规则找到候选值,保存 span_id、起止位置、原字符串和邻近句。Choice 从有限候选中选目标,始终提供 none。重复出现同一个“90”时,保留位置身份;仅按字符串去重可能丢掉税费与应付额的角色。

03

让判断只回答语义角色

官方预解析配方让模型从已有候选选择,再由代码复制和规范化。本例问题是哪个金额明确作为最终支付价、哪个日期明确是报名截止;候选没有目标时选 none。不要让模型生成原文不存在的数值,也不允许拿高 confidence 填补缺年份。

04

把地区与相对时间显式输入

“03/04”在不同地区可能不同;“明天”必须有原消息时间、时区与参考日。本例固定参考日 2026-10-02;“明天”在该参考日按本地日历解析为10月3日。缺时区或年份时保留歧义;金额保存 Decimal 与 ISO 币种,勿把 USD 与 CNY 默认视为相同。

05

用代码验证真实值并记录不确定

日历库检查2月30日等非法日期;原始 span 与规范化值同时保存。语义角色确定但日期格式歧义仍应复核。准备信用额与费用并存、多币种、跨时区及不写年份等样本;字段匹配正确不代表整个表单可直接执行支付。

完整走查 · 本站虚构样本

观察到什么如何判断代码怎么处理
USD 120 原价 / USD 90 优惠价请求应付价,应选优惠候选复制90并保存USD,不执行支付
03/04;无地区说明日期顺序有歧义保留原串并复核
明天;参考日2026-10-02需参考日与本地时区代码解析10月3日

可复制的设计草案

以下为本站原创示例。JSON 展示请求或输入形状;Python 仅计算虚构分数,不调用 API。真实接入仍需核对官方接口及任务策略。

# Offline date arithmetic with an explicit reference date.
from datetime import date, timedelta
reference = date(2026, 10, 2)
print(reference + timedelta(days=1))  # 2026-10-03
# Candidate selection is a separate judgment, not performed here.
# Preserve timezone and source text when handling real messages.
设计我的任务

容易踩的坑

  1. 默认取首个数字或最大的金额。
  2. 让模型修造缺失年份与币种。
  3. 丢掉原字符串与候选跨度。

TRY / THINK / COMPARE

先想一想,再看解析

选中“03/04”且 confidence 很高,能直接存成4月3日吗?

展开解析

不能。confidence 针对角色选择不自动解除日期格式歧义。需要地区格式证据,否则保留原文并复核。

交付前检查

  • 字段角色和 none 选项已定义。
  • 候选跨度与原文可追溯。
  • 年份、时区、币种和地区显式处理。
  • 非法值与歧义进入复核。

常见问题

日期数学应由谁完成?

日历库与代码;模型帮助读出角色或组成信息。

候选漏掉目标怎么办?

返回 none 并改进召回或解析,不能从错误候选强选一个。

资料与延伸阅读

参考官方架构模式与 Datawhale 实战主题,本站独立编写讲解、案例与练习。示例为教学设计,未调用 API,不代表性能测试。