CN109844741A - 在自动聊天中生成响应 - Google Patents
在自动聊天中生成响应 Download PDFInfo
- Publication number
- CN109844741A CN109844741A CN201780063787.8A CN201780063787A CN109844741A CN 109844741 A CN109844741 A CN 109844741A CN 201780063787 A CN201780063787 A CN 201780063787A CN 109844741 A CN109844741 A CN 109844741A
- Authority
- CN
- China
- Prior art keywords
- individual character
- role
- response
- user
- score
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/42—Data-driven translation
- G06F40/44—Statistical methods, e.g. probability models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/55—Rule-based translation
- G06F40/56—Natural language generation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了用于在自动聊天中生成响应的方法和装置。可以在会话中接收消息。可以执行第一角色和用户之间的个性比较。可以至少基于所述个性比较来生成响应,所述响应采用第二角色的语言风格。
Description
背景技术
人工智能(AI)聊天机器人变得越来越流行,并且正在越来越多的场景中得到应用。聊天机器人被设计用于模拟人类对话,并且可以通过文本、语音、图像等与用户聊天。通常,聊天机器人可以扫描由用户输入的消息内的关键词或对消息应用自然语言处理,并向用户提供具有最匹配的关键词或最相似的措辞模式的响应。
发明内容
提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。
本公开的实施例提出了用于在自动聊天中生成响应的方法和装置。可以在会话中接收消息。可以执行第一角色与用户之间的个性比较。可以至少基于个性比较来生成响应,所述响应采用第二角色的语言风格。
应当注意,以上一个或多个方面包括以下详细描述以及权利要求中具体指出的特征。下面的说明书及附图详细提出了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开旨在包括所有这些方面和其等同变换。
附图说明
以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。
图1示出了根据实施例的部署聊天机器人的示例性网络架构。
图2示出了根据实施例的聊天机器人的示例性应用场景。
图3示出了根据实施例的示例性聊天机器人系统。
图4示出了根据实施例的示例性用户界面。
图5示出了根据实施例的示例性聊天窗口。
图6示出了根据实施例的示例性聊天窗口。
图7示出了根据实施例的用于执行隐式个性测试的示例性聊天窗口。
图8示出了根据实施例的隐式个性测试的示例性结果。
图9示出了根据实施例的用于执行隐式个性测试的示例性过程。
图10示出了根据实施例的用于获得个性分类模型的训练数据集的示例性过程。
图11示出了根据实施例的示例性个性分类模型。
图12示出了根据实施例的用于确定角色相似度的示例性过程。
图13示出了根据实施例的用于应用响应排序模型来确定响应的示例性过程。
图14示出了根据实施例的用于为目标角色建立语言模型的示例性过程。
图15示出了根据实施例的示例性语言风格重写模型。
图16示出了根据实施例的用于通过动态记忆网络(DMN)来生成响应的示例性架构。
图17示出了根据实施例的用于在自动聊天中生成响应的示例性方法的流程图。
图18示出了根据实施例的用于在自动聊天中生成响应的示例性装置。
图19示出了根据实施例的用于在自动聊天中生成响应的示例性装置。
具体实施方式
现在将参考多种示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。
人们在卡通、电影或戏剧中设计了成千上万的角色。这些角色可以是人为创造的幻想、虚拟或虚构的角色,其存在于卡通、电影或戏剧中所构建或描绘的场景和环境中。这些角色可以包括动画角色、由人扮演的角色等。一些角色可能是非常有名的和流行的。例如,在名为“哆啦A梦”的日本卡通中出现的著名角色“哆啦A梦”具有其典型的预定义特性,并且被从儿童到老年人的数以百万计的人所喜欢。
如果现实世界中的人们可以通过对话与卡通、电影或戏剧中的角色交互,那将是令人兴奋的。例如,一些人可能希望就像在卡通“哆啦A梦”中的其他角色(例如,名叫大雄的男孩、名叫静香的女孩)那样,自由地与哆啦A梦进行交流。
本公开的实施例提出将特性从目标角色传递到聊天机器人中,使得聊天机器人可以充当目标角色来与真实世界中的人们自由地聊天。
通常,聊天机器人可以与用户进行自动会话。在本文中,“会话”可以指两个聊天参与者之间的时间连续的对话,并且可以包括对话中的消息和响应,其中,“消息”是指由用户输入的任何信息,例如来自用户的查询、用户对来自聊天机器人的问题的回答、用户的意见等,“响应”是指由聊天机器人提供的任何信息,例如聊天机器人对来自用户的问题的回答、聊天机器人的评论等。
图1示出了根据实施例的部署聊天机器人的示例性网络架构100。
在图1中,网络110被应用于在终端设备120和聊天机器人服务器130之间进行互连。
网络110可以是能够对网络实体进行互连的任何类型的网络。网络110可以是单个网络或各种网络的组合。在覆盖范围方面,网络110可以是局域网(LAN)、广域网(WAN)等。在承载介质方面,网络110可以是有线网络、无线网络等。在数据交换技术方面,网络110可以是电路交换网络、分组交换网络等。
终端设备120可以是能够连接到网络110、访问网络110上的服务器或网站、处理数据或信号等的任何类型的电子计算设备。例如,终端设备120可以是台式计算机、笔记本电脑、平板电脑、智能电话等。尽管在图1中仅示出了一个终端设备,但是应当理解,可以有不同数量的终端设备连接到网络110。
在一种实施方式中,终端设备120可以由用户使用。终端设备120可以包括可为用户提供自动聊天服务的聊天机器人客户端122。在一些情况下,聊天机器人客户端122可以与聊天机器人服务器130进行交互。例如,聊天机器人客户端122可以将用户输入的消息传送到聊天机器人服务器130,并且从聊天机器人服务器130接收与消息相关联的响应。然而,应当理解,在其它情况下,聊天机器人客户端132也可以本地地生成对用户输入的消息的响应,而不是与聊天机器人服务器130进行交互。
聊天机器人服务器130可以连接到或包含聊天机器人数据库132。聊天机器人数据库132可以包括可由聊天机器人服务器130用于生成响应的信息。
应当理解,图1中所示的所有网络实体都是示例性的,根据具体的应用需求,应用场景100中可以涉及任何其它网络实体。
根据本公开的实施例,为了使充当目标角色的聊天机器人能够以可行的和智能的方式对来自现实世界中的人们的消息提供响应,除了对目标角色的特性进行捕捉和建模以外,确定对应于正与聊天机器人交谈的用户的参考角色也是重要的,使得聊天机器人可以以类似于在卡通、电影或戏剧中目标角色与参考角色交谈的方式对来自用户的消息做出响应。
图2示出了根据实施例的聊天机器人的示例性应用场景200。
如图2所示,“哆啦A梦”、“大雄”和“静香”是名为“哆啦A梦”的卡通中的角色。根据该卡通中“大雄”和“静香”的个性设置,大雄是个有点懒惰的男孩,对学习兴趣不大,而静香是一个对人友善、学习好的女孩。哆啦A梦与大雄之间、哆啦A梦与静香之间的对话差别很大。由于大雄懒惰且不爱学习,所以当大雄对哆啦A梦说“我要出去”时,哆啦A梦可能是严肃的并且说“现在是学习时间!”。而由于静香学习好,当静香对哆啦A梦说“我要出去”时,哆啦A梦可能是友善的并且说“玩得开心!”。这表明哆啦A梦可以以不同的方式与不同的角色交谈。
在将哆啦A梦的特性传递给聊天机器人之后,聊天机器人可以评估正与聊天机器人说话的用户的个性,并确定在个性方面该用户类似于哪个参考角色。由此,充当哆啦A梦的聊天机器人可以以与参考角色交谈相类似的方式来对用户做出响应。例如,假设将用户确定为具有与大雄类似的个性,则当用户对聊天机器人说“我想和我的朋友们一起玩”时,聊天机器人可以以“现在是学习时间!”来做出响应,就像聊天机器人正在与大雄说话那样。
图3示出了根据实施例的示例性聊天机器人系统300。
聊天机器人系统300可以包括用于呈现聊天窗口的用户界面(UI)310。聊天窗口可以由聊天机器人用于与用户进行交互。
聊天机器人系统300可以包括核心处理模块320。核心处理模块320被配置用于通过与聊天机器人系统300的其它模块的协作,在聊天机器人的运行期间提供处理能力。
核心处理模块320可以获得由用户在聊天窗口中输入的消息,并将消息存储在消息队列332中。消息可以采用各种多媒体形式,例如文本、语音、图像、视频等。
核心处理模块320可以用先进先出的方式处理消息队列332中的消息。核心处理模块320可以调用应用程序接口(API)模块340中的处理单元来处理各种形式的消息。API模块340可以包括文本处理单元342、语音处理单元344、图像处理单元346等。
对于文本消息,文本处理单元342可以对文本消息执行文本理解,并且核心处理模块320可以进一步确定文本响应。
对于语音消息,语音处理单元344可以对语音消息执行语音到文本转换以获得文本语句,文本处理单元342可以对所获得的文本语句执行文本理解,并且核心处理模块320可以进一步确定文本响应。如果确定以语音提供响应,则语音处理单元344可以对文本响应执行文本到语音转换以生成相应的语音响应。
对于图像消息,图像处理单元346可以对图像消息执行图像识别以生成相应的文本,并且核心处理模块320可以进一步确定文本响应。在一些情况下,图像处理单元346也可以用于基于文本响应来获得图像响应。
此外,尽管在图3中未示出,API模块340还可以包括任何其它处理单元。例如,API模块340可以包括视频处理单元,该视频处理单元用于与核心处理模块320协作以处理视频消息并确定响应。
核心处理模块320可以通过索引数据库350来确定响应。索引数据库350可以包括可由核心处理模块320提取作为响应的多个索引项。索引数据库350中的索引项可以被分类为纯聊天索引集352、基于角色的聊天索引集354和知识图谱356。纯聊天索引集352可以包括被准备用于聊天机器人和用户之间的自由聊天的索引项,并且可以用来自例如社交网络的数据来建立。纯聊天索引集352中的索引项可以采用或不采用例如<问题,答案>的问题-答案(QA)对的形式。问题-答案对也可以称为消息-响应对。基于角色的聊天索引集354可以包括根据卡通、电影或戏剧中的角色的台词而建立的索引项。在本文中,“台词”可以指由卡通、电影或戏剧中的角色所说的词语或语句。基于角色的聊天索引集354中的索引项可以是<问题,答案,角色1,角色2>的形式,其中,“问题”是由“角色1”说的,“答案”是由“角色2”说的。由此,基于角色的聊天索引集354可以至少包括卡通、电影或戏剧中的任何两个角色之间的对话信息。知识图谱356可以包括目标角色的各种背景信息,例如,目标角色的年龄、经历、偏好等。知识图谱356可以是根据目标角色所在的卡通、电影或剧本中的纯文本或角色的台词来建立的。在一些实施方式中,可以进一步根据目标角色的背景信息来生成QA对并将其包括在知识图谱356中。
聊天机器人系统300可以包括角色模块360,角色模块360是功能的集合,使得聊天机器人能够像目标角色一样行为,例如以目标角色的语言风格提供响应等。角色模块360可以访问索引数据库350。
角色模块360可以包括隐式个性测试模块362。隐式个性测试模块362可以以隐含方式对用户执行个性问卷调查。例如,可以将个性测试的问题附加到聊天机器人和用户之间的会话,并且可以在会话中收集来自用户的答案。隐式个性测试模块362可以对答案执行情感分析以确定对应的情感类别,例如由答案反映的倾向,并相应地确定用户的个性分数。个性分数可以被进一步用于执行在用户与一个或多个参考角色之间的个性比较,以获得角色相似度结果,从而确定在个性上与用户对应的参考角色。“个性分数”可以是基于大五(big-five)个性特点给出的。大五个性特点遵循基于个性的共同语言描述符的五因素模型(FFM)。FFM被广泛用于通过五种个性因素来描述人的个性或心理。这五种个性因素可以包括:
·经验开放性:例如,“旅游相关的话题是有趣的,我想了解更多”是支持“经验开放性”的正面表达,而“我想延续我以前的经验,而不是挑战新领域”表现出对“经验开放性”的负面态度;
·责任心:例如,“我会尽我所能,直至解决问题”是“责任心”的正面表达,而“现在不关我的事。请让别人帮助你”是一种相当负面的“责任心”的证据;
·外向性:例如,“今晚我们要参加玛丽的家庭聚会吗?我准备了一瓶红酒”是针对“外向性”的正面语句,而“不,我宁愿呆在家里。我不想看到这么多新面孔”是针对“外向性”的负面情绪;
·亲和性:例如,“我乐意在必要时随时提供帮助”和“离我远点儿,闭嘴”分别是针对“亲和性”的正面和负面的示例;
·情绪不稳定性:例如,“当我感到悲伤时,我容易生气并伤害我的朋友或我的家人”和“当我感到悲伤时我会做一些锻炼,尝试放松”是“情绪不稳定性”的不同方向的两个示例。
角色模块360可以包括个性分类模型364。个性分类模型364可以被建立用于根据一个或多个输入语句来生成个性分数。例如,个性分类模型364可以基于用户的会话日志或参考角色的台词来输出个性分数。个性分类模型364可以基于例如循环卷积神经网络(RCNN)。当应用个性分类模型364时,其可以输出如上所述的五种个性因素中的每一种的个性分数。这组个性分数可以进一步用于在用户与一个或多个参考角色之间执行个性比较,以获得角色相似度结果,从而确定在个性上与用户对应的参考角色。
角色模块360可以包括响应排序模型366。响应排序模型366可以用于基于纯聊天索引集352、基于角色的聊天索引集354和知识图谱356中的至少一个来确定对来自用户的当前消息的一个或多个响应。在确定所述一个或多个响应期间,响应排序模型366可以参考上述的角色相似度结果。在一种实施方式中,可以将响应排序模型366所确定的排序最高的响应作为对来自用户的当前消息的回复而直接提供给用户。
角色模块360可以包括语言模型368。语言模型368可以被建立用于对目标角色的语言风格进行建模。
角色模块360可以包括语言风格重写模型370。语言风格重写模型370可以将一个语句重写为采用目标角色的语言风格的另一语句。在一些实施方式中,语言风格重写模型370可以与语言模型368和/或个性分类模型364协作地执行重写操作。
角色模块360可以包括动态记忆网络(DMN)模块372,其用于推理出对来自用户的当前消息的响应。在一种实施方式中,DMN模块372可以与响应排序模型366协作,并且在这种情况下,响应排序模型366可以将一个或多个候选响应作为输入提供给DMN模块372。在一种实施方式中,DMN模块372可以与语言风格重写模型370协作,使得由DMN模块372推理出的响应可以采用目标角色的语言风格。
核心处理模块320可以将所确定的响应提供给响应队列或响应高速缓存334。例如,响应高速缓存334可以确保能够以预定义的时间流来显示响应序列。假设对于一个消息,由核心处理模块320确定了不少于两个响应,则对这些响应的时间延迟设置可能是必要的。例如,如果用户输入的消息是“你吃早餐了吗?”,则可能确定出两个响应,例如,第一响应是“是的,我吃了面包”,第二响应是“你呢?还觉得饿吗?”。在这种情况下,通过响应高速缓存334,聊天机器人可以确保立即向用户提供第一响应。进而,聊天机器人可以确保以例如1或2秒的时间延迟来提供第二响应,使得第二响应将在第一响应之后的1或2秒处被提供给用户。由此,响应高速缓存334可以管理将要发送的响应以及针对每个响应的适当定时。
可以将响应队列或响应高速缓存334中的响应进一步传送到UI 310,以便可以在聊天窗口中将响应显示给用户。
应当理解,图3中的聊天机器人系统300中所示的所有单元都是示例性的,并且根据具体的应用需求,在聊天机器人系统300中可以省略任何所示的单元并且可以涉及任何其它单元。
图4示出了根据实施例的示例性用户界面400。
用户界面400被包括在终端设备中,并且其可以包括聊天机器人图标410、呈现区域420、控制区域430和输入区域440。聊天机器人图标410可以是代表聊天机器人的照片或图片。呈现区域420显示包含用户和聊天机器人之间的会话中的消息和响应的聊天窗口。控制区域430包括多个虚拟按钮以由用户用于执行消息输入设置。例如,用户可以通过控制区域430选择进行声音输入、附加图像文件、选择表情符号、进行当前屏幕的截图等。输入区域440由用户用于输入消息。例如,用户可以通过输入区域440键入文本。用户界面400还可以包括虚拟按钮450以用于确认发送所输入的消息。如果用户触摸虚拟按钮450,则可以将在输入区域440中输入的消息发送到呈现区域420。
应当注意,图4中所示的所有单元及其布局都是示例性的。根据具体的应用需求,图4中的用户界面可以省略或添加任何单元,并且图4中的用户界面中的单元的布局也可以以各种方式改变。
根据本公开的一些实施例,可以通过面向自由聊天的聊天机器人来引入基于目标角色的聊天。例如,在聊天机器人和用户之间的会话期间,聊天机器人可以询问用户是否期望基于目标角色的聊天,或者聊天机器可以从用户接收进行基于目标角色的聊天的请求。当用户选择或指定目标角色时,聊天机器人可以充当该目标角色来与用户聊天。在这种情况下,本公开的实施例可以在运行聊天机器人应用的任何通用终端设备中实施。
图5示出了根据实施例的示例性聊天窗口500。聊天窗口500示出了通过面向自由聊天的聊天机器人来引入基于目标角色的聊天的过程。
用户可能输入消息“给我显示可用的角色”以指示用户想要与目标角色交谈。名为“Rinna”的聊天机器人可以通过供用户选择的候选目标角色列表来作出响应。例如,候选目标角色列表可以包括“1、哆啦A梦”、“2、米老鼠”和“3、功夫熊猫”。当用户选择“1”,即“哆啦A梦”时,聊天机器人可以将其图标改变为目标角色“哆啦A梦”的照片,并开始作为哆啦A梦来与用户聊天。当用户输入消息“返回Rinna”以指示用户想要停止与哆啦A梦的聊天、并返回以与聊天机器人“Rinna”聊天时,Rinna将回到聊天窗口500中并再次与用户聊天。
聊天窗口500中的会话是示例性的。应该理解,用户可以选择候选目标角色中的任意一个,聊天机器人可以充当所选择的目标角色来与用户聊天。即,用户被允许自由地改变目标角色。这种设计可以为用户提供目标角色的变化和多样性。例如,通过购买运行聊天机器人的单个终端设备或者安装单个聊天机器人应用,用户可以与各种目标角色聊天。通过更新聊天机器人的角色模块,容易更新聊天机器人已经支持的一个或多个目标角色或者附加将要由聊天机器人支持的新的目标角色。
根据本公开的一些实施例,不必通过面向自由聊天的聊天机器人来引入基于目标角色的聊天。相反,用户可以直接与聊天机器人所充当的目标角色聊天,而不需要选择目标角色。在这种情况下,除了一般的终端设备之外,也可以在专门设计的设备中实施充当目标角色的聊天机器人。该专门设计的设备的外表或轮廓可以与目标角色相似。例如,如果目标角色是哆啦A梦,则该专门设计的设备可以是具有哆啦A梦外表的电动玩具。该专门设计的设备可以包括实施充当目标角色的聊天机器人的软件平台。该专门设计的设备还可以包括硬件平台,该硬件平台包括各种硬件组件,如屏幕、处理单元、电源管理单元,WiFi模块、扬声器等。
图6示出了根据实施例的示例性聊天窗口600。聊天窗口600示出了在用户和充当目标角色的聊天机器人之间的直接聊天。
用户已经知道他正在与目标角色(例如“哆啦A梦”)聊天,并且因此用户可能输入消息“早上好,哆啦A梦”来向哆啦A梦问好。然后,聊天机器人可以作为哆啦A梦直接与用户聊天。
通过上述的用户和目标角色之间的直接聊天,由于省略了选择目标角色的操作,因此可以简化用户和聊天机器人之间的交互。此外,终端设备的像目标角色一样的外表也可能对用户有吸引力。
应当理解,虽然以上结合图5和图6讨论了两个示例性聊天窗口,但是本公开的实施例不限于以例如文本的可见的方式来实施。在一些实施方式中,用户可以通过语音与聊天机器人交流。例如,用户可以通过语音选择目标角色,用户可以与聊天机器人所充当的目标角色进行语音聊天等。
根据本公开的实施例,可以对用户执行隐式个性测试,以确定用户在个性上的特征。
图7示出了根据实施例的用于执行隐式个性测试的示例性聊天窗口700。
隐式个性测试可以指以隐含的方式执行个性测试,例如,以用户不可识别的方式在会话中发送测试问题并收集用户的答案。可以从先前的任何现有的人为设计的个性测试中提取隐式个性测试的测试问题和参考答案。当决定向用户提供测试问题时,聊天机器人可以至少基于用户与聊天机器人之间的当前会话来确定测试问题。隐式个性测试不会占据用户太多时间,并且可以避免在用户被告知进行个性测试时用户以假想或虚假的方式回答。
如聊天窗口700中所示,在用户和聊天机器人之间的当前会话期间,用户说他因为工作而感到难过,并且由于被同事评判得太多而太累了。
基于当前会话,聊天机器人可以决定开始隐式个性测试,并且可以确定与当前会话相关联的至少一个测试问题,例如“那么,你总是不喜欢与其他人交流或者当你一个人时你感到强大吗?”。这个测试问题旨在获得用户在个性因素“外向性”方面的倾向。
可能从用户接收到答案“是的,我喜欢单独工作以便集中注意力”。根据该答案,聊天机器人可以确认用户不喜欢与他人交流,并且喜欢单独工作,因此可以确定在个性因素“外向性”方面,该用户的个性是负面的。
应该理解,聊天窗口700中的隐式个性测试是示例性的,并且本公开的实施例不限于聊天窗口700中的任何详细的表达或过程。
此外,尽管图7中未示出,但应该理解,隐式个性测试的结果可以由聊天机器人生成并向用户显示。在一种实施方式中,隐式个性测试的结果可以包括基于大五个性特点的个性分数集合。五种个性因素中的每一种都可以具有一个相应的个性分数。个性分数可以在[-1,1]的范围内,或者被投影到任何其他度量,例如[0,30]。
图8示出了根据实施例的隐式个性测试的示例性结果800。结果800可以是根据对用户的隐式个性测试来获得的,并且可以在例如聊天窗口700中或者在终端设备中示出的任何其它独立窗口中呈现。
如图8所示,结果800可以包括五个维度,分别表示五种个性因素“经验开放性”、“责任心”、“外向性”、“亲和性”和“情绪不稳定性”。
用户的个性由五边形810示出。五边形810由五个维度上的五个点之间的连接线形成,每个点对应于在相关个性因素中的个性分数。在图8中,个性分数在[0,30]的范围内。例如,用户在个性因素“经验开放性”中获得的个性分数为“22”,用户在个性因素“责任心”中获得的个性分数为“19”,用户在个性因素“外向性”中获得的个性分数为“20”,用户在个性因素“亲和性”中获得的个性分数是“8”,并且用户在个性因素“情绪不稳定性”中获得的个性分数是“18”。
在结果800中可以可选地示出另一个虚线五边形820。虚线五边形820可以由聊天机器人的其他用户的平均个性分数形成,其可被用作用于示出该用户的个性与其他用户之间的差异的参考。
应该理解,结果800不限于如图8所示的图形的形式,也可以采用任何其它可评估的和直观的方式来呈现结果800,例如,采用表格、文字描述等。结果800中的所有元素,例如,五个维度、五边形等,都是示例性的,并且取决于特定的应用需求,结果800可以包括任何其它等同变换、替换或修订。
图9示出了根据实施例的用于执行隐式个性测试的示例性过程900。根据过程900,首先可以确定是否应该对用户执行隐式个性测试,然后可以确定测试问题并将其提供给用户,并且可以通过情感分析获得隐式个性测试的结果。
在902处,可以获得用户的会话日志。在本文中,“会话日志”可以指用户和聊天机器人之间的会话记录。
为了对用户的个性倾向做出相对容易的判断,优选地对经常和聊天机器人聊天和/或在会话中使用丰富的情感词语的那些用户执行隐式个性测试。因此,在一些实施方式中,可以使用“日志大小”和/或“情感词语比率”来确定是否对特定用户执行隐式个性测试。例如,在904处,可以确定在902处获得的会话日志的日志大小,其中,日志大小可以指示用户是否经常和聊天机器人聊天。可以将日志大小进一步与预定义的大小阈值进行比较。如果日志大小高于大小阈值,则可以在906处确定对用户执行隐式个性测试。作为另一示例,在904处,可以确定在902处获得的会话日志的情感词语比率,其中,情感词语比率可以是例如会话日志中的情感词语的数量与会话日志中的词语总数之间的比率,并且可以指示用户是否在会话中使用丰富的情感词语。可以将情感词语比率进一步与预定义的比率阈值进行比较。如果情感词语比率高于比率阈值,则可以在906处确定对用户执行隐式个性测试。此外,“日志大小”和“情感词语比率”也可以被联合用于在906处确定是否执行隐式个性测试。如果日志大小和情感词语比率中的至少一个高于相应的阈值,则可以确定执行隐式个性测试,否则,过程900将返回到902。
当确定执行隐式个性测试时,可以在908处采用会话-问题匹配模型,以至少基于当前会话910和个性测试库912来确定隐式个性测试中的测试问题。
个性测试库912可以包括从例如任何现有的人为设计的个性测试中提取的多个测试问题和对应的参考答案。在一种实施方式中,为了避免对成千上万个用户同样地使用类似的测试问题,可以通过使用Word2vec将测试问题中的一个或多个词语重写为类似含义的同义词,来将个性测试库912中的测试问题进一步转变为多个变体。这也旨在避免来自一些抗拒测试的用户的虚假答案。
以图7中的聊天流为例,对于当前会话“用户:这些天感觉非常糟糕;聊天机器人:发生什么事了?用户:工作;聊天机器人:紧迫的最后期限?用户:不是关于最后期限,只是被同事评判太多;聊天机器人:哦…这容易让人觉得累;用户:是的,太累了”,会话-问题匹配模型可以确定测试问题“那么,你总是不喜欢与其他人交流或者当你一个人时你感到强大吗?”。
在会话-问题匹配模型中可以采用梯度提升决策树(GBDT)来计算当前会话910和个性测试库912中的测试问题之间的相似度分数,其中,个性测试库912中的测试问题也可以被称为候选测试问题。GBDT中的特征可以基于以下中的至少一个:用于信息提取的语言模型、基于翻译的语言模型、候选测试问题与当前会话之间的词语或字符级别的编辑距离、候选测试问题与当前会话之间的最大子串占比(maximum subsequence ratio)、来自使用门控循环单元(GRU)的循环神经网络(RNN)的余弦相似度分数等。
通过会话-问题匹配模型,可以为隐式个性测试确定一个或多个测试问题。在914处,可以将所确定的测试问题顺序地提供给用户。
在916处,可以分析来自用户的答案。例如,可以对来自用户的答案执行情感分析,以便检测用户对测试问题的倾向。
在一种实施方式中,情感分析可以被用于识别三种情感类别,例如“正面的”、“负面的”和“中性的”。应该理解,此处的情感分析还可以确定任何其它数量的情感类别,例如,包括“高兴的”、“愤怒的”、“恐惧的”、“轻蔑的”、“悲伤的”、“吃惊的”、“厌恶的”和“中性的”的8种情感类别。下面的讨论将以识别三种情感类别的情感分析为例。
对于示例性测试问题“当你一个人时你感到强大吗?”,如果用户的答案是“是的,我喜欢单独工作以便集中注意力”,则情感分析可以至少根据该答案中的表达“是”、“喜欢单独工作”等来识别出关于测试问题中的话题“一个人时感到强大”的该答案的情感类别是“正面的”。在本文中,“话题”可以指测试问题中陈述的事实或假设。以相同的方式,可以执行情感分析以确定关于每个测试问题的答案的情感类别。
在918处,可以确定隐式个性测试中的所有测试问题是否已经被发送给用户。如果否,则过程900可以返回到908。如果是,则可以在920处生成隐式个性测试的结果。
如上所述,隐式个性测试的结果可以包括个性分数集合,每个个性分数对应于五种个性因素中的一种。可以至少基于用户对与一种个性因素相关的测试问题的答案的情感类别来确定该个性因素的个性分数。
仍以测试问题“当你一个人时你感到强大吗?”为例,这个测试问题旨在获得用户在个性因素“外向性”方面的倾向。对于用户的答案“是的,我喜欢单独工作以便集中注意力”,通过情感分析可以将该答案的情感类别确定为“正面的”,该情感类别可以指示用户在这个答案中表明了在“外向性”方面的负面倾向。通过对用户对一个或多个“外向性”相关测试问题的答案的情感类别进行统计分析,可以获得针对个性因素“外向性”的个性分数。以同样的方式,可以为五种个性因素中的每一种获得个性分数,从而可以最终生成隐式个性测试的结果。
应该理解,尽管在图9中没有示出,但是过程900中可以包括测试控制策略。例如,如果需要向用户发送很多测试问题以获得最终结果,则过程900可以记录用户已经回答的测试问题、剩余的待发送给用户的测试问题、以及已经进行的隐式个性测试的持续时间。由此,整个隐式个性测试可以在两个或更多个会话中分几个部分进行,而不是一次进行。
除了通过在隐式个性测试中执行情感分析来获得个性分数之外,本公开的实施例还提出使用个性分类模型来生成个性分数。个性分类模型可以被建立用于基于输入语句来生成个性分数。在一些实施方式中,个性分类模型可以基于RCNN。
图10示出了根据实施例的用于获得个性分类模型的训练数据集的示例性过程1000。过程1000可以被执行用于通过扩展种子项来生成元组词典,并进一步基于元组词典来确定训练数据集。
在1002处,可以获得种子项。在本文中,种子项可以采用<话题,答案+情感类别,个性>的形式,其中,“话题”可以是测试问题中陈述的事实或假设,“答案+情感类别”可以是用户对测试问题的答案以及通过情感分析所确定的该答案的情感类别,“个性”可以是个性因素的负面或正面倾向。在一种实施方式中,可以通过图9中的执行隐式个性测试的过程900来获得种子项。
以测试问题“你单独工作时感觉如何?”和答案“我感到虚弱”为例,“话题”可以是从该测试问题中提取的“单独工作”或类似表达,“答案+情感类别”可以是“我感到虚弱(负面的)”以指示答案“我感到虚弱”具有对该测试问题的负面情感,“个性”可以是“正面的外向性”,其是基于对该答案的情感分析而确定的并指示该用户在“外向性”方面的正面倾向。由此,种子项可以形成为<单独工作,我感到虚弱(负面的),正面的“外向性”>。应该理解,种子项中的话题部分可以包括测试问题的一部分或全部,答案部分也可以包括答案的一部分或全部。通过这种方式,可以通过执行隐式个性测试来获得种子项集合。
在1004处,可以对种子项执行Word2vec同义词扩展,以扩展种子项。可以计算在种子项的“话题”部分或“答案”部分中的至少一个词语与来自语料库的词语之间的Word2vec余弦相似度分数。以这种方式,对于种子项的“话题”部分或“答案”部分中的目标词,可以收集来自语料库的并标记有所计算分数的多个词语,然后可以将一个或多个排序最高的词语确定为种子项中的目标词的扩展词。
如图10所示,对于种子项<单独工作,我感觉虚弱(负面的),正面的“外向性”>,基于所计算的Word2vec余弦相似度分数,可以将话题部分中的“单独”的扩展词确定为得分0.69的“独立地”、得分0.67的“各自地”、得分0.66的“孤立地”、得分0.65的“唯一地”等。可以将答案部分中的“虚弱”的扩展词确定为得分0.81的“无能为力”、得分0.70的“不稳定的”、得分0.64的“瘦弱的”、得分0.56的“不灵敏的”等。利用如上获得的扩展词,可以通过用相应的扩展词替换原始词来形成多个扩展项。扩展项的一些示例可以是:<独立地工作,我感到虚弱(负面的),正面的“外向性”>、<单独工作,我感到无能为力(负面的),正面的“外向性”>、<独立地工作,我感到无能为力(负面的),正面的“外向性”>、<各自地工作,我感到无能为力(负面的),正面的“外向性”>等。
在1006处,可以通过在1002处获得的种子项和在1004处获得的扩展项来形成元组词典。
在一种实施方式中,可以进一步向元组词典中的项的“答案+情感类别”部分附加相应的表情符号,例如绘文字(emoji)或颜文字(kaomoji),以丰富“答案+情感类别”部分的信息。在1008处,可以从网络收集与每种情感类别对应的绘文字或颜文字。例如,对于情感类别“负面的”,其对应的表情符号可以包括,例如“><”、“(つд)”等。相应地,可以基于情感类别而将这些表情符号附加到元组词典中的项的“答案+情感类别”部分。
在1006处形成的元组词典可以被用于从网络数据1010中查找包含元组词典里的项中的词语、短语和/或表情符号的语句。例如,对于元组词典中的每个项,可以收集一个或多个语句,其中每个语句可以包含该项中的一个或多个词语、短语和/或表情符号,并且可以由在该项中所指示的个性来标记。所收集到的语句与对应的个性标签采用<语句,个性>的形式,并且可以用作候选训练数据1012。
在一些情况下,候选训练数据1012可能包括具有模糊情感或难以识别情感的一些干扰语句,并且因此难以确定明确的个性。示例性干扰语句可以包括可能从原始情感切换到相反情感的词语“不”或其等同词。另一个示例性的干扰语句可以以混合的方式包括肯定词语和否定词语,例如“先表扬后批评”。支持向量机(SVM)分类器1014可被用于从候选训练数据1012中滤除干扰语句。SVM分类器1014可以使用三元字符作为特征。可以获得分类器训练数据集以用于训练SVM分类器1014。关于除了“中性的”之外的情感,可以针对每种情感类别人为标记实例,然后将实例用作分类器训练数据,而关于情感“中性的”,可以从网络中收集不包含情感词语或绘文字/颜文字的语句来作为分类器训练数据。
通过分类器训练数据,可以训练SVM分类器1014以用于在候选训练数据1012中区分干扰语句与其它语句,并从而可以从候选训练数据1012中去除包含这些干扰语句的那些候选训练数据。剩余的候选训练数据可以形成训练数据集1016以用于训练个性分类模型。
应当理解,在过程1000中,在1004处的Word2vec同义词扩展的操作、在1008处的附加表情符号的操作、以及SVM分类器1014的操作都是可选的。因此,在其它实施方式中,可以从过程1000中省略这些操作中的任何一个或多个。
图11示出了根据实施例的示例性个性分类模型1100,其可以是由图10中获得的训练数据集所训练的。如上所述,个性分类模型1100可以基于RCNN。在一种实施方式中,个性分类模型1100可以基于字符级别的RCNN。字符级别的RCNN能够对来自字符的语义和拼写信息两者进行编码。字符级别的RCNN可以包括嵌入层、卷积层、循环层和输出层。应该理解,对于例如日语、中文等的字符式语言中的语句,可以将语句中的字符作为用于嵌入(embedding)的基本单元,而对于例如英语的词语式语言中的语句,可以将语句中的词语,而不是字母,作为用于嵌入的基本单元。当嵌入层中的基本单元是“字符”时,卷积层将找出词语的最佳组合,其中每个词语是由几个字符组合成的。当嵌入层中的基本单元是“词语”时,卷积层将找出短语的最佳组合,其中每个短语是由几个词语组合成的。虽然下面的讨论针对的是“字符”的情况,但类似的技术手段也可以应用于“词语”的情况。
嵌入层可以将语句转换到密集向量空间,例如,为语句中的每个字符生成向量。
卷积层可以基于CNN,并且可以对来自嵌入层的向量执行卷积运算,例如,以各种内核大小来转换向量。
设定为字符嵌入矩阵,d是字符嵌入的维度,V是字符词汇集。假定词语w=c1,…,cl,其具有l个字符cj。则w的字符级别表示由矩阵 给出,其中,Cw的第j列对应于cj的字符嵌入,而cj进一步是Q的第j列。将窄卷积应用于Cw和宽度为f的过滤器或卷积函数之间。图11示出了宽度为f=3、5和7的三个示例性过滤器。然后,添加偏差,并且应用非线性变换以获得特征映射fw的第i个元素可以给定为:
fw[i]=tanh(<Cw[*,i:i+f-1],H>+b)方程(1)
其中,Cw[*,i:i+f-1]是Cw的第i到第(i+f-1)列,<A,B>=Tr(ABT)是Frobenius内积。
在一种实施方式中,卷积层处的CNN可以采用例如时间上的最大池化。
循环层可以对卷积层的输出执行循环操作。应该理解,尽管图11示出了循环层中的单向循环操作,但也可以将双向循环操作应用于循环层中。循环层也可以被称为RNN层,其可以采用长短期记忆(LSTM)单元。LSTM可以通过在每个时间步骤利用记忆元向量增强传统的RNN,来解决长距离依存性的学习问题和梯度消失问题。LSTM的一个步骤是将xt、ht-1、ct-1作为输入,并通过以下中间计算产生ht、ct:
it=σ(Wixt+Uiht-1+bi) 方程(2)
ft=σ(Wfxt+Ufht-1+bf) 方程(3)
ot=σ(Woxt+Uoht-1+bo) 方程(4)
gt=tanh(Wgxt+Ught-1+bg) 方程(5)
其中,σ(.)和tanh(.)是按元素的Sigmoid和双曲正切函数,是按元素的乘法运算符,it、ft、ot分别表示输入门、忘记门和输出门。当t=1时,h0和c0被初始化为零向量。将要在LSTM中训练的参数是矩阵Wj、Uj和偏差向量bj,其中,j∈{i,f,o,g}。
输出层可以使用来自循环层的RNN状态作为特征向量,并输出个性分数。例如,输出层可以是全连接层,其可以将来自循环层的256维向量转换为5维向量的输出,其中,该5维向量对应于五种个性因素,并且每个维度可以具有相应的个性因素的个性分数。在输出5维向量的情况下,个性因素的个性分数可以在[-1,1]的范围中,其中“-1”代表个性因素的最大负面程度,“1”代表个性因素的最大正面程度。应该理解,在一些实施方式中,输出层也可以输出例如10维向量,而不是输出5维向量。五种个性因素中的每一种可以由10维向量中的两个维度表示,一个维度具有个性因素在负面方向上的个性分数,其在[0,1]的范围内,另一维度具有个性因素在正面方向上的个性分数,其同样在[0,1]的范围内。
通过个性分类模型1100,当将一个或多个语句输入到该模型中时,可以获得个性分数集合。因此,对于用户的会话日志,个性分类模型1100可以基于会话日志中的消息和/或响应来为用户生成个性分数集合。此外,对于参考角色的台词,个性分类模型1100可以基于台词中的语句来为参考角色生成个性分数集合。
上面已经结合图7至图11讨论了通过在隐式个性测试中执行情感分析或通过个性分类模型来生成个性分数的实施方式,这些实施方式可以进一步用于执行在用户和一个或多个参考角色之间的个性比较,从而确定在个性上与用户对应的参考角色。
图12示出了根据实施例的用于确定角色相似度的示例性过程1200。过程1200可以基于个性分数来执行在用户与一个或多个参考角色之间的个性比较,并且确定在个性上与用户对应的参考角色。
在1202处,可以对用户执行至少一个隐式个性测试。可以在1204处针对来自用户的对隐式个性测试中的测试问题的答案执行情感分析。通过情感分析,可以获得用户的个性分数集合1206。在1202、1204和1206处的操作可以遵循图9中的过程900。
在1208处,可以获得参考角色的个性设置。在本文中,“个性设置”可以指在创建参考角色所在的卡通、电影或戏剧时为参考角色设置的个性特征。个性设置可以是根据网络上的对卡通、电影或戏剧的介绍,对卡通、电影或戏剧中的角色的介绍,评论家或观众对卡通、电影或戏剧的评论等来获得的。个性设置可以包括参考角色的各种个性因素的详细描述,并且可以通过各种方式,例如通过统计分析等,从详细描述中确定参考角色的个性分数集合1210。
可以基于个性分数集合1206和个性分数集合1210来计算相似度分数1212。例如,当将个性分数集合1206表示为{x1,x2,x3,x4,x5},并且将个性分数集合1210表示为{y1,y2,y3,y4,y5}时,则相似度分数1212可以被计算为其中,wi是第i个个性因素的权重,并且xi和yi分别是针对第i个个性因素的用户的个性分数和参考角色的个性分数。相似度分数1212可以指示在用户与参考角色之间在个性上的相似度。
在1214处,可以获得用户的会话日志。会话日志记录了在用户和聊天机器人之间的会话中的消息和响应。在1216处,可以使用个性分类模型来基于会话日志为用户生成个性分数集合1218。个性分类模型可以是根据上面结合图11的讨论来建立的。
在1220处,可以获得在1208处所涉及的参考角色的台词。在1216处,可以使用个性分类模型,基于台词中的语句来为参考角色生成个性分数集合1222。
可以以与相似度1212相同的方式,基于个性分数集合1218和个性分数集合1222来计算相似度分数1224。相似度分数1224也可以指示在用户与参考角色之间在个性上的相似度。
然后,可以基于相似度分数1212和相似度分数1224来计算最终相似度分数1226。例如,最终相似度分数1226可以是相似度分数1212和相似度分数1224的和。该最终的相似度分数1226可以指示整体上在用户与参考角色之间在个性上的相似度。
以与从1202到1226的操作相同的方式,还可以计算在用户和其他参考角色之间的最终相似度分数。然后,可以获得角色相似度结果1228。在一种实施方式中,角色相似度结果1228可以包括对具有排序最高的最终相似度分数并被认为在个性上与用户相对应的参考角色的指示。以图2中的场景为例,通过图12中的过程1200,聊天机器人可以确定用户在个性上与大雄相似,相应地,充当哆啦A梦的聊天机器人可以以类似于和大雄交谈的方式来对用户做出响应。在另一种实施方式中,角色相似度结果1228可以进一步包括在1226处所计算的在用户与一个或多个参考角色之间的最终相似度分数的集合。
应该理解,在过程1200中,在1226处对最终相似度分数的计算是可选的,可以将相似度分数1212和相似度分数1224中的任一个直接用作最终相似度分数,并进一步用于确定角色相似度结果1228。
图13示出了根据实施例的用于应用响应排序模型来确定响应的示例性过程1300。
如图13所示,响应排序模型1302可以被用于将当前消息1304作为输入,并且输出响应1306。
在一种实施方式中,响应排序模型1302可以基于目标角色的知识图谱1308来确定响应1306。如上所述,知识图谱1308可以包括目标角色的各种背景信息,并且还可以包括根据背景信息所生成的QA对。在这种情况下,如果来自用户的当前消息1304是关于目标角色的背景信息的,例如“哆啦A梦,你多大了?”,并且在知识图谱1308中包括根据哆啦A梦的年龄信息所生成的QA对<“你多大了?”,“我总是5岁”>,则通过执行当前消息1304与知识图谱1308中的QA对之间的匹配操作,响应排序模型1302可以在确定当前消息1304与上述QA对匹配时,将上述QA对中的答案部分“我总是5岁”提供作为响应1306。在进一步的实施方式中,如果从知识图谱1308中没有找到匹配的响应,则响应排序模型1302可以进一步尝试通过任何现有的方式来从纯聊天索引集1310中找到响应。
在一种实施方式中,响应排序模型1302可以根据基于角色的聊天索引集1312来确定响应1306。如上所述,基于角色的聊天索引集1312中的索引项可以采用<问题,答案,角色1,角色2>的形式,其中角色1可以是说出“问题”的参考角色,角色2可以是说出“答案”的目标角色。在这种情况下,响应排序模型1302可以参考通过图12中的过程1200所获得的角色相似度结果1314。例如,如果目标角色是“哆啦A梦”,并且角色相似度结果1314指示用户在个性上类似于“大雄”,则当对响应进行排序时,响应排序模型1302可以对基于角色的聊天索引集1312中“角色1”是大雄且“角色2”是哆啦A梦的那些索引项给予较高权重。
在一种实施方式中,响应排序模型1302可以基于知识图谱1308、纯聊天索引集1310、基于角色的聊天索引集1312和角色相似度结果1314的任意组合来确定响应1306。在这种情况下,响应排序模型1302可以是学习排序(LTR)模型,并且可以基于GBDT。
GBDT可以计算当前消息1304与来自知识图谱1308、纯聊天索引集1310或基于角色的聊天索引集1312的问题或答案的集合之间的相似度分数。在以下讨论中,知识图谱1308、纯聊天索引集1310和基于角色的聊天索引集1312中的问题和答案分别被称为候选问题和候选答案。
在一种实施方式中,GBDT中的一个特征可以基于在用户与参考角色之间的相似度分数,其中,参考角色是由基于角色的聊天索引集1312中的索引项<问题,答案,角色1,角色2>中的“角色1”表示的。用户与参考角色之间的相似度分数可以被包含在角色相似度结果1314中。如果一个索引项中的“角色1”对应于较高的相似度分数,则与其它索引项相比,可以给予该索引项更高的权重。
在一种实施方式中,GBDT中的一个特征可以基于用于信息提取的语言模型。该特征可以通过以下方程来评估在当前消息q与候选问题或答案Q之间的相关性:
P(q|Q)=∏w∈q[(1-λ)Pml(w|Q)+λPml(w|C)] 方程(8)
其中,Pml(w|Q)是从Q估计出词语w的最大似然性,Pml(w|C)是平滑项,该平滑项被计算为大规模语料库C中的最大似然估计。平滑项避免了零概率,该零概率源于在q中出现但没有在Q中出现的那些词语。λ是作为似然性和平滑项之间的权衡的参数,其中,λ∈(0,1)。
在一种实施方式中,GBDT中的一个特征可以基于一种基于翻译的语言模型。该特征可以从例如候选问题中学习词语到词语和/或短语到短语的翻译概率,并且可以将所学习的信息并入最大似然性中。给定当前消息q和候选问题Q,基于翻译的语言模型可以被定义为:
Ptrb(q|Q)=∏w∈q[(1-λ)Pmx(w|Q)+λPml(w|C)] 方程(9)
其中,Pmx(w|Q)=αPml(w|Q)+βPtr(w|Q) 方程(10)
Ptr(w|Q)=∑v∈QPtp(w|v)Pml(v|Q) 方程(11)
此处,λ、α和β是满足λ∈(0,1)且α+β=1的参数。Ptp(w|v)是从Q中的词语v到q中的词语w的翻译概率。Ptr(.)、Pmx(.)和Ptrb(.)是通过使用Ptp(.)和Pml(.)逐步构建的相似度函数。
在一种实施方式中,GBDT中的一个特征可以是在当前消息与候选问题之间的、词语或字符级别的编辑距离。
在一种实施方式中,GBDT中的一个特征可以是在当前消息与候选问题之间的最大子序列比。
在一种实施方式中,GBDT中的一个特征可以是来自使用GRU的RNN的余弦相似度分数。余弦相似度分数可以是对当前消息和候选答案之间的相似度的评估。可以将当前消息和候选答案输入到相应的RNN-GRU层,以分别获得相应的密集向量。密集向量可被进一步用于确定在当前消息和候选答案之间的相似度分数。
通过如上所述的响应排序模型,可以分别获得在当前消息1304与一组候选问题或候选答案之间的一组相似度分数,并且相应地,可以基于这些相似度分数来对知识图谱1308、纯聊天索引集1310、基于角色的聊天索引集1312中的QA对进行排序。可以选择排序最高的QA对中的答案作为响应1306。在一种实施方式中,可以将响应1306作为对当前消息1304的答复而提供给用户。
图14示出了根据实施例的用于为目标角色建立语言模型的示例性过程1400。该语言模型可以被建立用于对目标角色的语言风格进行建模。
在1402处,可以从目标角色所在的卡通、电影或戏剧中的目标角色的台词中确定一个或多个种子词。在本文中,“种子词”可以指目标角色最常使用的代表性或重要的词语。可以通过各种词语-权重算法,例如,词频-逆文档频率(TF-IDF)等,从台词中确定种子词。
在1404处,可以通过与种子词进行匹配来从网络数据1406中收集语句。例如,所收集的语句可以来自各种内容提供网站、社交网络等。所收集的语句可以包括种子词中的至少一个。所收集的语句可以被用作训练数据,并形成训练集。
在1408处,可以基于训练集中的所收集的语句来训练目标角色的语言模型。在一种实施方式中,语言模型可以是循环神经网络语言模型(RNNLM)。RNNLM可以基于RNN的一般结构。通过1408处的训练操作,可以建立语言模型以用于表征目标角色的语言风格。
在一种实施方式中,过程1400还可以包括语言模型的更新过程。在1410处,可以使用Word2vec过程来在向量空间中确定种子词的扩展词,其中,扩展词可以指与种子词在语义上相关的那些词语。然后,可以基于扩展词从网络数据1406中抓取语句。在1412处,可以通过用语义相关的种子词替换所抓取语句中的一个或多个词语来改变所抓取的语句。例如,可以通过Word2vec为种子词“漂亮的”确定出扩展词“美丽的”,同时可以通过Word2vec为种子词“机智的”确定出扩展词“聪明的”。如果基于扩展词“美丽的”而抓取到语句“她是个美丽的且聪明的女孩”,则由于所抓取语句中的词语“聪明的”在语义上与种子词“机智的”相关,所以该抓取的语句可以被改变为“她是个美丽的且机智的女孩”。
可以将所抓取的语句“她是个美丽的且聪明的女孩”以及改变后的语句“她是个美丽的且机智的女孩”用作新的训练数据,以扩展训练集。因此,过程1400可以基于这两个语句进一步更新语言模型。例如,可以基于这两个语句来重新训练语言模型。应当理解,在另一种实施方式中,在将这两个语句用作新的训练数据之前,可以确定这两个语句是否符合语言模型,例如,这两个语句是否可以由语言模型评分为高于阈值。只有评分高于阈值的语句可以被用作用于更新语言模型的新的训练数据。
根据本公开的实施例,可以建立语言风格重写模型,以用于将一个语句重写为采用目标角色的语言风格的另一语句。图15示出了根据实施例的示例性语言风格重写模型1500。语言风格重写模型1500可以与根据图14中的过程1400所建立的语言模型和/或如图11中所示的个性分类模型1100协作地执行重写操作。
如图15所示,语言风格重写模型1500可以具有基于关注的编码器-解码器式的结构,并且可以包括编码器层、内部语义层、隐藏循环层和解码器层。
在编码器层,可以采用目标角色的语言模型来获得输入序列(例如,语句)的词语向量。语言模型可以是根据图14中的过程1400所建立的RNNLM。然后,可以将双向循环操作应用于词语向量以获得源向量。双向循环操作中涉及两个方向,例如从左到右和从右到左。双向循环操作可以基于例如GRU式循环神经网络。编码器层也可以被称为“嵌入”层。源向量可以由时间标注hj表示,其中,j=1、2、...,Tx,Tx是输入序列的长度,例如输入序列中的词语的数量。
GRU过程的内部机制可以由以下方程来定义:
zt=σg(W(z)xt+U(z)ht-1+b(z)) 方程(12)
rt=σg(W(r)xt+U(r)ht-1+b(r)) 方程(13)
其中,xt是输入向量,ht是输出向量,zt是更新门向量,rt是复位门向量,σg来自sigmoid函数,σh来自双曲函数,ο是元素积,h0=0。此外,W(z)、W(r)、W(h)、U(z)、U(r)、U(h)是参数矩阵,b(z)、b(r)、b(h)是参数向量。此处,W(z),W(r), 且U(z),U(r),nH表示隐藏层的维度,nI表示输入向量的维度。例如,在方程(12)中,W(z)是将输入向量xt投影到向量空间中的矩阵,U(z)是将循环隐藏层ht-1投影到向量空间中的矩阵,b(z)是确定目标向量zt的相对位置的偏差向量。类似地,在方程(13)和(14)中,W(r)、U(r)、b(r)和W(h)、U(h)、b(h)以与W(z)、U(z)和b(z)相同的方式作用。
在内部语义层,可以实施关注机制。上下文向量ci可以是基于一组时间标注hj来计算的,该组时间标注hj可以被作为当前输入序列的时间密集表示。上下文向量ci可以被计算为时间标注hj的加权和,如下:
每个hj的权重αij也可以被称为“关注”权重,并且可以通过softmax函数来计算:
其中,eij=a(si-1,hj)是对准模型,其对位置j周围的输入与位置i处的输出相互匹配的程度进行评分。对准分数是在前一隐藏状态si-1和输入序列的第j个时间标注hj之间的。概率αij反映了在决定下一隐藏状态si并同时生成下一词语yi中hj相对于前一隐藏状态si-1的重要性。内部语义层通过应用权重αij来实施关注机制。
在隐藏循环层,通过单向的,例如从左到右的,循环操作来确定输出序列的隐藏状态si。单向循环操作可以由例如单向循环GRU单元执行。
在解码器层,可以如下确定下一词语yi的词语预测:
p(yi|y1,…,yi-1,x)=g(yi-1,si,ci) 方程(18)
其中,si来自隐藏循环层,ci来自内部语义层。此处,g(.)函数是非线性的、潜在的多层函数,其输出在输出序列中的下一候选词语的概率。解码器层也可以被称为“输出”层。
应该理解,解码器层可以使用目标角色的语言模型来对输出序列中的下一个候选词语进行排序。这可以进一步确保输出序列采用目标角色的语言风格。
在一种实施方式中,基于如图11所示的个性分类模型1100的损失函数可以可选地用于引导语言风格重写模型1500的训练,使得可以用目标语言风格来生成输出语句。损失函数可以被表示为:
损失=|分数(输出序列)-分数(参考语句)| 方程(19)
其中,分数(x)=个性分类模型(x),其表示由个性分类模型基于输入x所获得的个性分数集合,输出序列是通过用于输入序列的语言风格重写模型来获得的,参考语句可以是针对输入序列或由目标角色所说的与输入序列相关的语句的、以目标角色的语言风格所人为标记的语句。损失函数旨在识别在通过语言风格重写模型所获得的输出序列与采用目标角色的语言风格的参考语句之间的差异,并可以有助于训练语言风格重写模型以输出接近目标角色的语言风格的语句。
在进一步的实施方式中,上述损失函数可以进一步考虑个性比较的结果,例如,图12中的角色相似度结果1228。例如,如果目标角色是“哆啦A梦”,并且通过个性比较确定了与用户相对应的参考角色为“大雄”,则期望聊天机器人可以通过类似于哆啦A梦与大雄交谈的方式来对用户做出响应。因此,损失函数可以用于引导语言风格重写模型1500,以便不仅用哆啦A梦的语言风格、还以哆啦A梦与大雄交谈的方式来输出语句。在这种情况下,损失函数中的参考语句可以被确定或选择为哆啦A梦曾向或可能向大雄说的语句。相应地,损失函数可以帮助训练语言风格重写模型,以便输出接近目标角色语言风格、并同时模拟目标角色与参考角色交谈的方式的语句。
图16示出了根据实施例的用于通过DMN生成响应的示例性架构1600。架构1600可以被配置用于针对当前消息以逐词方式生成或推理出响应。
架构1600可以包括响应排序模型1610。响应排序模型1610可以提供对当前消息的一个或多个候选响应1616。响应排序模型1610可以对纯聊天索引集1612和/或基于角色的聊天索引集1614中的QA对排序,并且选择一个或多个排序最高的QA对中的答案作为候选响应。在排序期间,响应排序模型1610可以参考角色相似度结果1620,使得排序可以基于个性比较。角色相似度结果1620可以通过图12中的过程1200获得,并且可以包括对与用户相对应的参考角色的指示和/或在用户与一个或多个参考角色之间的相似度分数。响应排序模型1610可以以与图13中的响应排序模型1302类似的方式操作,除了响应排序模型1610可以输出一个以上的响应作为候选响应1616。通过在架构1600中应用响应排序模型1610以用于从开放域数据源(例如,现有的QA对)中提取相关信息,并且为随后的推理提供候选响应的列表,可以改善由架构1600输出的响应的多样性。
架构1600可以包括输入模块1630。在输入模块1630处,可以处理作为上下文信息的在用户与聊天机器人之间的当前会话。例如,可以将当前会话中的语句q1到q4和r1到r4的序列提供给输入模块1630,其中q1到q4是当前会话中来自用户的消息,并且r1到r4是当前会话中聊天机器人对消息q1到q4的响应。每个语句以“</s>”结束以表示一个语句的结尾。所有八个语句可以级联在一起以形成具有从W1到WT的T个词的输入序列。可以根据方程(12)-(15)对输入序列应用双向GRU编码。对于从左到右方向或从右到左方向,在每个时间步骤t,隐藏状态可以被更新为ht=GRU(L[wt],ht-1),其中L是嵌入矩阵,而wt是输入序列中第t个词语的词语索引。因此,对一个语句所得到的表示向量是两个向量的组合,每个向量来自一个方向。
除了对输入序列编码外,也可以应用具有双向GRU的位置编码,以便表示语句的“事实(fact)”。事实向量可以被计算为ft=GRUl2r(L[St],ft-1)+GRUr2l(L[St],ft-1),其中,l2r表示从左到右,r2l表示从右到左,St是当前语句的嵌入表示,ft-1和ft分别是前一语句和当前语句的事实向量。如图16所示,对于当前会话中的8个语句获得了事实向量f1至f8。
架构1600可以包括当前消息模块1640。在当前消息模块1640处,可以处理当前由用户输入的当前消息q5。对当前消息q5的编码是输入模块1630的简化形式,其中,在当前消息模块1640中只有一个待处理的语句。当前消息模块1640进行的处理与输入模块1630类似。假设当前消息中存在TQ个词语,则时间步骤t处的编码的隐藏状态可以被计算为qt=[GRUl2r(L[Wt Q],qt-1),GRUr2l(L[Wt Q],qt-1)],其中,L是嵌入矩阵,Wt Q是当前消息中的第t个词语的词语索引。以与输入模块1630类似的方式,可以在当前消息模块1640中针对当前消息q5获得事实向量f9。
架构1600可以包括情景记忆模块1650。情景记忆模块1650可以用于推理出记忆向量。在一种实施方式中,情景记忆模块1650可以包括关注机制模块1652。可替换地,关注机制模块1652也可以与情景记忆模块1650分离。关注机制模块1652可以基于门函数。
在通过情景记忆模块和关注机制模块的常规计算过程中,这两个模块可以协作用于以迭代方式来更新情景记忆。对于每一次迭代i,关注机制模块的门函数可以将事实fi、前一个记忆向量mi-1和当前消息q作为输入,以计算关注门为了计算第i次迭代的情景ei,可以将GRU应用于由门gi加权的输入序列,例如一系列事实fi。然后,可以将记忆向量计算为mi=GRU(ei,mi-1)。初始地,m0等于当前消息q的向量表示。情景记忆模块最终输出的记忆向量可以是GRU的最终状态mx。以下方程(20)用于在时间步骤t处更新GRU的隐藏状态,以下方程(21)用于计算情景。
其中,TC是输入语句的数量。
而根据本公开的实施例,为了生成最佳响应,除了从当前会话的事实推理外,在当前会话的事实不足以回答当前消息的情况下,也可以考虑外部事实。相应地,可以将候选响应1616的事实提供给情景记忆模块1650以用于进一步的多轮转换推理。
情景记忆模块1650可以利用当前会话的事实向量和候选事实响应的事实向量。此处,可以用与当前会话的事实向量类似的方式来计算候选事实响应的事实向量。如图16所示,记忆向量m1到mx对应于从当前会话的示例性事实向量f1到f8开始的推理过程,并且记忆向量mx+1到mx+y对应于从示例性的6个候选响应的事实向量开始的推理过程。
关于关注机制模块1652,对于每一次迭代i,关注机制模块1652的输入可以包括以下中的至少一个:来自当前会话的事实向量fi,从当前会话的事实向量推理出的前一个记忆向量mi-1,当前消息的事实向量f9,以及从候选响应的事实向量推理出的前一个事实记忆向量mx+i-1。因此,关注门可以被计算为评分函数G可以为特征集合{fi,mi-1,f9,mx+i-1}产生标量分数。例如,可以将这些向量之间的余弦相似度分数用于该特征集合。来自关注机制模块1652的计算结果可以被应用于情景记忆模块1650的推理过程。
来自情景记忆模块1650的输出可以至少包括记忆向量mx和mx+y,其中mx是从当前会话的事实向量推理出的,并且mx+y是从候选响应的事实向量推理出的。
架构1600可以包括响应生成模块1660。响应生成模块1660可以逐词语地决定响应,其中该响应将被作为对来自用户的当前消息的回复而提供给用户。在一种实施方式中,响应生成模块1660可以与语言风格重写模型1670协作以生成响应中的每个词语。语言风格重写模型1670可以与图15中的语言风格重写模型1500相同。如图16所示,可以将个性相似度结果1620提供给语言风格重写模型1670,使得语言风格重写模型1670的输出不仅可以接近目标角色的语言风格,而且可以模拟目标角色与参考角色交谈的方式。
响应生成模块1660可以采用GRU解码器,并且GRU解码器的初始状态可以被初始化为最后的记忆a0=[mx,mx+y]。在时间步骤t,GRU解码器可以将当前消息q5、最后一个隐藏状态at-1、前一个输出yt-1以及语言风格重写模型1670作为输入,然后将当前输出计算为:
yt=softmax(W(a)at) 方程(22)
at=GRU([yt-1,q5],at-1)+风格重写模型(yt|yt-1,yt-n+1)方程(23)其中,W(a)是权重矩阵,风格重写模型(yt|yt-1,yt-n+1)表示在给定yt-1到yt-n+1的情况下语言风格重写模型1670对yt的预测。
最后生成的词语可以被级联到当前向量以作为每个时间步骤处的输入。由响应生成模块1660生成的输出可以是利用在序列结尾处附有“</s>”标记的正确序列的交叉熵误差分类来训练的。
最后,可以从响应生成模块1660获得对当前消息的响应r5。这个响应可以是目标角色的语言风格。
应该理解,在架构1600中,输入模块1630、当前消息模块1640、情景记忆模块1650、关注机制模块1652和响应生成模块1660都在对响应的基于记忆的推理中直接涉及到,因此也可以被统称为DMN模块。
应该理解,以上结合图16讨论的所有模块、方程、参数和处理是示例性的,并且本公开的实施例不限于讨论中的任何细节。
图17示出了根据实施例的用于在自动聊天中生成响应的示例性方法1700的流程图。
在1710处,可以在会话中接收消息。
在1720处,可以执行第一角色和用户之间的个性比较。
在1730处,可以至少基于所述个性比较来生成响应,所述响应采用第二角色的语言风格。
在一种实施方式中,所述执行所述个性比较可以包括:通过执行隐式个性测试来确定所述用户的第一个性分数集合;基于所述第一角色的个性设置来确定所述第一角色的第二个性分数集合;以及基于所述第一个性分数集合和所述第二个性分数集合来计算第一相似度分数。
在一种实施方式中,所述确定所述第一个性分数集合可以包括:在执行所述隐式个性测试期间接收一个或多个答案;对所述一个或多个答案执行情感分析,以确定对应于所述一个或多个答案的一个或多个情感类别;以及至少基于所述一个或多个情感类别来确定所述第一个性分数集合。
在一种实施方式中,方法1700还可以包括:基于所述第一个性分数集合来呈现所述隐式个性测试的结果。
在一种实施方式中,所述执行所述个性比较可以包括:通过个性分类模型,基于所述用户的会话日志来确定所述用户的第三个性分数集合;通过所述个性分类模型,基于所述第一角色的会话日志来确定所述第一角色的第四个性分数集合;以及基于所述第三个性分数集合和所述第四个性分数集合来计算第二相似度分数。
在一种实施方式中,所述个性分类模型基于RCNN,并且所述个性分类模型的训练数据集是至少通过所述隐式个性测试来获得的。
在一种实施方式中,方法1700还可以包括:基于所述第一相似度分数和所述第二相似度分数中的至少一个,确定所述用户对应于所述第一角色。
在一种实施方式中,所述生成所述响应可以包括:通过DMN来生成所述响应。
在一种实施方式中,所述生成所述响应可以包括:至少基于所述个性比较来确定一个或多个候选响应;以及至少基于所述一个或多个候选响应来推理出所述响应。
在一种实施方式中,所述生成所述响应可以包括:通过应用语言风格重写模型来推理出所述响应,所述语言风格重写模型被建立用于至少基于所述个性比较来将输入序列转换成所述第二角色的语言风格的输出语句。
在一种实施方式中,方法1700还可以包括:建立所述第二角色的语言模型;在所述语言风格重写模型的编码器层处,通过所述语言模型来获得所述输入序列的向量表示;以及在所述语言风格重写模型的解码器层处,通过所述语言模型对所述输出语句中的下一个候选词语进行排序。
在一种实施方式中,可以至少通过基于个性分类模型的损失函数来训练语言风格重写模型。
在一种实施方式中,方法1700还可以包括:呈现多个候选角色;以及接收在所述多个候选角色中对所述第二角色的选择。
应当理解,方法1700还可以包括根据上述本公开实施例的用于在自动聊天中生成响应的任何步骤/处理。
图18示出了根据实施例的用于在自动聊天中生成响应的示例性装置1800。
装置1800可以包括:消息接收模块1810,用于在会话中接收消息;个性比较执行模块1820,用于执行第一角色和用户之间的个性比较;以及响应生成模块1830,用于至少基于所述个性比较来生成响应,所述响应采用第二角色的语言风格。
在一种实施方式中,个性比较执行模块1820还可以用于:通过执行隐式个性测试来确定所述用户的第一个性分数集合;基于所述第一角色的个性设置来确定所述第一角色的第二个性分数集合;以及基于所述第一个性分数集合和所述第二个性分数集合来计算第一相似度分数。
在一种实施方式中,个性比较执行模块1820还可以用于:通过个性分类模型,基于所述用户的会话日志来确定所述用户的第三个性分数集合;通过所述个性分类模型,基于所述第一角色的会话日志来确定所述第一角色的第四个性分数集合;以及基于所述第三个性分数集合和所述第四个性分数集合来计算第二相似度分数。
在一种实施方式中,响应生成模块1830还可以用于:通过DMN来生成所述响应。
在一种实施方式中,响应生成模块1830还可以用于:至少基于所述个性比较来确定一个或多个候选响应;以及至少基于所述一个或多个候选响应来推理出所述响应。
在一种实施方式中,响应生成模块1830还可以用于:通过应用语言风格重写模型来推理出所述响应,所述语言风格重写模型被建立用于至少基于所述个性比较来将输入序列转换成所述第二角色的语言风格的输出语句。
此外,装置1800还可以包括根据上述本公开实施例的被配置用于在自动聊天中生成响应的任何其它模块。
图19示出了根据实施例的用于在自动聊天中生成响应的示例性装置1900。
装置1900可以包括至少一个处理器1910。装置1900还可以包括与处理器1910连接的存储器1920。存储器1920可以存储计算机可执行指令,当所述计算机可执行指令被执行时,使得处理器1910执行根据上述本公开实施例的用于在自动聊天中生成响应的方法的任何操作。可替换地,可以从装置1900中省略存储器1920。
本公开的实施例可以实施在非暂时性计算机可读介质中。该非暂时性计算机可读介质可以包括指令,当所述指令被执行时,使得一个或多个处理器执行根据上述本公开实施例的用于在自动聊天中生成响应的方法的任何操作。
应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其它等同变换。
还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。
已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其它适合的处理部件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、DSP或其它适合的平台所执行的软件。
软件应当被广泛地视为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部(如,缓存或寄存器)。
以上描述被提供用于使得本领域任何技术人员可以实施本文所描述的各个方面。这些方面的各种修改对于本领域技术人员是显而易见的,本文限定的一般性原理可以应用于其它方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换,都将通过引用而明确地包含到本文中,并且旨在由权利要求所覆盖。
Claims (20)
1.一种用于在自动聊天中生成响应的方法,包括:
在会话中接收消息;
执行第一角色和用户之间的个性比较;以及
至少基于所述个性比较来生成响应,所述响应采用第二角色的语言风格。
2.根据权利要求1所述的方法,其中,所述执行所述个性比较包括:
通过执行隐式个性测试来确定所述用户的第一个性分数集合;
基于所述第一角色的个性设置来确定所述第一角色的第二个性分数集合;以及
基于所述第一个性分数集合和所述第二个性分数集合来计算第一相似度分数。
3.根据权利要求2所述的方法,其中,所述确定所述第一个性分数集合包括:
在执行所述隐式个性测试期间接收一个或多个答案;
对所述一个或多个答案执行情感分析,以确定对应于所述一个或多个答案的一个或多个情感类别;以及
至少基于所述一个或多个情感类别来确定所述第一个性分数集合。
4.根据权利要求2所述的方法,还包括:
基于所述第一个性分数集合来呈现所述隐式个性测试的结果。
5.根据权利要求2所述的方法,其中,所述执行所述个性比较包括:
通过个性分类模型,基于所述用户的会话日志来确定所述用户的第三个性分数集合;
通过所述个性分类模型,基于所述第一角色的会话日志来确定所述第一角色的第四个性分数集合;以及
基于所述第三个性分数集合和所述第四个性分数集合来计算第二相似度分数。
6.根据权利要求5所述的方法,其中,所述个性分类模型基于循环卷积神经网络(RCNN),并且所述个性分类模型的训练数据集是至少通过所述隐式个性测试来获得的。
7.根据权利要求5所述的方法,还包括:
基于所述第一相似度分数和所述第二相似度分数中的至少一个,确定所述用户对应于所述第一角色。
8.根据权利要求1所述的方法,其中,所述生成所述响应包括:
通过动态记忆网络(DMN)来生成所述响应。
9.根据权利要求8所述的方法,其中,所述生成所述响应包括:
至少基于所述个性比较来确定一个或多个候选响应;以及
至少基于所述一个或多个候选响应来推理出所述响应。
10.根据权利要求8所述的方法,其中,所述生成所述响应包括:
通过应用语言风格重写模型来推理出所述响应,所述语言风格重写模型被建立用于至少基于所述个性比较来将输入序列转换成所述第二角色的语言风格的输出语句。
11.根据权利要求10所述的方法,还包括:
建立所述第二角色的语言模型;
在所述语言风格重写模型的编码器层处,通过所述语言模型来获得所述输入序列的向量表示;以及
在所述语言风格重写模型的解码器层处,通过所述语言模型对所述输出语句中的下一个候选词语进行排序。
12.根据权利要求11所述的方法,其中,所述语言风格重写模型是至少通过基于个性分类模型的损失函数来训练的。
13.根据权利要求1所述的方法,还包括:
呈现多个候选角色;以及
接收在所述多个候选角色中对所述第二角色的选择。
14.一种用于在自动聊天中生成响应的装置,包括:
消息接收模块,用于在会话中接收消息;
个性比较执行模块,用于执行第一角色和用户之间的个性比较;以及
响应生成模块,用于至少基于所述个性比较来生成响应,所述响应采用第二角色的语言风格。
15.根据权利要求14所述的装置,其中,所述个性比较执行模块还用于:
通过执行隐式个性测试来确定所述用户的第一个性分数集合;
基于所述第一角色的个性设置来确定所述第一角色的第二个性分数集合;以及
基于所述第一个性分数集合和所述第二个性分数集合来计算第一相似度分数。
16.根据权利要求15所述的装置,其中,所述个性比较执行模块还用于:
通过个性分类模型,基于所述用户的会话日志来确定所述用户的第三个性分数集合;
通过所述个性分类模型,基于所述第一角色的会话日志来确定所述第一角色的第四个性分数集合;以及
基于所述第三个性分数集合和所述第四个性分数集合来计算第二相似度分数。
17.根据权利要求14所述的装置,其中,所述响应生成模块还用于:
通过动态记忆网络(DMN)来生成所述响应。
18.根据权利要求17所述的装置,其中,所述响应生成模块还用于:
至少基于所述个性比较来确定一个或多个候选响应;以及
至少基于所述一个或多个候选响应来推理出所述响应。
19.根据权利要求17所述的装置,其中,所述响应生成模块还用于:
通过应用语言风格重写模型来推理出所述响应,所述语言风格重写模型被建立用于至少基于所述个性比较来将输入序列转换成所述第二角色的语言风格的输出语句。
20.一种用于在自动聊天中生成响应的装置,包括:
一个或多个处理器;以及
存储器,存储计算机可执行指令,所述计算机可执行指令在被执行时使所述一个或多个处理器:
在会话中接收消息;
执行第一角色和用户之间的个性比较;以及
至少基于所述个性比较来生成响应,所述响应采用第二角色的语言风格。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/090821 WO2019000326A1 (en) | 2017-06-29 | 2017-06-29 | GENERATION OF ANSWERS IN AN AUTOMATED ONLINE CONVERSATION SERVICE |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109844741A true CN109844741A (zh) | 2019-06-04 |
CN109844741B CN109844741B (zh) | 2023-09-01 |
Family
ID=64740734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780063787.8A Active CN109844741B (zh) | 2017-06-29 | 2017-06-29 | 在自动聊天中生成响应 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200137001A1 (zh) |
EP (1) | EP3619619A4 (zh) |
CN (1) | CN109844741B (zh) |
WO (1) | WO2019000326A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110782871A (zh) * | 2019-10-30 | 2020-02-11 | 百度在线网络技术(北京)有限公司 | 一种韵律停顿预测方法、装置以及电子设备 |
CN111639227A (zh) * | 2020-05-26 | 2020-09-08 | 广东小天才科技有限公司 | 一种虚拟角色的口语控制方法、电子设备及存储介质 |
CN112750430A (zh) * | 2019-10-29 | 2021-05-04 | 微软技术许可有限责任公司 | 在自动聊天中提供响应 |
CN113301352A (zh) * | 2020-02-21 | 2021-08-24 | 微软技术许可有限责任公司 | 在视频播放期间进行自动聊天 |
CN113448829A (zh) * | 2020-03-27 | 2021-09-28 | 北京奔影网络科技有限公司 | 对话机器人测试方法、装置、设备及存储介质 |
CN114022596A (zh) * | 2021-11-02 | 2022-02-08 | 上海交通大学 | 动画场景的自动生成系统 |
US11704501B2 (en) * | 2017-11-24 | 2023-07-18 | Microsoft Technology Licensing, Llc | Providing a response in a session |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190142209A1 (en) * | 2017-11-16 | 2019-05-16 | LEVO Oil Infusion, Inc. | Apparatus and method for infusing oils |
CN108075959B (zh) * | 2016-11-14 | 2021-03-12 | 腾讯科技(深圳)有限公司 | 一种会话消息处理方法和装置 |
MX2018011305A (es) * | 2017-09-18 | 2019-07-04 | Tata Consultancy Services Ltd | Técnicas para corregir el desvío de entrenamiento lingüístico en los datos de entrenamiento. |
KR101999657B1 (ko) * | 2017-09-22 | 2019-07-16 | 주식회사 원더풀플랫폼 | 챗봇을 이용한 사용자 케어 시스템 |
US10956670B2 (en) | 2018-03-03 | 2021-03-23 | Samurai Labs Sp. Z O.O. | System and method for detecting undesirable and potentially harmful online behavior |
US11929155B1 (en) * | 2018-05-31 | 2024-03-12 | Allscripts Software, Llc | Apparatus, system and method for predictive processing of electronic health data for notification system |
US11107465B2 (en) * | 2018-10-23 | 2021-08-31 | Storyfile, Llc | Natural conversation storytelling system |
WO2020170112A1 (en) * | 2019-02-18 | 2020-08-27 | Fido Voice Sp. Z O.O. | Method and apparatus for detection and classification of undesired online activity and intervention in response |
EP3712896B1 (en) * | 2019-03-19 | 2022-01-12 | 2HFutura SA | Technique for efficient retrieval of personality data |
US11163960B2 (en) * | 2019-04-18 | 2021-11-02 | International Business Machines Corporation | Automatic semantic analysis and comparison of chatbot capabilities |
CN110263134B (zh) * | 2019-05-09 | 2023-06-27 | 平安科技(深圳)有限公司 | 智能化情感问答方法、装置及计算机可读存储介质 |
US11756527B1 (en) * | 2019-06-27 | 2023-09-12 | Apple Inc. | Assisted speech |
US11842174B2 (en) * | 2019-07-09 | 2023-12-12 | Google Llc | Translating between programming languages using machine learning |
US10691897B1 (en) * | 2019-08-29 | 2020-06-23 | Accenture Global Solutions Limited | Artificial intelligence based virtual agent trainer |
CN115485779A (zh) * | 2020-03-18 | 2022-12-16 | 2H富图拉股份公司 | 用于向用户提供用户适配的服务的技术 |
CN111488486B (zh) * | 2020-04-20 | 2021-08-17 | 武汉大学 | 一种基于多音源分离的电子音乐分类方法及系统 |
US20220229999A1 (en) * | 2021-01-19 | 2022-07-21 | Palo Alto Research Center Incorporated | Service platform for generating contextual, style-controlled response suggestions for an incoming message |
US20220253717A1 (en) * | 2021-02-05 | 2022-08-11 | Emily Leilani Martin | System and method for bringing inanimate characters to life |
JP7329585B2 (ja) * | 2021-05-24 | 2023-08-18 | ネイバー コーポレーション | ペルソナチャットボット制御方法及びシステム |
EP4281848A4 (en) | 2021-06-11 | 2024-07-17 | Samsung Electronics Co Ltd | METHODS AND SYSTEMS FOR GENERATING ONE OR MORE EMOTICONS FOR ONE OR MORE USERS |
US20230108637A1 (en) * | 2021-10-06 | 2023-04-06 | International Business Machines Corporation | Generating sorted lists of chat bot design nodes using escalation logs |
US20230281389A1 (en) * | 2022-03-02 | 2023-09-07 | Microsoft Technology Licensing, Llc | Topic suggestion in messaging systems |
CN117034953B (zh) * | 2023-10-07 | 2023-12-19 | 湖南东良数智科技有限公司 | 一种利用个人著作库与其智能会话的系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080046394A1 (en) * | 2006-08-14 | 2008-02-21 | Microsoft Corporation | Knowledge extraction from online discussion forums |
US20100151889A1 (en) * | 2008-12-11 | 2010-06-17 | Nortel Networks Limited | Automated Text-Based Messaging Interaction Using Natural Language Understanding Technologies |
US20150142706A1 (en) * | 2013-07-05 | 2015-05-21 | RISOFTDEV, Inc. | Systems and Methods for Creating and Implementing an Artificially Intelligent Agent or System |
US20150178371A1 (en) * | 2013-12-23 | 2015-06-25 | 24/7 Customer, Inc. | Systems and methods for facilitating dialogue mining |
CN105095195A (zh) * | 2015-07-03 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 基于知识图谱的人机问答方法和系统 |
CN105138710A (zh) * | 2015-10-12 | 2015-12-09 | 金耀星 | 一种聊天代理系统及方法 |
US20160132590A1 (en) * | 2014-11-12 | 2016-05-12 | International Business Machines Corporation | Answering Questions Via a Persona-Based Natural Language Processing (NLP) System |
CN105589844A (zh) * | 2015-12-18 | 2016-05-18 | 北京中科汇联科技股份有限公司 | 一种用于多轮问答系统中缺失语义补充的方法 |
CN105975622A (zh) * | 2016-05-28 | 2016-09-28 | 蔡宏铭 | 多角色智能聊天的方法及系统 |
US20160350653A1 (en) * | 2015-06-01 | 2016-12-01 | Salesforce.Com, Inc. | Dynamic Memory Network |
CN106575503A (zh) * | 2014-06-18 | 2017-04-19 | 微软技术许可有限责任公司 | 用于对话理解系统的会话上下文建模 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6907571B2 (en) * | 2000-03-01 | 2005-06-14 | Benjamin Slotznick | Adjunct use of instant messenger software to enable communications to or between chatterbots or other software agents |
US9141689B2 (en) * | 2008-06-11 | 2015-09-22 | International Business Machines Corporation | Persona management system for communications |
US8949725B1 (en) * | 2010-05-27 | 2015-02-03 | Speaktoit, Inc. | Chat information system for portable electronic devices |
WO2016175354A1 (ko) * | 2015-04-29 | 2016-11-03 | 주식회사 아카인텔리전스 | 인공지능 대화 장치 및 방법 |
US9866693B2 (en) * | 2016-05-06 | 2018-01-09 | Genesys Telecommunications Laboratories, Inc. | System and method for monitoring progress of automated chat conversations |
-
2017
- 2017-06-29 WO PCT/CN2017/090821 patent/WO2019000326A1/en unknown
- 2017-06-29 EP EP17915897.7A patent/EP3619619A4/en not_active Withdrawn
- 2017-06-29 CN CN201780063787.8A patent/CN109844741B/zh active Active
- 2017-06-29 US US16/626,430 patent/US20200137001A1/en not_active Abandoned
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080046394A1 (en) * | 2006-08-14 | 2008-02-21 | Microsoft Corporation | Knowledge extraction from online discussion forums |
US20100151889A1 (en) * | 2008-12-11 | 2010-06-17 | Nortel Networks Limited | Automated Text-Based Messaging Interaction Using Natural Language Understanding Technologies |
US20150142706A1 (en) * | 2013-07-05 | 2015-05-21 | RISOFTDEV, Inc. | Systems and Methods for Creating and Implementing an Artificially Intelligent Agent or System |
US20150178371A1 (en) * | 2013-12-23 | 2015-06-25 | 24/7 Customer, Inc. | Systems and methods for facilitating dialogue mining |
CN106575503A (zh) * | 2014-06-18 | 2017-04-19 | 微软技术许可有限责任公司 | 用于对话理解系统的会话上下文建模 |
US20160132590A1 (en) * | 2014-11-12 | 2016-05-12 | International Business Machines Corporation | Answering Questions Via a Persona-Based Natural Language Processing (NLP) System |
US20160350653A1 (en) * | 2015-06-01 | 2016-12-01 | Salesforce.Com, Inc. | Dynamic Memory Network |
CN105095195A (zh) * | 2015-07-03 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 基于知识图谱的人机问答方法和系统 |
CN105138710A (zh) * | 2015-10-12 | 2015-12-09 | 金耀星 | 一种聊天代理系统及方法 |
CN105589844A (zh) * | 2015-12-18 | 2016-05-18 | 北京中科汇联科技股份有限公司 | 一种用于多轮问答系统中缺失语义补充的方法 |
CN105975622A (zh) * | 2016-05-28 | 2016-09-28 | 蔡宏铭 | 多角色智能聊天的方法及系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11704501B2 (en) * | 2017-11-24 | 2023-07-18 | Microsoft Technology Licensing, Llc | Providing a response in a session |
CN112750430A (zh) * | 2019-10-29 | 2021-05-04 | 微软技术许可有限责任公司 | 在自动聊天中提供响应 |
CN110782871A (zh) * | 2019-10-30 | 2020-02-11 | 百度在线网络技术(北京)有限公司 | 一种韵律停顿预测方法、装置以及电子设备 |
CN110782871B (zh) * | 2019-10-30 | 2020-10-30 | 百度在线网络技术(北京)有限公司 | 一种韵律停顿预测方法、装置以及电子设备 |
US11200382B2 (en) | 2019-10-30 | 2021-12-14 | Baidu Online Network Technology (Beijing) Co., Ltd. | Prosodic pause prediction method, prosodic pause prediction device and electronic device |
CN113301352A (zh) * | 2020-02-21 | 2021-08-24 | 微软技术许可有限责任公司 | 在视频播放期间进行自动聊天 |
CN113301352B (zh) * | 2020-02-21 | 2023-09-01 | 微软技术许可有限责任公司 | 在视频播放期间进行自动聊天 |
CN113448829A (zh) * | 2020-03-27 | 2021-09-28 | 北京奔影网络科技有限公司 | 对话机器人测试方法、装置、设备及存储介质 |
CN113448829B (zh) * | 2020-03-27 | 2024-06-04 | 来也科技(北京)有限公司 | 对话机器人测试方法、装置、设备及存储介质 |
CN111639227A (zh) * | 2020-05-26 | 2020-09-08 | 广东小天才科技有限公司 | 一种虚拟角色的口语控制方法、电子设备及存储介质 |
CN111639227B (zh) * | 2020-05-26 | 2023-09-22 | 广东小天才科技有限公司 | 一种虚拟角色的口语控制方法、电子设备及存储介质 |
CN114022596A (zh) * | 2021-11-02 | 2022-02-08 | 上海交通大学 | 动画场景的自动生成系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3619619A1 (en) | 2020-03-11 |
EP3619619A4 (en) | 2020-11-18 |
CN109844741B (zh) | 2023-09-01 |
WO2019000326A1 (en) | 2019-01-03 |
US20200137001A1 (en) | 2020-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109844741A (zh) | 在自动聊天中生成响应 | |
Krohn et al. | Deep learning illustrated: a visual, interactive guide to artificial intelligence | |
CN109564572A (zh) | 生成用于自动聊天的问题-答案对 | |
Wen et al. | Dynamic interactive multiview memory network for emotion recognition in conversation | |
US20200395008A1 (en) | Personality-Based Conversational Agents and Pragmatic Model, and Related Interfaces and Commercial Models | |
Pang et al. | Deep multimodal learning for affective analysis and retrieval | |
Roller et al. | Open-domain conversational agents: Current progress, open problems, and future directions | |
Tinwell et al. | The uncanny wall | |
CN110301117A (zh) | 在会话中提供响应 | |
CN109564783A (zh) | 在自动聊天中辅助心理治疗 | |
CN110379225A (zh) | 互动式语言习得的系统和方法 | |
Nishida et al. | Conversational informatics | |
CN113392641B (zh) | 文本处理方法、装置、存储介质和设备 | |
Hayles | Inside the Mind of an AI: Materiality and the Crisis of Representation | |
Johnson | Mind, language, machine: Artificial intelligence in the poststructuralist age | |
Lindgren | Critical theory of AI | |
CN116704085B (zh) | 虚拟形象生成方法、装置、电子设备和存储介质 | |
Mai et al. | A unimodal representation learning and recurrent decomposition fusion structure for utterance-level multimodal embedding learning | |
Barale | “Who inspires who?” Aesthetics in front of AI art | |
Doering et al. | Neural-network-based memory for a social robot: Learning a memory model of human behavior from data | |
Li | Learning knowledge to support domain-independent narrative intelligence | |
Li et al. | Data-driven alibi story telling for social believability | |
Irfan et al. | Coffee with a hint of data: towards using data-driven approaches in personalised long-term interactions | |
Yang et al. | User behavior fusion in dialog management with multi-modal history cues | |
Leone | The main tasks of a semiotics of artificial intelligence |
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 |