Providing responses in conversation about events

By introducing a domain-based chat mechanism into the chatbot, using the predefined domain index set to retrieve candidate responses and filter optimized responses, the problem that existing chatbots are difficult to provide high-quality event-related responses in the conversation is solved, and higher response relevance and session activity are achieved.

CN112015852BActive Publication Date: 2025-03-28MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN201910468365.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-05-31
Publication Date
2025-03-28
Estimated Expiration
2039-05-31

AI Technical Summary

Technical Problem

Existing chatbots have difficulty providing high-quality responses associated with specific events or domains in a session, resulting in insufficient relevance and engagement in responses.

Method used

By introducing a domain-based chat mechanism into the chatbot, candidate responses are retrieved using a predefined domain index set, and optimized responses are filtered through predetermined criteria, ensuring that the chatbot can provide professional comments and real-time event content related to events.

Benefits of technology

It improves the relevance and engagement of chatbots in conversations, enhances interaction with users, and increases the activity of conversations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112015852B_ABST
    Figure CN112015852B_ABST
Patent Text Reader

Abstract

The present disclosure provides a method and apparatus for providing a response in a conversation about an event. The event is associated with a predefined domain, and the conversation includes an electronic dialogue agent and at least one participant. At least one message from the at least one participant can be detected. A set of candidate responses can be retrieved from an index set based on the domain based on the at least one message. The set of candidate responses can be optimized by filtering the set of candidate responses according to predetermined criteria. A response to the at least one message can be selected from the filtered set of candidate responses. The selected response can be provided in the conversation.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Artificial intelligence (AI) chatbots are becoming more and more popular and are being used in more and more scenarios. Chatbots are designed to simulate human conversations and can chat with users through text, voice, images, etc. Generally, chatbots can be built using a chat model based on machine learning. When receiving a message input by a user, the chat model can identify keywords in the message or apply natural language processing to the message, and output a response to the message. Summary of the invention

[0002] This summary is provided to introduce a set of concepts that will be further described in the following detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

[0003] Embodiments of the present disclosure provide a method and apparatus for providing a response in a conversation about an event. The event is associated with a predefined domain, and the conversation includes an electronic dialogue agent and at least one participant. At least one message from the at least one participant can be detected. Based on the at least one message, a set of candidate responses can be retrieved from an index set based on the domain. The set of candidate responses can be optimized by filtering the set of candidate responses according to predetermined criteria. A response to the at least one message can be selected from the filtered set of candidate responses. The selected response can be provided in the conversation.

[0004] It should be noted that one or more of the above aspects include the features specifically pointed out in the following detailed description and claims. The following description and drawings set forth certain illustrative features of the one or more aspects in detail. These features are merely indicative of the various ways in which the principles of various aspects may be implemented, and the present disclosure is intended to include all such aspects and their equivalents. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] The disclosed aspects will be described below in conjunction with the accompanying drawings, which are provided to illustrate rather than limit the disclosed aspects.

[0006] Figure 1 An exemplary application scenario for implementing a conversation about an event according to an embodiment is shown.

[0007] Figure 2 An exemplary architecture for providing responses by a chatbot in a conversation about an event is shown according to an embodiment.

[0008] Figure 3 An exemplary architecture for providing real-time event content by a chatbot in a conversation about an event is shown in accordance with an embodiment.

[0009] Figure 4 An exemplary process for providing a response in a conversation about an event is shown in accordance with an embodiment.

[0010] Figure 5 An exemplary session window is shown in accordance with an embodiment.

[0011] Figure 6 An exemplary session window is shown in accordance with an embodiment.

[0012] Figure 7 A flow chart of an exemplary method for providing a response in a conversation about an event is shown according to an embodiment.

[0013] Figure 8 An exemplary apparatus for providing a response in a conversation about an event according to an embodiment is shown.

[0014] Fig. 9 An exemplary apparatus for providing a response in a conversation about an event according to an embodiment is shown. DETAILED DESCRIPTION

[0015] The present disclosure will now be discussed with reference to various exemplary embodiments. It should be understood that the discussion of these embodiments is only for enabling those skilled in the art to better understand and thereby implement the embodiments of the present disclosure, and does not teach any limitation on the scope of the present disclosure.

[0016] Generally, the chat model used by the chatbot is trained based on a large amount of data from human conversations. The trained chat model can simulate human conversations and chat with users in real time. The chatbot built based on the training data in the general domain can have a pure chat with the user, which can also be called free chat, small talk, etc. In one application scenario, the chatbot can have a pure chat with more than one user in a group chat or chat room.

[0017] The embodiment of the present disclosure proposes that in a conversation about an event, an electronic dialogue agent provides a response to one or more other participants of the conversation, for example, a response associated with the event, a response associated with the domain to which the event belongs, etc. The electronic dialogue agent can be, for example, a chat robot. In this article, "conversation" can refer to a time-continuous conversation between a chat robot and one or more chat participants, which can be a multi-party chat in a group chat or a chat in a chat room, or a one-to-one chat between a chat robot and one other chat participant. A conversation can include messages and responses in a conversation, wherein "message" refers to any information input by a participant other than the chat robot, such as a query from a user, a user's answer to a chat robot's question, a user's opinion, etc., and "response" refers to any information provided by the chat robot, such as a chat robot's answer to a user's question, a chat robot's comment, etc. The terms "message" and "query" can also be used interchangeably. In this article, "event" can refer to an activity with a time attribute, the state of which changes over time. For example, an event can include a sports match, a live broadcast of an electronic game, a theatrical performance, etc. Taking the "football match" event as an example, a football match has its time attribute, which may at least include, for example, the start time of the match, the end time of the match, the time period between the start time and the end time of the match, the time period before the start of the match, the time period after the end of the match, etc. The state of a football match will change over time, for example, the score, fouls, player performance, and the behavior of the audience will change over time. An event may occur in real time, such as an ongoing football match, or may not occur in real time, such as a draft match that has ended. Generally, an event may be associated with one or more specific domains, for example, a football match may be associated with the football domain or the sports domain, an electronic game may be associated with the e-sports domain or the game domain, a draft match may be associated with the art performance domain, and so on. "Conversation about an event" may refer to a conversation with an event as the core or main topic, for example, a chat in a chat room about a football match, a group chat about a live video game, etc.

[0018] The embodiments of the present disclosure can enable the chatbot to provide responses associated with specific events or specific domains in a conversation in addition to being able to engage in pure chatting. Thus, when the chatbot participates in a conversation about a certain event, the chatbot can provide various responses that are more closely related to the event targeted by the conversation. For example, the chatbot can discuss the event with other participants, provide professional comments on the event, provide real-time reports on the progress of the event, and so on. The embodiments of the present disclosure can enhance the relevance of the chatbot's responses in a conversation, improve the chatbot's participation in a conversation, guide the discussion of other participants through the chatbot's responses, improve the overall activity of the conversation, and so on.

[0019] In one aspect, a chatbot can conduct a domain-based chat with other participants in a conversation about an event. For example, for a message from a participant, the chatbot can provide a response generated according to the domain associated with the event. Thus, the chatbot can discuss the event with other participants, for example, discussing the entities involved in the event, discussing the facts that occurred in the event, etc. Taking an event about a football match as an example, the football match event is associated with the football domain or the sports domain. The entities involved in the event may include the teams, players, coaches, etc. participating in the football match, and the facts that occurred in the event may include the situations that occurred in the football match, such as a team scoring a goal, a player committing a foul, etc. The chatbot can generate a response based on the corpus from the domain associated with the event to conduct a chat based on the domain. Through a domain-based chat mechanism, the interaction between the chatbot and other participants can be improved, and in-depth topic discussions can be guided.

[0020] In one aspect, the domain-based chat that the chatbot conducts with other participants in a conversation about an event may include providing professional comments on the event. Corpus materials about the event, such as comments, articles, etc., may be collected in advance in the domain associated with the event, and content may be extracted therefrom so as to be provided to other participants as responses in the conversation. Since these corpus materials may be some professional comments, articles, etc. about the event created by professionals, the responses generated based on these corpus materials may enable the chatbot to show higher professionalism. Taking an event about a football match as an example, professionals may publish some forward-looking articles about the football match before the match, and these forward-looking articles may include, for example, analysis of the team and / or players, prediction of the results of the match, etc., and the chatbot may provide the content in these forward-looking articles as responses in the conversation.

[0021] In one aspect, the chatbot can provide real-time event content in a conversation about an event, such as providing a real-time report on the progress of the event, etc. Taking an event about a football match as an example, the chatbot can detect real-time information occurring in the football match, such as a goal, etc., and provide a report on the goal in the conversation accordingly. By providing real-time event content, the interest and trust of other participants in the chatbot can be enhanced.

[0022] In one aspect, the chatbot can maintain consistency of stance in a conversation about an event, for example, the stances of multiple responses provided by the chatbot are consistent. In this article, "stance" can refer to preferences, support, etc. for entities involved in the event. Taking an event about a football game as an example, entities may include teams, players, coaches, etc., and stances may include supporting one of the two teams, liking a player, etc. Maintaining stance consistency can prevent the chatbot from providing responses to entities that are self-contradictory.

[0023] In one aspect, the chatbot can maintain consistency of opinions in a conversation about an event, for example, the opinions of multiple responses provided by the chatbot are consistent. In this article, "opinion" can refer to the view, evaluation, etc. of the facts that occurred in the event. Taking an event about a football match as an example, the facts may include a team scoring a goal, a player committing a foul, etc., and the opinions may include believing that the goal is invalid, believing that the foul is too malicious, etc. Maintaining consistency of opinions can prevent the chatbot from providing inconsistent responses to the facts.

[0024] In one aspect, the chatbot can detect the common opinions or comment trends of other participants on a fact in a conversation about an event, and follow the same or similar opinions in subsequent responses. Taking an event about a football match as an example, if multiple other participants believe that a red card should be shown for a foul by a certain player, the chatbot can give a response that agrees with the opinion of "showing a red card". Following the common opinion can make the chatbot more sociable and gain resonance with other participants.

[0025] In one aspect, the chatbot can ensure the freshness of the responses provided in a conversation about an event. The chatbot can obtain the latest background information about the entities in the event, and make the responses provided conform to the latest background information, rather than outdated background information. Taking an event about a football match as an example, if it is known in advance that a player M of a team participating in the football match has transferred to another team before the game, the chatbot's response can avoid comments on the performance of the player M in the football match.

[0026] In one aspect, the embodiments of the present disclosure are not limited to deploying only one chatbot in a conversation about an event, but two or more chatbots can be deployed in the same conversation. In this case, the two or more chatbots can chat with other participants, and the two or more chatbots can also chat in a predetermined mode. By deploying two or more chatbots in one conversation, the overall activity of the conversation can be further improved.

[0027] It should be understood that although football matches in the football domain or sports domain are often used as examples in the above and following discussions, the embodiments of the present disclosure are not limited to such domains and events, but can be applied to any other domains and events in a similar manner.

[0028] Figure 1 An exemplary application scenario 100 for implementing a conversation about events according to an embodiment is shown.

[0029] exist Figure 1 In the present invention, the network 110 is used to interconnect various network entities. The network 110 can be any type of network capable of interconnecting network entities. The network 110 can be a single network or a combination of various networks.

[0030] The domain service platform 120 may be connected to the network 110. The domain service platform 120 may refer to a platform, server, website, etc. that provides various services within a specific domain to users on the network 110, for example, a website that provides match broadcasts in the sports domain, a server that provides online game live broadcasts in the game domain, a platform that provides talent show match broadcasts in the art performance domain, etc. The domain service platform 120 may establish corresponding service processes for different events within the domain, such as event 1 service process 122, event 2 service process 124, etc. These event service processes may have corresponding user interfaces to provide text or image broadcasts of events, run chat rooms about events, and so on. Taking the example that the domain service platform 120 is a match broadcast website in the sports domain, a service process may be established for a football match event between team A and team B, so that users can view the progress of the game, chat about the game, etc. in the user interface of the service process. Although in Figure 1 Only one domain service platform is shown in FIG. 1 , but it should be understood that there may be a different number of domain service platforms connected to the network 110 .

[0031] A domain information source 130 may also be connected to the network 110. The domain information source 130 may be a platform, server, website, etc. that can provide various relevant information in a specific domain. The information provided by the domain information source 130 may include introductions, comments, reports, etc. on various events, entities, etc. in the domain. For example, if the domain information source 130 is a portal website in the football domain, the domain information source 130 may provide various information related to football matches, such as team and player introductions, team and player status updates, player and coach transfer information, football match predictions and comments, etc. It should be understood that although Figure 1 In FIG. 1 , the domain information source 130 is shown as being separated from the domain service platform 120 , but the domain information source 130 may also be included in the domain service platform 120 .

[0032] exist Figure 1 140 and 150 are connected to the network 110. These terminal devices may be any type of electronic computing device capable of accessing a server or website on the network 110, processing data or signals, etc. For example, the terminal devices 140 and 150 may be desktop computers, laptop computers, tablet computers, smart phones, AI terminals, etc. Figure 1 Only two terminal devices are shown in FIG. 1 , but it should be understood that a different number of terminal devices may be connected to the network 110. User 142 and user 152 may access the domain service platform 120 via terminal device 140 and terminal device 150, respectively, to participate in the event service process in the domain service platform 120. For example, user 142 and user 152 may participate in a conversation in a chat room about event 1 through the user interface of event 1 service process 122.

[0033] exist Figure 1 1 shows a chatbot server 160 for providing chatbot services. The chatbot server 160 can access the domain service platform 120 via the network 110 to participate in the event service process in the domain service platform 120. For example, the chatbot provided by the chatbot server 160 can participate in a conversation in a chat room about the event 1 through the user interface of the event 1 service process 122, such as chatting with users 142 and 152.

[0034] The chatbot server 160 may be connected to or include a database 162. The database 162 may include various information that can be used by the chatbot server 160 to generate responses. The database 162 may include an index set established based on a corpus in a specific domain, which can be used by the chatbot for domain-based chats. The database 162 may include an index set established based on a corpus related to a specific event in a specific domain, which can be used by the chatbot to provide professional comments on the event, which can be used as part of the domain-based chat conducted by the chatbot. The database 162 may include background information about entities involved in a specific event, which can be used to provide responses with freshness. The database 162 may include a knowledge graph established for a specific domain, which can be used to identify entities in messages from users, expand messages, etc. For example, text segments of different levels, such as entities, phrases, topics, etc., can be extracted from a large amount of corpus in the specific domain, and these text segments can be associated based on the co-occurrence of words to form a knowledge graph. The knowledge graph will help to improve the relevance between the responses provided by the chatbot and the messages from users, etc. Additionally, database 162 may include various other information that may be used to generate a response.

[0035] It should be understood that Figure 1 All network entities shown in the figure are exemplary. According to specific application requirements, any other network entities may be involved in the application scenario 100.

[0036] Figure 2 An exemplary architecture 200 for providing a response by a chatbot in a conversation about an event according to an embodiment is shown. For example, the architecture 200 may be a retrieval-based response providing architecture.

[0037] The chatbot may continuously detect messages 210 from at least one other participant in the conversation. In one embodiment, the chatbot does not need to respond to all messages 210, but may selectively respond to a portion of the messages.

[0038] The chatbot may include a message understanding module 220. The message understanding module 220 may be used to semantically complete the context-dependent messages in the message 210. For example, if a message is "He fell down", the pronoun "he" in the message will cause the message to be context-dependent, that is, it is necessary to determine which person "he" specifically refers to based on the context. If it is determined based on the previous message that "he" refers to "Player M", the message understanding module 220 may semantically complete the message to "Player M fell down" to facilitate subsequent processing. In addition, the message understanding module 220 may be used to filter out messages that are not desired to be responded to from the message 210 according to a predetermined strategy, such as messages containing advertisements, messages containing risky expressions, pure chat messages that are not related to the chatbot, and the like.

[0039] The chatbot may include a pure chat module 230 for responding to pure chat messages that are not related to the event but are related to the chatbot. The pure chat module 230 may adopt a response generation architecture trained in a general domain. A pure chat index set 232 may be established using data from, for example, a social network, and the index items in the pure chat index set 232 may be in the form of a query-response (QR) pair, a response-only form, etc. When a message is input, the pure chat module 230 may generate a response to the message by matching the index items in the pure chat index set 232. For example, assuming that a participant sends a message to the chatbot "Are you a man or a woman?", and the message is determined to be a pure chat message related to the chatbot, the chatbot may use the pure chat module 230 to generate a response "I am a pretty girl".

[0040] The chatbot may include a domain chat module 240, which is used to respond to messages related to the event. The domain chat module 240 may adopt a response generation architecture trained in a specific domain according to the present disclosure. In one embodiment, a domain data index set 242 may be established based on the corpus in the domain associated with the event. The domain data index set 242 includes index items extracted from various corpora in the domain, the corpora including, for example, introductions, comments, reports, etc. of entities and facts of various events in the domain, as well as introductions, comments, reports, etc. of entities involved in the event of the session in particular. When a message is input, the domain chat module 240 can generate a response to the message based on the corpus in the domain by matching the message with the index items in the domain data index set 242. For example, assuming that a participant sends a message “Player M performed so well”, which is determined to be a message related to the event, in particular, a message related to the entity “Player M” involved in the event, then the domain chat module 240 can use the domain data index set 242 to generate a response “Player M is the core figure of Team A”, which can be based on the introductory corpus about Player M and Team A in the football domain in the domain data index set 242. In one embodiment, an event data index set 244 can be established based on the corpus related to the event of the session. The event data index set 244 includes index items extracted from various corpora related to the event, and the corpora may include some professional comments or forward-looking articles about the event. When a message is input, the domain chat module 240 can generate a response including professional comments on the event based on the message and the index items in the event data index set 244. For example, assuming that a participant sends a message "Team A's offense is much stronger than Team B", and the message is determined to be a message related to the event "Football match between Team A and Team B", the domain chat module 240 can use the event data index set 244 to generate a response "Team A has a fast offense and the players cooperate well, while Team B has difficulty organizing an effective offense. Team A is likely to win the game", which can be based on the corpus in the prediction article for this game obtained before this game in the event data index set 244.

[0041] In some embodiments, for a message related to an event, the domain chat module 240 may attempt to retrieve candidate responses from the domain data index set 242 and the event data index set 244, respectively, and then select the final response. When selecting, different weights may be given to candidate responses from different index sets. For example, since the index items in the event data index set 244 tend to give professional comments, which may be desired, a higher weight may be given to candidate responses from the event data index set 244.

[0042] It should be understood that the domain data index set 242 and the event data index set 244 may be based on, for example, Figure 1 The domain information source 130 in the example is constructed and can be stored in, for example Figure 1 In the database 162 in.

[0043] Through the pure chat module 230 or the domain chat module 240 in the chatbot, a response 250 to the message processed by the message understanding module 220 can be generated. The chatbot can further provide the response 250 in the conversation about the event.

[0044] It should be understood that Figure 2 The architecture 200 shown in is exemplary, and any form of changes may be made to the architecture 200 according to specific application requirements. For example, the pure chat module 230 may be omitted from the chatbot, so that the chatbot is dedicated to domain-based chat. For example, although the domain data index set 242 and the event data index set 244 are shown as two separate index sets, these two index sets may be merged into one index set, so that the domain chat module 240 may retrieve candidate responses from the merged index set and finally determine the response 250 without distinguishing between domain data index items and event data index items. For example, in the case where the event is associated with two or more domains, two or more corresponding domain data index sets may also be pre-established, so that Figure 2 The domain data index set 242 in the 242 may actually represent any one or more of these domain data index sets, or a single domain data index set formed by any one or more of these domain data index sets.

[0045] Figure 3 An exemplary architecture 300 for providing real-time event content by a chatbot in a conversation about an event is shown according to an embodiment.

[0046] The chatbot can obtain real-time information 310 about the event. Real-time information 310 may include various information about the latest developments of the event. For example, in a football match event, real-time information may include current goal information, current foul information, etc. The chatbot may obtain real-time information 310 from different sources. In one embodiment, real-time information may be obtained from a message sent by a participant in the session. For example, there is usually a host in a chat room about a football match, and the host will promptly broadcast the real-time information of the game to other participants in the chat room. For example, when team A scores a goal, the host will immediately send a message "Team A scored a goal, and the score becomes 1:0". The message from the host can be used as real-time information 310 by the chatbot. In another embodiment, the chatbot may obtain real-time information 310 from an event database that is updated in real time for the event. For example, during a football match, the organizer of the match will usually release on-field information in real time. For example, when player M of team A scores a goal, the organizer will immediately release the information "In the 31st minute of the first half, player M of team A scored a goal." This information can be stored in a real-time updated event database, and the chatbot can access the information in the event database as real-time information 310.

[0047] The chatbot may include an event content generation module 320, which may be used to generate real-time event content 330 based on the real-time information 310. In one embodiment, the event content generation module 320 may generate real-time event content 330 using various expression templates for different scenarios stored in the corpus 322. The event content generation module 320 may first identify the entities involved and the associated facts from the real-time information 310, for example, identifying the entity "Team A" and the fact "Goal" from the real-time information "Team A scored a goal, the score became 1:0". Then, the event content generation module 320 may retrieve candidate templates involving the fact "Goal" from the corpus 322 and select the template to be used therefrom, for example, "Great! <Entity> scored an important goal!", where "<Entity>" indicates the team that scored the goal. The event content generation module 320 may fill the template with the entities identified from the real-time information 310, thereby obtaining the real-time event content "Great! Team A scored an important goal!".

[0048] The chatbot may provide the generated real-time event content 330 in the conversation about the event, so that other participants can be informed of the latest developments of the event in a timely manner.

[0049] Figure 4An exemplary process 400 for providing a response in a conversation about an event according to an embodiment is shown. The conversation may be between a chatbot and at least one participant. The process 400 may be performed by a chatbot for conducting a domain-based chat with at least one participant.

[0050] The chatbot can detect at least one message from at least one participant in the conversation. The chatbot can continuously detect messages in the conversation and perform subsequent processing on the detected messages. Assume that message 410 is currently detected in process 400.

[0051] At 420, message understanding may be performed on message 410. The message understanding may be performed by, for example, Figure 2 The message understanding module 220 in the embodiment of the present invention is executed. The message understanding at 420 may include at least one of the following operations: context-dependent message detection 422, detection 424 of messages containing advertisements, detection 426 of messages containing risky expressions, and pure chat message detection 428.

[0052] In context-dependent message detection 422, it can be detected whether message 410 is a context-dependent message. If so, semantic completion can be performed on the context-dependent message to facilitate subsequent processing.

[0053] In the detection 424 of messages containing advertisements, it can be detected whether the message 410 is a message intended to publish advertisements in the session. For example, a participant in the session may not really want to chat with other participants about the event, but want to publish advertisements for commercial purposes in the session. For example, in a session about a football match, if a participant publishes the message "Store S is currently dealing with a batch of sneakers at a special price, address XXXX", the message can be detected as a message containing advertisements. The chatbot will avoid responding to messages containing advertisements, so the message containing advertisements can be filtered out or ignored. In one embodiment, an advertisement classifier based on a gradient boosting decision tree model can be used to classify the message 410 into advertisements or non-advertisements. Comment data from an open domain can be collected in advance and marked as advertisements or non-advertisements as training data. The features used by the advertisement classifier can include a bag of words after text segmentation (for example, using the TF-IDF value of N-gram).

[0054] In the detection 426 of messages containing risky expressions, it is possible to detect whether the message 410 contains risky expressions. In this article, risky expressions may refer to expressions involving politics, insults, uncivilized behavior, etc. For example, in a conversation about a football game, if a participant posts a message "Player M runs like a turtle", the message can be detected as a message containing risky expressions such as insulting the player. The chatbot will avoid responding to messages containing risky expressions, so messages containing risky expressions can be filtered out or ignored. In one embodiment, a list of risky keywords / phrases can be established in advance, and if a message is detected to include one or more words in the list, the message can be determined to be a message containing risky expressions. In another embodiment, a risky expression classifier based on a gradient boosting decision tree model can be used to classify messages as including risky expressions or not including risky expressions. Comment data from an open domain can be collected in advance and marked as risky or non-risky as training data. The features used by the risk statement classifier may include bag-of-words after text segmentation (for example, using TF-IDF value of N-gram), negative words determined based on sentiment lexicon and their occurrence frequency, the occurrence frequency of special symbols such as question mark and exclamation mark, etc.

[0055] In the pure chat message detection 428, it can be detected whether the message 410 is a pure chat message unrelated to the chatbot, such as a message unrelated to the chatbot and unrelated to the event, etc. For example, in a conversation about a football game, if a participant posts a message "Who wants to eat fried chicken now?", the message can be detected as a pure chat message unrelated to the chatbot. The chatbot can avoid or respond less to pure chat messages that are unrelated to it, so pure chat messages unrelated to the chatbot can be filtered out or ignored. In one embodiment, a pure chat classifier based on a gradient boosting decision tree model can be used to classify the message 410 into pure chat or non-pure chat. News chat data from an open domain can be collected in advance and marked as pure chat or not as training data. The features used by the pure chat classifier can include a bag of words after text segmentation (for example, using the TF-IDF value of N-gram), text length, text vector representation, entities in the text and their number, etc. If the message 410 is determined by the pure chat classifier to be a pure chat message, it can be further determined whether the message 410 is related to the chatbot. For example, it can be detected whether the message 410 is a "reply" to the chatbot, whether it contains content related to the chatbot, etc. If it is determined that the message 410 is a pure chat message unrelated to the chatbot, the message 410 can be filtered out or ignored.

[0056] After the message understanding 420, message processing may be performed on the message 410 at 430. In one embodiment, the message processing 430 may include performing message improvement 432 on the message 410. In the message improvement 432, stop words, question words, etc. may be removed from the message 410. In one embodiment, the message processing 430 may include performing entity extraction 434 on the message 410. In the entity extraction 434, entities, etc. contained in the message 410 may be identified. For example, entities may be identified from the message 410 by matching with a pre-established knowledge graph. The knowledge graph may be a combination of the above Figure 1 The knowledge graph established for the domain associated with the current event as discussed in the database 162 in FIG. Taking the knowledge graph of the football domain as an example, the knowledge graph may include a large number of entities such as players, teams, coaches, etc. For example, in a conversation about a football match, if a participant posts a message "Player M is too tired and can't run anymore", the entity "Player M" can be identified from the message by matching with the knowledge graph of the football domain. The entity identified from the message 410 can be used in subsequent retrieval.

[0057] At 440, a set of candidate responses may be retrieved from an index set 446 based on the domain associated with the current event based on the message 410 output from the message processing 430. The index set 446 may be Figure 2At least one of the domain data index set 242 and the event data index set 244 in the index set 446. A set of candidate responses that meet the relevance threshold can be extracted from the index set 446 by calculating the relevance of the message 410 with the index items in the index set 446. In one embodiment, the retrieval 440 may include performing message expansion 442 on the message 410. The message expansion 442 may expand the entities in the message 410, for example, the entity "Player M" extracted from the message 410 by the entity extraction 434 is expanded to the nickname "Running Lion" unique to the player M, etc. The message expansion 442 may also interpret or rewrite the expression of the message 410, for example, rewriting the message 410 "Player M is from the Nerazzurri" to "Player M is from Inter Milan Club", where "Inter Milan Club" is a paraphrase of "Nerazzurri". By performing message expansion 442 on the message, a more relevant and comprehensive search can be facilitated in the index set 446. In one embodiment, the retrieval 440 may be based on entity coercion 444. For example, if entity E is extracted from message 410 by entity extraction 434, candidate responses from index set 446 may be required to contain entity E or extension E' of entity E in retrieval 440, wherein extension E' may be obtained based on entity E by message extension 442. By entity enforcement 444, the response finally provided by the chatbot may contain the same entity as message 410, thereby improving the relevance of the response to the message.

[0058] At 450, a set of candidate responses obtained by searching 440 may be filtered according to at least one predetermined standard to optimize the set of candidate responses. Through this optimization, candidate responses that may reduce the quality of the final response provided by process 400 may be filtered out from the set of candidate responses, so that the filtered or optimized set of candidate responses may avoid including inappropriate expressions, inconsistent expressions, expressions that lack timeliness, etc. Since the final response is selected from the filtered candidate responses, the above-mentioned optimization process may effectively improve the quality of the final response. The predetermined standard may include at least one of the following: a standard 451 for filtering out context-dependent candidate responses, a standard 452 for filtering out candidate responses containing advertisements, a standard 453 for filtering out candidate responses containing risky expressions, a standard 454 for maintaining consistency of position, a standard 455 for maintaining consistency of viewpoints, a standard 456 for following viewpoints, a standard 457 for ensuring freshness, a standard 458 for filtering out duplications, etc.

[0059] In the criterion 451 for filtering out context-dependent candidate responses, the filter 450 can detect whether the set of candidate responses includes context-dependent candidate responses, and filter out these context-dependent candidate responses from the set of candidate responses, thereby preventing the final response from being semantically incomplete.

[0060] In the criteria 452 for filtering out candidate responses containing advertisements, the filter 450 can detect whether the set of candidate responses includes candidate responses that intend to publish advertisements, and filter out these candidate responses containing advertisements from the set of candidate responses. Whether a candidate response is a candidate response containing advertisements can be determined in a manner similar to the above-mentioned detection 424 of messages containing advertisements.

[0061] In the criteria 453 for filtering out candidate responses containing risky statements, the filtering 450 may detect whether the set of candidate responses includes candidate responses containing risky statements, and filter out the candidate responses containing risky statements from the set of candidate responses. Whether a candidate response is a candidate response containing risky statements may be determined in a manner similar to the above-mentioned detection 426 of messages containing risky statements.

[0062] In the standard 454 for maintaining consistency of position, the filter 450 can filter out the candidate responses with positions inconsistent with the predetermined position of the chat robot from the set of candidate responses, and retain the candidate responses with the predetermined position. The predetermined position can be a preference, support, etc. of a specific entity involved in the event set in advance for the chat robot. For example, before participating in a conversation about a football game, the predetermined position of the chat robot can be set to support or like a team or a player participating in the game. The filter 450 can first determine the position of each candidate response in the set of candidate responses on the specific entity. In one embodiment, the position of a candidate response can be determined by keyword or pattern matching. Keyword or pattern matching is intended to identify candidate responses that violate the predetermined position. A set of keywords can be collected in advance, which express negative views on specific entities. For example, assuming that the predetermined position is to support the player "Maradona", the word "Hand of God" containing a contemptuous meaning of Maradona can be listed as a keyword. If the keyword "Hand of God" for the entity Maradona appears in a candidate response, it can be considered that the candidate response has a position inconsistent with the predetermined position. A set of expression patterns can be collected in advance, and these expression patterns express negative views on a specific entity. For example, the pattern "<entity> is difficult to win the game" expresses a negative view on the <entity>. Assuming that the predetermined position is to support team A, and the candidate response is "Team A is difficult to win the game", it can be determined that the candidate response containing entity A matches the above pattern "<entity> is difficult to win the game", thereby having a position inconsistent with the predetermined position. In another embodiment, the position of a candidate response for a specific entity can be determined by a pre-trained position classifier. The position classifier can adopt various models, such as a BERT-based model. Chat data from the domain associated with a specific entity can be collected in advance, and these data can be organized into the form of <specific entity, comment>, and each piece of data is annotated with a negative mark, a neutral mark, or a positive mark indicating the position of the comment on the specific entity. The annotated data is used as training data to train the position classifier. The trained position classifier can score the support degree of a candidate response for a specific entity, and the score reflects the negative position, neutral position, and positive position of the candidate response for the specific entity. In one case, if a candidate response contains two or more entities, the stance classifier can be trained to score the support level of each entity in the candidate response separately, and take the entity corresponding to the highest score as the entity actually supported by the candidate response.

[0063] In the criterion 455 for maintaining consistency of opinions, the filter 450 can filter out candidate responses having opinions inconsistent with the chatbot's previous opinions on a specific fact from the set of candidate responses, and retain candidate responses having the previous opinions. For example, if the chatbot's previous opinion expressed in the previous response to the fact "Player N received a yellow card" is "Player N should be shown a red card", the filter 450 can retain the candidate responses in the set of candidate responses that still hold the previous opinion. In one embodiment, a pre-trained opinion classifier can be used to determine whether a candidate response has a previous opinion on a specific fact. The opinion classifier can use various models, such as a BERT-based model. Chat data from a domain associated with a specific entity can be collected in advance, and these data can be organized into the form of <specific fact, comment 1, comment 2>, and each piece of data is annotated with a contradictory mark or a non-contradictory mark indicating whether comment 1 and comment 2 have the same opinion on the specific fact. The annotated data is used as training data to train the opinion classifier. The trained opinion classifier can determine whether a candidate response has the same opinion as the previous response. For example, a candidate response can be provided to an opinion classifier along with a previous response, and the opinion classifier can determine whether the opinions of the two responses are contradictory.

[0064] In the criteria 456 regarding opinion following, filtering 450 can determine the common or mainstream opinion of other participants in the conversation on a specific fact, filter out candidate responses with opinions inconsistent with the common opinion on the specific fact from the set of candidate responses, and retain candidate responses with the common opinion. For example, if for the fact "Player N received a yellow card", most other participants expressed the opinion "Player N should be shown a red card" in the message, then filtering 450 can retain candidate responses in the set of candidate responses that also hold the common opinion. In one embodiment, the opinion classifier discussed above can be used in a similar manner to determine whether a candidate response has a common opinion. For example, the candidate response and one or more messages holding a common opinion can be provided to the opinion classifier, and the opinion classifier can determine whether the candidate response has the same opinion as these messages.

[0065] In the criteria 457 for ensuring freshness, the filter 450 can obtain the latest context information 459 about a specific entity in the current event, and retain the candidate responses in the set of candidate responses that meet the latest context information 459 of the specific entity. Figure 1The latest context information 459 about a specific entity is obtained from the domain information source 130 shown, for example, the latest transfer information about player M, etc. The time point of the latest context information 459 can be determined, and the candidate responses about the specific entity with a time stamp later than the time point in the set of candidate responses are retained. Taking the event about the football match between team A and team B as an example, if it is known that player N has transferred from team C to team B 7 days before the match, the candidate responses about the player N with a time stamp within 7 days in the set of candidate responses can be retained, and the candidate responses with a time stamp before 7 days that may be related to the performance of player N in team C can be filtered out.

[0066] In the criterion 458 for filtering out duplicates, the filter 450 can detect whether the set of candidate responses includes candidate responses that have been provided previously in the conversation, and filter out these provided candidate responses from the set of candidate responses. For example, if one of the candidate responses in the set of candidate responses has been provided to other participants as a response by the chatbot in the previous chat, the filter 450 can filter out the candidate response to avoid the situation where the candidate response is selected as the final response again and provided in the conversation. By using the criterion 458 for filtering out duplicates, the chatbot can be prevented from saying repeated words in the conversation.

[0067] In process 400, after filtering 450 is performed, a response to message 410 can be selected from the filtered set of candidate responses. In one embodiment, the filtered set of candidate responses can be sorted at 460. Sorting 460 can be performed by a sorting model. The sorting model can be based on, for example, BERT. The sorting model can be trained to sort a set of candidate responses based on the relevance to the message given a message. Optionally, in order to enhance the sorting performance of the sorting model under a specific domain, the corpus in the domain associated with the current event can be used to optimize the sorting model. For example, the message and response data in the domain are selected as the optimization training data to optimize the sorting model.

[0068] After ranking 460, process 400 may select the highest ranked candidate response as the final response 470 to provide in the session.

[0069] It should be understood that Figure 4All operations shown in process 400 are exemplary, and operations in process 400 may be added, deleted, replaced, reordered, etc., depending on specific application requirements. For example, message understanding 420 and / or message processing 430 may also be omitted from process 400. For example, one or more of the various predetermined criteria discussed above in conjunction with filtering 450 may also be omitted from process 400. For example, before providing response 470, response frequency control for controlling the frequency at which the chatbot posts responses in a conversation may also be performed to avoid the chatbot posting too many responses in the conversation. In addition, process 400 may be continuously executed in a loop as new messages are detected during the conversation, so that, for each detected message, the chatbot may determine through process 400 whether to reply and then generate a response.

[0070] Figure 5 An exemplary conversation window 500 according to an embodiment is shown. Conversation window 500 shows a conversation about a football match between team A and team B. The conversation may be located in a live chat room on a football broadcast service platform, for example. A chatbot may chat with multiple other participants in the conversation.

[0071] When the host sends a message "The game continues, the score is still 1:0", the chatbot can use the message as real-time information and generate corresponding real-time event content "Team A is still leading 1:0, come on!". The chatbot can provide the real-time event content as a real-time report in the conversation. In addition, the real-time event content also indicates that the chatbot's predetermined position is <supporting team A>.

[0072] In response to the message sent by user 2, "There is a huge gap in strength. Team A's attack is very sharp!", the chatbot can retrieve professional comments from the event data index set and provide them as a response to the message, such as "Team A's attack is very distinctive and fast..."

[0073] Since the message "Does anyone want to eat fried chicken?" sent by user 3 and the message "Fried chicken with beer, so cool!" sent by user 4 are pure chats unrelated to the chatbot, the chatbot does not need to respond to these two messages.

[0074] When user 1 sends a message "Player M performed very well", the chatbot can provide a response "Player M is the soul of team A, a superstar" through the domain-based chat mechanism. The response also indicates the chatbot's opinion on the performance of player M on the field, such as <Player M performed well>.

[0075] When the chatbot learns from the real-time updated match database that player N of team B has just fouled player M of team A and received a yellow card, the chatbot can provide corresponding real-time reports in the conversation, such as "Oh my God! Player M was fouled maliciously and player N of team B received a yellow card."

[0076] Then, the messages from User 3, User 2, and User 1 all express a consensus view on this foul, that is, a red card should be shown to Player N. The chatbot can determine that it follows this common view and provide a response “The referee should indeed show a red card.”

[0077] When user 5 sent a message "Guess if player M can still score goals?", the chatbot can provide a response "Of course! The superstar will definitely score goals again. Although player M just returned to the game from injury this month, he has recovered very well" through the domain-based chat mechanism. This response shows that the chatbot's opinion on player M's performance is <Player M performed well>, which is consistent with the chatbot's opinion on player M in the previous response. In addition, the chatbot may have obtained the latest background information about player M. For example, player M was unable to participate in any games due to injury before this month, and started to participate in the game again at the beginning of this month. Therefore, the chatbot may choose to provide a response about player M with a time stamp of "this month", such as "Although player M just returned to the game from injury this month, he has recovered very well", in order to keep the response fresh.

[0078] After user 6 sends the message “Team B still has a chance”, the chatbot may provide a response “Impossible! Team A will win.” This response has a stance consistent with the chatbot's predetermined stance <support Team A>.

[0079] When user 6 asks the chatbot "Are you a man or a woman?", it can be determined that the message is a pure chat message related to the chatbot, and the chatbot can generate a response "I am a beautiful girl" through a pure chat mechanism.

[0080] It should be understood that Figure 5 All units, layouts, and utterances in the conversation window 500 shown in FIG. 5 are exemplary. According to specific application scenarios and application requirements, these units, layouts, and utterances may be changed in various ways.

[0081] Figure 6 An exemplary conversation window 600 according to an embodiment is shown. The conversation window 600 shows a conversation about a football match between team C and team D. The conversation may be located in a live chat room on a football broadcast service platform, for example. Two exemplary chatbots are included in the conversation. The two chatbots may have different positions or viewpoints.

[0082] The chatbot 1 may provide a response “Team C will definitely score first, come on!”, which indicates that the chatbot 1's position is <supporting team C>.

[0083] Chatbot 2 can respond to chatbot 1, for example, "Wrong! Team D must score first. Team D must win!" This response indicates that the position of chatbot 2 is <supporting team D>, which is opposite to the position of chatbot 1.

[0084] Afterwards, chatbot 1 and chatbot 2 can continue chatting based on their respective positions.

[0085] Through the chat between the two chatbots with opposing positions, the attention of other participants can be attracted and the discussion can be guided. As shown in the figure, user 3, user 4 and user 5 continue to discuss the topic of "who scored first".

[0086] It should be understood that Figure 6 All units, layouts, and utterances in the conversation window 600 shown in FIG. 6 are exemplary. According to specific application scenarios and application requirements, these units, layouts, and utterances may be changed in various ways.

[0087] Figure 7 A flow chart of an exemplary method 700 for providing a response in a conversation about an event according to an embodiment is shown. The event is associated with a predefined domain, and the conversation includes an electronic dialogue agent and at least one participant.

[0088] At 710, at least one message from the at least one participant can be detected.

[0089] At 720, a set of candidate responses may be retrieved from an index set based on the domain based on the at least one message.

[0090] At 730, the set of candidate responses may be refined by filtering the set of candidate responses according to predetermined criteria.

[0091] At 740, a response to the at least one message can be selected from the filtered set of candidate responses.

[0092] At 750, the selected response can be provided in the session.

[0093] In one embodiment, the filtering may include: determining the stance of each candidate response in the set of candidate responses towards the entity in the event; and retaining candidate responses in the set of candidate responses that have a predetermined stance towards the entity, the predetermined stance being pre-set for the electronic dialogue agent. The stance of each candidate response towards the entity may be determined by at least one of: keyword or pattern matching; and a pre-trained stance classifier.

[0094] In one embodiment, the filtering may include: determining the view of each candidate response in the set of candidate responses on the fact in the event; and retaining the candidate responses in the set of candidate responses that have the same view as a previous view on the fact.

[0095] In one embodiment, the filtering may include: determining the viewpoint of the at least one message on the fact in the event; and retaining the candidate responses having the viewpoint on the fact in the set of candidate responses.

[0096] In one embodiment, the filtering may include: obtaining the latest context information about the entity in the event; determining a time point of the latest context information; and retaining candidate responses about the entity in the set of candidate responses that have a time stamp later than the time point.

[0097] In one embodiment, the filtering may include filtering out at least one of the following from the set of candidate responses: candidate responses containing advertisements; candidate responses containing risky statements; and candidate responses that are context-dependent.

[0098] In one embodiment, the method 700 may further include filtering out at least one of the following from the at least one message: a message containing an advertisement; a message containing a risky expression; and a pure chat message unrelated to the electronic dialogue agent.

[0099] In one embodiment, the retrieving may include: identifying an entity included in the at least one message; and retrieving the set of candidate responses including the entity from the index set. The identifying may include: identifying the entity from the at least one message by matching with a knowledge graph.

[0100] In one implementation, the index set may include at least one of the following: an index set established based on corpus in the domain; and an index set established based on corpus in the domain and related to the event.

[0101] In one embodiment, the selecting may include: ranking the filtered set of candidate responses; and selecting the highest ranked candidate response as the response to the at least one message. The ranking may include: ranking the filtered set of candidate responses by a ranking model, wherein the ranking model is optimized using at least corpus in the domain.

[0102] In one embodiment, method 700 may further include: obtaining real-time information about the event; generating real-time event content according to the real-time information; and providing the real-time event content in the session. The real-time information may be obtained from at least one of the following: an event database updated in real time; and a real-time message provided by one of the at least one participant in the session.

[0103] In one embodiment, the at least one participant may include at least one other electronic dialogue agent. The at least one other electronic dialogue agent and the electronic dialogue agent may have the same or different stance on the entity in the event and / or the same or different viewpoint on the facts in the event.

[0104] It should be understood that method 700 may also include any steps / processes for providing a response in a conversation about an event according to the above-mentioned embodiments of the present disclosure.

[0105] Figure 8 An exemplary apparatus 800 for providing a response in a conversation about an event according to an embodiment is shown. The event is associated with a predefined domain, and the conversation includes an electronic dialogue agent and at least one participant.

[0106] The apparatus 800 may include: a message detection module 810 for detecting at least one message from the at least one participant; a retrieval module 820 for retrieving a set of candidate responses from an index set based on the domain according to the at least one message; a filtering module 830 for optimizing the set of candidate responses by filtering the set of candidate responses according to predetermined criteria; a selection module 840 for selecting a response to the at least one message from the filtered set of candidate responses; and a response providing module 850 for providing the selected response in the session.

[0107] In one embodiment, the device 800 may also include: a real-time information acquisition module, used to obtain real-time information about the event; an event content generation module, used to generate real-time event content based on the real-time information; and an event content providing module, used to provide the real-time event content in the session.

[0108] In addition, the apparatus 800 may further include any other modules configured to provide a response in a conversation about an event according to the above-mentioned embodiments of the present disclosure.

[0109] Fig. 9 An exemplary apparatus 900 for providing a response in a conversation about an event according to an embodiment is shown. The event is associated with a predefined domain, and the conversation includes an electronic dialogue agent and at least one participant.

[0110] The apparatus 900 may include at least one processor 910 and a memory 920 storing computer executable instructions. When executing the computer executable instructions, the processor 910 may: detect at least one message from the at least one participant; retrieve a set of candidate responses from the index set based on the domain according to the at least one message; optimize the set of candidate responses by filtering the set of candidate responses according to a predetermined criterion; select a response to the at least one message from the filtered set of candidate responses; and provide the selected response in the conversation. In addition, the processor 910 may also perform any steps / processes for providing a response in a conversation about an event according to the above-mentioned embodiments of the present disclosure.

[0111] The embodiments of the present disclosure may be implemented in a non-transitory computer-readable medium. The non-transitory computer-readable medium may include instructions, which, when executed, cause one or more processors to perform any operation of the method for providing a response in a conversation about an event according to the above-mentioned embodiments of the present disclosure.

[0112] It should be understood that all operations in the method described above are merely exemplary, and the present disclosure is not limited to any operation in the method or the order of these operations, but should cover all other equivalent transformations under the same or similar concept.

[0113] It should also be understood that all modules in the above described device can be implemented in various ways. These modules can be implemented as hardware, software, or a combination thereof. In addition, any module in these modules can be further divided into submodules or combined together functionally.

[0114] Processors have been described in conjunction with various devices and methods. These processors can be implemented using electronic hardware, computer software or any combination thereof. Whether these processors are implemented as hardware or software will depend on specific application and the overall design constraints imposed on the system. As an example, the processor provided in the present disclosure, any part of the processor or any combination of processors can be implemented as a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic device (PLD), a state machine, a gate logic, a discrete hardware circuit, and other suitable processing components configured to perform the various functions described in the present disclosure. The function of the processor provided in the present disclosure, any part of the processor or any combination of processors can be implemented as software performed by a microprocessor, a microcontroller, a DSP or other suitable platforms.

[0115] Software should be broadly considered to represent instructions, instruction sets, codes, code segments, program codes, programs, subroutines, software modules, applications, software applications, software packages, routines, subroutines, objects, running threads, processes, functions, etc. Software can reside in a computer-readable medium. A computer-readable medium can include, for example, a memory, which can be, for example, a magnetic storage device (e.g., a hard disk, a floppy disk, a magnetic stripe), an optical disk, a smart card, a flash memory device, a random access memory (RAM), a read-only memory (ROM), a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), a register, or a removable disk. Although the memory is shown as being separated from the processor in the various aspects provided in the present disclosure, the memory can also be located inside the processor (e.g., a cache or a register).

[0116] The above description is provided to enable any person skilled in the art to implement the various aspects described herein. Various modifications to these aspects are apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein. All structural and functional equivalents of the elements of the various aspects described in this disclosure that are known or to be known to those skilled in the art will be covered by the claims.

Claims

1. A method for providing a response in a conversation about an event, the event being associated with a predefined domain, the conversation comprising an electronic dialogue agent and at least one participant, the method comprising: detecting at least one message from the at least one participant; According to the at least one message, a set of candidate responses is retrieved from an index set based on the domain by matching the at least one message with index items in the index set, wherein the index set includes at least one of the following: an index set established based on corpus in the domain, and an index set established based on corpus in the domain and related to the event; filtering the set of candidate responses according to a predetermined criterion to obtain a filtered set of candidate responses; selecting a response to the at least one message from the filtered set of candidate responses; and providing the selected response in said session, The filtering includes at least one of the following: Determining the stance of each candidate response in the set of candidate responses toward the entity in the event, and retaining candidate responses in the set of candidate responses that have a predetermined stance toward the entity, the predetermined stance being pre-set for the electronic dialogue agent; determining a view of each candidate response in the set of candidate responses on a fact in the event, and retaining candidate responses in the set of candidate responses that have the same view as a previous view on the fact; determining a view of the at least one message on a fact in the event, and retaining candidate responses from the set of candidate responses that have the view on the fact; The latest context information about the entity in the event is obtained, a time point of the latest context information is determined, and candidate responses about the entity in the set of candidate responses that have a time stamp later than the time point are retained.

2. The method of claim 1, wherein: The stance of each candidate response to the entity is determined by at least one of: keyword or pattern matching; and a pre-trained stance classifier.

3. The method of claim 1, wherein: The filtering includes: At least one of the following is filtered out from the set of candidate responses: candidate responses containing advertisements; candidate responses containing risky statements; context-dependent candidate responses; and candidate responses that have been previously provided in the session.

4. The method of claim 1, further comprising: At least one of the following is filtered out from the at least one message: a message containing an advertisement; a message containing a risky expression; and a pure chat message unrelated to the electronic dialogue agent.

5. The method of claim 1, wherein: The search includes: identifying an entity included in the at least one message; and The set of candidate responses containing the entity or an extension of the entity are retrieved from the index set.

6. The method of claim 5, wherein: The identification includes: The entity is identified from the at least one message by matching with a knowledge graph.

7. The method of claim 1, wherein: The options include: ranking the filtered set of candidate responses; and A highest ranked candidate response is selected as the response to the at least one message.

8. The method of claim 7, wherein: The sorting includes: The filtered set of candidate responses is ranked using a ranking model, wherein the ranking model is optimized using at least corpus in the domain.

9. The method of claim 1, further comprising: obtaining real-time information about said incident; generating real-time event content according to the real-time information; as well as The real-time event content is provided in the session.

10. The method of claim 9, wherein: The real-time information is obtained from at least one of the following: An incident database updated in real time; and A real-time message provided by one of the at least one participant in the conversation.

11. The method of claim 1, wherein: The at least one participant includes at least one other electronic dialogue agent.

12. The method of claim 11, wherein: The at least one other electronic dialogue agent has the same or different stance on entities in the event and / or has the same or different view on facts in the event as the electronic dialogue agent.

13. An apparatus for providing a response in a conversation about an event, the event being associated with a predefined domain, the conversation comprising an electronic dialogue agent and at least one participant, the apparatus comprising: a message detection module, configured to detect at least one message from the at least one participant; a retrieval module, configured to retrieve a set of candidate responses from an index set based on the domain by matching the at least one message with index items in the index set according to the at least one message, wherein the index set includes at least one of the following: an index set established based on corpus in the domain, and an index set established based on corpus in the domain and related to the event; A filtering module, configured to filter the set of candidate responses according to a predetermined criterion to obtain a filtered set of candidate responses; a selection module for selecting a response to the at least one message from the filtered set of candidate responses; and a response providing module, for providing the selected response in the session, The filtering includes at least one of the following: Determining the stance of each candidate response in the set of candidate responses toward the entity in the event, and retaining candidate responses in the set of candidate responses that have a predetermined stance toward the entity, the predetermined stance being pre-set for the electronic dialogue agent; determining a view of each candidate response in the set of candidate responses on a fact in the event, and retaining candidate responses in the set of candidate responses that have the same view as a previous view on the fact; determining a view of the at least one message on a fact in the event, and retaining candidate responses from the set of candidate responses that have the view on the fact; The latest context information about the entity in the event is obtained, a time point of the latest context information is determined, and candidate responses about the entity in the set of candidate responses that have a time stamp later than the time point are retained.

14. The apparatus of claim 13, further comprising: A real-time information acquisition module, used to obtain real-time information about the event; An event content generation module, used to generate real-time event content according to the real-time information; as well as The event content providing module is used to provide the real-time event content in the session.

15. An apparatus for providing a response in a conversation about an event, the event being associated with a predefined domain, the conversation comprising an electronic dialogue agent and at least one participant, the apparatus comprising: one or more processors; as well as a memory storing computer executable instructions that, when executed, cause the one or more processors to: detecting at least one message from said at least one participant, According to the at least one message, a set of candidate responses is retrieved from an index set based on the domain by matching the at least one message with index items in the index set, wherein the index set includes at least one of: an index set established based on corpus in the domain, and an index set established based on corpus in the domain and related to the event, filtering the set of candidate responses according to a predetermined criterion to obtain a filtered set of candidate responses, selecting a response to the at least one message from the filtered set of candidate responses, and providing the selected response in said session, The filtering includes at least one of the following: Determining the stance of each candidate response in the set of candidate responses toward the entity in the event, and retaining candidate responses in the set of candidate responses that have a predetermined stance toward the entity, the predetermined stance being pre-set for the electronic dialogue agent; determining a view of each candidate response in the set of candidate responses on a fact in the event, and retaining candidate responses in the set of candidate responses that have the same view as a previous view on the fact; determining a view of the at least one message on a fact in the event, and retaining candidate responses from the set of candidate responses that have the view on the fact; The latest context information about the entity in the event is obtained, a time point of the latest context information is determined, and candidate responses about the entity in the set of candidate responses that have a time stamp later than the time point are retained.

Citation Information

Patent Citations

  • Multi-chat-robot switching system and dialogue method thereof

    CN107135143A