一种时间解析方法、装置、设备和计算机存储介质与流程

文档序号:16973734发布日期:2019-02-26 18:47阅读:186来源:国知局
一种时间解析方法、装置、设备和计算机存储介质与流程

本发明涉及自然语言处理技术领域,特别涉及一种时间解析方法、装置、设备和计算机存储介质。



背景技术:

随着智能化产品的不断推出,诸如智能问答、智能提醒等场景都会用到自然语言处理技术进行语义识别。其中时间解析是非常重要的一个部分,用户在采用语言进行需求表达时,常常会涉及到时间的内容。例如“后天是星期几”、“距离新年还有多少天”、“明天天气怎么样”、“下周一提醒我8点开会”、“情人节前一周提醒我买玫瑰”等等。

目前已经较成熟的技术将时间表达从句子中抽取出来,需要进一步做的是将抽取出的时间表达进行解析,解析成结构化的时间信息。现有技术中存在的时间解析方式主要包括两种:

一种是正则匹配的方式。例如通过正则表达式配合万年历的方式进行解析。但由于语言表达的多样化,例如当前时间是“2017年2月12日”,那么在表达“2017年2月14日”的时候,就可以采用诸如“后天”、“2天后”、“14号”、“情人节”、“48小时后”、“过了明天”等多种表达方式,那么对于正则方式而言,就很难全面覆盖到所有的表达方式。

另一种是采用pcfg(probabilisticcontextfreegrammar,概率上下无关文法)的方式,通过大量的语料标注,来判定时间原子的位移单位及位移量。然而这种方式目前在中文领域的准确率较低,一般只有60%-70%的准确率。



技术实现要素:

有鉴于此,本发明提供了一种时间解析方法、装置、设备和计算机存储介质,以便于提高时间解析的准确率。

具体技术方案如下:

本发明提供了一种时间解析方法,该方法包括:

将时间表达与各时间因子的语法进行匹配,确定所述时间表达中各时间词的时间因子属性;

依据预设的各时间因子属性对应的时间范围,确定所述时间表达中各时间词对应的时间范围;

利用所述时间表达中各时间词对应的时间范围,确定所述时间表达对应的时间范围或时间点。

根据本发明一具体实施方式,所述时间因子包括以下至少一种:

世纪、年代、年、季度、月、旬、周、候、日、时辰、小时、分、秒。

根据本发明一具体实施方式,按照时间因子的优先级顺序,执行所述将时间表达与各时间因子的语法进行匹配;

其中,时间因子对应的时间范围越大,优先级越高。

根据本发明一具体实施方式,所述将时间表达与各时间因子的语法进行匹配包括:

采用最大匹配原则,将时间表达与各时间因子的语法进行匹配。

根据本发明一具体实施方式,所述各时间因子的语法包括绝对时间语法、相对时间语法、重复时间语法、缩略表达语法、区间式表达语法、节日表达语法中的至少一种。

根据本发明一具体实施方式,所述将时间表达与各时间因子的语法进行匹配,确定所述时间表达中各时间词的时间因子属性包括:

将时间表达与各时间因子的语法进行匹配,形成时间语法树,所述时间语法树中各非叶节点为所述时间表达匹配到的各时间因子属性,叶节点为所述时间表达中的各时间词。

根据本发明一具体实施方式,所述预设的各时间因子属性对应的时间范围包括以下至少一种:

绝对时间因子的开始时间和结束时间;

相对时间因子的开始时间和结束时间,或者,起点时间和开放方向;

重复时间因子的重复时间单位、重复跨度和重复的持续范围;

区间式时间因子的起点时间和终点时间,或者,起点时间和开放方向。

根据本发明一具体实施方式,利用所述时间表达中各时间词对应的时间范围,确定所述时间表达对应的时间范围或时间点包括:

按照各时间词在所述时间表达中从前至后的顺序,依次在前一时间词对应的时间范围基础上,取当前时间词对应的时间范围,直至当前时间词为最后一个时间词,依据最终得到的时间范围确定所述时间表达对应的时间范围或时间点。

根据本发明一具体实施方式,该方法还包括:

若所述时间表达与各时间因子的语法均无法匹配,则反馈无法解析的指示信息。

根据本发明一具体实施方式,该方法还包括:

将所述时间表达对应的时间范围或时间点提供给提醒类应用或智能问答类应用的业务逻辑进行处理。

本发明还提供了一种时间解析装置,该装置包括:

语法匹配单元,用于将时间表达与各时间因子的语法进行匹配,确定所述时间表达中各时间词的时间因子属性;

第一确定单元,用于依据预设的各时间因子属性对应的时间范围,确定所述时间表达中各时间词对应的时间范围;

第二确定单元,用于利用所述时间表达中各时间词对应的时间范围,确定所述时间表达对应的时间范围或时间点。

根据本发明一具体实施方式,所述时间因子包括以下至少一种:

世纪、年代、年、季度、月、旬、周、候、日、时辰、小时、分、秒。

根据本发明一具体实施方式,所述语法匹配单元,具体用于按照时间因子的优先级顺序,执行所述将时间表达与各时间因子的语法进行匹配;

其中,时间因子对应的时间范围越大,优先级越高。

根据本发明一具体实施方式,所述语法匹配单元,具体执行:

采用最大匹配原则,将时间表达与各时间因子的语法进行匹配。

根据本发明一具体实施方式,所述各时间因子的语法包括绝对时间语法、相对时间语法、重复时间语法、缩略表达语法、区间式表达语法、节日表达语法中的至少一种。

根据本发明一具体实施方式,所述语法匹配单元,具体执行:

将时间表达与各时间因子的语法进行匹配,形成时间语法树,所述时间语法树中各非叶节点为所述时间表达匹配到的各时间因子属性,叶节点为所述时间表达中的各时间词。

根据本发明一具体实施方式,所述预设的各时间因子属性对应的时间范围包括以下至少一种:

绝对时间因子的开始时间和结束时间;

相对时间因子的开始时间和结束时间,或者,起点时间和开放方向;

重复时间因子的重复时间单位、重复跨度和重复的持续范围;

区间式时间因子的起点时间和终点时间,或者,起点时间和开放方向。

根据本发明一具体实施方式,所述第二确定单元,具体执行:

按照各时间词在所述时间表达中从前至后的顺序,依次在前一时间词对应的时间范围基础上,取当前时间词对应的时间范围,直至当前时间词为最后一个时间词,依据最终得到的时间范围确定所述时间表达对应的时间范围或时间点。

根据本发明一具体实施方式,该装置还包括:

反馈单元,用于若所述时间表达与各时间因子的语法均无法匹配,则反馈无法解析的指示信息。

根据本发明一具体实施方式,所述第二确定单元,还用于将所述时间表达对应的时间范围或时间点提供给提醒类应用或智能问答类应用的业务逻辑进行处理。

本发明还提供了一种设备,包括

存储器,包括一个或者多个程序;

一个或者多个处理器,耦合到所述存储器,执行所述一个或者多个程序,以实现上述方法中执行的操作。

本发明还提供了一种计算机存储介质,所述计算机存储介质被编码有计算机程序,所述程序在被一个或多个计算机执行时,使得所述一个或多个计算机执行上述方法中执行的操作。

由以上技术方案可以看出,本发明预先定义各时间因子的语法用以确定时间表达中各时间词的时间因子属性,然后再依据预设的各时间因子属性对应的时间范围,确定时间表达中各时间词对应的时间范围,以进一步确定时间表达对应的时间范围或时间点。采用语法定义的方式能够灵活地覆盖时间因子的各种表达,尤其适用于中文领域,提高了时间解析的准确率。

【附图说明】

图1为本发明实施例提供的时间解析方法流程图;

图2为本发明实施例提供的时间语法树的示意图;

图3为本发明实施例提供的时间解析装置的结构图;

图4为本发明实施例提供的示例设备的结构图。

【具体实施方式】

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

本发明的核心思想在于,预先定义各时间因子的语法用以确定时间表达中各时间词的时间因子属性,然后再依据预设的各时间因子属性对应的时间范围,确定时间表达中各时间词对应的时间范围,以进一步确定时间表达对应的时间范围。下面结合实施例对本发明提供的方法进行详述。

图1为本发明实施例提供的时间解析方法流程图,如图1所示,该方法可以包括以下步骤:

在101中,将时间表达与各时间因子的语法进行匹配,确定时间表达中各时间词的时间因子属性。

本发明实施例中所涉及的时间表达是采用诸如ner(namedentityrecognition,命名实体识别)或slotfilling(框填充)等技术从文本中抽取出的包含时间实体的部分。例如,从“明天上午九点提醒我去西溪园区开会”文本中,可以抽取出时间表达“明天上午九点”。本发明并不限制抽取时间表达的具体方式,在此不做详细描述。

在本发明实施例中,时间因子可以包括但不限于:世纪、年、季度、月、旬、周、候、日、时辰、小时、分、秒。时间表达可以理解成一个或多个具有不同时间因子属性的时间词构成的。举个例子,“明年6月第3个星期的礼拜2上午10点1刻”是个比较复杂的时间表达,其中就包含了多个时间因子属性的时间词。

在本发明实施例中,预先针对各时间因子均定义了语法,即时间因子的语法,指的是时间因子在语言表达上的结构规律。各时间因子的语法包括但不限于:绝对时间语法、相对时间语法、重复时间语法、缩略表达语法、区间式表达语法、节日表达语法等。以时间因子“年”为例,年属性可以包括:绝对年份、相对年份、重复年份、年份的缩略以及区间式年份等。因此分别定义绝对年份语法、相对年份语法、重复年份语法、年份的缩略语法以及区间式年份语法等。

1)绝对时间语法采用的形式可以为:【数字】+时间因子单位。

以时间因子“年”为例,绝对年份语法为:【数字】+“年”。例如“九八年”、“2016年”等。

2)相对时间语法采用的形式可以为:前缀相对词+【数字】+时间因子单位,或者,【数字】+时间因子单位+后缀相对词。

其中前缀相对词可以是诸如“上”、“下”,后缀相对词可以是诸如“以前”、“以后”、“之前”、“之后”。

以时间因子“年”为例,相对年份语法为:前缀相对词+【数字】+“年”,或者,【数字】+“年”+后缀相对词。例如,“2年以后”、“下个三年”,等等。

3)重复时间语法采用的形式可以为:重复词+【数字】+时间因子单位。

其中重复词可以是诸如:“每”、“隔”、“每隔”,等等。

以时间因子“年”为例,重复年语法为:重复词+【数字】+“年”。例如,“每3年”、“隔2年”等等。

4)缩略表达语法采用的形式可以为罗列的形式,以时间因子“年”为例,其缩略语为:“明年”、“前年”、“大前年”、【数字】+“年代”等等。

5)区间式时间语法主要包括开放式时间语法。

开放式时间语法采用的形式可以为:(时间介词)+【数字】+时间因子单位+时间介词。

以时间因子“年”为例,例如,“从1993年开始”、“到2017年为止”、“2006年以后”,等等。

6)节日表达语法可以采用穷举的形式,穷举出各种节日。包括“元旦”、“情人节”、“妇女节”、“植树节”、“儿童节”、“愚人节”、“劳动节”、“五一”、“五四”等等国际性节日,也包括“春节”、“元宵”、“端午”、“七夕”、“中秋”、“重阳”、“腊八”、“年三十”、“除夕”等中国农历节日,还包括“感恩节”、“母亲节”、“父亲节”等西方节日,还可以包括诸如“双十一”、“光棍节”、“双十二”等等一些新出现的节日。

时间因子的属性是指该时间因子具有的在时间上的性质。其中,绝对时间语法、缩略表达语法和节日表达语法对应的时间因子属性均为绝对时间因子,具体又以不同时间因子为单位进行区分。相对时间语法对应的时间因子属性为相对时间因子,具体又以不同时间因子为单位进行区分。重复时间语法对应的时间因子属性为重复时间因子,具体又以不同时间因子为单位进行区分。区间式表达语法对应的时间因子属性为区间式时间因子,具体又以不同时间因子为单位进行区分。

对于各种时间因子而言,可以预先设置各时间因子的优先级,时间因子对应的时间范围越大,优先级越高。本步骤中,可以按照各时间因子的优先级顺序,将时间表达与各时间因子的语法进行匹配。即按照“世纪、年、季度、月、旬、周、候、日、时辰、小时、分、秒”的顺序,优先级逐渐降低。也就是说,在对时间表达进行匹配时,一方面按照从前至后的顺序对时间表达进行匹配,例如时间表达“明年6月第3个星期的礼拜2上午10点1刻”,进行匹配时,从“明年”开始逐渐至后开始匹配;另一方面,按照各时间因子的优先级,从高优先级的时间因子的语法进行匹配,例如优先采用年的语法与“明年”开始匹配。

一旦某个高优先级的语法与时间表达中的某个词语匹配,则采用次高优先级的语法继续进行该词语之后的词语的匹配。或者某个高优先级的语法与时间表表达中的词语均不匹配,则采用次高优先级的语法从未匹配的第一个词语开始进行匹配。仍以“明年6月第3个星期的礼拜2上午10点1刻”为例,首先将“明年”与最高优先级的“世纪”的语法进行匹配,均未匹配成功,则与次高优先级的“年”的语法进行匹配,可以匹配成功。则继续采用次高优先级的“季度”的语法与“6月”进行匹配,均未匹配成功,则将“6月”继续与次高优先级的“月”的语法进行匹配,依次进行,直至时间表达匹配完成,或者最低优先级的语法匹配完成。

另外,在每个时间因子的语法中,也存在不同语法之间的优先级,例如可以采用,节日表达语法、区间式时间语法、相对时间语法、重复时间语法、绝对时间语法,对应优先级从高到低的顺序。但需要说明的是,这里所列举的优先级顺序仅仅为一个例子,为了保证实现效果的优劣可以对优先级顺序进行调整,本发明对此并不限制。

在将时间表达与各时间因子的语法进行匹配时,本发明实施例采用的是最大匹配原则。最大匹配原则是目前比较通用的匹配原则,在本发明实施例中,指的是,按照正向顺序,若存在多个长度的词语与同一时间因子的相同或不同语法匹配,则选择最长的词语作为匹配结果。举个例子,若某时间表达存在片段“1993年以后”,其中“1993年”与绝对年语法匹配,“1993年以后”与区间式年语法匹配,那么将“1993年以后”作为匹配结果。

需要说明的是,上述语法的形式是为了形象说明语法结构,但实际应用中,该语法可以以计算机语言的形式编程为不同语法形式,但语法结构是类似的。本发明对采用的计算机语言类型并不加以限制。有了一套语法后,可以采用诸如“antlr”等语言编译工具,对上述语法进行解析编译。编译完成后,对于时间表达的输入,就可以在将时间表达与各时间因子的语法进行匹配的过程中,形成时间语法树(也可以称为解析树),该时间语法树中各非叶节点为时间表达匹配到的各时间因子属性,各叶节点为时间表达匹配到的时间词。可以这么理解,叶节点的各级父节点构成该叶节点的时间因子属性。

举个例子,仍以时间表达“明年6月第3个星期的礼拜2上午10点1刻”为例,按照预设的语法结构进行匹配后,可以得到如图2所示的时间语法树。其中叶节点“明年”、“6月”、“第3个星期”、“的”、“礼拜2”、“上午”、“10点”、“1刻”为匹配得到的时间词。以“明年”为例,其各父节点构成了其时间因子属性:年份的缩略。需要说明的是,图2中仅仅是为了方便理解给出的示意性的时间语法树,对于采用不同语言、不同语法表述等解析得到的语法树形式会有不同,本发明对此并不加以限制。

在102中,依据预设的各时间因子属性对应的时间范围,确定时间表达中各时间词对应的时间范围。

对于每一种时间因子属性而言,均预先设置有对应的时间范围。下面分别进行描述:

绝对时间因子对应的时间范围可以包括开始时间和结束时间。时间因子“年”对应的时间范围为该年的第一天00:00:00到最后一天24:00:00,时间因子“月”对应的时间范围为该月的第一天00:00:00到最后一天24:00:00,时间因子“日”对应的时间范围为本日的00:00:00到24:00:00,等等。具体时间范围的设定形式取决于采用的最小时间单位,上述时间范围是以秒为最小时间单位为例的。例如,时间词“1993年”对应的时间范围为:开始时间“1993年1月1日00:00:00”,结束时间“1993年12月31日24:00:00”。

相对时间因子对应的时间范围可以包括开始时间和结束时间,也可以包括起点时间和开放方向。也就是说,可以对应一个封闭式的范围,也可以对应一个开放式的范围。由于相对时间因子在确定时间范围时,会存在一个基准时间的问题,因此首先确定基准时间。对于时间词“2001年以前”是包含基准时间的,因此可以确定其时间范围的起点时间为:2001年,开放方向为:向前。对于时间词“前两天”是不包含基准时间的,可以默认基准时间为当前时间,假设当前时间为2017年6月13日,那么确定其时间范围为:开始时间2017年6月11日00:00:00,结束时间2017年6月12日24:00:00。

重复时间因子对应的时间范围可以为:重复时间单位、重复跨度和重复的持续范围。例如,时间词“8月的每个星期”,重复时间单位为“星期”,重复跨度为“星期”,重复的持续范围为:8月。

区间式时间因子对应的时间范围可以为:开始时间和结束时间,或者,起点时间和开放方向。例如,时间词“三点以后”(假设今天是2017年1月1日)对应的起点时间为“2017年1月1日00:00:00”,开放方向为向后。

另外,对于某些特定应用,区间式时间因子的开始时间或结束时间可以采用预测的方式,并可以对上述时间范围中的开始时间和结束时间进行额外标注,以便实现某些特定应用的辅助功能。举个例子,若用户在日历中设置了“下午三点以后我要开会”,其中“下午三点以后”为时间表达。可以确定“三点以后”的时间范围为:开始时间是2017年1月1日15:00:00,结束时间是2017年1月1日16:00:00(因为在日历app中默认预测时间的间隔时长为1小时),可以标记结束时间为预测时间。此处的辅助功能可以解决日程冲突问题,例如若用户又在日历中设置了“下午三点半”去超市,由于该时间与已有日程2017年1月1日15:00:00~16:00:00冲突,因此可以对用户进行提醒。当然不同应用可以有不同的标注方式和辅助功能,在此不做一一穷举。

在103中,利用时间表达中各时间词对应的时间范围,确定时间表达对应的时间范围或时间点。

在本步骤中,可以按照各时间词在时间表达中从前至后的顺序,依次在前一时间词对应的时间范围基础上,取当前时间词对应的时间范围,直至当前时间词为最后一个时间词,利用最终得到的时间范围确定时间表达对应的时间范围或时间点。

举一个例子,仍以时间表达“明年6月第3个星期的礼拜2上午10点1刻”为例,假设当前时间为2017年。时间词“明年”对应的时间范围为区间[2018年1月1日00:00:00,2018年12月31日24:00:00]。以“6月”作为当前时间词,在前一时间词基础上取时间词“6月”的时间范围,得到新的时间范围为区间[2018年6月1日00:00:00,2018年6月30日24:00:00]。再以时间词“第3个星期”作为当前时间词,在前一时间词对应的时间范围基础上取“第3个星期”的时间范围,得到新的时间范围为区间[2018年6月11日00:00:00至2018年6月17日24:00:00]。再以时间词“礼拜2”作为当前时间词,在前一时间词对应的时间范围基础上取“礼拜2”的时间范围,得到新的时间范围为区间[2018年6月12日00:00:00至24:00:00]。依次类推,最终确定出时间表表达对应的时间范围为区间[2018年6月12日10:15:00至10:16:00]。

还有一种情况,依次类推后,最终确定出时间范围后,可以依据预设的时间点精确度或具体应用的设置规则,将最终确定出的时间范围转化为一个时间点。仍以上例说明,最终确定出的时间范围为区间[2018年6月12日10:15:00至10:16:00],而有些应用并不需要一个时间范围,而是一个时间点,那么就可以将2018年6月12日10:15:00作为时间表达对应的时间点。

还存在这样一种情况,若该时间表达与各时间因子的语法均无法匹配,者可能是一种无法解析为时间的表达,例如“妈妈生日”,可能并不是一个公知的时间,对于这种情况,则可以反馈无法解析的指示信息。

另外,需要说明的是,对于一句话中可能存在多个时间表达,可以从中提取多个时间表达分别进行本发明实施例提供的上述处理,举个例子:“从下个月1号到明年1月1号”,可以按照语法定义将其解析为两个时间表达。其中预设的语法定义可以诸如:其中封闭式时间语法采用的形式可以为:

(时间介词)+时间表达1+时间介词+时间表达2。其中,括号表示该项可选。时间介词可以是诸如:“从…至…”,“从…到…”、“…至…”、“…到…”等等。

其中时间表达1和时间表达2中分别包括至少一个时间因子。例如,“从1990年至1991年”、“06年到10年”,等等。

仍以“从下个月1号到明年1月1号”为例,依据语法定义可以解析出“下个月1号”,“明年1月”作为两个时间表达,然后得到的时间范围区间,再按照两个时间表表达的关联进行整合处理。

以上是对本发明所提供的方法进行的描述,下面结合实施例对本发明提供的装置进行描述。

图3为本发明实施例提供的装置结构图,如图3所示,该装置可以包括:语法匹配单元01、第一确定单元02和第二确定单元03,该可以包括反馈单元04。其中各组成单元的主要功能如下:

语法匹配单元01负责将时间表达与各时间因子的语法进行匹配,确定时间表达中各时间词的时间因子属性。

在本发明实施例中,时间因子可以包括但不限于:世纪、年、季度、月、旬、周、候、日、时辰、小时、分、秒。时间表达可以理解成一个或多个具有不同时间因子属性的时间词构成的。

在本发明实施例中,预先针对各时间因子均定义了语法,各时间因子的语法包括但不限于:绝对时间语法、相对时间语法、重复时间语法、缩略表达语法、区间式表达语法、节日表达语法等。以时间因子“年”为例,年属性可以包括:绝对年份、相对年份、重复年份、年份的缩略以及区间式年份等。因此分别定义绝对年份语法、相对年份语法、重复年份语法、年份的缩略语法以及区间式年份语法等。

1)绝对时间语法采用的形式可以为:【数字】+时间因子单位。

2)相对时间语法采用的形式可以为:前缀相对词+【数字】+时间因子单位,或者,【数字】+时间因子单位+后缀相对词。其中前缀相对词可以是诸如“上”、“下”,后缀相对词可以是诸如“以前”、“以后”、“之前”、“之后”。

3)重复时间语法采用的形式可以为:重复词+【数字】+时间因子单位。其中重复词可以是诸如:“每”、“隔”、“每隔”,等等。

4)缩略表达语法采用的形式可以为罗列的形式,以时间因子“年”为例,其缩略语为:“明年”、“前年”、“大前年”、【数字】+“年代”等等。

5)区间式时间语法可以分为封闭式时间语法和开放式时间语法。

其中封闭式时间语法采用的形式可以为:

(时间介词)+【数字】+时间因子单位+时间介词+【数字】+时间因子单位。其中,括号表示该项可选。

其中开放式时间语法采用的形式可以为:(时间介词)+【数字】+时间因子单位+时间介词。

6)节日表达语法可以采用穷举的形式,穷举出各种节日。包括“元旦”、“情人节”、“妇女节”、“植树节”、“儿童节”、“愚人节”、“劳动节”、“五一”、“五四”等等国际性节日,也包括“春节”、“元宵”、“端午”、“七夕”、“中秋”、“重阳”、“腊八”、“年三十”、“除夕”等中国农历节日,还包括“感恩节”、“母亲节”、“父亲节”等西方节日,还可以包括诸如“双十一”、“光棍节”、“双十二”等等一些新出现的节日。

其中,绝对时间语法、缩略表达语法和节日表达语法对应的时间因子属性均为绝对时间因子,具体又以不同时间因子为单位进行区分。相对时间语法对应的时间因子属性为相对时间因子,具体又以不同时间因子为单位进行区分。重复时间语法对应的时间因子属性为重复时间因子,具体又以不同时间因子为单位进行区分。区间式表达语法对应的时间因子属性为区间式时间因子,具体又以不同时间因子为单位进行区分。

对于各种时间因子而言,可以预先设置各时间因子的优先级,时间因子对应的时间范围越大,优先级越高。语法匹配单元01可以按照各时间因子的优先级顺序,将时间表达与各时间因子的语法进行匹配。即按照“世纪、年、季度、月、旬、周、候、日、时辰、小时、分、秒”的顺序,优先级逐渐降低。也就是说,在对时间表达进行匹配时,一方面按照从前之后的顺序对时间表达进行匹配,例如时间表达“明年6月第3个星期的礼拜2上午10点1刻”,进行匹配时,从“明年”开始逐渐至后开始匹配;另一方面,按照各时间因子的优先级,从高优先级的时间因子的语法进行匹配,例如优先采用年的语法与“明年”开始匹配。

一旦某个高优先级的语法与时间表达中的某个词语匹配,则采用次高优先级的语法继续进行该词语之后的词语的匹配。或者某个高优先级的语法与时间表表达中的词语均不匹配,则采用次高优先级的语法从未匹配的第一个词语开始进行匹配。依次进行,直至时间表达匹配完成,或者最低优先级的语法匹配完成。

另外,在每个时间因子的语法中,也存在不同语法之间的优先级,例如可以采用,节日表达语法、区间式时间语法、相对时间语法、重复时间语法、绝对时间语法,对应优先级从高到低的顺序。但需要说明的是,这里所列举的优先级顺序仅仅为一个例子,为了保证实现效果的优劣可以对优先级顺序进行调整,本发明对此并不限制。

在将时间表达与各时间因子的语法进行匹配时,本发明实施例采用的是最大匹配原则。最大匹配原则是目前比较通用的匹配原则,在本发明实施例中,指的是,按照正向顺序,若存在多个长度的词语与同一时间因子的相同或不同语法匹配,则选择最长的词语作为匹配结果。

需要说明的是,上述语法的形式是为了形象说明语法结构,但实际应用中,该语法可以以计算机语言的形式编程为不同语法形式,但语法结构是类似的。本发明对采用的计算机语言类型并不加以限制。有了一套语法后,可以采用诸如“antlr”等语言编译工具,对上述语法进行解析编译。编译完成后,对于时间表达的输入,就可以在将时间表达与各时间因子的语法进行匹配的过程中,形成时间语法树(也可以称为解析树),该时间语法树中各非叶节点为时间表达匹配到的各时间因子属性,各叶节点为时间表达匹配到的时间词。可以这么理解,叶节点的各级父节点构成该叶节点的时间因子属性。

第一确定单元02负责依据预设的各时间因子属性对应的时间范围,确定时间表达中各时间词对应的时间范围。

对于每一种时间因子属性而言,均预先设置有对应的时间范围。下面分别进行描述:

绝对时间因子对应的时间范围可以包括开始时间和结束时间。时间因子“年”对应的时间范围为该年的第一天00:00:00到最后一天24:00:00,时间因子“月”对应的时间范围为该月的第一天00:00:00到最后一天24:00:00,时间因子“日”对应的时间范围为本日的00:00:00到24:00:00,等等。

相对时间因子对应的时间范围可以包括开始时间和结束时间,也可以包括起点时间和开放方向。也就是说,可以对应一个封闭式的范围,也可以对应一个开放式的范围。由于相对时间因子在确定时间范围时,会存在一个基准时间的问题,因此首先确定基准时间。对于时间词“2001年以前”是包含基准时间的,因此可以确定其时间范围的起点时间为:2001年,开放方向为:向前。对于时间词“前两天”是不包含基准时间的,可以默认基准时间为当前时间,假设当前时间为2017年6月13日,那么确定其时间范围为:开始时间2017年6月11日00:00:00,结束时间2017年6月12日24:00:00。

重复时间因子对应的时间范围可以为:重复时间单位、重复跨度和重复的持续范围。例如,时间词“8月的每个星期”,重复时间单位为“星期”,重复跨度为“星期”,重复的持续范围为:8月。

区间式时间因子对应的时间范围可以为:开始时间和结束时间,或者,起点时间和开放方向。例如,时间词“从1993年开始”对应的起点时间为“1993年1月1日00:00:00”,开放方向为向后。

第二确定单元03负责利用时间表达中各时间词对应的时间范围,确定时间表达对应的时间范围或时间点。

具体地,第二确定单元03可以按照各时间词在时间表达中从前至后的顺序,依次在前一时间词对应的时间范围基础上,取当前时间词对应的时间范围,直至当前时间词为最后一个时间词,依据最终得到的时间范围确定时间表达对应的时间范围。

若时间表达与各时间因子的语法均无法匹配,则反馈单元04负责反馈无法解析的指示信息。

经过上述方法和装置的处理后,实际上就将一种人类语言式的时间表达转换成具体的时间范围,然后(例如装置中的第二确定单元03)就可以将该时间范围提供给后续的业务处理逻辑进行处理。在此举几个应用场景:

应用场景1:

可以应用于诸如提醒类应用。当用户设置提醒时,可以输入人类语言式的语句,例如“明天上午十点提醒我开会”,则可以从该语句中抽取出“明天上午十点”为时间表达,然后采用本发明提供的方法和装置解析得到具体的时间范围,然后将该时间范围提供给提醒类应用的业务逻辑,由该业务逻辑将该时间范围与提醒内容进行绑定,以便在该时间范围对用户进行提醒。

应用场景2:

可以应用于诸如智能问答类应用。当用户输入一个人类语言式的问句“下周一北京天气如何”,则可以从中抽取出“下周一”为时间表达,然后采用本发明提供的方法或装置确定该时间表达对应的具体时间范围,然后将该时间范围提供给智能问答类应用的业务逻辑,由该业务逻辑查询北京的天气数据库中该时间范围对应的天气状况,并生成回答反馈给用户。

图4示例性地示出了根据各种实施例的示例设备400。设备400可包括一个或多个处理器402,系统控制逻辑401耦合于至少一个处理器402,非易失性存储器(non-volatilememory,nmv)/存储器404耦合于系统控制逻辑401,网络接口406耦合于系统控制逻辑401。

处理器402可包括一个或多个单核处理器或多核处理器。处理器402可包括任何一般用途处理器或专用处理器(如图像处理器、应用处理器基带处理器等)的组合。

一个实施例中的系统控制逻辑401,可包括任何适当的接口控制器,以提供到处理器402中的至少一个的任何合适的接口,和/或提供到与系统控制逻辑401通信的任何合适的设备或组件的任何合适的接口。

一个实施例中的系统控制逻辑401,可包括一个或多个内存控制器,以提供到系统内存403的接口。系统内存403用来加载以及存储数据和/或指令。例如,对应设备400,在一个实施例中,系统内存403可包括任何合适的易失性存储器。

nvm/存储器404可包括一个或多个有形的非暂时的计算机可读介质,用于存储数据和/或指令。例如,nvm/存储器404可包括任何合适的非易失性存储装置,如一个或多个硬盘(harddiskdevice,hdd),一个或多个光盘(compactdisk,cd),和/或一个或多个数字通用盘(digitalversatiledisk,dvd)。

nvm/存储器404可包括存储资源,该存储资源物理上是该系统所安装的或者可以被访问的设备的一部分,但不一定是设备的一部分。例如,nvm/存储器404可经由网络接口406被网络访问。

系统内存403以及nvm/存储器404可分别包括临时的或持久的指令410的副本。指令410可包括当由处理器402中的至少一个执行时导致设备400实现图1描述的方法之一或组合的指令。各实施例中,指令410或硬件、固件,和/或软件组件可另外地/可替换地被置于系统控制逻辑401,网络接口406和/或处理器402。

网络接口406可包括一个接收器来为设备400提供无线接口来与一个或多个网络和/或任何合适的设备进行通信。网络接口406可包括任何合适的硬件和/或固件。网络接口406可包括多个天线来提供多输入多输出无线接口。在一个实施例中,网络接口406可包括一个网络适配器、一个无线网络适配器、一个电话调制解调器,和/或无线调制解调器。

在一个实施例中,处理器402中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑一起封装。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑一起封装以形成系统级封装。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在相同的管芯上。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在相同的管芯上以形成系统芯片。

设备400可进一步包括输入/输出装置405。输入/输出装置405可包括用户接口旨在使用户与设备400进行交互,可包括外围组件接口,其被设计为使得外围组件能够与系统交互,和/或,可包括传感器,旨在确定环境条件和/或有关设备400的位置信息。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1