首页> 中国专利> 基于语言模型的辅助写作方法、装置和系统

基于语言模型的辅助写作方法、装置和系统

摘要

本申请提供一种基于语言模型的辅助写作方法、装置和系统。该方法包括:服务器获取初始文本。该初始文本可以为已经生成的创作文本和/或用户输入文本。服务器将该初始文本输入到语言模型中,生成预设数量篇创作文本。其中,创作文本与初始文本具有相关性。服务器将该预设数量篇创作文本发送到前端界面。本申请的方法,实现了计算机辅助用户创作文本,提高了辅助写作的智能性。

著录项

  • 公开/公告号CN112966479A

    专利类型发明专利

  • 公开/公告日2021-06-15

    原文格式PDF

  • 申请/专利号CN202110230068.9

  • 发明设计人 袁行远;李省平;肖达;于翮;

    申请日2021-03-02

  • 分类号G06F40/166(20200101);G06F40/216(20200101);G06F40/289(20200101);G06F40/42(20200101);

  • 代理机构11205 北京同立钧成知识产权代理有限公司;

  • 代理人朱颖;刘芳

  • 地址 100083 北京市海淀区学院路甲5号768创业园C座04

  • 入库时间 2023-06-19 11:26:00

说明书

技术领域

本申请涉及人工智能技术领域,尤其涉及一种基于语言模型的辅助写作方法、装置和系统。

背景技术

随着计算机技术和人工智能技术的发展,在文字处理技术的基础上发展而来的计算机辅助写作技术正在逐步走向成熟。计算机辅助写作技术不在局限于向用户提供文字输入、文档编辑、文件管理等辅助功能,而是开始帮助用户进行写作。

目前,在帮助用户写作这一方面,计算机辅助写作技术主要用于优化用户写作内容。例如,当用户词汇较为贫乏时,服务器可以使用该计算机辅助写作技术向用户推荐替换词。或者,服务器还可以根据用户语句中的关键词,生成润色后的语句。

然而,现有技术中,服务器通常无法通过计算机辅助写作技术,辅助作者进行创作。

发明内容

本申请提供一种基于语言模型的辅助写作方法、装置和系统,用以解决现有技术无法通过计算机辅助写作技术辅助作者进行创作的问题。

第一方面,本申请提供一种基于语言模型的辅助写作方法,包括:

获取初始文本,所述初始文本中包括已经生成的创作文本和/或用户输入文本,所述已经生成的创作文本为最近一次生成的预设数量篇创作文本中的一篇;

将所述初始文本输入至预先训练的语言模型,生成预设数量篇创作文本,所述创作文本的内容包括在所述初始文本的基础扩展得到的文本内容;

输出所述预设数量篇创作文本。

可选的,当所述初始文本中包括已经生成的创作文本时,所述获取初始文本,包括:

获取选择指令,所述选择指令用于从已经输出的所述预设数量篇创作文本中选择一篇创作文本作为所述初始文本,所述已经输出的所述创作文本为所述已经生成的所述创作文本;

根据所述选择指令和所述预设数量篇创作文本,确定目标创作文本,所述目标创作文本为所述初始文本。

可选的,所述选择指令为用户输入的选择指令,或者,所述选择指令为后端服务根据预设规则生成的选择指令。

可选的,所述将所述初始文本输入至预先训练的语言模型,生成预设数量篇创作文本,包括:

根据所述初始文本和所述语言模型,确定词表中每一个字的模型概率;

根据所述模型概率和预设平滑算法,确定所述词表中每一个字的平滑概率;

根据所述平滑概率,从所述词表中随机选择预设数量个字生成预设数量篇创作文本。

可选的,所述方法,还包括:

获取修改指令,所述修改指令中包括待修改创作文本和修改内容,所述待修改创作文本为所述预设数量篇创作文本中的一篇创作文本;

根据所述修改指令中的所述修改内容修改所述待修改创作文本。

可选的,当所述语言模型中包括多个不同题材的语言模型时,所述方法,还包括:

获取题材指令,所述题材指令用于指示用户选择的目标题材;

根据所述题材指令,确定语言模型,所述语言模型将用于生成所述目标题材的创作文本。

可选地,当所述语言模型中包括多个不同语种的语言模型时,所述方法,还包括:

获取语种指令,所述语种指令用于指示用户选择的输入文本的语种以及创作文本的语种;

根据所述语种指令,确定语言模型,所述语言模型可以根据所述语种指令指定语言的输入文本,生成所述语种指令指定语种的创作文本。

第二方面,本申请提供一种基于语言模型的辅助写作装置,包括:

获取模块,用于获取初始文本,所述初始文本中包括已经生成的创作文本和/或用户输入文本,所述已经生成的创作文本为最近一次生成的预设数量篇创作文本中的一篇;

生成模块,用于将所述初始文本输入至预先训练的语言模型,生成预设数量篇创作文本,所述创作文本的内容包括在所述初始文本的基础扩展得到的文本内容;

输出模块,用于输出所述预设数量篇创作文本。

可选的,当所述初始文本中包括已经生成的创作文本时,所述获获取模块,包括:

获取子模块,用于获取选择指令,所述选择指令用于从已经输出的所述预设数量篇创作文本中选择一篇创作文本作为所述初始文本,所述已经输出的所述创作文本为所述已经生成的所述创作文本;

第一确定子模块,用于根据所述选择指令和所述预设数量篇创作文本,确定目标创作文本,所述目标创作文本为所述初始文本。

可选的,所述选择指令为用户输入的选择指令,或者,所述选择指令为后端服务根据预设规则生成的选择指令。

可选的,所述生成模块,包括:

第二确定子模块,用于根据所述初始文本和所述语言模型,确定词表中每一个字的模型概率;

第三确定子模块,用于根据所述模型概率和预设平滑算法,确定所述词表中每一个字的平滑概率;

生成子模块,用于根据所述平滑概率,从所述词表中随机选择预设数量个字生成预设数量篇创作文本。

可选的,所述装置,还包括:

修改模块,具体用于获取修改指令,所述修改指令中包括待修改创作文本和修改内容,所述待修改创作文本为所述预设数量篇创作文本中的一篇创作文本;根据所述修改指令中的所述修改内容修改所述待修改创作文本。

可选的,当所述语言模型中包括多个不同题材的语言模型时,所述装置,还包括:

题材获取模块,用于获取题材指令,所述题材指令用于指示用户选择的目标题材;根据所述题材指令,确定语言模型,所述语言模型将用于生成所述目标题材的创作文本。

可选地,当所述语言模型中包括多个不同语种的语言模型时,所述装置,还包括:

语种选择模块,用于获取语种指令,所述语种指令用于指示用户选择的输入文本的语种以及创作文本的语种;根据所述语种指令,确定语言模型,所述语言模型可以根据所述语种指令指定语言的输入文本,生成所述语种指令指定语种的创作文本。

第三方面,本申请提供一种基于语言模型的辅助写作系统,包括:前端界面和后端服务;

所述前端界面用于将获取的初始文本上传到所述后端服务,以及显示所述后端服务反馈的创作文本;

所述后端服务用于根据所述初始文本生成预设数量篇创作文本,并将所述创作文本反馈到前端界面。

第四方面,本申请提供一种可读存储介质,可读存储介质中存储有计算机程序,当服务器的至少一个处理器执行该计算机程序时,服务器执行第一方面及第一方面任一种可能的设计中的基于语言模型的辅助写作方法。

第五方面,本申请提供一种计算机程序产品,计算机程序产品包括计算机程序,当服务器的至少一个处理器执行该计算机程序时,服务器执行第一方面及第一方面任一种可能的设计中的基于语言模型的辅助写作方法。

本申请提供的基于语言模型的辅助写作方法、装置和系统,通过获取初始文本,该初始文本可以为已经生成的创作文本和/或用户输入文本;将该初始文本输入到语言模型中,生成预设数量篇创作文本,创作文本与初始文本具有相关性;将该预设数量篇创作文本发送到前端界面的手段,实现生成创作文本的效果,使服务器可以代替作者完成创作。

附图说明

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

图1为本申请一实施例提供的一种基于语言模型的辅助写作系统的结构示意图;

图2为本申请一实施例提供的一种基于语言模型的辅助写作方法的流程图;

图3为本申请一实施例提供的另一种基于语言模型的辅助写作方法的流程图;

图4为本申请一实施例提供的一种基于语言模型的辅助写作装置的结构示意图;

图5为本申请一实施例提供的另一种基于语言模型的辅助写作装置的结构示意图;

图6为本申请一实施例提供的一种基于语言模型的辅助写作系统的结构示意图;

图7为本申请一实施例提供的一种前端界面的页面示意图;

图8为本申请一实施例提供的另一种前端界面的页面示意图;

图9为本申请一实施例提供的服务器硬件结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应当理解,取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。

应当进一步理解,术语“包含”、“包括”表明存在的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。

此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。

随着计算机技术和人工智能技术的发展,在文字处理技术的基础上发展而来的计算机辅助写作技术正在逐步走向成熟。计算机辅助写作技术不在局限于向用户提供文字输入、文档编辑、文件管理等辅助功能,而是开始帮助用户进行写作。

目前,基于计算机技术的计算机辅助写作技术,通常围绕知识库、知识图谱等数据库展开。服务器在获悉用户的关键字后,可以根据该关键字向用户提供相关信息,帮助用户完成写作。该计算机辅助写作技术通常用于知识点完善、相关信息扩展等。其实现过程类似于数据匹配或者数据库检索。该计算机辅助写作技术在向用户提供辅助资料后,用户需要自行从该辅助资料中提取有用信息,并写入文本中。且出于对匹配和检索的要求,当用户输入相同关键字时,其辅助资料通常是相同的。

而基于人工智能技术的计算机辅助写作技术,不再局限于为用户提供信息,转而开始辅助用户进行写作。例如,服务器可以根据用户的输入信息,提取其中关键字,并根据该关键字重新生成润色后的文本数据。或者,服务器可以根据用户的输入信息,向用户推荐替换词。该计算机辅助写作技术通常用于写作内容的优化,无法直接代替用户完成写作。并且该优化过程中,针对同一内容,服务器通常只能向用户提供一种优化结果。

针对上述问题,本申请提出了一种基于语言模型的辅助写作方法。服务器在第一次生成创作文本时,可以将用户的输入文本作为初始文本。服务器将该初始文本输入到语言模型中,生成预设数量篇创作文本。该第一次生成的创作文本与输入文本之间存在相关性。服务器在第二次生成创作文本时,可以将第一次生成的创作文本和/或输入文本作为初始文本。当服务器将第一次生成的创作文本作为初始文本时,该第一次生成的创作文本为第一生成的预设数量篇创作文本中的一篇。且第二次生成的创作文本与作为初始文本的第一次生成的创作文本存在相关性。该第二次生成的创作文本的文本长度可以长于第一次生成的创作文本的文本长度。用户可以根据实际需要,进行多轮交互,从而生成最终的创作文本。在每次创作文本的生成过程中,服务器可以生成预设数量篇创作文本。其中预设数量为正整数。该预设数量篇创作文本的生成,可以在确保创作文本的连续性和逻辑性的基础上,增加创作文本的多样性。且在除第一次以外的每一次生成中,用户或者服务器可以从上一次生成的预设数量篇创作文本中选择一篇作为初始文本。该初始文本的选择,使创作文本可以在初始文本的基础上进一步扩展,在实现了文本创作的基础上,增加了创作文本的多样性。

下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图1示出了本申请一实施例提供的一种基于语言模型的辅助写作系统的结构示意图。如图所示,用户在前端界面键入输入文本。前端界面将获取到的输入文本上传到后端服务。后端服务将该输入文本输入语言模型,并生成预设数量篇创作文本。该预设数量篇创作文本由后端服务反馈给前端界面,并在前端界面中展示给用户。如图1所示,该预设数量篇创作文本可以包括三篇创作文本。用户可以在前端界面中看到创作文本1、创作文本2、创作文本3,三篇创作文本。用户可以从该三篇创作文本中选择一篇创作文本,即创作文本K。前端界面将该创作文本K上传到后端服务器。后端服务器可以将该创作文本K作为初始文本输入语言模型中。基于该创作文本K,语言模型可以再次生成三篇创作文本。当后端服务器将该三篇创作文本反馈到前端界面时,该三篇创作文本将替换前端界面中原有的三篇创作文本进行显示。在该交互过程中,用户可以根据实际需要,多次从创作文本中选择一篇创作文本进行再次生成。

本申请中,辅助写作方法主要由后端服务执行。该后端服务可以运行于服务器中。本申请以服务器为执行主体,执行如下实施例的基于语言模型的辅助写作方法。具体地,该执行主体可以为服务器的硬件装置,或者为服务器中实现下述实施例的软件应用,或者为安装有实现下述实施例的软件应用的计算机可读存储介质,或者为实现下述实施例的软件应用的代码。

图2示出了本申请一实施例提供的一种基于语言模型的辅助写作方法的流程图。在图1所示实施例的基础上,如图2所示,以服务器为执行主体,本实施例的方法可以包括如下步骤:

S101、获取初始文本,初始文本中包括已经生成的创作文本和/或用户输入文本,已经生成的创作文本为最近一次生成的预设数量篇创作文本中的一篇。

本实施例中,服务器获取初始文本。该初始文本为该次创作文本生成时所使用的初始文本。每一次创作文本的生成,都将使用到初始文本。创作文本为在该初始文本的基础上扩展得到的文本。服务器获取的初始文本可以为用户在前端界面中键入的输入文本。或者,该初始文本还可以为服务器在前序交互过程中已经生成的创作文本。或者,该初始文本还可以同时包括已经生成的创作文本和输入文本。

当该初始文本中包括服务器在前序交互过程中已经生成的创作文本时,该创作文本为用户上一次生成的创作文本。例如,当前为用户第5次生成创作文本。在该第5次生成创作文本时,服务器获取的初始文本为服务器第4次生成的创作文本中的一篇。

当该初始文本中包括输入文本时,服务器不对该输入文本进行限制。例如,该输入文本可以为小说的开头、对话、提问、事件标题等。

S102、将初始文本输入至预先训练的语言模型,生成预设数量篇创作文本,创作文本的内容包括在初始文本的基础扩展得到的文本内容。

本实施例中,当服务器获取初始文本后,服务器将该初始文本输入到语言模型中。该语言模型可以基于初始文本生成预设数量篇创作文本。其中,预设数量为正整数。其中,创作文本与初始文本具有相关性。当预设数量大于1时,服务器生成的多篇创作文本为不同的创作文本,且该多篇创作文本之间具有一定相关性。该相关性来源于相同的初始文本。

一种示例中,服务器在将初始文本输入语言模型之前,需要对该初始文本进行预处理。

本示例中,该处理过程可以包括如下步骤:

步骤1、服务器对初始文本进行文本清洗。

本步骤中,服务器在获取初始文本后,服务器遍历该初始文本,并将该初始文本中的空白字符删除。由于该初始文本中可能包括任意内容,因此,在文本清洗过程中不对该初始文本中的有效字符进行编辑。该初始文本中的有效字符包括除空白字符以外的任意字符。

服务器还可以对该初始文本中的字符进行统一。例如,当该初始文本中包括全角和半角时,服务器可以将其中的半角字符统一修改为全角字符。

步骤2、服务对初始文本进行分词处理。

本步骤中,服务器对清洗后的初始文本进行分词处理。该分词方法可以为BertTokenizer、Roberta Tokenizer、GPT2 Tokenizer等现有分词方法。或者,该分词方法还可以为改进后的方法。

在分词过程中,服务器将初始文本中的中文按字切开,英文按单词切开。服务器将切开后的每一个中文字和每一个英文单词,按顺序写入初始文本的Token列表中。服务器根据预设的词表,确定每一个字或者单词对应的id。

其中,该词表中的字和单词可以根据常用字和常用单词确定。当服务器确定该词表中的字和单词后,服务器可以根据词表中各个字和单词的顺序,生成各个字和单词的id。

服务器使用每一个字或者单词的id,替换该Token列表中的字和单词,得到Tokenid列表。该Token id列表中每一id与该Token列表中每一字或者单词对应。

步骤3、服务器将Token id列表输入语言模型。

本步骤中,服务器将处理好的Token id列表输入语言模型中。语言模型根据该Token id列表中的内容,生成创作文本。

一种示例中,该语言模型用于生成小说。

本示例中,当该语言模型用于生成小说,且该预设数量大于1时,该语言模型生成的多篇创作文本可以为相同故事线上的不同分支。其中相同故事线为初始文本所具有的故事线。其中,不同分支为语言模型根据该初始文本随机生成的扩展内容。

例如,在第一次时,初始文本为输入文本。此时,服务器根据初始文本,扩展得到具有相同点的三条不同的故事线。该具有相同点的三条不同故事线,分别为三篇创作文本对应的三篇小说。在第二次时,初始文本为第一次输出的三篇小说中的一篇。此时,服务器根据该初始文本,在该篇小说的故事线的基础上,对故事线继续进行扩展。因此,第二次生成的三篇小说的故事线是在其初始文本的故事线的基础上扩展得到的。以此类推,当服务器多次生成后,语言模型生成的每一篇小说的故事线仍然与输入文本存在相关性。并且,在该多次生成过程中,每一次生成的三篇创作文本均为在初始文本的基础上随机生成的。因此,每一次生成的创作文本的扩展方向都是不可预知。该不可预知性,增加了创作文本的多样性,降低了创作文本重复的概率。

此外,如果将服务器将选择初始文本和生成新的创作文本,作为一次创作文本的生成的整体。则服务器生成创作文本的次数可以为任意次。即,当服务器获取到初始文本时,服务器根据该初始文本生成新的创作文本。

其中,在每一次生成创作文本时,该次创作文本的长度为预设长度。该预设长度可以为用户在开始该次创作前设定的创作文本的长度。或者,该预设长度还可以为服务器中预设的该次创作文本的长度。或者,该预设长度还可以为服务器根据预设算法和初始文本长度计算得到的创作文本的长度。

例如,服务器中可以预设有100个长度。当用户第1次生成创作文本时,服务器使用该100个长度中的第1个长度。当用户第10次生成创作文本时,服务器使用该100个长度中的第10个长度。或者,服务器可以确定创作文本的长度为初始文本长度的1.5倍。当初始文本的长度为1万字时,创作文本的长度为1.5万字。

另一种示例中,该语言模型还可以用于生成诗歌、散文、科普等载体的文章。

S103、输出预设数量篇创作文本。

本实施例中,服务器在获取到语言模型输入的预设数量篇创作文本后,将该预设数量篇创作文本发送到前端界面。前端界面在预设区域显示该预设数量篇创作文本。当该前端界面中已经显示有创作文本时,该前端界面使用该次收到的创作文本,替换已经显示的创作文本。

本申请提供的基于语言模型的辅助写作方法,服务器获取初始文本。该初始文本可以为已经生成的创作文本和/或用户输入文本。服务器将该初始文本输入到语言模型中,生成预设数量篇创作文本。其中,创作文本与初始文本具有相关性。服务器将该预设数量篇创作文本发送到前端界面。本申请中,服务器通过使用语言模型实现了创作文本的生成,使服务器可以辅助作者完成创作。同时,服务器通过每次生成多篇创作文本,以及多次循环上述步骤,实现创作文本的生成和扩展,提高创作文本的多样性。

图3示出了本申请一实施例提供的另一种基于语言模型的辅助写作方法的流程图。在图1和图2所示实施例的基础上,如图3所示,以服务器为执行主体,本实施例的方法可以包括如下步骤:

S201、获取题材指令,题材指令用于指示用户选择的目标题材。

本实施例中,前端界面上显示有题材选项。用户可以通过鼠标点击、编号输入等方法选择题材。其中,前端界面上的题材选项可以用于选择创作文本的载体。例如,小说、诗歌、散文等。或者,前端界面上的题材选项可以用于选择创作文本的类型。例如,言情、玄幻、星际等。或者,前端界面上的题材选择还可以为多级选择。例如,当用户选择小说为创作文本的载体后,显现界面继续二级选项。用户可以通过该二级选项选择言情、玄幻、星际等类型。

当用户完成题材选项的选择后,前端界面对应生成题材指令,并将该题材指令发送到后端服务。服务器获取该题材指令。

S202、根据题材指令,确定语言模型,语言模型将用于生成目标题材的创作文本。

本实施例中,服务器根据该题材指令,从多个语言模型中选择该题材指令对应的语言模型。服务器将该语言模型作为该次创作文本生成时使用的语言模型。

在执行本实施例的方法之前,服务器可以根据预设的题材选项,对应训练每一题材选择的语言模型。例如,服务器可以使用诗歌样本训练诗歌的语言模型。或者,服务器可以使用言情小说样本,训练言情小说的语言模型。

S203、获取语种指令,语种指令用于指示用户选择的输入文本的语种以及创作文本的语种。

本实施例中,前端界面上显示有语种选项。用户可以通过鼠标点击、编号输入等方法选择语种。其中,前端界面上的语种选项可以用于选择输入文本的语种以及创作文本得到语种。其中,输入文本的语种与输出文本的语种可以为相同语种。其中,语种可以为中文、英文、法文等。

当用户完成语种选项的选择后,前端界面对应生成语种指令,并将该语种指令发送到后端服务。服务器获取该语种指令。

S204、根据语种指令,确定语言模型,语言模型可以根据语种指令指定语言的输入文本,生成语种指令指定语种的创作文本。

本实施例中,服务器根据该语种指令,从多个语言模型中选择该语种指令对应的一个语言模型。服务器将该语言模型作为该次创作文本生成时使用的语言模型。

在执行本实施例的方法之前,服务器可以根据预设的语种选项,对应训练每一语种的语言模型。例如,服务器可以使用中文小说训练中文的语言模型,使用英文的小说训练英文的语言模型。

S205、获取选择指令,选择指令用于从已经输出的预设数量篇创作文本中选择一篇创作文本作为初始文本,已经输出的创作文本为已经生成的创作文本。

本实施例中,在服务器输出预设数量篇创作文本后,服务器可以获取一选择指令。该选择指令用于从该预设数量篇创作文本中选择一篇创作文本。

一种示例中,选择指令为用户输入的选择指令,或者,选择指令为后端服务根据预设规则生成的选择指令。

本示例中,服务器获取的选择指令,可以为服务器执行生成的选择指令。服务器在输出该预设数量篇创作文本后,服务器可以根据预设规则从该预设数量篇创作文本中选择一篇。该预设规则可以为服务器从该预设数量篇创作文本中随机选择一篇。或者,该预设规则可以为服务器选择某篇创作文本,例如,选择第一篇、第二篇等。

或者,服务器获取的选择指令,可以为前端界面上传的选择指令。当前端界面上显示服务器输出的预设数量篇创作文本后,用户可以从中选择一篇创作文本。前端界面根据用户选择该篇创作文本的指令,生成选择指令,并上传到服务器。

S206、根据选择指令和预设数量篇创作文本,确定目标创作文本,目标创作文本为初始文本。

本实施例中,服务器获取该选择指令后,根据该选择指令从预设数量篇创作文本中,确定其中的目标创作文本。该目标创作文本将作为初始文本再次输入语言模型中。

例如,当输出文本为服务器第一次输出的创作文本。则,在本实施例中,被选中的目标创作文本将作为语言模型第二次生成创作文本的输入。

S207、根据初始文本和语言模型,确定词表中每一个字的模型概率。

本实施例中,服务器在将初始文本输入语言模型后,语言模型将顺序输出创作文本中每一个字的模型概率。其中,创作文本的第一个字的模型概率,由语言模型根据初始文本生成。其中,后续文字的模型概率由语言模型根据已经生成的文字和初始文本生成。其中,模型概率中包括词表中每一个字的概率。且该模型概率中所有概率的和为1。

S208、根据模型概率和预设平滑算法,确定词表中每一个字的平滑概率。

本实施例中,服务器在获取到一个字的模型概率后,使用平滑算法,对该字的模型概率进行平滑操作,得到平滑概率。该字的平滑概率中同样包括词表中每一个字的概率。且该平滑概率中所有概率的和为1。该平滑概率中的各个概率的分布相较于模型概率中各个概率的分布更为集中。例如,在模型概率中通常存在一个字的概率达到0.99。而平滑处理后的平滑概率中,则可能会出现多个概率处于差不多水平的情况。

具体的,服务器在平滑处理过程中,首先通过对该平滑模型进行统一缩放。服务器将缩放后的模型概率进行归一化,得到平滑概率。

S209、根据平滑概率,从词表中随机选择预设数量个字,预设数量个字分别用于生成预设数量篇创作文本。

本实施例中,服务器根据该字的平滑概率,从该词表中随机选择预设数量个字。例如,服务器可以根据该词表中各个字的概率,将词表中每一个字的概率分配到0-1中的一个数值。服务器随机生成一个0-1的数值,该数值处于该词表中那个一字的范围内,哪一个字即为被选中的字。

由于每一创作文本中,后续文字的模型概率由语言模型根据已经生成的文字和初始文本生成。因此,实际生成的创作文本数量远大于预设数量篇。例如,当预设数量为3,创作文本的字数为4个字时,语言模型生成创作文本的过程可以包括:

步骤1、服务器获取第一个字的模型概率。服务器根据该模型概率和预设平滑算法计算得到第一个字的平滑概率。服务器根据该平滑概率,随机确定其中的三个字。该三个字分别为三个创作文本的第一个字,该三个创作文本分别命名为创作文本1、创作文本2、创作文本3。

步骤2、创作文本1中,服务器根据第一个字和初始文本生成第二个字的模型概率。服务器根据创作文本1中第二个字的模型概率,计算平滑概率,并随机确定三个字。该三个字与创作文本1的第一个字组成三个创作文本,分别命名为创作文本1.1、创作文本1.2、创作文本1.3。

步骤3、创作文本2中,服务器根据第一个字和初始文本生成第二个字的模型概率。服务器根据创作文本2中第二个字的模型概率,计算平滑概率,并随机确定三个字。该三个字与创作文本2的第一个字组成三个创作文本,分别命名为创作文本2.1、创作文本2.2、创作文本2.3。

步骤4、创作文本3中,服务器根据第一个字和初始文本生成第二个字的模型概率。服务器根据创作文本3中第二个字的模型概率,计算平滑概率,并随机确定三个字。该三个字与创作文本3的第一个字组成三个创作文本,分别命名为创作文本3.1、创作文本3.2、创作文本3.3。

……

步骤39、创作文本3.3.2中,服务器根据前三个字和初始文本生成第四个字的模型概率。服务器根据创作文本3中第四个字的模型概率,计算平滑概率,并随机确定三个字。该三个字与创作文本3的前三个字组成三个创作文本,分别命名为创作文本3.3.2.1、创作文本3.3.2.2、创作文本3.3.2.3。

步骤40、创作文本3.3.3中,服务器根据前三个字和初始文本生成第四个字的模型概率。服务器根据创作文本3中第四个字的模型概率,计算平滑概率,并随机确定三个字。该三个字与创作文本3的前三个字组成三个创作文本,分别命名为创作文本3.3.3.1、创作文本3.3.3.2、创作文本3.3.3.3。

步骤41、经过步骤40后,服务器一共获取创作文本81篇。服务器根据该81篇创作文本中,每一个字的平滑概率,计算每一篇创作文本的概率总和。

步骤42、服务器根据该81片创作文本的概率总和,确定其中概率总和最大的3片创作文本为输出的创作文本。

S210、输出预设数量篇创作文本。

其中,步骤S208与图2实施例中的步骤S103实现方式类似,本实施例此处不再赘述。

S211、获取修改指令,修改指令中包括待修改创作文本和修改内容,待修改创作文本为预设数量篇创作文本中的一篇创作文本。

本实施例中,当前端界面显示服务器输出的预设数量篇创作文本后,用户可以选择一篇创作文本作为待修改创作文本。用户针对该篇待修改创作文本进行修改。前端界面根据用户选择的待修改创作文本以及修改内容生成修改指令。前端界面将该修改指令发送到服务器。

用户每次可以选择其中一篇创作文本作为待修改创作文本。用户可以通过多次修改,实现对前端界面中的多篇创作文本进行修改。在该过程中,前端界面根据用户多次修改操作,生成多条修改指令,并将该多条修改指令上传到服务器。

S212、根据修改指令中的修改内容修改待修改创作文本。

本实施例中,服务器在接收到前端界面上传的修改指令后,解析该修改指令中的待修改创作文本和修改内容。服务器根据该修改内容,修改其对应的待修改该创作文本。

本申请提供的基于语言模型的辅助写作方法,前端界面上显示有题材选项。当用户完成题材选项的选择后,前端界面对应生成题材指令,并将该题材指令发送到后端服务。服务器根据该题材指令,从多个语言模型中选择该题材指令对应的语言模型。在服务器输出预设数量篇创作文本后,服务器可以获取一选择指令。该选择指令用于从该预设数量篇创作文本中选择一篇创作文本。服务器根据该选择指令从预设数量篇创作文本中,确定其中的目标创作文本。服务器在将初始文本输入语言模型后,语言模型将顺序输出创作文本中每一个字的模型概率。服务器使用平滑算法,对该字的模型概率进行平滑操作,得到平滑概率。服务器根据该字的平滑概率,从该词表中随机选择预设数量个字。该预设数量个字分别用于生成预设数量篇创作文本。服务器输出预设数量篇创作文本。当前端界面显示服务器输出的预设数量篇创作文本后,用户可以选择一篇创作文本作为待修改创作文本。用户针对该篇待修改创作文本进行修改。服务器在接收到前端界面上传的修改指令后,解析该修改指令中的待修改创作文本和修改内容。本申请中,服务器通过将模型概率换算为平滑概率,提高词表中各个字被选中的概率。同时,服务器通过从该平滑概率中选择预设数量个字生成创作文本,提高了创作文本的多样性,降低了创作文本重复的可能性。本申请中,服务器还可以通过题材指令,选择题材,以及通过修改指令修改创作文本,增加了辅助写作方法的灵活性,使创作文本不再局限于系统设定的输出以及类型。

在上述各是实施例的基础上,以服务器为执行主体,本实施例还包括训练语言模型。该语言模型主要采用Transformer-xl架构。Transformer-xl结构是在Transformer架构基础上改进后的模型架构,主要是解决长序列的问题。此外,与Transformer-xl架构类似的CNN、RNN、LSTM等深度学习模型架构,均可以用于训练本申请所使用的语言模型。基于Transformer-xl架构,为了使语言模型具有常温记忆能力,本实施例还在语言模型的架构中设置了记忆模块memory。该记忆模块memory的使用可以使语言模型能够记住在之前较远地方出现过的文本,从而增加创作文本的语言逻辑。基于对长文记忆能力和设备能力的总和考虑,本实施例的语言模型使用1280长度的memory。

具体的,该语言模型训练的步骤可以包括:

步骤1、服务器获取训练数据。

本步骤中,服务器获取的训练数据为预设题材的样本数据。例如,当预设题材为诗歌时,服务器获取的样本数据为诗歌。例如,当预设题材为小说时,服务器获取的样本数据为小说。例如,当预设题材为言情小说时,服务器获取的样本数据为言情小数。

其中,服务器获取的训练数据可以来自网络。例如,服务器可以通过网络爬虫,从网络中爬取相应的样本数据。或者,服务器获取的训练数据可以来自数据库。例如,服务器可以通过购买数据库数据,或者下载公开数据库数据,获取对应的样本数据。

步骤2、服务器对训练数据进行数据清洗。

本步骤中,服务器在获取训练数据后,需要对训练数据进行清洗。数据清洗包括删除训练数据中的空格,以及统一训练数据中字符间距。例如,当该初始文本中包括全角和半角时,服务器可以将其中的半角字符统一为全角字符。

步骤3、服务器对训练数据进行标准化处理。

本步骤中,服务器需要将输入数据转为语言模型的预设格式。例如,服务器可以将训练数据连接成一个字符串。以小说为例,服务器可以通过删除段落间的回车符,使该篇小说所有的段落连接在一起。服务器还可以通过接连文本内容,将小说章节标题连接到上一章节的末尾。以及,服务器还可以通过连接文本内容,在小说章节标题后直接连接本章节内容。服务器可以根据预设的词表,确定该训练数据中每一个字或者单词对应的id。服务器使用该id替换该训练数据中的字和单词。

步骤4、服务器将训练数据输入到Transformer-xl架构的初始模型中进行训练,得到语言模型。

本步骤中,服务器输入的训练数据中,字和单词为使用id替换后的字和单词。即该训练数据为一个id序列。服务器通过将训练数据输入到初始模型中,训练得到语言模型。该语言模型可以用于根据输入文本生成创作文本。

本申请提供的基于语言模型的辅助写作方法中,服务器通过获取训练数据、对训练数据进行清洗和标准化、模型训练等步骤实现语言模型的训练。本申请中,通过训练该语言模型,服务器可以根据初始文本生成预设数量篇创作文本,实现了辅助用户完成创作的效果,提高了创作文本的多样性。

图4示出了本申请一实施例提供的一种基于语言模型的辅助写作装置的结构示意图,如图4所示,本实施例的基于语言模型的辅助写作装置10用于实现上述任一方法实施例中对应于服务器的操作,本实施例的基于语言模型的辅助写作装置10包括:

获取模块11,用于获取初始文本,初始文本中包括已经生成的创作文本和/或用户输入文本,已经生成的创作文本为最近一次生成的预设数量篇创作文本中的一篇;

生成模块12,用于将初始文本输入至预先训练的语言模型,生成预设数量篇创作文本,创作文本的内容包括在初始文本的基础扩展得到的文本内容;

输出模块13,用于输出预设数量篇创作文本。

一种示例中,基于语言模型的辅助写作装置10还包括:

修改模块14,用于获取修改指令,修改指令中包括待修改创作文本和修改内容,待修改创作文本为预设数量篇创作文本中的一篇创作文本;根据修改指令中的修改内容修改待修改创作文本。

另一种示例中,基于语言模型的辅助写作装置10还包括:

题材获取模块15,用于获取题材指令,题材指令用于指示用户选择的目标题材;根据题材指令,确定语言模型,语言模型将用于生成目标题材的创作文本,创作文本包括在初始文本的基础扩展得到的目标题材的文本内容。

再一种示例中,基于语言模型的辅助写作装置10还包括:

语种选择模块16,用于获取语种指令,语种指令用于指示用户选择的输入文本的语种以及创作文本的语种;根据语种指令,确定语言模型,语言模型可以根据语种指令指定语言的输入文本,生成语种指令指定语种的创作文本。

本申请实施例提供的基于语言模型的辅助写作装置10,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。

图5示出了本申请一实施例提供的另一种基于语言模型的辅助写作装置的结构示意图,在图4所示实施例的基础上,如图5所示,本实施例的基于语言模型的辅助写作装置10用于实现上述任一方法实施例中对应于服务器的操作,本实施例中获取模块11和生成模块12包括:

获取子模块111,用于获取选择指令,选择指令用于从已经输出的预设数量篇创作文本中选择一篇创作文本作为初始文本,已经输出的创作文本为已经生成的创作文本;

第一确定子模块112,用于根据选择指令和预设数量篇创作文本,确定目标创作文本,目标创作文本为初始文本。

一种示例中,选择指令为用户输入的选择指令,或者,选择指令为后端服务根据预设规则生成的选择指令。

第二确定子模块121,用于根据初始文本和语言模型,确定词表中每一个字的模型概率;

第三确定子模块122,用于根据模型概率和预设平滑算法,确定词表中每一个字的平滑概率;

生成子模块123,用于根据平滑概率,从词表中随机选择预设数量个字生成预设数量篇创作文本。

本申请实施例提供的基于语言模型的辅助写作装置10,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。

图6示出了本申请实施例提供的一种基于语言模型的辅助写作系统的结构示意图。如图6所示,该基于语言模型的辅助写作系统20可以包括:前端界面21和后端服务22。

前端界面21与后端服务22可以运行于同一个设备上。或者,前端界面21与后端服务22也可以分别运行于不同设备上。例如,前端界面可以显示在用户终端中。该用户终端可以包括手机、电脑、平板等终端设备。例如,后端服务可以运行于服务器上。

其中,前端界面21具体用于实现与用户之间的交互。该交互可以包括获取用户输入的初始文本、获取用户的选择指令、获取用户的修改指令、获取用户题材指令等。前端界面21在获取上述交互信息后,可以将上述小胡信息上传到后端服务22。前端界面21还可以获取后端服务22反馈的创作文本,并在显示界面中显示该创作文本。

如图7所示为前端界面的一种页面示意图。该页面中包括输入文本框、输出文本框和按钮。其中,用户可以在输入文本框中键入输入文本。前端界面通过该输入文本框获取用户键入的输入文本。其中,输出文本框用于输出后端服务反馈的创作文本。如图7所示,当预设数量为3时,前端界面可以输出三个创作文本。

其中,按钮可以包括撤回按钮和生成按钮。当用户点击撤回按钮时,输出文本框中展示的创作文本退回上一次生成的创作文本。例如,当用户在第5次生成的创作文本在输出文本框中显示后,点击该撤回按钮。此时,该前端界面将显示第4次生成的创作文本。当用户点击生成时,前端界面将上传输入文本框中的输入文本和/或选择指令。

此外,用户还可以通过点击其中一个创作文本,实现对该创作文本的选中。当用户在前端界面中选中该创作文本后,用户可以在该前端界面中修改该创作文本。

并且,用户可以通过多次点击生成、多次点击撤回或者生成、多次键入输入文本、多次修改创作文本等,达到使用计算机辅助创作的目的。

如图8所示为前端界面的另一种页面示意图。该页面通常应用于移动终端。该页面中包括输入文本框和输出文本框。用户可以在该输入文本框中键入输入文本。当用户点击“继续”按钮时,前端界面可以将输入文本上传到后台服务。前端界面还可以接收后端服务反馈的创作文本,并在输入文本框中显示创作文本。该输入文本框中仅显示一个创作文本。当用户需要查看其他创作文本时,用户可以通过点击开输出文本框上的按钮“换一批”,实现更换创作文本的操作。当用户点击“撤回”按钮时,前端界面可以显示用户在上一次时键入的输入文本。同时,前端界面还可以显示后端服务在上一次时反馈给前端界面的创作文本。

其中,后端服务22具体用于根据初始文本生成预设数量篇创作文本,并将创作文本反馈到前端界面。在具体实现过程中,后端服务主要采用Flask框架进行接口的搭建。前端界面可以通过请求后端服务搭建的接口,实现与后端服务器之间的信息交互。

当后端服务22运行于服务器时,该服务器的硬件结构可以如图9所示,包括存储器221、处理器222和通信接口224。

其中,存储器221用于存储计算机程序。该存储器221可能包含高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失性存储(Non-Volatile Memory,NVM),例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。

其中,处理器222用于执行存储器存储的计算机程序,以实现上述实施例中的基于语言模型的辅助写作方法。具体可以参见前述方法实施例中的相关描述。该处理器222可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

可选地,存储器221既可以是独立的,也可以跟处理器222集成在一起。当存储器221是独立于处理器222之外的器件时,服务器还可以包括总线223。该总线223用于连接存储器和处理器。该总线223可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

其中,通信接口224可以通过总线223与处理器222连接。处理器222可以通过该通信接口实现与前端设备21的通信。

本申请实施例提供的基于语言模型的辅助写作系统20,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。

本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时用于实现上述的各种实施方式提供的方法。

本申请还提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。设备的至少一个处理器可以从计算机可读存储介质中读取该计算机程序,至少一个处理器执行该计算机程序使得设备实施上述的各种实施方式提供的方法。

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

其中,各个模块可以是物理上分开的,例如安装于一个的设备的不同位置,或者安装于不同的设备上,或者分布到多个网络单元上,或者分布到多个处理器上。各个模块也可以是集成在一起的,例如,安装于同一个设备中,或者,集成在一套代码中。各个模块可以以硬件的形式存在,或者也可以以软件的形式存在,或者也可以采用软件加硬件的形式实现。本申请可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

当各个模块以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例方法的部分步骤。

应该理解的是,虽然上述实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

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

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号