首页 / 文本生成方法、文本检测方法和装置

文本生成方法、文本检测方法和装置公开 发明

技术领域

[0001] 本申请涉及人工智能(Artificial Intelligence,AI)技术领域,尤其涉及一种文本生成方法、文本检测方法和装置。

相关背景技术

[0002] 随着类似于聊天生成预训练转换器(Chat  Generative  Pre‑trained Transformer,ChatGPT)等生成式模型的兴起,越来越多的生成式模型(如大型语言模型(Large Language Model,LLM)等)服务开始出现,但生成式模型在为人们提供了便利的同时,也带来了一些问题,最典型的问题是生成内容的滥用问题。例如,在一些教育场景中,如果学生滥用生成式模型(如利用生成式模型生成学术论文等)会则会导致严重的问题,因此当前迫切地需要一种方法,用于检测一段内容是否是通过生成式模型生成的。
[0003] 目前用于上述生成内容检测的方法主要是检测生成预训练转换器(Detect Generative Pre‑trained Transformer,DetectGPT),其是基于从生成式模型中采样的文本倾向于占据模型的对数概率函数的负曲率区域这一现象,然后定义一个新的基于曲率的标准,用于判断特定的文本是否是从给定的生成式模型生成的。
[0004] 然而该检测方式所依赖的上述现象,可能随着生成式模型训练方式的改变而变化,从而导致上述检测方式失效。

具体实施方式

[0051] 下面结合本申请实施例中的附图对本申请实施例进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
[0052] 本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0053] 下面介绍本申请中涉及的专业术语
[0054] (1)生成式模型:生成式模型学习的是联合概率密度分布,可以从统计的角度表示分布的情况,能够反映同类数据本身的相似度,它不关心到底划分不同类的边界在哪里。其学习收敛速度相对判别式模型更快,当样本容量增加时,学习到的模型可以更快的收敛到真实模型。目前主要的生成式模型包括文本‑图像模型、文本‑3D模型、文本‑文本模型、图像‑文本模型、文本‑视频模型、文本‑音频模型等。本申请中方法可以由文本‑文本模型、图像‑文本模型等实现。
[0055] 请参见图1A‑图1C,图1A‑图1C为本申请实施例提供的几种用于实现本申请方法的系统架构示意图,其可以用于执行本申请中的文本生成方法和文本检测方法。
[0056] 其中,图1A所示的系统包括用户设备110以及数据处理设备120(服务器)。所述用户设备110包括手机、个人电脑、车载终端或者信息处理中心等智能终端。所述用户设备110为自然语言数据处理的发起端,作为文本生成或者文本检测等请求的发起方,通常用户通过用户设备110发起请求。在文本生成方法的实现过程中,用户设备110接收到的用户输入可以是语音、文本、图片、视频等,在文本检测方法的实现过程中,用户设备110接收到的用户输入为文本或语音等。
[0057] 所述数据处理设备120可以是云服务器、网络服务器、应用服务器以及管理服务器等具有数据处理功能的设备或服务器。数据处理设备120通过交互接口接收来自用户设备110的文本生成或文本检测等请求,再通过存储数据的存储器以及数据处理的处理器环节进行机器学习、深度学习、搜索、推理、决策等方式的语言数据处理,来执行本申请中的文本生成方法或文本检测方法,最后将生成的文本或文本检测结果通过网络传递到用户设备
110上,以通知用户。图1A中的存储器可以是一个统称,包括本地存储以及存储历史数据的数据库,所述数据库可以再数据处理设备上,也可以在其它网络服务器上。
[0058] 图1B所示系统中的用户设备110直接作为数据处理设备,直接接收来自用户的输入并直接由用户设备110本身的硬件进行处理,具体过程与图1A相似,可参考上面的描述,在此不再赘述。当生成实模型为大模型时(模型参数多),可以对模型进行轻量化处理,然后再部署到用户设备110上,以适配用户设备110的算力。
[0059] 图1C所示系统包括至少一个本地设备(如本地设备301和本地设备302)、执行设备210和数据存储系统250。其中,本地设备相当于图1A和图1B中的用户设备110,执行设备210相当于数据处理设备120,数据存储系统250可以集成在执行设备210上,也可以设置在云上或其它网络服务器上。
[0060] 请参见图2,图2为本申请实施例提供的另一种系统架构示意图。如图2所示,数据采集设备260用于采集语音数据、视频数据和文本数据,并存入数据库230,训练设备220基于数据库230中维护的语音、视频和文本数据对本申请中相关模型进行训练。
[0061] 其中,本申请中文本生成方法实现过程中使用的模型包括生成式模型201和语言规则模型202,文本检测方法实现过程中使用的模型包括文本检测模型203。进一步,生成式模型201可以是大语言模型LLM,语言规则模型202和语言规则模型202可以是数学模型或神经网络模型。
[0062] 图2给出的示例中,生成式模型201、语言规则模型202和文本检测模型203部署在同一执行设备210上,但上述三种模型也可部署在不同的执行设备上,即本申请中文本生成方法和文本检测方法可以由不同设备执行,本申请对此不限定。
[0063] 具体地,在文本生成方法中,语言规则模型202用于生成待生成文本(对应本申请实施例中第二段文本的语言规则)的语言规则,生成式模型201用于基于上一段文本(对应后文实施例中第一段文本)和待生成文本的语言规则生成待生成文本(对应后文实施例中第二段文本),最后基于上述规则将生成的完整文本(对应后文实施例中的第一文本)发送到用户设备240。
[0064] 具体地,在文本检测方法中,文本检测模型203用于检测输入的文本是否由特定的生成式模型所生成,最后将检测结果发送到用户设备240。
[0065] 其中,用户设备发送的用户请求可以是文本生成请求和/或文本检测请求,这些请求可以包含语音、文本、图片、视频中的一种或多种(对应后文实施例中的第一数据或第三文本)。
[0066] 图2也是虚拟人视频生成过程中的功能模块图,在其对应图1A‑图1C中的系统(即实际应用场景图)时,用户设备240可以是图1A‑图1C中的用户设备110或本地设备,执行设备210以及数据存储系统250在用户设备110数据处理能力比较强大时,可以集成在用户设备110或本地设备内。在一些实施例中,也可以将执行设备210以及数据存储系统250集成在图1A中的数据处理设备120上。数据库230、训练设备220以及数据采集设备260可以对应集成在图1A中的数据处理设备120上,或设置在云上或网络上的其它服务器上,本申请对此不限定。
[0067] 其中,数据采集设备260可以是终端设备,也可以是服务器或者云的输入输出接口,用于获取查询语句以及返回答复语句的交互层(interface)。
[0068] 本申请中生成式模型201、语言规则模型202和文本检测模型203都可以是深度学习模型,因此下面将简要介绍深度学习模型的训练和推理原理。
[0069] 深度学习模型的架构可以是深度神经网络。深度神经网络中的每一层的工作可以用数学表达式 来描述:从物理层面深度神经网络中的每一层的工作可以理解为通过五种输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由 完成,4的操作由+b完成,5的操作则由a()来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合。其中,W是权重向量,该向量中的每一个值表示该层神经网络中的一个神经元的权重值。该向量W决定着上文所述的输入空间到输出空间的空间变换,即每一层的权重W控制着如何变换空间。训练深度神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
[0070] 因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
[0071] 在图2中,经训练设备220训练得到的模型可以应用不同的系统或设备中。执行设备210配置有I/O接口212,与外部设备进行数据交互,“用户”可以通过用户设备240向I/O接口212输入数据,即用户请求。
[0072] 执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。
[0073] 计算模块211可以识别用户输入的用户请求,在识别出文本生成请求后,使用生成式模型201、语言规则模型202对输入的数据(对应后文实施例中的第一数据)进行处理,从而生成用户所需的文本(即后文实施例中的第一文本)并返回给用户;或者在识别出文本检测请求后,使用文本检测模型203对输入的数据(对应后文实施例中的第三文本或第三文本对应的语音)进行处理,得到对应的检测结果。
[0074] 最后,I/O接口212将生成的第一文本或检测结果返回给用户设备240,并在用户设备240上呈现给用户。
[0075] 更深层地,训练设备220可以针对不同的场景需求,基于不同的数据训练出与特定场景相关的模型,以给用户提供更佳的结果。
[0076] 在图2中所示情况下,用户可以手动指定输入执行设备210中的数据,例如,在I/O接口212提供的界面中进行操作。另一种情况下,用户设备240可以自动地向I/O接口212输入数据并获得结果,如果用户设备240自动输入数据需要获得用户的授权,用户可以在用户设备240中设置相应权限。用户可以在用户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。用户设备240也可以作为数据采集端将采集到音频、视频和文本数据存入数据库230中供训练过程使用。
[0077] 值得注意的,图2仅是本发明实施例提供的一种系统架构的示意图,图2中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储系统250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储系统250置于执行设备210中。
[0078] 前述实施例中的生成式模型可以采用集中式或分布式的方式进行部署。集中式部署指生成式模型201部署在一个网络设备或计算设备上,分布式部署指生成式模型被拆分为多个模块,每个模块部署在一个或多个网络设备或计算设备上。
[0079] 请参见图3,图3为本申请实施例提供的一种生成式模型进行分布式部署的示意图,作为分布式部署方式的一种具体示例,不构成限定。
[0080] 如图3所示,生成式模型被划分为多个模块,并将各模块分别部署在网络设备1‑9,以及计算设备1‑3上。用户在需要使用生成式模型时,通过开放在用户设备上的接口调用生成式模型。
[0081] 每个网络设备或计算设备上存储有与该设备上部署的模块相关的其它模块的地址。相关的其它模块可以是该模块的上游模块或下游模块或者同一层级的其它模块。
[0082] 如图3所示,网络设备1‑3上部署的模块为同一层级的模块,计算设备1上的模块为网络设备3上模块的下游模块。网络设备4‑6上的模块为同一层级的模块,且为网络设备1‑3上模块的下游模块,反之,网络设备1‑3上模块为网络设备4‑6上的模块的上游模块。上游模块、下游模块和同一层级模块为相对概念,此处不再对图3中各模块间关系一一说明。
[0083] 其中,存储的模块地址可以是互联网协议(Internet Protocol,IP)地址,媒体存取控制地址(Media Access Control Address,MAC)等可以找到模块位置的地址。
[0084] 其中,上述网络设备可以是交换机、路由器、网关等支持网络中各节点进行通信的设备,计算设备可以是网络中具有计算能力的设备,如服务器等。
[0085] 请参见图4,图4为本申请实施例提供的一种卷积神经网络的结构示意图,用于表征本申请中深度学习模型的相关内部结构。
[0086] 卷积神经网络(Convolutional Neural Network,CNN)是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构。深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed‑forward)人工神经网络,该前馈人工神经网络中的各个神经元对输入其中的图像中的重叠区域作出响应。
[0087] 如图4所示,卷积神经网络(CNN)100可以包括输入层110,卷积层/池化层120,其中池化层为可选的,以及神经网络层130。
[0088] 卷积层:
[0089] 如图4所示,卷积层/池化层120可以包括如示例121‑126层。在一种实现中,121层为卷积层,122层为池化层,123层为卷积层,124层为池化层,125为卷积层,126为池化层;在另一种实现方式中,121、122为卷积层,123为池化层,124、125为卷积层,126为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
[0090] 以卷积层121为例,卷积层121可以包括很多个卷积算子,卷积算子也称为核,其在本申请中的作用相当于一个从输入的语音或语义信息中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义。
[0091] 这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以从输入视频图像中提取信息,从而帮助卷积神经网络100进行正确的预测。
[0092] 当卷积神经网络100有多个卷积层的时候,初始的卷积层(例如121)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络100深度的加深,越往后的卷积层(例如125)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
[0093] 池化层:
[0094] 由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,即如图4中120所示例的121‑126各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在自然语言数据处理过程中,池化层的唯一目的就是减少数据的空间大小。
[0095] 神经网络层130:
[0096] 在经过卷积层/池化层120的处理后,卷积神经网络100还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层120只会提取特征,并减少输入数据带来的参数。然而为了生成最终的输出信息(所需要的类信息或别的相关信息),卷积神经网络100需要利用神经网络层130来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层130中可以包括多层隐含层(如图4所示的131、132至13n)以及输出层140,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括语音或语义识别、分类或生成等等。
[0097] 在神经网络层130中的多层隐含层之后,也就是整个卷积神经网络100的最后层为输出层140,该输出层140具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络100的前向传播(如图4由110至140的传播为前向传播)完成,反向传播(如图4由140至110的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络100的损失及卷积神经网络100通过输出层输出的结果和理想结果之间的误差。
[0098] 需要说明的是,如图4所示的卷积神经网络100仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在,例如,如图5所示的多个卷积层/池化层并行,将分别提取的特征均输入给神经网络层130进行处理。
[0099] 在本方案中,具有图4和图5所示结构的深度学习模型可以是语言规则模型202,用于生成待生成文本(对应本申请实施例中第二段文本的语言规则)的语言规则。该深度学习模型也可以是生成式模型201的组成部分,用于基于上一段文本(对应后文实施例中第一段文本)和待生成文本的语言规则生成待生成文本(对应后文实施例中第二段文本)。
[0100] 该深度学习模型还可以是文本检测模型203,用于检测输入的文本是否由特定的生成式模型所生成。
[0101] 请参见图6,图6为本申请实施例提供的一种芯片硬件结构示意图。如图6所示,神经网络处理器(Neural‑Networks Processing Unit,NPU)60作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路603,控制器604控制运算电路603提取存储器(权重存储器或输入存储器)中的数据并进行运算。
[0102] 在一些实现中,运算电路603内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路603是二维脉动阵列。运算电路603还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路603是通用的矩阵处理器。
[0103] 举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器602中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器601中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器608accumulator中。
[0104] 向量计算单元607可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元607可以用于神经网络中非卷积/非FC层的网络计算,如池化(Pooling),批归一化(Batch Normalization),局部响应归一化(Local Response Normalization)等。
[0105] 在一些实现种,向量计算单元607能将经处理的输出的向量存储到统一存储器606。例如,向量计算单元607可以将非线性函数应用到运算电路603的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元607生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路603的激活输入,例如用于在神经网络中的后续层中的使用。
[0106] 统一存储器606用于存放输入数据以及输出数据。
[0107] 存储单元访问控制器605(Direct Memory Access Controller,DMAC)将外部存储器中的输入数据搬运到输入存储器601和/或统一存储器606、将外部存储器中的权重数据存入权重存储器602,以及将统一存储器606中的数据存入外部存储器。
[0108] 总线接口单元(Bus Interface Unit,BIU)610,用于通过总线实现主CPU、DMAC和取指存储器609之间进行交互。
[0109] 与控制器604连接的取指存储器(Instruction Fetch Buffer)609,用于存储控制器604使用的指令。
[0110] 控制器604,用于调用取指存储器609中缓存的指令,实现控制该运算加速器的工作过程。
[0111] 一般地,统一存储器606,输入存储器601,权重存储器602以及取指存储器609均为片上(On‑Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory,简称DDR SDRAM)、高带宽存储器(High Bandwidth Memory,HBM)或其他可读可写的存储器。
[0112] 请参见图7,图7为本申请实施例提供的一种文本生成方法的流程示意图。如图7所示,该方法包括步骤S710和S720。
[0113] 步骤S710:接收用户输入的第一数据。
[0114] 其中,上述第一数据可以包含视频、音频和文字中的一种或多种。
[0115] 例如,第一数据可以是文本,用于描述用户所需文本的主题。再例如,第一数据可以是视频和文本,该文本用于指示描述该段视频对应的场景。再例如,第一数据可以是音频和文本,其中的文本用于指示提取出该段音频的主要内容等。
[0116] 步骤S720:基于所述第一数据生成第一文本,所述第一数据用于描述所述第一文本的主题。其中,所述第一文本中包含相邻的第一段文本和第二段文本,所述第二段文本是通过向生成式模型中输入所述第一段文本,或者输入所述第二段文本的语言规则和所述第一段文本生成的,所述第二段文本的语言规则是由所述第一段文本生成的;所述第一文本中的首段文本是通过向生成式模型中输入所述第一数据,或者输入所述首段文本的语言规则和所述第一数据生成的,所述首段文本的语言规则是基于所述第一数据生成的。
[0117] 其中,上述第一段文本和第二段文本为第一文本中任意相邻的两段文本。
[0118] 其中,上述第一文本中的每段文本可以包含一句或多句话,本申请对此不限定。
[0119] 下面介绍第一文本的生成过程:
[0120] 首先将第一数据输入语言规则模型中,生成第一文本中首段文本的语言规则,然后将首段文本的语言规则和第一数据输入生成式模型,或者仅将第一数据输入生成式模型中,生成首段文本。然后将首段文本输入语言规则模型中,生成下一段文本的语言规则,并将首段文本和下一段文本的语言规则输入生成式模型,或者仅将首段文本输入生成式模型中,生成首段文本的下一段文本。后续的每段文本都按照首段文本的下一段文本的生成方式进行生成,直到生成最后一段文本,得到第一文本。
[0121] 上述第二段文本的生成过程即是用于描述第一文本中除首段文本外,其它各段文本的生成过程,即除首段文本外的其它各段文本,都是根据其上一段文本生成的。
[0122] 可选地,上述语言规则模型可以是数学模型或者深度学习模型。
[0123] 其中,语言规则的类型包括两类:第一类语言规则和第二类语言规则。
[0124] 第一类语言规则用于描述对应生成段落的长度。第一类语言规则下可以包含多个不同的语言规则。例如,该类别下的一种语言规则可以是:对应生成段落的长度为50个字符。该类别下另一个语言规则可以是:对应生成段落的长度为25个字符。
[0125] 第二类语言规则用于描述对应生成段落上部分或全部位置处的字符类型,所述字符类型包含标点符号类型和词性。例如,该类别下的一种语言规则可以用于描述对应生成段落全部位置上的字符类型,具体为:对应生成段落上的第1‑3个字符为名词,第4‑5个字符为动词,第6‑8个字符为名词,第9个字符为句号。该类别下的另一种语言规则可以用于描述对应生成段落部分位置上的字符类型,具体为:对应生成段落上的第4‑6个字符为名词,第7个字符为逗号,第10‑11个字符为动词,第25个字符为句号。
[0126] 下面介绍通过生成式模型生成第一文本中每段文本的具体过程,以第一文本中的第二段文本(即第一文本中除首段文本外的任意一段文本)为对象进行描述:
[0127] 第二段文本的上一段文本为第一段文本,首先将第一段文本输入语言规则模型,得到第二段文本的语言规则,该第二段文本的语言规则包含N个语言规则,此N个语言规则中的每个语言规则为前述第一类语言规则或第二类语言规则。
[0128] 该N个语言规则中包含第一语言规则,将第一语言规则和第一段文本输入生成式模型中,得到第二文本。对该N个语言规则中每个语言规则都执行如第一语言规则的操作,共得到N个文本,该N个文本分别对应前述的N个语言规则。第二段文本即是从得到的N个文本中确定的一个文本。
[0129] 在得到上述N个文本后,从该N个文本中确定出E个文本。该E个文本中的每个文本都满足如下特征:以E个文本中的第三文本(E个文本中任意一个文本)为对象来描述,该第三文本对应前述N个语言规则中的第二语言规则,此时第三文本的语言规则符合该第二语言规则。即由生成式模型所生成文本的语言规则符合向生成式模型输入的语言规则。
[0130] 然后对该E个文本中的进行评分,E个文本中的每个文本对应一个质量评分,并将E个文本中质量评分最高的文本确定为上述第二段文本。每个文本的质量评分用于评价该文本语法的正确程度,以及该文本的主题与第一数据所描述主题的匹配程度。例如,该评价规则可以是:文本的语法准确度越高,则质量评分越高;文本的主题与第一数据所描述主题匹配程度越高,质量评分也越高。对于量化的评分细则,可以通过数学模型或深度学习模型进行评分,本申请不做限定。
[0131] 若上述E个文本的质量评分都低于第一阈值或者上述N个文本中的每个文本都不符合对应的语言规则时,则此时仅将第一段文本输入生成式模型(不输入语言规则)中,以生成第二段文本。
[0132] 其中,上述第一阈值可以是本领域技术人员基于具体场景进行设置,本申请不做展开。
[0133] 其中,上述第二段文本的语言规则的数量为N个,此数量只是用于表示每段文本的语言规则数量为一个或多个,并不是限制每段文本的语言规则数量都为N个,在第一文本生成过程中,每段文本的语言规则的数量可以相同或不同。
[0134] 本申请即是通过上述方式生成第一文本中除首段文本外的每段文本。
[0135] 对于第一文本中的首段文本而言,其与上述第二段文本生成的区别在于:(1)首段文本的语言规则是通过第一数据生成,而第二段文本的语言规则是通过第一段文本生成。(2)若基于第一数据和手段文本的多个语言规则生成的文本都不符合上述要求时,则直接将第一数据输入生成式模型,以生成第一段文本。其余过程均相同,此处不再赘述。
[0136] 其中,上述语言规则模型可以是数学模型或深度学习模型。
[0137] 可选地,当语言规则模型为数学模型时,其具体可以是哈希hash函数等。该函数建立了输入文本到语言规则的映射关系。进一步地,其具体实现过程可以为:通过哈希函数对输入文本转化成相应字符或数字,然后基于预定义的映射规则,将该字符和数字映射到对应的取值范围,该取值范围内的每个数值对应的语言规则即是语言规则模型输出的一个或多个语言规则(对应上述实施例中的N个语言规则)。
[0138] 可选地,当语言规则模型为深度学习模型时,其可以采用监督学习、无监督学习或半监督学习等方式训练得到的。例如,若采用监督学习方式训练时,训练数据可以为文本和该文本对应的语言规则(即标签)。
[0139] 其中,上述数学函数的映射规则和深度学习模型训练过程的收敛方向可基于具体场景设定,本申请不做限定。
[0140] 请参见图8,图8为本申请实施例提供的一种文本生成方法的过程示意图,用于描述前述基于语言规则来生成图7实施例第一文本上每段文本的过程。
[0141] 如图8所示,第一段文本和第二段文本为第一文本中任意相邻的两段文本,第二段文本为第一段文本的下一段文本,第二段文本是基于第一段文本和语言规则生成的。
[0142] 具体如下:首先执行步骤①和②:将第一段文本输入语言规则模型,得到N个语言规则(即语言规则1‑语言规则N)。然后执行步骤③和④:每次将第一段文本和一个语言规则输入生成式模型中,由生成式模型计算N次,得到N个文本(即文本1‑文本N)。然后执行步骤⑤:由选择器从N个文本中确定第二段文本,选择器具体选择过程可参见前述图7实施例中相关描述,此处不再赘述。若该N个文本中没有符合要求的文本,则直接将第一段文本输入生成式模型中,得到第二段文本(图8中未示出此步骤)。
[0143] 其中,图8中各步骤的具体实现过程可参见图7中对应描述,此处不再赘述。
[0144] 请参见图9,图9为本申请实施例提供的一种文本检测方法的流程示意图,用于检测一段文本是否是通过图7实施例中的生成式模型生成的。如图9所示,该方法包括步骤S910和S920。
[0145] 步骤S910:获取第三文本,所述第三文本中包含第三段文本,所述第三段文本的上一段文本为第四段文本,所述第三段文本的语言规则符合由第四段文本生成的一种或多种语言规则中的任意一种。
[0146] 其中,上述第三文本即为用于检测的文本。第三文本可以是通过绑定的用户输入或非绑定的用户输入的。
[0147] 其中,第三文本中的每段文本可以包含一句或多句话。
[0148] 其中,上述第三段文本的语言规则是通过将第四段文本输入到前述图7实施例中的语言规则模型中得到的,具体过程此处不再赘述。
[0149] 其中,上述语言规则的类型包括第一类语言规则和第二类语言规则。第一类语言规则用于描述对应段落的长度,第二类语言规则用于描述对应段落上部分或全部位置处的字符类型,字符类型包含标点符号的类型、词性。
[0150] 上述语言规则类型的具体示例可以参见前述图7实施例中的描述,此处不再赘述。
[0151] 文本检测的具体过程如下:
[0152] 检测第三文本中包含的第三段文本的数量,第三段文本为第三文本中一类文本段落,若第三文本中的一段文本满足如下特征,则该段文本为第三段文本:将该一段文本的上一段文本输入语言规则模型中,得到一种或多种语言规则,若该一段文本的语言规则符合该一种或多种语言规则中的任意一种时,则该一段文本为上述第三段文本。
[0153] 在查找出第三文本中所包含的第三段文本的数量后,执行下述步骤S920。
[0154] 步骤S920:当所述第三文本中包含的所述第三段文本的数量大于或等于第二阈值时,确定所述第三文本是由生成式模型生成的,当所述数量小于所述第二阈值时,确定所述第三文本不是由所述生成式模型生成。
[0155] 具体地,当第三段文本的数量大于或等于第二阈值时,则确定第三文本是由前述图7实施例中的生成式模型所生成的,当第三段文本的数量小于第二阈值时,则确定第三文本不是由前述图7实施例中的生成式模型所生成的。
[0156] 其中,上述第二阈值可以是本领域技术人员基于具体场景进行设置,本申请不做展开。
[0157] 可选地,当上述第三文本是由绑定的第一用户进行输入时,上述文本检测方法还包括:将第三文本包含的F段文本分别进行压缩,得到F段文本分别对应的F段摘要,F段摘要中包含第一段摘要,第一段摘要与第一用户的历史查询记录中多段摘要内任意一段摘要的相似度大于或等于第三阈值,F为正整数;当F段摘要中包含的第一段摘要的数量大于或等于第四阈值时,更新第一用户的查询次数;当该数量小于第四阈值时,将F段摘要更新至第一用户的历史查询记录中。
[0158] 具体地,将第三文本包含的F段文本进行压缩,即提取出F段文本分别对应的F段摘要。然后将该F段摘要中的每段摘要分别与第一用户的历史查询记录中的多段摘要进行比对,若F段摘要中的一段摘要与历史查询记录中任意一段摘要的相似度大于或等于第三阈值,则该段摘要为第一段摘要,即第一段摘要为满足上述条件的一类摘要。
[0159] 其中,上述步骤中任意两段摘要相似度的比对可以通过分别表征两段摘要的两个矩阵或两个向量的比对来计算其相似度,具体矩阵/向量相似度的比对本申请不进行展开。
[0160] 其中,上述第一用户的历史查询记录中包含第一用户每次输入文本中每段文本的摘要。
[0161] 在确定第三文本中包含的第三段文本的数量后,将该数量与第四阈值进行比较,若该数量大于或等于第四阈值,则更新第一用户的查询次数,具体地,可以将第一用户的查询次数增加1,当第一用户的查询次数超过设定值时,限制第一用户利用生成式模型生成文本或检测文本。当该数量小于第四阈值时,则将上述F段摘要更新到第一用户的历史查询记录中。
[0162] 其中,上述第三阈值、第四阈值可以是本领域技术人员基于具体场景进行设置,本申请不做展开。
[0163] 请参见图10,图10为本申请实施例提供的一种文本检测方法的过程示意图,用于描述前述图9文本检测方法的具体过程。
[0164] 图10以待检测的第三文本中除首段文本外的任意相邻的两段文本为例进行描述此检测过程,该任意两段文本为图10中的上一段文本和下一段文本。
[0165] 该检测过程具体为:首先执行步骤①和②:将上一段文本输入语言规则模型中,得到H个语言规则(语言规则1‑语言规则H),H为正整数。然后执行步骤③和④:将该H个语言规则和下一段文本输入匹配器中进行匹配,得到匹配结果,匹配过程具体为:若上一段文本的语言规则符合该H个语言规则中的任意一个,则匹配成功,即下一段文本属于前述图9实施例中的第三段文本(一类文本段落);若上一段文本的语言规则不符合该H个语言规则中的任意一个语言规则,则不匹配,即下一段文本不属于前述图9实施例中的第三段文本。
[0166] 最后,统计第三文本中第三段文本的段落数量,基于段落数量和第二阈值的关系判断第三文本是否是由生成式模型所生成的。
[0167] 其中,图10中各步骤的具体实现过程可参见图9中相关描述,此处不再赘述。
[0168] 请参见图11,图11为本申请实施例提供的一种文本生成装置。如图11所示,该装置包括收发单元1110和处理单元1120;其中,
[0169] 收发单元1110用于接收用户输入的第一数据。处理单元1120用于基于所述第一数据生成第一文本,所述第一数据用于描述所述第一文本的主题;其中,所述第一文本中包含相邻的第一段文本和第二段文本,所述第二段文本是通过向生成式模型中输入所述第二段文本的语言规则和所述第一段文本,或者输入所述第一段文本生成的,所述第二段文本的语言规则是由所述第一段文本生成的;所述第一文本中的首段文本是通过向生成式模型中输入所述首段文本的语言规则和所述第一数据,或者输入所述第一数据生成的,所述首段文本的语言规则是基于所述第一数据生成的。
[0170] 在一种可行的实施方式中,语言规则的类型包括第一类语言规则和第二类语言规则;其中,所述第一类语言规则用于描述对应生成段落的长度,所述第二类语言规则用于描述对应生成段落上部分或全部位置处的字符类型,所述字符类型包含标点符号类型、词性。
[0171] 在一种可行的实施方式中,所述第二段文本是从N个文本中确定的一个文本,所述N个文本分别对应所述第二段文本的语言规则中包含的N个语言规则,所述N个语言规则中每个语言规则为所述第一类语言规则或者所述第二类语言规则,所述N个文本中包含第二文本,所述第二文本对应所述N个语言规则中的第一语言规则,所述第二文本是通过将所述第一段文本和所述第一语言规则输入所述生成式模型生成的,N为正整数;所述N个文本中包含E个文本,所述E个文本中包含第三文本,所述第三文本对应所述N个语言规则中的第二语言规则,且所述第三文本的语言规则符合所述第二语言规则,E为小于或等于N的正整数;所述E个文本中每个文本对应一个质量评分,所述第二段文本为所述E个文本中的质量评分最高的文本;其中,每个所述文本的质量评分用于表征每个所述文本语法的正确程度,以及每个所述文本的主题与所述第一数据所描述主题的匹配程度。
[0172] 在一种可行的实施方式中,当所述E个文本的质量评分都低于第一阈值或者所述N个文本中的每个文本都不符合对应的语言规则时,所述第二段文本是通过向生成式模型中输入所述第一段文本生成的。
[0173] 在一种可行的实施方式中,所述N个语言规则是通过将所述第一段文本输入到语言规则模型中得到的,所述语言规则模型为深度学习模型或数学模型。
[0174] 具体地,上述文本生成装置的具体执行过程可以参见前述实施例中图7‑图8实施例中的具体过程,此处不再赘述。
[0175] 请参见图12,图12为本申请实施例提供的一种文本检测装置。如图12所示,该装置包括获取单元1210和处理单元1220;其中,
[0176] 获取单元1210,用于获取第三文本,所述第三文本中包含第三段文本,所述第三段文本的上一段文本为第四段文本,所述第三段文本的语言规则符合由第四段文本生成的一种或多种语言规则中的任意一种。处理单元1220,用于当所述第三文本中包含的所述第三段文本的数量大于或等于第二阈值时,确定所述第三文本是由生成式模型生成的,当所述数量小于所述第二阈值时,确定所述第三文本不是由所述生成式模型生成。
[0177] 在一种可行的实施方式中,语言规则的类型包括第一类语言规则和第二类语言规则;其中,所述第一类语言规则用于描述对应段落的长度,所述第二类语言规则用于描述对应段落上部分或全部位置处的字符类型,所述字符类型包含标点符号的类型、词性。
[0178] 在一种可行的实施方式中,所述处理单元1220还用于当所述第三文本是由第一用户进行输入时,将所述第三文本包含的F段文本分别进行压缩,得到所述F段文本分别对应的F段摘要,所述F段摘要中包含第一段摘要,所述第一段摘要与所述第一用户的历史查询记录中多段摘要内任意一段摘要的相似度大于或等于第三阈值,F为正整数;当所述F段摘要中包含的所述第一段摘要的数量大于或等于第四阈值时,更新所述第一用户的查询次数;当所述数量小于所述第四阈值时,将所述F段摘要更新至所述第一用户的历史查询记录中。
[0179] 具体地,上述文本检测装置的具体执行过程可以参见前述实施例中图9‑图10实施例中的具体过程,此处不再赘述。
[0180] 请参见图13,图13为本申请实施例提供的一种计算机设备的结构示意图,作为图11中文本生成装置或图12中文本检测装置的具体实现。如图13所示,该计算机设备包括处理器1301、存储器1302和接口电路1303;其中,处理器1301、存储器1302和接口电路1303之间通过总线1304连接。
[0181] 在一种实现方式中,图13所示计算机设备可作为图11中文本生成装置的具体实现,以执行前述文本生成方法。此时,计算机设备通过接口电路1303接收用户设备发送的第一数据。处理器1301用于基于第一数据生成第一文本,第一数据用于描述所述第一文本的主题;其中,所述第一文本中包含相邻的第一段文本和第二段文本,所述第二段文本是通过向生成式模型中输入所述第二段文本的语言规则和所述第一段文本,或者输入所述第一段文本生成的,所述第二段文本的语言规则是由所述第一段文本生成的;所述第一文本中的首段文本是通过向生成式模型中输入所述首段文本的语言规则和所述第一数据,或者输入所述第一数据生成的,所述首段文本的语言规则是基于所述第一数据生成的。存储器1302用于存储第一数据和第一文本。
[0182] 具体地,上述计算机设备执行文本生成方法的过程可以参见前述实施例中图7‑图8实施例中的具体过程,此处不再赘述。
[0183] 在一种实现方式中,图13所示计算机设备可作为图12中文本检测装置的具体实现,以执行前述文本检测方法。此时,计算机设备通过接口电路1303接收用户设备发送的第三文本,所述第三文本中包含第三段文本,所述第三段文本的上一段文本为第四段文本,所述第三段文本的语言规则符合由第四段文本生成的一种或多种语言规则中的任意一种。处理器1301用于当所述第三文本中包含的所述第三段文本的数量大于或等于第二阈值时,确定所述第三文本是由生成式模型生成的,当所述数量小于所述第二阈值时,确定所述第三文本不是由所述生成式模型生成。存储器1302用于存储第三文本和第三段文本的数量。
[0184] 具体地,上述计算机设备执行文本检测方法的过程可以参见前述实施例中图9‑图10实施例中的具体过程,此处不再赘述。
[0185] 本申请实施例提供了一种芯片系统,所述芯片系统包括至少一个处理器,存储器和接口电路,所述存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述处理器执行时,上述文本生成方法或文本检测方法实施例中记载的任意一种的部分或全部步骤得以实现。
[0186] 本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,该计算机程序被执行时,使得上述文本生成方法或文本检测方法实施例中记载的任意一种的部分或全部步骤得以实现。
[0187] 本申请实施例提供了一种计算机程序产品,该计算机程序产品包括指令,当该指令被处理器执行时,使得上述文本生成方法或文本检测方法实施例中记载的任意一种的部分或全部步骤得以实现。
[0188] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0189] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
[0190] 上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0191] 以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页 第1页 第2页 第3页
相关技术
文本生成相关技术
方法文本相关技术
邵云峰发明人的其他相关专利技术