CN113366511A - 利用遗传编程的命名实体识别和提取 - Google Patents

利用遗传编程的命名实体识别和提取 Download PDF

Info

Publication number
CN113366511A
CN113366511A CN202080000848.8A CN202080000848A CN113366511A CN 113366511 A CN113366511 A CN 113366511A CN 202080000848 A CN202080000848 A CN 202080000848A CN 113366511 A CN113366511 A CN 113366511A
Authority
CN
China
Prior art keywords
candidate
data strings
program
data
programs
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.)
Granted
Application number
CN202080000848.8A
Other languages
English (en)
Other versions
CN113366511B (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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Publication of CN113366511A publication Critical patent/CN113366511A/zh
Application granted granted Critical
Publication of CN113366511B publication Critical patent/CN113366511B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • 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
    • G06F40/295Named entity recognition
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Evolutionary Biology (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Genetics & Genomics (AREA)
  • Physiology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本文公开了使用遗传算法生成模式程序的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。遗传算法对表示将通过命名实体识别来识别或提取的数据类别的示例数据串进行运算。在初始化阶段,基于表示将通过命名实体识别来识别或提取的数据类别的示例数据串,生成初始模式程序。从初始模式程序开始,迭代地进行遗传运算以生成多代的后代模式程序。在每一轮遗传运算中,后代模式程序是通过交叉繁殖运算和变异运算生成的。

Description

利用遗传编程的命名实体识别和提取
背景技术
网络和存储子系统设计的进步继续使得能够在计算机系统之间和内部处理规模越来越大的数据流。同时,这种数据流的内容也受到越来越严格的审查。例如,个人数据的收集、分析和存储受到审查和监管。组织必须确保在严格的条件下合法收集个人数据。收集和管理个人数据的组织有义务保护其免受滥用和非法使用,并有义务尊重数据所有者的权利。个人数据或其它敏感数据包括但不限于姓名、出生日期、出生地点、身份证号码、家庭住址、信用卡号码、电话号码、电子邮件地址、URL、IP地址、银行帐号等。
从数据流中分类和提取个人数据或其它敏感数据涉及命名实体识别。通常,命名实体识别是一项信息提取任务,其旨在将文本中的原子元素识别和分类为预定义类别,例如个人名称、个人身份标识(诸如社会安全号码“SSN”或居民身份证号码等)、家庭地址、电子邮件地址、银行帐号、电话号码、信用卡号码等。这些预定义的数据类别称为“命名实体”或简称“实体”。实体通常遵循某些类型的句法模式。诸如正则表达式、确定型有限状态自动机(deterministic finite automata)或符号型有限状态自动机(symbolic finiteautomata)等程序用于指定数据流中的模式。然而,生成这样的程序通常涉及大量的专家编程工作,这样既效率低下,速度又慢。在大数据和基于云的服务时代,服务提供商或平台面临着在大量种类繁多的数据流类别中处理实体识别任务的需求,而这些无法通过手动编程来处理。
因此,需要有效地生成用于命名实体识别任务的程序。
发明内容
本文描述了使用遗传算法(genetic algorithm)生成模式程序的技术。遗传算法对表示将要通过命名实体识别来识别或提取的数据类别的示例数据串进行运算。这样的示例数据串称为“正示例”数据串。遗传算法还可以对反示例数据串进行运算,该反示例数据串表示否定正示例数据串的数据串,例如,不是命名实体识别任务的目标。在初始化阶段,基于表示将要通过命名实体识别来识别或提取的数据类别的示例数据串,生成初始模式程序。从初始模式程序开始,迭代地进行遗传运算以生成几代的后代模式程序。在每一轮遗传运算中,后代模式程序都是通过交叉繁殖运算和变异运算生成的。随机生成的模式程序中的一小部分会被添加到每一代后代模式程序中。适应度函数用于确定模式程序在每一代后代模式程序中的适应度得分。适应度得分用于过滤一代中的后代模式程序,从而使每一代后代模式程序的群体大小保持稳定。例如,每一代都包括相同数量的后代模式程序。在迭代遗传运算完成后,为命名实体识别任务选择适应度得分最高的模式程序。
如果遗传运算未能生成具有期望的提取行为的模式程序,则基于例如每个示例数据串的类型或长度,将示例数据串分类为两个或更多个子组。遗传运算是对示例数据串的每个子组并行进行的,每个子组都会生成相应的模式程序。多个模式程序通过“或”功能标签链接。
适应度函数包括与以下有关的一个或多个影响因子:(1)模式程序的简洁性;(2)模式程序在正示例数据串上的第一匹配率;(3)模式程序在反示例数据串上的第二匹配率;或(4)模式程序与正示例数据串之间的编辑距离。
遗传算法对数据串进行处理,每个数据串都精确地表示命名实体识别的目标数据类别。这些技术特征带来了宝贵的技术优势。首先,从遗传算法生成的模式程序将具有量身定制的提取行为,因为通过遗传算法的遗传运算对示例数据串中包含的好“基因”进行了有效的捕获和延续。这样,生成的模式程序将正确检测并提取目标数据类别的数据串。此外,使用这种示例数据串还减少了处理过程中的人工输入和错误,因为不需要从非代表性数据串中手动识别命名实体。而且,模式程序的初始群体主要是,例如90%是从示例数据串生成的,这显著减少了实现令人满意的模式程序所需的迭代遗传运算量。在大数据和基于云的数据服务时代,节省计算资源对于管理大规模数据流至关重要。
此外,适应度函数考虑模式程序是否匹配反示例数据串,该反示例数据串不是命名实体识别任务的目标。因此,基于适应度函数选择的模式程序将规避通过反示例数据串表示的数据类别。因此,假阳性错误将显著减少,这使得命名实体识别任务的结果更加可靠和有意义。这样,本文的技术是有效且适合于在大规模数据流上执行命名实体识别任务。
本文还提供了耦接到一个或多个处理器并且其上存储有指令一种或多种非暂时性计算机可读存储介质,该指令在由一个或多个处理器执行时使一个或多个处理器执行根据本文提供的方法实施例所述的操作。
本文还提供了实现本文提供的方法的系统。该系统包括一个或多个处理器,以及耦接到一个或多个处理器并在其上存储有指令的计算机可读存储介质,该指令在由一个或多个处理器执行时,使一个或多个处理器执行根据本文提供的方法实施例所述的操作。
应当理解的是,根据本文所述的方法可以包括本文描述的各个方面和特征的任何组合。即,根据本文所述的方法不限于本文具体描述的各个方面和特征的组合,而是还包括所提供的各个方面和特征的任何组合。
本文的一个或多个实施例的细节将在说明书附图和以下描述中阐述。本文的其它特征和优点通过说明书和附图以及权利要求书将显现。
附图说明
图1为示出了可用于执行本文的实施例的环境的示例的示图。
图2为示出了根据本文的实施例的操作的示例的示图。
图3为根据本文的实施例生成模式程序的示例程序生成模块。
图4示意性地示出了根据本文的实施例使用遗传算法生成模式程序的示例处理。
图5示意性地示出了根据本文的实施例使用遗传算法生成模式程序的另一示例处理。
在各个附图中相同的附图标记和名称表示相同的元件。
具体实施方式
本文描述了使用遗传算法生成模式程序的技术。遗传算法对表示将要通过命名实体识别来识别或提取的数据类别的示例数据串进行运算。这样的示例数据串称为“正示例”数据串。遗传算法还可以对反示例数据串进行运算,该反示例数据串表示否定正示例数据串的数据串,例如,不是命名实体识别任务的目标。在初始化阶段,基于表示将要通过命名实体识别来识别或提取的数据类别的示例数据串,生成初始模式程序。从初始模式程序开始,迭代地进行遗传运算以生成几代的后代模式程序。在每一轮遗传运算中,后代模式程序都是通过交叉繁殖运算和变异运算生成的。随机生成的模式程序中的一小部分会被添加到每一代后代模式程序中。适应度函数用于确定模式程序在每一代后代模式程序中的适应度得分。适应度得分用于过滤一代中的后代模式程序,从而使每一代后代模式程序的群体大小保持稳定。例如,每一代都包括相同数量的后代模式程序。在迭代遗传运算完成后,为命名实体识别任务选择适应度得分最高的模式程序。
如果遗传运算未能生成具有期望的提取行为的模式程序,则基于例如每个示例数据串的类型或长度,将示例数据串分类为两个或更多个子组。遗传运算是对示例数据串的每个子组并行进行的,每个子组都会生成相应的模式程序。多个模式程序通过“或”功能标签链接。
适应度函数包括与以下有关的一个或多个影响因子:(1)模式程序的简洁性;(2)模式程序在正示例数据串上的第一匹配率;(3)模式程序在反示例数据串上的第二匹配率;或(4)模式程序与正示例数据串之间的编辑距离。
本文不限于本文描述的任何特定实施例、方面、概念、结构、功能或示例。相反,本文描述的任何实施例、方面、概念、结构、功能或示例都是非限制性的,并且可以以通常在计算、编程和数据管理方面提供益处和优点的各种方式来应用本文。
图1是用于从例如命名实体识别的数据流中检测目标数据类别的数据串的操作环境100。环境100包括一个或多个用户110、服务提供商120以及数据流130的一个或多个源,以上均通过网络140相互通信或逻辑连接。用户110或服务提供商120中的每一个都是计算设备,例如个人计算机“PC”、服务器、路由器、网络PC、移动设备、对等设备或其它公共网络节点。网络140可以是一个或多个局域网(“LAN”)和/或一个或多个广域网(“WAN”)或其它网络,其均配置为企业范围的计算机网络、企业内部网或互联网或其它网络应用程序。基于在环境100中的对应功能对用户110、服务提供商120或数据流130的源进行分类。用户110、服务提供商120或数据流130的源可以物理上驻留在相同的计算设备上或物理上分开的计算设备中。用户110、服务提供商120或数据流130的源可以属于相同的个体或法人实体,或不同的个体或法人实体。例如,用户110可以是金融科技公司的业务部门,并且可以具有针对数据流130执行的敏感的数据检测、识别和审查任务。服务提供商120可以是同一金融科技公司的技术服务部门或提供有关命名实体识别的服务的第三方服务提供商。
图2示出了环境100中各方之间/之中的操作或交互的处理流程200的流程图。一起参考图1和图2,在示例操作210中,用户110向服务提供商120指定或提供示例数据串的初始集合。数据串包括一个或多个字母、字符、符号和/或其它表达元素的组合。示例数据串的初始集合包含精确表示用户110期望从数据流130中提取或识别的目标数据类别的示例。也就是说,示例数据串不包含超出所表示的目标数据类别的任何字符或数据位。
数据流130对于用户110而言可以是特定的,或者可以与多个用户110共享或可适用于多个用户110。类似地,用户110可以使用两个或更多个数据流130。用户110针对每个数据流130可以具有相同或不同的命名实体识别任务。对于不同的数据流130,用户110可以提供示例数据串的不同初始集合。这样,用户110可以将命名实体识别任务提供给服务提供商120,服务提供商120指定适用的数据流130和示例数据串的对应初始集合。该任务还可以指定待识别的数据串的数据类别。指定的数据类别可能已经由示例数据串的初始集合表示,或者可能由本文进一步描述的示例数据串表示。例如,用户110可以要求从数据流130中识别出个人数据。示例性个人数据包括人的姓名、出生日期、出生地点、身份证号码、家庭住址、信用卡号码、电话号码、电子邮件地址、URL、IP地址、银行账号等。在一些实施例中,用户110将个人数据的示例数据串提供给服务提供商120。个人数据的示例数据串可以包括多个类别的个人数据,例如电话号码、个人身份证号码、信用卡号码等。个人数据的示例数据串也可包括相同类别的个人数据的各种数据格式或模式格式。例如,示例电话号码可包括以下模式:
001.234.456.7899;
+1.234.456.7899;
1 234 456 7899;
(234)456 7899;
234 456 7899.
在一些实施例中,每个示例数据串均准确地包含其本身的目标数据类别。在一些实施例中,所提供的示例数据串中的至少一些示例数据串每个均包含表示目标数据类别的第一代码段和不表示目标类别的第二代码段。第二代码段可提供用于识别代码段的第一集合中所包含的目标数据类别的上下文。用户110可以将第一代码段识别为表示目标数据类别。用户110也可以为服务提供商指定命名实体识别任务,以将第一代码段识别为表示目标数据类别。在一些实施例中,示例数据串也可包括表示不是用于用户110的命名实体识别任务的目标数据类别的数据串。在本文的描述中,“正示例数据串”是指表示目标数据类别的示例数据串。“反示例数据串”是指表示不是用于命名实体识别任务的目标数据类别的示例数据串。
在示例操作220中,程序生成模块122基于用户110使用遗传算法提供的示例数据串生成命名实体识别程序。生成的命名实体识别程序表示目标数据类别的句法数据模式,并且出于描述的目的在本文中称为“模式程序”。模式程序可以是正则表达式、确定型有限状态自动机(“DFA”)、符号型有限状态自动机(“SFA”)或表示句法数据模式的其它合适程序的形式。在一些实施例中,通过由服务提供商120的程序生成模块122实施的遗传算法来生成模式程序。在本文的描述中,正则表达式用作示例性模式程序以说明服务提供商120和/或程序生成模块122的操作。
在一些实施例中,程序生成模块122执行初始化操作、合成操作和确认操作。在初始化操作中,获得候选程序的初始群体。在一些实施例中,基于正示例数据串获得初始候选程序的主要群体。例如,对于每个正示例数据串,获得一个或多个候选正则表达式,其提取行为与正示例数据串表示的目标数据类别一致。应当理解的是,对于每个目标数据类别,可以生成多个正则表达式。在一些实施例中,一些候选程序是随机生成的。基于正示例数据串获得的候选程序的数量与随机生成的候选程序的数量之间的比率是初始化操作的参数,该参数可以被调整。在一些实施例中,该比率为9:1,使得在遗传运算中容易捕获并延续所期望的正示例数据串的提取行为或良好的“基因”。候选正则表达式的初始群体的群体大小,例如候选正则表达式的总数量,是初始化操作的另一可调参数。
在合成操作或遗传运算中,初始候选程序通过遗传算法的运算而演变。遗传算法以迭代的方式实现。在每一轮演变中,母群体中的候选程序被合成以创建候选程序的子代。合成操作可以包括交叉繁殖运算和变异运算。由交叉繁殖运算生成的子候选程序与由变异运算生成的子候选程序之间的比率是合成操作的参数,该参数可以被调整。在一些实施例中,该比率为大约9:1,并且可以将其调整为大于或小于9:1。候选程序均通过适应度函数进行评估以确定适应度得分。适应度得分表示模式程序的提取行为与由在适应度得分计算中使用的示例数据串或其它数据串表示的目标数据类别一致的程度。在一些实施例中,用于生成初始候选程序的示例数据串也用于计算初始候选程序或子候选程序的适应度得分。在一些实施例中,用户110提供的示例数据串被分为两组。一组示例数据串用于生成初始候选程序,另一组示例数据串用于计算候选程序的适应度得分。后一种方法可能有助于避免过度适应的问题(如果有的话)。在本文的描述中,出于说明的目的,用于生成初始候选程序的示例数据串也用于计算候选程序的适应度得分,这并不限制本文的范围。
在一些实施例中,候选程序的适应度得分会影响其在下一轮演变中的使用(如果有的话)。例如,可以基于现有候选程序的适应度得分来选择候选程序的新母群体。例如,具有较低适应度得分的候选程序可以因“不适合”成为下一代演变的母体而被过滤掉。在某些示例中,候选程序被选择用于进行交叉繁殖和/或变异的概率取决于候选程序的适应度得分。例如,具有较高适应度得分的候选程序在交叉繁殖运算中与另一候选程序匹配的概率更高。具有较高适应度得分的候选程序通常也具有较高的被选择用于变异运算的概率,尽管变异运算的概率变化不如交叉繁殖运算的概率变化显著。
在一些实施例中,仅从最新一代的子候选程序中选择新的母程序群体。在一些实施例中,新的母程序群体是基于适应度得分从所有现有候选程序池中选择的。例如,选择适应度得分较高的现有候选程序,以形成新的母程序群体。在本文的描述中,“母代”候选程序是指用于在合成操作下生成新的候选程序的一代候选程序;“子代”候选程序是指从合成操作中生成的一代候选程序。如果整个最新子代的群体都用于下一轮遗传运算,则最新子代候选程序可能与新的母代候选程序正好重叠。“一代”候选程序作为适用于子代或母代候选程序中的任一代而使用。
在一些实施例中,候选程序的生成也包括随机生成的候选程序的百分比,例如在5%至15%之间的范围内。将通过遗传运算生成的候选程序与随机生成的候选程序混合确保了“好基因”可以逐代维持下去,并引入新的“增强基因”。因此,候选程序的适应度得分通常是逐代地提升的。当候选程序的适应度得分达到第一阈值或总演变轮数达到第二阈值时,合成操作随即完成。在合成操作完成之后,选择具有最高适应度得分的候选程序作为要在命名实体识别任务中使用的最终模式程序。最终程序可以不必从上一代候选程序中选择。最终程序可以从任一代候选程序中选择。
适应度函数可以具有各种形式和标准,所有形式和标准均包含在本文的范围内。在一些实施例中,适应度函数包括与以下有关的影响因子:候选正则表达式的简洁性,例如,候选表达式的长度;候选正则表达式在正示例数据串上的第一匹配率;候选正则表达式在反示例数据串上的第二匹配率;或候选正则表达式与示例数据串之间的编辑距离。
计算第一匹配率以作为100%匹配候选正则表达式的正示例数据串的数量与正示例数据串的总数之比。计算第二匹配率以作为100%匹配候选正则表达式的反示例数据串的数量与反示例数据串的总数之比。确定编辑距离以作为将提取的数据串转换为正示例数据串中所包含的目标数据类别的最低编辑数。例如,在一些实施例中,由候选正则表达式的提取行为匹配的示例数据串中的字符和由候选正则表达式的提取行为忽略的示例数据串中的字符被分析,以确定候选正则表达式的编辑距离。
在示例操作230中,提取模块124使用程序生成模块122生成的正则表达式从数据流130中提取目标数据类别。具体地说,提取模块124在数据流130中找到与正则表达式表示的模式匹配的数据串。在一些实施例中,匹配阈值的百分比可用于实施提取操作。例如,如果数据流130中的数据串包括以大于55%的百分比与正则表达式匹配的字符或代码段,则提取模块124将该数据串提取为属于目标数据类别。匹配阈值的百分比可以基于命名实体识别任务的配置,例如,用户110所指定的针对假阳性或假阴性的容限来调节。
在示例操作240中,将提取的或识别的数据串提供给用户110。用户110可以检验所提供的提取结果,可以确认正确的提取,并且可以识别错误的提取,例如,假阳性或假阴性。
在学习操作250中,用户110将正确的提取和/或错误的提取作为训练集合提供给服务提供商120以调整合成操作。例如,在训练候选程序时,将假阳性提取用作附加的反示例数据串。可提供假阴性结果,即目标数据类别中没有被正则表达式提取的数据串,作为附加正示例数据串。利用附加示例数据串,可以重新计算候选程序在各代演变中的得分。这改变了合成操作的过程和结果。在一些实施例中,合成操作不会在其启动点处进行调整,而是在演变过程的中间一代开始对其进行训练。在一些实施例中,仅针对在演变过程中已生成的所有候选程序重新计算适应度得分,即,无需进一步的合成操作,从而使得重新计算的适应度得分可能导致选择不同的候选程序作为最终程序,而没有生成新的候选程序。附加反示例数据串或附加正示例数据串的其它用途也是可行的,并且包括在本文的范围内。例如,可以使用与操作220中最初使用的策略不同的策略来生成初始候选模式程序。结果,生成了新的正则表达式,其具有比先前在操作240中使用的正则表达式更高的适应度得分。新的正则表达式和先前的正则表达式的适应度得分是使用相同的示例数据串计算的,例如,使用示例数据串的初始集合和附加示例数据串中的至少一个计算。
在一些实施例中,可以在学习操作250中调整遗传算法的参数。例如,可以基于用户110对提取结果的反馈来调整由正示例数据串生成的候选程序与随机生成的候选程序之间的比率。例如,如果假阴性由初始正示例数据串表示,则学习处理可能会降低随机生成的候选程序在遗传运算中的百分比,从而在由基因运算生成的正则表达式中更好地表示正示例数据串的“基因”。
图3为示例程序生成模块122。程序生成模块122包括初始化单元310、随机程序生成单元320、合成单元330、适应度测量单元340、控制器350和学习单元360。初始化单元310包括示例分组单元312、初始程序生成单元314和解析树单元316。合成单元330包括交叉繁殖单元332和变异单元334。控制器350包括调整单元352。
在一些实施例中,程序生成模块122及其中的各个单元是专用于各个功能和操作的计算机可执行指令。该可执行指令包括例程、程序、对象、分量和数据结构,其在由处理器执行时使处理器能够执行特定任务或实现特定抽象数据类型。程序生成模块122的各个单元可以驻留在相同的计算设备上或者可以驻留在分布式计算环境中一起发挥作用的多个计算设备上。在分布式计算环境中,程序生成模块122的各个单元可以存储在包括计算机存储设备的本地或远程计算机存储介质中。
在本文中进一步描述了程序生成模块122中各个软件单元的操作和功能。
图4示出了程序生成模块122基于用户110提供的示例数据串生成正则表达式的示例处理400。在一些实施例中,示例数据串包括正示例数据串和反示例数据串。每个正示例数据串精确地包含示例目标数据类别,例如示例出生日期、示例社会安全号码、示例居民身份证号码、示例银行帐号等。使用示例目标数据类别本身作为正示例数据串将简化遗传算法的运算,并有助于在演变过程中延续示例目标数据类别的“好基因”。每个负示例数据串都不包含目标数据类别。在一些实施例中,一些反示例数据串是反例,其表示目标数据类别的一般特征的例外。例如,尽管数据串“10.26.2050”似乎遵循出生日期的数据格式,但是由于在操作时,没有人出生在2050这个年份,因此该数据串可以用作出生日期的反例。在一些实施例中,每个反例数据串精确地包含目标数据类别的反例,而没有任何其它/附加字符。包含这样的反例使得能够在遗传运算的演变过程中避免反例的“劣质基因”。可以将反例数据串与其它反示例数据串分开识别或分类。在一些实施例中,最初从用户110接收的示例数据串不包括任何反示例数据串。在一些实施例中,从用户110接收的示例数据串仅包括正示例数据串和反例数据串,并且不包括其它反示例数据串。
为了说明的目的,通过基于示例数据串生成正则表达式的示例任务来描述示例处理400。在示例动作410中,初始化单元310获得候选正则表达式的初始群体,出于描述的目的,将该初始群体称为零代G0。示例动作410包括子动作412、414和418。在子动作412中,可选地,示例分组单元312可以将现有的示例数据串初始分为初始组,其目标是同一初始组中的示例数据串共享由相同的正则表达式待表示的特定模式特征。例如,可以基于示例数据串的字符分类,例如,示例数据串是否包含没有数字的单词字符、示例数据串是否包含没有单词字符的数字、或者示例数据串是否包含混合的数字和单词字符,进行初始分组。初始分组也可以考虑单词字符的自然语言,例如单词字符是中文、英文、日文还是韩文。初始分组也可以考虑单词字符的语系,例如,单词字符属于凯尔特语、意大利语、汉语、日耳曼语、斯拉夫语还是其它语系。初始分组也可以考虑由示例数据串表示的相关目标数据类别。例如,出生日期的示例数据串可能包含不同的格式,例如“mm-dd-yy”;“mm/dd/yy”;“dd-mm-yyyy”;“yyyy.mm.dd”;或其它格式。不同格式的出生日期信息的示例数据串被分组在一起。初始分组也可以考虑示例数据串的长度。
在一些实施例中,示例分组单元312为每组示例数据串分配权重。权重可能会影响候选程序在适应度得分和匹配率方面的分析。权重也可能影响每组示例数据串在遗传运算中的实际使用量。在操作220的遗传运算中或学习操作250中,分配给每组示例数据串的权重是动态可调的。为不同组的示例数据串分配权重有助于确保更重要的目标数据类别具有在遗传算法生成的正则表达式中表示的优先权。
在一些实施例中,程序生成模块122进行操作以针对由正示例数据串表示的所有目标数据类别生成单个正则表达式。示例数据串的分组并不一定导致对每组示例数据串分别进行遗传运算。然而,基于遗传运算的最终或中间结果,可以调整示例数据串的分组,并且可以相应地调整遗传运算,这在本文中会详细描述。
在一些实施例中,省略了子动作412中的初始分组操作。程序生成模块122默认情况下将先尝试生成能够提取由示例数据串表示的所有目标数据类别的单个正则表达式。示例分组单元312可以基于稍后在本文中详细描述的调整单元352的遗传算法的运算中的输入或反馈对示例数据串进行分组。
在子动作414中,初始程序生成单元314与随机程序生成单元320协调以生成候选正则表达式的初始群体,其也称为“候选程序”。具体地,在一些实施例中,初始程序生成单元314基于正示例数据串生成候选正则表达式。随机程序生成单元320随机生成候选正则表达式。在一些实施例中,基于正示例数据串生成的候选正则表达式的数量与随机生成的候选正则表达式的数量之间的比率维持在约1:7至约1:10之间的范围内。在一些实施例中,基于正示例数据串生成的候选正则表达式的数量与随机生成的候选正则表达式的数量之间的比率为1:9。在一些实施例中,该比率由控制器350控制。实验数据表明,这样的比率范围有助于确保最终的正则表达式表现出与示例数据串的提取行为一致并进一步从示例数据串的提取行为扩展的提取行为。在一些实施例中,初始群体中的所有候选正则表达式都是随机生成的,并且用户110提供的示例数据串被用于本文所述的遗传运算420、430。
正则表达式通常在描述其所表示的模式的数据串中进行描述。正则表达式可以包含以下中的一个或多个元素:诸如\a\的文字;诸如\[a-z]\的字符范围;诸如\[^a-z]\的反向字符范围;诸如\a[bc]\的拼接;诸如\a?\的选项运算符;诸如\a*\的星号运算符;诸如\a+\的加号运算符;诸如\a??\、\a*?\、\a+?\的非穷尽运算符;诸如\a|b\的交替运算符;或诸如\(ab)\的捕获组运算符。
对于正示例数据串中的至少一些数据串,基于其中的每一个生成两个或更多个候选正则表达式。作为说明性示例,“175.8”的示例数据串可以由以下的正则表达式表示:
r:=\d\d\d\.\d;或
r:=\d+\.\d.;或
r:=\[0-2]\d\d\.\d
此外,针对不同的正示例数据串生成的候选正则表达式可以重叠。可以将重叠的正则表达式从初始群体中过滤掉,或者可以将其保留在初始群体中以增加以下可能性:此类候选正则表达式或“基因”的提取行为在初始群体中被恰当地表示,并在演变过程中被充分延续。
在一些实施例中,在基于正示例数据串生成正则表达式的初始群体时,考虑了各种策略。例如,策略可能对简化的正则表达式的喜好超过复杂的正则表达式。策略可以尝试减少或增加正则表达式中使用的功能标签或功能标签的类型。这些策略会影响通过遗传运算生成的最终正则表达式,这可以在学习操作250中进行调整。
在一些实施例中,候选正则表达式的初始群体的群体大小大于正示例数据串的总数量。例如,群体大小约为正示例数据串的数量n的1.5-2倍。
在一些实施例中,在子动作414的步骤416中,适应度测量单元340针对初始群体中每个候选正则表达式计算适应度得分。适应度测量单元340可以使用各种合适的适应度算法来计算适应度得分,这些都包括在本文的范围内。在一些实施例中,适应度测量单元340使用以下算法来计算适应度得分:
Figure BDA0002515596940000141
其中,ti表示正示例数据串;n为正示例数据串的总数量;si表示包含在作为目标数据类别的正示例数据串ti中的代码段;R(ti)表示通过正则表达式从正示例数据串ti中提取的代码段;d(x1,x2)表示数据串/代码段x1,x2之间的编辑距离;l(R)表示正则表达式的长度;p+表示正则表达式与正示例数据串匹配的比率,例如,R(ti)=si;p-表示正则表达式与反示例数据串匹配的比率;以及α、β、γ为常数,其可以由控制器350调节。在一些实施例中,ti=si,因为正示例数据串恰好表示目标数据类别。应当理解的是,尽管候选正则表达式的初始群体中的很大一部分中的每个都是直接从一个或多个正示例数据串中直接生成的,但是其各自可能无法提取其它的正示例数据串。应当理解的是,用于计算适应度得分的数据串可以是与用于生成初始候选程序的数据串不同的数据串集合或组。
在一些实施例中,n可以是所有示例数据串的数量;ti表示示例数据串;si表示包含在作为目标数据类别的示例数据串ti中的代码段,而针对不包含目标数据类别的反示例数据串,si=0;R(ti)表示通过正则表达式从示例数据串ti中提取的代码段;d(x1,x2)表示数据串/代码段x1,x2之间的编辑距离。
在一些实施例中,基于用户110的容错度来调整β,γ。例如,如果用户110朝着假阳性的超过假阴性的趋势进行平衡,则β将增加。如果用户110朝着假阴性的超过假阳性的趋势进行平衡,则γ将增加。
在一些实施例中,可以将为一组示例数据串分配的权重引入到适应度函数中。
Figure BDA0002515596940000151
其中,wi为示例数据串ti的权重,该权重等于分配给ti所属的组的权重;wj是分配给示例数据串组j的权重;p+j是正则表达式与组j的正示例数据串匹配的比率;p-j是正则表达式与组j的反示例数据串匹配的比率;m是示例数据串组的总数量。
在子动作418中,解析树单元316解析初始G0代中的每个候选正则表达式。候选正则表达式中的至少一些被解析为两个或更多个分量。在一些实施例中,解析树用于表示被解析为两个或更多个分量的正则表达式。在一些实施例中,符号型有限状态自动机用于表示被解析为两个或更多个分量的正则表达式。表示所解析的正则表达式和/或所解析的正则表达式的两个或更多个分量之间的对应关系的其它方法也是可行的,并且包括在本文的范围内。在本文的描述中,以解析树为例来说明程序生成模块122的操作,这并不限制本文的范围。
在一些实施例中,解析树是基于选区的解析树,其包括终端节点和非终端节点。解析树的叶节点(终端节点)都带有终端标签,表示已经被解析的正则表达式的分量。每个叶节点都不具有任何子节点,并且无法进一步扩展。当叶节点串联在一起时,获得候选正则表达式。解析树的每个内部或非叶节点(非终端节点)都标记有非终端标签。非终端标签可以包括占位符标签c和功能标签。内部节点的直系子节点必须遵循语法中功能标签的生成规则的模式。占位符标签c指示关联子节点的“位置”。功能标签指示位置c的功能关系或多个位置c之间的功能关系。例如,(c1c2)指示与两个占位符c1、c2关联的子节点是级联的;^c指示与占位符c关联的子节点是反向的。在一些实施例中,使用字符串转换方法形成解析树。内部节点的字符串转换是通过将占位符c替换为与该占位符c关联的子节点的字符串转换结果来实现的。基于正则表达式形成解析树的其它方法也是可行的,并且包括在本文的范围内。
在示例动作420中,合成单元330合成母Gp代候选程序中的候选程序,以生成子Gp+1代候选程序。合成操作包括对母代候选程序进行交叉繁殖和变异运算。交叉繁殖运算通过重新组合两个或更多个母候选程序的分量或基因值,将两个或更多个母候选程序交织到两个或更多个新候选程序中,以生成“子”候选程序,每个“子”候选程序均包括来自每个母候选程序的分量。例如,在将母候选程序表示为解析树的情况下,可以将母解析树的子树或分支重新组合以生成子解析树。变异运算会更改母候选程序的一个或多个分量或基因值,以生成子候选程序。例如,在将母候选程序表示为解析树的情况下,可以用随机生成的子树或分支来替换解析树的子树或分支以生成子候选程序。变异运算的功能是为了提高候选程序群体的多样性。
在一些实施例中,在为变异和交叉繁殖运算选择候选程序时,会考虑候选程序的适应度得分。例如,对于交叉繁殖运算而言,候选程序被选择为与另一候选程序配对机会可与其适应度得分一致。也就是说,适应度得分较高的候选程序与适应度得分较低的候选程序相比,在交叉繁殖运算中与另一候选程序配对的机会更高。这样,可以将“好基因”,例如合适的提取行为,延续到下一代。在一些实施例中,与选择为用于交叉繁殖运算相比,适应度得分较低的候选程序会具有较高的概率被选择为用于变异运算。这增加了将“好基因”引入候选程序群体的机会。在一些实施例中,适应度得分较高的候选程序与适应度得分较低的候选程序相比,会具有更高的概率被选择为用于变异运算。
在一些实施例中,子Gp+1代候选程序也包括一小部分由随机程序生成单元320随机生成的候选程序。
在一些实施例中,子Gp+1代候选程序具有与母Gp代候选程序数量相同的候选程序。在合成操作初始生成的候选程序多于所需数目的情况下,通过其适应度得分对生成的候选程序进行过滤。适应度得分较低的候选程序被滤除,直到子Gp+1代候选程序与母Gp代具有相同的群体大小为止。
在一些实施例中,子Gp+1代候选程序包括通过交叉繁殖运算生成的候选程序的第一子集;通过变异运算生成的候选程序的第二子集;以及随机生成的候选程序的第三子集。在一些实施例中,在每个子集包含的候选程序的数量中,候选程序的第一子集、第二子集和第三子集之间的比率在除初始代G0以外的所有代候选程序中保持基本相同。例如,第一子集、第二子集和第三子集之间的比率在3:1:1和18:1:1之间的范围内。可以通过由交叉繁殖运算、变异运算或随机运算各自生成的候选程序的数量来控制该比率的大小。该比率的大小也可以通过有选择性地滤除每个子集中适应度得分较低的候选程序来控制。
在一些实施例中,通过交叉繁殖运算生成的候选程序的第一子集与通过变异运算生成的候选程序的第二子集之间的比率是基于对示例数据串的初始分析来确定的。例如,示例数据串更均匀的情况下,诸如在示例数据串的长度或由示例数据串表示的数据类别等方面,第一子集的大小将增加。在示例数据串更混杂的情况下,第二子集的大小将增加。
在示例子动作422中,交叉繁殖单元332进行交叉繁殖运算。如本文所用示例中所示,候选程序是正则表达式,并且每个正则表达式均表示为解析树,该解析树是适于交叉繁殖运算的数据结构。可以通过对配对的母程序的分量进行重新组合的各种方式来进行交叉繁殖运算。例如,可以使用单点交叉繁殖、两点交叉繁殖(或k点交叉繁殖)或均匀交叉繁殖中的一种或多种交叉繁殖。此外,可以在交叉繁殖运算中考虑解析树的功能标签。例如,部分匹配的交叉繁殖、循环交叉繁殖、顺序交叉繁殖、基于顺序的交叉繁殖、基于位置的交叉繁殖、投票重组交叉繁殖、交替位置交叉繁殖或序列构造交叉繁殖中的一种或多种交叉繁殖可以被用于适当处理解析树中的功能标签。
在一些实施例中,对于表示为解析树的配对候选程序,随机选择解析树的子树/分支以在交叉繁殖运算中进行重新组合。即,当选择内部节点时,所选择的内部节点下的整个分支,即内部节点下的所有子节点,都用于在交叉繁殖运算中进行重新组合。在一些其它实施例中,解析树的节点是随机选择的,并且只有所选择的节点用于在交叉繁殖运算中进行重新组合。所选择的节点的子节点(如果有的话)将不会用于重新组合。
在一些实施例中,只有解析树的叶节点(或终端节点)被选择用于在交叉繁殖运算中进行重新组合。叶节点是随机选择的,或者是基于某些限制选择的。例如,叶节点被选择的机会与解析树的叶节点和根节点之间的距离有关。在一些实施例中,距离根节点位置较远的叶节点,例如其间的更多内部节点,被选择用于重新组合的机会较高。在一些其它实施例中,距离根节点位置较远的叶节点被选择用于重新组合的机会较低。
在一些实施例中,内部节点被选择用于进行重新组合的机会与内部节点的高度有关,例如,与内部节点和内部节点下的叶节点之间的最长距离有关。例如,高度较大的内部节点可能更有可能被选择用于进行重新组合。又如,高度较大的内部节点可能不太可能被选择用于进行重新组合。
在解析树中选择用于进行重新组合的节点的其它方法也是可行的,并且包括在本文的范围内。在一些实施例中,如本文所述,可以由控制器350来配置和调整选择用于进行重新组合的候选程序的分量的方法。
在示例子动作424中,变异单元334对为了进行变异运算而选择的候选程序进行变异运算。如本文所用示例中所示,候选程序是正则表达式,并且每个正则表达式均表示为解析树,该解析树是适于变异运算的数据结构。可以通过控制器350控制的各种方式进行变异运算,这些均包括在本文的范围内。例如,可以使用位串变异、翻转位变异、边界变异、非均匀变异、均匀变异、高斯变异或收缩变异中的一种或多种变异。
在一些实施例中,对于表示为解析树的候选程序,随机选择解析树的子树/分支以进行变异运算。随机生成的子树或分支将替换所选的子树。即,当选择内部节点时,所选择的内部节点下的整个分支,即内部节点下的所有子节点,都由变异运算中的另一子树替换。在一些其它实施例中,解析树的节点是随机选择的,并且只有所选择的节点由另一随机生成的节点替换。例如,可以用随机生成的功能标签替换非终端标签的功能标签。所选节点的子节点(如果有的话)将不会用于变异。
在一些实施例中,只有解析树的叶节点(或终端节点)被选择用于变异。叶节点是随机选择的,或者是基于某些限制选择的。例如,叶节点被选择的机会与解析树的叶节点和根节点之间的距离有关。在一些实施例中,距离根节点位置较远的叶节点,例如其间的更多内部节点,被选择用于变异的机会较高。在一些其它实施例中,距离根节点位置较远的叶节点被选择用于变异的几率较低。
在一些实施例中,内部节点被选择用于变异的机会与内部节点的高度,例如,内部节点与内部节点下的叶节点之间的最长距离有关。例如,高度较大的内部节点可能更有可能被选择用于变异。又如,高度较大的内部节点可能不太可能被选择用于变异。
在解析树中选择用于变异运算的节点的其它方法也是可行的,并且包括在本文的范围内。在一些实施例中,如本文所述,可以由控制器350来配置和调整选择用于变异的候选程序的分量的方法。
在示例子动作426中,随机程序生成单元320随机生成用于Gp+1代的候选程序。
在示例动作430中,适应度测量单元340获得针对候选程序的适应度得分。在一些实施例中,可以使用相同的适应度函数,如函数(1)或函数(2),来获得Gp代母候选程序、Gp+1代子候选程序和G0代初始候选程序的适应度得分。在一些实施例中,可以使用不同的适应度函数。在一些实施例中,适应度函数包括与以下中的一个或多个因数有关的因素:候选正则表达式的简洁性,(例如,候选正则表达式的长度);候选正则表达式在正示例数据串上的第一匹配率;候选正则表达式在反示例数据串上的第二匹配率;或候选正则表达式与示例数据串之间的编辑距离。
在示例子动作432中,可选地,适应度测量单元340基于新候选程序的适应度得分过滤新候选程序。例如,可以从Gp+1代候选程序的群体中去除适应度得分较低的新候选程序。在一些实施例中,针对新候选程序的第一子集、第二子集和第三子集单独进行过滤操作,从而维护新候选程序的第一子集、第二子集和第三子集之间的比率大小。
将动作420、430一起称为一轮遗传运算或演变。遗传运算是迭代地进行的,每轮遗传运算或演变都会生成新一代的候选程序。控制器350可以设置完成或终止迭代遗传运算的阈值条件。例如,阈值条件包括迭代总数达到阈值数或候选程序的适应度得分达到阈值适应度得分。阈值条件也可以包括一轮遗传运算不会产生新益处(benefits)。新益处包括适应度得分,无论是个体得分还是平均得分都得到了提高。新益处也包括与任何现有候选程序不同的新候选程序。
在示例动作440中,控制器350确定是否已经满足完成迭代遗传运算的阈值条件。如果任何一个阈值条件也没有满足,则控制器350控制遗传运算继续进行迭代。如果满足了一个或多个阈值条件,则控制器350控制遗传运算完成。
在示例动作450中,在遗传运算完成之后,程序生成模块选择具有最高适应度得分的候选程序作为最终模式程序。将最终模式程序被输出到提取模块124,以对数据流130进行命名实体识别任务。
图5示出了另一示例处理500。处理500包括示例处理400之外的附加动作。示例处理500中的示例动作410、420、430、440和450与处理400中的那些动作相似,为了简单起见,对于处理500,将省略对相似动作的描述。
在完成一轮遗传运算,例如,动作420和430之后,控制器350可以使操作路由(route)至动作510,其中调整单元352评估在这一轮遗传运算中生成的候选程序以确定是否应该调整迭代遗传运算。具体地,在子动作512中,调整单元352获得Gp+1代中所有子候选程序的平均适应度得分。将该平均适应度得分与母Gp代候选程序的平均适应度得分进行比较。如果Gp+1代的平均适应度得分小于Gp代的平均适应度得分,则可以调整遗传算法的参数。
在子动作514中,调整单元352评估对示例数据串的重新分组。在一些实施例中,调整单元352关于正示例数据串是否与Gp+1代中的候选程序匹配来分析每个正示例数据串。针对每个正示例数据串获得匹配率,该匹配率被计算为正示例数据串与候选程序之间相对于Gp+1代中候选程序的总数的匹配数。可以由控制器350设置阈值匹配率,例如50%匹配。可以将匹配率高于阈值匹配率的正示例数据串重新分组为“突破(conquered)”组,其指示Gp+1代候选程序的提取行为或“基因”通常适合特定的正示例数据串。可以将匹配率低于阈值匹配率的正示例数据串重新分组为“未突破(unconquered)”组,其指示Gp+1代候选程序的提取行为或“基因”通常与特定正示例数据串不匹配。突破组的正示例数据串可用于进一步的遗传运算,例如,用于候选程序的适应度得分的计算。未突破组的正示例数据串可用于在单独的遗传运算中获得另一模式程序。
在子动作516中,调整单元352基于候选程序在不同组的正示例数据串上的提取行为来评估候选程序的重新分组。例如,针对每组示例数据串,计算候选程序的适应度得分和/或阳性匹配率。针对每组示例数据串,基于候选程序的适应度得分或阳性匹配率,对候选程序进行分组。例如,候选程序对于第一组正示例数据串具有70%的匹配率,而对于第二组正示例数据串具有20%的匹配率。可以将候选程序分组为适于提取由第一组正示例数据串表示的目标数据类别的候选程序。可以将一组候选程序用于该组内的遗传运算。例如,候选程序只能与同一组中的另一候选程序配对以进行交叉繁殖运算。
示例数据串或候选程序的重新分组可能导致并行进行多个遗传运算,并且由多个遗传运算生成多个最终模式程序。在一些实施例中,可以在提取任务中通过“或”的功能来链接多个最终模式程序。
在示例动作520中,控制器350基于动作510的评估结果来确定是否应当对遗传运算进行调整。如果确定应当进行一个或多个调整,则控制器350实现对动作410或动作420的调整。例如,对正示例数据串的重新分组可以被用于调整从动作420开始的遗传运算。例如,多个遗传运算开始并行运行。突破组和未突破组的正示例数据串也可以用于在动作410处重塑候选程序的初始群体。调整程序生成模块122的操作的其它方法也是可行的,并且包括在本发明的范围内。
学习单元360配置为在进一步训练遗传运算时与控制器350一起发挥作用。例如,可以将诸如正确的提取结果和不正确的提取结果等训练数据用作训练数据串。可以选择一代候选程序作为候选程序的初始训练群体以开始训练操作。在一些实施例中,将最后一代候选程序用作初始训练群体。在一些实施例中,图4或图5的处理400、500可以在候选程序的初始训练群体上使用训练数据串进行类似运行。训练操作生成新的最终模式程序,该程序可以克服以前的模式程序在提取不正确的数据串时的缺点。
前述实施例中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型的实施设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或这些设备的任意组合。
对于装置中每个模块的功能和作用的实施过程,可以参考前述方法中相应步骤的实施过程。为了简单起见,这里省略了细节。
由于装置实施例基本上与方法实施例相对应,因此对于相关部分,可以参考方法实施例中的相关描述。前述装置实施例仅仅是示例。作为单独部件描述的模块可以是或可以不是物理上分离的,并且作为模块显示的部件可以是或可以不是物理模块,可以位于一个位置,或可以分布在多个网络模块上。可以基于实际需求选择一些或所有模块,以实现本文中方案的目的。本领域的普通技术人员无需创造性劳动就可以理解和实现本申请的实施例。
本文中描述的技术产生一种或多种技术效果。遗传算法对数据串进行处理,每个数据串都精确地表示命名实体识别的目标数据类别。这些技术特征带来了宝贵的技术优势。首先,从遗传算法生成的模式程序将具有量身定制的提取行为,因为通过遗传算法对示例数据串中包含的良好“基因”进行了有效的捕获和延续。这样,生成的模式程序将正确检测并提取目标数据类别的数据串。此外,使用这种示例数据串还减少了处理过程中的人工输入和错误,因为不需要从非代表性数据串中手动识别命名实体。而且,模式程序的初始群体主要是,例如90%是从示例数据串生成的,这显著减少了实现令人满意的模式程序所需的迭代遗传运算量。在大数据和基于云的数据服务时代,节省计算资源对于管理大规模数据流至关重要。
此外,适应度函数考虑模式程序是否匹配反示例数据串,该反示例数据串不是命名实体识别任务的目标。因此,基于适应度函数选择的模式程序将规避通过反示例数据串表示的数据类别。因此,假阳性错误将显著减少,这使得命名实体识别任务的结果更加可靠和有意义。这样,本文的技术是有效且适合于在大规模数据流上执行命名实体识别任务。
该技术在各种示例数据串上进行操作而无需在各种示例数据串之间进行区分,这就产生了模式程序,该模式程序的功能是提取由所有示例数据串表示的目标数据类别。这样,可以完全自主地进行技术性操作,而无需人工干预。如果生成单个模式程序的初始尝试失败,则可以对示例数据串进行重新分组,并且可以基于对先前操作结果的评估来调整遗传运算参数,而无需人工干预。这样,这些技术基于表示由正则表达式待匹配的数据类别的示例数据串来完全自主地生成例如正则表达式的计算机程序。
所描述的主题的实施例可以单独或组合地包括一个或多个特征。例如,在第一实施例中,计算机实现的方法获得候选程序的第一群体;通过对候选程序的第一群体进行迭代遗传运算来生成候选程序的第二群体;以及使用候选程序的第二群体中的第一候选程序从数据流中提取多个第二数据串。迭代遗传运算包括使用适应度函数和多个第一数据串计算候选程序的第二群体中的每个候选程序的适应度得分。适应度函数评估候选程序与多个第一数据串的匹配率。
前述和其它描述的实施例均可以可选地包括以下特征中的一个或多个。
第一特征,可与先前或以下特征中的任一特征组合,指定该方法还包括获得多个第三数据串。多个第三数据串是多个第二数据串的子集。该方法还包括通过使用多个第三数据串对候选程序的第二群体进行迭代遗传运算以生成第二候选程序。
第二特征,可与先前或以下特征中的任一特征组合,指定多个第一数据串包括多个正示例数据串,每个正示例数据串表示命名实体识别任务的目标数据类别。
第三特征,可与先前或以下特征中的任一特征组合,指定多个第一数据串包括多个反示例数据串,每个反示例数据串均表示并非目标数据类别的数据类别。
第四特征,可与先前或以下特征中的任一特征组合,指定适应度函数评估候选程序相对于多个正示例数据串的第一匹配率,以及候选程序相对于多个反示例数据串的第二匹配率。
第五特征,可与先前或以下特征中的任一特征组合,指定该方法还包括将多个第一数据串分为第一组数据串和至少一个第二组数据串;以及使用第一组数据串或至少一个第二组数据串中的每一个数据串对候选程序的第一集合单独进行迭代遗传运算。
第六特征,可与先前或以下特征中的任一特征组合,指定适应度函数进一步评估候选程序的简洁性以及候选程序与多个第一数据串中的数据串之间的编辑距离。
第七特征,可与先前或以下特征中的任一特征组合,指定迭代遗传运算包括交叉繁殖运算和变异运算。
第八特征,可与先前或以下特征中的任一特征组合,指定候选程序的第一群体或候选程序的第二群体中每一个群体中的候选程序是正则表达式。
第九特征,可与先前或以下特征中的任一特征组合,指定为多个第一数据串中的每一个数据串分配权重;以及适应度函数评估多个第一数据串中的每一个数据串的权重。
第十特征,可与先前或以下特征中的任一特征组合,指定第一候选程序在候选程序的第二群体中的适应度得分最高;使用多个第三数据串对候选程序的第二群体进行迭代遗传运算生成候选程序的第三群体;以及第二候选程序在候选程序的第三群体中的适应度得分最高。
第十一特征,可与先前或以下特征中的任一特征组合,指定第二候选程序的适应度得分高于使用多个第一数据串和多个第三数据串中的至少一个数据串计算出的第一候选程序的适应度得分。
第十二特征,可与先前或以下特征中的任一特征组合,指定获得候选程序的第一群体包括基于多个第一数据串获得候选程序的第一群体中的至少一部分。
在第二实施例中,一种系统包括:一个或多个处理器;以及耦接到一个或多个处理器并在其上存储有指令的一个或多个计算机可读存储器,该指令可由一个或多个处理器执行以执行动作。该动作包括:从用户接收多个第一数据串;至少部分地基于多个第一数据串,获得候选程序的第一群体;通过对候选程序的第一群体进行迭代遗传运算来生成候选程序的第二群体,该迭代遗传运算包括使用适应度函数和多个第一数据串计算候选程序的第二群体中的每个候选程序的适应度得分;使用从候选程序的第二群体中选择的第一候选程序从数据流中提取多个第二数据串;向用户提供多个第二数据串;从用户接收多个第三数据串,该多个第三数据串是多个第二数据串的子集;至少部分地基于多个第三数据串和候选程序的第二群体,获得第二候选程序。
在第三实施例中,一种装置包括多个模块和单元。该多个模块和单元包括:初始程序生成单元,其进行操作以获得候选程序的第一群体;合成单元,其进行操作以通过对候选程序的第一群体进行迭代遗传运算来生成候选程序的第二群体;适应度测量单元,其进行操作以使用适应度函数和多个第一数据串计算候选程序的第二群体中的每个候选程序的适应度得分,该适应度函数评估候选程序与多个第一数据串的匹配率;以及提取模块,其进行操作以使用从候选程序的第一群体和候选程序的第二群体中选择的第一候选程序从数据流中提取多个第二数据串。
在第四实施例中,一种非暂时性计算机可读存储介质存储使处理器执行动作的可执行指令,该动作包括:获得候选程序的第一群体;通过对候选程序的第一群体进行迭代遗传运算来生成候选程序的第二群体,该迭代遗传运算包括使用适应度函数和多个第一数据串计算候选程序的第二群体中的每个候选程序的适应度得分;基于候选程序的第二群体中候选程序的适应度得分,将多个第一数据串分为数据串的第一子集和数据串的至少一个第二子集;通过使用数据串的第一子集对候选程序的第二群体进行迭代遗传运算,生成候选程序的第三群体;使用从候选程序的第三群体中选择的第一候选程序,从数据流中提取多个第二数据串。
本文中描述的主题、动作以及操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件,或者其中的一个或多个的组合中实现,包括本文中公开的结构及其结构等同物。本文中描述的主题的实施例可以实现为编码在计算机程序载体上以由数据处理装置执行或控制数据处理装置的操作的一个或多个计算机程序,例如,一个或多个计算机程序指令模块。例如,计算机程序载体可以包括一个或多个计算机可读存储介质,在其上编码或存储有指令。载体可以是有形的非暂时性计算机可读介质,例如磁盘、磁光盘或光盘、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)或其他类型的介质。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电信号、光信号或电磁信号,其生成为对信息进行编码以传输到合适的接收器装置以由数据处理装置执行。计算机存储介质可以是或部分是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或其中的一个或多个的组合。计算机存储介质不是传播信号。
计算机程序也可以称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或解释性语言、或声明或程序性语言;其可以以任何形式部署,包括作为独立程序或者作为模块、组件、引擎、次例程或适合在计算环境中执行的其它单元,该环境可包括在一个或多个位置中由数据通信网络互联的一台或多台计算机。
计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:保存诸如存储在标记语言文档中的一个或多个脚本等其它程序或数据的部分文件中;有问题的程序专用的单个文件中;或者诸如存储一个或多个模块、子程序或部分代码的文件等多个配套文件中。
用于执行计算机程序的处理器例如既包括通用和专用微处理器,又包括任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从耦接到处理器的非暂时性计算机可读介质接收数据以及用于执行的计算机程序的指令。
术语“数据处理装置”涵盖了用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机,或多个处理器或计算机。数据处理装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)或GPU(图形处理单元)。该装置除了包括硬件之外,也可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或其中的一个或多个的组合的代码。
本文中描述的过程和逻辑流程可以由一个或多个计算机或执行一个或多个计算机程序的处理器执行,以通过对输入数据进行操作并生成输出来执行操作。该过程和逻辑流程还可通过专用逻辑电路,例如,FPGA、ASIC或GPU,或通过专用逻辑电路和一个或多个编程计算机的组合来执行。
适用于执行计算机程序的计算机可以以通用或专用微处理器,或者这两者或任何其它类型的中央处理单元为基础。通常,中央处理单元会从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的元件可以包括用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
通常,计算机也会包括或可操作地耦接以从一个或多个存储设备接收数据或将数据传输到一个或多个存储设备。存储设备可以是例如磁盘、磁光盘或光盘、固态驱动器或任何其它类型的非暂时性计算机可读介质。但是,计算机也不必具有此类设备。因此,计算机可以耦接到本地和/或远程的一个或多个存储设备,例如一个或多个存储器。例如,一台计算机可以包括作为计算机集成组件的一个或多个本地存储器,或者计算机可以耦接到位于云网络中的一个或多个远程存储器。此外,计算机也可以嵌入到另一个设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器、或诸如通用串行总线(USB)闪存驱动器等便携式存储设备,这只是列举几项。
组件之间可以直接地或经由一个或多个中间组件,通过彼此可通信地连接,例如电连接或光学连接,而相互“耦接”。如果其中一个组件集成到另一个组件中,则这些组件也可以相互“耦接”。例如,将集成到处理器中的存储组件,例如,L2高速缓存组件,“耦接到”处理器。
为了与用户进行交互,本文中描述的主题的实施例可以在具有显示设备和输入设备的计算机上实现,或配置为与该计算机进行通信,显示设备例如为LCD(液晶显示器)监视器,用于向用户显示信息,输入设备例如为键盘和定位设备,用户可以通过输入设备向计算机提供输入,定位设备例如为鼠标、轨迹球或触摸板。其它类型的设备也可用于与用户进行交互,例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收用户输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档并从用户使用的设备接收文档,例如,通过响应于从网页浏览器接收到的请求将网页发送到用户设备上的网页浏览器,或通过与在诸如智能手机或电子平板电脑等用户设备上运行的app进行交互,来与用户进行交互。计算机也可以通过将文本消息或其它形式的消息发送到诸如运行消息收发程序的智能手机等个人设备,并从用户接收响应消息,来与用户进行交互。
本文结合系统、装置和计算机程序组件使用术语“配置为”。对于一个或多个计算机的系统配置为执行特定操作或动作,是指该系统已在其上安装了软件、固件、硬件或其组合,这些软件、固件、硬件或其组合在操作中使系统执行操作或动作。对于一个或多个计算机程序配置为执行特定操作或动作,是指该一个或多个程序包括指令,其在由数据处理装置执行时,使该装置执行操作或动作。对于专用逻辑电路配置为执行特定操作或动作,是指该电路具有执行操作或动作的电子逻辑。
尽管本文包含许多特定的实施细节,但是不应将这些理解为对所要求保护的范围的限制,而是作为对特定实施例特定的特征的描述,所要求保护的范围由权利要求本身限定。本文中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地在多个实施例中或以任何合适的子组合来实现。而且,尽管以上描述的特征可以以某些组合起作用并且甚至最初是这样主张的,但是在某些情况下,可以从要求保护的组合中删除该组合中的一个或多个特征,并且权利要求书也可以针对子组合或子组合的变型。
类似地,虽然在说明书附图中对各个操作进行了描绘并且将其以特定顺序记载在权利要求书中,但是不应将其理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者要求执行所有图示的操作,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,不应将上述实施例中的各种系统模块和组件的分离理解为在所有实施例中都要求这种分离,并且应当理解的是,所描述的程序组件和系统通常可以在单个软件产品中集成在一起或打包成多个软件产品。
已经对本主题的特定实施例进行了描述。其它实施例也落在以下权利要求书的范围内。例如,权利要求书中记载的动作可以以不同的顺序执行并且仍然能实现期望的结果。例如,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。

Claims (15)

1.一种计算机实现的方法,所述方法包括:
获得候选程序的第一群体;
通过对所述候选程序的第一群体进行迭代遗传运算来生成候选程序的第二群体,所述迭代遗传运算包括使用适应度函数和多个第一数据串计算所述候选程序的第二群体中的每个候选程序的适应度得分,所述适应度函数评估候选程序与所述多个第一数据串的匹配率;以及
使用所述候选程序的第二群体中的第一候选程序从数据流中提取多个第二数据串。
2.根据权利要求1所述的方法,还包括:
获得多个第三数据串,所述多个第三数据串是所述多个第二数据串的子集;以及
通过使用所述多个第三数据串对所述候选程序的第二群体进行所述迭代遗传运算以生成第二候选程序。
3.根据前述任一项权利要求所述的方法,其中,所述多个第一数据串包括多个正示例数据串,每个正示例数据串表示命名实体识别任务的目标数据类别。
4.根据权利要求3所述的方法,其中,所述多个第一数据串包括多个反示例数据串,每个反示例数据串表示并非目标数据类别的数据类别。
5.根据权利要求4所述的方法,其中,所述适应度函数评估所述候选程序相对于所述多个正示例数据串的第一匹配率,以及所述候选程序相对于所述多个反示例数据串的第二匹配率。
6.根据前述任一项权利要求所述的方法,还包括:
将所述多个第一数据串分为第一组数据串和至少一个第二组数据串;以及
使用所述第一组数据串或所述至少一个第二组数据串中的每一个数据串对所述候选程序的第一群体单独进行所述迭代遗传运算。
7.根据前述任一项权利要求所述的方法,其中,所述适应度函数进一步评估所述候选程序的简洁性以及所述候选程序与所述多个第一数据串中的数据串之间的编辑距离。
8.根据前述任一项权利要求所述的方法,其中,所述迭代遗传运算包括交叉繁殖运算和变异运算。
9.根据前述任一项权利要求所述的方法,其中,所述候选程序的第一群体或所述候选程序的第二群体中每一个群体中的候选程序是正则表达式。
10.根据前述任一项权利要求所述的方法,其中:
为所述多个第一数据串中的每一个数据串分配权重;以及
所述适应度函数评估所述多个第一数据串中的每一个数据串的权重。
11.根据权利要求2所述的方法,其中:
所述第一候选程序在所述候选程序的第二群体中的适应度得分最高;
使用所述多个第三数据串对所述候选程序的第二群体进行迭代遗传运算生成了所述候选程序的第三群体;以及
所述第二候选程序在所述候选程序的第三群体中的适应度得分最高。
12.根据权利要求11所述的方法,其中,所述第二候选程序的适应度得分高于使用所述多个第一数据串和所述多个第三数据串中的至少一个数据串计算出的所述第一候选程序的适应度得分。
13.根据权利要求1所述的方法,获得所述候选程序的第一群体包括基于所述多个第一数据串获得所述候选程序的第一群体中的至少一部分。
14.一种系统,包括:
一个或多个处理器;以及
耦接到一个或多个处理器并在其上存储有指令的一个或多个计算机可读存储器,所述指令能够由所述一个或多个处理器执行以执行权利要求1至13中任一项所述的方法。
15.一种装置,所述装置包括用于执行权利要求1至13中任一项所述的方法的多个单元。
CN202080000848.8A 2020-01-07 2020-01-07 利用遗传编程的命名实体识别和提取 Active CN113366511B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/070723 WO2020098827A2 (en) 2020-01-07 2020-01-07 Named entity recognition and extraction using genetic programming

Publications (2)

Publication Number Publication Date
CN113366511A true CN113366511A (zh) 2021-09-07
CN113366511B CN113366511B (zh) 2022-03-25

Family

ID=70733027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080000848.8A Active CN113366511B (zh) 2020-01-07 2020-01-07 利用遗传编程的命名实体识别和提取

Country Status (3)

Country Link
US (1) US11182678B2 (zh)
CN (1) CN113366511B (zh)
WO (1) WO2020098827A2 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520831B2 (en) * 2020-06-09 2022-12-06 Servicenow, Inc. Accuracy metric for regular expression
US20230008868A1 (en) * 2021-07-08 2023-01-12 Nippon Telegraph And Telephone Corporation User authentication device, user authentication method, and user authentication computer program

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090210366A1 (en) * 2005-12-05 2009-08-20 National University Corporation Nagoya University Method of optimizing multiple parameters by hybrid ga, method of data analysys by pattern matching, method of estimating structure of materials based on radiation diffraction data, programs, recording medium, and various apparatus related thereto
CN101710333A (zh) * 2009-11-26 2010-05-19 西北工业大学 基于遗传算法的网络文本分割方法
CN103793747A (zh) * 2014-01-29 2014-05-14 中国人民解放军61660部队 网络内容安全管理中一种敏感信息模板构建方法
CN104408116A (zh) * 2014-11-26 2015-03-11 浪潮电子信息产业股份有限公司 基于遗传算法从大规模高维数据中检测离群数据的方法
CN105740227A (zh) * 2016-01-21 2016-07-06 云南大学 一种求解中文分词中新词的遗传模拟退火方法
CN108234347A (zh) * 2017-12-29 2018-06-29 北京神州绿盟信息安全科技股份有限公司 一种提取特征串的方法、装置、网络设备及存储介质
CN109791570A (zh) * 2018-12-13 2019-05-21 香港应用科技研究院有限公司 高效且精确的命名实体识别方法和装置
CN110321566A (zh) * 2019-07-10 2019-10-11 北京邮电大学 中文命名实体识别方法、装置、计算机设备和存储介质
WO2020193964A1 (en) * 2019-03-26 2020-10-01 Benevolentai Technology Limited Entity type identification for named entity recognition systems
CN111758098A (zh) * 2020-04-24 2020-10-09 支付宝(杭州)信息技术有限公司 利用遗传编程的命名实体识别和提取

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8805877B2 (en) 2009-02-11 2014-08-12 International Business Machines Corporation User-guided regular expression learning
US8239349B2 (en) 2010-10-07 2012-08-07 Hewlett-Packard Development Company, L.P. Extracting data
RU2638634C2 (ru) 2014-01-23 2017-12-14 Общество с ограниченной ответственностью "Аби Продакшн" Автоматическое обучение программы синтаксического и семантического анализа с использованием генетического алгоритма
US20190325316A1 (en) 2019-05-16 2019-10-24 Intel Corporation Apparatus and methods for program synthesis using genetic algorithms

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090210366A1 (en) * 2005-12-05 2009-08-20 National University Corporation Nagoya University Method of optimizing multiple parameters by hybrid ga, method of data analysys by pattern matching, method of estimating structure of materials based on radiation diffraction data, programs, recording medium, and various apparatus related thereto
CN101710333A (zh) * 2009-11-26 2010-05-19 西北工业大学 基于遗传算法的网络文本分割方法
CN103793747A (zh) * 2014-01-29 2014-05-14 中国人民解放军61660部队 网络内容安全管理中一种敏感信息模板构建方法
CN104408116A (zh) * 2014-11-26 2015-03-11 浪潮电子信息产业股份有限公司 基于遗传算法从大规模高维数据中检测离群数据的方法
CN105740227A (zh) * 2016-01-21 2016-07-06 云南大学 一种求解中文分词中新词的遗传模拟退火方法
CN108234347A (zh) * 2017-12-29 2018-06-29 北京神州绿盟信息安全科技股份有限公司 一种提取特征串的方法、装置、网络设备及存储介质
CN109791570A (zh) * 2018-12-13 2019-05-21 香港应用科技研究院有限公司 高效且精确的命名实体识别方法和装置
WO2020193964A1 (en) * 2019-03-26 2020-10-01 Benevolentai Technology Limited Entity type identification for named entity recognition systems
CN110321566A (zh) * 2019-07-10 2019-10-11 北京邮电大学 中文命名实体识别方法、装置、计算机设备和存储介质
CN111758098A (zh) * 2020-04-24 2020-10-09 支付宝(杭州)信息技术有限公司 利用遗传编程的命名实体识别和提取

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ASIF EKBAL 等: "Weighted Vote Based Classifier Ensemble Selection Using Genetic Algorithm for Named Entity Recognition", 《ACM TRANSACTIONS ON ASIAN LANGUAGE INFORMATION PROCESSING》 *
D. GREER 等: "Software release planning: an evolutionary and iterative approach", 《INFORMATION AND SOFTWARE TECHNOLOGY》 *
MALCOLM I.HEYWOOD: "Evolutionary model building under streaming data for classification task:opportunities and challenges", 《GENET PROGRAM EVOLVABLE MACH》 *
许丽丹等: "一种解决命名实体识别数据集类别标记失衡的方法", 《四川大学学报(自然科学版)》 *

Also Published As

Publication number Publication date
WO2020098827A2 (en) 2020-05-22
US11182678B2 (en) 2021-11-23
CN113366511B (zh) 2022-03-25
US20210209480A1 (en) 2021-07-08
WO2020098827A3 (en) 2020-11-12

Similar Documents

Publication Publication Date Title
US20240078386A1 (en) Methods and systems for language-agnostic machine learning in natural language processing using feature extraction
US20210150130A1 (en) Methods for generating natural language processing systems
US12039280B2 (en) Multi-turn dialogue response generation with persona modeling
US10387455B2 (en) On-the-fly pattern recognition with configurable bounds
CN111758098B (zh) 利用遗传编程的命名实体识别和提取
WO2020232861A1 (zh) 命名实体识别方法、电子装置及存储介质
WO2022048363A1 (zh) 网站分类方法、装置、计算机设备及存储介质
US11822590B2 (en) Method and system for detection of misinformation
CN111181922A (zh) 一种钓鱼链接检测方法及系统
CN113366511B (zh) 利用遗传编程的命名实体识别和提取
EP4369245A1 (en) Enhanced named entity recognition (ner) using custom-built regular expression (regex) matcher and heuristic entity ruler
CN109684467A (zh) 一种文本的分类方法及装置
WO2024051196A1 (zh) 恶意代码检测方法、装置、电子设备及存储介质
CN116561298A (zh) 基于人工智能的标题生成方法、装置、设备及存储介质
CN112087473A (zh) 文档下载方法、装置、计算机可读存储介质和计算机设备
US20240119234A1 (en) Systems and methods for sentiment extraction in natural laguage processing based on graph-based models, and indicators for trading platforms
CN116910331A (zh) 请求的识别方法、装置、设备及存储介质
CN114186023A (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