jtyoui.time.nlptime package

Submodules

jtyoui.time.nlptime.dateRe module

jtyoui.time.nlptime.nlptimes module

class jtyoui.time.nlptime.nlptimes.NlpTime(time_base=None, prefer_future=False)[源代码]

基类:object

大型正则解析时间

>>> np = NlpTime('2019-12-19 00:00:00').parse('国庆节的前一天晚上8点半')
>>> print(np)  # ['2019-09-29 20:30:00']
>>> np = NlpTime('2019-12-19 00:00:00').parse('今天晚上8点到明天上午10点之间')
>>> print(np)  # ['2019-12-19 20:00:00', '2019-12-20 10:00:00']
>>> np = NlpTime('2019-12-19 00:00:00').parse('今年儿童节晚上九点一刻')
>>> print(np)  # ['2019-06-01 21:15:00']
>>> np = NlpTime('2019-12-19 00:00:00').parse('今天中午十二点')
>>> print(np)  # ['2019-12-09 12:00:00']
>>> np = NlpTime('2019-12-19 00:00:00').parse('明年春节')
>>> print(np)  # ['2020-01-25 00:00:00']
>>> np = NlpTime('2019-12-19 00:00:00').parse('下下下个星期五早上7点半')
>>> print(np)  # ['2020-01-10 07:30:00']
>>> np = NlpTime('2019-12-19 00:00:00').parse('今年的大寒')
>>> print(np)  # ['2020-01-20 00:00:00']
parse(target) → list[源代码]

解析时间

jtyoui.time.nlptime.timeunit module

class jtyoui.time.nlptime.timeunit.RangeTimeEnum[源代码]

基类:object

一天大概范围时间

afternoon = 15
day_break = 3
early_morning = 8
lateNight = 20
midNight = 23
morning = 10
classmethod name(names)[源代码]

根据名字获取数据

night = 18
noon = 12
class jtyoui.time.nlptime.timeunit.TimePoint[源代码]

基类:object

标记时间类型

class jtyoui.time.nlptime.timeunit.TimeUnit(exp_time, normalizer, context)[源代码]

基类:object

时间解析

static add_time(cur, fore_unit: int)[源代码]

修改日期

参数:
  • cur – 当前日期
  • fore_unit – 修改属性
返回:

修改好的日期

check_context_time(check_time_index)[源代码]

根据上下文时间补充时间信息

static china_24_st(year: int, china_st: str)[源代码]

二十世纪和二十一世纪,24节气计算

daytime(rule, name)[源代码]

预测一天是在什么时候

预测情况包括:

day_break = 3 # 黎明

early_morning = 8 # 早

morning = 10 # 上午

noon = 12 # 中午、午间

afternoon = 15 # 下午、午后

night = 18 # 晚上、傍晚

lateNight = 20 # 晚、晚间

midNight = 23 # 深夜

参数:
  • rule – 预测情况的正则
  • name – 预测的名字
static gen_span(days, seconds)[源代码]

根据毫秒获取时分秒

static gen_time(unit)[源代码]

得到时间

get_date()[源代码]

获取当前日期,并转为标准日期格式

modify_time_base()[源代码]

该方法用于更新timeBase使之具有上下文关联性

设置当前时间相关的时间表达式

norm_set_day()[源代码]

该方法识别时间表达式单元的日字段

norm_set_hour()[源代码]

该方法识别时间表达式单元的时字段

norm_set_lunar_holiday()[源代码]

识别农历节日和时节

norm_set_minute()[源代码]

该方法识别时间表达式单元的分字段

norm_set_month()[源代码]

该方法识别时间表达式单元的月字段

norm_set_month_fuzzy_day()[源代码]

兼容模糊写法:该方法识别时间表达式单元的月、日字段

norm_set_second()[源代码]

添加了省略秒说法的时间:如17点15分32

norm_set_solar_holiday()[源代码]

识别阳历节日

设置时间长度相关的时间表达式

norm_set_special()[源代码]

该方法识别特殊形式的时间表达式单元的各个字段

norm_set_year()[源代码]

该方法识别时间表达式单元的年字段

prefer_future(check_time_index)[源代码]

如果用户选项是倾向于未来时间,检查check_time_index所指的时间是否是过去的时间,如果是的话,将大一级的时间设为当前时间的+1。

如在晚上说“早上8点看书”,则识别为明天早上; 12月31日说3号买菜,则识别为明年1月的3号。

prefer_future_week(weekday, cur)[源代码]

预测下一个周的时间

参数:
  • weekday – 星期几
  • cur – 当前时间
返回:

预测的时间

time_normalization()[源代码]

时间解析

Module contents