CN104951508B - 时间信息识别方法和装置 - Google Patents
时间信息识别方法和装置 Download PDFInfo
- Publication number
- CN104951508B CN104951508B CN201510263225.0A CN201510263225A CN104951508B CN 104951508 B CN104951508 B CN 104951508B CN 201510263225 A CN201510263225 A CN 201510263225A CN 104951508 B CN104951508 B CN 104951508B
- Authority
- CN
- China
- Prior art keywords
- character
- time
- character string
- string
- absolute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Character Discrimination (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及一种时间信息识别方法和装置,该方法包括:获取第一字符序列;根据预设时间相关字符与预设标准字符的映射关系,按顺序将第一字符序列中的预设时间相关字符映射为相应的预设标准字符,获得第二字符序列;根据预设相对时间词与具有预设特征格式的特征字符串的映射关系,按顺序将第二字符序列中的预设相对时间词映射为相应的特征字符串,获得第三字符序列;按顺序在第三字符序列中查找分别与预设绝对时间格式和预设特征格式匹配的字符串;根据匹配的字符串确定时间信息。本发明提供的时间信息识别方法和装置可以实现从自然语言文字中识别出时间信息,进而可以根据识别出的时间信息进行各种操作,应用到各种需要时间信息的场景中。
Description
技术领域
本发明涉及信息处理技术领域,特别是涉及一种时间信息识别方法和装置。
背景技术
目前,Android(安卓)操作系统提供的SDK(Software Development Kit,软件开发工具包)通常利用TextView(文本视图控件)来展示文本内容。设置TextView的android:autoLink属性可以实现自动标记链接文本,用户点击链接文本可以实现特定的动作。
然而,目前Android操作系统以及其他操作系统仅支持电话号码、邮件地址以及网址的自动标记,不能识别出日期、时刻等时间信息,尤其不能识别出用文字表达的时间信息。而且电话号码、邮件地址以及网址这些文本具有很严格的格式,很容易就可以实现识别并标记为链接文本,而时间的表达比较复杂,通常会包含文字表达,比如晚上、今天、Tomorrow、Next week等,对电话号码、邮件地址以及网址的识别难以应用到时间信息的识别中。
比如,目前某即时通信应用提供了自动标记链接文本的功能,通过Linkify函数实现,支持电话号码和邮件地址的识别。如图1所示,用户通过该即时通信应用收到消息,内容为“通知:明天上午九点开会,Thu Jan 15,20159am-9:30am(name@xxx.com)”,将其中的“20159”识别为电话号码,将“name@xxx.com”识别为邮件地址,标记出链接文本后显示为如图1中的格式。可见,由于不支持时间信息的识别,这里误将时间信息的一部分识别为电话号码,而且由于时间信息中包含文字表达“am”,表示上午,也给时间信息的识别带来了困难。
发明内容
基于此,有必要针对目前难以实现对时间信息的有效识别的问题,提供一种时间信息识别方法和装置。
一种时间信息识别方法,所述方法包括:
获取第一字符序列;
根据预设时间相关字符与预设标准字符的映射关系,按顺序将所述第一字符序列中的预设时间相关字符映射为相应的预设标准字符,获得第二字符序列;
根据预设相对时间词与具有预设特征格式的特征字符串的映射关系,按顺序将所述第二字符序列中的预设相对时间词映射为相应的特征字符串,获得第三字符序列;
按顺序在所述第三字符序列中查找分别与预设绝对时间格式和预设特征格式匹配的字符串;
根据匹配的字符串确定时间信息。
一种时间信息识别装置,所述装置包括:
第一字符序列获取模块,用于获取第一字符序列;
第一映射模块,用于根据预设时间相关字符与预设标准字符的映射关系,按顺序将所述第一字符序列中的预设时间相关字符映射为相应的预设标准字符,获得第二字符序列;
第二映射模块,用于根据预设相对时间词与具有预设特征格式的特征字符串的映射关系,按顺序将所述第二字符序列中的预设相对时间词映射为相应的特征字符串,获得第三字符序列;
匹配查找模块,用于按顺序在所述第三字符序列中查找分别与预设绝对时间格式和预设特征格式匹配的字符串;
时间信息确定模块,用于根据匹配的字符串确定时间信息。
上述时间信息识别方法和装置,首先将第一字符序列中的预设时间相关字符映射为相应的预设标准字符以获得第二字符序列,这样可以将时间的多种近似表达统一用预设标准字符表达,以方便后续进行识别。然后将第二字符序列中的预设相对时间词映射为相应的预设特征格式的特征字符串以获得第三字符序列。这样第三字符序列中的时间信息都转化为了格式化的数据,通过格式匹配方式,查找与预设绝对时间格式和预设特征格式匹配的字符串,进而利用匹配的字符串便可以确定时间信息。这样可以实现从自然语言文字中识别出时间信息,进而可以根据识别出的时间信息进行各种操作,应用到各种需要时间信息的场景中。
附图说明
图1为一个实施例中传统的即时通信应用提供的标记链接文本的功能示意图;
图2为一个实施例中用于实现时间信息识别方法的终端的结构示意图;
图3为一个实施例中时间信息识别方法的流程示意图;
图4为一个实施例中第一字典树的数据结构示意图;
图5为一个实施例中第二字典树的数据结构示意图;
图6为一个实施例中生成链接文本的步骤的流程示意图;
图7为一个实施例中确定时间信息对应到第一字符序列中的时间开始位置和时间结束位置的步骤的流程示意图;
图8为一个实施例中按照第一字符序列中各字符的字符类型和相应的优先级,确定第一字符序列中的时间开始位置和时间结束位置的步骤的流程示意图;
图9为一个实施例中根据时间信息配置预设时间相关应用的步骤的流程示意图;
图10为一个实施例中终端通过电话本应用接收到多条短信中的时间信息被识别出并标记为链接文本的界面示意图;
图11为一个实施例中根据触发操作进入操作菜单的界面示意图;
图12为一个实施例中待办事项规划应用的配置页面的示意图;
图13为一个实施例中终端显示设置完毕的待办事项列表的界面示意图;
图14为一个实施例中时间信息识别装置的结构框图;
图15为另一个实施例中时间信息识别装置的结构框图;
图16为一个实施例中位置确定模块的结构框图;
图17为一个实施例中执行模块的结构框图;
图18为再一个实施例中时间信息识别装置的结构框图;
图19为一个实施例中应用到安卓操作系统中的时间信息识别方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
中文的时间存在多种表述,通过整理,将已知的中文时间的表述进行分类,并提供组合识别条件,如下表1所示。基于此提供一种识别时间信息的方法和装置。
表1中日期是指以一天作为最小单位的时间,而时刻则是指一天内的时间。时间类别包括相对日期、绝对日期、相对时刻和绝对时刻。相对日期和相对时刻称为相对时间,相对时间用来表示某时间范围。绝对日期和绝对时刻称为绝对时间,绝对时间用来表示某具体时间。相对时间可以修饰绝对时间,使得表示的时间更加精确。
表1中的组合识别条件是指不同时间类别的时间组合起来进行识别的条件,比如相对日期单独出现时不识别,这里单独出现是指与该相对日期相邻的前面或后面都没有其他与时间相关的字符。这里前面或者后面是按照阅读顺序确定的方向。表1中的文本是指相应的时间类别下的具体时间词,文本中的X、yy、mm、dd等是通用表示符号,该通用表示符号用来表示相应的多种时间词所具有的通用表达形式,表1的相应备注中存在该通用表示符号的取值范围。默认对应起始时间是指相应的时间词默认对应的时间起算点。
表1:
如图2所示,在一个实施例中,提供了一种终端200,该终端200包括通过系统总线连接的处理器、内存储器、非易失性存储介质、网络接口、显示装置和输入装置。该终端200的处理器具有计算和控制终端200运行的能力,处理器被配置为执行一种时间信息识别方法。该终端200的非易失性存储介质包括一种时间信息识别装置,具有实现一种时间信息识别方法的功能。该终端200的显示装置可以是液晶显示屏或者电子墨水显示屏。输入装置包括触摸板、物理按键、轨迹球、鼠标和用于与显示装置组成触控屏的触摸层中的至少一种。终端200包括台式计算机和移动终端,移动终端包括手机、平板电脑和个人数字助理(PDA)。
如图3所示,在一个实施例中,提供了一种时间信息识别方法,本实施例以该方法应用于上述图2中的终端来举例说明。该方法具体包括如下步骤:
步骤302,获取第一字符序列。
字符序列是指多个存在排列顺序的字符依次组成的数据。终端200可运行即时通信应用,可以获取在即时通信应用中接收到的消息中的文本作为第一字符序列,也可以将手机接收到的短信作为第一字符序列。终端200还可以接收选择指令,根据该选择指令选择字符序列作为第一字符序列。比如用户可以选择终端200运行的浏览器或者文字处理软件中显示的一段文字,从而终端200将选择的文字作为第一字符序列。第一字符序列为输入的待处理的字符序列。
举例说明,终端200在2015年1月16日收到短信,内容为“下星期一晚上八点半到十一点举行部门年会。”终端200获取短信的内容作为第一字符序列,则第一字符序列为“下星期一晚上八点半到十一点举行部门年会。”
步骤304,根据预设时间相关字符与预设标准字符的映射关系,按顺序将第一字符序列中的预设时间相关字符映射为相应的预设标准字符,获得第二字符序列。
预设时间相关字符是指预先设定的与时间相关的字符,预设标准字符则是预先设定的用来表达时间的统一字符,预设时间相关字符与预设标准字符的映射关系可以是多对一的映射关系。按顺序是指按照第一字符序列中字符的排列顺序。
在一个实施例中,预设时间相关字符与预设标准字符的映射关系包括表2所示的映射关系。表2中的序号用来区分不同的映射关系,并不限定顺序。表2中的内容还可以根据需要进行扩充或更改。
表2:
序号 | 预设时间 | 预设标准字符 | 序号 | 预设时间 | 预设标准字符 |
相关字符 | 相关字符 | ||||
1 | 时 | : | 18 | 。 | - |
2 | 三 | 3 | 19 | . | - |
3 | 点 | : | 20 | 下个 | 下 |
4 | 点钟 | 点 | 21 | 下一个 | 下 |
5 | 十 | 10 | 22 | 下星期 | 下周 |
6 | 分 | :: | 23 | : | : |
7 | 月 | - | 24 | 明早 | 明天早上 |
8 | 七 | 7 | 25 | 明天一早 | 明天早上 |
9 | 八 | 8 | 26 | / | - |
10 | 五 | 5 | 27 | 二 | 2 |
11 | 年 | - | 28 | 至 | ~ |
12 | 星期 | 周 | 29 | 或 | ~ |
13 | 四 | 4 | 30 | 两 | 2 |
14 | 号 | # | 31 | 零 | 0 |
15 | 九 | 9 | 32 | 六 | 6 |
16 | 一 | 1 | 33 | 日 | # |
17 | 到 | ~ |
在一个实施例中,可以采用字典树来表示预设时间相关字符与预设标准字符的映射关系。其中字典树又称单词查找树,是一种树形结构,利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率高。
在一个实施例中,采用第一字典树来表示预设时间相关字符与预设标准字符的映射关系具体表示如下:
上述第一字典树所表示的映射关系中,“|INTERNAL”表示第一字典树中具有子节点的节点,“|AVAILABLE”表示所属节点下的一个子节点,缩进表示节点层级,符号“->”表示映射关系,符号“->”前的字符前再连接上从根节点到前一节点的字符为预设时间相关字符,符号“->”后是预设标准字符。
举例说明,“INTERNAL:#”表示的是根节点,后续所有缩进的“|INTERNAL”或者“|AVAILABLE”都是根节点的子节点。“|INTERNAL:点->:”表示该节点存在子节点,且该节点存在映射,将“点”映射到“:”。缩进的“|AVAILABLE:钟->点”表示“点”节点的子节点表示“点钟”,且该子节点存在映射,将“点钟”映射到“:”。第一字典树的数据结构可以表示为如图4所示。
终端200利用上述表2或者第一字典树,可以方便地将第一字符序列中的预设时间相关字符映射为相应的预设标准字符,得到第二字符序列。第二字符序列是近似表达归一化后的字符序列。
举例说明,第一字符序列为“下星期一晚上八点半到十一点举行部门年会。”根据上述表2,将第一字符序列中的“下星期”映射为“下周”,“一”映射为“1”,“八”映射为“8”,“点”映射为“:”,“到”映射为“~”,“十一”映射为“11”,“年”映射为“-”,“。”映射为“-”。于是获得第二字符序列为“下周1晚上8:半~11:举行部门-会-”。
步骤306,根据预设相对时间词与具有预设特征格式的特征字符串的映射关系,按顺序将第二字符序列中的预设相对时间词映射为相应的特征字符串,获得第三字符序列。
预设相对时间词是指用来表达相对时间的词,并不限于文字,也可以包括数字,或者指定符号,比如“周1”、“周#”。特征字符串是指用来表示相应的预设相对时间词的特征值,每个特征字符串具有预设特征格式,可以根据预设特征格式方便地识别出特征字符串。预设特征格式比如可以是“%****$”,其中的“*”代表数字,这样格式为“%****$”的字符串可以通过正则表达式方便地查找出来。预设特征格式还可以是“%****¥”、“¥****%”或“$****%”等。预设相对时间词与具有预设特征格式的特征字符串的映射关系是一一对应的关系。
在一个实施例中,预设相对时间词与具有预设特征格式的特征字符串的映射关系包括表3所示的映射关系。表3中的序号用来区分不同的映射关系,并不限定顺序。表3中的内容还可以根据需要进行扩充或更改。
表3:
序号 | 预设相对时间词 | 特征字符串 | 序号 | 预设相对时间词 | 特征字符串 |
1 | 中午 | %4012$ | 18 | 周4 | %2004$ |
2 | 午夜 | %4124$ | 19 | 周3 | %2003$ |
3 | 大后天 | %1003$ | 20 | 周2 | %2002$ |
4 | 明年 | %3012$ | 21 | 晚上 | %4020$ |
5 | 天 | %1001$ | 22 | 下- | %3001$ |
6 | 傍晚 | %4018$ | 23 | 下午 | %4014$ |
7 | 上午 | %4010$ | 24 | 下周1 | %2008$ |
8 | 凌晨 | %4006$ | 25 | 下周6 | %2013$ |
9 | 后天 | %1002$ | 26 | 下周天 | %2014$ |
10 | 早上 | %4008$ | 27 | 下周末 | %2013$ |
11 | 正午 | %4112$ | 28 | 下周# | %2014$ |
12 | 周1 | %2001$ | 29 | 下周5 | %2012$ |
13 | 周6 | %2006$ | 30 | 下周4 | %2011$ |
14 | 周天 | %2007$ | 31 | 下周3 | %2010$ |
15 | 周末 | %2006$ | 32 | 下周2 | %2009$ |
16 | 周# | %2007$ | 33 | 下班 | %4018$ |
17 | 周5 | %2005$ | 34 | 下月 | %3001$ |
在一个实施例中,可以采用第二字典树来表示预设相对时间词与具有预设特征格式的特征字符串的映射关系。第二字典树的数据结构具体可表示如下:
上述第二字典树所表示的映射关系中,“|INTERNAL”表示第二字典树中具有子节点的节点,“|AVAILABLE”表示所属节点下的一个子节点,缩进表示节点层级,符号“->”表示映射关系,符号“->”前的字符前再连接上从根节点到前一节点的字符为预设相对时间词,符号“->”后是特征字符串。第二字典树的数据结构可以表示为如图5所示。
终端200利用上述表3或者图5,可以方便地将第二字符序列中的预设相对时间词映射为相应的特征字符串,得到第三字符序列。第三字符序列是特征值归一化后的字符序列。
举例说明,第二字符序列为“下周1晚上8:半~11:举行部门-会-”根据上述表3,将第二字符序列中的“下周1”映射为“%2008$”,“晚上”映射为“%4020$”,则得到第三字符序列为“%2008$%4020$8:半~11:举行部门-会-”。
步骤308,按顺序在第三字符序列中查找分别与预设绝对时间格式和预设特征格式匹配的字符串。
这里终端200采用格式匹配方式,具体分别以预设绝对时间格式和预设特征格式作为模板,按顺序从第三字符序列中查找与相应的格式匹配的字符串。按顺序是指按照第三字符序列中字符的排列顺序。绝对时间能够单独确定具体时间值,绝对时间信息则是指用来表示相应的绝对时间的字符。相对时间单独不能确定具体值,但可以与绝对时间组合来确定具体时间值,相对时间信息则是指用来表示相应的相对时间的字符。
预设绝对时间格式是基于经过映射的字符的,预设绝对时间格式包括“*#”,“*-*#”(对应*月*日),“*-*-*#”(对应*年*月*日),“*:”(对应*时)和“*:*::”(对应*时*分),其中“*”均表示数字或文字形式的数字。可以通过正则表达式实现格式匹配。
举例说明,第三字符序列为“%2008$%4020$8:半~11:举行部门-会-”,经过预设绝对时间格式的格式匹配,匹配到字符串“8:半”和“11:”,且通过表示时间范围的字符“~”连接。经过预设特征格式的格式匹配,匹配到字符串“%2008$”和“%4020$”。
步骤310,根据匹配的字符串确定时间信息。
具体地,终端200根据与预设绝对时间格式匹配的字符串可以确定绝对时间信息,比如若匹配到字符串“8:半”和“11:”,则可据以确定绝对时刻为“8:30”和“11:00”。终端200根据与预设特征格式匹配的字符串可以确定相对时间信息,比如若匹配到字符串“%2008$”和“%4020$”,则可据以确定相对日期为下星期一和晚上。因此可确定时间信息为下星期一晚上8:30到11:00。
在一个实施例中,该时间信息识别方法还包括:判断时间信息是否符合时间信息规则,若该时间信息不符合时间信息规则,则丢弃该时间信息。比如若识别出的时间信息包括2015年2月29日,由于2015年不是闰年,因此将识别出的2015年2月29日丢弃。还比如4月31日、13月、26点等时间信息都不符合时间信息规则,将这些时间信息丢弃。
在一个实施例中,该时间信息识别方法还包括:判断时间信息是否过期,若该时间信息过期,则丢弃该时间信息。本实施例适用于对时效要求较高的场景,比如待办事项的设置。
上述时间信息识别方法,首先将第一字符序列中的预设时间相关字符映射为相应的预设标准字符以获得第二字符序列,这样可以将时间的多种近似表达统一用预设标准字符表达,以方便后续进行识别。然后将第二字符序列中的预设相对时间词映射为相应的预设特征格式的特征字符串以获得第三字符序列。这样第三字符序列中的时间信息都转化为了格式化的数据,通过格式匹配方式,查找与预设绝对时间格式和预设特征格式匹配的字符串,进而利用匹配的字符串便可以确定时间信息。这样可以实现从自然语言文字中识别出时间信息,进而可以根据识别出的时间信息进行各种操作,应用到各种需要时间信息的场景中。
在一个实施例中,步骤310包括:获取绝对时间信息和相对时间信息,并根据相对时间信息对绝对时间信息进行时间偏移处理;其中绝对时间信息和相对时间信息中的至少一种根据匹配的字符串确定。本实施例中,模拟人脑处理时间信息的特点,先关注绝对时刻信息和/或绝对日期信息,后使用相对时间信息和/或日期信息对绝对时刻信息和/或绝对日期信息进行修饰,可以准确分析出文字表达的时间信息。
在一个实施例中,步骤310包括:获取与预设绝对时间格式所包括的预设绝对时刻格式匹配的绝对时刻字符串所对应的绝对时刻信息,并根据与预设特征格式匹配的特征字符串对绝对时刻信息进行时间偏移处理;匹配的特征字符串与匹配的绝对时刻字符串相邻。
具体地,预设绝对时间格式包括预设绝对时刻格式和预设绝对日期格式。根据与预设绝对时刻格式匹配的字符串可以直接确定相应的绝对时刻信息,比如“8:半”和“11:”,可以直接确定绝对时刻信息为“8:30”和“11:00”。
这里的相邻的两种字符串,表示用来表达相对时间信息的字符串对用来表达绝对时刻信息的字符串的修饰。终端200根据与预设特征格式匹配的特征字符串对绝对时刻信息进行时间偏移处理。具体地,每个特征字符串可以对应各自的时间取值范围,从而终端200可以根据该特征字符串的时间取值范围对绝对时刻信息进行时间偏移处理。比如若第三字符序列为“%2008$%4020$8:半~11:举行部门-会-”,识别出的绝对时刻信息包括“8:30”,该绝对时刻信息之前的特征字符串“%4020$”表示晚上,对应的时间取值范围可为[20:00,24:00],则可将“8:30”偏移12小时得到“20:30”。时间取值范围可以根据表1中的默认对应起始时间来确定。
在一个实施例中,根据与预设特征格式匹配的特征字符串对绝对时刻信息进行时间偏移处理的步骤,具体包括:获取与预设特征格式匹配的特征字符串中的偏移计算类型标志位和偏移计算参数,采用该偏移计算类型标志位所对应的偏移函数、并根据该偏移计算参数对绝对时刻信息进行时间偏移处理。
具体地,预设特征格式的特征字符串包括偏移计算类型标志位和偏移计算参数。其中偏移计算类型标志位表示相应的相对时间词在偏移计算时所采用的偏移函数,而偏移计算参数则是进行偏移处理时所需要的计算参数。
具体地,若预设特征格式为“%****$”,****表示四位整数,从左到右第一位表示偏移计算类型标志位,最后两位表示偏移计算参数。比如若匹配的特征字符串为“%4020$”,则偏移计算类型标志位为4,表示采用第四类型的偏移函数,偏移计算参数表示对应的时间范围为最小为20点,由于“8:30”不在这个范围内,则进行偏移处理得到“20:30”。在一个实施例中,偏移计算类型标志位的取值以及相应的偏移函数可如表4所示:
表4:
在一个实施例中,步骤310包括:获取与预设绝对时间格式所包括的预设绝对时刻格式匹配的绝对时刻字符串所对应的绝对时刻信息,并根据当前系统时刻信息对绝对时刻信息进行时间偏移处理。具体地,终端200根据终端200的系统时钟获得当前系统时刻信息,比如若当前系统时间信息为16:45,若绝对时刻信息为“8:30”,则可将“8:30”偏移12小时得到“20:30”。
在一个实施例中,步骤310包括:获取当前系统日期信息作为绝对日期信息,并根据与预设特征格式匹配的特征字符串对绝对日期信息进行时间偏移处理。具体地,终端200将收到短信的日期2015-1-16作为绝对日期信息,匹配的特征字符串“%2008$”对应下周一,2015-1-16为周五,则对该绝对日期信息2015-1-16进行偏移处理,得到2015-1-19。
在一个实施例中,根据与预设特征格式匹配的特征字符串对绝对日期信息进行时间偏移处理的步骤具体包括:获取与预设特征格式匹配的特征字符串中的偏移计算类型标志位和偏移计算参数,采用该偏移计算类型标志位所对应的偏移函数、并根据该偏移计算参数对绝对日期信息进行时间偏移处理。
举例说明,当匹配到特征字符串“%2008$”(下周1)时,代码片断如下:
类似地,下周X、下X月、明年等相对时间信息都可以采用本实施例中的方式:获取偏移计算类型标志位和偏移计算参数,采用该偏移计算类型标志位所对应的偏移函数并根据该偏移计算参数对绝对日期信息进行时间偏移处理。
如图6所示,在一个实施例中,该时间信息识别方法还包括生成链接文本的步骤,具体包括如下步骤:
步骤602,确定时间信息对应到第一字符序列中的时间开始位置和时间结束位置。
具体地,时间开始位置是指第一字符序列中用来表示时间信息的字符的起始位置,相应的时间结束位置则是指第一字符序列中用来表示时间信息的字符的结束位置。比如识别出的时间信息对应到第一字符序列中为“下星期一晚上八点半”和“十一点”,一个时间开始位置为“下”,另一个时间结束位置为“半”,另一个时间开始位置为“十一点”的“十”,另一个时间结束位置为“十一点”的“点”。
步骤604,根据时间开始位置和时间结束位置在第一字符序列中标记出链接文本。
具体地,对第一字符序列中时间开始位置和时间结束位置之间的字符所组成的字符串创建超链接,生成用于触发预设操作的链接文本。终端200将从时间开始位置到时间结束位置的字符串生成为链接文本。预设操作比如对连接文本本身进行复制、保存等操作,或者触发进入特定应用。
本实施例中,通过生成对应于时间信息的链接文本,使得开发者可以基于识别出的时间信息触发各种操作,增加了互动方式。
如图7所示,在一个实施例中,步骤602包括以下步骤:
步骤702,标记第三字符序列中各个字符的字符类型;字符类型按照优先级从低到高包括:未经映射处理的初始字符类型、经过映射处理的第一字符类型、表示相对日期的第二字符类型、表示相对时刻的第三字符类型、表示绝对日期的第四字符类型和表示绝对时间的第五字符类型。
具体地,字符类型可以用字符标志位来表示,初始字符类型用字符标志位0表示,第一到第五字符类型分别用1到5的整数的字符标志位来表示。
在执行步骤304时,得到表5所示的第一字符序列的索引映射表,其中idx表示索引号,表间映射值map用来将表5与下一个索引映射表表6建立映射关系,表5中的map值表示相应的字符在第二字符序列中的起始索引号。char表示第一字符序列中的各个字符,tag则表示第一字符序列映射为第二字符序列的过程中标记的各个字符的字符标志位。可见,第一字符序列中经过映射的字符均标记为第一字符类型为1,比如“下星期一”、“八点”、“到”、“十一”、“点”、“年”和“。”,而不经过映射的字符则均标记为初始字符类型为0。规定同一时间词中的各个字符共用字符类型和map值。
表5:
idx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
map | 0 | 0 | 0 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
char | 下 | 星 | 期 | 一 | 晚 | 上 | 八 | 点 | 半 | 到 | 十 | 一 | 点 | 举 | 行 | 部 | 门 | 年 | 会 | 。 |
tag | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
在执行步骤304之后,根据表5,可以得到如表6所示的第二字符序列的索引映射表。表6中的索引号idx是根据表5中的map值确定的,表6中的字符标志位tag则是根据表5中的字符标志位tag确定的。表6中的表间映射值map用来将表6与下一个索引映射表表7建立映射关系,表6中的map值表示相应的字符在第三字符序列中的起始索引号。规定同一时间词中的各个字符共用字符类型和map值。
表6:
idx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
map | 0 | 0 | 0 | 6 | 6 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
char | 下 | 周 | 1 | 晚 | 上 | 8 | : | 半 | ~ | 1 | 1 | : | 举 | 行 | 部 | 门 | - | 会 | - |
tag | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
在执行步骤306之后,根据表6,得到如表7所示的第三字符序列的索引映射表。表7中的索引号idx是根据表6中的map值确定的,表7中的字符标志位tag则是根据表6中的字符标志位tag确定的。规定同一时间词中的各个字符共用字符类型。
表7:
idx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
char | % | 2 | 0 | 0 | 8 | $ | % | 4 | 0 | 2 | 0 | $ | 8 |
tag | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
idx | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
char | : | 半 | ~ | 1 | 1 | : | 举 | 行 | 部 | 门 | - | 会 | - |
tag | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
在执行步骤308之后,可以获取匹配的字符串的字符类型,按照第二字符类型对应字符标志位2、第三字符类型对应字符标志位3、第四字符类型对应字符标志位4和第五字符类型对应字符标志位5进行标记,更新表7,得到表8。
表8:
idx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
char | % | 2 | 0 | 0 | 8 | $ | % | 4 | 0 | 2 | 0 | $ | 8 |
tag | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 5 |
idx | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
char | : | 半 | ~ | 1 | 1 | : | 举 | 行 | 部 | 门 | - | 会 | - |
tag | 5 | 5 | 1 | 5 | 5 | 5 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
步骤704,根据对应第三字符序列所标记的字符类型确定第一字符序列中各个字符的字符类型。
具体地,根据表8进行逆映射,得到原表6更新字符标志位后第二字符序列的索引映射表表9。
表9:
idx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
map | 0 | 0 | 0 | 6 | 6 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
char | 下 | 周 | 1 | 晚 | 上 | 8 | : | 半 | ~ | 1 | 1 | : | 举 | 行 | 部 | 门 | - | 会 | - |
tag | 2 | 2 | 2 | 3 | 3 | 5 | 5 | 5 | 1 | 5 | 5 | 5 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
再根据表9进行逆映射,得到原表5更新字符标志位后第一字符序列的索引映射表表10:
idx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
map | 0 | 0 | 0 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
char | 下 | 星 | 期 | 一 | 晚 | 上 | 八 | 点 | 半 | 到 | 十 | 一 | 点 | 举 | 行 | 部 | 门 | 年 | 会 | 。 |
tag | 2 | 2 | 2 | 2 | 3 | 3 | 5 | 5 | 5 | 1 | 5 | 5 | 5 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
步骤706,按照第一字符序列中各字符的字符类型和相应的优先级,确定第一字符序列中的时间开始位置和时间结束位置。
具体地,如图8所示,在一个实施例中,步骤706包括以下步骤:
步骤802,确定第一字符序列中对应的字符类型优先级最高的字符。
具体地,如表10所示,遍历第一字符中各个字符的字符类型,按顺序取字符类型的中优先级最高的值,这里可以取字符标志位的最大值5,对应的索引号为idx=6,对应的字符是“八”。
步骤804,查找与优先级最高的字符连续相邻的具有高于第一字符类型的优先级的字符。
具体地,多个字符连续相邻是指其中每个字符连成一个连续的字符串。如表10所示,从idx=5向前遍历以及从idx=7向后遍历,查找到字符标志位大于1的字符为idx=[0,5]和idx=[7,9)的字符。
步骤806,根据优先级最高的字符和查找到的字符所构成的字符串的边界来确定时间开始位置和时间结束位置。
具体地,如表10所示,将idx=[0,9)的字符所构成的字符串的边界idx=0和idx=8分别作为时间开始位置和时间结束位置。
然后,继续确定第一字符序列剩余的字符串中优先级最高的字符,查找与优先级最高的字符连续相邻的具有高于第一字符类型的优先级的字符,根据优先级最高的字符和查找到的字符所构成的字符串的边界来确定时间开始位置和时间结束位置,直至第一字符序列剩余的字符串中所有字符的字符类型的优先级均小于等于第一字符类型的优先级。这样可以从表10所对应的第一字符序列剩余的字符串中再确定另一个时间开始位置为idx=10,另一个时间结束位置为idx=12。这样最终得到的时间信息为2015-01-1920:30~2015-01-1923:00。
本实施例中,终端200可以精确地从自然语言的文字表述中解析出精确的时间,可以实现文字形式的时间信息的精确识别。
如图9所示,在一个实施例中,该时间信息识别方法还包括根据时间信息配置预设时间相关应用的步骤,具体包括如下步骤:
步骤902,检测对链接文本的触发操作。
具体地,如图10所示,终端200通过电话本应用接收到多条短信,每条短信中的时间信息被识别出并标记为链接文本。对链接文本的触发操作包括对链接文本的光标单击、光标双击、点触、长按以及手势操作等。
步骤904,根据触发操作进入预设时间相关应用的配置页面。
移动终端200在检测到对字符链接的触发操作后,进入用于进行与时间信息相关的配置的配置页面。预设时间相关应用包括日历应用、待办事项规划应用、闹钟应用和计时应用等。
举例说明,如图11所示,一条短信的内容为“明天上午九点开始美好一天的工作”,其中“明天上午九点”被识别并标记为链接文本,用户点击该链接文本,终端200进入操作菜单。操作菜单中显示对该时间信息进行复制的第一选项和进入待办事项规划应用的第二选项,用户点击第二选项,终端200进入如图12所示的待办事项规划应用配置页面。
步骤906,在配置页面中自动录入时间信息、第一字符序列和第一字符序列的来源中的至少一种。
具体地,终端200在配置页面中的时间信息选择控件中录入时间信息,在文字说明录入框中录入第一字符序列和/或第一字符序列的来源。如图12所示,进入待办事项规划应用的配置页面后,直接录入待办事项的开始时间为识别出的时间信息所表示的时间,并自动录入“明天上午九点开始美好一天的工作(来自电话本应用的短信)”。终端200在检测到确认指令后,保存该待办事项的配置内容。最终如图13所示,终端200显示设置完毕的待办事项列表。
本实施例中,在识别出时间信息后将相应的第一字符序列中的字符标记为链接文本,用户可以通过操作该链接文本触发进入预设时间相关应用进行自动配置,极大地简化了配置预设时间相关应用的步骤,提高了操作便利性。
参照图19,在一个具体的实施例中,将时间信息识别方法应用到安卓操作系统中,对原有的用于识别电话号码和邮件地址的链接标记工具类函数Linkify进行了扩展,增加了自定义链接标记工具类函数PhoneBookLinkify。还增加了自定义的中文时间识别工具类函数SmartCalendarUtil。本实施例中时间信息识别方法具体包括如下步骤:
1):Context(是指上下文环境,为活动控制者)通过调用链接标记添加函数addLinks()请求自定义链接标记工具类函数PhoneBookLinkify创建链接文本。
2):自定义链接标记工具类函数PhoneBookLinkify通过字符序列转换函数toString()获取到第一字符序列,该第一字符序列为输入的待处理的文本。
3):自定义链接标记工具类函数PhoneBookLinkify通过解析函数parse()调用中文时间识别工具类函数SmartCalendarUtil。
4):中文时间识别工具类函数SmartCalendarUtil调用归一化函数normalize(),利用第一字典树NormalizerTree进行近似表达归一化处理。具体地,根据预设时间相关字符与预设标准字符的映射关系,按顺序将第一字符序列中的预设时间相关字符映射为相应的预设标准字符,获得第二字符序列。该第二字符序列是经过近似表达归一化处理的文本。
5):中文时间识别工具类函数SmartCalendarUtil调用归一化函数normalize(),利用第二字典树NormalizerTree进行特征值归一化处理。具体地,根据预设相对时间词与具有预设特征格式的特征字符串的映射关系,按顺序将第二字符序列中的预设相对时间词映射为相应的特征字符串,获得第三字符序列。该第三字符序列是经过特征值归一化处理的文本。
6):中文时间识别工具类函数SmartCalendarUtil调用格式匹配函数recognize(),利用正则表达式进行格式匹配。具体地,按顺序在第三字符序列中查找分别与预设绝对时间格式和预设特征格式匹配的字符串。
7):中文时间识别工具类函数SmartCalendarUtil利用绝对时刻解析函数parseAbsoluteTime()解析获得绝对时刻信息。具体地,将与预设绝对时刻格式匹配的绝对时刻字符串转化为绝对时刻信息。
8):中文时间识别工具类函数SmartCalendarUtil利用绝对日期解析函数parseAbsoluteDate()解析获得绝对日期信息。具体地,将与预设绝对日期格式匹配的绝对日期字符串转化为绝对日期信息。
9):中文时间识别工具类函数SmartCalendarUtil利用时间处理函数handle()处理相对时间信息。具体地,根据与预设特征格式匹配的特征字符串对绝对时刻信息和绝对日期信息进行时间偏移处理。
10):中文时间识别工具类函数SmartCalendarUtil利用更新函数update()更新时间信息,并获取链接起止索引位置,得到解析结果ParserResult。具体地,标记第三字符序列中各个字符的字符类型,根据对应第三字符序列所标记的字符类型确定第一字符序列中各个字符的字符类型,按照第一字符序列中各字符的字符类型和相应的优先级,确定第一字符序列中的时间开始位置和时间结束位置。
11):自定义链接标记工具类函数PhoneBookLinkify获取到解析结果ParserResult,生成链接文本date schema url,封装成链接标记工具类函数Linkify支持的链接函数LinkSpec()。
12):自定义链接标记工具类函数PhoneBookLinkify调用链接应用函数applylink()应用创建的链接。
13):自定义链接标记工具类函数PhoneBookLinkify调用链接设置函数setSpan()生成带有链接文本的目标文本text:spannable。具体地,对第一字符串设置链接文本,得到带有链接文本的第一字符序列。
14):Context调用文本设置函数setText()在文本视图控件TextView中显示带有链接文本的目标文本。具体地,在在文本视图控件TextView中显示带有链接文本的第一字符序列。
15):文本视图控件TextView利用点击事件函数onclick()检测对TextView显示的链接文本URLSpan的点击事件。
16):Context在检测到点击事件后,通过交互组件启动函数startActivity()启动显示的链接文本URLSpan所对应的交互组件Activity(),通过交互组件Activity()与用户交互。
如图14所示,在一个实施例中,提供了一种时间信息识别装置1400,具有实现上述各个实施例的时间信息识别方法的功能。该时间信息识别装置1400包括:第一字符序列获取模块1401、第一映射模块1402、第二映射模块1403、匹配查找模块1404和时间信息确定模块1405。
第一字符序列获取模块1401,用于获取第一字符序列。
字符序列是指多个存在排列顺序的字符依次组成的数据。第一字符序列获取模块1401可用于获取在即时通信应用中接收到的消息中的文本作为第一字符序列,也用于将手机接收到的短信作为第一字符序列。第一字符序列获取模块1401还可以用于接收选择指令,根据该选择指令选择字符序列作为第一字符序列。
第一映射模块1402,用于根据预设时间相关字符与预设标准字符的映射关系,按顺序将第一字符序列中的预设时间相关字符映射为相应的预设标准字符,获得第二字符序列。
预设时间相关字符是指预先设定的与时间相关的字符,预设标准字符则是预先设定的用来表达时间的统一字符,预设时间相关字符与预设标准字符的映射关系可以是多对一的映射关系。按顺序是指按照第一字符序列中字符的排列顺序。
在一个实施例中,预设时间相关字符与预设标准字符的映射关系包括表2所示的映射关系。表2中的序号用来区分不同的映射关系,并不限定顺序。表2中的内容还可以根据需要进行扩充或更改。
在一个实施例中,可以采用字典树来表示预设时间相关字符与预设标准字符的映射关系。其中字典树又称单词查找树,是一种树形结构,利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率高。
第二映射模块1403,用于根据预设相对时间词与具有预设特征格式的特征字符串的映射关系,按顺序将第二字符序列中的预设相对时间词映射为相应的特征字符串,获得第三字符序列。
预设相对时间词是指用来表达相对时间的词,并不限于文字,也可以包括数字,或者指定符号,比如“周1”、“周#”。特征字符串是指用来表示相应的预设相对时间词的特征值,每个特征字符串具有预设特征格式,可以根据预设特征格式方便地识别出特征字符串。预设特征格式比如可以是“%****$”,其中的“*”代表数字,这样格式为“%****$”的字符串可以通过正则表达式方便地查找出来。预设特征格式还可以是“%****¥”、“¥****%”或“$****%”等。预设相对时间词与具有预设特征格式的特征字符串的映射关系是一一对应的关系。
在一个实施例中,预设相对时间词与具有预设特征格式的特征字符串的映射关系包括表3所示的映射关系。表3中的序号用来区分不同的映射关系,并不限定顺序。表3中的内容还可以根据需要进行扩充或更改。
匹配查找模块1404,用于按顺序在第三字符序列中查找分别与预设绝对时间格式和预设特征格式匹配的字符串。
匹配查找模块1404具体用于采用格式匹配方式,具体分别以预设绝对时间格式和预设特征格式作为模板,按顺序从第三字符序列中查找与相应的格式匹配的字符串。按顺序是指按照第三字符序列中字符的排列顺序。绝对时间能够单独确定具体时间值,绝对时间信息则是指用来表示相应的绝对时间的字符。相对时间单独不能确定具体值,但可以与绝对时间组合来确定具体时间值,相对时间信息则是指用来表示相应的相对时间的字符。
预设绝对时间格式是基于经过映射的字符的,预设绝对时间格式包括“*#”,“*-*#”(对应*月*日),“*-*-*#”(对应*年*月*日),“*:”(对应*时)和“*:*::”(对应*时*分),其中“*”均表示数字或文字形式的数字。可以通过正则表达式实现格式匹配。
时间信息确定模块1405,用于根据匹配的字符串确定时间信息。
在一个实施例中,时间信息确定模块1405还用于判断时间信息是否符合时间信息规则,若该时间信息不符合时间信息规则,则丢弃该时间信息。
在一个实施例中,时间信息确定模块1405还用于判断时间信息是否过期,若该时间信息过期,则丢弃该时间信息。本实施例适用于对时效要求较高的场景,比如待办事项的设置。
上述时间信息识别装置1400,首先将第一字符序列中的预设时间相关字符映射为相应的预设标准字符以获得第二字符序列,这样可以将时间的多种近似表达统一用预设标准字符表达,以方便后续进行识别。然后将第二字符序列中的预设相对时间词映射为相应的预设特征格式的特征字符串以获得第三字符序列。这样第三字符序列中的时间信息都转化为了格式化的数据,通过格式匹配方式,查找与预设绝对时间格式和预设特征格式匹配的字符串,进而利用匹配的字符串便可以确定时间信息。这样可以实现从自然语言文字中识别出时间信息,进而可以根据识别出的时间信息进行各种操作,应用到各种需要时间信息的场景中。
在一个实施例中,时间信息确定模块1405还用于获取绝对时间信息和相对时间信息,并根据相对时间信息对绝对时间信息进行时间偏移处理;其中绝对时间信息和相对时间信息中的至少一种根据匹配的字符串确定。本实施例中,模拟人脑处理时间信息的特点,先关注绝对时刻信息和/或绝对日期信息,后使用相对时间信息和/或日期信息对绝对时刻信息和/或绝对日期信息进行修饰,可以准确分析出文字表达的时间信息。在一个实施例中,时间信息确定模块1405还用于获取与预设绝对时间格式所包括的预设绝对时刻格式匹配的绝对时刻字符串所对应的绝对时刻信息,并根据与预设特征格式匹配的特征字符串对绝对时刻信息进行时间偏移处理;匹配的特征字符串与匹配的绝对时刻字符串相邻。
在一个实施例中,时间信息确定模块1405还用于获取与预设绝对时间格式所包括的预设绝对时刻格式匹配的绝对时刻字符串所对应的绝对时刻信息,并根据当前系统时刻信息对绝对时刻信息进行时间偏移处理。
在一个实施例中,时间信息确定模块1405还用于获取当前系统日期信息作为绝对日期信息,并根据与预设特征格式匹配的特征字符串对绝对日期信息进行时间偏移处理。
在一个实施例中,时间信息确定模块1405还用于获取与预设特征格式匹配的特征字符串中的偏移计算类型标志位和偏移计算参数,采用该偏移计算类型标志位所对应的偏移函数、并根据该偏移计算参数对绝对时刻信息进行时间偏移处理。
在一个实施例中,时间信息确定模块1405还用于获取与预设特征格式匹配的特征字符串中的偏移计算类型标志位和偏移计算参数,采用该偏移计算类型标志位所对应的偏移函数、并根据该偏移计算参数对绝对日期信息进行时间偏移处理。
如图15所示,在一个实施例中,该时间信息识别装置1400还包括:位置确定模块1406和链接文本标记模块1407。
位置确定模块1406,用于确定时间信息对应到第一字符序列中的时间开始位置和时间结束位置。具体地,时间开始位置是指第一字符序列中用来表示时间信息的字符的起始位置,相应的时间结束位置则是指第一字符序列中用来表示时间信息的字符的结束位置。比如识别出的时间信息对应到第一字符序列中为“下星期一晚上八点半”和“十一点”,一个时间开始位置为“下”,另一个时间结束位置为“半”,另一个时间开始位置为“十一点”的“十”,另一个时间结束位置为“十一点”的“点”。
链接文本标记模块1407,用于根据时间开始位置和时间结束位置在第一字符序列中标记出链接文本。具体地,链接文本标记模块1407用于对第一字符序列中时间开始位置和时间结束位置之间的字符所组成的字符串创建超链接,生成用于触发预设操作的链接文本。链接文本标记模块1407用于将从时间开始位置到时间结束位置的字符串生成为链接文本。预设操作比如对连接文本本身进行复制、保存等操作,或者触发进入特定应用。
本实施例中,通过生成对应于时间信息的链接文本,使得开发者可以基于识别出的时间信息触发各种操作,增加了互动方式。
如图16所示,在一个实施例中,位置确定模块1406包括:字符类型标记模块1406a、字符类型映射模块1406b和执行模块1406c。
字符类型标记模块1406a,用于标记第三字符序列中各个字符的字符类型;字符类型按照优先级从低到高包括:未经映射处理的初始字符类型、经过映射处理的第一字符类型、表示相对日期的第二字符类型、表示相对时刻的第三字符类型、表示绝对日期的第四字符类型和表示绝对时间的第五字符类型。
字符类型映射模块1406b,用于根据对应第三字符序列所标记的字符类型确定第一字符序列中各个字符的字符类型。
执行模块1406c,用于按照第一字符序列中各字符的字符类型和相应的优先级,确定第一字符序列中的时间开始位置和时间结束位置。
如图17所示,在一个实施例中,执行模块1406c包括:第一字符处理模块1406c1、第二字符处理模块1406c2和第三字符处理模块1406c3。
第一字符处理模块1406c1,用于确定第一字符序列中对应的字符类型优先级最高的字符。
第二字符处理模块1406c2,用于查找与优先级最高的字符连续相邻的具有高于第一字符类型的优先级的字符。
第三字符处理模块1406c3,用于根据优先级最高的字符和查找到的字符所构成的字符串的边界来确定时间开始位置和时间结束位置。
如图18所示,在一个实施例中,该时间信息识别装置1400还包括:触发操作检测模块1408、页面触发模块1409和自动录入模块1410。
触发操作检测模块1408,用于检测对链接文本的触发操作。
页面触发模块1409,用于根据触发操作进入预设时间相关应用的配置页面。
自动录入模块1410,用于在配置页面中自动录入时间信息、第一字符序列和第一字符序列的来源中的至少一种。
本实施例中,在识别出时间信息后将相应的第一字符序列中的字符标记为链接文本,用户可以通过操作该链接文本触发进入预设时间相关应用进行自动配置,极大地简化了配置预设时间相关应用的步骤,提高了操作便利性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种时间信息识别方法,所述方法包括:
获取第一字符序列;
根据预设时间相关字符与预设标准字符的映射关系,按顺序将所述第一字符序列中的预设时间相关字符映射为相应的预设标准字符,获得第二字符序列;
根据预设相对时间词与具有预设特征格式的特征字符串的映射关系,按顺序将所述第二字符序列中的预设相对时间词映射为相应的特征字符串,获得第三字符序列;
按顺序在所述第三字符序列中查找分别与预设绝对时间格式和预设特征格式匹配的字符串;
根据匹配的字符串确定时间信息;
标记所述第三字符序列中各个字符的字符类型;所述字符类型按照优先级从低到高包括:未经映射处理的初始字符类型、经过映射处理的第一字符类型、表示相对日期的第二字符类型、表示相对时刻的第三字符类型、表示绝对日期的第四字符类型和表示绝对时间的第五字符类型;
根据对应所述第三字符序列所标记的字符类型确定所述第一字符序列中各个字符的字符类型;
按照所述第一字符序列中各字符的字符类型和相应的优先级,确定所述第一字符序列中的时间开始位置和时间结束位置;
根据所述时间开始位置和时间结束位置在所述第一字符序列中标记出链接文本。
2.根据权利要求1所述的方法,其特征在于,所述根据匹配的字符串确定时间信息,包括:获取绝对时间信息和相对时间信息,并根据所述相对时间信息对所述绝对时间信息进行时间偏移处理;其中绝对时间信息和相对时间信息中的至少一种根据匹配的字符串确定。
3.根据权利要求1所述的方法,其特征在于,所述根据匹配的字符串确定时间信息,包括:
获取与预设绝对时间格式所包括的预设绝对时刻格式匹配的绝对时刻字符串所对应的绝对时刻信息,并根据与所述预设特征格式匹配的特征字符串对该绝对时刻信息进行时间偏移处理;所述匹配的特征字符串与所述匹配的绝对时刻字符串相邻;和/或,
获取与预设绝对时间格式所包括的预设绝对时刻格式匹配的绝对时刻字符串所对应的绝对时刻信息,并根据当前系统时刻信息对该绝对时刻信息进行时间偏移处理;和/或,
获取当前系统日期信息作为绝对日期信息,并根据与所述预设特征格式匹配的特征字符串对所述绝对日期信息进行时间偏移处理。
4.根据权利要求3所述的方法,其特征在于,所述根据与所述预设特征格式匹配的特征字符串对所述绝对时刻信息进行时间偏移处理,包括:
获取与所述预设特征格式匹配的特征字符串中的偏移计算类型标志位和偏移计算参数,采用该偏移计算类型标志位所对应的偏移函数、并根据该偏移计算参数对所述绝对时刻信息进行时间偏移处理;和/或,
所述根据与所述预设特征格式匹配的特征字符串对所述绝对日期信息进行时间偏移处理,包括:
获取与所述预设特征格式匹配的特征字符串中的偏移计算类型标志位和偏移计算参数,采用该偏移计算类型标志位所对应的偏移函数、并根据该偏移计算参数对所述绝对日期信息进行时间偏移处理。
5.根据权利要求1所述的方法,其特征在于,所述按照所述第一字符序列中各字符的字符类型和相应的优先级,确定所述第一字符序列中的时间开始位置和时间结束位置,包括:
确定所述第一字符序列中对应的字符类型优先级最高的字符;
查找与所述优先级最高的字符连续相邻的具有高于第一字符类型的优先级的字符;
根据所述优先级最高的字符和所述查找到的字符所构成的字符串的边界来确定时间开始位置和时间结束位置。
6.根据就权利要求1所述的方法,其特征在于,所述方法还包括:
检测对所述链接文本的触发操作;
根据所述触发操作进入预设时间相关应用的配置页面;
在所述配置页面中自动录入所述时间信息、所述第一字符序列和所述第一字符序列的来源中的至少一种。
7.一种时间信息识别装置,其特征在于,所述装置包括:
第一字符序列获取模块,用于获取第一字符序列;
第一映射模块,用于根据预设时间相关字符与预设标准字符的映射关系,按顺序将所述第一字符序列中的预设时间相关字符映射为相应的预设标准字符,获得第二字符序列;
第二映射模块,用于根据预设相对时间词与具有预设特征格式的特征字符串的映射关系,按顺序将所述第二字符序列中的预设相对时间词映射为相应的特征字符串,获得第三字符序列;
匹配查找模块,用于按顺序在所述第三字符序列中查找分别与预设绝对时间格式和预设特征格式匹配的字符串;
时间信息确定模块,用于根据匹配的字符串确定时间信息;
字符类型标记模块,用于标记所述第三字符序列中各个字符的字符类型;所述字符类型按照优先级从低到高包括:未经映射处理的初始字符类型、经过映射处理的第一字符类型、表示相对日期的第二字符类型、表示相对时刻的第三字符类型、表示绝对日期的第四字符类型和表示绝对时间的第五字符类型;
字符类型映射模块,用于根据对应所述第三字符序列所标记的字符类型确定所述第一字符序列中各个字符的字符类型;
执行模块,用于按照所述第一字符序列中各字符的字符类型和相应的优先级,确定所述第一字符序列中的时间开始位置和时间结束位置;
链接文本标记模块,用于根据所述时间开始位置和时间结束位置在所述第一字符序列中标记出链接文本。
8.根据权利要求7所述的装置,其特征在于,所述时间信息确定模块还用于获取绝对时间信息和相对时间信息,并根据所述相对时间信息对所述绝对时间信息进行时间偏移处理;其中绝对时间信息和相对时间信息中的至少一种根据匹配的字符串确定。
9.根据权利要求7所述的装置,其特征在于,所述时间信息确定模块还用于获取与预设绝对时间格式所包括的预设绝对时刻格式匹配的绝对时刻字符串所对应的绝对时刻信息,并根据与所述预设特征格式匹配的特征字符串对该绝对时刻信息进行时间偏移处理;所述匹配的特征字符串与所述匹配的绝对时刻字符串相邻;和/或,
所述时间信息确定模块还用于获取与预设绝对时间格式所包括的预设绝对时刻格式匹配的绝对时刻字符串所对应的绝对时刻信息,并根据当前系统时刻信息对该绝对时刻信息进行时间偏移处理;和/或,
所述时间信息确定模块还用于获取当前系统日期信息作为绝对日期信息,并根据与所述预设特征格式匹配的特征字符串对所述绝对日期信息进行时间偏移处理。
10.根据权利要求9所述的装置,其特征在于,所述时间信息确定模块还用于获取与所述预设特征格式匹配的特征字符串中的偏移计算类型标志位和偏移计算参数,采用该偏移计算类型标志位所对应的偏移函数、并根据该偏移计算参数对所述绝对时刻信息进行时间偏移处理;和/或,
所述时间信息确定模块还用于获取与所述预设特征格式匹配的特征字符串中的偏移计算类型标志位和偏移计算参数,采用该偏移计算类型标志位所对应的偏移函数、并根据该偏移计算参数对所述绝对日期信息进行时间偏移处理。
11.根据权利要求7所述的装置,其特征在于,所述执行模块包括:
第一字符处理模块,用于确定所述第一字符序列中对应的字符类型优先级最高的字符;
第二字符处理模块,用于查找与所述优先级最高的字符连续相邻的具有高于第一字符类型的优先级的字符;
第三字符处理模块,用于根据所述优先级最高的字符和所述查找到的字符所构成的字符串的边界来确定时间开始位置和时间结束位置。
12.根据就权利要求7所述的装置,其特征在于,所述装置还包括:
触发操作检测模块,用于检测对所述链接文本的触发操作;
页面触发模块,用于根据所述触发操作进入预设时间相关应用的配置页面;
自动录入模块,用于在所述配置页面中自动录入所述时间信息、所述第一字符序列和所述第一字符序列的来源中的至少一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510263225.0A CN104951508B (zh) | 2015-05-21 | 2015-05-21 | 时间信息识别方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510263225.0A CN104951508B (zh) | 2015-05-21 | 2015-05-21 | 时间信息识别方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104951508A CN104951508A (zh) | 2015-09-30 |
CN104951508B true CN104951508B (zh) | 2017-11-21 |
Family
ID=54166166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510263225.0A Active CN104951508B (zh) | 2015-05-21 | 2015-05-21 | 时间信息识别方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104951508B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107622045B (zh) * | 2017-08-09 | 2021-02-23 | 联动优势科技有限公司 | 一种信息处理方法及设备 |
CN107729314B (zh) * | 2017-09-29 | 2021-10-26 | 东软集团股份有限公司 | 一种中文时间识别方法、装置及存储介质、程序产品 |
CN109586830A (zh) * | 2018-11-22 | 2019-04-05 | 中电科技扬州宝军电子有限公司 | 一种基于北斗导航系统和ptp的高铁同步授时方法及装置 |
CN109871242A (zh) * | 2019-02-01 | 2019-06-11 | 天津字节跳动科技有限公司 | 任务新建方法及装置 |
CN110688398B (zh) * | 2019-08-21 | 2023-10-13 | 西藏自治区藏医院(西藏自治区藏医药研究院) | 一种藏历天文历算的演示方法及系统 |
CN111177418A (zh) * | 2019-12-25 | 2020-05-19 | 深圳市优必选科技股份有限公司 | 一种时间文本的获取方法、设备及存储介质 |
CN111222324A (zh) * | 2019-12-27 | 2020-06-02 | 南京医睿科技有限公司 | 时间识别方法、装置、计算机可读存储介质及电子设备 |
CN111639491B (zh) * | 2020-05-18 | 2024-05-03 | 华青融天(北京)软件股份有限公司 | 时间数据提取方法、装置和电子设备 |
CN113297826B (zh) * | 2020-06-28 | 2022-06-10 | 上海交通大学 | 在自然语言文本上进行标记的方法 |
CN115878924B (zh) * | 2021-09-27 | 2024-03-12 | 小沃科技有限公司 | 一种基于双字典树数据处理方法、装置、介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252861A (ja) * | 2003-02-21 | 2004-09-09 | Canon Inc | 情報処理装置 |
CN1901711A (zh) * | 2005-07-20 | 2007-01-24 | 乐金电子(中国)研究开发中心有限公司 | 带有基于消息的日程管理功能的移动通信终端及动作方法 |
CN103093334A (zh) * | 2011-11-04 | 2013-05-08 | 周超然 | 活动通知文本识别并自动转换为日历项的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003050795A (ja) * | 2001-08-06 | 2003-02-21 | Hitachi Ltd | 時間情報表示システム |
JP2008065395A (ja) * | 2006-09-04 | 2008-03-21 | Fuji Xerox Co Ltd | 翻訳装置、翻訳方法および翻訳プログラム |
CN102955832B (zh) * | 2011-08-31 | 2015-11-25 | 深圳市华傲数据技术有限公司 | 一种通讯地址识别、标准化的系统 |
CN104268157A (zh) * | 2014-09-03 | 2015-01-07 | 乐视网信息技术(北京)股份有限公司 | 一种数据搜索中的纠错装置及其方法 |
-
2015
- 2015-05-21 CN CN201510263225.0A patent/CN104951508B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252861A (ja) * | 2003-02-21 | 2004-09-09 | Canon Inc | 情報処理装置 |
CN1901711A (zh) * | 2005-07-20 | 2007-01-24 | 乐金电子(中国)研究开发中心有限公司 | 带有基于消息的日程管理功能的移动通信终端及动作方法 |
CN103093334A (zh) * | 2011-11-04 | 2013-05-08 | 周超然 | 活动通知文本识别并自动转换为日历项的方法 |
Non-Patent Citations (4)
Title |
---|
C-TERN:一种基于CFSA的军事新闻文本时间信息处理算法;王伟 等;《北京大学学报(自然科学版)》;20140131;第50卷(第1期);第1-2节 * |
中文文本时间信息获取及语义计算;徐永东 等;《哈尔滨工业大学学报》;20070331;第39卷(第3期);全文 * |
中文病历文本中时间信息自动标注;周小甲 等;《中国生物医学工程学报》;20120630;第31卷(第3期);第1节 * |
基于规则的中文时间表达式识别与规范化;左亚尧 等;《广东工业大学学报》;20140930;第31卷(第3期);第1-3节 * |
Also Published As
Publication number | Publication date |
---|---|
CN104951508A (zh) | 2015-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104951508B (zh) | 时间信息识别方法和装置 | |
US11294968B2 (en) | Combining website characteristics in an automatically generated website | |
EP2570974B1 (en) | Automatic crowd sourcing for machine learning in information extraction | |
CN101211364B (zh) | 用于万维网页中暴露的资源的公共书签的方法和系统 | |
CN102597993B (zh) | 利用统一资源标识符管理应用状态信息 | |
CN101427229B (zh) | 用于修改向计算机系统的终端用户显示的信息表示的技术 | |
US8874542B2 (en) | Displaying browse sequence with search results | |
US20130185622A1 (en) | Methods and systems for handling annotations and using calculation of addresses in tree-based structures | |
CN112861527B (zh) | 一种事件抽取方法、装置、设备及存储介质 | |
US20150067476A1 (en) | Title and body extraction from web page | |
CN102902661A (zh) | 一种实现电子书超链接的方法 | |
JP2017520834A (ja) | ユーザコンタクトエントリのデータ設定 | |
CN102141868B (zh) | 快捷操作信息交互页面的方法、输入法系统和浏览器插件 | |
US10817651B2 (en) | Method for referring to specific content on a web page and web browsing system | |
JP5830581B1 (ja) | 入力支援サーバ、入力支援方法及び入力支援プログラム | |
US11550990B2 (en) | Machine first approach for identifying accessibility, non-compliances, remediation techniques and fixing at run-time | |
JP2019520625A (ja) | ヒューマンコンピュータインタラクション方法およびその装置 | |
CN110781183A (zh) | Hive数据库中增量数据的处理方法、装置以及计算机设备 | |
CN102982118A (zh) | 一种基于收藏夹的搜索方法和装置 | |
CN109558123A (zh) | 网页转化电子书的方法、电子设备、存储介质 | |
CN110826330B (zh) | 人名识别方法及装置、计算机设备及可读存储介质 | |
JP2007122398A (ja) | フラグメントの同一性判定方法およびコンピュータプログラム | |
CN104239454A (zh) | 搜索方法及装置 | |
CN104239452A (zh) | 资源获取方法及装置 | |
CN105989046A (zh) | 网站显示方法及系统、以及用户终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |