一种系统化生成标签的方法和系统与流程

文档序号:17476761发布日期:2019-04-20 06:10阅读:209来源:国知局
一种系统化生成标签的方法和系统与流程

本发明涉及计算机技术,更具体而言,涉及一种在大数据平台上系统化生成标签的方法和系统。



背景技术:

在企业的运营过程中,会生成大量的业务数据,这些业务数据中包含了对企业生成状况的记录。企业的决策者可以根据业务数据对运营现状进行判断,辅助决策分析。然而,这些业务数据通常分散在各个部门,如果要将业务数据利用起来,能够为企业运营人员提供决策辅助,则需要将业务数据形成体系以进行管理,这个环节被称为数据资产化。数据资产化的具体含义是将企业的业务数据以成体系的标签的形式存储起来,作为企业的数据资产,用于后续的数据应用开发。

数据资产化的过程中的一个重要手段是根据业务需求生成标签。目前公知的生成标签的方法具有很大的人为性,生成的标签的体系不够完备。



技术实现要素:

根据本发明的一个方面,一种生成标签的方法可以包括:选择第一对象和第二对象;选择行为;根据所述行为,关联所述第一和第二对象,形成所述第一和第二对象之间的关系;选择属性;将所述属性传递到所述关系以形成所述标签。

所述形成所述第一和第二对象之间的关系的步骤包括:将所述第一对象以作为键值名“主语”的键值;将所述行为作为键值名“谓语”的键值;将所述第二对象作为键值名“宾语”的键值;以及将上述与主语、谓语和宾语对应形成的三个键值对存储为体现所述关系的数据结构。

所述第一对象选自于第一集合,所述第二对象选自于第二集合,从第三集合选择所述行为,并且在所述根据所述行为,关联所述第一和第二对象,形成所述第一和第二对象之间的关系的步骤中,根据预定规则排除不合理的“主语-谓语-宾语”的组合。

所述传递操作包括以下步骤:将所述属性关联到所述数据结构,形成代表所述标签的数据包。

所述方法还包括:利用自然语言处理技术调整所述标签。

所述方法还包括:在所述属性被选择之前生成所述属性。

所述生成所述属性的步骤包括:对来自于数据源的词汇进行拆分;对经拆分的词汇标注词性;以及基于预定的标准筛选经标注词性的词汇,以得到符合所述标准的所述属性。

所述自然语言处理技术是rnn算法模型。

根据本发明的一个方面,一种生成标签的系统可以包括:用于选择第一对象和第二对象的模块;用于选择行为的模块;用于根据所述行为,关联所述第一和第二对象,形成所述第一和第二对象之间的关系的模块;用于选择属性的模块;用于将所述属性传递到所述关系以形成所述标签的模块。

所述用于根据所述行为,关联所述第一和第二对象,形成所述第一和第二对象之间的关系的模块包括:用于将所述第一对象以作为键值名“主语”的键值的模块;用于将所述行为作为键值名“谓语”的键值的模块;用于将所述第二对象作为键值名“宾语”的键值的模块;以及用于将上述与主语、谓语和宾语对应形成的三个键值对存储为体现所述关系的数据结构的模块。

所述第一对象选自于第一集合,所述第二对象选自于第二集合,所述系统还包括:用于从第三集合选择所述行为,并且利用所述用于根据所述行为,关联所述第一和第二对象,形成所述第一和第二对象之间的关系的模块,根据预定规则排除不合理的“主语-谓语-宾语”的组合的模块。

所述用于将所述属性传递到所述关系以形成所述标签的模块包括:用于将所述属性关联到所述数据结构,形成代表所述标签的数据包的模块。

所述系统还包括:用于利用自然语言处理技术调整所述标签的模块。

所述系统还包括:用于在所述属性被选择之前生成所述属性的模块。

所述用于在所述属性被选择之前生成所述属性的模块包括:用于对来自于数据源的词汇进行拆分的模块;用于对经拆分的词汇标注词性的模块;以及用于基于预定的标准筛选经标注词性的词汇,以得到符合所述标准的所述属性的模块。

所述自然语言处理技术是rnn算法模型。

根据本发明的一个方面,一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令被计算机执行时能够执行如上所述的方法。

附图说明

图1示出了根据本发明实施例的选择对象和行为以生成关系的流程图。

图2示出了根据本发明实施例的生成属性的流程图。

图3示出了根据本发明实施例的利用所生成的属性和关系形成标签的流程图。

具体实施方式

现在将参照若干示例性实施例来论述本发明的内容。应当理解,论述了这些实施例仅是为了使得本领域普通技术人员能够更好地理解且因此实现本发明的内容,而不是暗示对本发明的范围的任何限制。

如本文中所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实施例”和“一种实施例”要被解读为“至少一个实施例”。术语“另一个实施例”要被解读为“至少一个其他实施例”。

本发明的实施例通过对象-关系-属性(olp)模型来生成标签。

本发明使用如下定义:

·对象(o):对象是指与业务相关的主体或客体,其可按照业务分析的需要或者业务场景来确定。比如零售场景中的人、商品和门店都可以成为对象。在本发明的实施例中,对象能够以特定的数据结构存储在计算机可读的存储器或数据库中。

·关系(l):关系是指对象之间的行为的关系,语法上以“主语-谓语-宾语”的形式存在。关系的主语和宾语通常是对象(比如零售场景中,可以将“人”、“商品”和“门店”作为主语或宾语),谓语可以是所涉及的行为(比如零售场景中,可以将“浏览”、“选购”、“结算”和“评论”等动词作为谓语)。通过确定语法成分,将各语法成分按照“主语-谓语-宾语”的形式两两组合以生成关系,比如“人-浏览-商品”、“人-选购-商品”、“商品-浏览-人”、“商品-选购-人”。在本发明的实施例中,关系能够以特定的数据结构存储在计算机可读的存储器或数据库中。例如,关系可以按照键值对的形式存储起来,比如“人-浏览-商品”这一关系按照json数据格式可以描述为{"subject":"人","predicate":"浏览","object":"商品"}。其中,所述键值对是键值名和键值的集合。

●属性(p):属性是描述对象的特征以及描述对象之间的行为的特征。属性可以来自于业务数据字典。属性可以包括年龄、性别、出生日期、频次、数量和金额等。在本发明的实施例中,属性可以存储在根据本发明来生成标签的系统内的数据库中。

●标签(tag):标签是指能够用计算机系统中的数据结构来实现的对特定对象的描述,在应用层面体现为具有具体值的业务指标。

在本发明的实施例中,属性可以被传递。所述传递操作是指将属性添加到关系上以形成标签。例如,将“频次”传递到“人-购买-商品”这一关系上,形成“人-购买-商品-频次”标签,通过本发明中的自然语言处理模块进行主动或被动语态的语言调整,形成通常语境下比较通顺的标签,比如“人购买商品的频次”标签;例如,将“数量”传递到“商品-购买-人”这一关系上,形成“商品-购买-人-数量”标签,经过主动或被动语态的语言调整,形成通常语境下比较通顺的标签,比如“商品被人购买的数量”或“商品销量”标签;

本发明的实施例提出了一种生成标签的方法,该方法包括以下步骤:

●定义对象和对象之间的行为:

如图1所示,以应用程序中的电商平台为例,可以定义人、商品等多个对象,然后根据业务的需要选择其中的一个或多个对象。以应用程序中的电商平台为例,在主语或宾语可以按照场景枚举出对象“人”和“商品”的基础上,谓语可以按照所涉及的行为枚举出“浏览”、“选购”、“结算”和“评论”等;所述枚举确定了语法成分。本发明的实施例还包括其不同构成模块能完成定义对象并定义对象之间的行为的各步骤的模块。

●生成关系:

根据本发明的实施例,通过枚举确定语法成分后,将各语法成分按照“主语-谓语-宾语”的形式两两组合以生成关系,比如“人-浏览-商品”、“人-选购-商品”、“商品-浏览-人”、“商品-选购-人”。根据本发明的实施例,生成关系的过程中可以包含以下步骤:

(a)构建关系所包含的键值对:

如图1所示,通过程序代码,将“主语”作为键值对的键值名,并将“人”作为键值对的键值,然后对键值对进行赋值,其中,所述赋值操作是指将键值与键值名对应地存储。“谓语”和“宾语”键值对的赋值操作与此类似。

(b)两两组合以生成关系,其中,此处的方法可以包括以下步骤:

主语、谓语、宾语作为键值名可能会有多个键值。例如,“人”“商品”“门店”等可以作为键值名“主语”的键值。可以作为键值名“主语”的键值又称“主语键值”。类似地,可以作为键值名“谓语”或“宾语”的键值可以简称“谓语键值”或“宾语键值”。根据需要,可以分别形成包含不同主语键值、谓语键值或宾语键值的集合。然后由程序代码对这三个集合分别进行遍历,并根据预定义规则排除不合理的配对(例如“人-购买-人”就是不合理的配对),可以生成多个“主语键值-谓语键值-宾语键值”的数据结构。

上述过程可以通过以下代码实现:

本发明的实施例还包括其不同构成模块能完成生成关系的各步骤的模块。

●生成属性:

本发明的实施例所公开的属性来自于包括若干词汇的数据源,其具体过程如下所述。数据源例如可以是通常的业务数据字典。业务数据字典是指存储业务数据的数据库(如mysql)的表头字段清单,以sql数据库为例,一个sql数据库由一个或多个表组成,每个表由第一行的表头字段(比如“id”、“姓名”、“年龄”、“出生地”)和以下各行的数据记录(比如“1”、“周韵”、“23”、“杭州”)组成。表头字段清单就是表头字段的集合,比如{“id”、“姓名”、“年龄”、“出生地”}。数据字典中的字段可以看作为词汇。

本发明的实施例还包括其不同构成模块能完成属性的生成的各步骤的模块。例如,根据本发明的实施例,生成属性的模块进一步包括三个模块:分词模块、词性标记模块以及取词模块。

(1)分词模块:分词模块可通过现有技术中已知的汉语言处理工具(例如一些已知的开源工具)实现分词功能。已知的汉语言处理工具例如包括jieba、snownlp、thulac、nlpir等。根据本发明的一个实施例,分词模块可以将业务数据字典中的词汇进行拆分(业务数据字典中的一些词汇可能不需要拆分)。例如,针对业务数据字典的词汇“下单时间”,通过使用汉语言处理工具,将其拆分为“下单”和“时间”两个词汇。

(2)词性标注模块:此模块采用词性标注集对不需拆分或拆分后的词汇的词性进行标注。所述词性标注集例如是ictclas北大计算所词性标注集。例如词性标注模块可以对“下单”和“时间”分别做词性标注,比如“下单/v”、“时间/n”,其中v代表动词,n代表名词。

(3)取词模块:根据词性筛选的标准,取词模块对已经标注好词性的词汇进行筛选。其中,所述标准例如为只筛选作为名词的词汇。例如,将标注后的名词筛选出来,形成名词字段集(即,属性的集合),比如{“时间”、“金额”、“数量”……}。可以将生成的属性形成属性列表,并存储在数据库中。

图2示出了根据本发明的实施例的生成属性的方法。所述方法包括对来自于数据源的词汇进行拆分;对经拆分的词汇标注词性;以及基于预定的标准筛选经标注词性的词汇,以得到符合所述标准的属性。

●将属性传递到关系以生成标签:

如图3所示,向关系传递属性是指在关系对应的“主语-谓语-宾语”形式的数据结构中添加“属性”,所生成的语法结构为“主语-谓语-宾语-属性”。在具体的实施例中,将属性传递至关系是指将关系对应的数据包中添加一个键值对,并同样存储在json格式的数据包中,例如包含属性和关系的键值名的键值为“人-浏览-商品-频次”,则键值对为{"subject":"人","predicate":"浏览","object":"商品","head":"频次"},或者例如包含属性和关系的键值名的键值为“商品-浏览-人-年龄”,则键值对为{"subject":"商品","predicate":"浏览","object":"人","head":"年龄"}。

将属性传递到关系以生成标签的方法的具体实施例包括以下步骤:

(1)生成包含可能的关系的集合;

(2)生成包含可能的属性的集合;

(3)分别遍历关系的集合和属性的集合,将一属性传递给一关系,形成一标签。

上述过程可以通过以下代码来实施:

换言之,通过以上过程,属性被关联到代表关系的数据结构,形成标签。

本发明的实施例还包括其不同构成模块能完成将属性传递到关系以形成标签的各步骤的模块。

如图3所示,将属性传递到关系后,将所得到数据包作为输入提供给一个自然语言处理模块,该模块从所述数据包中提取键值并对其进行主动或被动语态的语言调整,产生并输出接近自然语言的语句,即为所需要的标签。所述自然语言模块可以是通过作为经典的机器学习算法模型的rnn算法模型将“主语-谓语-宾语-属性”结构的关系整理成通顺的标签。使用rnn算法模型时,首先将若干事先人工设计好的包含“主语-谓语-宾语-属性”成分的标签例子作为语料输入自然语言模块中,以训练该模块,其中事先人工设计好的标签例子的集合可以看作为语料库。然后,自然语言处理模块利用rnn算法模型计算上文得到的“主语-谓语-宾语-属性”结构的数据包和语料库中的标签例子之间的相似度,将相似度大于指定阈值(阈值由算法工程师可以按照想要得到的语句的效果自行调整)的数据包中的键值,按照语料库例子的结构,自动生成对应的语句,所生成的语句就是实际需要的更加通顺的标签。

经过自然语言处理模块的处理后,可以形成自然语境下比较通顺的标签,例如“人浏览商品的频次”、“人浏览商品的年龄分布”等。针对自然语言模块处理后的标签,如果该标签对于业务人员没有实际分析意义,例如“人-浏览-商品-邮箱”,可以删除没有实际意义的标签。

本发明各实施例的方法和系统可以实现为纯粹的软件(例如用java语言来编写的软件程序),也可以根据需要实现为纯粹的硬件(例如专用asic芯片或fpga芯片),还可以实现为结合了软件和硬件的系统(例如存储有固定代码的固件系统)。

本发明的另一个方面是一种计算机可读介质,其上存储有计算机可读指令,所述指令被执行时可实施本发明各实施例的方法。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。要求保护的主题的范围仅由所附的权利要求进行限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1