CN112487155A - 对会话中的消息进行上下文补全 - Google Patents
对会话中的消息进行上下文补全 Download PDFInfo
- Publication number
- CN112487155A CN112487155A CN201910863956.7A CN201910863956A CN112487155A CN 112487155 A CN112487155 A CN 112487155A CN 201910863956 A CN201910863956 A CN 201910863956A CN 112487155 A CN112487155 A CN 112487155A
- Authority
- CN
- China
- Prior art keywords
- message
- domain
- text
- topic
- stream
- 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.)
- Pending
Links
- 230000004044 response Effects 0.000 claims abstract description 94
- 238000000034 method Methods 0.000 claims abstract description 82
- 230000000153 supplemental effect Effects 0.000 claims abstract description 76
- 238000013527 convolutional neural network Methods 0.000 claims description 27
- 230000014759 maintenance of location Effects 0.000 claims description 13
- 238000013140 knowledge distillation Methods 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 4
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 230000002457 bidirectional effect Effects 0.000 claims description 2
- 238000012512 characterization method Methods 0.000 claims description 2
- 230000000306 recurrent effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 45
- 230000006399 behavior Effects 0.000 description 15
- 239000011159 matrix material Substances 0.000 description 15
- 230000000694 effects Effects 0.000 description 13
- 241000272525 Anas platyrhynchos Species 0.000 description 12
- 238000012549 training Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 238000013459 approach Methods 0.000 description 7
- 238000004321 preservation Methods 0.000 description 7
- 230000000295 complement effect Effects 0.000 description 5
- 229920006934 PMI Polymers 0.000 description 4
- 238000011176 pooling Methods 0.000 description 4
- 238000010420 art technique Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 241000272522 Anas Species 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Machine Translation (AREA)
Abstract
本公开提供了用于对会话中的消息进行上下文补全的方法和装置。可以获得消息。可以检测所述消息中存在上下文省略。可以确定所述消息是否保持在所述会话的当前域中。可以响应于确定所述消息保持在所述当前域中,在所述当前域中选择用于恢复所述上下文省略的补充文本。可以基于所述消息和所述补充文本来生成补全消息。
Description
背景技术
人工智能(AI)聊天机器人变得越来越流行,并且正在越来越多的场景中得到应用。聊天机器人被设计用于模拟人类话语,并且可以通过文本、语音、图像等与用户进行聊天。通常,聊天机器人可以识别由用户输入的消息内的语言内容或对消息应用自然语言处理,并进而向用户提供针对该消息的响应。
发明内容
提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。
本公开的实施例提出了用于对会话中的消息进行上下文补全的方法和装置。可以获得消息。可以检测所述消息中存在上下文省略。可以确定所述消息是否保持在所述会话的当前域中。可以响应于确定所述消息保持在所述当前域中,在所述当前域中选择用于恢复所述上下文省略的补充文本。可以基于所述消息和所述补充文本来生成补全消息。
应当注意,以上一个或多个方面包括以下详细描述以及权利要求中具体指出的特征。下面的说明书及附图详细提出了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开旨在包括所有这些方面和其等同变换。
附图说明
以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。
图1示出了存在上下文省略的示例性会话。
图2示出了根据实施例的用于通过对会话中的消息进行上下文补全来提供响应的示例性过程。
图3示出了根据实施例的用于进行域保持确定的示例性过程。
图4示出了根据实施例的用于获得域保持分类器的示例性过程。
图5示出了根据实施例的用于对候选文本执行基于卷积神经网络(CNN)的排序的示例性过程。
图6示出了根据实施例的用于对候选文本执行基于回归的排序的示例性过程。
图7示出了应用了根据实施例的上下文补全的示例性会话。
图8示出了应用了根据实施例的上下文补全的示例性会话。
图9示出了根据实施例的用于对会话中的消息进行上下文补全的示例性方法的流程图。
图10示出了根据实施例的用于对会话中的消息进行上下文补全的示例性装置。
图11示出了根据实施例的用于对会话中的消息进行上下文补全的示例性装置。
具体实施方式
现在将参考多种示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。
通常,聊天机器人可以在与用户的会话中进行自动聊天。在本文中,“会话”可以指两个聊天参与者之间的时间连续对话,并且可以包括对话中的消息和响应。“消息”可以指由用户输入的任何信息,例如来自用户的查询、用户对聊天机器人的问题的回答、用户的意见等。术语“消息”和术语“查询”也可以互换使用。“响应”可以指由聊天机器人提供的任何信息,例如聊天机器人对用户的问题的答案、聊天机器人的评论等。
在用户与聊天机器人之间的会话中,用户经常会输入语义不完整的消息,例如存在上下文省略(context ellipsis)的消息。这样的消息可能省略了在之前的聊天中已经涉及到的部分上下文内容。例如,如果用户之前在与聊天机器人讨论关于去北京旅游的安排,则用户可能接着输入消息“有什么好玩的地方?”。该消息省略了之前讨论的上下文“北京”,其实际上要表达的是“北京有什么好玩的地方?”。当获得了存在上下文省略的消息时,聊天机器人需要识别出省略了什么上下文内容并相应地对该消息进行上下文补全(completion),以便可以针对补全了所省略的上下文内容的消息来提供响应。
目前已经提出了一些专门针对存在上下文省略的语句进行上下文补全的技术。这些技术旨在从预先确定的候选文本集合中选择出补充文本,以便将已知存在上下文省略的语句转换成进行了上下文补全的补全语句。候选文本集合是预先确定的和固定的,并且这些已有技术并未提供可以随着具体的应用场景而更新候选文本集合的机制。此外,这些已有技术通常仅能够应用在开放域或某个特定域中,而无法高效快速地实现在不同的域之间的迁移。例如,这些已有技术所基于的模型或网络架构需要使用根据开放域或某个特定域的语料库而获得的经过标记的训练数据。因此,当要被应用于新的域时,需要进一步使用根据该新的域的语料库而获得的新的经过标记的训练数据,以重新构建或训练这些模型或网络架构。新的经过标记的训练数据的获取过程以及重新构建或训练过程都是耗时的且高成本的。
本公开的实施例提出了用于对会话中的消息进行上下文补全的端对端架构。该会话可以发生在例如用户与聊天机器人之间的自动聊天中。在该端对端架构中,可以随着会话的进行而自动地执行用于对消息进行上下文补全的一系列处理。例如,这些处理可以包括但不限于以下各项中的至少一项:确定当前消息是否存在上下文省略、确定当前消息是否保持在当前域中、持续更新将被选择用于恢复上下文省略的候选文本、从候选文本中选择对当前消息进行上下文补全的补充文本、生成补全消息等。此外,在当前消息未保持在当前域中的情况下,还可以确定与该当前消息相对应的域,并且在该相对应的域中对当前消息进行上下文补全。本公开的实施例可以在会话内容不断演进的自动聊天的场景下,为存在上下文省略的消息提供简单、高效且高准确率的上下文补全。
在本文中,上下文省略可以包括话题(topic)省略和/或谓词(predicate)省略。话题可以指在会话中涉及的实体或主题,其可以包括一个或多个名词或名词性短语。谓词可以指在会话中以动词为主体的表述,或者在会话中关于实体的属性的表述,其可以包括一个或多个动词或动词性短语或者用于描述属性的其它短语。以“北京有什么好玩的地方?”为例,话题可以是“北京”,谓词可以是“有什么好玩的地方”。以“中国的首都是哪里?”为例,话题可以是“中国”,谓词可以是“首都是哪里”。
在一个方面,本公开的实施例可以在会话期间维护特定于域的信息流,例如域话题流和域谓词流。对于不同的域,可以分别维护与不同的域相对应的不同信息流。从而,当需要对某个域中的消息进行上下文补全时,可以从针对该域所维护的信息流中的候选文本里选择补充文本,以对消息进行上下文补全。此外,通过维护信息流,可以记录来自多轮会话的聊天上下文,从而可以有效地实现在多轮会话中对消息的上下文补全。
在一个方面,本公开的实施例可以将用于对候选文本进行排序的相同的模型或网络架构应用于不同的域。由于排序模型基本不需要域的标注数据,因此可以容易地将排序模型在不同的域之间进行迁移。在对候选文本的排序中使用了准确度更高、更轻量的特征,例如点互信息(PMI:pointwise mutual information)等。与已有技术所使用的经过标记的训练数据相比,可以更容易地获得不同的域中的大量PMI数据。在实施或应用排序模型时,可以通过直接使用不同的域中的PMI数据来在不同的域中执行排序。
在一个方面,本公开的实施例对消息所进行的上下文补全是显式的上下文补全。例如,会话中具有信息量的词语或表述被显式地维护在信息流中,并且根据从信息流中选择的补充文本所生成的补全消息也是可读的。可以直接使用已有的响应检索或生成技术来针对补全消息提供响应,而无需对已有的响应检索或生成策略进行改变。
图1示出了存在上下文省略的示例性会话。
在会话110中示出了针对上一个消息的话题省略。用户首先输入消息“北京有什么好玩的地方?”。聊天机器人提供响应“长城和故宫在北京。咱们去吧!”。然后,用户输入消息“有什么美食?”,其中,该消息存在话题省略,例如省略了上一个消息“北京有什么好玩的地方?”中的话题“北京”。因此,消息“有什么美食?”实际上旨在表达“北京有什么美食?”。
在会话120中示出了针对上一个响应的话题省略。用户首先输入消息“北京有什么美食?”。聊天机器人提供响应“烤鸭”。然后,用户输入消息“好吃么?”,其中,该消息存在话题省略,例如省略了上一个响应“烤鸭”中的话题“烤鸭”。因此,消息“好吃么?”实际上旨在表达“烤鸭好吃么?”。
在会话130中示出了针对上一个消息的谓词省略。用户首先输入消息“中国的首都是哪里?”。聊天机器人可以提供响应“北京”。然后,用户输入消息“那么泰国呢?”,其中,该消息存在谓词省略,例如省略了上一个消息“中国的首都是哪里?”中的谓词“首都是哪里”。因此,消息“那么泰国呢?”实际上旨在表达“那么泰国的首都是哪里?”。
在会话140中示出了针对多轮会话的话题省略。在第一轮会话中,用户输入消息“北京有什么好玩的地方?”,聊天机器人提供响应“长城和故宫在北京”。在第二轮会话中,用户输入消息“长城是世界著名的”,聊天机器人提供响应“长城很壮观”。在第三轮会话中,用户输入消息“有什么美食?”,其中,该消息存在话题省略,例如省略了在第一轮会话中的消息“北京有什么好玩的地方?”中的话题“北京”。因此,消息“有什么美食?”实际上旨在表达“北京有什么美食?”。
在会话150中示出了针对上一个消息的话题省略和谓词省略两者。用户首先输入消息“北京有什么好玩的地方?”。聊天机器人提供响应“长城和故宫在北京”。然后,用户输入消息“还有呢?”,其中,该消息存在话题省略和谓词省略,例如省略了上一个消息“北京有什么好玩的地方?”中的话题“北京”和谓词“有什么好玩的地方”。因此,消息“还有呢”实际上旨在表达“北京还有什么好玩的地方?”。
应当理解,图1仅仅示出了存在上下文省略的一些会话实例。在实际的应用场景中还可能存在多种其它上下文省略的情形。本公开的实施例可以在各种上下文省略的情形下实施。
图2示出了根据实施例的用于通过对会话中的消息进行上下文补全来提供响应的示例性过程200。
在202处,可以在用户与聊天机器人之间的会话中获得来自用户的消息。例如,该消息可以是用户在与聊天机器人的聊天会话中所输入的。
根据本发明的实施例,可以将消息中的内容保存到实时维护的例如域话题流和域谓词流的信息流中,以便记录会话中的上下文信息。
在一种实施方式中,在204处,可以从所获得的消息中提取话题和/或谓词。在消息中存在上下文省略的情况下,在202处所获得的消息可能只包括话题而不包括谓词,或者只包括谓词而不包括话题,或者话题和谓词都不包括。相应地,在204处可能从消息中仅提取出话题,仅提取出谓词,或者提取不出任何话题和谓词。在消息中不存在上下文省略的情况下,可以在204处从消息中提取出话题和谓词两者。
在一种实施方式中,可以利用预先建立的知识图谱来从消息中提取话题和/或谓词。该知识图谱可以是特定于域的,例如,对不同的域建立不同的知识图谱。在某个域的知识图谱中可以包括从该域的大量的网络数据中预先挖掘的话题和谓词。例如,旅游域的知识图谱可以包括话题“北京”、“长城”、“北京的故宫”、“机票”、“酒店”等,并且可以包括谓词“美食”、“好玩的地方”、“首都”、“怎么去”、“气候怎么样”等。通过将消息中的内容与知识图谱进行比较,可以从消息中识别出已经在知识图谱中记录的话题和/或谓词。
如果在204处从消息中提取出话题,则可以将所提取的话题存储到当前域的域话题流中。域话题流可以包括从该会话的消息和响应中提取的话题列表,例如,话题1、话题2、话题3等。此外,可选地,过程200还可以包括确定与在204处所提取的话题相关联的会话级别信息。相应地,域话题流还可以包括针对每个话题所确定的会话级别信息。话题的会话级别信息可以包括针对该话题所确定的在该会话中的统计信息,例如,已经在该会话中出现该话题的频率或次数、该话题是否出现在上一个消息中、该话题是否出现在上一个响应中、在上次出现该话题之后所经过的轮次、该话题是否来自消息、该话题是否来自响应、等等。域话题流中包括的话题和会话级别信息可以随着会话的进行而不断地更新。
如果在204处从消息中提取出谓词,则可以将所提取的谓词存储到当前域的域谓词流中。域谓词流可以包括从该会话的消息和响应中提取的谓词列表,例如,谓词1、谓词2、谓词3等。此外,可选地,过程200还可以包括确定与在204处所提取的谓词相关联的会话级别信息。相应地,域谓词流还可以包括针对每个谓词所确定的会话级别信息。谓词的会话级别信息可以包括针对该谓词所确定的在该会话中的统计信息,例如,已经在该会话中出现该谓词的频率或次数、该谓词是否出现在上一个消息中、该谓词是否出现在上一个响应中、在上次出现该谓词之后所经过的轮次、该谓词是否来自消息、该谓词是否来自响应、等等。域谓词流中包括的谓词和会话级别信息可以随着会话的进行而不断地更新。
应当理解,尽管过程200仅示出了利用从消息中提取的话题和/或谓词以及会话级别信息来更新域话题流和域谓词流,本公开的实施例还可以实时地利用从聊天机器人所提供的响应中提取的话题和/或谓词以及会话级别信息来更新域话题流和域谓词流。
在206处,可以确定所获得的消息中是否存在上下文省略。在一种实施方式中,可以基于在204处的提取的结果来确定该消息中是否存在上下文省略。例如,如果从该消息中既提取出话题也提取出谓词,则可以确定该消息不存在上下文省略。如果未从该消息中提取出话题,则可以确定该消息存在话题省略。如果未从该消息中提取出谓词,则可以确定该消息存在谓词省略。如果未从该消息中提取出话题和谓词两者,则可以确定该消息既存在话题省略,也存在谓词省略。
如果在206处确定该消息中不存在上下文省略,则可以在208处根据已有的响应检索或生成技术来提供响应。例如,在自动聊天的场景下,已经提出了多种基于检索方式或基于生成方式的响应提供技术,以便对来自用户的消息做出应答。
如果在206处确定该消息中存在上下文省略,则过程200进行到210。在210处可以进一步确定该消息是否是具有预定对话行为(dialog act)的消息。对话行为可以指根据对话语句的含义的类别或意图而为对话语句添加的标签。此处,预定对话行为可以包括一些预先指定的对话行为,其可以对应于例如不包括明确话题和谓词的简略的语言表述。例如,具有预定对话行为的消息可以是存在话题省略和谓词省略的消息。预先指定的对话行为的一个示例可以是询问上一个响应的细节。例如,针对聊天机器人的上一个响应“北京值得去旅游”,用户可能输入消息“为什么?”,该消息旨在询问“北京值得去旅游”的具体原因。预先指定的对话行为的另一个示例可以是重复上一个消息。例如,用户首先输入第一消息“北京有什么好玩的地方?”,在聊天机器人给出响应“长城和故宫”后,用户可能继续输入第二消息“还有呢?”,该第二消息实质上旨在重复第一消息中的问题,以便获得进一步的回答。预先指定的对话行为的再一个示例可以是结束对话的意图。例如,如果用户输入消息“我知道了”,该消息可能表明用户不想继续对话或具有较低的对话意愿。以上仅示意性地给出了预先指定的对话行为的类型示例,根据具体的应用需求,在210处还可以确定消息是否具有任何其它类型的对话行为。
在一种实施方式中,在210处的确定可以采用预定对话行为分类器,例如基于K-means或类似技术的分类器。该预定对话行为分类器可以被训练用于确定一个消息是否具有任何一种预定对话行为。例如,可以预先准备包括具有预定对话行为标记的对话语句的训练数据,并且使用这样的训练数据来训练预定对话行为分类器。当将消息提供给经过训练的预定对话行为分类器时,其可以确定该消息是否具有任何预定对话行为并且输出该消息所具有的预定对话行为。
如果在210处确定该消息具有预定对话行为,则可以在212处基于相应的策略来为该消息提供响应。可以预先针对不同的预定对话行为指定不同的响应策略。例如,如果该消息的对话行为被确定为是询问上一个响应的细节,则可以检索或生成包括对上一个响应的具体描述的响应。例如,如果该消息的对话行为被确定为是重复上一个消息,则可以再次基于上一个消息来检索或生成响应。如果该消息的对话行为被确定为是结束对话的意图,则可以暂停对话或者给出旨在转移到其它话题的响应。
如果在210处确定该消息不是具有预定对话行为的消息,则过程200进行到214。
在214处,可以确定该消息是否保持在会话的当前域中。当前域可以指紧接在该消息之前的一轮会话所处于的域。
在该消息中存在谓词省略并且可以检测出话题的情况下,可以基于该消息中包括的话题来确定该消息是否保持在当前域中。在一种实施方式中,如果该消息中包括的话题位于当前域的域话题流中或者位于当前域的知识图谱中,则可以确定该消息保持在当前域中。如果该消息中包括的话题既没有位于当前域的域话题流中也没有位于当前域的知识图谱中,则可以确定该消息未保持在当前域中。
在该消息中存在话题省略并且可以检测出谓词的情况下,可以通过域保持分类器来确定该消息是否保持在当前域中。在一种实施方式中,域保持分类器可以是基于循环神经网络(RNN)模型的。可选地,可以首先建立基于来自变换器的双向编码器表征(BERT)模型的分类器以用于确定一个语句是否保持在特定域中,然后通过知识蒸馏(knowledgedistillation)获得基于RNN模型的域保持分类器。后面将结合图3和图4具体讨论域保持分类器的工作过程和获得过程。
如果在214处确定该消息保持在当前域中,则过程200前进到216。在216处,可以在当前域中选择用于恢复话题省略或谓词省略的补充文本。在本文中,补充文本可以指对应于消息中被省略的上下文内容的文本,例如话题或谓词。相应地,补充文本可以被用于与消息进行组合以形成语义完整的补全消息。在该消息保持在当前域中的情况下,补充文本可以来自于当前域的域话题流中的话题或域谓词流中的谓词。例如,如果该消息中存在话题省略,则可以从域话题流中选择补充文本。如果该消息中存在谓词省略,则可以从域谓词流中选择补充文本。可以将域话题流中的话题和域谓词流中的谓词视为候选文本,可以从这些候选文本中选择补充文本。
在一种实施方式中,可以通过基于卷积神经网络(CNN)的排序,从域话题流和/或域谓词流中的多个候选文本中选择补充文本。基于CNN的排序可以对多个候选文本进行排序,以便将排序最高的候选文本选择作为补充文本。基于CNN的排序可以采用例如候选文本与消息之间的PMI、文本相似度等特征。
在一种实施方式中,可以通过基于回归的排序,从域话题流和/或域谓词流中的多个候选文本中选择补充文本。基于回归的排序可以对多个候选文本进行排序,以便将排序最高的候选文本选择作为补充文本。基于回归的排序所采用的特征可以至少包括例如域话题流和域谓词流中的至少一项会话级别信息。
在一种实施方式中,可以通过基于CNN的排序和基于回归的排序两者来从域话题流和/或域谓词流中的多个候选文本中选择补充文本。在这种情况下,可以对两种排序的排序结果进行加权组合,以便确定排序最高的候选文本,并将其作为补充文本。
后面将结合图5和图6具体讨论基于CNN的排序和基于回归的排序。
在确定了补充文本后,本公开的实施例可以进而基于该消息和补充文本来生成补全消息。在本文中,补全消息可以指对存在上下文省略的消息进行了上下文补全后所形成的语义完整的消息。补全消息可以是可读性文本。
在一种实施方式中,可以在218处通过将补充文本放在该消息的不同位置,生成至少一个候选补全消息。例如,可以将补充文本放在消息之前、消息之后或消息内。以消息“好吃么”和补充文本“烤鸭”为例,可以将补充文本放在消息之前来生成候选补全消息“烤鸭好吃么?”,可以将补充文本放在消息之后来生成候选补全消息“好吃么烤鸭?”。以消息“我们去那参观吧”和补充文本“故宫”为例,可以将补充文本放在消息内以进行指代消解,来生成候选补全消息“我们去故宫参观吧”。然后,在220处可以例如利用语言模型来从至少一个候选补全消息中选择补全消息。语言模型可以用于衡量一个文本是自然语言语句的概率,其可以基于神经网络或者基于统计。例如,“烤鸭好吃么?”比“好吃么烤鸭?”更接近自然语言,从而,语言模型可以对前者给出较高的分数,而对后者给出较低的分数。可以根据语言模型的分数来从至少一个候选补全消息中选择最终的补全消息。
在确定了补全消息之后,可以在222处针对该补全消息提供响应。例如,可以根据已有的响应检索或生成技术来提供对该补全消息的响应。
如果在214处确定该消息没有保持在当前域中,例如,该消息从当前域转移到了其它的域,则过程200进行到224。在224处,可以确定与该消息相对应的域。在一种实施方式中,可以通过将该消息与不同域的知识图谱中的话题或谓词进行比较,来确定与该消息相对应的域。
如前所述,本公开的实施例可以针对会话中涉及的不同的域而分别维护不同的信息流。因此,在确定了与该消息相对应的域后,可以在226处在该对应域中选择补充文本。例如,可以从该对应域的域话题流或域谓词流中的候选文本中选择补充文本。
在228处,可以以与218处的处理类似的方式生成至少一个候选补全消息。然后,在230处,可以以与220处的处理类似的方式从至少一个候选补全消息中选择补全消息。在确定了补全消息之后,可以在222处针对该补全消息提供响应。此时,该对应域成为了对后续消息执行过程200的当前域。
应当理解,以上讨论的过程200中的各个步骤及其执行顺序都是示例性的,根据具体的应用场景和设计需求,可以对过程200进行任意方式的改变。
在一种实施方式中,可以将214处确定消息是否保持在当前域中的处理替换为确定与该消息相对应的域,类似于224处的处理。在确定了对应域之后,可以进而通过类似于226、228、230等处的处理来生成补全消息。
在一种实施方式中,如果在214处确定消息没有保持在当前域中,则可以将在204处提取的话题和/或谓词以及会话级别信息从该当前域的域话题流和/或域谓词流转移到与该消息相对应的域的域话题流和/或域谓词流中。
在一种实施方式中,当在204处从消息中提取了话题和/或谓词以及会话级别信息时,可以不立即将所提取的内容添加到当前域的域话题流和/或域谓词流中,而是可以当在214处确定该消息保持在当前域中后,再将204处所提取的内容添加到当前域的域话题流和/或域谓词流中。
在一种实施方式中,可以调整在210处确定该消息是否是预定对话行为消息的处理在过程200中的顺序。例如,可以将210处的处理放在206之前执行等。
在一种实施方式中,替代在210处确定该消息是否是预定对话行为消息的处理,可以在210处确定该消息是否存在话题省略和谓词省略两者。如果是,则根据预先确定的响应规则来针对该消息提供响应。为存在话题省略和谓词省略两者的消息所定义的响应规则可以是经验性地预先规定的。
在一种实施方式中,替代通过218和220处的处理来生成可读的补全消息,可以不对消息和补充文本进行语义上的组合,而是将这两者作为二元组而直接提供给响应检索或生成策略。
在一种实施方式中,替代在218处生成至少一个候选补全消息、然后在220处选择补全消息的过程,可以在216处选择了补充文本之后,直接基于语言模型生成补全消息。例如,语言模型可以被训练用于基于消息和补充文本来生成具有自然语言风格的补全消息。
在一种实施方式中,过程200可以是在会话的进行中循环执行的。例如,用户输入的每一个消息都可以触发过程200的执行。此外,各个域的域话题流和域谓词流也是实时更新的。例如,每当检测到消息或响应时,都可以利用从该消息或响应中提取的话题和/或谓词以及会话级别信息来更新对应域的域话题流和域谓词流。
图3示出了根据实施例的用于进行域保持确定的示例性过程300。过程300可以被执行用于例如在图2的214处确定消息是否保持在会话的当前域中。
在过程300中采用域保持分类器310来进行域保持确定。域保持分类器310可以是针对特定的域来训练的。域保持分类器可以包括编码器312和全连接层314。编码器312可以将文本转换为在密集向量空间中的向量表示。全连接层314可以将文本的向量表示转换为域保持分数,以指示该文本与域保持分类器310所属于的域的相关性程度。
根据过程300,可以将消息302提供给域保持分类器310。在经过编码器312和全连接层314的处理后,域保持分类器310将输出消息302的域保持分数304。基于域保持分数304可以最终得到域保持确定结果306。例如,可以预先确定一个分数阈值,如果域保持分数304超过阈值,则域保持确定结果306可以指示消息302保持在域保持分类器310所属于的域中。否则,如果域保持分数304没有超过阈值,则域保持确定结果306可以指示消息302没有保持在域保持分类器310所属于的域中。
图4示出了根据实施例的用于获得域保持分类器的示例性过程400。应当理解,本公开并不局限于通过过程400来获得域保持分类器,而是可以通过任何其它方式来获得域保持分类器。
根据过程400,可以首先预训练或获得BERT模型410。BERT模型410是一种用于在开放域中生成对文本的向量表示的通用模型。当BERT模型410接收到例如消息的文本输入时,其可以输出与该文本相对应的向量表示。
可以对BERT模型410进行微调(fine-tune),以获得基于BERT模型的域保持分类器420,其中,BERT模型410作为该域保持分类器420的编码器。该微调可以采用针对域保持确定的训练数据来调整BERT模型的参数或权重,以适用于执行域保持确定任务。训练数据中的正例样本可以包括来自某个特定的域的语句,并且从这些语句中移除了域关键词,例如属于该域的话题等。例如,如果要获得针对旅游域的域保持分类器,则可以从涉及旅游的社交网络数据、网站数据、聊天日志等中抓取初始语句,并且通过移除域关键词来获得正例样本。训练数据中的反例样本可以来自于任何其它域的语句,并且可以从这些语句中随机地移除词语或者不进行词语移除。反例样本中的语句可以被选择为具有与正例样本中的语句相类似长度的对话语句。
基于BERT模型的域保持分类器420可以用于确定消息是否保持在当前域中。然而,考虑到BERT模型本身的复杂性和高计算量,为了便于实际部署,本公开的实施例还可以通过知识蒸馏来从基于BERT模型的域保持分类器420获得更快速的轻量化的域保持分类器430。该轻量化的域保持分类器430可以采用RNN模型作为编码器,以替代BERT模型。该RNN模型可以包括例如3层RNN。知识蒸馏是一种能够将复杂模型转换为简单模型的通用技术。通过对基于BERT模型的域保持分类器420执行知识蒸馏,可以获得更小更快速的基于RNN模型的域保持分类器430。基于RNN模型的域保持分类器430的性能可以逼近基于BERT模型的域保持分类器420的性能。在执行知识蒸馏时,可以采用由基于BERT模型的域保持分类器420所接收的文本输入以及所产生的向量表示和域保持分数,来对基于RNN模型的域保持分类器430进行训练。
图5示出了根据实施例的用于对候选文本执行基于卷积神经网络(CNN)的排序的示例性过程500。过程500可以被执行用于例如在图2的216处从域话题流和/或域谓词流中的多个候选文本中为消息选择补充文本。例如,通过过程500,可以为多个候选文本分别生成排序分数,进而可以选择排名最高的候选文本作为补充文本。
过程500所基于的排序模型可以被视为是对已有的基于CNN的文本匹配方法的扩展和改进。基于CNN的文本匹配方法的一个示例可以为金字塔匹配(MatchPyramid)模型,其是用于预测文本相似度的基于CNN的模型。过程500所基于的排序模型不仅可以考虑候选文本与消息之间的文本相似度,还可以考虑候选文本与消息之间的PMI、候选文本的近义表示与消息之间的PMI、候选文本与消息的近义表示之间的PMI等。PMI指示了候选文本与消息共现的可能性,从而可以指示候选文本与消息之间的相关性。由于引入了例如PMI的有效信息,可以使得该排序模型更高效、更可控且更准确。
针对消息502,可以从域话题流和/或域谓词流中取出候选文本i 504。然后,可以计算该候选文本i 504的排序分数。
在分支510中,可以首先计算候选文本i与消息之间的文本相似度矩阵512。文本相似度矩阵512可以是基于候选文本i的向量表示与消息的向量表示之间的余弦距离、点积等来计算的。假设候选文本i包括n个词语并且消息包括m个词语,则可以分别计算候选文本i的n个词语中的每个词语与消息的m个词语中的每个词语之间的相似度数值,从而形成n╳m维的文本相似度矩阵512。分支510可以包括一个或多个2维(2D)卷积层以及可选地连接到每个卷积层的2D池化层。2D卷积层可以用于对相似度矩阵512进行特征抽取。分支510所输出的CNN结果可以被提供到全连接层550。
在分支520中,可以首先计算候选文本i与消息之间的PMI矩阵522。可以采用任何已有的PMI计算方式来计算PMI矩阵522。假设候选文本i包括n个词语并且消息包括m个词语,则可以分别计算候选文本i的n个词语中的每个词语与消息的m个词语中的每个词语之间的PMI数值,从而形成n╳m维的PMI矩阵522。与分支510类似,分支520也可以包括一系列2D卷积层以及可选地连接到每个卷积层的2D池化层。分支520所输出的CNN结果可以被提供到全连接层550。
在分支530中,可以首先计算候选文本i的近义表示与消息之间的PMI矩阵532。候选文本i的近义表示可以指在将候选文本i中的至少一个词语或全部词语替换成对应的语义相近的词语之后的文本。此处,语义相近的词语可以指语言含义类似的词语,或者在自然语言处理领域中具有较高语义相似度的词语。例如,以候选文本i“南京”和消息“有什么好玩的地方”为例,由于候选文本i“南京”的近义表示可以为“北京”,因此,可以计算“北京”与“有什么好玩的地方”之间的PMI。通过计算候选文本i的近义表示与消息之间的PMI矩阵,可以增强对候选文本i与消息之间的相关性的评价的准确性。例如,在候选文本i与消息具有较低共现频率但实际上具有较高相关性的情况下,候选文本i的近义表示可能具有与消息的较高的PMI度量,该PMI度量可以用于补偿候选文本i与消息之间的较低的PMI度量,从而更真实地反应候选文本i与消息之间的相关性。继续前面的示例,候选文本i“南京”和消息“有什么好玩的地方”之间可能具有较高相关性,例如具有组合成“南京有什么好玩的地方”的较高的可能性,但是“南京”与“有什么好玩的地方”之间的PMI度量可能较低,例如0.5,从而无法准确地反应二者之间的较高相关性。在这种情况下,由于“南京”的近义表示“北京”具有与消息“有什么好玩的地方”的较高的PMI度量,例如0.9,通过考虑该PMI度量,可以更真实地反应候选文本i“南京”和消息“有什么好玩的地方”之间的相关性。
假设候选文本i包括n个词语并且消息包括m个词语,则可以形成n╳m维的PMI矩阵532。可以通过各种方式来计算PMI矩阵532中的每一个元素[x,y]处的PMI数值,其中,x∈[1,n]且y∈[1,m]。例如,在一种方式中,元素[x,y]处的PMI数值可以是在候选文本i的第x个词语的语义最相近的词语与消息的第y个词语之间的PMI数值。在一种方式中,元素[x,y]处的PMI数值可以是在候选文本i的第x个词语的多个语义相近的词语与消息的第y个词语之间的多个PMI数值的平均值。在一种方式中,元素[x,y]处的PMI数值可以是在候选文本i的第x个词语的多个语义相近的词语与消息的第y个词语之间的多个PMI数值中的最大值。与分支510类似,分支530也可以包括一系列2D卷积层以及可选地连接到每个卷积层的2D池化层。分支530所输出的CNN结果可以被提供到全连接层550。
在分支540中,可以首先计算候选文本i与消息的近义表示之间的PMI矩阵542。消息的近义表示可以指在将消息中的至少一个词语或全部词语替换成对应的语义相近的词语之后的文本。通过计算候选文本i与消息的近义表示之间的PMI矩阵,可以增强对候选文本i与消息之间的相关性的评价的准确性。例如,在候选文本i与消息具有较低共现频率但实际上具有较高相关性的情况下,候选文本i可能具有与消息的近义表示的较高的PMI度量,该PMI度量可以用于补偿候选文本i与消息之间的较低的PMI度量,从而更真实地反应候选文本i与消息之间的相关性。
假设候选文本i包括n个词语并且消息包括m个词语,则可以形成n╳m维的PMI矩阵542。可以通过各种方式来计算PMI矩阵542中的每一个元素[x,y]处的PMI数值,其中,x∈[1,n]且y∈[1,m]。例如,在一种方式中,元素[x,y]处的PMI数值可以是在候选文本i的第x个词语与消息的第y个词语的语义最相近的词语之间的PMI数值。在一种方式中,元素[x,y]处的PMI数值可以是在候选文本i的第x个词语与消息的第y个词语的多个语义相近的词语之间的多个PMI数值的平均值。在一种方式中,元素[x,y]处的PMI数值可以是在候选文本i的第x个词语与消息的第y个词语的多个语义相近的词语之间的多个PMI数值中的最大值。与分支510类似,分支540也可以包括一系列2D卷积层以及可选地连接到每个卷积层的2D池化层。分支540所输出的CNN结果可以被提供到全连接层550。
全连接层550可以对分支510、520、530和540的CNN结果进行转换,并且可以使用例如softmax函数来生成候选文本i的排序分数506。
应当理解,尽管图5中示出了排序模型包括分支510、520、530和540,该排序模型也可以只包括这些分支中的一些分支,从而可以基于候选文本与消息之间的文本相似度、候选文本与消息之间的PMI、候选文本的近义表示与消息之间的PMI、候选文本与消息的近义表示之间的PMI中的一个或多个来生成排序分数。
在针对所有的候选文本都获得了排序分数后,可以根据这些候选文本的排序分数来选择具有最高排序分数的候选文本作为补充文本。
图6示出了根据实施例的用于对候选文本执行基于回归的排序的示例性过程600。过程600可以被执行用于例如在图2的216处从域话题流和/或域谓词流中的多个候选文本中为消息选择补充文本。例如,通过过程600,可以为多个候选文本分别生成排序分数,进而可以选择排名最高的候选文本作为补充文本。
过程600可以采用基于回归的排序模型610。排序模型610可以基于各种回归算法,例如,梯度提升决策树(GBDT)。排序模型610可以采用域话题流和域谓词流中的至少一项会话级别信息作为特征,例如,已经在会话中出现候选文本的频率、候选文本是否出现在上一个消息中、候选文本是否出现在上一个响应中、在会话中上次出现候选文本之后所经过的轮次、候选文本是否来自消息、候选文本是否来自响应等。此外,排序模型610也可以采用候选文本与消息之间的PMI、候选文本与消息之间的文本相似度等作为特征。可以采用具有对应于至少一个上述特征的标记的训练数据来训练排序模型610。
针对消息602,可以从域话题流和/或域谓词流中取出候选文本i 604。然后,排序模型610可以利用从消息602、候选文本i 604、域话题流、域谓词流等中提取的特征来计算该候选文本i 604的排序分数606。在针对所有的候选文本都获得了排序分数后,可以根据这些候选文本的排序分数来选择具有最高排序分数的候选文本作为补充文本。
尽管以上分别结合图5讨论了通过基于CNN的排序来选择补充文本以及结合图6讨论了通过基于回归的排序来选择补充文本,但是本公开的实施例也可以将这两种排序方式组合在一起以选择补充文本。例如,针对候选文本i,在通过过程500获得了排序分数506并且通过过程600获得了排序分数606之后,可以对排序分数506和排序分数606进行组合,例如加权求和,以便确定候选文本i的最终排序分数。在对所有候选文本都确定了最终排序分数之后,可以进而选择具有最高最终排序分数的候选文本作为补充文本。
此外,应当理解,对图5中过程500所基于的排序模型以及图6中的排序模型610的训练基本不需要特定于域的标注数据,并且在实施或应用这些排序模型时,可以直接使用不同的域中的PMI数据以用于在不同的域中执行排序。因此,可以容易地将这些排序模型在不同的域之间进行迁移。
图7示出了应用了根据实施例的上下文补全的示例性会话700。会话700涉及特定的域,例如旅游域。在会话700中,聊天机器人应用了根据本公开实施例的用于对会话中的消息进行上下文补全的方法。
在会话700的开始处,接收到来自用户的消息702“北京有什么好玩的地方?”。可以将从消息702中提取的话题“北京”添加到当前域的域话题流中,例如为话题“北京”建立条目,并且将从消息702中提取的谓词“有什么好玩的地方”添加到当前域的域谓词流中,例如为谓词“有什么好玩的地方”建立条目。此外,还可以确定会话级别信息并添加到域话题流和域谓词流中的对应条目。例如,针对话题“北京”,确定出会话级别信息“来自消息”,其指示该话题是首次出现在消息中的,并且确定出“频率1”,其指示该话题已经在会话中出现了1次。例如,针对谓词“有什么好玩的地方”,确定出会话级别信息“来自消息”,其指示该谓词是首次出现在消息中的,并且确定出“频率1”,其指示该谓词已经在会话中出现了1次。
针对消息702,可以确定不存在上下文省略。因此,可以通过已有的响应检索或生成方式来提供响应704“长城和故宫在北京。咱们去吧!”。响应704将触发对域话题流和域谓词流的更新(未示出)。
当接收到消息706“有什么美食?”时,可以相应地更新域话题流和域谓词流。可以确定在消息706中存在话题省略。可以从域话题流中选择出补充文本“北京”,并且生成补全消息706-1“北京有什么美食?”。针对补全消息706-1,可以提供响应708“烤鸭”,并且相应地更新域话题流和域谓词流(未示出)。
当接收到消息710“好吃么?”时,可以相应地更新域话题流和域谓词流。可以确定在消息710中存在话题省略。可以从域话题流中选择出补充文本“烤鸭”,并且生成补全消息710-1“烤鸭好吃么?”。针对补全消息710-1,可以提供响应712“烤鸭很好吃呀!”,并且相应地更新域话题流和域谓词流(未示出)。
当接收到消息714“故宫位置在哪?”时,可以相应地更新域话题流和域谓词流(未示出)。可以确定在消息714中不存在上下文省略。针对消息714,可以提供响应716“北京城中心”,并且相应地更新域话题流和域谓词流(未示出)。
当接收到消息718“很好”时,可以确定消息718中存在话题省略和谓词省略,并且可以进一步确定消息718是预定对话行为消息。可以基于与消息718的对话行为相对应的响应策略来提供响应720“去故宫很方便”,并且相应地更新域话题流和域谓词流(未示出)。
当接收到消息722“长城呢?”时,可以相应地更新域话题流和域谓词流。可以确定在消息722中存在谓词省略。可以从域谓词流中选择出补充文本“位置在哪”,并且生成补全消息722-1“长城位置在哪?”。针对补全消息722-1,可以提供响应724“在西北部郊区”,并且相应地更新域话题流和域谓词流(未示出)。
当接收到消息726“我知道了”时,可以确定消息726中存在话题省略和谓词省略,并且可以进一步确定消息726是预定对话行为消息。可以基于与消息726的对话行为相对应的响应策略来提供响应728“现在北京处于旅游旺季,快去买票吧”,并且相应地更新域话题流和域谓词流(未示出)。
应当理解,图7中的会话700以及所附的处理过程都是示例性的,并且可能取决于具体的应用场景而发生任意形式的改变。尽管图7中仅示出了关于话题/谓词来自哪里的会话级别信息以及关于话题/谓词已经在会话中出现的次数的会话级别信息,但是还可以确定任何其它会话级别信息并且添加到域话题流和域谓词流中。
图8示出了应用了根据实施例的上下文补全的示例性会话800。会话800涉及在不同的域,例如旅游域和运动域之间的转换。在会话800中,聊天机器人应用了根据本公开实施例的用于对会话中的消息进行上下文补全的方法。
当接收到消息802“北京有什么好玩的地方?”时,可以确定该消息涉及旅游域,并且可以更新针对旅游域维护的旅游域话题流和/或旅游域谓词流。聊天机器人可以提供响应804“长城和故宫在北京。咱们去吧!”,并且相应地更新旅游域话题流和/或旅游域谓词流。
当接收到消息806“有什么美食?”时,可以确定该消息保持在当前域中,例如保持在旅游域中,并且可以更新旅游域话题流和/或旅游域谓词流。聊天机器人可以利用旅游域话题流和/或旅游域谓词流来生成消息806的补全消息“北京有什么美食?”并提供响应808“烤鸭”,并且相应地更新旅游域话题流和/或旅游域谓词流。
当接收到消息810“NBA新赛季要开始了”时,可以确定该消息转换到了运动域,并且可以更新针对运动域维护的运动域话题流和/或运动域谓词流。聊天机器人可以提供响应812“激动啊!”,并且相应地更新运动域话题流和/或运动域谓词流。
当接收到消息814“什么时候?”时,可以确定该消息保持在当前域中,例如保持在运动域中,并且可以更新运动域话题流和/或运动域谓词流。聊天机器人可以利用运动域话题流和/或运动域谓词流来生成消息814的补全消息“什么时候NBA新赛季开始?”并提供响应816“这周末”,并且相应地更新运动域话题流和/或运动域谓词流。
当接收到消息818“故宫位置在哪?”时,可以确定该消息转换回到旅游域,并且可以更新针对旅游域维护的旅游域话题流和/或旅游域谓词流。聊天机器人可以提供响应820“北京城中心”,并且相应地更新旅游域话题流和/或旅游域谓词流。
当接收到消息822“长城呢?”时,可以确定该消息保持在当前域中,例如保持在旅游域中,并且可以更新旅游域话题流和/或旅游域谓词流。聊天机器人可以利用旅游域话题流和/或旅游域谓词流来生成消息822的补全消息“长城位置在哪?”并提供响应824“在西北部郊区”,并且相应地更新旅游域话题流和/或旅游域谓词流。
图9示出了根据实施例的用于对会话中的消息进行上下文补全的示例性方法900的流程图。
在910处,可以获得消息。
在920处,可以检测所述消息中存在上下文省略。
在930处,可以确定所述消息是否保持在所述会话的当前域中。
在940处,可以响应于确定所述消息保持在所述当前域中,在所述当前域中选择用于恢复所述上下文省略的补充文本。
在950处,可以基于所述消息和所述补充文本来生成补全消息。
在一种实施方式中,所述检测所述消息中存在上下文省略可以包括:从所述消息中提取话题和/或谓词;以及基于所述提取的结果来确定所述消息中存在话题省略或者谓词省略。
在一种实施方式中,方法900还可以包括:将所提取的话题和/或谓词分别添加到所述当前域的域话题流和/或域谓词流中。
在一种实施方式中,方法900还可以包括:确定与所提取的话题和/或谓词相关联的会话级别信息;以及将所述会话级别信息分别添加到所述当前域的域话题流和/或域谓词流中。
在一种实施方式中,所述提取可以是至少基于预先建立的知识图谱来执行的。
在一种实施方式中,所述确定所述消息是否保持在所述会话的当前域中可以包括:响应于确定所述消息中存在话题省略,通过域保持分类器来确定所述消息是否保持在所述当前域中。所述域保持分类器可以是基于RNN模型的。所述域保持分类器可以是通过知识蒸馏、从基于BERT模型的分类器来获得的。
在一种实施方式中,所述确定所述消息是否保持在所述会话的当前域中可以包括:响应于确定所述消息中存在谓词省略,基于所述消息中包括的话题来确定所述消息是否保持在所述当前域中。
在一种实施方式中,所述选择补充文本可以包括:响应于确定所述消息中存在话题省略,从所述域话题流中选择所述补充文本;或者响应于确定所述消息中存在谓词省略,从所述域谓词流中选择所述补充文本。
在一种实施方式中,所述选择补充文本可以包括:通过基于CNN的排序和基于回归的排序中的至少一个,从所述域话题流和/或域谓词流中的多个候选文本中选择所述补充文本。所述基于CNN的排序可以是根据候选文本的以下信息中的至少之一来执行的:所述候选文本与所述消息之间的文本相似度,所述候选文本与所述消息之间的PMI,所述候选文本与所述消息的近义表示之间的PMI,以及所述候选文本的近义表示与所述消息之间的PMI。所述基于回归的排序可以是根据候选文本的以下特征中的至少之一来执行的:已经在所述会话中出现所述候选文本的频率,所述候选文本是否出现在上一个消息中,所述候选文本是否出现在上一个响应中,在所述会话中,在上次出现所述候选文本之后所经过的轮次,所述候选文本与所述消息之间的PMI,以及所述候选文本与所述消息之间的文本相似度。
在一种实施方式中,所述生成补全消息可以包括:通过将所述补充文本放在所述消息的不同位置,生成至少一个候选补全消息;以及利用语言模型,从所述至少一个候选补全消息中选择所述补全消息。
在一种实施方式中,方法900还可以包括;响应于确定所述消息未保持在所述当前域中,确定与所述消息相对应的域;在与所述消息相对应的域中选择用于恢复所述上下文省略的补充文本;以及基于所述消息和所述补充文本来生成补全消息。
应当理解,方法900还可以包括根据上述本公开实施例的用于对会话中的消息进行上下文补全的任何步骤/过程。
图10示出了根据实施例的用于对会话中的消息进行上下文补全的示例性装置1000。
装置1000可以包括:消息获得模块1010,用于获得消息;上下文省略检测模块1020,用于检测所述消息中存在上下文省略;域保持确定模块1030,用于确定所述消息是否保持在所述会话的当前域中;补充文本选择模块1040,用于响应于确定所述消息保持在所述当前域中,在所述当前域中选择用于恢复所述上下文省略的补充文本;以及补全消息生成模块1050,用于基于所述消息和所述补充文本来生成补全消息。
在一种实施方式中,上下文省略检测模块1020可以用于:从所述消息中提取话题和/或谓词;以及基于所述提取的结果来确定所述消息中存在话题省略或者谓词省略。
在一种实施方式中,装置1000还可以包括:流更新模块,用于将所提取的话题和/或谓词分别添加到所述当前域的域话题流和/或域谓词流中。
在一种实施方式中,域保持确定模块1030可以用于:响应于确定所述消息中存在话题省略,通过域保持分类器来确定所述消息是否保持在所述当前域中;或者响应于确定所述消息中存在谓词省略,基于所述消息中包括的话题来确定所述消息是否保持在所述当前域中。
在一种实施方式中,补充文本选择模块1040可以用于:响应于确定所述消息中存在话题省略,从所述域话题流中选择所述补充文本;或者响应于确定所述消息中存在谓词省略,从所述域谓词流中选择所述补充文本。
在一种实施方式中,补充文本选择模块1040可以用于:通过基于CNN的排序和基于回归的排序中的至少一个,从所述域话题流和/或域谓词流中的多个候选文本中选择所述补充文本。
此外,装置1000还可以包括根据上述本公开实施例的被配置用于对会话中的消息进行上下文补全的任何其它模块。
图11示出了根据实施例的用于对会话中的消息进行上下文补全的示例性装置1100。
装置1100可以包括至少一个处理器1110以及存储了计算机可执行指令的存储器1120。当执行所述计算机可执行指令时,处理器1110可以:获得消息;检测所述消息中存在上下文省略;确定所述消息是否保持在所述会话的当前域中;响应于确定所述消息保持在所述当前域中,在所述当前域中选择用于恢复所述上下文省略的补充文本;以及基于所述消息和所述补充文本来生成补全消息。此外,处理器1110还可以执行根据上述本公开实施例的用于对会话中的消息进行上下文补全的任何其它处理。
本公开的实施例可以实施在非暂时性计算机可读介质中。该非暂时性计算机可读介质可以包括指令,当所述指令被执行时,使得一个或多个处理器执行根据上述本公开实施例的用于对会话中的消息进行上下文补全的方法的任何操作。
应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其它等同变换。
还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。
已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其它适合的处理部件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、DSP或其它适合的平台所执行的软件。
软件应当被广泛地视为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部(如,缓存或寄存器)。
以上描述被提供用于使得本领域任何技术人员可以实施本文所描述的各个方面。这些方面的各种修改对于本领域技术人员是显而易见的,本文限定的一般性原理可以应用于其它方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换,都将通过引用而明确地包含到本文中,并且旨在由权利要求所覆盖。
Claims (20)
1.一种用于对会话中的消息进行上下文补全的方法,包括:
获得消息;
检测所述消息中存在上下文省略;
确定所述消息是否保持在所述会话的当前域中;
响应于确定所述消息保持在所述当前域中,在所述当前域中选择用于恢复所述上下文省略的补充文本;以及
基于所述消息和所述补充文本来生成补全消息。
2.如权利要求1所述的方法,其中,所述检测所述消息中存在上下文省略包括:
从所述消息中提取话题和/或谓词;以及
基于所述提取的结果来确定所述消息中存在话题省略或者谓词省略。
3.如权利要求2所述的方法,还包括:
将所提取的话题和/或谓词分别添加到所述当前域的域话题流和/或域谓词流中。
4.如权利要求2所述的方法,还包括:
确定与所提取的话题和/或谓词相关联的会话级别信息;以及
将所述会话级别信息分别添加到所述当前域的域话题流和/或域谓词流中。
5.如权利要求2所述的方法,其中,
所述提取是至少基于预先建立的知识图谱来执行的。
6.如权利要求2所述的方法,其中,所述确定所述消息是否保持在所述会话的当前域中包括:
响应于确定所述消息中存在话题省略,通过域保持分类器来确定所述消息是否保持在所述当前域中。
7.如权利要求6所述的方法,其中,
所述域保持分类器是基于循环神经网络(RNN)模型的,并且
所述域保持分类器是通过知识蒸馏、从基于来自变换器的双向编码器表征(BERT)模型的分类器来获得的。
8.如权利要求2所述的方法,其中,所述确定所述消息是否保持在所述会话的当前域中包括:
响应于确定所述消息中存在谓词省略,基于所述消息中包括的话题来确定所述消息是否保持在所述当前域中。
9.如权利要求3所述的方法,其中,所述选择补充文本包括:
响应于确定所述消息中存在话题省略,从所述域话题流中选择所述补充文本;或者
响应于确定所述消息中存在谓词省略,从所述域谓词流中选择所述补充文本。
10.如权利要求3所述的方法,其中,所述选择补充文本包括:
通过基于卷积神经网络(CNN)的排序和基于回归的排序中的至少一个,从所述域话题流和/或域谓词流中的多个候选文本中选择所述补充文本。
11.如权利要求10所述的方法,其中,
所述基于CNN的排序是根据候选文本的以下信息中的至少之一来执行的:
所述候选文本与所述消息之间的文本相似度,
所述候选文本与所述消息之间的点互信息(PMI),
所述候选文本与所述消息的近义表示之间的PMI,以及
所述候选文本的近义表示与所述消息之间的PMI;并且
所述基于回归的排序是根据候选文本的以下特征中的至少之一来执行的:
已经在所述会话中出现所述候选文本的频率,
所述候选文本是否出现在上一个消息中,
所述候选文本是否出现在上一个响应中,
在所述会话中,在上次出现所述候选文本之后所经过的轮次,
所述候选文本与所述消息之间的PMI,以及
所述候选文本与所述消息之间的文本相似度。
12.如权利要求1所述的方法,其中,所述生成补全消息包括:
通过将所述补充文本放在所述消息的不同位置,生成至少一个候选补全消息;以及
利用语言模型,从所述至少一个候选补全消息中选择所述补全消息。
13.如权利要求1所述的方法,还包括;
响应于确定所述消息未保持在所述当前域中,确定与所述消息相对应的域;
在与所述消息相对应的域中选择用于恢复所述上下文省略的补充文本;以及
基于所述消息和所述补充文本来生成补全消息。
14.一种用于对会话中的消息进行上下文补全的装置,包括:
消息获得模块,用于获得消息;
上下文省略检测模块,用于检测所述消息中存在上下文省略;
域保持确定模块,用于确定所述消息是否保持在所述会话的当前域中;
补充文本选择模块,用于响应于确定所述消息保持在所述当前域中,在所述当前域中选择用于恢复所述上下文省略的补充文本;以及
补全消息生成模块,用于基于所述消息和所述补充文本来生成补全消息。
15.如权利要求14所述的装置,其中,所述上下文省略检测模块用于:
从所述消息中提取话题和/或谓词;以及
基于所述提取的结果来确定所述消息中存在话题省略或者谓词省略。
16.如权利要求14所述的装置,还包括:
流更新模块,用于将所提取的话题和/或谓词分别添加到所述当前域的域话题流和/或域谓词流中。
17.如权利要求14所述的装置,其中,所述域保持确定模块用于:
响应于确定所述消息中存在话题省略,通过域保持分类器来确定所述消息是否保持在所述当前域中;或者
响应于确定所述消息中存在谓词省略,基于所述消息中包括的话题来确定所述消息是否保持在所述当前域中。
18.如权利要求16所述的装置,其中,所述补充文本选择模块用于:
响应于确定所述消息中存在话题省略,从所述域话题流中选择所述补充文本;或者
响应于确定所述消息中存在谓词省略,从所述域谓词流中选择所述补充文本。
19.如权利要求16所述的装置,其中,所述补充文本选择模块用于:
通过基于卷积神经网络(CNN)的排序和基于回归的排序中的至少一个,从所述域话题流和/或域谓词流中的多个候选文本中选择所述补充文本。
20.一种用于对会话中的消息进行上下文补全的装置,包括:
至少一个处理器;以及
存储器,其存储计算机可执行指令,当所述计算机可执行指令被执行时使所述至少一个处理器:
获得消息,
检测所述消息中存在上下文省略,
确定所述消息是否保持在所述会话的当前域中,响应于确定所述消息保持在所述当前域中,在所述当前域中选择用于恢复所述上下文省略的补充文本,以及
基于所述消息和所述补充文本来生成补全消息。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910863956.7A CN112487155A (zh) | 2019-09-12 | 2019-09-12 | 对会话中的消息进行上下文补全 |
EP20736842.4A EP4028933A1 (en) | 2019-09-12 | 2020-06-17 | Performing context completion to messages in a session |
US17/631,666 US20220277145A1 (en) | 2019-09-12 | 2020-06-17 | Domain Context Ellipsis Recovery for Chatbot |
PCT/US2020/038016 WO2021050133A1 (en) | 2019-09-12 | 2020-06-17 | Performing context completion to messages in a session |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910863956.7A CN112487155A (zh) | 2019-09-12 | 2019-09-12 | 对会话中的消息进行上下文补全 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112487155A true CN112487155A (zh) | 2021-03-12 |
Family
ID=71465438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910863956.7A Pending CN112487155A (zh) | 2019-09-12 | 2019-09-12 | 对会话中的消息进行上下文补全 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220277145A1 (zh) |
EP (1) | EP4028933A1 (zh) |
CN (1) | CN112487155A (zh) |
WO (1) | WO2021050133A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113516968B (zh) * | 2021-06-07 | 2022-05-20 | 北京邮电大学 | 一种端到端长时语音识别方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334487A (zh) * | 2017-07-14 | 2018-07-27 | 腾讯科技(深圳)有限公司 | 缺失语意信息补全方法、装置、计算机设备和存储介质 |
US20180278561A1 (en) * | 2017-03-24 | 2018-09-27 | International Business Machines Corporation | Document processing |
CN109657238A (zh) * | 2018-12-10 | 2019-04-19 | 宁波深擎信息科技有限公司 | 基于知识图谱的上下文识别补全方法、系统、终端及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9171542B2 (en) * | 2013-03-11 | 2015-10-27 | Nuance Communications, Inc. | Anaphora resolution using linguisitic cues, dialogue context, and general knowledge |
-
2019
- 2019-09-12 CN CN201910863956.7A patent/CN112487155A/zh active Pending
-
2020
- 2020-06-17 US US17/631,666 patent/US20220277145A1/en active Pending
- 2020-06-17 EP EP20736842.4A patent/EP4028933A1/en active Pending
- 2020-06-17 WO PCT/US2020/038016 patent/WO2021050133A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180278561A1 (en) * | 2017-03-24 | 2018-09-27 | International Business Machines Corporation | Document processing |
CN108334487A (zh) * | 2017-07-14 | 2018-07-27 | 腾讯科技(深圳)有限公司 | 缺失语意信息补全方法、装置、计算机设备和存储介质 |
CN109657238A (zh) * | 2018-12-10 | 2019-04-19 | 宁波深擎信息科技有限公司 | 基于知识图谱的上下文识别补全方法、系统、终端及介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220277145A1 (en) | 2022-09-01 |
WO2021050133A1 (en) | 2021-03-18 |
EP4028933A1 (en) | 2022-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11176330B2 (en) | Generating recommendation information | |
US20200301954A1 (en) | Reply information obtaining method and apparatus | |
CN110427463B (zh) | 搜索语句响应方法、装置及服务器和存储介质 | |
CN106528845B (zh) | 基于人工智能的检索纠错方法及装置 | |
WO2018195875A1 (en) | Generating question-answer pairs for automated chatting | |
US20200202194A1 (en) | Providing a response in a session | |
CN112307351A (zh) | 用户行为的模型训练、推荐方法、装置和设备 | |
CN112214593A (zh) | 问答处理方法、装置、电子设备及存储介质 | |
CN109829045A (zh) | 一种问答方法和装置 | |
CN109284502B (zh) | 一种文本相似度计算方法、装置、电子设备及存储介质 | |
CN113282711B (zh) | 一种车联网文本匹配方法、装置、电子设备及存储介质 | |
CN112041809A (zh) | 将音效自动添加到音频文件中 | |
CN110597968A (zh) | 一种回复选择方法及装置 | |
CN112650768A (zh) | 对话信息的生成方法、装置及电子设备 | |
Lee et al. | Constructing multi-modal dialogue dataset by replacing text with semantically relevant images | |
Yu et al. | UGAN: unified generative adversarial networks for multidirectional text style transfer | |
Lindén et al. | Evaluating combinations of classification algorithms and paragraph vectors for news article classification | |
CN112487155A (zh) | 对会话中的消息进行上下文补全 | |
CN113468884B (zh) | 一种中文事件触发词抽取方法及装置 | |
CN112989001B (zh) | 一种问答处理方法、装置、介质及电子设备 | |
Atassi et al. | The new deep learning architecture based on GRU and word2vec | |
CN113741759A (zh) | 评论信息的展示方法、装置、计算机设备和存储介质 | |
CN113761874A (zh) | 事件事实性预测方法、装置、电子设备与存储介质 | |
Zhang et al. | Can open domain question answering systems answer visual knowledge questions? | |
Parikh et al. | Reversing The Twenty Questions Game |
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 |