首页> 中国专利> 自动检测自由文本中的个人信息

自动检测自由文本中的个人信息

摘要

本发明涉及自动检测自由文本中的个人信息,包括:对数字文本文档自动应用命名实体识别(NER)算法,以检测出现在数字文本文档中的命名实体,其中命名实体选自由以下各项组成的组:至少一个个人类型实体,以及至少一个非个人类型实体;通过对包含检测到的命名实体的数字文本文档的句子应用词性(POS)标记算法和依赖性解析算法,自动检测命名实体之间的至少一种关系;自动估计命名实体之间的至少一种关系是否表示个人信息;以及自动发出估计结果的通知。

著录项

  • 公开/公告号CN112560483A

    专利类型发明专利

  • 公开/公告日2021-03-26

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN202011013395.0

  • 申请日2020-09-24

  • 分类号G06F40/295(20200101);G06F40/232(20200101);G06F40/166(20200101);

  • 代理机构11247 北京市中咨律师事务所;

  • 代理人于静;杨晓光

  • 地址 美国纽约

  • 入库时间 2023-06-19 10:24:22

说明书

技术领域

本发明涉及自动文本分析领域。

背景技术

最近全球范围内信息隐私法规的增加已经产生了各种技术,这些技术评估数字存储的信息是否符合这种法规。此外,对敏感数据存储的安全攻击的增长也推动了这些技术的发展,因此组织可以分配资源来保护高风险数据库和存储系统。

这样的技术通过使用复杂的数据分类技术、漏洞扫描和风险评分,提供了关于遵守GDPR、PCI、HIPAA、CCPA、LGPD和其他法规的风险评估工具。

这样的工具之一是IBM公司的Security Guardium Analyzer,该工具旨在通过分析内部部署和云数据库来查找并向用户提供优先的风险信息,从而帮助识别受监管的数据风险。它包括分类引擎,该引擎搜索数据库表内的数据、执行漏洞扫描并发现当前威胁。

相关技术的前述示例和与之相关的限制旨在进行说明而不是排他性的。通过阅读说明书和研究附图,相关领域的其他限制对于本领域技术人员将变得显而易见。

发明内容

结合系统、工具和方法来描述和说明以下实施例及其方面,所述系统、工具和方法是示例性和说明性的,而并不限制范围。

一个实施例涉及一种方法,该方法包括操作至少一个硬件处理器以:将命名实体识别(named-entity recognition)NER算法自动应用于数字文本文档,以检测出现在数字文本文档中的命名实体,其中命名实体选自由以下各项组成的组:至少一个个人类型实体,以及至少一个非个人类型实体;通过对包含检测到的命名实体的数字文本文档的句子应用词性(parts-of-speech)POS标记算法和依赖性解析算法,自动检测命名实体之间的至少一种关系;自动估计命名实体之间的至少一种关系是否表示个人信息;以及自动发出估计结果的通知。

另一实施例涉及一种系统,该系统包括:(a)至少一个硬件处理器;(b)一种计算机可读存储介质,其上包含程序代码,该程序代码可由所述至少一个硬件处理器执行以:将命名实体识别(NER)算法自动应用于数字文本文档,以检测出现在数字文本文档中的命名实体,其中命名实体选自由以下各项组成的组:至少一个个人类型实体,以及至少一个非个人类型实体;通过对包含检测到的命名实体的数字文本文档的句子应用词性(POS)标记算法和依赖项解析算法,自动检测命名实体之间的至少一种关系;自动估计命名实体之间的至少一种关系是否表示个人信息;并自动发出估计结果的通知。

另一实施例涉及一种计算机程序产品,该计算机程序产品包括具有包含在其上的程序代码的计算机可读存储介质,该程序代码可由至少一个硬件处理器执行以:将命名实体识别(NER)算法自动应用于数字文本文档,以检测出现在数字文本文档中的命名实体,其中命名实体选自由以下各项组成的组:至少一个个人类型实体,以及至少一个非个人类型实体;通过对包含检测到的命名实体的数字文本文档的句子应用词性(POS)标记算法和依赖项解析算法,自动检测命名实体之间的至少一种关系;自动估计命名实体之间的至少一种关系是否表示个人信息;并自动发出估计结果的通知。

在一些实施例中,该方法还包括,或者该程序代码还可以执行以:在数字文本文档中,用至少一个个人类型实体的名字的名词替换与至少一个个人类型实体有关的代词。

在一些实施例中,该方法还包括,或者该程序代码还可以执行以:在自动应用NER算法之前,通过以下至少一项自动预处理数字文本文档:检测数字文本文档的主要语言,从而选择NER算法以匹配主要语言;从数字文本文档中删除以下至少一项:空白和技术字符;以及更正数字文本文档中的拼写错误。

在一些实施例中,至少一个非个人类型实体选自由以下各项组成的组:组织、对象、位置、国籍、时间、日期、地址、艺术品、事件、婚姻状况、职业、金钱、语言和数量。

在一些实施例中,该方法进一步包括,或者该程序代码还可以执行以:将不同的命名实体识别(NER)算法自动应用于数字文本文档;并应用一个或多个预定义规则来解决由NER算法与不同的NER算法检测到的命名实体之间的一个或多个冲突。

在一些实施例中,该方法还包括,或者该程序代码还可以执行以:过滤命名实体并且合并至少一些命名实体。

在一些实施例中,所述对命名实体之间的至少一个关系的所述自动检测还包括:利用所应用的依赖性解析算法的结果来确定将每个句子中的每两个命名实体连接起来的依赖性路径;选择位于依赖性路径内的文本表达(textual expression);以及将每个文本表达与从预定义的一组关系类型中选择的关系类型相关联。

在一些实施例中,所述自动估计包括基于以下各项计算数字文本文档的隐私分数,或至少一个个人类型实体中的每一个的隐私分数:与关系类型相关联的第一组预定义分数,其中第一组的每个分数表示相应关系类型是个人信息的一部分的可能性;以及与命名实体相关联的第二组预定义分数,其中第二组的每个分数指示相应的命名实体是个人信息的一部分的可能性。

在一些实施例中,该方法还包括,或者该程序代码还可以执行以:自动检测至少一个个人类型实体包括至少一部分人名;自动将NER算法应用于训练集,该训练集包含多个包含全名的其他数字文本文档,以检测多个个人类型实体和多个非个人类型实体;通过将词性(POS)标记算法和依赖项解析算法应用于多个其他数字文本文档的句子,每个句子都包含多个个人类型实体和多个非个人类型实体中的至少两个命名实体,以自动检测多个个人类型实体与多个非个人类型实体之间的关系;自动生成训练知识图,该训练知识图的节点包括相互关联的多个个人类型实体和多个非个人类型实体的节点,并且其边包括关系中的各个关系;自动生成特定知识图,该知识图的节点包括相互关联的至少一个个人类型实体和至少一个非个人类型实体的节点,并且其边包括至少一个关系中的各个关系;通过交叉引用特定知识图和训练知识图,自动确定至少一个个人类型实体的至少一个全名。

在一些实施例中,所述交叉引用基于以下各项中的至少一项:图形匹配技术以及布尔可满足性问题(SAT)表示和求解技术。

除了上述示例性方面和实施例之外,通过参考附图并通过研究以下详细描述,其他方面和实施例将变得显而易见。

附图说明

在附图中示出了示例性实施例。为了方便和清楚地表示,通常选择附图中所示的部件和特征的尺寸,并且不一定按比例显示。这些附图在下面列出。

图1是根据一个实施例的用于自动检测自由文本中的个人信息的系统的框图;

图2是根据一个实施例的用于自动检测自由文本中的个人信息的方法的流程图;

图3是根据一个实施例的示例性NER、POS标记和依赖性解析结果的图示;

图4是根据一个实施例的用于仅隐式地推断在数字文本文档中提及的个人类型实体的全名的方法的流程图。

具体实施方式

本文公开了自动检测自由文本中的个人信息。该检测利用自然语言处理(NLP)技术的特定配置以及可选地图形理论技术来检测文本中有关真实人物的个人信息的存在。

首先,可将命名实体识别(NER)算法应用于怀疑包含个人信息的数字文本文档,以检测出现在文档中的命名实体。这些命名实体可以包括个人类型实体(即,真实人物的部分或全名)以及其他类型的实体,例如组织、位置或国籍,仅举几个例子。其他示例在下面进一步给出。

接下来,检测命名实体之间的关系,例如一对个人类型实体之间或个人类型实体(person-type entity)与非个人类型实体(non person-type entity)之间的关系。这可以通过将词性(POS)标记算法和依赖性解析算法应用于包含先前检测到的命名实体的文档的句子来执行。此步骤为这些句子中的单词以及单词之间的句法相关性生成POS标签。基于这些产品,可以确定连接每个句子中每两个命名实体的依赖路径,并选择位于该路径内的文本表达。该表达用作每两个实体之间的关系类型的描述符。

然后,可以执行关于实体之间的任何关系类型(人对人或人对非人)是否指示与相应的个人类型实体相关联的个人信息的估计。例如,当检测到人与人的关系时,该关系本身可以被视为这些人之一或两者的个人信息,或者该关系加上人物A的姓名可以被视为人物B的个人信息(例如,“Andrey(安德烈)”和“Orli(奥利)”之间的“已婚”关系可能被视为Andrey和Orli各自的个人信息,甚至即使他们每个人已婚而未指定配偶的事实也可被视为每个人的个人信息)。可选地,为整个文档和/或其中出现的每个个人类型实体计算分数,以量化文档确实包含个人信息,检测到的个人信息的数量和/或个人信息的严重性的概率。

对于仅隐式地提及个人类型实体的文档,例如仅通过名字、姓氏、昵称、首字母缩写等中的一个来提及相应的个人,公开了一种技术来推断个人类型实体的全名。该技术包括对包含完整个人姓名的其他文档进行基于知识图的训练,然后将训练输出与隐式个人类型实体提及的知识图进行比较。

如本文所用,术语“个人信息”(也称为“个人数据”,“个人识别信息”(PII)或“敏感个人信息”(SPI))可以指代与真人有关的任何信息,包括可用于区分或追踪个人身份的信息(a),例如姓名、身份证号、社会保险号、驾照号码、出生日期和地点、母亲的娘家姓、居住地址、互联网协议(IP)地址、电子邮件地址、电话号码或生物特征记录,(b)与某人链接或可链接的信息,例如该人的医疗、教育、财务和就业信息。术语“个人信息”、“个人数据”、PII和SPI是法律概念,而不是技术概念,并且它们的使用和含义可能会因司法管辖区和法规而异。因此,如本发明的用户所期望的,可以方便地调整本发明的实施例以检测自由文本中的各种类型的这种信息。例如,如果用户定义所追求的“个人信息”是提及一个人食用的食物,则可以将NER算法定向为也寻找食物类型实体,并且对命名实体之间的关系进行的检测可以侧重于包括诸如“吃”,“食用”,“消化”或“享用”等词干的文字表达,这些词干表示该人已食用某种食物。

现在参考图1,其示出了根据一个实施例的用于检测自由文本中的个人信息的示例性系统100的框图。系统100可以包括一个或多个硬件处理器102,随机存取存储器(RAM)104以及一个或多个非瞬时性计算机可读存储设备106。

存储设备106上可以存储有程序指令和/或配置为操作硬件处理器102的组件。程序指令可以包括一个或多个软件模块,例如个人信息检测模块108。软件组件可以包括具有各种软件组件和/或驱动器的操作系统,用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等),并促进各种硬件和软件组件之间的通信。

系统100可以通过在处理器102正在执行时将个人信息检测模块108的指令加载到RAM 104中来进行操作。个人信息检测模块108的指令可以使系统100接收自由文本110,处理并输出对文本中包含的个人信息112的估计。

如本文中所描述的系统100仅是本发明的示例性实施例,并且在实践中可以仅以硬件、仅以软件或硬件和软件两者的组合来实现。系统100可以具有比所示更多或更少的组件和模块,可以组合两个或更多组件,或者可以具有不同的组件配置或布置。系统100可以包括使它能够用作可操作计算机系统的任何附加组件,例如母板、数据总线、电源、网络接口卡等(未示出)。系统100的组件可以位于同一地点或分布式的(例如,在分布式计算架构中)。

现在参考图2的流程图讨论个人信息检测模块108的指令,该流程图示出了根据一个实施例的用于检测自由文本中的个人信息的方法200。

方法200的步骤可以以它们出现的顺序执行,也可以以不同的顺序执行(或甚至并行执行),只要该顺序允许从较早的步骤的输出中获得对某个步骤的必要输入即可。另外,方法200的步骤是自动执行的(例如,由图1的系统100执行),除非另外特别说明。

首先,可以例如以数字文本文档(以下称为“文档”)202的形式接收自由文本。如本领域中已知的,术语“自由文本”(也称为“自由格式文本”)是指主要以单词和句子形式编写的文本,与“结构化”文本相反,“结构化”文本通常只是单独存储在数据库表等中的单词或多单词表达。

文档202还可以包括图形(例如,图像、图形、插图等),但是在方法200的后续步骤中可以选择忽略这些图形。可替代地,如本领域中已知的光学字符识别(OCR)可以应用于这些图形,并且出于方法200后续步骤的目的,将识别出的文本视为文档202的一部分。

文档202的接收可以是手动的,例如由用户将文档加载到系统100(图1)中,或者是自动的,例如由系统周期性地(或由一些其他预定义的触发)从存储器或网络存储资源中获取文档。

在可选的预处理步骤204中,可以分析和完善文档202中的文本,以便以后应用NLP技术产生更准确的结果。预处理步骤204可以包括以下动作中的一个或多个:

首先,检测书写文档202的语言。如果文档202中的大多数文本是第一语言,但是某些文本(例如,少于总文本量的5%)是一种或多种其他语言,则出于方法200的目的可以确定文档的主要语言是第一语言。由于当今可用的大多数NER算法都是特定于语言的,因此语言检测可以选择设计为在相关语言上运行的NER算法(将在步骤206中应用)。

第二,去除不必要的元素,例如写空格(例如,大于字符间空间的一个单元的空间)和/或不是文本的一部分而是文本如何保存在数字文件中的技术字符-例如,表示换行符(例如,“\n”),回车符(例如,“\r”),制表符(例如,“\t”)等的字符,如本领域已知的。

第三,例如使用自动拼写检查器来纠正文本中的拼写和印刷错误。

第四,用作为个人类型实体的名字的名词替换与个人类型实体有关的每个代词。例如,考虑以下文本,第二句中使用了代词“他”:

“John(约翰)昨天去了Jessica(杰西卡)的家。他带来了他著名的自制饼干。”

为了使后续的NLP技术正确地分析此文本,可以用“John”代替“他”:

“John昨天去了Jessica的家。John带来了他著名的自制饼干。”

可以通过对文本应用NER和POS标签来促进代词-名词替换,以便检测个人类型实体和文本中每个句子的语法结构。在上面的示例中,“他”被替换为“John”,因为它们都是相应句子的主题,并且可以安全地假设他或她在写“他”时文本作者的意图是“John”。用名词代替代词的类似规则对于本领域技术人员将变得显而易见。

因为代词-名词替换可能需要使用NER和POS标记,所以在下面描述的步骤206和208中,可以选择不将其作为独立步骤执行,而是在将NER和POS标记应用于文档202之后执行。

接下来,在步骤206中,可以将NER(也称为“实体标识”,“实体组块”或“实体提取”)算法应用于文档202,以检测出现在其中的命名实体(本文中也简称为实体)。如本领域中已知的,NER算法可以将提及的命名实体定位并分类为预定类别,例如人、组织、物体、位置、国籍、时间、日期、地址、艺术品、事件、婚姻状况、职业、金钱、语言、数量等。当今的许多NER算法都能够提供具有很高粒度的命名实体分类,例如不仅可以确定某个术语是“物体”,而且确定该物体是“交通工具”、“食品”或“电器”。为了简化讨论,所有不是“人”的实体类型在本文中都称为“非个人实体”。这些非个人实体中的每一个都可以在某些情况下构成个人信息。例如,“<人>在<组织>工作”,“<人>拥有<物体>”,“<人>拥有<数量>个孩子”,“<人>支持<宗教团体>”和“我去了以访问<位置>的<人>”,都可能被视为与该人相关联的个人信息。

NER算法可以是使用基于语言语法的技术和/或统计模型(例如,机器学习)的算法。

可以用于步骤206的突出的NER算法是例如包括在以下软件包中的那些算法:IBM公司的自然语言理解(Natural Language Understanding);德国ExplosionAI GmbH提供的spaCy;以及自然语言工具包(NLTK),在线网址为www.nltk.org,Steven Bird,EdwardLoper and Ewan Klein(2009),“使用Python进行自然语言处理”,O’Reilly Media,Inc.。

可选地,将多种不同的NER算法应用于文档202,以增强对命名实体的检测。如果在不同的NER算法之间关于某个命名实体的分类存在分歧,则可以使用一组预定义规则来决定分歧。例如,如果一个NER算法将“Wendy's”分类为一个组织,而另一个将它冲突地分类为一个人,则预定义规则可能会规定,在人/组织冲突时,某种类型的NER算法(例如,基于机器学习的算法而不是基于语法的算法)更具权威性。可以为各种类型的冲突定义类似的规则,并且此类规则可以考虑所涉及的实体类型和NER算法类型。不同的NER算法之间的另一种形式的分歧可能与检测到的命名实体的长度有关。例如“Neymar da Silva SantosJúnior”和“Neymar Jr”。同样,可以定义一个规则,以便它选择由某种类型的NER算法产生的名称,而不是另一种,或者例如选择更长的名称。

进一步可选地,执行对检测到的命名实体的过滤,以去除对不满足某些预定义标准的命名实体的检测。例如,可以删除少于X个字符(例如三个字符)的命名实体,或包括某些非字母字符的命名实体(例如R2-D2包含数字;但是可以允许使用连字符,因为它们在某些人名中很常见)。另一个例子是使用名字的白名单和/或黑名单,它们分别由提供给真实人物的名字和虚构名字的可用名单组成。如果使用的NER算法仅或主要依赖于文本结构,则可能需要进行此类过滤,因此没有配置为将真实人物实体与虚构名称(例如电影角色名称、神话人物等)区分开。但是,许多现有的NER算法都能够相当可靠地进行区分。

进一步可选地,可以合并相似的命名实体,以处理纯粹由于写作风格而不是由于这些提及是不同的人而在文档202的各个部分中不同地提及某个人(或其他类型的实体)的情况。例如,如果文档202断断续续地提及某人的全名的部分,那么所有这些部分提及都可以转换为该人的全名。例如,如果文档202偶尔提及“JK Rowling(JK罗琳)”,“JoanneRowling(乔安妮·罗琳)”,“Joanne(乔安妮)”,“Joanne R.(乔安妮·R)”和“J.K.Rowling(J.K.罗琳)”,则合并可以包括将这些提及中的每一个替换为“Joanne Rowling”或替换为其特征已预先定义为更期望的(例如,长度、单词数等)的任何一个提及。该合并不应与以下参考图4讨论的用于推断个人类型实体的全名的技术相混淆。本合并适用于文档202确实提及相关人员的全名至少一次的情况,然后用部分名字提及他或她。图4的技术涉及在某个文档中仅有该人的隐式、部分提及是可用的的情况。

当步骤206结束时,它提供检测到的命名实体的输出,每个命名实体作为类和名字的组合给出。可选地,输出还包括在每个发现的句子中每个命名实体的位置的注释。例如,与句子“Pavlova(帕夫洛娃)总是在她的表演后吃Pavlova(帕夫洛娃)”相关的输出可能包括以下3个元组:(Pavlova,人,1-1)和(Pavlova,食物,4-4),表示该个人类型实体Pavlova在句子的单词索引位置1和1之间延伸(即,它是一个单词),而食物类型实体Pavlova在句子的位置4和4之间延伸。当然也可以对符号使用其他类型的索引,例如基于字母的索引。如果需要,位置标记还可以包括句子本身在文档202中的位置。如果根本没有检测到命名实体,或者如果仅检测到非人类型的命名实体,则方法200可以终止,因为文档202很可能不包含个人信息。

在步骤208中,可以检测由步骤206输出的命名实体之间的关系。这可能涉及将POS标记(有时称为“语法标记”或“单词类别歧义消除”)算法和依赖性解析算法至少应用于文档202的句子,每个句子至少包含两个检测到的命名实体。可替代地,可以使用满足两种功能的单个算法。

POS标记算法的应用可以用其语法的词性(例如形容词,介词,副词,连词,冠词,名词,小品词,代词,动词等)标记句子中的单词。POS标记算法还可以标记共同构成词性的多词表达,例如复合名词、复合副词等。

依赖性解析算法的应用可以检测句子的单词之间的句法依赖性(有时称为句法“关系”)。每个依赖关系可能在通常称为“头”的词与依赖于该头并对其进行修饰的另一个词之间。可以由普通的依赖性解析算法检测到的一些示例性关系包括“根”,“名词的子句修饰语”(通常缩写为“acl”),“子句补语”(通常缩写为“ccomp”)以及许多其他关系。

上面提到的示例性软件包,即自然语言理解(Natual language Understanding),spaCy和NLTK,包括可以在步骤208中使用的POS标签和依赖性解析算法。

为了确定命名实体之间的关系,可以如下利用POS标记和依赖性解析的结果:

可以遍历在每个句子中检测到的句法依赖关系,以确定句子中连接每对命名实体(例如一对个人类型命名实体,或者一个个人类型实体和一个非个人类型实体)的依赖性路径。也就是说,成对的命名实体可能不是直接通过单个语法依赖关系直接连接的而是通过一系列在它们之间具有成对依赖关系的单词直接连接的,并且总体上形成了两个命名实体之间的间接连接。

然后,可以基于路径中的单词的POS标签,选择位于依赖路径内的文本表达(具有一个或多个单词)。例如,所选择的文本表达可以具有作为动词或形容词的第一个单词,以及不是命名实体并且在语法上依赖于第一个单词的第二个单词(例如,诸如“work at”之类的表达)。再举一个例子,文本表达“does not work for”中的第一个单词是一个动词,第二个是否定词,第三个和第四个是介词动词。另一个示例是诸如“break out of”之类的表达,它是可以通过与短语词典匹配来检测的短语动词。

例如,考虑句子“J.K.Rowling earned approximately$54million last year(J.K.Rowlin去年赚取大约5400万美元)”,其NER,POS标签和依赖性关系解析结果如图3所示。POS标签算法检测到人物命名实体“J.K.Rowling”和以金钱类型命名的实体“$54million(5400万美元)”。它还将“last year(去年)”检测为日期类型命名实体,但是在此示例中,该类型无关紧要。

依赖性解析算法确认这两个实体通过两个语法依赖性间接连接:“$54million(5400万美元)”的直接对象(dobj)依赖性为“earned(赚取)”,“earned(赚取)”对名义上的主体(nsubj)的依赖性为“J.K.Rowling”

两个命名的感兴趣实体之间的路径是单词“earned approximately(赚取大约)”。为了在该路径中选择文本表达,首先要确定“earned(赚取)”是动词(VBD),因此应成为表达中的第一个单词。单词“approximately(大约)”不是公认的命名实体,而是依赖于“earned(赚取)”(间接通过“$”),因此应用作表达中的第二个单词。因此,所选择的文本表达是“earned approximately(赚取大约)”。在该示例中,路径中的所有单词均已被选择作为文本表达,但实际上,路径可包括一个或多个未被选择作为表达一部分的单词。例如,在“earned approximately(赚取大约)”中,第二个单词可能会被忽略,因为通过透露一个人赚多少钱对个人信息的概念没有多大贡献。

现在回头参考图2。当方法200应用于许多不同的文档时,可能会有大量不同措辞的文本表达。因此,通过较少数量的选项来定义步骤208的关系可能是有利的。因此,可以提供关系类型的预定义列表,并且可以分析所选文本表达与这些类型的相似性,以将每个表达与最相似的类型相关联。如本领域中已知的,相似性分析可以利用NLP技术来确定例如文本表达与预定义的关系类型之间的词汇相似性和/或语义相似性。

预定义的关系类型可以包括可能与个人信息相关联的类型,例如暗示在人物类型命名实体与信息(诸如国民身份证号、社会保险号、驾驶执照号、出生日期和地点、母亲的娘家姓、居住地址、互联网协议(IP)地址、电子邮件地址、电话号码、医疗状况、教育背景、财务数据、就业记录等)之间的关联。仅作为示例,文本表达诸如“work at(工作在)”、“servesas a(充当<角色>)”,“was fired from(被解雇)”,都可能与表示一个人的就业数据的预定义关系类型相关联,例如“employed by(受雇者)”的关系类型。

在步骤210中,可以估计个人类型实体与另一个人类型实体或非个人类型实体之间的每个关系是否指示了某些个人信息,这些个人信息通过以下方式揭示:个人类型实体和关系(例如,“Andrey已婚”);或个人类型的实体,关系以及其他实体(例如“Andrey和Orli结婚”或“Andrey是计算机科学家”)。该估计可以基于一个或多个因素,例如与关系类型相关联的一组预定义分数(在步骤208中确定)和/或与非个人实体类型相关联的一组预定义分数(在步骤206中检测到)。这些分数中的每一个都分别表明关系类型或非个人实体类型揭示或属于个人信息的可能性。例如,表示某人具有某种医疗状况的关系类型可以得到相对较高的分数,而表示某人生活在某个国家中的关系类型可以得到相对较低的分数。关于非个人实体类型,例如,“疾病”类型可以接收相对较高的分数,而“职业”类型可以接收相对较低的分数。

对于文档中按顺序出现个人实体类型、关系以及个人或非个人实体类型的每个实例,可以将关系类型得分和非个人实体类型得分组合为统一分数。分数的组合可以基于简单的加、乘或基于每个用户偏好来放大关系类型分数或非个人实体类型分数的效果的一些其他逻辑。

为了计算文档202中提到的每个人的隐私分数,按照用户的偏好,可以聚合与该个人类型命名实体的实例相关联的统一分数,例如通过简单加法或通过一些更复杂的逻辑。因此,较高的隐私分数将表示对文档202包括关于各个人的大量个人信息的估计,而较低的隐私分数将表示相反的估计。

也有可能整体上计算每个文档202的隐私分数,以指示其包括的估计的个人信息量。这可以通过聚合针对出现在文档中的所有个人类型命名实体而计算出的隐私分数来执行。按照用户的偏好,聚合可以通过简单的加法或通过一些更复杂的逻辑进行。

在步骤212中,可以发布估计结果的通知。这可以包括例如在计算机显示器上显示每个人的隐私分数和/或每个文档的隐私分数,在电子消息中发送分数,将分数作为属性添加到文档202(即,存储文档的数字文件),将分数记录在存储文档和隐私分数数据等的数据库中。可选地,基于通知,可以将文档202手动或自动地转移到符合相关规定的存储位置。例如,如果确定(例如,通过隐私分数超过预定义的阈值)文档202包括居住在欧盟(或受欧盟法规规制,例如GDPR)的个人类型实体的个人信息,则该文档可能会转移到欧盟内部的物理存储中。同样的理由也适用于其他司法管辖区和法规。相反,如果确定文档202没有个人信息,则无论是完全还是就某个法规/管辖权而言,都可以基于各种技术和/或业务考虑将文档转移到物理存储中,而无需考虑法规。

现在参考图4,其示出根据实施例的用于推断仅隐式地在数字文本文档中提及的个人类型实体的全名的方法300的流程图。或者,方法300有时可能无法成功推断出隐含的个人类型实体的全名,但仍可能将答案缩小到可能找到匹配的一小群人,这也许需要额外的人力劳动。方法300的步骤可以是图1的个人信息检测模块108的指令的一部分。

方法300的步骤可以以它们出现的顺序执行,也可以以不同的顺序执行(甚至并行执行),只要该顺序允许从较早的步骤的输出中获取到某个步骤的必要输入即可。另外,方法300的步骤是自动执行的(例如,由图1的系统100执行),除非另有特别说明。

方法300可以与图2的方法200互补,在文档202仅隐式地提及个人类型实体的情况下,例如仅通过名字、姓氏、昵称、首字母缩写等(以下简称“部分”人名)的其中之一来提及个人类型实体,因为前者的输出(即,推断出的全名)用于增强后者的输出(即,关于一个或多个个人类型实体的个人信息估计)。

首先,在方法300中,接收训练集302,该训练集包括多个数字文本文档(以下称为“文档”),其中包括全名。

在可选的预处理步骤304中,可以分析和完善训练集302中的文本,以便NLP技术的后续应用可获得更准确的结果。步骤304本质上与方法200的步骤204类似,除了以下事实:各种预处理操作将应用于多个文档而不是一个文档。相应地,方法200的步骤204的描述在此作必要修改后适用。

在步骤306中,可以将NER算法应用于训练集302,以检测多个个人类型实体和多个非个人类实体。这些文档可以是从与图2的文档202所属的同一组织或同一域中获得的文档,因此这些文档中的至少一个(甚至更好的是,大量文档)可能以其全名提及隐式个人类型实体。例如,文档可以从组织的人力资源部门的数据存储中获取,因此,它们应包含有关许多员工的个人信息,并以其全名提及大多数或所有员工。

步骤306在本质上可以类似于方法200的步骤206,除了以下事实:NER算法应用于多个文档而不是一个文档。相应地,方法200的步骤206的描述在此作必要修改后适用。

当步骤306结束时,它提供多个个人类型实体和多个非个人类型实体的输出,每个实体作为类和名称的组合给出。

在步骤308中,可以通过对多个文档的那些句子应用POS标记算法和依赖项解析算法来检测个人类型实体自身之间,或个人类型实体与非个人类型实体之间的关系(所有类型的关系共同称为“相互关系”),那些句子中包含多个个人类型和非个人类型实体中的一对,该对由两个个人类型实体或一个个人类型实体和一个非个人类型实体组成。

步骤308在本质上可以类似于方法200的步骤208,除了以下事实:POS标记算法和依赖性解析算法被应用于从多个文档中获得的大量句子。因此,方法200的步骤208的描述在作必要修改后在此适用。

在步骤310中,可以生成包括节点和边的训练知识图。训练知识图的节点包括多个个人类型实体以及与多个个人类型实体中的任何一个相关的那些多个非个人类型实体。训练知识图的边继而包括多个个人类型实体和多个非个人类型实体的相互关系。因此,该训练知识图描述了出现在多个文档中的检测到的个人类型对个人类型关系和/或个人类型对非个人类型关系。训练知识图的生成可以利用本领域已知的任何合适的知识图生成软件,该软件被配置为接收节点和边的定义作为输入,并输出该图。值得注意的是,术语“图”并不意味着图需要以图形方式呈现;相反,该图可以纯粹作为表征该图的计算机代码而存在,例如可扩展标记语言(XML)代码或任何其他合适的编程或标记语言的代码。

在步骤310中生成的训练知识图可以存储在非易失性存储器中以供将来使用,例如用于当通过图2的方法200正在分析的文档中检测到部分人名时。

因此,在步骤312中,接收关于检测到部分人名的指示。当提供至少一个个人类型实体的输出时,可以例如在方法200的步骤206的执行期间或之后进行该检测。例如通过对照定义什么被认为是全名和/或部分名的一组规则检查该名称来分析该个人类型实体的名称,以确定其是全名还是部分名。此类规则可能会规定,例如,部分名是满足以下一个或多个条件的名称(全名是不是部分名的任何名称):它仅包含单个词(例如,“Jean(吉恩)”或“Picard(皮卡德)”);它仅包含由连字符连接的两个词(例如“Jean-Luc(吉恩-卢克)”);它由前两个选项中的任意一个组成,再加上一个或多个单个字母(例如“J.Picard”,“J.L.Picard”)或加上一个或多个全部用大写字母表示的单词(例如“JL Picard”)。其他可能的规则对于本领域技术人员将变得显而易见。例如,如本领域中已知的,可以通过正则表达式(RegEx)来实现规则。

在步骤314中,可以分别生成方法200的文档202的特定知识图。该特定知识图的节点包括方法200的步骤206的至少一个个人类型实体以及步骤206的至少一个(通常,多个)非个人类型实体中与至少一个个人类型实体中的任何一个有关的那些非个人类型实体。另外地或可替代地,特定知识图的节点包括彼此相关的方法200的步骤206的多个个人类型实体。特定知识图的边继而包括在方法200的步骤208中确定的成对的实体之间的对应关系,无论是人对人关系还是人对非人关系。因此,描述全部出现在方法200的文档202的至少一个个人类型实体与(a)至少一个个人类型实体中的另一个或(b)至少一个非个人类型实体之间的检测的关系。

从统计学上讲,由于形成训练集的多个文档中的一个或多个文档很可能包括关于方法200的文档202中提到的至少一个个人类型实体的信息,因此文档202和训练集中中包含的信息可以进行交叉引用,以推断出文档202中隐含的个人的全名。

因此,在步骤316中,例如通过交叉引用特定知识图与训练知识图来确定方法200的文档202的至少一个个人类型实体的至少一个全名。

替代地,如果不能确定方法200的文档202的至少一个个人类型实体的单个全名(例如,由于训练集未包括足够的结论信息),则步骤316可确定一组可能的全名,可能的全名可以是至少一个个人类型实体,或者是一组没有全名但具有某些其他特征-例如一组组织中特定分支的所有雇员。

步骤316的交叉引用可以包括例如本领域中已知的一种或多种图形匹配技术。图形匹配技术通常通过搜索与某个较小图(此处为特定知识图)具有最高相似性的较大图(在我们的情况下为训练知识图)的子图来进行操作。合适的图形匹配技术的一个例子是在Cordella,L.P和Foggia,P&Sansone,Carlo(2001)中提出的一种。一种用于匹配大图的改进算法,第三IAPR-TC15模式识别中基于图的表示第三界IAPA-TC15研讨会,149-159。

替代地,交叉引用可以被表示为布尔可满足性问题(“SAT”)。如本领域已知的,这可以通过为特定知识图的每个个人类型实体创建单独的SAT公式(也称为“表达式”)来执行。首先,找到与特定知识图中的相应个人类型实体相关的所有实体的大小为n的集合。例如,如果“Andrey”是个人类型实体,并且他与以下相关:(a)通过与“Israel(以色列)”位置类型实体的“resides in(居住)”关系,(b)通与IBM”组织类型实体“employed by(受雇)”关系“,以及(c)通过与“Orli”个人类型实体的“married to(已婚)”关系,则实体集为{Israel,IBM,Orli}(n=3)。

接下来,对于实体集的每个子集(即2

继续前面的示例,将创建具有以下七个规则的SAT公式:

1.[(X居住在以色列)AND(X受雇于IBM)AND(X与Orli已婚)]

2.OR[(X受雇于IBM)AND(X与Orli已婚)]

3.OR[(X居住在以色列)AND(X与Orli已婚)]

4.OR[(X居住在以色列)AND(X受雇于IBM)]

5.OR(X居住在以色列)

6.OR(X受雇于IBM)

7.OR(X与Orli已婚)

如果多个文档包括关于各种个人类型实体的大量信息,这些信息由这些个人类型实体中的每个与非个人类型实体之间的许多关系表示,则每个个人类型实体的SAT公式可能变得很冗长,包含许多规则。因此,可能期望例如通过将每个可能的子集的大小限制到某个预定范围来减少每个公式的规则数量。例如,如果大小限制在2到5之间,则不会创建上述示例中的规则5-7。尽管这意味着并未探索所有可能性,但所得公式仍然足以可靠地将特定知识图中的部分名称与培训知识图中的全名相关联。

在创建SAT公式之后,如本领域中已知的那样,可以通过从训练知识图中用各种全名评估每个公式的可满足性来解决SAT问题。例如,如果训练知识图包括以下三个个人类型实体的全名:“Andrey Finkelshtein(安德烈·芬克尔施泰因)”,“Eitan Menahem(伊坦·梅纳赫姆)”和“Bar Haim(巴海姆)”,那么上面的7条规则公式将用这三个名称填充,并根据训练知识图检查其条件。即使按照培训知识图的节点和边,所有三个满足“受IBM雇用”和“居住在以色列”的条件,但只有“Andrey Finkelshtein”也满足“与Orli已婚”的条件。因此,“Andrey Finkelshtein”将比“Eitan Menahem”和“Bar Haim”(每个3个)积累更多的TRUE规则检查(7个)。

相应地,确定“Andrey Finkelshtein”是在方法200的文档202中仅以部分名字(“Andrey”)出现的相同个人类型实体的全名可以基于投票过程,其中将选择具有最多TRUE规则检查次数的个人类型实体。或者,可以为具有更多条件的规则赋予更大的权重,以放大其对TRUE检查的最终计数的影响。例如,每个规则可以被赋予等于其条件数量的权重。在上面的示例中,规则编号1将获得3的权重,规则2-4将各自获得2的权重,规则5-7将获得各自1的权重。这将导致“Andrey Finkelshtein”获得3+2+2+2+1+1+1=12票,而“Eitan Menahem”和“Bar Haim”各自只有2+1+1=4票。这不会影响此处给出的简单的3实体示例的投票结果,但是在训练知识图包括许多节点和许多边且多个全名可能满足具有少量条件的那些规则时可能有用。

不管交叉引用采用SAT方法还是图匹配方法,它都可能导致个人类型实体的多个全名匹配。为了确定这些匹配中的哪一个可能是正确的,可以应用一种或多种启发式方法:一种示例性启发式方法是将本领域中已知的字符串相似度算法(例如,Levenshtein距离算法)应用于部分名称和到每个全名中的一个词(可能是该人的名字或姓氏)。例如,假设先前示例中的所有三个全名均被确定为与某个部分名字“Andre”匹配(因为这三个确实碰巧与Orli结婚),则可以将Levenshtein距离算法应用于“Andre”与每个全名的第一个单词匹配:“Andrey”(距离=1),“Eitan”(距离=5)和“Bar”(距离=4)。这意味着“Andrey”是三者中最匹配的,“Andre”可能是拼写错误或Andrey的昵称。

如上所述,在某些情况下,在训练集中可能根本没有足够的信息以能够挑选出与个人类型实体的部分名匹配的全名。因此,如果交叉引用产生了多个全名匹配,则可以将一个上限阈值(T)应用于这些匹配,这样,仅输出T个最匹配的全名(由SAT求解器或图形匹配器输出的“最佳”)并将其呈现给用户。

为了向用户提供甚至更有意义的输出,可以分析先前检测到的多个全名的关系,并且还可以输出表征所有或大多数这些全名的任何关系。例如,所有这些全名可能共享相同的关系,表明它们被专门用于IBM的Haifa研究实验室。这可能是非常有用的输出,因为这意味着某个文档包含有关某个IBM Haifa研究实验室员工的个人信息,即使他或她的全名无法识别。

在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

数值范围的描述应该被认为已经具体公开了所有可能的子范围以及该范围内的各个数值。例如,对范围1到6的描述应视为已明确公开了一些子范围,例如1到3、1到4、1到5、2到4、2到6、3到6等等,以及该范围内的单个数字,例如1、2、3、4、5和6。无论范围的广度如何,都适用。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号