CN109313650B - 在自动聊天中生成响应 - Google Patents

在自动聊天中生成响应 Download PDF

Info

Publication number
CN109313650B
CN109313650B CN201780035986.8A CN201780035986A CN109313650B CN 109313650 B CN109313650 B CN 109313650B CN 201780035986 A CN201780035986 A CN 201780035986A CN 109313650 B CN109313650 B CN 109313650B
Authority
CN
China
Prior art keywords
message
candidate
response
chat
responses
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.)
Active
Application number
CN201780035986.8A
Other languages
English (en)
Other versions
CN109313650A (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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109313650A publication Critical patent/CN109313650A/zh
Application granted granted Critical
Publication of CN109313650B publication Critical patent/CN109313650B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • 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
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Algebra (AREA)
  • Medical Informatics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Machine Translation (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示出了根据实施例的用于在自动聊天中生成响应的示例性装置。
具体实施方式
现在将参考多种示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。
AI聊天机器人可以使用响应提供模型来提供对用户输入的消息的自动响应,所述消息例如查询、评论、应答等。响应提供模型可以包括用于基于消息来确定或生成响应的机制。
在传统的响应提供模型中,可以将排序过程用于确定响应。例如,可以建立大规模消息-响应集合,所述消息-响应集合包括预定消息和相应的候选响应。在接收到消息时,可以对消息-响应集合中与该消息相关联的那些候选响应进行排序,并且可以从经排序的候选响应中确定对该消息的响应。在这种基于排序的响应提供模型中,响应是直接从包括在消息-响应集合内的候选响应中确定的。虽然这些候选响应可能适合于对与消息-响应集合中的预定消息语义相关的消息做出响应,但是这些候选响应可能并不适合于新消息,例如,与消息-响应集合中的预定消息语义不相关的消息。此外,通过该模型确定的响应可能缺乏语义多样性。
在另一种传统的响应提供模型中,可以将生成过程用于生成响应。生成过程具有学习的能力,其可以采用统计机器翻译(SMT)或神经机器翻译(NMT)来生成响应。在这种基于生成的响应提供模型中,响应是可以通过机器翻译和词语组合来生成的。所生成的响应可能经常会非常短,具有与消息相似的表达模式,并且看起来像是伪造的语句而不是自然语言语句。此外,通过该模型确定的响应关注于语义相似性,但可能缺乏语义多样性。
在一些方面,本公开的实施例提出了基于排序过程和生成过程的组合的响应提供模型。将知识数据引入到候选响应的形成和排序中。在本文中,知识数据可以指从网络上的知识型网站,例如维基百科,所获得的知识信息,所述知识信息可以有助于改善语义多样性。可以将候选响应的排序结果作为附加输入提供给生成过程。通过生成过程所生成的响应可以至少基于排序结果,并且因此可以包括知识信息。根据本公开实施例的响应提供模型可以确保响应具有语义相似性和语义多样性,并且采用了自然语言语句的表达形式。
在其它方面,本公开的实施例可以通过语义结构补全处理来生成用于响应提供模型的训练数据。通常,在聊天期间,用户或聊天机器人可能使用简短的语句而不是完整的语句,例如,可能省略语句的包括主语、宾语等的一个或多个部分。语义结构补全处理可以对聊天流中的消息和响应执行语义结构补全,并且补全的消息和响应可以用作响应提供模型的训练数据。在本文中,聊天流可以指包括来自用户的消息和来自聊天机器人的响应的聊天过程,语义结构补全可以指补全语句中的语法间隙。在一些实施方式中,语句中的语法间隙可以是基于谓词-论元(predicate-argument)结构分析来补全的。通过语义结构补全处理所获得的训练数据可以有助于在响应提供模型中执行语义相似性和语义多样性的训练。
在另外的方面,本公开的实施例可以使用语义结构补全处理来补全当前消息中的语法间隙,所补全的当前消息可以被响应提供模型进一步用于生成相应的响应。
图1示出了根据实施例的聊天机器人的示例性应用场景100。
在图1中,网络110被应用于在终端设备120和聊天机器人服务器130之间进行互连。
网络110可以是能够对网络实体进行互连的任何类型的网络。网络110可以是单个网络或各种网络的组合。在覆盖范围方面,网络110可以是局域网(LAN)、广域网(WAN)等。在承载介质方面,网络110可以是有线网络、无线网络等。在数据交换技术方面,网络110可以是电路交换网络、分组交换网络等。
终端设备120可以是能够连接到网络110、访问网络110上的服务器或网站、处理数据或信号等的任何类型的电子计算设备。例如,终端设备120可以是台式计算机、笔记本电脑、平板电脑、智能电话等。尽管在图1中仅示出了一个终端设备120,但是应当理解,可以有不同数量的终端设备连接到网络110。
终端设备120可以包括可为用户提供自动聊天服务的聊天机器人客户端122。在一些实施方式中,聊天机器人客户端122可以与聊天机器人服务器130进行交互。例如,聊天机器人客户端122可以将用户输入的消息传送到聊天机器人服务器130,并且从聊天机器人服务器130接收与消息相关联的响应。然而,应当理解,在其它实施方式中,聊天机器人客户端122也可以本地地生成对用户输入的消息的响应,而不是与聊天机器人服务器130进行交互。
聊天机器人服务器130可以连接到或包含聊天机器人数据库140。聊天机器人数据库140可以包括可由聊天机器人服务器130用于生成响应的信息。
应当理解,图1中所示的所有网络实体都是示例性的,根据具体的应用需求,应用场景100可以涉及任何其它网络实体。
图2示出了根据实施例的示例性聊天机器人系统200。
聊天机器人系统200可以包括用于呈现聊天窗口的用户界面(UI)210。聊天窗口可以由聊天机器人用于与用户进行交互。
聊天机器人系统200可以包括核心处理模块220。核心处理模块220被配置用于通过与聊天机器人系统200的其它模块的协作,在聊天机器人的运行期间提供处理能力。
核心处理模块220可以获得由用户在聊天窗口中输入的消息,并将消息存储在消息队列232中。消息可以采用各种多媒体形式,例如文本、语音、图像、视频等。
核心处理模块220可以用先进先出的方式处理消息队列232中的消息。核心处理模块220可以调用应用程序接口(API)模块240中的处理单元来处理各种形式的消息。API模块240可以包括文本处理单元242、语音处理单元244、图像处理单元246等。
对于文本消息,文本处理单元242可以对文本消息执行文本理解,并且核心处理模块220可以进一步确定文本响应。
对于语音消息,语音处理单元244可以对语音消息执行语音到文本转换以获得文本语句,文本处理单元242可以对所获得的文本语句执行文本理解,并且核心处理模块220可以进一步确定文本响应。如果确定以语音提供响应,则语音处理单元244可以对文本响应执行文本到语音转换以生成相应的语音响应。
对于图像消息,图像处理单元246可以对图像消息执行图像识别以生成相应的文本,并且核心处理模块220可以进一步确定文本响应。在一些情况下,图像处理单元246也可以用于基于文本响应来获得图像响应。
此外,尽管在图2中未示出,API模块240还可以包括任何其它处理单元。例如,API模块240可以包括视频处理单元,该视频处理单元用于与核心处理模块220协作以处理视频消息并确定响应。
核心处理模块220可以通过索引数据库250来确定响应。索引数据库250可以包括可由核心处理模块220提取作为响应的多个索引项。索引数据库250中的索引项可以被分类为纯聊天索引集252和知识数据库254。纯聊天索引集252可以包括索引项,索引项被准备用于用户和聊天机器人之间的自由聊天,并且可以用来自社交网络的数据来建立。纯聊天索引集252中的索引项可以采用或不采用问题-答案对的形式。问题-答案对也可以称为消息-响应对。知识数据库254可以包括基于来自网络上的知识型网站的知识信息所生成的知识数据。知识数据库中的知识数据也可以称为知识图谱。
核心处理模块220可以利用候选响应排序器260和动态记忆网络(DMN)模型270来生成响应。候选响应排序器260可以对针对消息的多个候选响应进行排序。DMN模型270可以至少基于经排序的候选响应来生成对消息的响应。
可以将由核心处理模块220确定的响应提供给响应队列或响应高速缓存234。例如,响应高速缓存234可以确保能够以预定义的时间流来显示响应序列。假设对于一个消息,由核心处理模块220确定了不少于两个响应,则对响应的时间延迟设置可能是必要的。例如,如果玩家输入的消息是“你吃早餐了吗?”,则可能确定出两个响应,例如,第一响应是“是的,我吃了面包”,第二响应是“你呢?还觉得饿吗?”。在这种情况下,通过响应高速缓存234,聊天机器人可以确保立即向玩家提供第一响应。此外,聊天机器人可以确保以例如1或2秒的时间延迟来提供第二响应,使得第二响应将在第一响应之后的1或2秒提供给玩家。由此,响应高速缓存234可以管理将要发送的响应以及针对每个响应的适当定时。
可以将响应队列或响应高速缓存234中的响应进一步传送到用户界面210,以便可以在聊天窗口中将响应显示给用户。
应当理解,图2中的聊天机器人系统200中所示的所有单元都是示例性的,并且根据具体的应用需求,在聊天机器人系统200中可以省略任何所示的单元并且可以涉及任何其它单元。
图3示出了根据实施例的示例性聊天窗口300。聊天窗口300可以包括呈现区域310、控制区域320和输入区域330。呈现区域310在聊天流中显示消息和响应。控制区域320包括多个虚拟按钮以用于用户执行消息输入设置。例如,用户可以通过控制区域320选择进行语音输入、附加图像文件、选择表情符号、进行当前屏幕的截图等。输入区域330用于用户输入消息。例如,用户可以通过输入区域330键入文本。聊天窗口300还可以包括虚拟按钮340以用于确认发送所输入的消息。如果用户触摸虚拟按钮340,则可以将在输入区域330中输入的消息发送到呈现区域310。
应当注意,图3中所示的所有单元及其布局都是示例性的。根据具体的应用需求,图3中的聊天窗口可以省略或添加任何单元,并且图3中的聊天窗口中的单元的布局也可以以各种方式改变。
图4示出了根据实施例的用于语义结构补全的示例性处理400。处理400可以用于在聊天流中补全语句中的语法间隙。图4的上部是离线数据挖掘过程,图4的下部是在线应用过程。
在410处,可以从网络抓取网络数据。例如,网络数据可以是来自网络上的知识型网站的知识信息,所述知识型网站例如维基百科、知乎等。
在412处,可以将依存句法分析应用于网络数据。可以采用任何现有的依存句法分析器来执行依存句法分析,例如谓词-论元结构分析。通过依存句法分析,可以获得语句的词语之间的依存弧(dependency arc)和依存角色。图5示出了根据实施例的对示例性语句的示例性依存句法分析500。假设将语句“汤姆预订了一张票去巴黎”输入依存句法分析。词语“预订”被确定为语句的谓词。确定出从“预订”到“汤姆”的依存弧,并将“汤姆”和“预定”之间的依存角色确定为“nsubj”,其中,“nsubj”表示名词性主语。确定出从“预订”到“票”的依存弧,并将“票”和“预订”之间的依存角色确定为“dobj”,其中,“dobj”表示直接主语。确定出从“票”到“一张”的依存弧,并将“一张”和“票”之间的依存角色确定为“det”,其中,“det”表示限定词。确定出从“票”到“去”的依存弧,并将“去”和“票”之间的依存角色确定为“prep”,其中,“prep”表示介词。确定出从“去”到“巴黎”的依存弧,并将“巴黎”和“去”之间的依存角色确定为“pobj”,其中,“pobj”表示介词的宾语。应当理解,图5所示的依存角色是示例性的,对于其它语句,可以通过依存句法分析来确定出各种依存角色。
在414处,可以收集网络数据中的每个语句的词语之间的依存弧和依存角色。可以通过在412处的依存句法分析来生成所收集的依存弧和依存角色。
在416处,可以建立依存词语对列表。依存词语对列表可以包括多个条目。一个条目可以包括一对词语和这对词语之间的依存角色,并且可以采用<词语1,词语2,依存角色>的形式。以语句“汤姆预订了一张票去巴黎”为例,可以建立多个条目,例如<汤姆,预订,nsubj>、<票,预订,dobj>、<去,票,prep>等。在一些实施方式中,条目还可以包括频率值,该频率值是具有依存角色的一对词语在由410处获得的网络数据所形成的语料库中出现的计数。因此,条目还可以采用<词语1,词语2,依存角色,频率>的形式,例如<汤姆,预订,nsubj,47>,<票,预订,dobj,586>等。
在418处,可以基于412处的依存句法分析来生成知识问题-答案(QA)对。对于已经执行了依存句法分析的语句,可以根据语句中的不同依存角色并参考已知的问题模式来生成多个问题-答案对。在本文中,问题模式可以指示什么样的语句结构和疑问词可以用于询问语句中的论元。以语句“汤姆预订了一张票去巴黎”为例,可以生成问题-答案对“谁预订了一张票去巴黎?”和“汤姆”以用于询问主语论元“汤姆”,可以生成问题-答案对“汤姆预订了去哪里的票?”和“去巴黎”以用于询问介词论元的宾语“巴黎”,等等。
在420处,可以建立知识数据库。知识数据库可以包括能够有助于改进语义多样性的知识数据。
在一些实施方式中,知识数据库中的知识数据可以包括在418处生成的知识问题-答案对。
在其它实施方式中,虽然在图4中未示出,但知识数据库中的知识数据可以包括知识项的列表。知识项可以包括关于实体、实体的属性和属性的值的信息。实体可以是感兴趣的对象,属性可以是实体所属的类别,并且值可以是属性中的实体的特性。例如,对于电影“星球大战”,实体是“星球大战”,属性可以是“电影”,值可以是“科幻”,因而,可以将例如<星球大战,电影,科幻>的知识项包括在知识数据库中。
通过图4上部的离线数据挖掘过程,可以建立依存词语对列表416和知识数据库420。
在图4的下部所示的在线应用过程中,可以将语义结构补全应用于聊天流中的当前消息。
在430处,可以获得聊天流的聊天上下文。聊天上下文可以包括用户与聊天机器人之间的聊天流中的历史对话,诸如来自用户的消息和来自聊天机器人的响应。
在432处,可以从聊天上下文中提取关键词。例如,对于聊天上下文中的语句,可以提取语句中的实词作为关键词,例如名词、动词、形容词等,而可以忽略语句中的功能词,例如介词、连词、冠词等。
在434处,可以确定候选词语。在本文中,候选词语可以指可用于补全语句中的语法间隙的那些词语。可以采用各种方式来确定候选词语。
在一种实施方式中,可以从在432处提取的关键词中选择候选词语。例如,可以计算关键词的词频-逆文档频率(TF-IDF)分数,并且可以选择排序最高的N个关键词作为候选词语,其中,N是基于所需的响应时间而预先确定的。
在一种实施方式中,候选词语可以是基于启发式规则来确定的。例如,如果来自用户的消息包括词语“你”,则根据启发式规则,可以确定候选词语“我”,以便从消息中的“你”切换到聊天机器人的响应中的“我”。
在一种实施方式中,候选词语可以是根据知识数据库420中的知识数据来确定的。如上所述,知识数据库420可以包括知识项,知识项包括关于实体、属性和值的信息。如果确定已被选作候选词语的关键词被包括作为知识数据库420中的知识项中的实体,则可以将该知识项中与该实体相关联的属性和/或值进一步确定为是与该关键词相关联的候选词语。例如,对于已被选作候选词语的关键词“星球大战”,如果在知识数据库420中存在<星球大战,电影,科幻>的知识项,则属性和值的组合“科幻电影”也可以被确定作为与“星球大战”相关联的候选词语。
在440处,可以对当前消息450应用语句补全算法,以便获得补全的消息460。
语句补全算法可以选择候选词语以补全当前消息450中的语法间隙。语句补全算法可以以递增的方式工作。例如,如果将一个候选词语判断为当前消息450的谓词或论元,则可以将该候选词语添加到当前消息450以形成新消息。新消息将被迭代用于下一轮判断,直到没有候选词语剩下为止。
下表1示出了语句补全算法的示例性流程。应当注意,表1中的所有步骤都是示例性的,并且本公开的实施例不限于表1中的任何步骤或这些步骤的顺序,而是应当涵盖在相同或相似构思下的所有其它等同变换。
Figure BDA0001898712000000091
/>
Figure BDA0001898712000000101
表1
在步骤1.1,将空集赋值给bestWord。在步骤1.2,将当前消息q赋值给Q。在步骤1.3,定义候选词语列表L中候选词语之间的迭代。在步骤1.4,从Q中弹出(pop)q。在步骤1.5,将q的长度赋值给lenOld。在步骤1.6,定义q中的词语之间的迭代。在步骤1.7,确定词语对wL和wq被包括在依存词语对列表D中。在步骤1.8,将wL和wq之间的依存角色赋值给role。在步骤1.9,由排序器R(wL,wq,role)计算词语对wL和wq的分数。排序器可以通过决策树,例如梯度提升决策树(GBDT),来确定分数。在步骤1.10至1.12,如果确定分数等于或高于预定阈值,则更新bestWord和q。在步骤1.13,将当前q的长度赋值给lenNew。在步骤1.14和1.15,如果确定lenNew高于lenOld,则更新Q。在步骤1.16和1.17,将当前q赋值给Q。在步骤1.18,返回Q。
通过440处的语句补全算法,可以获得补全的消息460,在补全的消息中已经补全了语法间隙。
尽管在图4中未示出,但是应当理解,除了对消息执行语义结构补全之外,也可以对聊天机器人的响应执行语义结构补全。考虑到响应是聊天机器人至少针对当前消息而提供的,即使该响应可能是简短的语句,聊天机器人也已经知道了响应中的词语对于当前消息而言是什么论元。因此,可以通过经由谓词-论元结构分析对响应中的词语与当前消息进行组合,来补全该响应。例如,对于消息“谁预订了一张票去巴黎”,聊天机器人可以提供响应“汤姆”。该响应中的词语“汤姆”是该消息中的主语论元,因此补全的响应可以是“汤姆(预订了一张票去巴黎)”。在其它实施方式中,可以将用于补全消息的信息传递到相应的响应,使得可以利用该信息来补全响应。例如,在将消息“我经常打”补全为“我经常打(乒乓球)”的情况下,其中“乒乓球”是通过图4所示的语义结构补全处理而添加的,可以通过并入用于补全该消息的信息“乒乓球”来将响应“你打得好吗?”补全为“你(乒乓球)打得好吗?”。
此外,应当理解,对消息和响应的语义结构补全处理可以迭代地执行。例如,可以将补全的消息和/或补全的响应添加到聊天上下文430中。在这种情况下,聊天上下文430还可以包括聊天流中的补全的消息和补全的响应。
此外,应当理解,根据本公开的实施例,上面获得的补全的消息和补全的响应也可以被用作用于训练响应提供模型的训练数据。
图6示出了根据实施例的语义结构补全的实例。窗口610示出了聊天流中的原始消息和响应,窗口620示出了聊天流中的补全的消息和响应。
如图6所示,窗口610中的响应“羽毛球”被补全为窗口620中的“(我喜欢打)羽毛球”。窗口610中的消息“我经常打”被补全为窗口620中的“我经常打(羽毛球)”。窗口610中的响应“听起来不错!你想成为职业球员吗?”被补全为窗口620中的“(你经常打羽毛球这事)听起来不错!你想成为(羽毛球)职业球员吗?”。窗口610中的消息“喔,对我来说太晚了”被补全为窗口620中的“喔,(成为职业球员)对我来说太晚了”。
图7示出了根据实施例的响应提供模型的示例性处理700。响应提供模型可以基于排序过程和生成过程的组合。通过排序过程,可以对消息的多个候选响应进行排序。通过生成过程,可以生成对消息的响应,其中该响应是至少基于经排序的候选响应来生成的。
如图7所示,可以将纯聊天索引集710和知识数据库712中的一个或两者用于生成多个候选响应714。纯聊天索引集710可以包括被准备用于用户与聊天机器人之间的自由聊天的索引项。可以利用来自诸如Facebook、Twitter、Microblog等的社交网络的数据来建立纯聊天索引集710。知识数据库712可以包括知识数据,并且可以与上面结合图4所讨论的知识数据库420相同。
在一种实施方式中,当获得当前消息时,可以从纯聊天索引集710中提取候选响应。例如,假设当前消息是“你看过星球大战吗?”,则可以从纯聊天索引集710中提取候选响应“是,当然”。
在另一种实施方式中,可以从知识数据库712中提取候选响应。如上所述,知识数据库712中的知识数据可以包括知识问题-答案对。如果知识数据库712中的知识问题-答案对中的问题在语义上与消息相关,则可以提取该知识问题-答案对中的答案作为对该消息的候选响应。例如,假设当前消息是“你认为电影星球大战怎么样?”,并且在知识数据库712中包括知识问题-答案对“星球大战怎么样?”和“星球大战是全球热门的电影系列”,则可以将知识问题-答案对中的问题“星球大战怎么样”确定为在语义上与当前消息相关,因而可以提取“星球大战是全球热门的电影系列”作为对当前消息的候选。
在另一种实施方式中,可以从纯聊天索引集710和知识数据库712两者中提取候选响应。如上所述,知识数据库712中的知识数据可以包括知识项。知识数据库712中的知识项可以与纯聊天索引集710中的匹配的响应索引进行组合以形成候选响应。例如,假设当前的消息是“你看过星球大战吗?”,如果从纯聊天索引集710中提取了相关响应索引“是,当然”,并且在知识数据库中找到了相关知识项<星球大战,电影,科幻>,则可以生成候选响应“是,当然。星球大战是科幻电影”。
应当理解,如果使用知识数据库生成候选响应,则可以增强语义多样性。
在716处,应用候选响应排序器以对候选响应进行排序。例如,候选响应排序器可以确定每个候选响应的相关性分数。候选响应排序器可以是通过机器学习建立的排序模型。在该排序模型中可以采用一个或多个特征。
在一种实施方式中,排序模型中的一个特征可以基于用于信息提取的语言模型。该特征可以通过以下方程来评估消息q与候选响应R之间的相关性:
P(q|R)=Πw∈q[(1-λ)Pml(w|R)+λPml(w|C)] 方程(1)
其中,Pml(w|R)是从R估计出词语w的最大似然性,Pml(w|C)是平滑项,该平滑项被计算为大规模语料库C中的最大似然估计。平滑项避免了零概率,该零概率源于在候选响应R中出现但没有在消息q中出现的那些词语。λ是作为似然性和平滑项之间的权衡的参数,其中,λ∈(0,1)。当消息和候选响应之间有多个词语重叠时,该特征的效果较好。
在一种实施方式中,排序模型中的一个特征可以基于一种基于翻译的语言模型。该特征可以从例如问题-答案对中学习词语到词语和/或短语到短语的翻译概率,并且可以将所学习的信息并入最大似然性中。给定消息q和候选响应R,基于翻译的语言模型可以被定义为:
Ptrb(q|R)=Πw∈q[(1-λ)Pmx(w|R)+λPml(w|C)] 方程(2)
其中,Pmx(w|R)=αPml(w|R)+βPtr(w|R) 方程(3)
Ptr(w|R)=∑v∈RPtp(w|v)Pml(v|R) 方程(4)
此处,λ、α和β是满足λ∈(0,1)且α+β=1的参数。Ptp(w|v)是从R中的词语v到q中的词语w的翻译概率。
在一种实施方式中,排序模型中的一个特征可以是消息与候选问题之间的、词语或字符级别的编辑距离。在本文中,候选问题可以指包括被确定为对消息的候选响应的答案的问题-答案对中的问题。
在一种实施方式中,排序模型中的一个特征可以是消息与候选问题之间的最大子序列比(maximum subsequence ratio)。
在一种实施方式中,排序模型中的一个特征可以是消息与候选问题之间或者消息与候选响应之间的情感标签相似性。
在一种实施方式中,排序模型中的一个特征可以基于潜在语义相似性模型。潜在语义相似性模型采用消息和候选响应中的一种或多种类型的基本语义单元作为输入,例如,词语、n-元(n-gram)短语、词块(chunk)、依存弧等。潜在语义相似性模型可以采用递归神经网络(RNN)来执行语句编码。可以将各种技术用于RNN语句编码,例如,长短期记忆(LSTM)、门控递归单元(GRU:Gated-recurrent Unit)等。通过潜在语义相似性模型,可以在向量空间中计算消息与候选响应之间的相似性。
在一种实施方式中,排序模型中的一个特征可以基于聊天流的聊天上下文。聊天上下文可以包括来自用户的消息和来自聊天机器人的响应。在一些情况下,聊天上下文中的消息和响应也可以是通过图4中的处理400所得到的补全的消息和补全的响应。排序模型可以通过例如TF-IDF从聊天上下文中提取代表性词语。包括更多代表性词语或者包括具有较高出现频率的代表性词语的那些候选响应可以被给予较高的分数。
在一种实施方式中,排序模型中的一个特征可以基于知识数据库。根据知识数据库中的知识问题-答案对所确定的、或者包括知识数据库中的知识项里的属性/值的那些候选响应可以被给予较高的分数。应当理解,如果排序模型考虑了知识数据库,则可以在排序模型的排序结果中增强语义多样性。
候选响应排序器716可以基于排序模型来确定候选响应的相关性分数,并且基于该分数对候选响应进行排序。候选响应排序器716可以输出一个或多个排序最高的候选响应718。
图7中的响应提供模型可以包括用于生成对当前消息的响应的DMN模型720。
DMN模型720可以包括输入模块722。可以在DMN模块720中处理语句序列。语句序列可以是聊天上下文中的消息和响应或者补全的消息和响应。作为示例,图7示出了在输入模块722中处理的四个消息q1、q2、q3、q4和四个相应响应r1、r2、r3、r4。所有的八个语句可以级联在一起以形成具有从W1到WT的T个词语的词序列。可以对词序列应用双向GRU编码。对于从左到右方向或从右到左方向,在每个时间步骤t,DMN模型720可以将其隐藏状态更新为ht=GRU(L[wt],ht-1),其中L是嵌入(embedding)矩阵,而wt是词序列中第t个词语的词索引。因此,对一个语句所得到的表示向量是两个向量的组合,每个向量来自一个方向。GRU的内部机制可以由以下方程定义:
zt=σ(W(z)xt+U(z)ht-1+b(z)) 方程(5)
rt=σ(W(r)xt+U(r)ht-1+b(r)) 方程(6)
Figure BDA0001898712000000142
Figure BDA0001898712000000141
其中,
Figure BDA0001898712000000143
是元素积,W(z)、W(r)、W、U(z)、U(r)、U是训练出的权重矩阵,W(z),W(r)
Figure BDA0001898712000000144
且U(z),U(r),/>
Figure BDA0001898712000000145
此处,nH表示隐藏层的维度,nI表示输入层的维度。上述方程也可以简写为ht=GRU(xt,ht-1)。
除了对词序列编码外,还可以应用具有双向GRU的位置编码,以便表示语句的“事实(fact)”。事实可以被计算为ft=GRUl2r(L[St],ft-1)+GRUr2l(L[St],ft-1),其中,l2r表示从左到右,r2l表示从右到左,St是当前语句的嵌入表示,ft-1和ft分别是前一语句和当前语句的事实。如图7所示,对于8个语句获得了事实f1至f8
DMN模型720可以包括当前消息模块724。对当前消息的编码是输入模块722的简化形式,其中,在当前消息模块724中只有一个待处理的语句。当前消息模块724进行的处理与输入模块722类似。假设当前消息中存在TQ个词语,则时间步骤t处的隐藏状态可以被计算为qt=[GRUl2r(L[Wt Q],qt-1),GRUr2l(L[Wt Q],qt-1)],其中,L是嵌入矩阵,Wt Q是当前消息中的第t个词语的词索引。此外,可以在当前消息模块724中针对当前消息获得事实f9
DMN模型720可以包括排序候选响应模块718。DMN模型720可以以与输入模块722相同的方式来计算经排序的候选响应的隐藏状态和事实。作为示例,图7示出五个候选响应C1至C5,并且针对这些候选响应获得了五个事实cf1至cf5
DMN模型720可以包括情景记忆(episodic memory)模块和关注(attention)机制模块。情景记忆模块可以包括递归网络,并且关注机制模块可以基于门函数。关注机制模块可以与情景记忆模块相分离或者被并入情景记忆模块中。
在传统的计算处理中,情景记忆模块和关注机制模块可以协作用于以迭代方式更新情景记忆。对于每一次迭代i,关注机制模块的门函数可以将事实fi、先前记忆向量mi-1和当前消息q作为输入,以计算关注门
Figure BDA0001898712000000153
为了计算第i次迭代的情景ei,可以将GRU应用于由门gi加权的输入序列,例如一列事实fi。然后,可以将情景记忆向量计算为mi=GRU(ei,mi-1)。最初,m0等于当前消息q的向量表示。提供给响应生成模块的情景向量可以是GRU的最终状态mx。以下方程(9)用于在时间步骤t处更新GRU的隐藏状态,以下方程(10)用于计算情景。
Figure BDA0001898712000000151
Figure BDA0001898712000000152
其中,TC是输入语句的数量。
根据本公开的实施例,在DMN模型中的情景记忆模块和关注机制模块中的处理进一步考虑了经排序的候选响应。如图7所示,除了输入模块722和当前消息模块724之外,关注机制模块726还从排序候选响应模块718获得输入。因此,关注门可以被计算为
Figure BDA0001898712000000161
其中,cfi表示来自经排序的候选响应的事实,mx+i-1是为经排序的候选响应所计算的记忆向量。因此,情景记忆模块728中的递归网络还包括对经排序的候选响应的记忆mx+1到mx+y的计算处理。从情景记忆模块728到响应生成模块730的输出将包括mx和mx+y两者。
响应生成模块730可以用于生成响应。可以在响应生成模块730中采用GRU解码器,并且可以将GRU解码器的初始状态初始化为最后的记忆向量a0=[mx,mx+y]。在时间步骤t,GRU解码器可以将当前消息q、最后的隐藏状态at-1和先前的输出yt-1作为输入,然后将当前输出计算为:
yt=softmax(W(a)at) 方程(11)其中,at=GRU([yt-1,q],at-1)和W(a)是训练出的权重矩阵。
可以将响应生成模块730的输出作为对用户输入的当前消息的响应而提供给用户。
应当理解,由于图7的处理700中的生成过程将通过排序过程所生成的经排序的候选响应作为输入,因而处理700所输出的响应将具有语义相似性和语义多样性,并且其还采用了自然语言语句的表达形式。
图8示出了根据实施例的示例性联合网络框架800。联合网络框架800示出了在本公开的各种实施方式中在多个组件/过程之间的动态更新。
根据图7中的处理700,DMN模型810可以生成对用户输入的消息的响应。可以将生成的响应提供给用户。一些响应820可能从用户接收到正面反馈。在本文中,来自用户的对响应的正面反馈可以包括:在该响应之后的来自用户的进一步消息、用户对该响应的正面情感、用户的认同该响应的评论等。可以将具有正面反馈的响应820提供用于更新其它组件/过程。
可以将响应820用于更新用于训练响应提供模型的训练数据830。例如,响应820可以被用作新的训练数据并被添加到训练数据830中。
可以将响应820用作语义结构补全处理840的新的训练数据。例如,如果对响应820执行了语义结构补全,则可以将补全的响应820用作用于训练语义结构补全处理840的正面实例。此处,还可以将训练数据830提供用于训练语义结构补全处理840。
可以将响应820作为新的训练数据提供给候选响应排序器850。可以基于新的训练数据来更新候选响应排序器850中的排序模型。此外,也可以通过包括响应820来更新作为排序模型的特征的聊天上下文。此处,语义结构补全处理840还可以向候选响应排序器850提供训练数据或补全的聊天上下文。
候选响应排序器850可以向DMN模型810提供候选响应,DMN模型810可以至少利用候选响应来生成响应。
应当理解,联合网络框架800中的组件/过程之间的更新是以动态的、实时的方式来执行的。
图9示出了根据实施例的用于在自动聊天中生成响应的示例性方法900的流程图。
在910处,可以获得聊天流中的消息。
在920处,可以确定对消息的多个候选响应。
在930处,可以至少基于知识数据来对候选响应进行排序。
在940处,可以至少基于一个或多个经排序的候选响应来生成对消息的响应。
在一种实施方式中,方法900还可以包括:在确定对消息的多个候选响应之前,至少基于谓词-论元结构分析来补全消息中的语法间隙。所述补全可以包括:获得所述聊天流的聊天上下文;从聊天上下文中提取关键词;基于关键词、知识数据和启发式规则中的至少一个来确定候选词语;以及至少基于所述候选词语与所述消息中的词语之间的依存角色,将所述候选词语添加到所述消息。
在一种实施方式中,所述依存角色可以是根据依存词语对列表来确定的,所述依存词语对列表至少包括多个词语对和多个词语对的依存角色。
在一种实施方式中,所述将候选词语添加到消息可以包括:至少基于所述依存角色来对候选词语进行打分;以及如果所述候选词语的得分高于预定阈值,则将所述候选词语添加到所述消息。
在一种实施方式中,所述多个候选响应可以是至少基于知识数据来确定的。
在一种实施方式中,所述响应可以是通过DMN模型来生成的,所述DMN模型将至少一个或多个经排序的候选响应作为输入。
在一种实施方式中,方法900可以进一步包括基于以下至少之一来迭代地生成关注门:与所述聊天流的聊天上下文和所述一个或多个经排序的候选响应相对应的事实;与所述聊天上下文相关联的记忆向量;与所述一个或多个经排序的候选响应相关联的记忆向量;以及与所述消息相对应的向量。
在一种实施方式中,方法900还可以包括:至少基于所述关注门来迭代地生成与所述聊天上下文相关联的记忆向量和与所述一个或多个经排序的候选响应相关联的记忆向量。
在一种实施方式中,方法900还可以包括:至少基于与所述聊天上下文相关联的记忆向量之一和/或与所述一个或多个经排序的候选响应相关联的记忆向量之一来生成所述响应。
应当理解,方法900还可以包括根据上述本公开实施例的用于在自动聊天中生成响应的任何步骤/处理。
图10示出了根据实施例的用于在自动聊天中生成响应的示例性装置1000。
装置1000可以包括:消息获得模块1010,用于获得聊天流中的消息;候选响应确定模块1020,用于确定对所述消息的多个候选响应;候选响应排序模块1030,用于至少基于知识数据来对所述候选响应进行排序;以及响应生成模块1040,用于至少基于所述一个或多个经排序的候选响应来生成对所述消息的响应。
在一种实施方式中,装置1000还可以包括消息补全模块,用于至少基于谓词-论元结构分析来补全所述消息中的语法间隙。所述消息补全模块可以用于:获得所述聊天流的聊天上下文;从所述聊天上下文中提取关键词;基于所述关键词、所述知识数据和启发式规则中的至少一个来确定候选词语;以及至少基于候选词语与所述消息中的词语之间的依存角色,将所述候选词语添加到所述消息。所述将候选词语添加到消息可以包括:至少基于所述依存角色来对所述候选词语进行打分;以及如果所述候选词语的得分高于预定阈值,则将所述候选词语添加到所述消息。
在一种实施方式中,所述依存角色可以是根据依存词语对列表来确定的,所述依存词语对列表至少包括多个词语对和所述多个词语对的依存角色。
在一种实施方式中,所述多个候选响应可以是至少基于所述知识数据来确定的。
在一种实施方式中,所述响应可以是通过DMN模型来生成的,所述DMN模型将至少一个或多个经排序的候选响应作为输入。
在一种实施方式中,装置1000还可以包括关注门生成模块,用于基于以下至少之一来迭代地生成关注门:与所述聊天流的聊天上下文和所述一个或多个经排序的候选响应相对应的事实;与所述聊天上下文相关联的记忆向量;与所述一个或多个经排序的候选响应相关联的记忆向量;以及与所述消息相对应的向量。
在一种实施方式中,装置1000还可以包括记忆向量生成模块,用于至少基于所述关注门来迭代地生成与所述聊天上下文相关联的记忆向量和与所述一个或多个经排序的候选响应相关联的记忆向量。
在一种实施方式中,所述响应生成模块可以用于:至少基于与所述聊天上下文相关联的记忆向量之一和/或与所述一个或多个经排序的候选响应相关联的记忆向量之一来生成所述响应。
此外,装置1000还可以包括被配置为执行根据上述本公开实施例的用于在自动聊天中生成响应的方法的任何操作的任何其它模块。
图11示出了根据实施例的用于在自动聊天中生成响应的示例性装置1100。
装置1100可以包括处理器1110。装置1100还可以包括与处理器1110连接的存储器1120。存储器1120可以存储计算机可执行指令,当所述计算机可执行指令被执行时,使得处理器1110执行根据上述本公开实施例的用于在自动聊天中生成响应的方法的任何操作。
本公开的实施例可以实施在非暂时性计算机可读介质中。该非暂时性计算机可读介质可以包括指令,当所述指令被执行时,使得一个或多个处理器执行根据上述本公开实施例的用于在自动聊天中生成响应的方法的任何操作。
应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其它等同变换。
还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。
已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其它适合的处理部件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、DSP或其它适合的平台所执行的软件。
软件应当被广泛地视为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部(如,缓存或寄存器)。
以上描述被提供用于使得本领域任何技术人员可以实施本文所描述的各个方面。这些方面的各种修改对于本领域技术人员是显而易见的,本文限定的一般性原理可以应用于其它方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换,都将通过引用而明确地包含到本文中,并且旨在由权利要求所覆盖。

Claims (18)

1.一种用于在自动聊天中生成响应的方法,包括:
获得聊天流中的消息;
确定对所述消息的多个候选响应;
至少基于知识数据来对所述多个候选响应进行排序,其中,所述多个候选响应中的、根据所述知识数据中的知识问题-答案对所确定的或者包括所述知识数据中的知识项里的属性或值的那些候选响应被给予比所述多个候选响应中的其它候选响应更高的分数;以及
通过生成过程,至少基于一个或多个经排序的候选响应来生成对所述消息的响应,
其中,所述生成过程是通过动态记忆网络DMN模型来执行的,以及所述DMN模型至少将所述一个或多个经排序的候选响应作为输入,并且至少基于与所述一个或多个经排序的候选响应相对应的事实和与所述一个或多个经排序的候选响应相关联的记忆向量来生成所述响应。
2.根据权利要求1所述的方法,还包括:在确定对所述消息的所述多个候选响应之前,
至少基于谓词-论元结构分析来补全所述消息中的语法间隙。
3.根据权利要求2所述的方法,其中,所述补全包括:
获得所述聊天流的聊天上下文;
从所述聊天上下文中提取关键词;
基于所述关键词、所述知识数据和启发式规则中的至少一个来确定候选词语;以及
至少基于候选词语与所述消息中的词语之间的依存角色,将所述候选词语添加到所述消息。
4.根据权利要求3所述的方法,其中,所述依存角色是根据依存词语对列表来确定的,所述依存词语对列表至少包括多个词语对和所述多个词语对的依存角色。
5.根据权利要求3所述的方法,其中,所述添加包括:
至少基于所述依存角色来对所述候选词语进行打分;以及
如果所述候选词语的得分高于预定阈值,则将所述候选词语添加到所述消息。
6.根据权利要求1所述的方法,其中,所述多个候选响应是至少基于所述知识数据来确定的。
7.根据权利要求1所述的方法,还包括:
基于以下至少之一来迭代地生成关注门:与所述聊天流的聊天上下文和所述一个或多个经排序的候选响应相对应的事实;与所述聊天上下文相关联的记忆向量;与所述一个或多个经排序的候选响应相关联的记忆向量;以及与所述消息相对应的向量。
8.根据权利要求7所述的方法,还包括:
至少基于所述关注门来迭代地生成与所述聊天上下文相关联的记忆向量和与所述一个或多个经排序的候选响应相关联的记忆向量。
9.根据权利要求8所述的方法,还包括:
至少基于与所述聊天上下文相关联的记忆向量之一和与所述一个或多个经排序的候选响应相关联的记忆向量之一来生成所述响应。
10.一种用于在自动聊天中生成响应的装置,包括:
消息获得模块,用于获得聊天流中的消息;
候选响应确定模块,用于确定对所述消息的多个候选响应;
候选响应排序模块,用于至少基于知识数据来对所述多个候选响应进行排序,其中,所述多个候选响应中的、根据所述知识数据中的知识问题-答案对所确定的或者包括所述知识数据中的知识项里的属性或值的那些候选响应被给予比所述多个候选响应中的其它候选响应更高的分数;以及
响应生成模块,用于通过生成过程,至少基于一个或多个经排序的候选响应来生成对所述消息的响应,
其中,所述生成过程是通过动态记忆网络DMN模型来执行的,以及所述DMN模型至少将所述一个或多个经排序的候选响应作为输入,并且至少基于与所述一个或多个经排序的候选响应相对应的事实和与所述一个或多个经排序的候选响应相关联的记忆向量来生成所述响应。
11.根据权利要求10所述的装置,还包括:
消息补全模块,用于至少基于谓词-论元结构分析来补全所述消息中的语法间隙。
12.根据权利要求11所述的装置,其中,所述消息补全模块用于:
获得所述聊天流的聊天上下文;
从所述聊天上下文中提取关键词;
基于所述关键词、所述知识数据和启发式规则中的至少一个来确定候选词语;以及
至少基于候选词语与所述消息中的词语之间的依存角色,将所述候选词语添加到所述消息。
13.根据权利要求12所述的装置,其中,所述依存角色是根据依存词语对列表来确定的,所述依存词语对列表至少包括多个词语对和所述多个词语对的依存角色。
14.根据权利要求12所述的装置,其中,所述添加包括:
至少基于所述依存角色来对所述候选词语进行打分;以及
如果所述候选词语的得分高于预定阈值,则将所述候选词语添加到所述消息。
15.根据权利要求10所述的装置,其中,所述多个候选响应是至少基于所述知识数据来确定的。
16.根据权利要求10所述的装置,还包括:
关注门生成模块,用于基于以下至少之一来迭代地生成关注门:与所述聊天流的聊天上下文和所述一个或多个经排序的候选响应相对应的事实;与所述聊天上下文相关联的记忆向量;与所述一个或多个经排序的候选响应相关联的记忆向量;以及与所述消息相对应的向量。
17.根据权利要求16所述的装置,还包括:
记忆向量生成模块,用于至少基于所述关注门来迭代地生成与所述聊天上下文相关联的记忆向量和与所述一个或多个经排序的候选响应相关联的记忆向量。
18.根据权利要求17所述的装置,其中,所述响应生成模块用于:
至少基于与所述聊天上下文相关联的记忆向量之一和与所述一个或多个经排序的候选响应相关联的记忆向量之一来生成所述响应。
CN201780035986.8A 2017-03-16 2017-03-16 在自动聊天中生成响应 Active CN109313650B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/076872 WO2018165932A1 (en) 2017-03-16 2017-03-16 Generating responses in automated chatting

Publications (2)

Publication Number Publication Date
CN109313650A CN109313650A (zh) 2019-02-05
CN109313650B true CN109313650B (zh) 2023-05-26

Family

ID=63522699

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780035986.8A Active CN109313650B (zh) 2017-03-16 2017-03-16 在自动聊天中生成响应

Country Status (4)

Country Link
US (1) US11729120B2 (zh)
EP (1) EP3566151A4 (zh)
CN (1) CN109313650B (zh)
WO (1) WO2018165932A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11334785B2 (en) * 2017-11-03 2022-05-17 Salesforce.Com, Inc. Bot builder dialog map
US20200151583A1 (en) * 2018-11-13 2020-05-14 Capital One Services, Llc Attentive dialogue customer service system and method
CN110147533B (zh) * 2019-01-24 2023-08-29 腾讯科技(深圳)有限公司 编码方法、装置、设备及存储介质
CN110147532B (zh) * 2019-01-24 2023-08-25 腾讯科技(深圳)有限公司 编码方法、装置、设备及存储介质
CN110088748B (zh) * 2019-03-19 2023-11-14 京东方科技集团股份有限公司 问题生成方法和装置、问诊系统、计算机可读存储介质
CN110069612B (zh) * 2019-04-28 2022-02-01 河北省讯飞人工智能研究院 一种回复生成方法及装置
CN112015852A (zh) * 2019-05-31 2020-12-01 微软技术许可有限责任公司 在关于事件的会话中提供响应
CN112015958A (zh) * 2019-05-31 2020-12-01 微软技术许可有限责任公司 自动聊天中的内容推荐
CN112750430A (zh) * 2019-10-29 2021-05-04 微软技术许可有限责任公司 在自动聊天中提供响应
CN113301352B (zh) * 2020-02-21 2023-09-01 微软技术许可有限责任公司 在视频播放期间进行自动聊天
US10798031B1 (en) * 2020-04-13 2020-10-06 Moveworks, Inc. Generic disambiguation
US11687385B2 (en) 2020-05-21 2023-06-27 International Business Machines Corporation Unsupervised event extraction
US11115353B1 (en) * 2021-03-09 2021-09-07 Drift.com, Inc. Conversational bot interaction with utterance ranking
CN113239694B (zh) * 2021-06-04 2022-06-14 北京理工大学 一种基于论元短语的论元角色识别的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699741A (zh) * 2013-12-05 2015-06-10 国际商业机器公司 分析自然语言问题来确定缺失信息以便提高回答的准确性

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0473864A1 (en) * 1990-09-04 1992-03-11 International Business Machines Corporation Method and apparatus for paraphrasing information contained in logical forms
US6665666B1 (en) * 1999-10-26 2003-12-16 International Business Machines Corporation System, method and program product for answering questions using a search engine
US6829603B1 (en) * 2000-02-02 2004-12-07 International Business Machines Corp. System, method and program product for interactive natural dialog
US7216073B2 (en) * 2001-03-13 2007-05-08 Intelligate, Ltd. Dynamic natural language understanding
ATE410728T1 (de) * 2001-05-04 2008-10-15 Microsoft Corp Schnittstellensteuerung
US7136909B2 (en) * 2001-12-28 2006-11-14 Motorola, Inc. Multimodal communication method and apparatus with multimodal profile
US8015143B2 (en) 2002-05-22 2011-09-06 Estes Timothy W Knowledge discovery agent system and method
US7293015B2 (en) * 2002-09-19 2007-11-06 Microsoft Corporation Method and system for detecting user intentions in retrieval of hint sentences
US7139752B2 (en) * 2003-05-30 2006-11-21 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, and providing multiple document views derived from different document tokenizations
US20040249808A1 (en) * 2003-06-06 2004-12-09 Microsoft Corporation Query expansion using query logs
JP2005092271A (ja) * 2003-09-12 2005-04-07 Hitachi Ltd 質問応答方法及び質問応答装置
US7299228B2 (en) * 2003-12-11 2007-11-20 Microsoft Corporation Learning and using generalized string patterns for information extraction
US8001527B1 (en) * 2004-12-21 2011-08-16 Zenprise, Inc. Automated root cause analysis of problems associated with software application deployments
US7603330B2 (en) * 2006-02-01 2009-10-13 Honda Motor Co., Ltd. Meta learning for question classification
JP2007219955A (ja) * 2006-02-17 2007-08-30 Fuji Xerox Co Ltd 質問応答システム、質問応答処理方法及び質問応答プログラム
US7313515B2 (en) * 2006-05-01 2007-12-25 Palo Alto Research Center Incorporated Systems and methods for detecting entailment and contradiction
US7814048B2 (en) * 2006-08-14 2010-10-12 Microsoft Corporation Knowledge extraction from online discussion forums
US8275803B2 (en) * 2008-05-14 2012-09-25 International Business Machines Corporation System and method for providing answers to questions
US8285550B2 (en) * 2008-09-09 2012-10-09 Industrial Technology Research Institute Method and system for generating dialogue managers with diversified dialogue acts
US8346701B2 (en) * 2009-01-23 2013-01-01 Microsoft Corporation Answer ranking in community question-answering sites
US20110125734A1 (en) 2009-11-23 2011-05-26 International Business Machines Corporation Questions and answers generation
US9002773B2 (en) 2010-09-24 2015-04-07 International Business Machines Corporation Decision-support application and system for problem solving using a question-answering system
WO2012047532A1 (en) * 2010-09-28 2012-04-12 International Business Machines Corporation Providing answers to questions using hypothesis pruning
CN202736475U (zh) 2011-12-08 2013-02-13 华南理工大学 一种聊天机器人
US20140122618A1 (en) 2012-10-26 2014-05-01 Xiaojiang Duan User-aided learning chatbot system and method
US9251474B2 (en) * 2013-03-13 2016-02-02 International Business Machines Corporation Reward based ranker array for question answer system
US20140280623A1 (en) * 2013-03-15 2014-09-18 Xiaojiang Duan Auto-reply email system and method with personalized content
CN104216913B (zh) * 2013-06-04 2019-01-04 Sap欧洲公司 问题回答方法、系统和计算机可读介质
US10339453B2 (en) * 2013-12-23 2019-07-02 International Business Machines Corporation Automatically generating test/training questions and answers through pattern based analysis and natural language processing techniques on the given corpus for quick domain adaptation
US9430461B2 (en) * 2014-04-11 2016-08-30 International Business Machines Corporation Mobile based lexicon and forecasting
US20160044380A1 (en) 2014-06-12 2016-02-11 Bertrand Barrett Personal helper bot system
US20150363696A1 (en) * 2014-06-13 2015-12-17 reMesh Method and system for generating a collective group response
KR102033388B1 (ko) * 2014-06-30 2019-10-17 한국전자통신연구원 질의 응답 장치 및 방법
WO2016167424A1 (ko) * 2015-04-16 2016-10-20 주식회사 플런티코리아 답변 추천 장치, 자동 문장 완성 시스템 및 방법
US10091140B2 (en) * 2015-05-31 2018-10-02 Microsoft Technology Licensing, Llc Context-sensitive generation of conversational responses
US9967211B2 (en) 2015-05-31 2018-05-08 Microsoft Technology Licensing, Llc Metric for automatic assessment of conversational responses
US20160350653A1 (en) * 2015-06-01 2016-12-01 Salesforce.Com, Inc. Dynamic Memory Network
US10133729B2 (en) * 2015-08-28 2018-11-20 Microsoft Technology Licensing, Llc Semantically-relevant discovery of solutions
US10489701B2 (en) * 2015-10-13 2019-11-26 Facebook, Inc. Generating responses using memory networks
CN105589844B (zh) * 2015-12-18 2017-08-08 北京中科汇联科技股份有限公司 一种用于多轮问答系统中缺失语义补充的方法
CN105630917A (zh) * 2015-12-22 2016-06-01 成都小多科技有限公司 智能应答方法及装置
US10489712B2 (en) * 2016-02-26 2019-11-26 Oath Inc. Quality-based scoring and inhibiting of user-generated content
US10592996B2 (en) * 2016-06-01 2020-03-17 Oath Inc. Ranking answers for on-line community questions
US9910848B2 (en) * 2016-07-07 2018-03-06 International Business Machines Corporation Generating semantic variants of natural language expressions using type-specific templates
CN106293348B (zh) 2016-08-16 2020-02-18 东软集团股份有限公司 应用于新媒体的信息交互方法和装置
US10963789B2 (en) * 2016-11-28 2021-03-30 Conduent Business Services, Llc Long-term memory networks for knowledge extraction from text and publications
US20180157747A1 (en) * 2016-12-02 2018-06-07 Microsoft Technology Licensing, Llc Systems and methods for automated query answer generation
US11030515B2 (en) * 2016-12-30 2021-06-08 Google Llc Determining semantically diverse responses for providing as suggestions for inclusion in electronic communications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699741A (zh) * 2013-12-05 2015-06-10 国际商业机器公司 分析自然语言问题来确定缺失信息以便提高回答的准确性

Also Published As

Publication number Publication date
EP3566151A4 (en) 2020-11-04
EP3566151A1 (en) 2019-11-13
CN109313650A (zh) 2019-02-05
WO2018165932A1 (en) 2018-09-20
US11729120B2 (en) 2023-08-15
US20200044993A1 (en) 2020-02-06

Similar Documents

Publication Publication Date Title
CN109313650B (zh) 在自动聊天中生成响应
CN109844743B (zh) 在自动聊天中生成响应
TWI732271B (zh) 人機對話方法、裝置、電子設備及電腦可讀媒體
WO2018195875A1 (en) Generating question-answer pairs for automated chatting
US11487986B2 (en) Providing a response in a session
CN110325982B (zh) 在会话中提供多媒体文档的摘要
US10891322B2 (en) Automatic conversation creator for news
Wang et al. Chat more: Deepening and widening the chatting topic via a deep model
CN112560479B (zh) 摘要抽取模型训练方法、摘要抽取方法、装置和电子设备
US11227342B2 (en) Recommending friends in automated chatting
WO2019000326A1 (en) GENERATION OF ANSWERS IN AN AUTOMATED ONLINE CONVERSATION SERVICE
JP2019504413A (ja) 絵文字を提案するためのシステムおよび方法
JP7309798B2 (ja) 対話意図の認識方法及び装置、電子機器並びに記憶媒体
CN109416695B (zh) 在自动聊天中提供本地服务信息
US11810337B2 (en) Providing emotional care in a session
CN110234018B (zh) 多媒体内容描述生成方法、训练方法、装置、设备及介质
JP2016218995A (ja) 機械翻訳方法、機械翻訳装置及びプログラム
Kann et al. Open-domain dialogue generation: What we can do, cannot do, and should do next
US20230306205A1 (en) System and method for personalized conversational agents travelling through space and time
Shah et al. Simple App Review Classification with Only Lexical Features.
Malviya et al. HDRS: Hindi dialogue restaurant search corpus for dialogue state tracking in task-oriented environment
JP7352640B2 (ja) 検索項目書き換え方法、装置、機器および記憶媒体
Sakkos et al. Anima: Adaptive personalized software keyboard
Kumar et al. Attention-based Sequential Generative Conversational Agent
Pathak et al. Using Natural Language Understanding

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