CN110209803A - 故事生成方法、装置、计算机设备及存储介质 - Google Patents

故事生成方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN110209803A
CN110209803A CN201910527129.0A CN201910527129A CN110209803A CN 110209803 A CN110209803 A CN 110209803A CN 201910527129 A CN201910527129 A CN 201910527129A CN 110209803 A CN110209803 A CN 110209803A
Authority
CN
China
Prior art keywords
word
story
sequence
sentences
generated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910527129.0A
Other languages
English (en)
Other versions
CN110209803B (zh
Inventor
姚丽丽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910527129.0A priority Critical patent/CN110209803B/zh
Publication of CN110209803A publication Critical patent/CN110209803A/zh
Application granted granted Critical
Publication of CN110209803B publication Critical patent/CN110209803B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/34Browsing; Visualisation therefor
    • G06F16/345Summarisation for human users
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Machine Translation (AREA)

Abstract

本申请公开了一种故事生成方法、装置、计算机设备及存储介质,在该方案中,计算机设备在接收到故事题目数据时,根据该故事题目数据生成词序列;其中词序列用于表征故事框架;并利用该词序列生成故事语句序列,该故事语句序列中故事语句组在一起即为故事;其中词序列中每个词对应所述故事语句序列中一个故事语句。本申请的方案在自动生成故事的过程中,通过自动生成词序列来表征故事框架,并在生成的词序列也就是故事框架的作用下自动生成连贯的故事,进而提高自动生成故事的质量;且仅需要输入故事题目数据就可以自动生成故事,操作简单,降低故事生成的复杂性。

Description

故事生成方法、装置、计算机设备及存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种故事生成方法、装置、计算机设备及存储介质。
背景技术
当前社会,无论是在日常生活、商业活动、还是在教育领域中,人们都倾向于借助故事来讲述经验。也就是说,通过讲故事来分享经验已经成为一个基本且流行的人类社交行为。基于此,人们对于故事的需求急剧增加。因此,如何便捷、快速地自动生成高质量的故事,是本领域技术人员需要解决的技术问题。
发明内容
有鉴于此,本申请提供了一种故事生成方法、装置、计算机设备及存储介质,以在生成的词序列也就是故事框架的作用下自动生成连贯的故事,进而提高自动生成故事的质量。
为实现上述目的,一方面,本申请提供了一种故事生成方法,包括:
接收故事题目数据;
根据所述故事题目数据生成词序列;所述词序列用于表征故事框架;
利用所述词序列生成故事语句序列;所述词序列中每个词对应所述故事语句序列中一个故事语句。
在一种可能的实现方式中,所述根据所述故事题目数据生成词序列,包括:
根据所述故事题目数据,生成与词数量参数对应的词序列。
在又一种可能的实现方式中,所述根据所述故事题目数据生成词序列之后,还包括:
判断是否存在多个词序列;
若是,则根据选择指令,从多个所述词序列中选取相对应的词序列。
在又一种可能的实现方式中,所述生成所述词序列中下一个词,包括:
生成一个预选词,并判断所述预选词在所述词序列中的频次是否小于预设频次;
若小于,则将所述预选词作为所述词序列中下一个词;
若不小于,则重新生成一个预选词,并执行所述判断所述预选词在所述词序列中的频次是否小于预设频次的步骤。
又一方面,本申请提供了一种故事生成装置,包括:
接收单元,用于接收故事题目数据;
词序列生成单元,用于根据所述故事题目数据生成词序列;所述词序列用于表征故事框架;
故事语句序列生成单元,用于利用所述词序列生成故事语句序列;所述词序列中每个词对应所述故事语句序列中一个故事语句。
又一方面,本申请还提供了一种计算机设备,包括:
处理器和存储器;
其中,所述处理器用于执行所述存储器中存储的程序;
所述存储器用于存储程序,所述程序至少用于:
接收故事题目数据;
根据所述故事题目数据生成词序列;所述词序列用于表征故事框架;
利用所述词序列生成故事语句序列;所述词序列中每个词对应所述故事语句序列中一个故事语句。
又一方面,本申请还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现本申请任一实施例的故事生成方法。
可见,在本申请实施例中,计算机设备在接收到故事题目数据时,首先根据该故事题目数据生成词序列;其中词序列用于表征故事框架;然后再利用该词序列生成故事语句序列作为故事;由于故事框架可以确定故事的主体框架;因此,在自动生成故事的过程中,基于词序列也就是故事框架能够实现在故事主体框架的基础上生成连贯的故事,进而提高自动生成故事的质量;且仅需要输入故事题目数据就可以自动生成故事,操作简单。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请实施例的一种故事生成方法所适用的硬件组成框架示意图;
图2示出了本申请实施例的另一种故事生成方法所适用的硬件组成框架示意图;
图3示出了本申请实施例的一种故事生成方法的一种流程示意图;
图4示出了本申请实施例的一种故事生成方法的另一种流程示意图;
图5示出了本申请实施例的一种动态词序列生成控制模式示意图;
图6示出了本申请实施例的一种静态词序列生成控制模式示意图;
图7示出了本申请实施例的一种故事生成方法的又一种流程示意图;
图8示出了本申请实施例的一种生成词序列中下一个词的流程示意图;
图9示出了本申请实施例的一种两种控制模式的系统架构示意图;
图10示出了本申请实施例的一种应用场景实施例对应的流程示意图;
图11示出了本申请实施例的一种故事生成装置一个实施例的组成结构示框图。
具体实施方式
目前,通过讲故事分享经验是一个基本的、流行的人类社交行为。人们对于故事的需求日益增加。本申请中提供的技术方案可以在用户需要故事时,根据接收到的故事题目数据自动生成连贯的故事以供用户使用,进而提高用户获取故事的效率和质量。
为了便于理解,先对本申请的故事生成方法对应的方案所适用的硬件组成框架进行介绍。可以参见图1至图2,其中,图1其示出了本申请一种故事生成方法所适用的硬件组成框架示意图。
由图1可知,该硬件组成框架可以包括:计算机设备10,其中,计算机设备10可以包括:处理器11、存储器12、通信接口13、输入单元14和显示器15和通信总线16。
处理器11、存储器12、通信接口13、输入单元14、显示器15、均通过通信总线16完成相互间的通信。
在本申请实施例中,该处理器11,可以为中央处理器(Central Processing Unit,CPU),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。该处理器可以调用存储器12中存储的程序。具体的,处理器可以执行以下故事生成方法的实施例中计算机设备侧所执行的操作。
存储器12中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:
接收故事题目数据;
根据故事题目数据生成词序列;词序列用于表征故事框架;
利用词序列生成故事语句序列;词序列中每个词对应故事语句序列中一个故事语句。
在一种可能的实现方式中,该存储器12可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能(比如声音播放功能、图像播放功能等)所需的应用程序等;存储数据区可存储根据计算机的使用过程中所创建的数据,比如,用户数据、用户访问数据以及音视频数据等等。
此外,存储器12也可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
该通信接口13可以为通信模块的接口,如GSM模块的接口。
本申请还可以包括显示器14和输入单元15等等。
当然,图1所示的计算机设备的结构并不构成对本申请实施例中计算机设备的限定,在实际应用中计算机设备可以包括比图1所示的更多或更少的部件,或者组合某些部件。
其中,图1中的计算机设备10可以为终端(如手机、平板电脑等移动终端,或PC机等固定终端)、服务器、智能电子设备(如故事机、腕表)。
在本申请实施例中,计算机设备10可以根据通信接口13利用网络接收外界其他设备发送的故事题目数据;也可以通过自身的输入单元14(如键盘、触摸屏、语音输入设备等)获取故事题目数据。
相应的,计算机设备10中处理器11可以通过通信总线16从通信接口13或者输入单元14接收故事题目数据,并调用存储器12中存储的程序对故事题目数据进行处理生成故事语句序列,以得到故事,从而实现自动生成故事的目的。
在一种可能的情况中,为了保证生成的故事的大小满足用户的实际需求,用户可以设置词数量参数的数值,即设定生成的词序列中词的数量。计算机设备10还可以接收输入的词数量参数的数值,根据故事题目数据,生成与词数量参数对应的词序列,进而可以生成与词序列对应的故事语句序列。这样,用户可以通过对词数量参数的设置,控制生成的故事的大小。
在又一种可能的情况中,为了使计算机设备10自动生成的故事更加符合用户自身的需求。在本申请实施例中,计算机设备10能够生成多个词序列,此时,可以是并行生成多个词序列,也可以是重复多次执行词序列生成步骤生成多个词序列。此时,用户可以通过选择指令从多个词序列中选取相对应的词序列。即用户可以通过选择指令确定符合自身需求的词序列,进而使得计算机设备10可以根据用户选取的词序列生成对应的故事语句序列。
可以理解的是,本申请实施例中并不对计算机设备的数量进行限定,其可以是多个计算机设备共同协作完成故事生成功能。在一种可能的情况中,请参考图2。由图2可知,该硬件组成框架可以包括:第一计算机设备101、第二计算机设备102。第一计算机设备101与第二计算机设备102之间通过网络103实现通信连接。
在本申请实施例中,第一计算机设备101与第二计算机设备102的硬件结构可以参考图1中计算机设备10,可以理解为本实施例中具有两个计算机设备10,两者进行数据交互,实现故事生成功能。进一步,本申请实施例中并不对网络103的形式进行限定,如,网络103可以是无线网络(如WIFI、蓝牙等),也可以是有线网络。
其中,第一计算机设备101和第二计算机设备102可以是同一种计算机设备,如第一计算机设备101和第二计算机设备102均为服务器;也可以是不同类型的计算机设备,如,第一计算机设备101可以是终端或智能电子设备,第二计算机设备102可以服务器。在又一种可能的情况中,可以利用计算能力强的服务器作为第二计算机设备102来提高数据处理效率及可靠性,进而提高故事生成效率。同时利用成本低,应用范围广的终端或智能电子设备作为第一计算机设备101,用于实现第二计算机设备102与用户之间的交互。
进一步,为了便于用户获取该故事语句序列,第一计算机设备101还可以在接收到故事语句序列时,将该故事语句序列输出。本申请实施例并不限定第一计算机设备101输出形式,如,可以利用显示器输出故事语句序列,也可以是通过语音设备输出故事语句序列。
举例说明,请参考图3,终端在获取到故事题目数据后,将该故事题目数据通过网络发送给服务器。服务器在接收到故事题目数据后,根据故事题目数据生成词序列,并利用词序列自动生成故事语句序列即故事。服务器在得到故事语句序列后可以将故事语句序列通过网络发送给终端。终端输出故事语句序列。
在另一种可能的情况中,为了保证生成的故事的大小满足用户的实际需求,第一计算机设备101还可以接收用户输入的词数量参数的数值,并将设置后的词数量参数发送给第二计算机设备102,以便第二计算机设备102根据故事题目数据,生成与词数量参数对应的词序列。
在又一种可能的情况中,为了使计算机设备10自动生成的故事更加符合用户自身的需求。第一计算机设备101还可以接收用户输入的选择指令,并将该选择指令发送给第二计算机设备102,以便第二计算机设备102根据选择指令从多个词序列中选取用户所需的词序列,并利用该词序列生成对应的故事语句序列。这样,用户可以通过选择指令确定符合自身需求的词序列,进而得到符合用户自身的需求故事。
结合以上共性,参见图4,其示出了本申请一种故事生成方法一个实施例的流程图,本实施例的方法可以包括:
S101、接收故事题目数据。
其中,故事题目数据是指需要生成的故事的题目。题目通常情况下用于约束生成故事的主题。
本申请实施例中并不限定故事题目数据对应的语种,如,可以是汉语,也可以是英语等。本实施例中也不限定故事题目数据的长度,即不限定故事题目的字符数量,如,可以是两个单词或汉字,也可以是5个单词或汉字。举例说明,故事题目数据可以是:小白兔种萝卜,或者故事题目数据也可以是:Spaghetti Sauce或者是Computer。
需要说明的是,本申请实施例中计算机设备可以通过自身输入单元获取故事题目数据,如,计算机设备通过键盘接收用户输入的故事题目数据,或者计算机设备通过喇叭接收用户输入的故事题目数据。计算机设备也可以通过网络(可以是有线网络或者是无线网络)获取其他设备发送的故事题目数据,当然,本申请实施例中并不限定其他设备(如其他计算机设备)获取故事题目数据的方式。举例说明,其他计算机设备(如终端)接收用户通过屏幕输入的故事题目数据。
可以理解的是,本实施例中并不限定故事题目数据的数据形式,可以根据后续步骤的实际处理需求确定故事题目数据的数据形式。举例说明,如果后续步骤需要利用序列数据进行处理,则可以将故事题目数据的数据形式设置为序列形式,如故事题目数据t={t1,t2,...,tn},其中ti是故事题目数据中的第i个词;其中,这里的词可以理解为词语,其可以是单个词,也可以是一个词组,后续词序列中词也可以理解为词语,其可以是单个词,也可以是一个词组。当然,本实施例并不对接收到的故事题目数据的数据形式进行限定,可以是仅接收按照指定的数据形式输入的故事题目数据;也可以是不限定输入的故事题目数据的数据形式,在后续使用故事题目数据时,由计算机设备自行将故事题目数据转换为所需数据形式。
在一种可能的情况中,为了保证生成的故事的大小满足用户的实际需求,本申请实施例中还可以设置词数据参数。以便用户可以通过设置词数量参数的大小来确定所需故事的大小,即设定生成的词序列中词的数量来限制故事语句序列的大小。相应的,本申请实施例中计算机设备还可以接收词数量参数的数值,根据故事题目数据,生成与词数量参数对应的词序列。其中,计算机设备可以直接接收用户输入的词数量参数的数值,也可以通过其他计算机设备接收用户输入的词数量参数的数值。当然,本申请实施例并不限定用户输入词数量参数的数值的方式,举例说明,可以是键盘输入或者语音输入。
S102、根据故事题目数据生成词序列;词序列用于表征故事框架。
S103、利用词序列生成故事语句序列;词序列中每个词对应故事语句序列中一个故事语句。
其中,在本申请实施例中,通过词序列来表征故事框架。故事框架(可以理解为故事线)一般代表一个故事的主旨内容,也可以理解为故事大纲或故事主体框架即整体故事框架,表达的是写作者的意图。本申请实施例中采用有序的词序列来近似表示故事框架。即通过词序列来模拟故事框架,进而模拟写作者的意图,并基于词序列生成故事语句序列。本申请实施例中通过词序列来限定写作框架,即利用词序列控制生成完整、连贯、质量高的故事语句序列。可以理解的是,本申请实施例将故事生成的过程分为两部分:词序列生成(即故事框架生成)以及故事语句序列生成(即故事生成),分别对应步骤S102和步骤S103。
需要说明的是,本申请实施例中并不限定词序列以及故事语句序列的生成方式,只要可以根据故事题目数据生成词序列,根据词序列生成故事语句序列即可。例如,可以利用神经网络算法生成词序列,以及对应的故事语句序列,如,可以将故事题目数据作为神经网络算法的输入信息,利用神经网络算法输出词序列;将词序列和题目作为神经网络算法的输入信息,利用神经网络算法输出故事语句序列。当然,本申请实施例中并不对神经网络算法进行限定。
举例说明,可以是Seq2Seq模型;其中,seq2seq是一个Encoder–Decoder结构的网络,它的输入是一个序列,输出也是一个序列,Encoder中将一个可变长度的信号序列变为固定长度的向量表达,Decoder将这个固定长度的向量变成可变长度的目标的信号序列;也可以是隐式内容引入控制模型;其中,隐式内容引入控制模型是在seq2seq模型的基础上,解码过程中增加额外的输入信息来影响生成的目标序列。需要指出的是,本申请实例中也不限定神经网络算法中使用的神经单元,如,可以是LSTM单元;其中,LSTM(Long Short-Term Memory)单元是长短期记忆网络模型,具体是一种循环神经网络,通过门机制的控制使得网络可以选择性地记忆过去重要的信息,而忽略不重要的信息,从而达到对长期语境等关系的建模,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件;也可以是GRU单元;其中GRU(Gated Recurrent Unit)单元是基于LSTM的主要思想,并能减少在保留长期序列信息时的梯度消失问题。
在本申请实施例中,根据写作模式,可以将词序列生成方式设置为动态词序列生成控制模式或静态词序列生成控制模式;其中,动态词序列生成控制模式是:每次先产生一个新的词加入词序列中,然后再依据词序列中新加入的词相对应的产生一个新的故事语句,即词序列中词和故事语句序列中故事语句交替生成,直到得到完整的故事为止。可以参考图5,其中,l代表词序列,s代表故事语句序列,相应的,动态词序列生成控制模式对应的过程可以是:依据故事题目数据,生成词序列中第一个词l1,依据故事题目数据以及l1生成故事语句序列中第一个故事语句s1;依据故事题目数据、l1以及s1,生成第二个词l2,依据故事题目数据、s1以及l2,生成第二个故事语句s2;这样依次交替生成直到依据故事题目数据、s1-s4以及l5,生成第五个故事语句s5
静态词序列生成控制模式是:先产生整个词序列,并在故事语句序列的生成过程中保持词序列不变,之后基于完整的词序列生成故事语句序列。可以参考图6,其中,l代表词序列,s代表故事语句序列,相应的,静态词序列生成控制模式对应的过程可以是:依据故事题目数据,生成词序列中第一个词l1,并依次依据之前生成的词序列中的词生成下一个词,即依据故事题目数据,生成词序列中第一个词l1;依据故事题目数据以及l1生成第二个词l2,直到依据故事题目数据以及l1-l4生成第五个词l5,在完整的生成词序列l后,依据词序列l以及故事题目生成故事语句序列s1-s5
可以理解为,动态词序列生成控制模式的写作意图随着写作的过程,即故事语句的生成过程)不断调整;静态词序列生成控制模式的整个写作框架(即词序列)在写作开始前(即生成故事语句效率之前)就完全确定。可见,动态词序列生成控制模式由于可以实时调整词序列,因此更加灵活。静态词序列生成控制模式由于在生成故事语句序列之前,就已经完整生成了词序列,因此能够提高生成故事的一致性,且从训练角度看,静态词序列生成控制模式在故事生成过程中可以不去记忆已生成的全部故事语句,从词序列中得到故事概要信息,因此训练过程更加简洁。用户可以根据实际需求选择所需控制模式。进一步,本申请实施例中并不限定动态词序列生成控制模式下词序列中词的生成方式以及静态词序列生成控制模式下词序列中词的生成方式。
在本申请实施例中,可以仅存在动态词序列生成控制模式来生成词序列,以及对应的故事语句序列,或者仅存在静态词序列生成控制模式来生成词序列,以及对应的故事语句序列;也可以是同时存在动态词序列生成控制模式以及静态词序列生成控制模式,此时,在用户需要生成故事时,可以由用户根据自身的实际需求选择使用动态词序列生成控制模式或静态词序列生成控制模式,生产符合用户需求的故事。本申请实施例并不对用户选择动态词序列生成控制模式或静态词序列生成控制模式的方式进行限定,例如,用户可以在输入故事题目数据时,同时输入选择的控制模式;也可以是在计算机设备接收到用户输入的故事题目数据时,提示用户选择控制模式。
可选的,静态词序列生成控制模式下词序列中词的生成方式可以是:利用故事题目数据,以及词序列中已生成的词,生成词序列中下一个词,直到词序列中已生成的词的数量满足第一预设值。
其中,本申请实施例并不限定词序列中已生成的词对应的数量。例如,词序列中已生成的词可以指当前词序列中已生成的全部词;词序列中已生成的词也可以指当前词序列中已生成的最新词,即词序列中已生成的词中的最后一个词。
举例说明,当词序列中已生成的词指当前词序列中已生成的全部词时,静态词序列生成控制模式下词序列中词的生成方式可以是:初始情况,利用故事题目数据,生成词序列中下一个词即第一个词,此时词序列中不存在已生成的词,因此初始情况仅利用故事题目数据生成词序列中第一个词;后续循环情况,利用故事题目数据,以及词序列中已生成的全部词,生成词序列中下一个词,如,利用故事题目数据以及词序列中已生成的第一个词,生成词序列中第二个词,利用故事题目数据以及词序列中已生成的第一个词和第二个词,生成词序列中第三个词,...利用故事题目数据以及词序列中已生成的全部i-1个词,生成词序列中第i个词,直到i为第一预设值,直到词序列中已生成的词的数量满足第一预设值。
当词序列中已生成的词指当前词序列中已生成的最新词时,静态词序列生成控制模式下词序列中词的生成方式可以是:初始情况,利用故事题目数据,生成词序列中下一个词即第一个词,此时词序列中不存在已生成的词,因此初始情况仅利用故事题目数据生成词序列中第一个词;后续循环情况,利用故事题目数据,以及词序列中已生成的最新词,生成词序列中下一个词,如,利用故事题目数据以及词序列中已生成的最新词即第一个词,生成词序列中第二个词,利用故事题目数据以及词序列中已生成的最新词即第二个词,生成词序列中第三个词,...利用故事题目数据以及词序列中已生成的第i-1个词,生成词序列中第i个词,直到i为第一预设值,直到词序列中已生成的词的数量满足第一预设值。
当然,为了进一步提高生成的词序列中词的可靠性,可选的,词序列中已生成的词可以指当前词序列中已生成的全部词。可以理解为,通过当前词序列中已生成的全部词来限制下一个词的生成,能够提高词序列中生成的下一个词与之前生成的词的关联度,进而提高生成的故事语句序列的连贯性。
需要说明的是,由于静态词序列生成控制模式下词序列中词的生成仅仅依赖于故事题目数据。因此,可以将静态词序列生成控制模式下词序列中词的生成过程看成是条件生成问题。即每个词的生成概率依赖于已生成的词以及故事题目数据。本申请实施例可以利用条件生成模型,如,Seq2Seq模型来控制词序列的生成过程。可选的,根据第一上文信息以及第一驱动信息,利用Seq2Seq模型生成词序列中下一个词;其中,第一上文信息为故事题目数据,第一驱动信息为词序列中已生成的词。
其中,词序列中每个词的生成概率依赖于词序列中已生成的词以及给定的故事题目数据,因此,Seq2Seq模型对应的静态词序列生成模型可以是:p(li|t,l1:i-1;θ);其中,p为概率,li为词序列中下一个词即词序列中第i个词,t为故事题目数据,即第一上文信息,l1:i-1为词序列中前i-1个词,即第一驱动信息,θ为模型参数。其中,在Seq2Seq模型内部可以使用LSTM(或者是BiLSTM(Bi-directional Long Short-Term Memory)是由前向LSTM与后向LSTM组合而成)来构造最小处理单元。具体的,首先使用双向LSTM将故事题目数据编码成一个向量,然后使用另一个解码器进行解码生成词序列。相应的,编码的故事题目数据向量可以是相应的静态词序列生成模型可以是其中,LSTMatt表示带注意力机制的LSTM神经单元,表示解码的隐藏层状态,g(.)表示一个多层感知机,表示前向的隐藏层状态,表示后向的隐藏层状态,li-1为词序列中第i-1个词,t为故事题目数据向量。
本申请实施例中,利用Seq2Seq模型求解静态词序列生成模型针对词表库中每个词的概率值,根据词表中每个词的概率值,确定词序列中下一个词。一般情况下,可以选择概率值最大的词作为词序列中下一个词。当然,本申请实施例对此并不进行限定。需要说明的是,本申请实施例并不对词表库的训练过程以及词表库中包含的词的数量(可以是上万级别,甚至更多)进行限定。例如,可以利用关键词抽取算法训练形成词表库,举例说明,在训练词序列生成的过程中,可以依次从故事的每一句故事语句中抽取出一个词,将这些词有序地组合起来就会形成词序列,即故事框架。因此,可以通过抽取大量故事中故事语句的关键词形成词表库。
可以理解的是,本申请实施例中并不对关键词抽取算法进行限定,例如可以是基于规则的关键词抽取算法,RAKE(Rapid Automatic Keyword Extraction)算法;也可以是TF-IDF(term frequency–inverse document frequency)算法,其是一种用于信息检索与数据挖掘的常用加权技术,TF意思是词频(Term Frequency),IDF意思是逆文本频率指数(Inverse Document Frequency)。
相应的,也可以利用Seq2Seq模型来控制故事语句序列的生成过程。可选的,根据第二上文信息以及第二驱动信息,利用Seq2Seq模型生成故事语句序列;其中,第二上文信息为故事题目数据以及词序列,第二驱动信息为故事语句序列中已生成的故事语句。
其中,静态词序列生成控制模式下,故事语句序列的生成过程是在生成了完整的词序列之后执行。因此,也可以将静态词序列生成控制模式下,故事语句序列的生成过程看成是条件生成问题。Seq2Seq模型生成故事语句的训练目标是:最小化负对数似然(即静态故事语句生成模型),即:其中,N为训练数据中的故事数量,j为训练数据中第j个故事,m代表一个故事中包含的故事语句的数目,p为概率,si为故事语句序列中第i个故事语句,s1:i-1为故事语句序列中前i-1个故事语句,即第二驱动信息,为故事题目数据与词序列拼接后的编码向量,其中,即将故事题目数据与词序列拼接,并在中间加入<EOT>标记,使用双向LSTM对拼接后的序列进行编码形成其中,表示故事题目与词序列的前向编码向量,表示故事题目与词序列的后向编码向量,t为故事题目数据,l为词序列。
需要说明的是,为了提高故事生成的可靠性,上述静态词序列生成模型和静态故事语句生成模型是分开训练的,且两个模型都属于端到端的训练过程。训练好两个模型后,给定一个新的故事题目,生成一个新的故事是这样一个流水线过程:先基于题目生成词序列,再基于故事题目和词序列的拼接序列,来生成最终的故事语句。
可选的,动态词序列生成控制模式下词序列中词的生成方式可以是:利用故事题目数据、故事语句序列中已生成的故事语句以及词序列中已生成的词,生成词序列中下一个词,直到词序列中已生成的词的数量满足第二预设值;利用故事题目数据、故事语句序列中已生成的故事语句以及词序列中已生成的最后一个词,生成故事语句序列中下一个故事语句;其中,词序列中词与故事语句序列中故事语句交替生成。
其中,本申请实施例并不限定第一预设值和第二预设值的数值,如,可以是5,或者是100等正整数。本申请实施例也不限定第一预设值和第二预设值的设置方式,如,其可以由系统默认设置,也可以是由用户通过词数量参数确定第一预设值或第二预设值的数值。举例说明,用户通过计算机设备的输入单元设置词数量参数,进而确定第一预设值或第二预设值的数值,或者是计算机设备通过网络获取其他设备发送的词数量参数,进而确定第一预设值或第二预设值的数值。当然,本申请实施例中并不限定其他设备(如其他计算机设备)获取词数量参数的方式。当本申请实施例中同时存在第一预设值和第二预设值时,两者可以相同(即仅需要设置一个预设值),也可以是分别设置第一预设值对应的数值和第二预设值对应的数值。本申请实施例对此并不限定。
其中,本申请实施例并不限定词序列中已生成的词对应的数量。例如,词序列中已生成的词可以指当前词序列中已生成的全部词;词序列中已生成的词也可以指当前词序列中已生成的最新词,即词序列中已生成的词中的最后一个词。本申请实施例并不限定故事语句序列中已生成的故事语句对应的数量。例如,故事语句序列中已生成的故事语句可以指当前故事语句序列中已生成的全部故事语句;故事语句序列中已生成的故事语句也可以指当前词序列中已生成的最新故事语句,即故事语句序列中已生成的故事语句中的最后一个故事语句。
举例说明,当词序列中已生成的词指当前词序列中已生成的全部词,故事语句序列中已生成的故事语句可以指当前故事语句序列中已生成的全部故事语句时,动态词序列生成控制模式下词序列中词的生成方式可以是:初始情况,利用故事题目数据,生成词序列中下一个词即第一个词,此时词序列中不存在已生成的词,故事语句序列中不存在已生成的故事语句,因此初始情况仅利用故事题目数据生成词序列中第一个词;后续循环情况,利用故事题目数据,故事语句序列中已生成的全部故事语句以及词序列中已生成的全部词,生成词序列中下一个词,如,利用故事题目数据、词序列中已生成的第一个词以及故事语句序列中已生成的第一个故事语句,生成词序列中第二个词,利用故事题目数据、词序列中已生成的第一个词和第二个词以及故事语句序列中已生成的第一个故事语句和第二个故事语句,生成词序列中第三个词,...利用故事题目数据、词序列中已生成的全部i-1个词以及故事语句序列中已生成的全部i-1个故事语句,生成词序列中第i个词,直到i为第二预设值,直到词序列中已生成的词的数量满足第二预设值。
当词序列中已生成的词指当前词序列中已生成的最新词,故事语句序列中已生成的故事语句可以指当前故事语句序列中已生成的全部故事语句时,动态词序列生成控制模式下词序列中词的生成方式可以是:初始情况,利用故事题目数据,生成词序列中下一个词即第一个词,此时词序列中不存在已生成的词,故事语句序列中不存在已生成的故事语句,因此初始情况仅利用故事题目数据生成词序列中第一个词;后续循环情况,利用故事题目数据,故事语句序列中已生成的全部故事语句以及词序列中已生成的最新词,生成词序列中下一个词,如,利用故事题目数据、故事语句序列中已生成的第一个故事语句以及词序列中已生成的最新词即第一个词,生成词序列中第二个词,利用故事题目数据、故事语句序列中已生成的第一个故事语句和第二个故事语句以及词序列中已生成的最新词即第二个词,生成词序列中第三个词,...利用故事题目数据、故事语句序列中已生成的全部i-1个故事语句以及词序列中已生成的第i-1个词,生成词序列中第i个词,直到i为第二预设值,直到词序列中已生成的词的数量满足第二预设值。
可以理解的是,在生成下一个故事语句的情况下,本申请实施例也不限定故事语句序列中已生成的故事语句对应的数量。例如,故事语句序列中已生成的故事语句可以指当前故事语句序列中已生成的全部故事语句;故事语句序列中已生成的故事语句也可以指当前词序列中已生成的最新故事语句,即故事语句序列中已生成的故事语句中的最后一个故事语句。可以参考上述生成下一个词的相关内容。
当然,为了进一步提高生成的词序列中词的可靠性以及生成的故事语句序列中各个故事语句的连贯性、趣味性,可选的,词序列中已生成的词可以指当前词序列中已生成的最新词,故事语句序列中已生成的故事语句可以指当前故事语句序列中已生成的全部故事语句。相应的,能够提高词序列中下一个词与之前生成的词的关联度,进而提高生成的故事语句序列的连贯性和趣味性。
需要说明的是,由于动态词序列生成控制模式下词序列中词的生成不仅仅依赖于故事题目数据,还依赖于已生成的故事语句和词。因此,可以将动态词序列生成控制模式下词序列中词的生成过程看成是内容引入的生成问题,即,相关的信息或事件的生成依赖于上文信息和额外的驱动信息。也就是说,每个词的生成概率依赖于上文信息和额外的驱动信息。本申请实施例中可以利用内容引入生成模型,如,隐式内容引入控制模型来控制词序列的生成过程。可选的,根据第三上文信息以及第三驱动信息,利用隐式内容引入控制模型生成词序列中下一个词;其中,第三上文信息为故事题目数据以及故事语句序列中已生成的故事语句,第三驱动信息为词序列中已生成的最后一个词,即词序列中已生成的最新的词。
其中,词序列中每个词的生成概率依赖于上文信息和额外的驱动信息,因此,隐式内容引入控制模型对应的动态词序列生成模型可以是:p(li|ctx,li-1;θ);其中,p为概率,li为词序列中下一个词即词序列中第i个词,li-1为词序列中第i-1个词,即第三驱动信息,θ为模型参数,ctx为第三上文信息,ctx=[t,s1:i-1],t为故事题目数据,s1:i-1为故事语句序列中前i-1个故事语句。其中,在隐式内容引入控制模型内部可以使用GRU(Gated RecurrentUnit)LSTM的变体(或者是BiGRU,其模型共分为三部分:文本向量化输入层、隐含层和输出层)来构造最小处理单元。具体的,首先使用双向GRU将第三上文信息编码成一个向量,然后在解码的过程中加入第三驱动信息。相应的,编码的第三上文信息向量可以是其中,分别对应正向第三上文信息和反向第三上文信息GRU隐藏层状态,[;]代表向量拼接,对应概率计算方式如下:
hy=GRU(BOS,Catt)
hw=GRU(li-1,Catt)
h'y=tanh(W1hy)
h'w=tanh(W2hw)
k=σ(Wk[h'y;h'w])
其中,BOS代表解码的开始标识符,Catt代表当前注意力机制从中获取的第三上文向量,g(.)表示一个多层感知机,hy代表解码器中,上文信息对应的隐藏层状态,hw代表解码器中,第三驱动信息对应的隐藏层状态,h'y代表hy的非线性变换得到的向量,tanh代表双曲正切函数,W1代表参数矩阵,h'w代表hw的非线性变换得到的向量,W2代表参数矩阵,k代表参数,取值0-1之间,σ代表sigmoid函数,Wk代表参数矩阵。
本申请实施例中,利用隐式内容引入控制模型来生成词序列。在生成每一个词时,会计算词表库中每个词的生成概率,并基于此来确定词序列中下一个需要生成的词。一般情况下,可以选择概率值最大的词作为词序列中下一个词。当然,本申请实施例对此并不进行限定。需要说明的是,本申请实施例词表库可以参考上文相关内容。
相应的,也可以利用隐式内容引入控制模型来控制故事语句序列的生成过程。可选的,根据第四上文信息以及第四驱动信息,利用隐式内容引入控制模型生成故事语句序列中下一个故事语句;其中,第四上文信息为故事题目数据以及故事语句序列中已生成的故事语句,第四驱动信息为词序列中已生成的最后一个词。
其中,动态词序列生成控制模式下,故事语句序列的生成过程是与词序列的生成过程交替进行的(可以理解为生成一个词,对应生成一个故事语句,两者依次交替生成)。因此,也可以将动态词序列生成控制模式下,故事语句序列的生成过程看成是内容引入的生成问题。隐式内容引入控制模型生成故事语句的训练目标是:最小化负对数似然(即动态故事语句生成模型),即:其中,N为训练数据中的故事数量,j为训练语料中第j个故事,m代表一个故事中包含的故事语句的数目,p为概率,si为第i个故事语句,ctx为第四上文信息向量,即故事题目数据以及故事语句序列中已生成的全部故事语句组成的向量,li为第四驱动信息,即词序列中已生成的最后一个词,也就是当前词序列中已生成的最新的词。
需要说明的是,为了提高故事生成的可靠性,上述动态词序列生成模型和动态故事语句生成模型是分开训练的,且两个模型都属于端到端的训练过程。
本申请实施例仅通过接收到的故事题目数据就可以生成词序列,进而利用词序列来指导生成故事语句序列。且无论是动态词序列生成控制模式下生成词序列,以及对应的故事语句序列,还是静态词序列生成控制模式下生成词序列,以及对应的故事语句序列,模型的训练过程都比较简单,例如词表库的训练仅需要提取关键词即可。不需要用户手动设置具有人物关系,事件关系,故事情节,用户兴趣动作等,避免了在生成故事前专业人员投入大量精力到人物事件关系模型中。即便能够生成人物事件关系模型,也由于不能通过故事框架来指导故事的生成,导致得到的故事存在故事不连贯,质量低等缺点。
可以理解的是,本申请实施例中词序列中每个词对应故事语句序列中一个故事语句,即词序列中词语故事语句序列中故事语句具有一一对应的关系。例如,当词序列l为l={l1,l2,l3,...,lm},对应的故事语句序列s为s={s1,s2,s3,...,sm};其中,li表示词序列中第i个词,其与故事语句序列中si,即故事语句序列中第i个故事语句相对应。
进一步,为了使用户能够及时获取生成的故事,本申请实施例在得到故事语句序列后,可以输出故事语句序列。当然,本申请实施例并不限定具体的输出方式,例如,计算机设备可以通过自身显示器等输出,也可以是计算机设备将生成的故事语句序列发送给用户对应的终端,即通过用户对应的终端输出故事语句序列。
在本申请实施例中,计算机设备根据接收到的故事题目数据自动生成故事,且在自动生成故事的过程中,基于词序列也就是故事框架能够生成连贯的故事,即能够生成符合给定题目主旨且连贯的故事,进而提高自动生成故事的质量;进一步,本申请实施例仅需要依赖故事题目数据即可自动生成故事,操作简单,降低故事生成的复杂性,便于推广。
在一种可能的情况中,为了使用户能够加入到词序列的控制过程,满足用户对故事的个性化需求。用户可以通过与计算机设备的交互生成更加符合用户实际需求的故事。在本申请实施例中,可以根据故事题目数据生成多个词序列,如,在静态词序列生成控制模式下一次生成多个完整的词序列。此时,用户可以通过选择指令从多个词序列中选取相对应的词序列。即用户可以通过选择指令确定符合自身需求的词序列,也就是选择更加符合用户个性化需求的故事框架,进而可以根据用户选取的词序列生成符合用户需求的故事语句序列。请参见图7,其示出了本申请一种故事生成方法又一个实施例的流程示意图,本实施例的方法可以包括:
S201、接收故事题目数据。
S202、根据故事题目数据生成词序列。
S203、判断是否存在多个词序列;若是,则执行S204,若否,则直接执行S205。
S204、根据选择指令,从多个词序列中选取相对应的词序列。
S205、利用词序列生成故事语句序列。
其中,本申请实施例中并不限定计算机设备根据故事题目数据生成多个词序列的方式。例如,可以是在接收到输入的生成多个词序列指令时,根据设置的多序列生成规则生成多个词序列,当然,此时本申请可以不再执行S203,直接执行S204,也可以是执行S203以判断是否成功生成多个词序列;也可以是在接收到故事题目数据,直接根据设置的普通生成规则生成词序列,此时,根据普通生成规则并不能确定是否可以生成多个词序列,因此需要执行S203。
需要说明的是,本申请实施例并不对多序列生成规则以及普通生成规则进行限定,只要能够控制词序列生成即可。例如,多序列生成规则可以是,词序列中每一个词均选取词表库中概率值最大的词作为第一词序列,词序列中每一个词均选取词表库中概率值第二大的词作为第二词序列,即按照概率值大小排序生成各等级概率值对应的词序列。普通生成规则可以是,若出现与最大概率值的概率差值小于设定阈值的情况时,则同时选择最大概率值对应的词以及概率差值小于设定阈值的各个概率值对应的词形成多组词序列,举例说明,如,词序列l中第三个词出现了3个概率值满足条件的情况,即最大概率值对应的词l3,与最大概率值的差值小于设定阈值的两个概率值分别对应词l31以及l32,其他词对应的概率值均不满足条件的情况下,可以形成3个词序列,分别是l1={l1,l2,l3,...,lm}、l2={l1,l2,l31,...,lm}以及l3={l1,l2,l32,...,lm},此时这三组词序列中仅仅存在第三个词的差别。
在本申请实施例中,用户可以通过选择指令确定符合自身需求的词序列,进而得到更加符合用户自身需求的故事。进一步提高了用户对词序列的控制,以及提高了用户参与度与个性化需求。
在另一种可能的情况中,由于本申请实施例是依据词序列来生成故事语句序列,当词序列中存在重复的词时,生成的故事语句序列中可能会出现重复的故事语句。因此,为了避免生成的故事语句序列中出现重复的故事语句的情况,本申请实施例可以控制词序列中不出现重复的词,进而避免生成的故事语句序列中出现重复的故事语句,即提高自动生成的故事的质量以及趣味性。请参考图8,本申请实施例生成词序列中下一个词的流程如下:
S301、生成一个预选词。
S302、判断预选词在词序列中的频次是否小于预设频次;若小于,则执行S303,若不小于,则执行S301。
S303、将预选词作为词序列中下一个词。
其中,本申请实施例中并不限定预设频次的数值,用户可以根据对生成的故事语句序列中重复故事语句的容忍度进行选择。例如,若用户对故事中存在重复故事语句的容忍度很低,则可以将预设频次的数值设置为1,则表明已经在当前生成的词序列中存在的词,后续一定不能在词序列中再出现,即严格限制了词序列中已生成的词之后不再继续生成,也就是说,此时生成的词序列中没有重复出现的词。具体的,通过计算词表库中各个词的概率值,选取概率值最大的词作为预选词,判断预选词在词序列中是否出现过,若出现过,则重新选取第二大概率值对应的词作为预选词,依次类推,直到找到符合条件的词。若用户对故事中存在重复故事语句的容忍度很高,则可以设置较大数值的预设频次。或者是仅规定词序列中相邻的词不能相同,或者是词序列中相邻预设数值(如4)的词不能出现相同的词。
需要说明的是,本申请实施例中并不限定预选词的生成方式,可以参考上文中词序列中词生成过程的相关内容。
在本申请实施例中,用户可以通过控制词序列中词重复出现的可能性,来避免生成的故事语句序列中出现重复的句子,进而提高生成故事的质量以及趣味性。
在又一种可能的情况中,为了提高生成词序列的灵活性。在本申请实施例中,用户可以选择同时使用动态词序列生成控制模式以及静态词序列生成控制模式来生成词序列,以及对应的故事语句序列。进而可以在一次故事生成过程中,同时实现动态词序列生成控制模式的优点以及静态词序列生成控制模式的优点。这种情况下可以既能够保证生成的故事的连贯性和趣味性,又能够保证生成故事的灵活性。可以参考图9,示出了同时存在两种控制模式的系统架构示意图;接收单元,可以用于接收故事题目数据以及控制模式控制指令,中间分为上下两层,上部为Dynamic即动态词序列生成控制模式,其包含词序列生成单元以及故事语句序列生成单元;下部为Static即静态词序列生成控制模式,其也包含词序列生成单元以及故事语句序列生成单元;Dynamic与Static中词序列生成单元以及故事语句序列生成单元的连接关系不同,最后输出单元,用于输出最终生成的故事语句序列。
需要说明的是,本申请实施例中并不对选择同时使用动态词序列生成控制模式以及静态词序列生成控制模式的方式进行限定,只要可以实现在一次故事生成中,同时使用了动态词序列生成控制模式以及静态词序列生成控制模式来形成对应的词序列和故事语句序列即可。
如,根据接收的控制模式控制指令,确定动态词序列生成控制模式以及静态词序列生成控制模式的工作顺序,以及各工作顺序下对应生成的词序列中词的数量。举例说明,当用户需要生成的词序列中包含100词,相应的,需要生成含100个故事语句的故事语句序列时,用户可以通过控制模式控制指令确定工作顺序为:静态词序列生成控制模式、动态词序列生成控制模式、静态词序列生成控制模式以及动态词序列生成控制模式;各顺序下对应生成的词序列中词的数量为:10、30、20、40。即首先使用静态词序列生成控制模式生成10个词,再利用动态词序列生成控制模式生成30个词,然后使用静态词序列生成控制模式生成20个词,最后利用动态词序列生成控制模式生成40个词。相应的,故事语句序列的生成过程也是:首先使用静态词序列生成控制模式生成10个故事语句,再利用动态词序列生成控制模式生成30个故事语句,然后使用静态词序列生成控制模式生成20个故事语句,最后利用动态词序列生成控制模式生成40个故事语句。
可以理解的是,本申请实施例中并不限定计算机设备获取控制模式控制指令的方式。计算机设备可以直接通过输入单元接收到用户输入的控制模式控制指令,计算机设备也可以借助其他计算机设备(如终端)获取用户输入的控制模式控制指令。当然,本实施例中也不限定控制模式控制指令的具体内容,只要其可以确定动态词序列生成控制模式以及静态词序列生成控制模式的工作顺序,以及各工作顺序下对应生成的词序列中词的数量即可。
需要说明的是,计算机设备也可以自动生成控制模式控制指令,如计算机设备在检测到需要生成的词序列的数量大于词序列阈值(如50)时,可以设定自动的同时使用动态词序列生成控制模式以及静态词序列生成控制模式的方式生成故事语句序列。如,可以按照默认动态词序列生成控制模式以及静态词序列生成控制模式的使用顺序(如从静态词序列生成控制模式开始,两者交替工作)。相应的,各顺序下对应生成的词序列中词的数量可以均分,也可以按照设定规则进行划分。本实施例并不对此进行限定。
在本申请实施例中,用户可以通过同时使用动态词序列生成控制模式以及静态词序列生成控制模式的方式生成故事语句序列,提高生成故事的灵活性和连贯性。
为了便于理解,请参考图10,结合本方案的一种应用场景进行介绍,下面以终端和服务器,以及静态词序列生成控制模式作为应用场景说明故事生成的过程。
用户开启终端后,终端与服务器建立无线连接。用户在终端界面中输入故事题目数据“Computer”以及设置词数据参数为5,终端在得到该故事题目数据以及词数据参数后将“Computer”以及词数据参数为5,通过无线网络发送给服务器。服务器在接收到故事题目数据“Computer”以及词数据参数为5后,调用静态词序列生成控制模式下的Seq2Seq模型对应的静态词序列生成模型生成具有5个词的词序列{needed,money,computer,bought,happy},服务器在得到词序列后调用静态故事语句生成模型生成具有5个故事语句的故事语句序列{John needed a computer for his birthday.He worked hard to earnmoney.John was able to buy his computer.He went to the store and bought acomputer.John was happy with his new computer.}。服务器在得到故事语句序列后通过无线网络将故事语句序列{John needed a computer for his birthday.He workedhard to earn money.John was able to buy his computer.He went to the store andbought a computer.John was happy with his new computer.}发送给终端。终端在得到该故事语句序列时,通过屏幕输出该故事语句序列。
进一步,需要说明的是,用户在终端的界面输入故事题目数据的方式可以是语音输入,也可以通过终端中的触摸屏打字输入。对应的,终端在输出故事语句序列时可以是利用语音输出,也可以是通过终端的屏幕输出。当然,服务器也可以将生成的词序列与故事语句序列一起发送给终端,使终端将词序列与故事语句序列一起输出。且用户可以根据词数据参数来调整得到的故事的大小,得到用户实际所需故事。
另一方面,本申请还提供了一种故事生成装置。如,参见图11,其示出了本申请一种故事生成装置一个实施例的组成结构示意图,本实施例的装置可以应用于如上实施例中的计算机设备,该装置包括:
接收单元401,用于接收故事题目数据;
词序列生成单元402,用于根据故事题目数据生成词序列;词序列用于表征故事框架;
故事语句序列生成单元403,用于利用词序列生成故事语句序列;词序列中每个词对应故事语句序列中一个故事语句。
可选的,所述词序列生成单元402,包括:
第一词序列生成子单元,用于根据故事题目数据,生成与词数量参数对应的词序列。
可选的,该故事生成装置还可以包括:
判断单元,用于判断是否存在多个词序列;
选取单元,用于若存在多个词序列时,根据选择指令,从多个词序列中选取相对应的词序列。
可选的,所述词序列生成单元402,包括:
第二词序列生成子单元,用于利用故事题目数据,以及词序列中已生成的词,生成词序列中下一个词,直到词序列中已生成的词的数量满足第一预设值。
可选的,所述第二词序列生成子单元,包括:
第二词序列生成模块,用于根据第一上文信息以及第一驱动信息,利用Seq2Seq模型生成词序列中下一个词;第一上文信息为所述故事题目数据,第一驱动信息为所述词序列中已生成的词。
相应的,所述故事语句序列生成单元403,包括:
第二故事语句序列生成模块,用于根据第二上文信息以及第二驱动信息,利用Seq2Seq模型生成故事语句序列;第二上文信息为故事题目数据以及词序列,第二驱动信息为故事语句序列中已生成的故事语句。
可选的,所述词序列生成单元402,包括:
第三词序列生成子单元,用于利用故事题目数据、故事语句序列中已生成的故事语句以及词序列中已生成的词,生成词序列中下一个词,直到词序列中已生成的词的数量满足第二预设值;
相应的,所述故事语句序列生成单元403,包括:
第三故事语句序列生成子单元,用于利用故事题目数据、故事语句序列中已生成的故事语句以及词序列中已生成的最后一个词,生成故事语句序列中下一个故事语句;
其中,词序列中词与故事语句序列中故事语句交替生成。
可选的,所述第三词序列生成子单元,包括:
第三词序列生成模块,用于根据第三上文信息以及第三驱动信息,利用隐式内容引入控制模型生成词序列中下一个词;第三上文信息为故事题目数据以及故事语句序列中已生成的故事语句,第三驱动信息为词序列中已生成的最后一个词。
相应的,所述第三故事语句序列生成子单元,包括:
第三故事语句序列生成模块,用于根据第四上文信息以及第四驱动信息,利用隐式内容引入控制模型生成故事语句序列中下一个故事语句;第四上文信息为故事题目数据以及故事语句序列中已生成的故事语句,第四驱动信息为词序列中已生成的最后一个词。
可选的,所述词序列生成单元402,包括:
生成子单元,用于生成一个预选词;若预选词在词序列中的频次小于预设频次,则将预选词作为词序列中下一个词,若预选词在词序列中的频次不小于预设频次,则重新生成一个预选词,并触发所述判断子单元;
判断子单元,用于判断预选词在词序列中的频次是否小于预设频次。
具体的,在本申请实施例中并不限定预设频次的数值,可选的,为了提高生成故事的连贯性,避免故事中出现重复故事语句,预设频次可以设置为1。
另一方面,本申请还提供了一种计算机设备,该计算机设备可以包括处理器和存储器。该计算机设备中处理器和存储器之间的关系可以参考图1。
其中,计算机设备的处理器用于执行所述存储器中存储的程序;
计算机设备的存储器用于存储程序,所述程序至少用于:
接收故事题目数据;
根据故事题目数据生成词序列;词序列用于表征故事框架;
利用词序列生成故事语句序列;词序列中每个词对应故事语句序列中一个故事语句。
当然,该计算机设备还可以包含通信接口、显示单元以及输入装置等,具体在此不加以限制。
另一方面,本申请还提供了一种存储介质,该存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,用于实现如上任意一个实施例中所描述的故事生成方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种故事生成方法,其特征在于,包括:
接收故事题目数据;
根据所述故事题目数据生成词序列;所述词序列用于表征故事框架;
利用所述词序列生成故事语句序列;所述词序列中每个词对应所述故事语句序列中一个故事语句。
2.根据权利要求1所述的故事生成方法,其特征在于,所述根据所述故事题目数据生成词序列,包括:
根据所述故事题目数据,生成与词数量参数对应的词序列。
3.根据权利要求1所述的故事生成方法,其特征在于,所述根据所述故事题目数据生成词序列之后,还包括:
判断是否存在多个词序列;
若是,则根据选择指令,从多个所述词序列中选取相对应的词序列。
4.根据权利要求1所述的故事生成方法,其特征在于,所述根据所述故事题目数据生成词序列,包括:
利用所述故事题目数据,以及词序列中已生成的词,生成所述词序列中下一个词,直到所述词序列中已生成的词的数量满足第一预设值。
5.根据权利要求4所述的故事生成方法,其特征在于,所述利用所述故事题目数据,以及词序列中已生成的词,生成所述词序列中下一个词,包括:
根据第一上文信息以及第一驱动信息,利用Seq2Seq模型生成词序列中下一个词;所述第一上文信息为所述故事题目数据,所述第一驱动信息为所述词序列中已生成的词。
6.根据权利要求5所述的故事生成方法,其特征在于,所述利用所述词序列生成故事语句序列,包括:
根据第二上文信息以及第二驱动信息,利用所述Seq2Seq模型生成故事语句序列;所述第二上文信息为所述故事题目数据以及所述词序列,所述第二驱动信息为所述故事语句序列中已生成的故事语句。
7.根据权利要求1所述的故事生成方法,其特征在于,所述根据所述故事题目数据生成词序列,利用所述词序列生成故事语句序列,包括:
利用所述故事题目数据、故事语句序列中已生成的故事语句以及词序列中已生成的词,生成所述词序列中下一个词,直到所述词序列中已生成的词的数量满足第二预设值;
利用所述故事题目数据、所述故事语句序列中已生成的故事语句以及所述词序列中已生成的最后一个词,生成所述故事语句序列中下一个故事语句;
其中,所述词序列中词与所述故事语句序列中故事语句交替生成。
8.根据权利要求7所述的故事生成方法,其特征在于,所述利用所述故事题目数据、故事语句序列中已生成的故事语句以及词序列中已生成的词,生成所述词序列中下一个词,包括:
根据第三上文信息以及第三驱动信息,利用隐式内容引入控制模型生成词序列中下一个词;所述第三上文信息为所述故事题目数据以及所述故事语句序列中已生成的故事语句,所述第三驱动信息为所述词序列中已生成的最后一个词。
9.根据权利要求7所述的故事生成方法,其特征在于,所述利用所述故事题目数据、所述故事语句序列中已生成的故事语句以及所述词序列中已生成的最后一个词,生成所述故事语句序列中下一个故事语句,包括:
根据第四上文信息以及第四驱动信息,利用隐式内容引入控制模型生成所述故事语句序列中下一个故事语句;所述第四上文信息为所述故事题目数据以及所述故事语句序列中已生成的故事语句,所述第四驱动信息为所述词序列中已生成的最后一个词。
10.根据权利要求4至9任一项所述的故事生成方法,其特征在于,所述生成所述词序列中下一个词,包括:
生成一个预选词,并判断所述预选词在所述词序列中的频次是否小于预设频次;
若小于,则将所述预选词作为所述词序列中下一个词;
若不小于,则重新生成一个预选词,并执行所述判断所述预选词在所述词序列中的频次是否小于预设频次的步骤。
11.根据权利要求10所述的故事生成方法,其特征在于,所述判断所述预选词在所述词序列中的频次是否小于预设频次,包括:
判断所述预选词在所述词序列中的频次是否小于1。
12.一种故事生成装置,其特征在于,包括:
接收单元,用于接收故事题目数据;
词序列生成单元,用于根据所述故事题目数据生成词序列;所述词序列用于表征故事框架;
故事语句序列生成单元,用于利用所述词序列生成故事语句序列;所述词序列中每个词对应所述故事语句序列中一个故事语句。
13.一种计算机设备,其特征在于,包括:
处理器和存储器;
其中,所述处理器用于执行所述存储器中存储的程序;
所述存储器用于存储程序,所述程序至少用于:
接收故事题目数据;
根据所述故事题目数据生成词序列;所述词序列用于表征故事框架;
利用所述词序列生成故事语句序列;所述词序列中每个词对应所述故事语句序列中一个故事语句。
14.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至11任一项所述的故事生成方法。
CN201910527129.0A 2019-06-18 2019-06-18 故事生成方法、装置、计算机设备及存储介质 Active CN110209803B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910527129.0A CN110209803B (zh) 2019-06-18 2019-06-18 故事生成方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910527129.0A CN110209803B (zh) 2019-06-18 2019-06-18 故事生成方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN110209803A true CN110209803A (zh) 2019-09-06
CN110209803B CN110209803B (zh) 2023-11-14

Family

ID=67793391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910527129.0A Active CN110209803B (zh) 2019-06-18 2019-06-18 故事生成方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN110209803B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414737A (zh) * 2020-03-23 2020-07-14 腾讯科技(深圳)有限公司 故事生成模型训练方法、装置、设备及存储介质
CN111414736A (zh) * 2020-03-23 2020-07-14 腾讯科技(深圳)有限公司 故事生成模型训练方法、装置、设备及存储介质
CN111737961A (zh) * 2020-06-28 2020-10-02 网易(杭州)网络有限公司 一种故事生成的方法、装置、计算机设备和介质
CN112992116A (zh) * 2021-02-24 2021-06-18 北京中科深智科技有限公司 一种视频内容自动生成方法和系统
CN113420553A (zh) * 2021-07-21 2021-09-21 北京小米移动软件有限公司 文本生成方法、装置、存储介质及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170277996A1 (en) * 2016-03-25 2017-09-28 TripleDip, LLC Computer implemented event prediction in narrative data sequences using semiotic analysis
CN107967257A (zh) * 2017-11-20 2018-04-27 哈尔滨工业大学 一种级联式作文生成方法
CN108280112A (zh) * 2017-06-22 2018-07-13 腾讯科技(深圳)有限公司 摘要生成方法、装置及计算机设备
CN108920644A (zh) * 2018-06-29 2018-11-30 北京百度网讯科技有限公司 对话连贯性的判断方法、装置、设备及计算机可读介质
CN109002433A (zh) * 2018-05-30 2018-12-14 出门问问信息科技有限公司 一种文本生成方法及装置
CN109086329A (zh) * 2018-06-29 2018-12-25 出门问问信息科技有限公司 基于话题关键词引导的进行多轮对话方法及装置
CN109657051A (zh) * 2018-11-30 2019-04-19 平安科技(深圳)有限公司 文本摘要生成方法、装置、计算机设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170277996A1 (en) * 2016-03-25 2017-09-28 TripleDip, LLC Computer implemented event prediction in narrative data sequences using semiotic analysis
CN108280112A (zh) * 2017-06-22 2018-07-13 腾讯科技(深圳)有限公司 摘要生成方法、装置及计算机设备
CN107967257A (zh) * 2017-11-20 2018-04-27 哈尔滨工业大学 一种级联式作文生成方法
CN109002433A (zh) * 2018-05-30 2018-12-14 出门问问信息科技有限公司 一种文本生成方法及装置
CN108920644A (zh) * 2018-06-29 2018-11-30 北京百度网讯科技有限公司 对话连贯性的判断方法、装置、设备及计算机可读介质
CN109086329A (zh) * 2018-06-29 2018-12-25 出门问问信息科技有限公司 基于话题关键词引导的进行多轮对话方法及装置
CN109657051A (zh) * 2018-11-30 2019-04-19 平安科技(深圳)有限公司 文本摘要生成方法、装置、计算机设备及存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414737A (zh) * 2020-03-23 2020-07-14 腾讯科技(深圳)有限公司 故事生成模型训练方法、装置、设备及存储介质
CN111414736A (zh) * 2020-03-23 2020-07-14 腾讯科技(深圳)有限公司 故事生成模型训练方法、装置、设备及存储介质
CN111414737B (zh) * 2020-03-23 2022-03-08 腾讯科技(深圳)有限公司 故事生成模型训练方法、装置、设备及存储介质
CN111737961A (zh) * 2020-06-28 2020-10-02 网易(杭州)网络有限公司 一种故事生成的方法、装置、计算机设备和介质
CN111737961B (zh) * 2020-06-28 2021-08-10 网易(杭州)网络有限公司 一种故事生成的方法、装置、计算机设备和介质
CN112992116A (zh) * 2021-02-24 2021-06-18 北京中科深智科技有限公司 一种视频内容自动生成方法和系统
CN113420553A (zh) * 2021-07-21 2021-09-21 北京小米移动软件有限公司 文本生成方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN110209803B (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
CN110209803A (zh) 故事生成方法、装置、计算机设备及存储介质
CN110232183B (zh) 关键词提取模型训练方法、关键词提取方法、装置及存储介质
CN107368524B (zh) 一种对话生成方法、装置以及电子设备
JP2021524623A (ja) 質問応答としてのマルチタスク学習
CN107632987A (zh) 一种对话生成方法及装置
CN109165384A (zh) 一种命名实体识别方法及装置
CN107767870A (zh) 标点符号的添加方法、装置和计算机设备
CN111563144B (zh) 基于语句前后关系预测的用户意图识别方法及装置
CN109196582A (zh) 用单词重音预测发音的系统和方法
CN110286778B (zh) 一种中文深度学习输入法、装置及电子设备
CN109543200A (zh) 一种文本翻译方法及装置
CN110263330A (zh) 问题语句的改写方法、装置、设备和存储介质
Zhang et al. Explicit contextual semantics for text comprehension
CN109978139B (zh) 图片自动生成描述的方法、系统、电子装置及存储介质
JP2022502758A (ja) 符号化方法、装置、機器およびプログラム
CN107679225A (zh) 一种基于关键词的回复生成方法
CN109986569A (zh) 具有角色化和性格化的聊天机器人
Cambre et al. Methods and tools for prototyping voice interfaces
CN109543165A (zh) 基于循环卷积注意力模型的文本生成方法及装置
CN112131368A (zh) 对话生成方法、装置、电子设备及存储介质
WO2020186484A1 (zh) 图片自动生成描述的方法、系统、电子装置及存储介质
CN109800295A (zh) 基于情感词典和词概率分布的情感会话生成方法
Mai et al. A unimodal representation learning and recurrent decomposition fusion structure for utterance-level multimodal embedding learning
WO2020232881A1 (zh) 文本分词方法及装置
CN109992785A (zh) 基于机器学习的内容计算方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant