CN108549694B - 一种文本中时间信息的处理方法 - Google Patents
一种文本中时间信息的处理方法 Download PDFInfo
- Publication number
- CN108549694B CN108549694B CN201810337183.4A CN201810337183A CN108549694B CN 108549694 B CN108549694 B CN 108549694B CN 201810337183 A CN201810337183 A CN 201810337183A CN 108549694 B CN108549694 B CN 108549694B
- Authority
- CN
- China
- Prior art keywords
- time
- subtree
- rule
- sequence
- tree
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
Abstract
本发明提供了一种文本中时间信息的处理方法。包括:构造时间节点、操作符、标记映射关系表、时间本体知识库、子树规则和子树规则集合;对文本进行分词处理,得到分词单位序列,并构造空标记序列和时间节点槽;采用标记映射关系表对分词单位序列进行标记,填充标记序列;用当前子数集合扫描标记序列,获取匹配结果;搜索子树规则集合得到子树序列;按照子树用操作符解析操作树;用连接操作符对毗邻片段进行连接操作;判断是否有未匹配的子树规则集合,若有,则继续匹配;若否则对时间对象的数值进行推理、解析和转换,然后将其转换为输出格式的时间对象。本发明可以增强计算机对文本中时间信息的理解能力。
Description
技术领域
本发明涉及计算机技术领域下的自然语言处理技术领域。尤其涉及一种文本中时间信息的处理方法。
背景技术
提取文本中的时间信息,并解析其中对应的语义。属于自然语言理解中基础和底层的关键任务。由于时间信息是用户关注的重要信息。该技术在对话系统、信息抽取、事件推理、文本挖掘等自然语言处理领域有着广泛的应用。例如在对话系统中,计算机需要获取用户对话中的时间信息并决策。目前。文本中的时间信息的识别与理解已经在许多个人助理装置的日程、短信息功能中得到了应用。然而,语言中的时间信息描述形式灵活多变,使得时间信息描述的类型和形式变得极为丰富。现有方法需要不断的完善与扩展。
以往在文本中识别时间信息的方法分为两大类。一类是利用正则表达式对文本中匹配,再对匹配结果进行解析。典型的产品如复旦大学的“FNLP软件工具包”中实现的相关方法。美国斯坦福大学的软件工具包“Stanford-CoreNLP”中的“SuTime”程序等。这种方法有依赖的技术较少,易于实现,扩展性强的优点,但也存在明显的缺点。一方面,随着需要识别的时间信息类型越多,正则表达式库的规模越庞大。越难以维护,且性能随着规模的增大而显著降低;另一方面,正则表达式处理的对象是字符串。由于没有对文本进行分词词性标注等自然语言处理步骤,正则表达式经常会遭遇一些与上下文有关的错误。
另一类方法则基于上下文无关语法进行句法分析。如利用CKY算法构造出与时间信息描述对应的句法树。这类方法可以对文本中复杂的时间信息表达进行分析,且性能不会随着支持的时间信息表达增多而显著下降。但这类方法也存在缺点,例如规则需要专业知识才能维护,规则之间容易产生影响等问题。
发明内容
本发明的目的旨在克服现有技术存在的问题,从而提供了一种文本中时间信息的处理方法。
为实现上述目的,本发明提供了一种文本中时间信息的处理方法。该方法包括以下步骤:
1)构造时间信息识别所需的时间节点、操作符、标记映射关系表、时间本体知识库、子树规则和子树规则集合;
所述时间节点为生成具体时间的步骤记录;
所述“操作符”包括零元操作符,一元操作符和二元操作符;
所述“标记映射关系表”是分词单位和标记的对应关系表,所有标记构成标记集合;
所述时间本体知识库包括对可出现在标记映射关系表中的时间词,时间本体知识库中包括词语、时间节点信息知识、对应操作符、类别和同义词信息;
所述子树规则包括对应标记序列、操作数位置、操作符的位置、操作规则和附加操作规则;
所述子树规则集合包括将所述子树规则化分所形成的第1子树规则集合,第2子树规则集合……第n子树规则集合;
2)使用分词算法对待分析文本进行分词处理,得到分词单位序列,并构造空标记序列和时间节点槽;
3)采用步骤1)中标记映射关系表对步骤2)获得的分词单位序列进行标记,填充标记序列;
4)采用模式匹配算法,将步骤3)中得到的标记序列与一个子树规则集合中的子树规则进行匹配;若匹配到,则将匹配的子树规则,子树规则开始位置,子树规则结束位置信息存入候选子树信息列表;若未匹配到,则跳转至步骤8);
5)从步骤4)中的候选子树信息列表中选择子树规则,得到子树规则序列;
6)对步骤5)中子树规则序列中的每棵子树,根据子树对应的规则,使用操作符生成对应的时间节点;若生成零个时间节点,则不修改,否则用得到的时间节点填充到时间节点槽内整个子树覆盖的范围;
7)对毗连的子树执行规则,使用“合并”操作符自左至右对相连的时间节点进行操作,若生成零个时间节点,则不操作,否则用得到的时间节点填充到对应词语的时间节点槽中;
8)判断当前是否有可使用的子树规则集合。如果还有子树规则集为未在文本上进行匹配,则转到步骤4),否则所有子树规则集合匹配完毕,调转到步骤9);
9)利用基准时间表,对时间节点的数值进行推导、解析和转换,所述基准时间表包含背景基准时间和当前基准时间,所述背景基准时间表示当前说话的背景时间,所述当前基准时间表示当前文本中已经明确的时间;
10)将上述时间信息转换为用户系统中对应的时间信息格式并输出。
优选地,在所述在步骤2)之后和步骤3)之前还包括步骤11),所述步骤11)具体包括:
对文本进行正则表达式匹配,以匹配机读时间描述,对正则表达式匹配到的事件描述,调整分词序列中匹配结果开始位置到结束位置的词语所对应的时间节点槽的信息和标记序列中的标记。
优选地,在所述步骤5)之后和步骤6)之前还包括步骤12),所述步骤12)具体包括:
对步骤5)中的子树规则左右扩展覆盖范围,扩展的条件为:当前子树左侧或右侧时间节点槽不为空且外侧的时间节点槽内容连续相同。
优选地,所述步骤2)中的分词单位满足如下约束条件:与带数字时间词有关的分词单位粒度为以下模式之一:
2.1)时间词粒度为“单一时间数值+单位”的模式;
2.2)时间数值和时间单位分离的原子分词模式。
优选地,所述步骤1)中时间节点采用JSON格式的数据表示、数组表示或TimeML语言表示。
优选地,所述步骤4)的模式匹配算法包括KMP算法、Sunday算法、有限状态自动机算法和Abo-Corasick自动机算法。
优选地,所述步骤5)采用启发式搜索算法或采用通用上下文无关语法分析算法,从候选子树信息列表中选择子树规则,得到子树规则序列。
进一步优选地,所述启发式搜索算法包括逆向最大匹配、正向最大匹配、最少片段数和加权匹配算法;所述通用上下文语法分析算法包括CKY算法和线图算法。
优选地,所述步骤5)中被选择的子树序列满足条件:所选子树序列互不重叠,且覆盖最多的标记。
优选地,所述步骤9)利用基准时间表,对时间节点的数值进行推导、解析和转换具体包括:
首先根据当前基准时间创建一个时间信息对象;其次将时间信息对象依次应用时间节点中记录的各种操作,所述操作包括建立时间点或时间段,设置具体的时间字段(年/月/日/星期/时/分/秒),对具体时间字段进行加减操作。
本发明首先对文本进行了切分和标注,构造出一一对应的时间词标记序列和时间节点槽。通过搜索算法选择标记序列的最优划分后,在时间节点槽的对应位置同步生成时间节点。本发明将时间描述的识别规则划分为多个层次。通过逐层应用规则,可以识别上下文长,形式灵活的复杂时间描述,有识别准确的优点。同时本发明在识别文本时间描述时同步完成时间描述的理解。本发明中定义的操作符、标记映射关系表、时间本体知识库、子树规则和子树规则集合均可快速扩展,相比以往方法对性能影响很小,因此本发明具备性能优良,扩展灵活,维护简单的优点。
附图说明
图1为本发明实施例的总流程图;
图2为图1中步骤101对应步骤的流程图;
图3为图1中步骤103,105-107中操作对应的示意图;
图4为图1中步骤107中操作对应的示意图;
图5为图1中步骤108-109中对应的操作示意图;
图6为图1中步骤111中对应的操作示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面将结合发明实施例中的附图,对发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是发明一部分实施例,而非全部的实施例。基于发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种识别与理解文本中时间信息的方法的流程图。
在步骤101中,构造时间信息识别所需的时间节点、操作符、标记映射关系表、时间本体知识库、子树规则和子树规则集合。
本步骤是一个准备步骤,具体实施时,如果已经得到了用于时间信息识别的时间节点、操作符、标记映射关系表、时间本体知识库、子树规则和子树规则集合,则可以跳过本步骤。
对于步骤101可以通过图2进行理解,图2的步骤201-206对应步骤101-1至步骤101-6。
在步骤101-1中,定义时间节点。本步骤中所述“时间节点”是生成具体时间的步骤记录。任何时间信息都可以转换为时间节点。
以下为“时间节点”的一种实施例。时间信息采用JSON格式的数据表示。下表分别展示了时间信息描述“四月”“下午六点五分”的时间信息。
其中"quantity"字段表示是否为一个时间段,"operations"字段表示生成具体时间的最小步骤记录。"qualifier"字段表示上午/下午的状态。
以下为“时间节点”的另一种实施例。时间信息采用数组形式表示。下表分别展示了时间信息描述“四月”“六点五分”的时间信息:
其中"startTime"字段表示开始时间点,"endTime"字段表示结束时间点,各字段分别表示“年”“月”“日”“星期”“时”“分”“秒”。"relative"为false表示各字段用“设置”方式产生绝对时间,为true表示用“累加”方式组装产生绝对时间。"qualifier"字段表示上午/下午的状态。
此外,还可以使用TimeML语言表示时间节点。
在步骤101-2中,定义时间操作符。本步骤中所述“操作符”输入一个或多个时间节点,或输入1至2个数值;输出零个或一个时间节点。
本步骤中所述的“操作符”分为零元操作符,一元操作符和二元操作符三类。其中零元操作符输入零个时间节点和一至两个数值,输出一个新的时间节点;一元操作符输入一个时间节点,输出一个时间节点,可类比为数学运算符中的“阶乘”;二元操作符输入两个时间节点,输出零个或一个时间节点,可类比为数学运算符中的四则运算符。
零元操作符用于创建最小的时间节点,一元操作符用于对已有的时间节点进行加工,二元操作符用于对已有的时间节点进行融合处理。
本实施例中,零元操作符包含“年”“月”“日”“星期”“时”“分”“秒”等操作符。一元操作符包括“上午”“下午”“模糊”“之前”“之后”等操作符。二元操作符包括“连接”操作符和“范围”等操作符。
“连接”操作符用于将两个时间节点的操作步骤进行合并。若时间节点之间的操作有冲突。则输出零个时间节点。例如“1月”“8日”对应的时间节点经过“连接”操作符输出为“1月8日”对应的时间节点,“一点”“五小时”对应的时间节点经过“连接”操作符输出零个时间节点。
“范围”操作符输入两个表达时间点的时间节点,输出一个表示时间段的时间节点,这个时间段以一个时间点位开始,另一个为结束。例如“八点”“九点半”对应的时间节点经过“范围”操作符输出为“八点到九点半”对应的时间节点,
由于“连接”操作符用于后续步骤中时间信息的组装,本发明要求,所述二元操作符集合中至少应当包含“连接”操作符。
在步骤101-3中,定义标记映射关系表。
“标记映射关系表”是分词单位和标记的对应关系表,所有标记构成标记集合。标记集合中的每个标记表明了时间信息中分词单位的类别。
本发明中“分词单位”指文本字符串经过分词处理后得到的一系列短字符串,每个短字符串都是分词装置所认为的词语。本发明中步骤101-4中时间本体知识库中的每个词语都对应一个分词单位。
本发明对文本中时间信息的分词粒度存在约束条件。条件为:必须是“单一时间数值+单位”或时间数值和时间单位分离的“原子分词”模式两者之一。
以“2012年8月”为例。当采用“单一时间数值+单位”级别的分词粒度时,分词结果为“2012年/8月”;当采用“原子分词”级别的分词粒度时,分词结果为“2012/年/8/月/”。
一个标记可对应一个或多个不同的分词单位。例如在本实施例中,标记“F”对应于“前”“以前”“后”“以后”四个分词单位。但一个分词单位只能对应一个标记。
标记集合中保留一个“非时间相关词”标记,对应于未在标记映射关系表中出现的词语。
在本实施例中的部分标记和词语的对应关系如下表:
在步骤101-4中,构建时间本体知识库。
所述时间本体知识库中的词为出现在标记映射关系表中的时间词,时间本体知识库中应包含词语,时间节点信息知识或对应操作符。还可以包含类别,同义词信息。
特别地,为了表明零元运算符的作用,在本实施例中,“12月”“八点”等由数字和时间单位合成的时间词由于可以采用零元操作符生成,不属于“可出现在标记映射关系表中的时间词”,因而不放入时间本体知识库。
为了保证时间本体知识库的有效性,时间本体知识库中的词语、词语的同义词必须出现在标记映射关系表中。
以下为一种时间本体知识库的实施例的部分信息。知识库内容采用JSON数据格式表示。其中“word”为词语,“alias”表示同义词,“operations”对应时间节点的内容,“operator”表示对应的操作符。
在步骤101-5中,定义一组子树规则。
每棵子树包括对应标记序列、操作数和操作符的位置,操作规则。以及子树上的附加操作四部分。
子树是语法分析领域的概念,是一个树状结构的单元。子树可以与其他子树或规则组成更大的子树或完整树。
子树规则的标记序列,则对应于文本的相应的标记序列。也是规则所生成的子树叶子节点的中序遍历的序列。
以下列举了本实施例中部分子树规则:
操作符位置、操作数位置分别表示操作符、操作数在标记序列中的位置。操作规则包含操作符位置、操作数位置和结果的位置。例如对于子树规则“MGN”,匹配分词单位串“三/个/月/”,其中规则“[3]([1])->[1]”表示用3位置所对应的操作符(“月”)操作1位置的操作数(“三”),输出到1位置。
附加规则由实施例自行定义。
较优地,不同的子树规则之间可以共享附加规则。
在步骤101-6中,将步骤101-5中定义的子树规则划分为子树规则集合。得到第1子树规则集合,第2子树规则集合……第n子树规则集合。
一个子树规则集合可看作自底向上的句法树中的一层中所有可能的实例,一棵子树如果能够出现在树的第n层中,即应出现在第n子树规则集合中。因此一棵子树可以出现在多个子树规则集合中。
例如在本实施例中,步骤101-5中列举的子树规则可分为下表对应的两个子树规则集合:
其中,划分的原则为:各子树规则集合互不干扰。
根据实际应用。在识别与理解文本时间信息的方法中,n一般为2或3。
在步骤102中,使用分词算法对文本进行分词处理,得到分词序列,并构造空标记序列和时间节点槽。
本步骤所述的分词方法可以使用任意的中文分词方法,但分词的粒度与步骤101-2与101-3中定义的分词粒度保持一致。例如在本实施例中,句子“研究生政治考试于一月十二日上午9:30开始”经过分词处理后得到分词单位串“研究生/政治/考试/于/一/月/十二/日/上午/9/:/30/开始/”;句子“由于下午三到五点有集体学习,原定四点四十分的小组会延后到明天早上。”经过分词处理后得到分词单位串“由于/下午/三/到/五/点/有/集体/学习/,/原定/四/点/四十/分/的/小组会/延后/到/明天/早上/。/”。
特别地,可以采用仅包含时间信息描述内所有非数字词的词典和能够识别数字构词法的分词算法进行分词。对集合以外的字符采用按字切分策略。如采用这种方法进行中文分词时,句子“研究生政治考试于一月十二日上午9:30开始”分词后的结果为“研/究/生/政/治/考/试/于/一/月/十二/日/上午/9/:/30/开/始/”。
空标记序列为与分词单位一一对应的标记列表。长度固定等于分词单位串长度。初始时每个位置均为“非时间相关词”标记。
时间节点槽为与分词单位一一对应的时间节点列表。长度固定等于分词单位串长度和标记序列的长度,多个空位可以指向同一个时间节点,初始时每个位置均留空。
例如“研究生/政治/考试/于/一/月/十二/日/上午/9/:/30/开始/”会构造出一个有13个空位的时间节点槽。和空标记序列“Z/Z/Z/Z/Z/Z/Z/Z/Z/Z/Z/Z/Z/”。
步骤103为一可选步骤。在步骤103中,对文本进行正则表达式匹配,以匹配机读时间描述,对正则表达式匹配到的事件描述。调整分词序列中匹配结果开始位置到结束位置的词语所对应的时间节点槽的信息和标记序列中的标记。
本步骤用于识别计算机中标准时间格式。例如本步骤对于文本中的“2016/06/20”或“18:00”,可一次识别并提取单个时间点信息。
本步骤中的正则表达式主要用于处理计算机可读格式的标准时间信息描述。
在识别完毕后,需要按正则表达式匹配的结果修改对应词语的标记。
仍以“研究生政治考试于一月十二日上午9:30开始”为例。经过本步骤后正则表达式匹配了“9:30”。对应的分词单位序列“研究生/政治/考试/于/一/月/十二/日/上午/9/:/30/开始/”中10~12的位置。因此标记序列变为“Z/Z/Z/Z/Z/Z/Z/Z/Z/E/E/E/Z/”。并填充时间节点槽,使10~12位置指向同一时间节点。
在步骤104中,采用标记映射关系表对分词序列进行标记,填充标记序列。
标记映射关系表中每个词语仅对应于一个唯一的标记,因此本步骤可以采用查表法将词语映射到唯一的标记序列。如词语未在标记映射关系表中出现,则给予一个“非时间相关词”标记。
以分词单位串“研究生/政治/考试/于/一/月/十二/日/上午/9/:/30/开始/”为例,在本实施例中,经过本步骤后可得到标记序列“Z/Z/Z/Z/M/N/M/N/D/E/E/E/Z/”。
为进一步理解本步骤,请参看图3。301为分词单位串“由于/下午/三/到/五/点/有/集体/学习/,/原定/四/点/四十/分/的/小组会/延后/到/明天/早上/。/”,302为对应的标记序列串,303为对应的时间节点槽。从图中可见,三者是一一对应的关系。
在步骤105中,采用模式匹配算法,在步骤104中得到的标记序列串中匹配当前子树规则集合中的子树规则。若匹配到,则将匹配的子树规则,子树规则开始位置,子树规则结束位置信息存入候选子树信息列表。
此处采用的模式匹配算法包括但不限于KMP算法,Sunday算法等单模式匹配算法,或者有限状态自动机算法,Abo-Corasick自动机算法等多模式匹配算法。
例如在本实施例中采用Abo-Corasick自动机算法从序列中匹配子树。
为进一步理解本步骤,请参看图3。图3中采用第1子树规则集合对标记序列串302进行模式匹配,304为匹配到的各个子树规则。在标记序列串中,共匹配了7次子树规则。以“五/点/”对应的子树规则“MN”为例,其开始位置为5,结束位置为6。305为所有匹配到的子树规则共同组成的候选子树信息列表。
图3中,307展示了采用第2子树规则集合对标记序列串302进行模式匹配时,得到的各个子树规则。
在步骤106中,采用启发式搜索算法,或采用通用上下文无关语法分析算法,从候选子树信息列表中选择子树规则,得到子树规则序列。
本步骤可采用如下方式之一进行子树匹配:
1)采用启发式搜索策略,包括但不限于逆向最大匹配、正向最大匹配、最少片段数或加权的匹配策略。
2)采用语法分析算法,如CKY算法,线图算法构造当前层次的结构树。
被选择的子树序列应满足条件:所选子树序列互不重叠,且覆盖尽可能多的标记。
在本实施例中采用启发式搜索策略从子树信息列表中选择子树。
请参看图3。图3中306为采用逆向最大匹配算法,在子树信息列表305中选择子树规则得到的子树规则序列,其中候选子树规则“MNM”被舍弃,其余6个子树规则由于各自对应的序列标记互不交叠而保留。
较优地,对步骤101-5中定义的不同的子树规则集合,采用不同的策略进行匹配。
例如在本实施例中。采用逆向最大匹配算法匹配第1子树规则集合,采用正向最大匹配算法匹配第2子树规则集合。
步骤107是一个可选步骤。在步骤107中,对识别的子树左右扩展覆盖范围。扩展的条件为:当前子树左侧或右侧时间节点槽不为空且外侧的时间节点槽内容连续相同。
为了进一步说明本步骤的实施方式,请看图4。在本实施例中,401为分词单位串“上午/9/:/30/”,402为其对应的标记序列“D/E/E/E/”,403为经过步骤103的正则表达式识别后得到的时间节点槽。其中位置2-位置4对应于同一个时间节点。405为经过步骤106后,匹配上的子树规则“DE”,子树覆盖范围1~2,由于经过步骤104后位置2~4“9/:/30/”对应于同一时间节点,因此应当进行扩展。扩展后子树的覆盖范围是1~4。406为经过扩展后得到的子树。
扩展覆盖范围的操作使基于标记序列构建的子树和时间节点与时间节点槽的关系保持对齐。扩展覆盖范围的步骤可以让后续子树规则集合中的规则作用范围更大,子树规则集合整体更加简单。
在步骤108中,对子树序列中的每棵子树,根据子树对应的操作规则和附加规则,使用操作符生成对应的时间节点。若生成零个时间节点,则不修改,否则用得到的时间节点填充到时间节点槽内整个子树覆盖的范围。
为进一步理解步骤108,请参看图5。图5展示了对子树序列502中的每棵子树生成对应的时间节点的过程。图中501为时间节点槽,503为每棵子树所生成的对应时间节点。
从子树规则生成时间节点的方式除了使用时间节点操作符生成以外,还包括查询步骤101-3中定义的时间本体知识库。如“下午”的操作符“D”对应的操作由查询步骤101-3得到。
时间节点生成完毕后,需要填入时间节点槽中子树覆盖的对应位置。例如图5中“下午”的位置为2,故将“下午”对应的时间节点填入时间节点槽中的位置2。
图5中,505-508展示了对运用第2子树规则集合得到的子树规则序列(图3中308)应用本步骤后,生成时间节点的过程。其中505为本步骤执行前时间节点槽中已经存在的时间节点;506是子树规则“DMPMN”所对应的时间节点操作符“范围”操作符和“上午”操作符。507为按照子树规则“DMPMN”对应的操作规则操作后得到的中间状态的时间节点,508为子树最终对应的时间节点。
在步骤109中,对毗连的子树执行规则,使用“合并”操作符自左至右对相连的时间节点进行操作,若生成零个时间节点,则不操作,否则用得到的时间节点填充两个相邻的子树。
本步骤可以参看图5。在图5的子树规则列表501中,“四/点/”和“四十/分/”,以及“明天”和“早上”对应的子树“MN”和“MN”,“T”和“D”分别彼此毗连,因此本步骤使用合并操作符分别尝试对“四/点/”和“四十/分/”,“明天”和“早上”对应的子树进行合并,得到表示“四点四十分”和“明天早上”的时间节点。504为经过合并的时间节点。
合并完毕后,将得到的时间节点填充到对应词语的时间节点槽中。
在步骤110中,判断当前是否有可使用的子树规则集合。如果还有子树规则集为未在文本上进行匹配,则转到步骤105,否则所有子树规则集合匹配完毕,调转到步骤111。
在步骤111中,利用基准时间表,对经过步骤110处理后的时间节点的数值进行推导、解析和转换。
基准时间表是保存了说话背景时间和信息的时间表,用于对时间信息进行推理。
基准时间表包含两个基准时间。一个为背景基准时间,用于表示当前说话的背景时间。另一个为当前基准时间,为当前文本中已经明确的时间。
初始时,当前基准时间与背景基准时间是完全相等的。之后自左至右地扫描文本中的所有的时间信息描述,并对扫描结果进行解析。
如果时间节点所对应的操作(如处理“今天”)需要使用背景基准时间,则将当前基准时间替换为背景基准时间。
根据基准时间创造一个时间信息对象,将时间节点所对应的操作逐一应用在时间信息对象上。操作包括建立时间点或时间段,设置具体的时间字段(年/月/日/星期/时/分/秒),对具体时间字段进行加减操作三类。
如果经过解析的时间信息对象对应于一个时间点,则将当前基准时间替换为当前时间节点。
本步骤可以结合图6进一步理解。图6展示了从时间节点推导出具体时间的过程。601为分词单位串,602为分词单位串对应的时间节点槽。603、604、605为经过步骤105-110后已经得到的时间节点信息,606为基准时间表,607为基准时间表中的背景基准时间,608、609、610为基准时间表中的当前基准时间。
在图6的示例中,按照分词单位串的顺序依次对603、604、605三个时间节点进行推导。首先根据608中的当前基准时间创建一个完全一致的时间信息对象“2017年12月20日14时23分”,之后对该时间信息对象应用时间节点603对应的操作,611为推导出的603所对应的时间信息“2017年12月20日15时~2017年12月20日17时”。
之后根据611中的时间更新当前基准时间。由于611对应的时间信息是一个时间段,因此采用该时间信息的开始时间更新当前基准时间。609为更新后的当前基准时间。
根据同样的操作过程,可以从604对应的时间节点推导出612中的时间信息,从605对应的时间节点推导出613中的时间信息。
在步骤112中,将上述时间信息转换为对应的格式并输出。
输出格式为用户系统中对应的时间信息格式。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种文本中时间信息的处理方法,其特征在于,包括以下步骤:
1)构造时间信息识别所需的时间节点、操作符、标记映射关系表、时间本体知识库、子树规则和子树规则集合;
所述时间节点为生成具体时间的步骤记录;
所述“操作符”包括零元操作符,一元操作符和二元操作符;其中零元操作符输入零个时间节点和一至两个数值,输出一个新的时间节点;一元操作符输入一个时间节点,输出一个时间节点,可类比为数学运算符中的“阶乘”;二元操作符输入两个时间节点,输出零个或一个时间节点,可类比为数学运算符中的四则运算符;
所述“标记映射关系表”是分词单位和标记的对应关系表,所有标记构成标记集合;
所述时间本体知识库包括在标记映射关系表中的时间词,时间本体知识库中包括词语、时间节点信息知识、对应操作符、类别和同义词信息;
所述子树规则包括对应标记序列、操作数位置、操作符的位置、操作规则和附加操作规则;
所述子树规则集合包括将所述子树规则化分所形成的第1子树规则集合,第2子树规则集合……第n子树规则集合;
2)使用分词算法对待分析文本进行分词处理,得到分词单位序列,并构造空标记序列和时间节点槽,所述时间节点槽为与分词单位一一对应的时间节点列表;
3)采用步骤1)中标记映射关系表对步骤2)获得的分词单位序列进行标记,填充标记序列;
4)采用模式匹配算法,将步骤3)中得到的标记序列与一个子树规则集合中的子树规则进行匹配;若匹配到,则将匹配的子树规则,子树规则开始位置,子树规则结束位置信息存入候选子树信息列表;若未匹配到,则跳转至步骤8);
5)从步骤4)中的候选子树信息列表中选择子树规则,得到子树规则序列;
6)对步骤5)中子树规则序列中的每棵子树,根据子树对应的规则,使用操作符生成对应的时间节点;若生成零个时间节点,则不修改,否则用得到的时间节点填充到时间节点槽内整个子树覆盖的范围;
7)对毗连的子树执行规则,使用“合并”操作符自左至右对相连的时间节点进行操作,若生成零个时间节点,则不操作,否则用得到的时间节点填充到对应词语的时间节点槽中;
8)判断当前是否有可使用的子树规则集合,如果还有子树规则集为未在文本上进行匹配,则转到步骤4),否则所有子树规则集合匹配完毕,调转到步骤9);
9)利用基准时间表,对时间节点的数值进行推导、解析和转换,所述基准时间表包含背景基准时间和当前基准时间,所述背景基准时间表示当前说话的背景时间,所述当前基准时间表示当前文本中已经明确的时间;
10)将步骤9)中的时间节点转换为用户系统中对应的时间信息格式并输出。
2.根据权利要求1所述的一种文本中时间信息的处理方法,其特征在于,在所述步骤2)之后和步骤3)之前还包括步骤11),所述步骤11)具体包括:
对文本进行正则表达式匹配,以匹配机读时间描述,对正则表达式匹配到的事件描述,调整分词序列中匹配结果开始位置到结束位置的词语所对应的时间节点槽的信息和标记序列中的标记。
3.根据权利要求1或2所述的一种文本中时间信息的处理方法,其特征在于,在所述步骤5)之后和步骤6)之前还包括步骤12),所述步骤12)具体包括:
对步骤5中的子树规则左右扩展覆盖范围,扩展的条件为:当前子树左侧或右侧时间节点槽不为空且外侧的时间节点槽内容连续相同。
4.根据权利要求1所述的一种文本中时间信息的处理方法,其特征在于,所述步骤1)中标记映射关系表中的分词单位与步骤2)中的分词单位分词粒度相同,且满足约束条件:与带数字时间词有关的分词单位粒度为以下模式之一:
2.1)时间词粒度为“单一时间数值+单位”的模式;
2.2)时间数值和时间单位分离的原子分词模式。
5.根据权利要求1所述的一种文本中时间信息的处理方法,其特征在于,所述步骤1)中时间节点采用JSON格式的数据表示、数组表示或TimeML语言表示。
6.根据权利要求1所述的一种文本中时间信息的处理方法,其特征在于,所述步骤4)的模式匹配算法包括KMP算法、Sunday算法、有限状态自动机算法和Abo-Corasick自动机算法。
7.根据权利要求1所述的一种文本中时间信息的处理方法,其特征在于,所述步骤5)采用启发式搜索算法或采用通用上下文无关语法分析算法,从候选子树信息列表中选择子树规则,得到子树规则序列。
8.根据权利要求7所述的一种文本中时间信息的处理方法,其特征在于,所述启发式搜索算法包括逆向最大匹配、正向最大匹配、最少片段数和加权匹配算法;所述通用上下文语法分析算法包括CKY算法和线图算法。
9.根据权利要求1所述的一种文本中时间信息的处理方法,其特征在于,所述步骤5)中被选择的子树序列满足条件:所选子树序列互不重叠,且覆盖最多的标记。
10.根据权利要求1所述的一种文本中时间信息的处理方法,其特征在于,所述步骤9)利用基准时间表,对时间节点的数值进行推导、解析和转换具体包括:
首先根据当前基准时间创建一个时间信息对象;
其次将时间信息对象依次应用时间节点中记录的各种操作,所述操作包括建立时间点或时间段,设置具体的时间字段,所述时间字段为:年/月/日/星期/时/分/秒,对具体时间字段进行加减操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810337183.4A CN108549694B (zh) | 2018-04-16 | 2018-04-16 | 一种文本中时间信息的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810337183.4A CN108549694B (zh) | 2018-04-16 | 2018-04-16 | 一种文本中时间信息的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108549694A CN108549694A (zh) | 2018-09-18 |
CN108549694B true CN108549694B (zh) | 2021-11-23 |
Family
ID=63514913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810337183.4A Active CN108549694B (zh) | 2018-04-16 | 2018-04-16 | 一种文本中时间信息的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108549694B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109740165A (zh) * | 2019-01-09 | 2019-05-10 | 网易(杭州)网络有限公司 | 字典树构建方法、语句搜索方法、装置、设备及存储介质 |
CN111027319A (zh) * | 2019-10-30 | 2020-04-17 | 平安科技(深圳)有限公司 | 自然语言时间词的解析方法、装置和计算机设备 |
CN111539478A (zh) * | 2020-04-26 | 2020-08-14 | 成都见田科技有限公司 | 升降机故障智能诊断方法、系统及诊断设备 |
CN117807293B (zh) * | 2024-02-23 | 2024-05-14 | 中国电子科技集团公司第十研究所 | 一种证据信息按需组织与精准分发方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770453A (zh) * | 2008-12-31 | 2010-07-07 | 华建机器翻译有限公司 | 基于领域本体结合机器学习模型的汉语文本共指消解方法 |
CN102207948A (zh) * | 2010-07-13 | 2011-10-05 | 天津海量信息技术有限公司 | 一种事件陈述句素材库的生成方法 |
CN105224601A (zh) * | 2015-08-31 | 2016-01-06 | 小米科技有限责任公司 | 一种提取时间信息的方法和装置 |
CN105701253A (zh) * | 2016-03-04 | 2016-06-22 | 南京大学 | 中文自然语言问句语义化的知识库自动问答方法 |
CN106970913A (zh) * | 2017-05-12 | 2017-07-21 | 湖南中周至尚信息技术有限公司 | 一种时间的提取方法及装置 |
CN107608949A (zh) * | 2017-10-16 | 2018-01-19 | 北京神州泰岳软件股份有限公司 | 一种基于语义模型的文本信息抽取方法及装置 |
WO2019085779A1 (zh) * | 2017-11-01 | 2019-05-09 | 阿里巴巴集团控股有限公司 | 机器处理及文本纠错方法和装置、计算设备以及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9087043B2 (en) * | 2010-09-29 | 2015-07-21 | Rhonda Enterprises, Llc | Method, system, and computer readable medium for creating clusters of text in an electronic document |
US9367938B2 (en) * | 2013-02-28 | 2016-06-14 | Nokia Technologies Oy | Method and apparatus for automated real-time detection of overlapping painted markup elements |
-
2018
- 2018-04-16 CN CN201810337183.4A patent/CN108549694B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770453A (zh) * | 2008-12-31 | 2010-07-07 | 华建机器翻译有限公司 | 基于领域本体结合机器学习模型的汉语文本共指消解方法 |
CN102207948A (zh) * | 2010-07-13 | 2011-10-05 | 天津海量信息技术有限公司 | 一种事件陈述句素材库的生成方法 |
CN105224601A (zh) * | 2015-08-31 | 2016-01-06 | 小米科技有限责任公司 | 一种提取时间信息的方法和装置 |
CN105701253A (zh) * | 2016-03-04 | 2016-06-22 | 南京大学 | 中文自然语言问句语义化的知识库自动问答方法 |
CN106970913A (zh) * | 2017-05-12 | 2017-07-21 | 湖南中周至尚信息技术有限公司 | 一种时间的提取方法及装置 |
CN107608949A (zh) * | 2017-10-16 | 2018-01-19 | 北京神州泰岳软件股份有限公司 | 一种基于语义模型的文本信息抽取方法及装置 |
WO2019085779A1 (zh) * | 2017-11-01 | 2019-05-09 | 阿里巴巴集团控股有限公司 | 机器处理及文本纠错方法和装置、计算设备以及存储介质 |
Non-Patent Citations (4)
Title |
---|
Discriminative Orderlet Mining for Real-Time Recognition of Human-Object Interaction;Gang Yu 等;《Computer Vision》;20150417;第50-65页 * |
中文文本中时间信息解析方法;张春菊 等;《地理与地理信息科学》;20141115;第1-7页 * |
基于规则的中文文本时间表达式识别和规范化方法;马雷雷 等;《信息工程大学学报》;20171015;第560-565页 * |
基于规则的中文时间表达式识别与规范化;左亚尧 等;《广东工业大学学报》;20140919;第88-94页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108549694A (zh) | 2018-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108549694B (zh) | 一种文本中时间信息的处理方法 | |
US11475209B2 (en) | Device, system, and method for extracting named entities from sectioned documents | |
CN109960728B (zh) | 一种开放域会议信息命名实体识别方法及系统 | |
CN110321432B (zh) | 文本事件信息提取方法、电子装置和非易失性存储介质 | |
CN104252533B (zh) | 搜索方法和搜索装置 | |
CN113591457B (zh) | 文本纠错方法、装置、设备及存储介质 | |
EP0583083B1 (en) | Finite-state transduction of related word forms for text indexing and retrieval | |
CN112084381A (zh) | 一种事件抽取方法、系统、存储介质以及设备 | |
US10726198B2 (en) | Method, device, and system, for identifying data elements in data structures | |
JP5130892B2 (ja) | 文字符号化処理方法及びシステム | |
CN113821605B (zh) | 一种事件抽取方法 | |
CN112084746A (zh) | 一种实体识别方法、系统、存储介质及设备 | |
JP2007094855A (ja) | 文書処理装置及び文書処理方法 | |
CN107256212A (zh) | 中文搜索词智能切分方法 | |
JP2007041767A (ja) | テキストマイニング装置、テキストマイニング方法、テキストマイニングプログラム | |
CN111738008B (zh) | 基于多层模型的实体识别方法、装置、设备及存储介质 | |
CN113095082A (zh) | 一种基于多任务模型进行文本处理的方法、装置、计算机装置及计算机可读取存储介质 | |
CN111597302A (zh) | 文本事件的获取方法、装置、电子设备及存储介质 | |
CN114842982B (zh) | 一种面向医疗信息系统的知识表达方法、装置及系统 | |
CN111368547A (zh) | 基于语义解析的实体识别方法、装置、设备和存储介质 | |
CN111523302B (zh) | 一种句法分析方法、装置、存储介质及电子设备 | |
CN114218373A (zh) | 一种大容量文本内容检索方法和系统 | |
CN112818645A (zh) | 一种化学信息抽取方法、装置、设备及存储介质 | |
Kramer et al. | Bibliographic meta-data extraction using probabilistic finite state transducers | |
Hertel | Neural language models for spelling correction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |