xymtop

parse_times

by @xymtop in Tools
0
0
# Install this skill:
npx skills add xymtop/skill-agent --skill "parse_times"

Install specific skill from multi-skill repository

# Description

从中文文本中精准抽取并解析时间表达式,将模糊或相对的时间描述(如“明天”、“上周五”)转换为具体的、可计算的绝对时间。

# SKILL.md


name: parse_times
description: 从中文文本中精准抽取并解析时间表达式,将模糊或相对的时间描述(如“明天”、“上周五”)转换为具体的、可计算的绝对时间。
version: 1.0.0
author: Skills Team
tags:
- time
- nlp
- parsing
- datetime
- chinese
category: text-processing
priority: 8


时间解析技能 (Parse-Time)

parse_times 是一个基于 JioNLP 引擎的高级时间语义解析工具。它能理解复杂的中文时间表达,并结合指定的时间基点,将自然语言中的时间描述转化为精确的日期时间格式,准确率高达95% [[8]]。

🎯 核心功能

1. 时间实体抽取

  • 识别多样表达:支持“下个月初”、“三天后”、“2024年春节”等数百种中文时间格式。
  • 上下文感知:能正确处理“的”字结构等复杂语法,如“上个月的最后一天” [[9]]。

2. 时间语义解析

  • 相对时间转换:将“昨天”、“明年Q3”等相对时间,基于 time_base 转换为绝对时间。
  • 模糊时间处理:对“近期”、“最近”等模糊表述,提供合理的时间范围估计。
  • 多类型支持:支持时间点 (time_point)、时间段 (time_period) 和时长 (time_duration) 的解析 [[1]]。

3. 高精度与可靠性

  • 高准确率:专为中文优化,时间解析准确率约95% [[8]]。
  • 权威来源:基于开源的 JioNLP 工具包,被广泛应用于各类 NLP 项目中 [[2]]。

📋 使用场景

数据预处理

用户需求:从用户日志“小太阳记录宝宝在半小时前开始吃奶”中提取具体时间。
parse_times:结合当前时间基点,解析出“半小时前”的精确时间戳。

日程管理

用户需求:将“安排一个下周三下午的会议”自动转换为日历事件。
parse_times:解析出“下周三下午”的具体日期和时间。

智能助理

用户需求:“提醒我三天后交报告”。
parse_times:计算出“三天后”的确切日期,用于设置提醒。

学术研究

用户需求:分析历史文献中的时间描述。
parse_times:将“光绪年间”等历史纪年转换为公历范围。

🔧 技术细节

输入参数

  • time_contents: 一个包含待解析时间字符串的列表。
  • time_base: (隐式)解析的基准时间,通常为调用时的当前时间或由上下文指定。

输出格式

函数返回一个列表,每个元素是一个字典,包含:
- time_content: 原始输入的时间字符串。
- time_str: 解析后的标准化时间字符串(如 2026-02-01 15:00:00)或时间段。

调用示例

# 在技能内部,time_base 通常由系统自动注入
time_expressions = ["明天下午三点", "上周五", "2026年春节"]
parsed_times = parse_time(time_expressions)
# 返回:
# [
#   {"time_content": "明天下午三点", "time_str": "2026-02-01 15:00:00"},
#   {"time_content": "上周五", "time_str": "2026-01-24 00:00:00"},
#   ...
# ]

🎓 最佳实践

DO - 应该这样做

提供清晰的时间字符串

好的输入:
["下周一开会", "项目截止于2024年12月31日"]

用于批量处理

好的用法:
将从长文本中抽取出的所有时间实体列表一次性传入,提高效率。

DON'T - 避免这样做

传入非时间文本

不好的输入:
["今天天气很好", "请帮我订机票"]
应先使用实体抽取工具过滤出时间表达式。

忽略时间基点

注意:
“明天”的结果完全依赖于 `time_base`。确保在需要特定上下文(如文档创建时间)时,系统能正确设置基点。

🛡️ 限制与注意事项

  • 语言限制:主要针对中文时间表达式进行优化,对其他语言支持有限。
  • 基点依赖:相对时间的解析结果高度依赖 time_base 的准确性。
  • 模糊性:对于极度模糊的表述(如“很久以前”),可能无法给出精确结果。

🔗 与其他工具配合

技能组合建议

完整信息提取流水线:
1. 通用实体抽取:从原始文本中识别出所有潜在的时间字符串。
2. parse_times:对抽取出的时间字符串进行精确解析。
3. Data Analyzer:对解析后的时间数据进行统计或可视化。

智能日程助手:
1. parse_times:解析用户指令中的时间。
2. Calendar Manager:将解析后的时间用于创建或查询日历事件。

📚 学习资源

  • 官方文档: JioNLP GitHub [[2]]
  • 在线体验: 可在 JioNLP 官网提供的在线测试页面直接体验时间解析功能 [[8]].

🎉 总结

parse_times 技能是处理中文时间信息的强大工具,它将自然语言的模糊性转化为计算机可操作的精确性,是构建智能日程、数据分析和信息提取系统的关键组件。

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.