一种智能家居线性时序逻辑规约生成的方法和装置

文档序号:1544936 发布日期:2020-01-17 浏览:26次 >En<

阅读说明:本技术 一种智能家居线性时序逻辑规约生成的方法和装置 (Method and device for generating linear time sequence logic protocol of smart home ) 是由 卜磊 翟娟 张时雨 张秋萍 赵建华 李宣东 于 2019-09-29 设计创作,主要内容包括:本发明公开了一种由智能家居生成线性时序逻辑规约的方法和装置,用于在智能家居领域中将用户输入的自然语言需求文本转换成线性时序逻辑规约。该方法首先对输入的自然语言文本进行预处理;然后使用自然语言处理技术,生成语法分析树和语法依存关系;识别句子中的各个子句,以及每个子句中的主语、谓语、宾语、布尔运算符、条件变量和时序运算符,生成树形的中间表示形式;最后遍历树结构,自动生成对应的线性时序逻辑规约。本发明解决了普通智能家居用户难以直接提供形式化规约的问题,有效节约时间和人力成本,并且能够弥补现有智能家居物联网验证系统的不足,使得不具备专业知识的普通用户所提出的自然语言需求能够被自动的验证。(The invention discloses a method and a device for generating a linear time sequence logic protocol by an intelligent home, which are used for converting a natural language requirement text input by a user into the linear time sequence logic protocol in the field of the intelligent home. Firstly, preprocessing an input natural language text; then, generating a syntax analysis tree and a syntax dependency relationship by using a natural language processing technology; identifying each clause in the sentence, and subject, predicate, object, Boolean operator, condition variable and time sequence operator in each clause to generate an intermediate representation form of a tree; and finally traversing the tree structure and automatically generating a corresponding linear time sequence logic protocol. The invention solves the problem that common intelligent household users are difficult to directly provide formal conventions, effectively saves time and labor cost, and can make up the defects of the existing intelligent household Internet of things verification system, so that natural language requirements provided by common users without professional knowledge can be automatically verified.)

一种智能家居线性时序逻辑规约生成的方法和装置

技术领域

本发明涉及智能家居领域线性时序逻辑规约的自动生成。

背景技术

快速发展和普及的智能家居技术和设备正在改变着人们的生活,许多IoT平台(如IFTTT、Apple HomeKit等)向普通智能家居用户提供了构建家庭自动化的服务,通过编写规则来连系多种智能家居设备并满足用户复杂的需求。这种技术带来便捷的同时,也引入了一些安全隐患。种类繁多的智能设备通过复杂的用户自定义规则连接在一起,导致系统的行为难以预料,用户无法得知自定义智能家居系统在运作时是否能正确满足自己的需求。而一些不正确的规则或不确定的链式反应,甚至可能导致安全事故,因此对用户自定义智能家居系统进行验证是十分必要的。

使用形式化方法,尤其是模型检验技术,来模拟和验证用户自定义智能家居系统的正确性是一种新兴趋势。现有的研究主要关注如何对系统行为进行建模和验证,但对模型检验的输入,即形式化规约的生成关注较少。

形式化规约的掌握需要大量的学习和训练,对于普通用户来说,书写形式化规约几乎是不可能的,这就导致普通用户想要验证自己的需求成为一个难题。

发明内容

本发明所要解决的问题:提供一种在智能家居领域中将用户的自然语言需求转换成生成线性时序逻辑规约的方法和装置,使得普通用户无需专业学习形式化规约,只需要提供自然语言需求定义的文本即可。

为解决上述问题,本发明采用的方案如下:

根据本发明的一种智能家居线性时序逻辑规约生成的方法,包括以下步骤:

S1:获取领域知识词汇表、语义翻译模板、规约翻译模板、当前场景下的智能家居设备描述信息、以及用户输入的自然语言需求文本;所述领域知识词汇表是系统术语与自然语言的对照表;所述语义翻译模板定义自然语义逻辑子句至逻辑运算子句的翻译对照;所述规约翻译模板定义自然语义逻辑子句至时序运算子句的翻译对照;

S2:依据所述领域知识词汇表将所述自然语言需求文本中的自然语言转换成系统术语;

S3:使用自然语言处理技术分析步骤S2得到的自然语言需求文本,生成语法分析树;

S4:使用语义解析技术识别步骤S3得到的语法分析树中的各个子句,并结合每个子句中的主语、谓语、宾语、布尔运算符、条件变量、时序运算符,生成自然语义逻辑子句树;

S5:依据所述语义翻译模板和规约翻译模板,将所述自然语义逻辑子句树中的自然语义逻辑子句以及自然语义逻辑子句间的关系翻译成线性时序逻辑规约;

所述步骤S4包括以下步骤:

S41:通过对所述语法分析树的句子节点和从句节点中的名词短语和动词短语的识别,将相应的句子节点和从句节点所对应的子树划分出语法子句树;

S42:在所述语法子句树中提取出主语、谓语和宾语;

S43:通过关键词匹配,在所述语法子句树中提取出布尔运算符、条件变量和时序运算符;

S44:根据所述语法分析树,将各个语法子句树中所提取的主语、谓语、宾语、布尔运算符、条件变量、时序运算符,组成自然语义逻辑子句树。

进一步,根据本发明的智能家居线性时序逻辑规约生成的方法,所述步骤S3还包括:

S31:使用自然语言处理技术分析所述自然语言需求文本生成所述语法分析树时,生成语法依存关系;

S32:通过对所述语法依存关系的歧义分析,调整所述语法分析树。

进一步,根据本发明的智能家居线性时序逻辑规约生成的方法,所述步骤S5包括:

S51:依据所述语义翻译模板,将所述自然语义逻辑子句树中的自然语义逻辑子句中的主语、谓语和宾语转换成原子命题;

S52:遍历所述自然语义逻辑子句树的树结构,依据所述规约翻译模板,翻译布尔运算符、条件变量和时序运算符,将各个所述原子命题组合成完整的线性时序逻辑规约。

根据本发明的一种智能家居线性时序逻辑规约生成的装置,包括以下模块:

M1,用于:获取领域知识词汇表、语义翻译模板、规约翻译模板、当前场景下的智能家居设备描述信息、以及用户输入的自然语言需求文本;所述领域知识词汇表是系统术语与自然语言的对照表;所述语义翻译模板定义自然语义逻辑子句至逻辑运算子句的翻译对照;所述规约翻译模板定义自然语义逻辑子句至时序运算子句的翻译对照;

M2,用于:依据所述领域知识词汇表将所述自然语言需求文本中的自然语言转换成系统术语;

M3,用于:使用自然语言处理技术分析模块M2得到的自然语言需求文本,生成语法分析树;

M4,用于:使用语义解析技术识别模块M3得到的语法分析树中的各个子句,并结合每个子句中的主语、谓语、宾语、布尔运算符、条件变量、时序运算符,生成自然语义逻辑子句树;

M5,用于:依据所述语义翻译模板和规约翻译模板,将所述自然语义逻辑子句树中的自然语义逻辑子句以及自然语义逻辑子句间的关系翻译成线性时序逻辑规约;

所述模块M4包括以下步骤:

M41,用于:通过对所述语法分析树的句子节点和从句节点中的名词短语和动词短语的识别,将相应的句子节点和从句节点所对应的子树划分出语法子句树;

M42,用于:在所述语法子句树中提取出主语、谓语和宾语;

M43,用于:通过关键词匹配,在所述语法子句树中提取出布尔运算符、条件变量和时序运算符;

M44,用于:根据所述语法分析树,将各个语法子句树中所提取的主语、谓语、宾语、布尔运算符、条件变量、时序运算符,组成自然语义逻辑子句树。

进一步,根据本发明的智能家居线性时序逻辑规约生成的装置,所述模块M3还包括:

M31,用于:使用自然语言处理技术分析所述自然语言需求文本生成所述语法分析树时,生成语法依存关系;

M32,用于:通过对所述语法依存关系的歧义分析,调整所述语法分析树。

进一步,根据本发明的智能家居线性时序逻辑规约生成的装置,所述模块M5包括:

M51,用于:依据所述语义翻译模板,将所述自然语义逻辑子句树中的自然语义逻辑子句中的主语、谓语和宾语转换成原子命题;

M52,用于:遍历所述自然语义逻辑子句树的树结构,依据所述规约翻译模板,翻译布尔运算符、条件变量和时序运算符,将各个所述原子命题组合成完整的线性时序逻辑规约。

本发明的技术效果如下:

1、本发明提供了将用户的自然语言需求转换成生成线性时序逻辑规约的方法,使得普通用户无需专业学习形式化规约,只需要提供自然语言需求定义的文本,也可以实现用户自定义智能家居系统的正确性验证。

2、本发明所述转换方法对自然语言的歧义性进行了充分的考虑,对英语中歧义导致的附着歧义和连词歧义进行了修正。

附图说明

图1是本发明实施例方法的流程图。

图2是本发明实施例示例需求一经开源工具包输出的语法分析树示例。

图3是本发明实施例示例需求二经开源工具包输出的语法分析树示例。

图4是本发明实施例示例需求二经开源工具包输出的语法依存关系示例。

图5是图3中的语法分析树经图4中的语法依存关系歧义分析调整后的语法分析树示例。

图6是本发明实施例示例需求三经开源工具包输出的语法分析树示例。

图7是本发明实施例示例需求三经开源工具包输出的语法依存关系示例。

图8是图6中的语法分析树经图7中的语法依存关系歧义分析调整后的语法分析树示例。

图9是将图2中的语法分析树转换成自然语义逻辑子句树后的示例。

具体实施方式

下面结合附图对本发明做进一步详细说明。

本发明的智能家居线性时序逻辑规约生成的方法,包括以下五个步骤:

S1:获取数据;

S2:术语替换;

S3:生成语法分析树;

S4:语法分析树转换成自然语义逻辑子句树;

S5:遍历自然语义逻辑子句树生成线性时序逻辑规约。

步骤S1中,获取数据步骤中的数据由五部分组成,分别是领域知识词汇表、语义翻译模板、规约翻译模板、智能家居设备描述信息、以及自然语言需求文本。其中,领域知识词汇表、语义翻译模板、规约翻译模板是由本方法预先设定的;智能家居设备描述信息是当前应用场景下的智能家居设备描述信息,通常由智能家居设备通过网络连接自动提供而获得;自然语言需求文本则是由用户编辑输入的。因此,本发明的方法实际真正的输入仅仅是用户输入的自然语言需求文本。智能家居设备描述信息是由各种不同产商的智能家居设备自身所定义的,可以由智能家居设备自动提供获得,也可以通过手工编辑获得。智能家居设备描述信息包含了设备基本信息定义、设备可访问的数据定义、设备可操作的执行动作。设备基本信息包括但不限于名称、类型、序列号、位置等。

领域知识词汇表是系统术语与自然语言的对照表。这里的系统术语分成两类:第一类是与智能家居设备相关的术语;第二类是与线性时序逻辑规约相关的术语。与智能家居设备相关的术语分名词术语和动词术语。名词术语,比如GAS_CONCENTRATION,表示煤气浓度,相对照的自然语言包括gas concentration,gas level,gas density等。动词术语,比如TurnOn,表示设备开启动作,其相对照的自然语言包括turn on,switch on,activate,open等。与线性时序逻辑规约相关的术语一般为副词,比如线性时序逻辑规约中的时序运算符F,其相对照的自然语言包括eventually,finally等。

语义翻译模板定义自然语义逻辑子句至逻辑运算子句的翻译对照。规约翻译模板定义自然语义逻辑子句至时序运算子句的翻译对照。众所周知,线性时序逻辑规约由原子命题及其原子命题之间的运算组成。线性时序逻辑规约的语法可表示为:

Figure BDA0002221588260000051

其中,p为原子命题;、∧、∨为逻辑运算符,G、X、F、U、→为时序运算符。其中,语义翻译模板对照线性时序逻辑规约中的原子命题的逻辑运算,规约翻译模板则对照线性时序逻辑规约中的原子命题之间的时序运算。比如,下述是语义翻译模板的示例:

自然语义逻辑子句 翻译后的逻辑运算子句
subj be_GreaterThan obj subj>obj
subj be_LessThan obj subj<obj
subj be_TurnOn subj_state=ON
subj be_TurnOff subj_state=OFF

下述为规约翻译模板的示例:

自然语义逻辑子句 翻译后的时序运算子句
φ<sub>1</sub>untilφ<sub>2</sub> φ<sub>1</sub>Uφ<sub>2</sub>
φ<sub>1</sub>beforeφ<sub>2</sub> Fφ<sub>2</sub>→(φ<sub>1</sub>Uφ<sub>2</sub>)
φ<sub>1</sub>afterφ<sub>2</sub> G(φ<sub>2</sub>→Gφ<sub>1</sub>)

自然语言需求文本由用户编辑输入。下述文本是自然语言需求文本的示例:

REQ1:When the gas concentration exceeds 10%,the alarm should beactivated immediately until the gas concentration is below 8%.

REQ2:When the camera gets a new photo,a message should be sent to themobile phone with the photo.

REQ3:The AC cooler in the bedroom and the AC heater in the livingroom shouldn’tbe on simultaneously.

上述自然语言需求文本的示例中,用户定义了三个需求:需求一,当煤气浓度超过10%时,警报器必须立即开启,直到煤气浓度低于8%;需求二,当摄像头拍到新照片时,须将带有照片的信息发送到手机上;需求三,卧室空调制冷器和客厅的空调制热器不能同时开启。

上述自然语言需求文本的示例通过人工转化方式,转换成线性时序逻辑规约如下:

G(GAS_CONCENTRATION>10→X(ALARM_state=ON U GAS_CONCENTRATION<8))

G(CAMERA.NewPhoto=TRUE→MOBILE_PHONE.SendMsg=TRUE)

Figure BDA0002221588260000061

本发明的目标即为将用户输入的自然语言需求文本转换成上述形式的线性时序逻辑规约。

步骤S2术语替换是指依据领域知识词汇表将自然语言需求文本中的自然语言转换成系统术语。因此步骤S2的输入为预先设定的领域知识词汇表和用户输入的自然语言需求文本,输出为术语替换后的自然语言需求文本。具体为在自然语言需求文本中找出领域知识词汇表中对应的自然语言,然后将该自然语言替换成相应的系统术语,比如,需求一中gas concentration在领域知识词汇表中对应的系统术语为GAS_CONCENTRATION,则将自然语言需求文本中所有的gas concentration字符串替换成系统术语GAS_CONCENTRATION。前述三个需求的自然语言需求文本经术语替换后如下:

REQ1:When the GAS_CONCENTRATION exceeds 10%,the ALARM should beactivated immediately until the GAS_CONCENTRATION is below 8%.

REQ2:When the CAMERA gets a new photo,a MESSAGE should be sent to theMOBILE_PHONE with the PHOTO.

REQ3:The AC_COOLER in the BEDROOM and the AC_HEATER in the LIVINGROOMshouldn’t be on simultaneously.

步骤S2术语替换的目的是为了便于后续自然语言处理工具使用,得到更准确的语法分析结果。

步骤S3的输入是步骤S2经术语替换后的自然语言需求文本,输出为语法分析树,具体为,使用自然语言处理技术分析步骤S2得到的自然语言需求文本,生成语法分析树。自然语言处理技术,也就是,NLP(Natural Language Processing),为本领域技术人员所熟悉。本实施例中,采用开源工具包Stanford Parser对句子进行词性标注和语法分析,得到语法分析树。图2是前述三个需求的自然语言需求文本中需求一通过自然语言处理技术分析后得到的语法分析树。图2中,ROOT表示整个句子的根节点;非叶子节点中,S表示句子,SBAR表示从句,NP表示名词短语,VP表示动词短语,WHADVP表示Wh副词短语,DT表示限定词,NN表示名词,VB表示动词,VBZ表示动词第三人称,VBN表示动词过去分词,CD表示数字,MD表示情态动词,RB表示副词,IN表示介词,PP表示介词短语;叶子节点则为句子内容。

歧义性是自然语言的特点之一,这是大多数自然语言处理工作不可避免的问题。歧义性会导致语法分析的结果出错,进而导致生成错误的LTL。很难通过直接对语法分析树进行分析来快速定位歧义。为此,本实施例中,在通过自然语言处理技术分析后得到的语法分析树的同时,通过自然语言处理技术分析后得到语法依存关系,然后通过语法依存关系的歧义分析调整语法分析树。也就是,本实施例在采用开源工具包Stanford Parser对句子进行词性标注和语法分析后,开源工具包Stanford Parser输出语法分析树和语法依存关系,然后依据语法依存关系的歧义分析对语法分析树调整,最终步骤S3的输出为经歧义分析调整后的语法分析树。常见的英语结构歧义有附着歧义和连词歧义。本实施例对语法依存关系的歧义分析针对这两种歧义分别处理如下:

附着歧义:附着歧义是指句子中的某个特殊组分可以附着在语法树上的多个位置。以前述需求二为示例,图3为开源工具包Stanford Parser输出的语法分析树,图4为开源工具包Stanford Parser输出的语法依存关系。人工处理可以很容易看出,图3中虚线标记的介词短语with the PHOTO是对MESSAGE的一种限定。而从图4所虚线标记的语法依存关系可以看出,语法分析却将PHOTO和MOBILE_PHONE关联在一起。在智能设备描述信息的定义中,PHOTO和MOBILE_PHONE之间并无直接关系,而PHOTO属于一种MESSAGE,它们之间存在直接关系。因此借助智能设备描述信息,从语法依存关系中检测到错误后,找到MESSAGE节点,将语法树中的介词短语with the PHOTO移动到了正确的位置。图5为歧义分析调整后的语法分析树。

连词歧义:连词歧义是指由连词连接的并列结构中由于结构关系不同而产生的多种理解。以前述需求三为示例,图6为开源工具包Stanford Parser输出的语法分析树,图7为开源工具包Stanford Parser输出的语法依存关系。人工处理可以很容易看出,AC_COOLER in the BEDROOM与AC_HEATER in the LIVINGROOM是两个并列的名词短语,而从图6所标记的语法分析树和图7所标记的语法依存关系中却把BEDROOM与AC_HEATER in theLIVINGROOM并列在一起。在智能设备描述信息的定义中,BEDROOM的类型是“Location”,而AC_HEATER的类型是“Device”,二者类型不同无法在主语中并列,共享谓语。因此找到最近的类型匹配的名词,即AC_COOLER,因此将连词and及其右侧的节点上移。图8为歧义分析调整后的语法分析树。

为了从语法树中获取到生成线性时序逻辑规约所需的语义和时序信息,步骤S4中使用语义解析技术识别步骤S3得到的语法分析树中的各个子句,并结合每个子句中的主语、谓语、宾语、布尔运算符、条件变量、时序运算符,生成自然语义逻辑子句树。具体步骤如下:

首先步骤S41通过对所述语法分析树的句子节点和从句节点中的名词短语和动词短语的识别,将相应的句子节点和从句节点所对应的子树划分出语法子句树。以图2中需求一的语法分析树为例,S所表示的句子节点和SBAR所表示的从句节点中,通过对名词短语和动词短语的识别,可以找出相应的语法子句“the GAS_CONCENTRATION exceeds 10”、“theGAS_CONCENTRATION is below 8”、“the ALARM should be activated”,从而组成语法子句树,并将该语法子句树的父节点定义为Clause节点。

然后步骤S42中分别处理每个子句。为了减轻不必要的工作量,首先对子句进行词形还原,如“am”、“is”、“was”都将还原为“be”。然后提取出子句中的主、谓、宾语义信息,其中主语由子句中的名词短语获得;谓语由子句中的动词短语获得;宾语由动词短语中的名词短语获得。以前述语法子句“the GAS_CONCENTRATION exceeds 10%”、“the GAS_CONCENTRATION is below 8%”、“the ALARM should be activated”对应的语法子句树为例,可以提取到相应的主语、谓语和宾语分别为{GAS_CONCENTRATION,be_GreaterThan,10%}、{GAS_CONCENTRATION,be_LessThan,10%}、{ALARM,be_TurnOn}。

步骤S43中,对每个子句进行关键词匹配,提取出布尔运算符、条件变量和时序运算符。布尔运算符从否定词中提取,如“not”“never”。条件变量在自然语言中可以从一些关键字中提取,如“if”或“when”后紧跟着Clause节点,那么这个Clause代表着规约满足的条件。时序运算符分为描述单个原子命题的一元运算符,和描述两个或多个原子命题的二元运算符。时序运算符可以从副词中提取,如“always”表示G,“eventually”表示F。

步骤S44中,根据语法分析树,将各个语法子句树中所提取的主语、谓语、宾语、布尔运算符、条件变量、时序运算符,组成自然语义逻辑子句树。以图2中需求一的语法分析树为例,最终得到的自然语义逻辑子句树如图9所示。其中,节点Clause表示自然语义逻辑子句,Clause(R)表示根节点,Clause(C)表示条件变量,Clause(T-B-U)表示带有二元运算符until的节点,Clause(T-U-X)表示带有一元运算符X的节点。

步骤S5遍历自然语义逻辑子句树生成线性时序逻辑规约。具体处理过程如下:

首先在步骤S51中,使用语义翻译模板,在步骤S4得到的自然语义逻辑子句树中,将每个子句的主语、谓语和宾语生成线性时序逻辑规约的原子命题。如果找不到对应的模板,则将该子句结构去掉。以图9中的自然语义逻辑子句树为例,经过步骤S51将得到三个原子命题:

GAS_CONCENTRATION>10,ALARM_state=ON,GAS_CONCENTRATION<8.

然后是步骤S52,自上而下深度优先遍历树结构,使用规约翻译模板,翻译布尔运算符、条件变量和时序运算符,将各个原子命题组合成完整的线性时序逻辑规约。前述三个需求的自然语言需求文本最终生成的线性时序逻辑规约如下:

G(GAS_CONCENTRATION>10→X(ALARM_state=ON U GAS_CONCENTRATION<8))

G(CAMERA.NewPhoto=TRUE→MOBILE_PHONE.SendMsg=TRUE)

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:翻译方法及相关装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!