首页> 中国专利> 一种句子生成方法、句子生成装置及智能设备

一种句子生成方法、句子生成装置及智能设备

摘要

本申请公开了一种句子生成方法、装置、智能设备及计算机可读存储介质,其中,该方法包括:获取输入句子;搜索所述输入句子的结构相似句子,其中,所述结构相似句子与所述输入句子的语句结构相似;查找所述结构相似句子的语义相似句子;对所述输入句子进行解析,得到所述输入句子及所述语义结构句子的主语块、谓语及宾语块,并基于此对所述语义相似句子进行改写,以生成新句子;基于预设的筛选条件对新句子进行筛选;将筛选操作后保留下的新句子标注为输入句子的语义相似句子。通过本申请方案,可根据同一输入句子生成多个不同句型的新句子,提升句子生成过程中的可控性,同时节约了句子生成过程中的人力成本。

著录项

  • 公开/公告号CN110309289A

    专利类型发明专利

  • 公开/公告日2019-10-08

    原文格式PDF

  • 申请/专利权人 深圳市优必选科技股份有限公司;

    申请/专利号CN201910782430.6

  • 发明设计人 马力;熊为星;熊友军;

    申请日2019-08-23

  • 分类号

  • 代理机构深圳中一联合知识产权代理有限公司;

  • 代理人黄志云

  • 地址 518000 广东省深圳市南山区学苑大道1001号南山智园C1栋16、22楼

  • 入库时间 2024-02-19 13:58:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-06

    授权

    授权

  • 2019-11-01

    实质审查的生效 IPC(主分类):G06F16/332 申请日:20190823

    实质审查的生效

  • 2019-10-08

    公开

    公开

说明书

技术领域

本申请属于数据处理技术领域,尤其涉及一种句子生成方法、句子生成装置、智能设备及计算机可读存储介质。

背景技术

在人工智能的当前时期,人机交互的智能性成了大家关注的焦点。而智能产品与用户的人机对话中,为了增加句子相似性匹配的覆盖程度,往往需要为每一个编辑好答案的问题设定多条相似问题,因而,这些相似问题的丰富程度对匹配结果的准确性有着至关重要的影响。现有技术中,通常是通过开发及维护人员手动编辑并提前预存答案对应的多条相似问题至智能产品中,这一过程会消耗大量的人力成本。

发明内容

有鉴于此,本申请提供了一种句子生成方法、句子生成装置、智能设备及计算机可读存储介质,可提升句子生成过程中的可控性,同时节约了句子生成过程中的人力成本。

本申请的第一方面提供了一种句子生成方法,包括:

获取输入句子;

获取上述输入句子的依存关系树及预设的语料库中各个句子的依存关系树,分别基于各个句子的依存关系树与上述输入句子的依存关系树的匹配程度,搜索上述输入句子的结构相似句子,其中,上述结构相似句子与上述输入句子的语句结构相似;

查找上述结构相似句子的语义相似句子;

对上述输入句子及上述结构相似句子进行解析,得到上述输入句子及上述结构相似句子的主语块、宾语块及谓语,其中,上述主语块为基于句子的主语及主语的依存成分对句子进行抽取而得,上述宾语块为基于句子的宾语及宾语的依存成分对句子进行抽取而得,上述输入句子的主语块被记为Sinput,上述输入句子的宾语块被记为Oinput,上述输入句子的谓语被记为Pinput,上述结构相似句子的主语块被记为Ssimilar,上述结构相似句子的宾语块被记为Osimilar,上述结构相似句子的谓语被记为Psimilar

对上述语义相似句子进行改写,将出现在上述语义相似句子中的Ssimilar替换为Sinput,Osimilar替换为Oinput,Psimilar替换为Pinput以生成新句子;

基于预设的筛选条件对上述新句子进行筛选;

将筛选操作后保留下的上述新句子标注为上述输入句子的语义相似句子。

本申请的第二方面提供了一种句子生成装置,包括:

获取单元,用于获取输入句子;

搜索单元,用于获取上述输入句子的依存关系树及预设的语料库中各个句子的依存关系树,分别基于各个句子的依存关系树与上述输入句子的依存关系树的匹配程度,搜索上述输入句子的结构相似句子,其中,上述结构相似句子与上述输入句子的语句结构相似;

查找单元,用于查找上述结构相似句子的语义相似句子;

解析单元,用于对上述输入句子及上述结构相似句子进行解析,得到上述输入句子及上述结构相似句子的主语块、宾语块及谓语,其中,上述主语块为基于句子的主语及主语的依存成分对句子进行抽取而得,上述宾语块为基于句子的宾语及宾语的依存成分对句子进行抽取而得,上述输入句子的主语块被记为Sinput,上述输入句子的宾语块被记为Oinput,上述输入句子的谓语被记为Pinput,上述结构相似句子的主语块被记为Ssimilar,上述结构相似句子的宾语块被记为Osimilar,上述结构相似句子的谓语被记为Psimilar

替换单元,用于对上述语义相似句子进行改写,将出现在上述语义相似句子中的Ssimilar替换为Sinput,Osimilar替换为Oinput,Psimilar替换为Pinput以生成新句子;

筛选单元,用于在生成新句子之后,基于预设的筛选条件对上述新句子进行筛选;

标注单元,用于将筛选操作后保留下的上述新句子标注为上述输入句子的语义相似句子。

本申请的第三方面提供了一种智能设备,上述智能设备包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面的方法的步骤。

本申请的第四方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面的方法的步骤。

本申请的第五方面提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法的步骤。

由上可见,在本申请方案中,首先获取输入句子,然后获取上述输入句子的依存关系树及预设的语料库中各个句子的依存关系树,分别基于各个句子的依存关系树与上述输入句子的依存关系树的匹配程度,搜索上述输入句子的结构相似句子,其中,上述结构相似句子与上述输入句子的语句结构相似,并查找上述结构相似句子的语义相似句子,还要对输入句子及结构相似句子进行解析,得到上述输入句子及上述结构相似句子的主语块、宾语块及谓语,其中,上述主语块为基于句子的主语及主语的依存成分对句子进行抽取而得,上述宾语块为基于句子的宾语及宾语的依存成分对句子进行抽取而得,上述输入句子的主语块被记为Sinput,上述输入句子的宾语块被记为Oinput,上述输入句子的Pinput,上述结构相似句子的主语块被记为Ssimilar,上述结构相似句子的宾语块被记为Osimilar,上述结构相似句子的谓语被记为Psimilar,接着对上述语义相似句子进行改写,将出现在上述语义相似句子中的Ssimilar替换为Sinput,Osimilar替换为Oinput,Psimilar替换为Pinput以生成新句子,最后基于预设的筛选条件对上述新句子进行筛选,并将筛选操作后保留下的上述新句子标注为上述输入句子的语义相似句子。通过本申请方案,可根据同一输入句子生成及拓展多个不同句型/句式的新句子,从而增加某句子相似性转换的覆盖度,提升人机交互中,机器语言自动生成及拓展结构相似句子的种类及数量,从而提高机器语言的响应速度及用户体验感,同时节约了句子生成过程中的人力成本并提高机器语言处理的效率;进一步地,在生成或拓展得到了新句子后,智能设备还会对这些新句子进行筛选,并将筛选通过的句子进行标注以方便后续保存至语料库,为语料库的动态智能扩充打下了基础,为后续新句子的生成提供了更多可能性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的句子生成方法的实现流程示意图;

图2是本申请实施例提供的句子生成装置的结构框图;

图3是本申请实施例提供的智能设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

本发明实施例的一种句子生成方法、句子生成装置及智能设备可应用于机器人、智能手机、平板电脑等能够与用户进行交互的智能产品中,为了说明本申请上述的技术方案,下面通过具体实施例来进行说明。

实施例一

下面对本申请实施例提供的一种句子生成方法进行描述,请参阅图1,本申请实施例中的句子生成方法包括:

在步骤101中,获取输入句子;

在本申请实施例中,上述输入句子可以是用户所输入的句子,例如用户通过文字输入、语音输入或其它输入方式所主动输入的句子;或者,当上述智能设备当前处于互联网连接状态时,上述输入句子还可以是智能设备从互联网上随机抓取的句子,此处不对上述输入句子的获取方式作出限定。

在步骤102中,获取上述输入句子的依存关系树及预设的语料库中各个句子的依存关系树,分别基于各个句子的依存关系树与上述输入句子的依存关系树的匹配程度,搜索上述输入句子的结构相似句子;

在本申请实施例中,上述结构相似句子指的是与上述输入句子的语句结构相似的句子。可选地,为了提高搜索的效率,研发人员可以预先设置一语料库,上述语料库中包含有多条句子,则在步骤102中,可以在预设的语料库中搜索上述输入句子的结构相似句子。在本申请实施例中,为了得到不同句子之间语句结构的相似性,可以先获取上述输入句子的依存关系树及预设的语料库中各个句子的依存关系树,通过该依存关系树来分析语料库中的句子与输入句子在语句结构上的匹配程度。

具体地,上述分别基于各个句子的依存关系树与上述输入句子的依存关系树的匹配程度,搜索上述输入句子的结构相似句子,包括:

A1、获取上述输入句子的依存关系树的所有子路径;

A2、针对语料库中的任一句子,获取上述句子的依存关系树的所有子路径;

其中,上述子路径,指的是依存关系树中任意多个相邻节点之间构成的不包含分支的连线。以下通过一简单的例子作出说明:假定一句子为“1班的我在玩耍”,则其中心词为谓语“在玩耍”,与该谓语“在玩耍”相连的为一主语“我”,该主语“我”相连的有一定语“1班的”,则该句子的依存关系树为:在玩耍-我-1班的。

A3、将具备相同依存关系的子路径划分至同一子路径类别;

其中,上述子路径类别,指的是具备相同依存关系的一类子路径。例如,前文例子中,句子的依存关系树为:“在玩耍-我-1班的”,则对该依存关系树进行拆分后,可以得到“在玩耍-我”、“我-1班的”、“在玩耍-我-1班的”这三条子路径,其相应的依存关系为谓语-主语、主语-定语及谓语-主语-定语,也即,可以相应得到谓语-主语这一子路径类别、主语-定语这一子路径类别及谓语-主语-定语这一子路径类别。在句子较为复杂时,其依存关系树中可能会出现多个相同类别的子路径。例如,句子“1班的我和2班的你在玩耍”,以“在玩耍”这一谓语作为中心词,则可以得到两条属于“谓语-主语”的子路径(分别为“在玩耍-我”及“在玩耍-你”)、两条属于“主语-定语”的子路径(分别为“我-1班的”及“你-2班的”)和两条属于谓语-主语-定语的子路径(分别为“在玩耍-我-1班的”及“在玩耍-你-2班的”)。也即是说,对于属于相同子路径类别的两条子路径来说,并不要求其子路径上各个节点的词语一致,而仅要求该子路径上的节点由相同的依存关系进行连接。

A4、基于以下公式计算上述句子与上述输入句子的依存关系树的相似度:

其中,S为两个句子之间的依存关系树的相似度,上述I为上述句子的依存关系树与上述输入句子的依存关系树中所有子路径构成的集合,上述counti(S1)表示上述句子的依存关系树中属于子路径类别i的子路径的出现次数,上述counti(S2)表示上述输入句子的依存关系树中属于子路径类别i的出现次数,上述meanDeep(i)表示子路径类别i中的各个子路径的首节点到相应的依存关系树的根节点的距离平均值;具体地,上述依存关系树的根节点具体由对应句子的中心词所得,例如,“1班的我在玩耍”这一句子中,“在玩耍”为中心词,其即可作为根节点,则子路径“在玩耍-我”与根节点“在玩耍”的距离为1;子路径“我-1班的”与根节点“在玩耍”的距离为2。

A5、基于各个句子与上述输入句子的依存关系树的相似度确定上述输入句子的结构相似句子,其中,上述结构相似句子与上述输入句子的依存关系树的相似度超过预设的相似度阈值。

其中,此处可以预先设定一相似度阈值,并依次比对各个句子与输入句子的依存关系树的相似度是否超过该相似度阈值;若超过,则可以将该句子确定为结构相似句子。其中,上述相似度阈值是一固定的经验值,也可以是用户基于本次所希望保留的结构相似句子的数量所动态设置的值,此处不作限定;可选地,若所得到的结构相似句子的数量较少,例如,结构相似句子的数量少于预设第一数量,则可以基于预设的调整参数降低上述相似度阈值,并基于降低后的相似度阈值再次确定结构相似句子。可选地,若所得到的结构相似句子的数量较多,例如,结构相似句子的数量多于预设第二数量,则以相似度由高至低的顺序,筛选保留相似度较高的前N个结构相似句子,N为正整数,此处不作限定。

在步骤103中,查找上述结构相似句子的语义相似句子;

在本申请实施例中,在搜索到与输入句子的语句结构较为相似的结构相似句子后,可以进一步继续查找与上述结构相似句子的语义较为接近的语义相似句子。也即,查找与上述结构相似句子的语义相似,但语句结构不同的句子。可选地,可以在上述语料库中进行查找,研发人员在预先设置上述语料库的过程中,可以事先将语义相似的两个以上句子关联起来,并人工标注为互为同义句;这样一来,在本步骤中,即可直接根据语料库中已经标注好的互为同义句的关联关系,快速查找到上述结构相似句子所对应的语义相似句子。

在步骤104中,对上述输入句子及上述结构相似句进行解析,得到上述输入句子及上述结构相似句的主语块、宾语块及谓语;

在本申请实施例中,上述解析包括对上述输入句子的依存关系分析,通过分析句子的依存关系,可以得到一个句子中所包含的各种句子成分,包括主语、谓语、宾语、定语、状语、补语等。进一步地,基于分析所得到的主语及该主语的依存成分,对句子进行抽取,可以得到一个句子的主语块;相应地,基于分析所得到的宾语及宾语的依存成分,对句子进行抽取,可以得到一个句子的宾语块;上述句子的主语块、句子的宾语块及句子的谓语构成这个句子的关键句子成分。具体地,可以通过如下方式抽取出一个句子的主语块及宾语块:

针对主语块,查询句子中是否存在基于主语的定中关系,若存在,则将该基于主语的定中关系所提取出来,得到以主语作为被修饰词的主语块,例如“美丽的风景是人们向往的”这一句子中,“美丽的风景”可作为存在定中关系的主语块;还可以查询句子是否存在基于主语的并列关系,若存在,则将该基于主语的并列关系所提取出来,例如“我和你一起上学”这一句子中,“我和你”可作为存在并列关系的主语块;还可以查询句子是否存在基于主语的动宾关系,也即将该动宾关系这个整体作为句子的主语块,例如“看书是一种好习惯”这一句子中,“看书”可作为存在动宾关系的主语块。

针对宾语块,其抽取过程与上述主语块的抽取过程类似:查询句子中是否存在基于宾语的定中关系,若存在,则将该基于宾语的定中关系所提取出来,得到以宾语作为被修饰词的宾语块,例如“人们向往美丽的风景”这一句子中,“美丽的风景”可作为存在定中关系的宾语块;还可以查询句子是否存在基于宾语的并列关系,若存在,则将该基于宾语的并列关系所提取出来,例如“老师批评了我和你”这一句子中,“我和你”可作为存在并列关系的宾语块;还可以查询句子是否存在基于宾语的动宾关系,也即将该动宾关系这个整体作为句子的宾语块,例如“我喜欢收集邮票”这一句子中,“收集邮票”可作为存在动宾关系的宾语块。

通过上述抽取主语块、宾语块的步骤,可以在遇到复杂句子时,避免丢失该复杂句子的主要内容(例如修饰性内容),保障输入句子的完整性。分别对上述输入句子及结构相似句子进行解析,可以得到输入句子的主语块、宾语块及谓语,以及结构相似句子的主语块、宾语块及谓语。为了方便进行后续的句子改写操作,此处可以将上述输入句子的主语块记为Sinput,将上述输入句子的宾语块记为Oinput,将上述输入句子的谓语记为Pinput,上述结构相似句子的主语块被记为Ssimilar,上述结构相似句子的宾语块被记为Osimilar,上述结构相似句子的谓语被记为Psimilar

在步骤105中,对上述语义相似句子进行改写,将出现在上述语义相似句子中的Ssimilar替换为Sinput,Osimilar替换为Oinput,Psimilar替换为Pinput以生成新句子;

在本申请实施例中,将上述语义相似句子的相关内容替换为上述输入句子的关键句子成分以实现句子的改写,得到新句子。其中,考虑到一个句子的语义的主要由该句子的宾语块、主语块及谓语所决定,因而,为了避免替换错误,上述步骤105包括:

B1、确定上述结构相似句子的关键句子成分与上述输入句子的关键句子成分的对应关系;

B2、在上述语义相似句子中,查找与上述结构相似句子的关键句子成分表述一致的片段作为待替换片段;

B3、基于上述对应关系,将上述语义相似句子中的待替换片段替换为上述输入句子的相应关键句子成分,以生成新句子。

其中,虽然是对语义相似句子的相关内容进行替换,但并不是将语义相似句子中的主语块替换为输入句子中的主语块,而是将语义相似句子中与上述结构相似句子的关键句子成分表述一致的片段作为待替换片段,将这些待替换片段根据事先确定好的对应关系,替换为上述输入句子的对应关键句子成分。具体地,考虑到主语块、宾语块及谓语实际上决定了一个句子的语义,因而,在本申请实施例中,语义相似句子作为与上述结构相似句子的语义较为接近的句子,该语义相似句子中通常也会出现结构相似句子的主语块Ssimilar、宾语块Osimilar及谓语Psimilar,只是其语句结构可能会发生变化。例如,输入句子为主动句,其主语块是“A”、谓语是“B”、宾语块是“C”;结构相似句子与输入句子的语句结构相似,其主语块是“D”、谓语是“E”、宾语块是“F”;语义相似句子与结构相似句子语义类似,但句型结构变为被动句,其主语块是“F”、谓语是“E”、宾语块是“D”;则由于输入句子与结构相似句子的语句结构相似,可以确定其关键句子成分的对应关系为:主语块“A”与“D”相对应,谓语“B”与“E”相对应,宾语块“C”与“F”相对应,显然,如果直接对结构相似句子的关键句子成分作替换的话,所得到的替换后的句子将与之前的输入句子相似度非常高,这样一来就失去了替换的意义。因而,本申请实施例提出以语义相似句子为基础进行改写,其中,被替换片段是基于结构相似句子所确定的,也即,将语义相似句子中出现的从结构相似句子中解析出的关键句子成分替换为从输入句子中解析出的关键句子成分。则在上例中,在上述语义相似句子中找到结构相似句子中所包含的关键句子成分“D”,“D”在结构相似句子中是主语块,但在语义相似句子中是宾语块,也即,此处结构相似句子中的主语块“D”也在语义相似句子中作为宾语块出现,将语义相似句子中的宾语块“D”替换为输入句子中与“D”相对应的主语块“A”;以同样的方式,查找发现语义相似句子中还存在其他在结构相似句子中出现的待替换片段“E”和“F”,对“E”和“F”进行替换,使得语义相似句子中的谓语“E”被替换为输入句子中与“E”相对应的谓语“B”,语义相似句子中的主语块“F”被替换为输入句子中与“F”相对应的宾语块“C”;则最终可根据输入句子(主动句:主语块A-谓语B-宾语块C)生成了新句子(被动句:主语块C-谓语B-宾语块A),该新句子的句型结构为语义相似句子的句型结构,也即被动句;而由于新句子是基于输入句子的关键句子成分对语义相似句子中的相关内容所替换得到的,因而该新句子的语义与输入句子相靠近。

通过这样一种句子生成或拓展的方式,可以得到多个不同句型/句式的新句子,在保障句子相似性转换的覆盖度的前提下,还能够提升智能设备自动生成及拓展的新句子的种类及数量,从而提高机器语言的响应速度及用户体验感。并且,这一新句子的生成过程中,不需要人为对其操作进行干涉,大大节约了句子生成过程中的人力成本。

在步骤106中,基于预设的筛选条件对上述新句子进行筛选;

在本申请实施例中,上述通过步骤101至105所生成的句子最终还是需要让人能够理解,因而,为了提升所生成的新句子的可理解性,在本申请实施例中,可以基于预设的筛选条件对上述新句子进行筛选,以剔除掉有语法错误、可理解性不强的新句子。也即是说,使得新句子能够更加贴近用户的语言环境,帮助智能设备减轻后续与用户交互时的顿涩感。

在步骤107中,将筛选操作后保留下的上述新句子标注为上述输入句子的语义相似句子。

在本申请实施例中,由于新句子的关键句子成分是基于输入句子的关键句子成分所替换得到的,因而该新句子的语义与输入句子相靠近,也即是说,可以认为新句子是输入句子的语义相似句子。基于此,可以在对新句子进行了筛选后,将保留下的新句子标注为上述输入句子的语义相似句子,并将该新句子、该输入句子及所标注的互为同义句的关联关系一同存入上述语料库中,实现语料库的更新。

在第一种应用场景下,由于当新句子出现输入句子中不存在的名词时,新句子发生语法错误的概率会有所提高,基于此,上述步骤106包括:

C1、针对任一新句子,检测上述新句子中是否存在多余名词;

C2、若上述新句子中存在多余名词,则剔除上述新句子;

C3、若上述新句子中不存在多余名词,则保留上述新句子。

其中,上述多余名词为上述输入句子中不存在的名词,从对上述新句子的历史筛选经验中可知当新句子出现输入句子中不存在的名词时,新句子发生语法错误的概率会有所提高;因而,一旦新句子中出现了多余名词,则将上述新句子剔除;反之,若新句子中不存在多余名词,则保留上述新句子。可选地,由于上述新句子是输入句子的同义句,还可以检测上述新句子中是否完整包含了上述输入句子的关键句子成分,若上述新句子中缺少了上述输入句子的关键句子成分的部分内容,则剔除上述新句子;若上述新句子中完整包含上述输入句子的关键句子成分,则保留上述新句子。

在第二种应用场景下,可以通过新句子与输入句子的语义相近程度对新句子进行筛选,基于此,上述步骤106包括:

D1、针对任一新句子,分别获取上述新句子的词向量之和与上述输入句子的词向量之和;

D2、计算上述新句子的词向量之和与上述输入句子的词向量之和的余弦相似度;

D3、根据上述余弦相似度由高至低的顺序,对各个新句子进行排序;

D4、基于上述排序结果,保留前X1个新句子,X1为预设的正整数;检测上述余弦相似度是否大于预设的余弦相似度阈值。

其中,上述新句子的词向量之和与上述输入句子的词向量之和的余弦相似度指示了上述新句子与上述输入句子的语义相似程度,一般认为上述余弦相似度越大,则两个句子之间的语义相似程度越高;反之,若上述余弦相似度越低,则两个句子之间的语义相似程度越低。基于此,可以根据上述余弦相似度由高至低的顺序,对各个新句子进行排序,使得与输入句子的余弦相似度较高的新句子排在前面,与输入句子的余弦相似度较低的新句子排在前面,基于上述排序结果,保留前X1个新句子,X1为预设的正整数。上述X1可以根据用户所期望生成的新句子的数量来进行设置,也可以为一经验值,还可以根据新句子的句子数目来进行设置。也即,上述X1可以是动态变化的,上述X1可以是与新句子的总数目呈现正比例关系,在新句子的总数目较多时,将上述X1设置为一较大值,以相对保留更多的新句子,在新句子的总数目较少时,将上述X1设置为一较小值,以相对保留更少的新句子;进一步地,此处还可以预设一余弦相似度阈值,统计余弦相似度高于上述余弦相似度阈值的新句子的数量,上述X1可以是与高于余弦相似度阈值的新句子的数目呈现正比例关系,此处不作限定,其中,上述余弦相似度阈值也可以后续由用户根据需求而更改,此处不对上述余弦相似度阈值的具体取值作出限定。具体地,计算余弦相似度的过程为:假定上述输入句子由m个词语构成,则对上述m个词语处理后可得到词向量v1,>2,>m;再假定新句子由n个词语构成,则对上述n个词语处理后可得到词向量u1,>2, …,>n,之后采用计算得到余弦相似度,其中,上述词向量的生成过程可以是由用户预先训练好的,此处不作限定。

在第三应用场景下,可以通过新句子的通顺程度对新句子进行筛选,基于此,上述步骤106包括:

F1、针对任一新句子,基于已训练的语言模型及预设的困惑度计算公式计算上述新句子的困惑度,其中,上述困惑度指示了一个句子的通顺程度,上述困惑度计算公式为:

其中,S指示了一个新句子,M为新句子S的长度,p(wi)是新句子S中第i个词语的概率,上述概率基于上述语言模型而得;

F2、根据上述困惑度由低至高的顺序,对各个新句子进行排序;

F3、基于上述排序结果,保留前X2个新句子,X2为预设的正整数。

其中,上述困惑度指示了一个句子的通顺程度,一般认为上述困惑度越大,则该句子的通顺程度越低;反之,若上述困惑度越小,则该句子的通顺程度越高。基于此,可以预设一困惑度阈值,作为判定新句子是否通顺的标准。当然,上述困惑度阈值也可以后续由用户根据需求而更改,此处不对上述困惑度阈值的具体取值作出限定。可选地,上述已训练的语言模型可以是根据已收录的问题语料训练好的长短期记忆网络(Long Short-TermMemory,LSTM)语言模型,针对该LSTM语言模型,其输入数据的格式为词向量与词性向量的拼接,其输出数据为基于输入数据中已给定的若干个词语对下一个词语出现的概率的判定。通过上述LSTM语言模型对新句子进行困惑度的计算,以此来评估新句子的通顺程度,实现不符合语法规范的新句子的过滤。考虑到困惑度在其阈值设定上难以设定一个统一标准,因而,在计算得到各个新句子的困惑度后,可以基于困惑度由小至大的顺序对上述各个新句子进行排序,保留排序靠前的句子,并按此顺序呈现给用户。当然,也可以由智能设备基于困惑度进行智能筛选,则在基于困惑度由小至大的顺序对上述各个新句子进行排序后,可以基于上述排序结果,保留前X2个新句子,X2为预设的正整数。上述X2可以根据用户所期望生成的新句子的数量来进行设置,也可以为一经验值,还可以根据新句子的句子数目来进行设置。也即,上述X2可以是动态变化的,上述X2可以是与新句子的总数目呈现正比例关系,在新句子的总数目较多时,将上述X2设置为一较大值,以相对保留更多的新句子,在新句子的总数目较少时,将上述X2设置为一较小值,以相对保留更少的新句子;进一步地,此处还可以预设一困惑度阈值,统计困惑度低于上述困惑度阈值的新句子的数量,上述X2可以是与低于困惑度阈值的新句子的数目呈现正比例关系,此处不作限定,其中,上述困惑度阈值也可以后续由用户根据需求而更改,此处不对上述困惑度阈值的具体取值作出限定。

需要注意的是,上述三种应用场景所提供的筛选方法可以择一执行,也可以组合执行,例如,先通过第一种应用场景所提供的筛选方法,基于多余名词(和/或输入句子的关键句子成分)对新句子进行一级筛选;随后再通过第二种应用场景所提供的筛选方法,基于余弦相似度所指示的语义相近程度对一级筛选后所保留的新句子进行二级筛选;最后再通过第三种应用场景所提供的筛选方法,基于困惑度所指示的句子通顺程度对二级筛选后所保留的新句子进行三级筛选,只有通过了上述一级筛选、二级筛选及三级筛选的新句子,才可以被存入上述语料库中;进一步地,在上述一级筛选、二级筛选及三级筛选后,还可以加入人工筛选的步骤,由用户进行最后的把关。

由上可见,通过本申请实施例,先通过输入句子的依存关系树搜索出与输入句子的句型结构相似的结构相似句子,再查找出与结构相似句子语义相似的语义相似句子,最后对语义相似句子的相关内容作出替换,使得最终生成的新句子的句型结构保留替换前的语义相似句子的句型结构,而语义则靠近输入句子的语义,从而实现句子的智能生成,不再需要人工编辑语义相近的句子。可以预想,用户在与机器人等智能设备进行互动时,该智能设备可以快速的对用户的每句话进行多次扩展,以得到丰富的句子样本,从而提高机器语言的响应速度及用户体验感。进一步地,在新句子生成后,还可以通过多种方式对新句子进行筛选,避免语料库中被存入有语法错误或与输入句子的语义不相近的句子,可以提升智能设备后续与用户交互时的流畅性及娱乐性,同时为语料库的动态智能扩充打下了基础,为后续新句子的生成提供了更多可能性。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

实施例二

本申请实施例二提供了一种句子生成装置,上述句子生成装置可集成于智能设备中,如图2所示,本申请实施例中的句子生成装置200包括:

获取单元201,用于获取输入句子;

搜索单元202,用于获取上述输入句子的依存关系树及预设的语料库中各个句子的依存关系树,分别基于各个句子的依存关系树与上述输入句子的依存关系树的匹配程度,搜索上述输入句子的结构相似句子,其中,上述结构相似句子与上述输入句子的语句结构相似;

查找单元203,用于查找上述结构相似句子的语义相似句子;

解析单元204,用于对上述输入句子及上述结构相似句子进行解析,得到上述输入句子及上述结构相似句子的主语块、宾语块及谓语,其中,上述主语块为基于句子的主语及主语的依存成分对句子进行抽取而得,上述宾语块为基于句子的宾语及宾语的依存成分对句子进行抽取而得,上述输入句子的主语块被记为Sinput,上述输入句子的宾语块被记为Oinput,上述输入句子的谓语被记为Pinput,上述结构相似句子的主语块被记为Ssimilar,上述结构相似句子的宾语块被记为Osimilar,上述结构相似句子的谓语被记为Psimilar

替换单元205,用于对上述语义相似句子进行改写,将出现在上述语义相似句子中的Ssimilar替换为Sinput,Osimilar替换为Oinput,Psimilar替换为Pinput以生成新句子;

筛选单元206,用于在上述基于上述输入句子的关键句子成分对上述语义相似句子进行句子改写,以生成新句子之后,基于预设的筛选条件对上述新句子进行筛选;

标注单元207,用于将筛选操作后保留下的上述新句子标注为上述输入句子的语义相似句子。

可选地,上述搜索单元202包括:

子路径获取子单元,用于获取上述输入句子的依存关系树的所有子路径,并针对语料库中的任一句子,获取上述句子的依存关系树的所有子路径,其中,上述子路径指的是依存关系树中任意多个相邻节点之间构成的不包含分支的连线;

类别划分子单元,用于将具备相同依存关系的子路径划分至同一子路径类别;

相似度计算子单元,用于基于以下公式计算上述句子与上述输入句子的依存关系树的相似度:

其中,上述I为上述句子的依存关系树与上述输入句子的依存关系树中所有子路径构成的集合,上述counti(S1)表示上述句子的依存关系树中属于子路径类别i的子路径的出现次数,上述counti(S2)表示上述输入句子的依存关系树中属于子路径类别i的出现次数,上述meanDeep(i)表示子路径类别i中的各个子路径的首节点到相应的依存关系树的根节点的距离平均值;

结构相似句子确定子单元,用于基于各个句子与上述输入句子的依存关系树的相似度确定上述输入句子的结构相似句子,其中,上述结构相似句子是语料库中与上述输入句子的依存关系树的相似度超过预设的相似度阈值的句子。

可选地,上述筛选单元206包括:

第一检测子单元,用于针对任一新句子,检测上述新句子中是否存在多余名词,其中,上述多余名词为上述输入句子中不存在的名词;

第一剔除子单元,用于若上述新句子中存在多余名词,则剔除上述新句子;

第一保留子单元,用于若上述新句子中不存在多余名词,则保留上述新句子。

可选地,上述筛选单元206包括:

词向量之和获取子单元,用于针对任一新句子,分别获取上述新句子的词向量之和与上述输入句子的词向量之和;

余弦相似度计算子单元,用于计算上述新句子的词向量之和与上述输入句子的词向量之和的余弦相似度;

第一排序子单元,用于根据上述余弦相似度由高至低的顺序,对各个新句子进行排序;

第二保留子单元,用于基于上述排序结果,保留前X1个新句子,X1为预设的正整数。

可选地,上述筛选单元206包括:

困惑度计算子单元,用于针对任一新句子,基于已训练的语言模型及预设的困惑度计算公式计算上述新句子的困惑度,其中,上述困惑度指示了一个句子的通顺程度,上述困惑度计算公式为:

其中,S指示了一个新句子,M为新句子S的长度,p(wi)是新句子S中第i个词语的概率,上述概率基于上述语言模型而得;

第二排序子单元,用于根据上述困惑度由低至高的顺序,对各个新句子进行排序;

第三保留子单元,用于基于上述排序结果,保留前X2个新句子,X2为预设的正整数。

可选地,上述筛选单元具体用于依次基于上述新句子所包含的名词、上述新句子与上述输入句子的余弦相似度及上述新句子的困惑度对上述新句子进行筛选;则相应地,上述词向量之和获取子单元对上述第一保留子单元所保留的新句子进行处理,且上述困惑度计算子单元对上述第二保留子单元所保留的新句子进行处理。

由上可见,通过本申请实施例,句子生成装置先通过输入句子的依存关系树搜索出与输入句子的句型结构相似的结构相似句子,再查找出与结构相似句子语义相似的语义相似句子,最后对语义相似句子的相关内容作出替换,使得最终生成的新句子的句型结构保留替换前的语义相似句子的句型结构,而语义则靠近输入句子的语义,从而实现句子的智能生成,不再需要人工编辑语义相近的句子。可以预想,用户在与机器人等智能设备进行互动时,该智能设备可以快速的对用户的每句话进行多次扩展,以得到丰富的句子样本,从而提高机器语言的响应速度及用户体验感。进一步地,在新句子生成后,还可以通过多种方式对新句子进行筛选,避免语料库中被存入有语法错误或与输入句子的语义不相近的句子,可以提升智能设备后续与用户交互时的流畅性及娱乐性,同时为语料库的动态智能扩充打下了基础,为后续新句子的生成提供了更多可能性。

实施例三

本申请实施例三提供了一种智能设备,请参阅图3,本申请实施例中的智能设备3包括:存储器301,一个或多个处理器302(图3中仅示出一个)及存储在存储器301上并可在处理器上运行的计算机程序。其中:存储器301用于存储软件程序以及模块,处理器302通过运行存储在存储器301的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器302通过运行存储在存储器301的上述计算机程序时实现以下步骤:

获取输入句子;

获取上述输入句子的依存关系树及预设的语料库中各个句子的依存关系树,分别基于各个句子的依存关系树与上述输入句子的依存关系树的匹配程度,搜索上述输入句子的结构相似句子,其中,上述结构相似句子与上述输入句子的语句结构相似;

查找上述结构相似句子的语义相似句子;

对上述输入句子及上述结构相似句子进行解析,得到上述输入句子及上述结构相似句子的主语块、宾语块及谓语,其中,上述主语块为基于句子的主语及主语的依存成分对句子进行抽取而得,上述宾语块为基于句子的宾语及宾语的依存成分对句子进行抽取而得,上述输入句子的主语块被记为Sinput,上述输入句子的宾语块被记为Oinput,上述输入句子的谓语被记为Pinput,上述结构相似句子的主语块被记为Ssimilar,上述结构相似句子的宾语块被记为Osimilar,上述结构相似句子的谓语被记为Psimilar

对上述语义相似句子进行改写,将出现在上述语义相似句子中的Ssimilar替换为Sinput,Osimilar替换为Oinput,Psimilar替换为Pinput以生成新句子;

基于预设的筛选条件对上述新句子进行筛选;

将筛选操作后保留下的上述新句子标注为上述输入句子的语义相似句子。

假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,分别基于各个句子的依存关系树与上述输入句子的依存关系树的匹配程度,搜索上述输入句子的结构相似句子,包括:

获取上述输入句子的依存关系树的所有子路径,其中,上述子路径指的是依存关系树中任意多个相邻节点之间构成的不包含分支的连线;

针对语料库中的任一句子,获取上述句子的依存关系树的所有子路径;

将具备相同依存关系的子路径划分至同一子路径类别;

基于以下公式计算上述句子与上述输入句子的依存关系树的相似度:

其中,上述I为上述句子的依存关系树与上述输入句子的依存关系树中所有子路径构成的集合,上述counti(S1)表示上述句子的依存关系树中属于子路径类别i的子路径的出现次数,上述counti(S2)表示上述输入句子的依存关系树中属于子路径类别i的出现次数,上述meanDeep(i)表示子路径类别i中的各个子路径的首节点到相应的依存关系树的根节点的距离平均值;

基于各个句子与上述输入句子的依存关系树的相似度确定上述输入句子的结构相似句子,其中,上述结构相似句子是语料库中与上述输入句子的依存关系树的相似度超过预设的相似度阈值的句子。

在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述基于预设的筛选条件对上述新句子进行筛选,包括:

针对任一新句子,检测上述新句子中是否存在多余名词,其中,上述多余名词为上述输入句子中不存在的名词;

若上述新句子中存在多余名词,则剔除上述新句子;

若上述新句子中不存在多余名词,则保留上述新句子。

在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础而提供的第四种可能的实施方式中,上述基于预设的筛选条件对上述新句子进行筛选,包括:

针对任一新句子,分别获取上述新句子的词向量之和与上述输入句子的词向量之和;

计算上述新句子的词向量之和与上述输入句子的词向量之和的余弦相似度;

根据上述余弦相似度由高至低的顺序,对各个新句子进行排序;

基于上述排序结果,保留前X1个新句子,X1为预设的正整数。

在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础而提供的第五种可能的实施方式中,上述基于预设的筛选条件对上述新句子进行筛选,包括:

针对任一新句子,基于已训练的语言模型及预设的困惑度计算公式计算上述新句子的困惑度,其中,上述困惑度指示了一个句子的通顺程度,上述困惑度计算公式为:

其中,S指示了一个新句子,M为新句子S的长度,p(wi)是新句子S中第i个词语的概率,上述概率基于上述语言模型而得;

根据上述困惑度由低至高的顺序,对各个新句子进行排序;

基于上述排序结果,保留前X2个新句子,X2为预设的正整数。

在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础而提供的第六种可能的实施方式中,上述基于预设的筛选条件对上述新句子进行筛选,包括:

依次基于上述新句子所包含的名词、上述新句子与上述输入句子的余弦相似度及上述新句子的困惑度对上述新句子进行筛选;

其中,基于上述新句子所包含的名词进行筛选,包括:

针对任一新句子,检测上述新句子中是否存在多余名词,其中,上述多余名词为上述输入句子中不存在的名词;

若上述新句子中存在多余名词,则剔除上述新句子;

若上述新句子中不存在多余名词,则保留上述新句子;

其中,基于上述新句子与上述输入句子的余弦相似度进行筛选,包括:

针对基于上述新句子所包含的名词对上述新句子进行筛选后所保留的新句子,分别获取上述新句子的词向量之和与上述输入句子的词向量之和;

计算上述新句子的词向量之和与上述输入句子的词向量之和的余弦相似度;

根据上述余弦相似度由高至低的顺序,对各个新句子进行排序;

基于上述排序结果,保留前X3个新句子,X3为预设的正整数;

其中,基于上述新句子的困惑度进行筛选,包括:

针对基于上述新句子与上述输入句子的余弦相似度进行筛选后所保留的新句子,基于已训练的语言模型及预设的困惑度计算公式计算上述新句子的困惑度,其中,上述困惑度指示了一个句子的通顺程度,上述困惑度计算公式为:

其中,S指示了一个新句子,M为新句子S的长度,p(wi)是新句子S中第i个词语的概率,上述概率基于上述语言模型而得;

根据上述困惑度由低至高的顺序,对各个新句子进行排序;

基于上述排序结果,保留前X4个新句子,X4为预设的正整数,其中,X4小于X3

应当理解,在本申请实施例中,所称处理器302可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器 (DigitalSignal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器301可以包括只读存储器和随机存取存储器,并向处理器302 提供指令和数据。存储器301的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器301还可以存储设备类型的信息。

由上可见,通过本申请实施例,智能设备先通过输入句子的依存关系树搜索出与输入句子的句型结构相似的结构相似句子,再查找出与结构相似句子语义相似的语义相似句子,最后对语义相似句子的相关内容作出替换,使得最终生成的新句子的句型结构保留替换前的语义相似句子的句型结构,而语义则靠近输入句子的语义,从而实现句子的智能生成,不再需要人工编辑语义相近的句子。可以预想,用户在与机器人等智能设备进行互动时,该智能设备可以快速的对用户的每句话进行多次扩展,以得到丰富的句子样本,从而提高机器语言的响应速度及用户体验感。进一步地,在新句子生成后,还可以通过多种方式对新句子进行筛选,避免语料库中被存入有语法错误或与输入句子的语义不相近的句子,可以提升智能设备后续与用户交互时的流畅性及娱乐性,同时为语料库的动态智能扩充打下了基础,为后续新句子的生成提供了更多可能性。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。

以上上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号