CN111581963B - 提取时间字符串的方法、装置、计算机设备及存储介质 - Google Patents

提取时间字符串的方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111581963B
CN111581963B CN202010238715.6A CN202010238715A CN111581963B CN 111581963 B CN111581963 B CN 111581963B CN 202010238715 A CN202010238715 A CN 202010238715A CN 111581963 B CN111581963 B CN 111581963B
Authority
CN
China
Prior art keywords
phrase
speech
character string
time character
time
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
Application number
CN202010238715.6A
Other languages
English (en)
Other versions
CN111581963A (zh
Inventor
赵亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OneConnect Financial Technology Co Ltd Shanghai
Original Assignee
OneConnect Financial Technology Co Ltd Shanghai
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by OneConnect Financial Technology Co Ltd Shanghai filed Critical OneConnect Financial Technology Co Ltd Shanghai
Priority to CN202010238715.6A priority Critical patent/CN111581963B/zh
Publication of CN111581963A publication Critical patent/CN111581963A/zh
Priority to PCT/CN2021/073137 priority patent/WO2021196835A1/zh
Application granted granted Critical
Publication of CN111581963B publication Critical patent/CN111581963B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates

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

提取时间字符串的方法、装置、计算机设备及存储介质
技术领域
本申请涉及到计算机领域,特别是涉及到提取时间字符串的方法、装置、计算机设备及存储介质。
背景技术
在自然语言文本中,关于时间和日期的描述可谓千奇百怪。在信息抽取、问答系统等自然语言处理领域,对时间和日期字符串的识别与提取有着强烈的需求。现有的识别和提取技术和现成工具往往是基于正则表达式的方式。然而,基于正则表达式的方法需要人工去预先定义好大量的满足多种时间和日期格式的表达式,该方法虽然能够较精确地识别出时间和日期字符串,但是其识别能力受限于正则表达式的丰富程度。那些设计者未能考虑到的时间和日期格式,将不能被识别到,因此基于正则表达式的方法识别时间和日期字符串,具体低召回、复杂度高的缺点。
发明内容
本申请的主要目的为提供提取时间字符串的方法,旨在解决现有通过规则表达式提取时间字符串不具有通用性且提取覆盖率低的技术问题。
本申请提出一种提取时间字符串的方法,包括:
判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性,其中,所述第一词组为所述语句中的任一词组;
若是,则将所述第一词组提取至候选列;
按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件;
若是,则将所述第二词组提取至所述候选列;
按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组,直至将所述时间字符串包括的所有词组均提取至候选列;
将所述候选列中的所有词组按照提取前在所述语句中的排布次序,组合成所述时间字符串。
优选地,所述第一词组的词性为数词,所述按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:
判断所述第二词组的词性是否属于数词、时间词和非语素符号中的一种;
若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件;
若否,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
优选地,所述第一词组的词性为数词,所述按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:
判断所述第二词组的词性是否属于介词或动词;
若所述第二词组的词性属于介词或动词,则判断所述候选列中是否存在介词或动词;
若所述候选列中不存在介词或动词,则判定所述第二词组满足所述时间字符串对应的词性组合条件;
若所述候选列中存在介词或动词,则判定所述第二词组不满足所述时间字符串对应的词性组合条件,并将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
优选地,所述第一词组的词性为方位词,所述按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:
判断所述第二词组的词性是否属于数词或时间词;
若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件;
若否,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
优选地,所述第一词组的词性为时间词,所述按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:
判断所述第二词组的词性是否属于数词、时间词或介词中的一种;
若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件,并生成继续遍历的指令;
若否,则确定所述第一词组为所述时间字符串,并按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
优选地,所述语句属于待分析文档,所述判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性的步骤之前,包括:
将所述待分析文档输入至Jieba分词工具包进行分词,并标注各分词的词性;
对标注了分词词性的所述待分析文档中进行遍历分析,以提取所述待分析文档中的所述时间字符串。
优选地,所述判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性的步骤之前,包括:
将按照预设处理方式处理后的语料样本中的所有短语分别转化为对应的多维向量;
将所有短语分别对应的多维向量进行聚类分析,得到所述时间字符串中所包含的所有词性;
统计聚类得到的所有时间字符串中分别对应的开头词组的词性以及所有时间字符串中除开头词组之外的词性组合特征;
根据统计结果,得出所述时间字符串对应的词性组合条件。
本申请还提供了一种提取时间字符串的装置,包括:
判断模块,用于判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性,其中,所述第一词组为所述语句中的任一词组;
第一提取模块,用于若语句中第一词组的词性为时间字符串的开头词组对应的词性,则将所述第一词组提取至候选列;
识别模块,用于按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件;
第二提取模块,用于若第二词组的词性满足所述时间字符串对应的词性组合条件,则将所述第二词组提取至所述候选列;
遍历模块,用于按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组,直至将所述时间字符串包括的所有词组均提取至候选列;
组合模块,用于将所述候选列中的所有词组按照提取前在所述语句中的排布次序,组合成所述时间字符串。
本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
本申请根据时间字符串的词性组合条件,通过编辑代码实现语句中的时间字符串的识别与提取,本方案依据词性组合条件进行提取,针对不同编辑语言文本识别逻辑可以通用,无需重新编辑,且相比于正则表达式提取的时间字符串的适用覆盖面更广,克服了正则表达式适用范围窄,不能对语句中的时间字符串进行全覆盖提取。根据短语的向量转化和聚类分析,得到在中文自然语言文本中时间字符串中的每一个词组的词性以及词性组合具有特定词性组合规律,作为时间字符串中的词性组合条件。
附图说明
图1本申请一实施例的提取时间字符串的方法流程示意图;
图2本申请一实施例的提取时间字符串的结构示意图;
图3本申请一实施例的计算机设备内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请一实施例的提取时间字符串的方法,包括:
S1:判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性,其中,所述第一词组为所述语句中的任一词组;
S2:若是,则将所述第一词组提取至候选列;
S3:按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件;
S4:若是,则将所述第二词组提取至所述候选列;
S5:按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组,直至将所述时间字符串包括的所有词组均提取至候选列;
S6:将所述候选列中的所有词组按照提取前在所述语句中的排布次序,组合成所述时间字符串。
本实施例中依据语句中时间字符串中词性组合的语法规律,从语句中判断是否存在时间字符串对应的开头词组,若存在时间字符串对应的开头词组,则调动时间字符串的识别逻辑以及存储提取词的候选列,进行时间字符串的识别与提取。上述时间字符串指文本中表示时间的词组组合,比如“2018年5月1日收到活动通知,活动时间为下午14:00至晚上8:00”,上述的‘2018年5月1日’、‘下午14:00’以及”晚上8:00”分别为时间字符串。上述时间字符串对应的开头词组包括数词m、方位词f和时间词t,上述数词m、方位词f和时间词t均通过Jieba自身携带的词典,进行分词并进行词性标注。比如“上午”、“六月”、“上半年”、“去年”等存在于Jieba的词典(或前缀词典)中,且表示时间或日期的词为时间词t;能用于时间字符串且存在于Jieba的词典(或前缀词典)中的方位词f包括“最近”、“前”和“后”等。举例地,上述语句中的时间字符串'2018年5月1日'对应的词性标注为('2018','m'),('年','m'),('5','m'),('月','m'),('1','m'),('日','m')。通过将时间字符串中的所有词组(或字符)依次提取至候选列,方便时间字符串与原语句的分离。上述候选列用于缓存通过时间字符串识别逻辑识别到的属于时间字符串的字符,识别完成后可将识别成功的时间字符串提取至其他处,然后清空候选列以便继续提取其他时间字符串,或时间字符串识别失败后,直接清空候选列,以便在识别到时间字符串的开头词组时,继续启用候选列,避免重复创建候选列,节省流程。当识别到的词组词性均符合时间字符串的词性组合条件,则判定字符串识别成功,否则为识别失败,识别失败后,从当前词组继续遍历,以继续识别排布在后面的时间字符串。举例地,时间字符串的词性组合条件为ft,比如“最近六月”标注为('最近','f'),('六月','t')。f为时间字符串的开头词组的词性,当遍历到f词性时则调动时间字符串的识别逻辑与候选列,并将f词性的词组提取至候选列,若排列在f词性之后的相邻词组的词性为t,则将t词性的词组也提取至候选列,则成功的提取了时间字符串,并将候选列内缓存的时间字符串整体保存后清空候选列。若排列在f词性之后的相邻词组的词性不为t,则判定提取时间字符串失败,将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。根据时间或日期等时间字符串的词性组合条件,通过编辑代码实现语句中的时间字符串的识别与提取,本方案依据词性组合条件进行提取,针对不同编辑语言文本识别逻辑可以通用,无需重新编辑,且相比于正则表达式提取的时间字符串的适用覆盖面更广,克服了正则表达式适用范围窄,不能对语句中的时间字符串进行全覆盖提取。
进一步地,所述第一词组的词性为数词,所述按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤S3,包括:
S301:判断所述第二词组的词性是否属于数词、时间词和非语素符号中的一种;
S302:若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件;
S303:若否,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
本实施例中,根据Jieba自身携带的词典,进行分词并进行词性标注,词典里面记录了每个词的词性和权重。Jieba分词的词性标注规则:如果词典中有该分词,则依据词典进行分词,并依据词典中该分词的词性进行词性标注与识别。如果词典中没有该分词,则基于隐马尔科夫模型进行词性标注,就是将词性标注视为序列标注问题,利用Viterbi算法进行求解。Jieba词性标注中以各词性对应英文单词的首字母代替各词性,比如m代表数词、t代表时间词、x代表非语素符号等、p代表介词、f代表方位词、v代表动词,上述数词、介词、动词同中文中的词性定义,不赘述。上述非语素符号表示无任何含义的间隔符号,时间字符串中常用的非语素符号包括“-”、“/”、“:”等,比如2018-06-07、2018/06/07、12:00。如果遍历到第一词组的词性为m,则判定寻找到开头词组,并将该开头词组加入到候选列,继续遍历与第一词组相邻的下一个词组,即第二词组;如果第二词组为m或t或x,将第二词组加入候选列,继续遍历与第二词组相邻的下一个词,直到与第二词组相邻的下一个词的词性不是m或t或x,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组,当前的时间字符串提取完毕。本实施例的时间字符串的词性组合为m(开头词组)m(x1)t(x2)x(x3),上述x1、x2和x3表示数量,均为大于或等于零的正整数,但x1、x2和x3不可同时为零。上述符合时间字符串的词组的词性排列除开头词组之外,其他词组的排列顺序不限。比如,上述m(开头词组)m(x1)t(x2)x(x3)可变形为m(开头词组)t(x2)m(x1)x(x3),或者可变形为m(开头词组)x(x3)m(x1)t(x2)等。
进一步地,所述第一词组的词性为数词,所述按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤S3,包括:
S31:判断所述第二词组的词性是否属于介词或动词;
S32:若所述第二词组的词性属于介词或动词,则判断所述候选列中是否存在介词或动词;
S33:若所述候选列中不存在介词或动词,则判定所述第二词组满足所述时间字符串对应的词性组合条件;
S34:若所述候选列中存在介词或动词,则判定所述第二词组不满足所述时间字符串对应的词性组合条件,并将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
本实施例的时间字符串的词性组合为m(开头词组)m(y1)p(1个)t(y2)x(y3),或者m(开头词组)m(y1)v(1个)t(y2)x(y3),上述y1、y2和y3表示数量,均为大于或等于零的正整数。若候选列中已存在一个P或一个V,则继续遍历中再遇到P或V词性,则终止提取且将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组,当前的时间字符串提取完毕,即时间字符串中只能包括一个P或一个V,不能P和V同时存在,否则会识别成两个或两个以上的时间字符串。上述排列除开头词组之外,其他词组的排列顺序不限。
进一步地,所述第一词组的词性为方位词,所述按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤S3,包括:
S30a:判断所述第二词组的词性是否属于数词或时间词;
S30b:若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件;
S30c:若否,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
本实施例的时间字符串对应的词性组合条件为:f(开头词组)t(z1)m(z2),上述z1和z2表示数量,均为大于或等于零的正整数,且z1和z2不可同时为零。上述排列除开头词组之外,其他词组的排列顺序不限。如果遍历到当前词组的词性是f,则判定遇到时间字符串的开头词组,启动时间字符串的识别逻辑和候选列,并将该词加入到候选列,继续遍历与该开头词组相邻的第二词组:如果第二词组的词性为t或m,则将其加入到候选列,继续遍历与第二词组相邻的下一个词;否则,将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
进一步地,所述第一词组的词性为时间词,所述按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤S3,包括:
S3a:判断所述第二词组的词性是否属于数词、时间词或介词中的一种;
S3b:若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件,并生成继续遍历的指令;
S3c:若否,则确定所述第一词组为所述时间字符串,并按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
本实施例的时间字符串对应的词性组合条件为:t(开头词组)m(n1)t(n2)p(n3),上述n1、n2和n3表示数量,均为大于或等于零的正整数,上述排列除开头词组之外,排列顺序不限。如果遍历到当前词组的词性是t,则判定遇到时间字符串的开头词组,启动时间字符串的识别逻辑和候选列,并将该词加入到候选列,继续遍历与该开头词组相邻的第二词组:如果第二词组的词性为m或t或p时,则将其加入到候选列,继续遍历与第二词组相邻的下一个词;否则,从第二词组开始重新判断。
进一步地,所述语句属于待分析文档,所述判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性的步骤S1之前,包括:
S11:将所述待分析文档输入至Jieba分词工具包进行分词,并标注各分词的词性;
S12:对标注了分词词性的所述待分析文档中进行遍历分析,以提取所述待分析文档中的所述时间字符串。
本实施例通过Jieba分词工具包对待分析文档进行分词,并标注各分词的词性。Jieba分词的分词流程,同时进行分词和词性标注。在词性标注的时候,首先基于正则表达式进行汉字判断,如果是汉字,则会基于Jieba分词工具包携带的词典构建有向无环图,然后基于有向无环图计算最大概率路径,同时在词典中查找所分出的分词的词性。比如,“北京大学”有几种候选切词方法包括:“北”、“北京”、“北京大”,“北京大学”。这是有四种分词方法(路径),哪个概率最大呢?先将上述四种分词路径构构建有向无环图,然后基于有向无环图以及词典中上述各分词对应的权重,计算最大概率,根据最大概率确定最大可能的分词是“北京”和“北京大学”。至于选择“北京”还是“北京大学”,如果选择“北京”的话,那么“大学”就是单独一个词,如果p(北京)*p(大学)的概率小于p(北京大学),那么切词结果就是“北京大学”,否则,就是“北京\大学”。将“北京大学”作为一个整体去切的概率大于“北京”“大学”分开切的概率,所以选择分词为“北京大学”。如果基于词典没有找到该分词,则将其词性标注为“x”(表示非语素符号,非语素符号只是一个符号,字母x通常用于代表未知符号),并调用正则表达式判断其词性类型,分别赋予“x”,“m”(数词取英语numeral的第3个字母,n,u已有他用)等。'近三年'对应的词性标注为('近三年','t');'2018-06-07'对应的词性标注为('2018','m'),('-','x'),('06','m'),('-','x'),('07','m');'2018年'对应的词性标注为('2018','m'),('年','m');Jieba的词典(或前缀词典)中,有“六月”,但是没有“6月”,因此对它们的分词,采取的是不同的分词策略,'2018年6月'对应的词性标注为('2018','m'),('年','m'),('6','m'),('月','m');'2018年六月'对应的词性标注为('2018','m'),('年','m'),('六月','t');'2018年5月1日'对应的词性标注为('2018','m'),('年','m'),('5','m'),('月','m'),('1','m'),('日','m');'去年'对应的词性标注为('去年','t');'2019年至2020年'对应的词性标注为('2019','m'),('年','m'),('至','p'),('2020','m'),('年','m');'2019年-2020年'对应的词性标注为('2019','m'),('年','m'),('-','x'),('2020','m'),('年','m');'2019年3月4日上午9点'对应的词性标注为('2019','m'),('年','m'),('3','m'),('月','m'),('4','m'),('日','m'),('上午','t'),('9','m'),('点','m');'2019年上半年到2020年下半年':pair('2019','m'),('年','m'),('上半年','t'),('到','v'),('2020','m'),('年','m'),('下半年','t')。本实施例通过Jieba分词工具包对待分析文档进行分词时,先调用Jieba分词工具包附带的分词库的词典进行分词,然后根据上下文的语义关联算法进行关联分词,以便校正通过词典进行分词的准确性,若词典中不存在相应的分词,则直接依据上下文的语义关联算法进行关联分词。
进一步地,所述判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性的步骤S1之前,包括:
S101:将按照预设处理方式处理后的语料样本中的所有短语分别转化为对应的多维向量;
S102:将所有短语分别对应的多维向量进行聚类分析,得到所述时间字符串所包含的所有词性;
S103:统计聚类得到的所有时间字符串中分别对应的开头词组的词性以及所有时间字符串中除开头词组之外的词性组合特征;
S104:根据统计结果,得出所述时间字符串对应的词性组合条件。
本实施例的语料样本来自“搜狗分类新闻语料库”。上述预设处理方式包括将原语料预处理成多个短语,其中包括时间日期短语;然后对每一个短语通过Jieba分词工具包进行分词和词性标注,将每一个短语的词性标注结果转化为多维向量。比如,某一短语中包括的词性种类有n个,那么该短语对应的向量为n维向量,向量的每一维代表一种词性,若同一词性的词的个数为k,那么其对应向量位置上的赋值就为k。根据Jieba分词工具包词性的分类,本实施例的多维向量为40维向量。例如,短语“从2019年9月至2020年3月”,词性标注结果为:[('从','p'),('2019','m'),('年','m'),('9','m'),('月','m'),('至','p'),('2020','m'),('年','m'),('3','m'),('月','m')],假设向量的第一维表示词性p,第二维表示词性m,那么该短语对应的多维向量为[2,8,…,0,0](因为该短语中的词,词性为p的有两个,词性为m的有8个,其余位置都为0)。
对所有短语编码结束后,进行聚类计算。根据聚类分析,多维向量的欧式距离在预设范围内的聚合为一类,得到语料样本中的时间日期短语中包括的词性为f、m、t、x、p、v,其中,m代表数词、t代表时间词、x代表非语素符号、p代表介词、f代表方位词、v代表动词。比如时间字符串的词性组合为:ft;ftm;fm;mx;mm;mmt;mmpmm;mmv;t;tm;tmt;tmtp等。统计分析时间字符串的词性组合,开头词组的词性为f、m或者t,剩下的部分由若干词性为m、p、v、t、x的词组成。通过将开头词组之外的词的词性组合条件进行分析统计,得出时间字符串的词性组合特征趋于集中,即时间字符串对应的词性组合条件包括m(开头词组)m(x1)t(x2)x(x3),上述x1、x2和x3表示数量,均为大于或等于零的正整数,但x1、x2和x3不可同时为零;m(开头词组)m(y1)p(1个)t(y2)x(y3),或者m(开头词组)m(y1)v(1个)t(y2)x(y3),上述y1、y2和y3表示数量,均为大于或等于零的正整数;f(开头词组)t(z1)m(z2),上述z1和z2表示数量,均为大于或等于零的正整数,且z1和z2不可同时为零;t(开头词组)m(n1)t(n2)p(n3),上述n1、n2和n3表示数量,均为大于或等于零的正整数。
参照图2,本申请一实施例的提取时间字符串的装置,包括:
判断模块1,用于判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性,其中,所述第一词组为所述语句中的任一词组;
第一提取模块2,用于若语句中第一词组的词性为时间字符串的开头词组对应的词性,则将所述第一词组提取至候选列;
识别模块3,用于按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件;
第二提取模块4,用于若第二词组的词性满足所述时间字符串对应的词性组合条件,则将所述第二词组提取至所述候选列;
遍历模块5,用于按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组,直至将所述时间字符串包括的所有词组均提取至候选列;
组合模块6,用于将所述候选列中的所有词组按照提取前在所述语句中的排布次序,组合成所述时间字符串。
本实施例中依据语句中时间字符串中词性组合的语法规律,从语句中判断是否存在时间字符串对应的开头词组,若存在时间字符串对应的开头词组,则调动时间字符串的识别逻辑以及存储提取词的候选列,进行时间字符串的识别与提取。上述时间字符串指文本中表示时间的词组组合,比如“2018年5月1日收到活动通知,活动时间为下午14:00至晚上8:00”,上述的‘2018年5月1日’、‘下午14:00’以及“晚上8:00”分别为时间字符串。上述时间字符串对应的开头词组包括数词m、方位词f和时间词t,上述数词m、方位词f和时间词t均通过Jieba自身携带的词典,进行分词并进行词性标注。比如“上午”、“六月”、“上半年”、“去年”等存在于Jieba的词典(或前缀词典)中,且表示时间或日期的词为时间词t;能用于时间字符串且存在于Jieba的词典(或前缀词典)中的方位词f包括“最近”、“前”和“后”等。举例地,上述语句中的时间字符串'2018年5月1日'对应的词性标注为('2018','m'),('年','m'),('5','m'),('月','m'),('1','m'),('日','m')。通过将时间字符串中的所有词组(或字符)依次提取至候选列,方便时间字符串与原语句的分离。上述候选列用于缓存通过时间字符串识别逻辑识别到的属于时间字符串的字符,识别完成后可将识别成功的时间字符串提取至其他处,然后清空候选列以便继续提取其他时间字符串,或时间字符串识别失败后,直接清空候选列,以便在识别到时间字符串的开头词组时,继续启用候选列,避免重复创建候选列,节省流程。当识别到的词组词性均符合时间字符串的词性组合条件,则判定字符串识别成功,否则为识别失败,识别失败后,从当前词组继续遍历,以继续识别排布在后面的时间字符串。举例地,时间字符串的词性组合条件为ft,比如“最近6月”标注为('最近','f'),('6','m'),('月','m')。f为时间字符串的开头词组的词性,当遍历到f词性时则调动时间字符串的识别逻辑与候选列,并将f词性的词组提取至候选列,若排列在f词性之后的相邻词组的词性为t,则将t词性的词组也提取至候选列,则成功的提取了时间字符串,并将候选列内缓存的时间字符串整体保存后清空候选列。若排列在f词性之后的相邻词组的词性不为t,则判定提取时间字符串失败,将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。根据时间或日期等时间字符串的词性组合条件,通过编辑代码实现语句中的时间字符串的识别与提取,本方案依据词性组合条件进行提取,针对不同编辑语言文本识别逻辑可以通用,无需重新编辑,且相比于正则表达式提取的时间字符串的适用覆盖面更广,克服了正则表达式适用范围窄,不能对语句中的时间字符串进行全覆盖提取。
进一步地,所述第一词组的词性为数词,所述识别模块3,包括:
第一判断单元,用于判断所述第二词组的词性是否属于数词、时间词和非语素符号中的一种;
第一判定单元,用于若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件;
第一终止单元,用于若否,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
本实施例中,根据Jieba自身携带的词典,进行分词并进行词性标注,词典里面记录了每个词的词性和权重。Jieba分词的词性标注规则:如果词典中有该分词,则依据词典进行分词,并依据词典中该分词的词性进行词性标注与识别。如果词典中没有该分词,则基于隐马尔科夫模型进行词性标注,就是将词性标注视为序列标注问题,利用Viterbi算法进行求解。Jieba词性标注中以各词性对应英文单词的首字母代替各词性,比如m代表数词、t代表时间词、x代表非语素符号等、p代表介词、f代表方位词、v代表动词,上述数词、介词、动词同中文中的词性定义,不赘述。上述非语素符号表示无任何含义的间隔符号,时间字符串中常用的非语素符号包括“-”、“/”、“:”等,比如2018-06-07、2018/06/07、12:00。如果遍历到第一词组的词性为m,则判定寻找到开头词组,并将该开头词组加入到候选列,继续遍历与第一词组相邻的下一个词组,即第二词组;如果第二词组为m或t或x,将第二词组加入候选列,继续遍历与第二词组相邻的下一个词,直到与第二词组相邻的下一个词的词性不是m或t或x,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组,当前的时间字符串提取完毕。本实施例的时间字符串的词性组合为m(开头词组)m(x1)t(x2)x(x3),上述x1、x2和x3表示数量,均为大于或等于零的正整数,但x1、x2和x3不可同时为零。上述符合时间字符串的词组的词性排列除开头词组之外,其他词组的排列顺序不限。比如,上述m(开头词组)m(x1)t(x2)x(x3)可变形为m(开头词组)t(x2)m(x1)x(x3),或者可变形为m(开头词组)x(x3)m(x1)t(x2)等。
进一步地,所述第一词组的词性为数词,所述识别模块3,包括:
第二判断单元,用于判断所述第二词组的词性是否属于介词或动词;
第三判断单元,用于若所述第二词组的词性属于介词或动词,则判断所述候选列中是否存在介词或动词;
第二判定单元,用于若所述候选列中不存在介词或动词,则判定所述第二词组满足所述时间字符串对应的词性组合条件;
第三判定单元,用于若所述候选列中存在介词或动词,则判定所述第二词组不满足所述时间字符串对应的词性组合条件,并将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
本实施例的时间字符串的词性组合为m(开头词组)m(y1)p(1个)t(y2)x(y3),或者m(开头词组)m(y1)v(1个)t(y2)x(y3),上述y1、y2和y3表示数量,均为大于或等于零的正整数。若候选列中已存在一个P或一个V,则继续遍历中再遇到P或V词性,则终止提取且将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组,当前的时间字符串提取完毕,即时间字符串中只能包括一个P或一个V,不能P和V同时存在,否则会识别成两个或两个以上的时间字符串。上述排列除开头词组之外,其他词组的排列顺序不限。
进一步地,所述第一词组的词性为方位词,所述识别模块3,包括:
第四判断单元,用于判断所述第二词组的词性是否属于数词或时间词;
第四判定单元,用于若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件;
第二终止单元,用于若否,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
本实施例的时间字符串对应的词性组合条件为:f(开头词组)t(z1)m(z2),上述z1和z2表示数量,均为大于或等于零的正整数,且z1和z2不可同时为零。上述排列除开头词组之外,其他词组的排列顺序不限。如果遍历到当前词组的词性是f,则判定遇到时间字符串的开头词组,启动时间字符串的识别逻辑和候选列,并将该词加入到候选列,继续遍历与该开头词组相邻的第二词组:如果第二词组的词性为t或m,则将其加入到候选列,继续遍历与第二词组相邻的下一个词;否则,将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
进一步地,所述第一词组的词性为时间词,所述识别模块3,包括:
第五判断单元,用于判断所述第二词组的词性是否属于数词、时间词或介词中的一种;
第五判定单元,用于若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件,并生成继续遍历的指令;
第三终止单元,用于若否,则确定所述第一词组为所述时间字符串,并按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
本实施例的时间字符串对应的词性组合条件为:t(开头词组)m(n1)t(n2)p(n3),上述n1、n2和n3表示数量,均为大于或等于零的正整数,上述排列除开头词组之外,排列顺序不限。如果遍历到当前词组的词性是t,则判定遇到时间字符串的开头词组,启动时间字符串的识别逻辑和候选列,并将该词加入到候选列,继续遍历与该开头词组相邻的第二词组:如果第二词组的词性为m或t或p时,则将其加入到候选列,继续遍历与第二词组相邻的下一个词;否则,遍历停止。
进一步地,提取时间字符串的装置,包括:
输入模块,用于将所述待分析文档输入至Jieba分词工具包进行分词,并标注各分词的词性;
分析模块,用于对标注了分词词性的所述待分析文档中进行遍历分析,以提取所述待分析文档中的所述时间字符串。
本实施例通过Jieba分词工具包对待分析文档进行分词,并标注各分词的词性。Jieba分词的分词流程,同时进行分词和词性标注。在词性标注的时候,首先基于正则表达式进行汉字判断,如果是汉字,则会基于Jieba分词工具包携带的词典构建有向无环图,然后基于有向无环图计算最大概率路径,同时在词典中查找所分出的分词的词性。比如,“北京大学”有几种候选切词方法包括:“北”、“北京”、“北京大”,“北京大学”。这是有四种分词方法(路径),哪个概率最大呢?先将上述四种分词路径构构建有向无环图,然后基于有向无环图以及词典中上述各分词对应的权重,计算最大概率,根据最大概率确定最大可能的分词是“北京”和“北京大学”。至于选择“北京”还是“北京大学”,如果选择“北京”的话,那么“大学”就是单独一个词,如果p(北京)*p(大学)的概率小于p(北京大学),那么切词结果就是“北京大学”,否则,就是“北京\大学”。将“北京大学”作为一个整体去切的概率大于“北京”“大学”分开切的概率,所以选择分词为“北京大学”。如果基于词典没有找到该分词,则将其词性标注为“x”(表示非语素符号,非语素符号只是一个符号,字母x通常用于代表未知符号),并调用正则表达式判断其词性类型,分别赋予“x”,“m”(数词取英语numeral的第3个字母,n,u已有他用)等。时间字符串中常用的非语素符号包括“-”、“/”、“:”等,比如2018-06-07、2018/06/07、12:00。'近三年'对应的词性标注为('近三年','t');'2018-06-07'对应的词性标注为('2018','m'),('-','x'),('06','m'),('-','x'),('07','m');'2018年'对应的词性标注为('2018','m'),('年','m');Jieba的词典(或前缀词典)中,有“六月”,但是没有“6月”,因此对它们的分词,采取的是不同的分词策略,'2018年6月'对应的词性标注为('2018','m'),('年','m'),('6','m'),('月','m');'2018年六月'对应的词性标注为('2018','m'),('年','m'),('六月','t');'2018年5月1日'对应的词性标注为('2018','m'),('年','m'),('5','m'),('月','m'),('1','m'),('日','m');'去年'对应的词性标注为('去年','t');'2019年至2020年'对应的词性标注为('2019','m'),('年','m'),('至','p'),('2020','m'),('年','m');'2019年-2020年'对应的词性标注为('2019','m'),('年','m'),('-','x'),('2020','m'),('年','m');'2019年3月4日上午9点'对应的词性标注为('2019','m'),('年','m'),('3','m'),('月','m'),('4','m'),('日','m'),('上午','t'),('9','m'),('点','m');'2019年上半年到2020年下半年':pair('2019','m'),('年','m'),('上半年','t'),('到','v'),('2020','m'),('年','m'),('下半年','t')。本实施例通过Jieba分词工具包对待分析文档进行分词时,先调用Jieba分词工具包附带的分词库的词典进行分词,然后根据上下文的语义关联算法进行关联分词,以便校正通过词典进行分词的准确性,若词典中不存在相应的分词,则直接依据上下文的语义关联算法进行关联分词。
进一步地,提取时间字符串的装置,包括:
转化模块,用于将按照预设处理方式处理后的语料样本中的所有短语分别转化为对应的多维向量;
聚类模块,用于将所有短语分别对应的多维向量进行聚类分析,得到所述时间字符串所包含的所有词性;
统计模块,用于统计聚类得到的所有时间字符串中分别对应的开头词组的词性以及所有时间字符串中除开头词组之外的词性组合特征;
得出模块,用于根据统计结果,得出所述时间字符串对应的词性组合条件。
本实施例的语料样本来自“搜狗分类新闻语料库”。上述预设处理方式包括将原语料预处理成多个短语,其中包括时间日期短语;然后对每一个短语通过Jieba分词工具包进行分词和词性标注,将每一个短语的词性标注结果转化为多维向量。比如,某一短语中包括的词性种类有n个,那么该短语对应的向量为n维向量,向量的每一维代表一种词性,若同一词性的词的个数为k,那么其对应向量位置上的赋值就为k。根据Jieba分词工具包词性的分类,本实施例的多维向量为40维向量。例如,短语“从2019年9月至2020年3月”,词性标注结果为:[('从','p'),('2019','m'),('年','m'),('9','m'),('月','m'),('至','p'),('2020','m'),('年','m'),('3','m'),('月','m')],假设向量的第一维表示词性p,第二维表示词性m,那么该短语对应的多维向量为[2,8,…,0,0](因为该短语中的词,词性为p的有两个,词性为m的有8个,其余位置都为0)。
对所有短语编码结束后,进行聚类计算。根据聚类分析,多维向量的欧式距离在预设范围内的聚合为一类,得到语料样本中的时间日期短语中包括的词性为f、m、t、x、p、v,其中,m代表数词、t代表时间词、x代表非语素符号、p代表介词、f代表方位词、v代表动词。比如时间字符串的词性组合为:ft;ftm;fm;mx;mm;mmt;mmpmm;mmv;t;tm;tmt;tmtp等。统计分析时间字符串的词性组合,开头词组的词性为f、m或者t,剩下的部分由若干词性为m、p、v、t、x的词组成。通过将开头词组之外的词的词性组合条件进行分析统计,得出时间字符串的词性组合特征趋于集中,即时间字符串对应的词性组合条件包括m(开头词组)m(x1)t(x2)x(x3),上述x1、x2和x3表示数量,均为大于或等于零的正整数,但x1、x2和x3不可同时为零;m(开头词组)m(y1)p(1个)t(y2)x(y3),或者m(开头词组)m(y1)v(1个)t(y2)x(y3),上述y1、y2和y3表示数量,均为大于或等于零的正整数;f(开头词组)t(z1)m(z2),上述z1和z2表示数量,均为大于或等于零的正整数,且z1和z2不可同时为零;t(开头词组)m(n1)t(n2)p(n3),上述n1、n2和n3表示数量,均为大于或等于零的正整数。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储提取时间字符串的过程需要的所有数据。该计算机设备的网络接口用于与外部的端通过网络连接通信。该计算机程序被处理器执行时以实现提取时间字符串的方法。
上述处理器执行上述提取时间字符串的方法,判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性,其中,所述第一词组为所述语句中的任一词组;若是,则将所述第一词组提取至候选列;按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件;若是,则将所述第二词组提取至所述候选列;按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组,直至将所述时间字符串包括的所有词组均提取至候选列;将所述候选列中的所有词组按照提取前在所述语句中的排布次序,组合成所述时间字符串。
上述计算机设备,根据短语的向量转化和聚类分析,得到在中文自然语言文本中时间或日期等时间字符串中的每一个词组的词性以及词性组合具有特定词性组合规律,作为时间字符串中的词性组合条件,并根据上述时间或日期字符串的词性组合条件,通过编辑代码实现语句中的时间字符串的识别与提取,本方案依据词性组合条件进行提取,针对不同编辑语言文本识别逻辑可以通用,无需重新编辑,且相比于正则表达式提取的时间字符串的适用覆盖面更广,克服了正则表达式适用范围窄,不能对语句中的时间字符串进行全覆盖提取。
在一个实施例中,所述第一词组的词性为数词,上述处理器按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:判断所述第二词组的词性是否属于数词、时间词和非语素符号中的一种;若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件;若否,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
在一个实施例中,所述第一词组的词性为数词,上述处理器按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:判断所述第二词组的词性是否属于介词或动词;若所述第二词组的词性属于介词或动词,则判断所述候选列中是否存在介词或动词;若所述候选列中不存在介词或动词,则判定所述第二词组满足所述时间字符串对应的词性组合条件;若所述候选列中存在介词或动词,则判定所述第二词组不满足所述时间字符串对应的词性组合条件,并将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
在一个实施例中,所述第一词组的词性为方位词,上述处理器按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:判断所述第二词组的词性是否属于数词或时间词;若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件;若否,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
在一个实施例中,所述第一词组的词性为时间词,上述处理器按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:判断所述第二词组的词性是否属于数词、时间词或介词中的一种;若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件,并生成继续遍历的指令;若否,则确定所述第一词组为所述时间字符串,并按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
在一个实施例中,所述语句属于待分析文档,上述处理器判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性的步骤之前,包括:将所述待分析文档输入至Jieba分词工具包进行分词,并标注各分词的词性;对标注了分词词性的所述待分析文档中进行遍历分析,以提取所述待分析文档中的所述时间字符串。
在一个实施例中,上述处理器判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性的步骤之前,包括:将按照预设处理方式处理后的语料样本中的所有短语分别转化为对应的多维向量;将所有短语分别对应的多维向量进行聚类分析,得到所述时间字符串中所包含的所有词性;统计聚类得到的所有时间字符串中分别对应的开头词组的词性以及所有时间字符串中除开头词组之外的词性组合特征;根据统计结果,得出所述时间字符串对应的词性组合条件。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现提取时间字符串的方法,判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性,其中,所述第一词组为所述语句中的任一词组;若是,则将所述第一词组提取至候选列;按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件;若是,则将所述第二词组提取至所述候选列;按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组,直至将所述时间字符串包括的所有词组均提取至候选列;将所述候选列中的所有词组按照提取前在所述语句中的排布次序,组合成所述时间字符串。
上述计算机可读存储介质,根据短语的向量转化和聚类分析,得到在中文自然语言文本中时间或日期等时间字符串中的每一个词组的词性以及词性组合具有特定词性组合规律,作为时间字符串中的词性组合条件,并根据上述时间字符串的词性组合条件,通过编辑代码实现语句中的时间字符串的识别与提取,本方案依据词性组合条件进行提取,针对不同编辑语言文本识别逻辑可以通用,无需重新编辑,且相比于正则表达式提取的时间字符串的适用覆盖面更广,克服了正则表达式适用范围窄,不能对语句中的时间字符串进行全覆盖提取。
在一个实施例中,所述第一词组的词性为数词,上述处理器按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:判断所述第二词组的词性是否属于数词、时间词和非语素符号中的一种;若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件;若否,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
在一个实施例中,所述第一词组的词性为数词,上述处理器按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:判断所述第二词组的词性是否属于介词或动词;若所述第二词组的词性属于介词或动词,则判断所述候选列中是否存在介词或动词;若所述候选列中不存在介词或动词,则判定所述第二词组满足所述时间字符串对应的词性组合条件;若所述候选列中存在介词或动词,则判定所述第二词组不满足所述时间字符串对应的词性组合条件,并将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
在一个实施例中,所述第一词组的词性为方位词,上述处理器按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:判断所述第二词组的词性是否属于数词或时间词;若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件;若否,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
在一个实施例中,所述第一词组的词性为时间词,上述处理器按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:判断所述第二词组的词性是否属于数词、时间词或介词中的一种;若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件,并生成继续遍历的指令;若否,则确定所述第一词组为所述时间字符串,并按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
在一个实施例中,所述语句属于待分析文档,上述处理器判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性的步骤之前,包括:将所述待分析文档输入至Jieba分词工具包进行分词,并标注各分词的词性;对标注了分词词性的所述待分析文档中进行遍历分析,以提取所述待分析文档中的所述时间字符串。
在一个实施例中,上述处理器判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性的步骤之前,包括:将按照预设处理方式处理后的语料样本中的所有短语分别转化为对应的多维向量;将所有短语分别对应的多维向量进行聚类分析,得到所述时间字符串中所包含的所有词性;统计聚类得到的所有时间字符串中分别对应的开头词组的词性以及所有时间字符串中除开头词组之外的词性组合特征;根据统计结果,得出所述时间字符串对应的词性组合条件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种提取时间字符串的方法,其特征在于,包括:
判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性,其中,所述第一词组为所述语句中的任一词组;
若是,则将所述第一词组提取至候选列;
按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件;
若是,则将所述第二词组提取至所述候选列;
按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组,直至将所述时间字符串包括的所有词组均提取至候选列;
将所述候选列中的所有词组按照提取前在所述语句中的排布次序,组合成所述时间字符串。
2.根据权利要求1所述的提取时间字符串的方法,其特征在于,所述第一词组的词性为数词,所述按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:
判断所述第二词组的词性是否属于数词、时间词和非语素符号中的一种;
若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件;
若否,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
3.根据权利要求1所述的提取时间字符串的方法,其特征在于,所述第一词组的词性为数词,所述按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:
判断所述第二词组的词性是否属于介词或动词;
若所述第二词组的词性属于介词或动词,则判断所述候选列中是否存在介词或动词;
若所述候选列中不存在介词或动词,则判定所述第二词组满足所述时间字符串对应的词性组合条件;
若所述候选列中存在介词或动词,则判定所述第二词组不满足所述时间字符串对应的词性组合条件,并将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
4.根据权利要求1所述的提取时间字符串的方法,其特征在于,所述第一词组的词性为方位词,所述按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:
判断所述第二词组的词性是否属于数词或时间词;
若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件;
若否,则将所述第一词组从候选列中剔除,按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
5.根据权利要求1所述的提取时间字符串的方法,其特征在于,所述第一词组的词性为时间词,所述按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件的步骤,包括:
判断所述第二词组的词性是否属于数词、时间词或介词中的一种;
若是,则判定所述第二词组满足所述时间字符串对应的词性组合条件,并生成继续遍历的指令;
若否,则确定所述第一词组为所述时间字符串,并按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组。
6.根据权利要求1所述的提取时间字符串的方法,其特征在于,所述语句属于待分析文档,所述判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性的步骤之前,包括:
将所述待分析文档输入至Jieba分词工具包进行分词,并标注各分词的词性;
对标注了分词词性的所述待分析文档中进行遍历分析,以提取所述待分析文档中的所述时间字符串。
7.根据权利要求1所述的提取时间字符串的方法,其特征在于,所述判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性的步骤之前,包括:
将按照预设处理方式处理后的语料样本中的所有短语分别转化为对应的多维向量;
将所有短语分别对应的多维向量进行聚类分析,得到所述时间字符串中所包含的所有词性;
统计聚类得到的所有时间字符串中分别对应的开头词组的词性以及所有时间字符串中除开头词组之外的词性组合特征;
根据统计结果,得出所述时间字符串对应的词性组合条件。
8.一种提取时间字符串的装置,其特征在于,包括:
判断模块,用于判断语句中第一词组的词性是否为时间字符串的开头词组对应的词性,其中,所述第一词组为所述语句中的任一词组;
第一提取模块,用于若语句中第一词组的词性为时间字符串的开头词组对应的词性,则将所述第一词组提取至候选列;
识别模块,用于按照所述第一词组在所述语句中的排布次序,继续识别与所述第一词组相邻且排布在所述第一词组之后的第二词组的词性,是否满足所述时间字符串对应的词性组合条件;
第二提取模块,用于若第二词组的词性满足所述时间字符串对应的词性组合条件,则将所述第二词组提取至所述候选列;
遍历模块,用于按照所述第一词组和所述第二词组的词性识别过程,依次遍历排布于所述第二词组之后的所有词组,直至将所述时间字符串包括的所有词组均提取至候选列;
组合模块,用于将所述候选列中的所有词组按照提取前在所述语句中的排布次序,组合成所述时间字符串。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202010238715.6A 2020-03-30 2020-03-30 提取时间字符串的方法、装置、计算机设备及存储介质 Active CN111581963B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010238715.6A CN111581963B (zh) 2020-03-30 2020-03-30 提取时间字符串的方法、装置、计算机设备及存储介质
PCT/CN2021/073137 WO2021196835A1 (zh) 2020-03-30 2021-01-21 提取时间字符串的方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010238715.6A CN111581963B (zh) 2020-03-30 2020-03-30 提取时间字符串的方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN111581963A CN111581963A (zh) 2020-08-25
CN111581963B true CN111581963B (zh) 2022-09-20

Family

ID=72124303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010238715.6A Active CN111581963B (zh) 2020-03-30 2020-03-30 提取时间字符串的方法、装置、计算机设备及存储介质

Country Status (2)

Country Link
CN (1) CN111581963B (zh)
WO (1) WO2021196835A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581963B (zh) * 2020-03-30 2022-09-20 深圳壹账通智能科技有限公司 提取时间字符串的方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729314A (zh) * 2017-09-29 2018-02-23 东软集团股份有限公司 一种中文时间识别方法、装置及存储介质、程序产品
CN108920500A (zh) * 2018-05-24 2018-11-30 众安信息技术服务有限公司 一种时间解析方法
CN109190119A (zh) * 2018-08-22 2019-01-11 腾讯科技(深圳)有限公司 时间提取方法和装置、存储介质及电子装置
CN110222346A (zh) * 2019-06-20 2019-09-10 贵州电网有限责任公司 一种从交互数据中提取有效时间的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5393392B2 (ja) * 2009-10-16 2014-01-22 日本電信電話株式会社 時間表現抽出装置、時間表現抽出方法および時間表現抽出プログラム
US20180089569A1 (en) * 2016-09-28 2018-03-29 International Business Machines Corporation Generating a temporal answer to a question
CN111581963B (zh) * 2020-03-30 2022-09-20 深圳壹账通智能科技有限公司 提取时间字符串的方法、装置、计算机设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729314A (zh) * 2017-09-29 2018-02-23 东软集团股份有限公司 一种中文时间识别方法、装置及存储介质、程序产品
CN108920500A (zh) * 2018-05-24 2018-11-30 众安信息技术服务有限公司 一种时间解析方法
CN109190119A (zh) * 2018-08-22 2019-01-11 腾讯科技(深圳)有限公司 时间提取方法和装置、存储介质及电子装置
CN110222346A (zh) * 2019-06-20 2019-09-10 贵州电网有限责任公司 一种从交互数据中提取有效时间的方法

Also Published As

Publication number Publication date
WO2021196835A1 (zh) 2021-10-07
CN111581963A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
EP1446763B1 (en) Character string identification
CN109145260B (zh) 一种文本信息自动提取方法
CN114036930A (zh) 文本纠错方法、装置、设备及计算机可读介质
CN113591457A (zh) 文本纠错方法、装置、设备及存储介质
CN110309504B (zh) 基于分词的文本处理方法、装置、设备及存储介质
CN110110334B (zh) 一种基于自然语言处理的远程会诊记录文本纠错方法
CN113553853B (zh) 命名实体识别方法、装置、计算机设备及存储介质
CN112417823B (zh) 一种中文文本语序调整和量词补全方法及系统
CN110532569B (zh) 一种基于中文分词的数据碰撞方法及系统
CN112464669A (zh) 股票实体词消歧方法、计算机设备及存储介质
CN113033204A (zh) 信息实体抽取方法、装置、电子设备和存储介质
CN111581963B (zh) 提取时间字符串的方法、装置、计算机设备及存储介质
CN111178080A (zh) 一种基于结构化信息的命名实体识别方法及系统
CN112668324B (zh) 语料数据处理方法、装置、电子设备及存储介质
CN114118082A (zh) 一种简历检索方法及装置
CN113076404A (zh) 一种文本相似度计算方法、装置、计算机设备和存储介质
CN112287657A (zh) 基于文本相似度的信息匹配系统
CN114970554B (zh) 一种基于自然语言处理的文档校验方法
CN113609864B (zh) 一种基于工业控制系统的文本语义识别处理系统及方法
CN114154503A (zh) 一种敏感数据类型识别方法
Deka et al. A study of t’nt and crf based approach for pos tagging in assamese language
CN113239245A (zh) 用于信息查询的方法及装置、电子设备、可读存储介质
CN116484842A (zh) 语句纠错的方法及装置、电子设备、存储介质
CN109727591B (zh) 一种语音搜索的方法及装置
CN113051920A (zh) 命名实体识别方法、装置、计算机设备和存储介质

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