CN109313638B - Application recommendation - Google Patents

Application recommendation Download PDF

Info

Publication number
CN109313638B
CN109313638B CN201780031432.0A CN201780031432A CN109313638B CN 109313638 B CN109313638 B CN 109313638B CN 201780031432 A CN201780031432 A CN 201780031432A CN 109313638 B CN109313638 B CN 109313638B
Authority
CN
China
Prior art keywords
application
user
query
response
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780031432.0A
Other languages
Chinese (zh)
Other versions
CN109313638A (en
Inventor
吴先超
藤原敬三
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109313638A publication Critical patent/CN109313638A/en
Application granted granted Critical
Publication of CN109313638B publication Critical patent/CN109313638B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/243Natural language query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0282Rating or review of business operators or products

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Mathematical Physics (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computational Linguistics (AREA)
  • Game Theory and Decision Science (AREA)
  • Artificial Intelligence (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present disclosure provides a method for application recommendation based on a matching rate between a query and an application associated with a chat robot. The present disclosure also provides a method of collecting information from network data and user data, wherein the user data includes user chat log data and user-application usage data. This information collection facilitates application recommendation on the one hand and provides information for application development on the other hand.

Description

Application recommendation
Background
Artificial Intelligence (AI) conversation chat programs are becoming increasingly popular. Through a conversational chat program, otherwise known as a "chat bot," a user may converse with a virtual entity. In some cases, applications such as gaming applications, theme related applications, etc. may be activated during a conversation between a user and a chat bot. With the release of more and more applications for intelligent automated chat scenarios, a large number of applications attached to chat robots will appear.
Disclosure of Invention
The following presents a simplified summary in order to introduce a selection of concepts that are further described below in the 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.
Embodiments of the present disclosure provide a method for application recommendation through intelligent automated chat. A query is received in a conversation. And scoring the matching rate between the query and the application. Based on the match rate, the query is identified as matching a first application of the applications. Recommending the first application in the dialogue.
Embodiments of the present disclosure provide a method for collecting information. A plurality of user clusters are generated based on user data associated with a service, wherein a user cluster includes a set of users and a set of keywords, and one keyword in the user cluster is appended with one or more sentence-level descriptions. The plurality of user clusters is stored in a database.
It is to be understood that one or more of the aspects described above includes features that are fully described below and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative features of the one or more aspects. These features are indicative of but a few of the various ways in which the principles of various aspects may be employed and the present disclosure is intended to include all such aspects and their equivalents.
Drawings
The various aspects disclosed are described below in connection with the accompanying drawings, which are intended to illustrate and not limit the various aspects disclosed.
FIG. 1 illustrates an exemplary environment in which the described techniques can be implemented, according to one embodiment.
FIG. 2 illustrates an exemplary system for applying chat robots, according to one embodiment.
FIG. 3 illustrates an exemplary User Interface (UI) according to one embodiment.
Fig. 4 illustrates an exemplary conversation between a chat robot and a user, in accordance with an embodiment.
FIG. 5 illustrates a flowchart of an exemplary process for application recommendation, according to one embodiment.
FIG. 6 illustrates an exemplary user-application usage database, according to one embodiment.
FIG. 7 illustrates an example of information collection from user data according to one embodiment.
Fig. 8 illustrates an example of collecting information from network data according to one embodiment.
FIG. 9 illustrates an exemplary linking of user data and network data according to one embodiment.
FIG. 10 illustrates a flowchart of an exemplary process for updating an application, according to one embodiment.
FIG. 11 illustrates a flowchart of an exemplary process for updating keywords of an application, according to one embodiment.
FIG. 12 illustrates a flowchart of an exemplary process for application recommendation, according to one embodiment.
FIG. 13 illustrates a flowchart of an exemplary process for collecting information, according to one embodiment.
FIG. 14 illustrates an exemplary apparatus for application recommendation, according to one embodiment.
FIG. 15 illustrates an exemplary apparatus for collecting information according to one embodiment.
FIG. 16 illustrates an exemplary computing system according to one embodiment.
Detailed Description
The disclosure will be elucidated below in connection with several exemplary embodiments. It should be understood that these embodiments are set forth merely to provide a better understanding of those skilled in the art and to thereby enable embodiments of the disclosure, and are not intended to represent any limitation on the scope of the disclosure.
FIG. 1 illustrates an exemplary environment in which the described techniques can be implemented, according to one embodiment.
In the exemplary environment 100, a network 110 is used to interconnect terminal devices 120, application servers 130, and chat bot servers 140.
The network 110 may be any type of network capable of interconnecting network entities together. The network 110 may be a single network or a combination of networks. Network 110 may be a Local Area Network (LAN), wide Area Network (WAN), etc. in terms of coverage. From a carrier medium perspective, the network 110 may be a wired network, a wireless network, or the like. From a data switching technology perspective, the network 110 may be a circuit switched network, a packet switched network, or the like.
Terminal device 120 may be any type of computing device capable of connecting to network 110, accessing a server or website through network 110, processing data or signals, and the like. For example, the terminal device 120 may be a desktop computer, a laptop computer, a tablet computer, a smart phone, or the like. Although only one terminal device 120 is shown in fig. 1, it should be understood that a different number of terminal devices may be connected to the network 110.
Terminal device 120 includes chat bot client 122 that can provide chat services for users. In some implementations, chat robot client 122 at terminal device 120 may be a stand-alone client application corresponding to the chat robot service provided by chat robot server 140. In other implementations, chat bot client 122 at terminal device 120 may be implemented in a third party application, such as a third party Instant Messaging (IM) application. For example, the third party IM application includes an MSN TM 、ICQ TM 、SKYPE TM 、QQ TM 、WeChat TM Etc.
Chat bot client 122 communicates with chat bot server 140. For example, chat bot client 122 sends a message entered by a user to chat bot server 140 and receives a response associated with the message from chat bot server 140. Chat robot client 122 and chat robot server 140 may be collectively referred to as a chat robot. Since the conversation between the user and the chat bot is typically performed in a query-response manner, the messages entered by the user are often referred to as queries and the responses output by the chat bot are often referred to as responses. The query-response pairs are recorded as user log data. It should be appreciated that in some implementations, chat bot client 122 may also generate a response to a query entered by a user locally without interacting with chat bot server 140.
The application 124 is activated during a conversation between the chat bot and the user. For example, the application 124 may be associated with a trigger word. When the user wants to launch the application 124 during a conversation, the user enters a trigger word. After receiving the trigger word, the chat bot activates the application during the conversation.
In some implementations, the application 124 may be implemented at an application server 130, and the application server 130 may be a third party application server. For example, while the application 124 is active during a conversation, queries from the user are sent to the application server 130 via the chat bot, and responses from the application server 130 are sent to the user via the chat bot. In some other implementations, the application 124 can be implemented at the chat bot server 140, in which case the application module 142 can be implemented at the chat bot server 140. Applications provided by chat bot service providers and/or applications provided by third party application providers may be implemented at application module 142. Chat bots may invoke applications at application module 142 to activate the applications during a conversation.
It should be appreciated that the applications 124 associated with chat bot services may also be referred to as names of features, functions, applets, and the like, that serve to meet the user's relatively independent needs during a machine conversation with the user.
It should be appreciated that all network entities shown in fig. 1 are exemplary and that any other network entity may be included in environment 100 depending on the particular application requirements.
Fig. 2 illustrates an exemplary chat robot system in accordance with an embodiment.
The system 200 includes a User Interface (UI) 210.UI 210 may be implemented at chat bot client 122, which provides a chat window for interaction between a user and the chat bot.
Fig. 3 shows an example of UI 210. Chat window 320 is displayed on computing device 300. Chat window 320 includes presentation area 322, control area 324, and input area 326. Presentation area 322 presents queries and responses in the conversation between the user and the chat bot, represented by icon 310. The control area 324 includes a plurality of virtual buttons for a user to perform message input settings. For example, through the control area 324, the user may make voice inputs, attach image files, select emoticons, create shortcuts for the current screen, and so forth. The input area 326 is used for a user to input a message. For example, the user may enter text through input area 326. The control area 324 and the input area 326 may be collectively referred to as an input unit. The user can also conduct a voice call or a video conversation with the AI chat robot through the input unit.
For example, in the UI shown in fig. 3, the user inputs the message "smart, how big you are" as a query, and the chat robot outputs the message "senior citizen" as a response. Similarly, the user inputs the message "do you eat breakfast" as a query and the chat robot outputs the message "do you eat you woolen" as a response. Here, the smart is a name of an AI chat robot, which may also be called an AI chat system.
Queries from users are transferred to a query queue 232, the query queue 232 temporarily storing queries from users. The user's query may be in various forms including text, sound, images, video, and the like.
The core processing module 220 takes as its input the message or query in the query queue 232. In some implementations, queries in the queue 232 may be processed or responded to in a first-in, first-out manner.
The core processing module 220 invokes processing elements in an Application Program Interface (API) module 250 to process messages of various forms. The API module 250 includes a text processing unit 252, a voice processing unit 254, an image processing unit 256, and the like.
For text messages, text processing unit 252 performs text understanding on the text message, and core processing module 220 further determines a text response.
For voice messages, voice processing unit 254 performs voice-to-text conversion on the voice message to obtain text, text processing unit 252 performs text understanding on the obtained text, and core processing module 220 further determines a text response. If it is determined that the response is to be provided in the form of speech, the speech processing unit 254 performs text-to-speech conversion on the text response to generate a corresponding speech response.
For image messages, image processing unit 256 performs image recognition on the image message to generate corresponding text, and core processing module 220 further determines a text response. For example, upon receiving an image of a dog from a user, the AI chat system may determine the dog's category and color and further give several comments, such as "how lovely German shepherd-! You must like it very much. In some cases, the image processing unit 256 may also be used to obtain an image response based on the text response.
Furthermore, although not shown in fig. 2, the API module 250 may include any other processing unit. For example, the API module 250 may include a video processing unit for cooperating with the core processing module 220 to process video messages and determine responses. For another example, the API module 250 may include a location-based processing unit for supporting location-based services.
The application recommendation module 280 in the system 200 determines whether to recommend an application to a user in response to a query from the user. Taking the example of a "smart, how much you are" query, the application recommendation module 280 may determine that the user has no intent to activate the application, but only wants to chat with the chat robot.
Subsequently, the core processing module 220 determines a response via the index database 260. Index database 260 includes a plurality of index entries that may be retrieved by core processing module 220 in response. These index entries in index database 260 may be categorized into question-answer pair index set 262 and pure chat index set 264. The index items in the question-answer pair index set 262 are in the form of question-answer pairs, and the question-answer pair index set 262 includes question-answer pairs associated with an application, such as the application 124. The index items in the pure chat index set 264 are prepared for boring between the user and the chat bot and may or may not be in the form of question-answer pairs. It should be appreciated that this term of question-answer pair may also be referred to as a query-answer pair or any other suitable term. Taking "smart, how much you are," for example, the core processing module 220 can determine the response "senior high school secondary" through a set of pure chat indices.
The response determined by the core processing module 220 is provided to a response queue or response cache 234. The responses in the response queue or response cache 234 are further communicated to the user interface 210 so that the responses may be presented to the user in the correct order.
The user database 270 in the system 200 is used to record user data that appears in the conversation between the user and the chat bot. The user database 270 includes a user log database 272 and a user-application usage database 274.
The user log database 272 is used to record messages that occur in conversations between the user and the chat bot. For example, user log database 272 may be used to record user log data for pure chat. As another example, user log database 272 may be used to record not only user log data for pure chat, but also user log data that occurs during application activity. The user log data may be in the form of query-response pairs, or in any other suitable form.
The user-application usage database 274 is used to store usage information for each user of an application associated with the chat bot or AI chat service. The user-application usage data in database 274 provides information to application recommendation module 280 to determine how to respond to a user's query and whether to recommend applications in response to the user's query.
Fig. 4 illustrates an exemplary chat flow between a user and a chat bot in accordance with an embodiment.
During the flow of chat or conversation, the chat bot receives a query "connect" from the user. The chat robot, and in particular the application recommendation module 280, identifies that the query matches an application and also identifies applications that are not currently active in the conversation. Then, the tapping application is activated and the chat robot outputs a response requesting that the user select a normal mode or a difficult mode for the tapping application. It will be appreciated that appropriate modifications may be made to this process. For example, even in the case where there is no currently active application in the conversation, the chat bot may output a message asking the user if he wants to activate the tab application, instead of directly activating the tab application. Direct activation of an application or outputting of an inquiry message are examples of application recommendation processes performed by chat robots.
When the user enters the query "normal," the application recommendation module 280 sends the query to the currently active nylon application, and the conversation proceeds. The user and the chat robot/game application sequentially input "like", "keep", "epode", "decoder", "error", and "orange" during the game play.
The chat robot receives a query from the user "i often meet that girl in the vicinity". The chat robot (specifically, the application recommendation module 280) identifies that the query matches an application and identifies applications that are currently active in the conversation. The chat robot output responds to the application recommending the match, i.e. "is you to make a' love diagnosis? ".
When an affirmative response is received, the chat robot switches from the currently active application "connect" to the recommended application "love diagnosis". The emotion analysis module is used for making positive, negative or neutral judgment on the inquiry of the user based on the input of the natural language mode of the user. In some implementations, the chat robot terminates the currently active application, i.e. "we have played 3 rounds of the dragon. The next time see bar-! ", and activates the matched application as shown in fig. 4. In some other implementations, the chat robot pauses the currently active application while the newly matched application is in an active state, and resumes the paused application when the newly matched application ends.
FIG. 5 illustrates an exemplary process for application recommendation, according to one embodiment.
The flow 500 begins at 502. At 502, the chat bot receives a query from a user. The query may also be received from an entity such as an intelligent system or intelligent robot. For example, as shown in FIG. 4, the query may be "connect" or any message entered by the user, such as "normal," "like," "I often see that girl in the vicinity," and so forth.
At 504, the chat robot (and specifically, the application recommendation module 280) scores a match rate between the query and an application associated with the chat robot. The rate of matching between a query and an application may also be referred to as the similarity between the query and the application. The terms match rate and similarity are used interchangeably herein.
In some implementations, the application recommendation module 280 is implemented as a machine learning module that is trained using user queries, trigger data for applications, user usage data for applications, and optionally other suitable data.
For a set of applications 524 associated with the chat bot, each application has a set of keywords that are examples of trigger data. In some implementations, as indicated by the arrows from blocks 524 and 522, the application recommendation module 280 calculates the similarity score based on the query, the trigger data for the application, and the user-application usage data stored in the user-application usage database 274.
At 506, the application recommendation module 280 identifies whether the query matches one of the applications based on the score.
In some implementations, a threshold may be set for an application, and when the similarity score for the application is above the threshold, a match determination is made. On the other hand, when the similarity score of the application is below the threshold, a mismatch determination is made.
In some implementations, if more than one matching application is identified, the application recommendation module 280 selects the application with the highest score for recommendation.
In some implementations, the threshold of the application may be dynamically updated. Initially, the threshold may be set to a relatively small value to obtain a better application trigger rate. The threshold may be improved to balance the accuracy and trigger rate of application recommendations during use of the application recommendations. An exemplary process of updating the threshold of an application is as follows:
1. initializing an applied threshold value;
2. setting the number of successful uses of the application to 0 and setting the number of failed uses of the application to 0;
3. if the similarity score for the application is greater than the threshold:
a. recommending the application;
b. if the application ends without being interrupted and the application 'S usage time is higher than the application' S average usage time, then s=s+1 is set;
c. Otherwise, f=f+1 is set;
4. periodically updating the threshold (e.g., weekly);
a. accuracy = S/(s+f), trigger rate = S/number of queries in the period
b. If precision < expected precision value:
i. threshold = threshold + alpha (e.g., alpha is set to a floating point number with a range of values (0,0.1))
c. Otherwise, if the trigger rate < expected trigger rate value:
i. threshold = threshold- β (e.g., β is set as a floating point number with a range of values (0,0.1)).
The expected accuracy value and the expected trigger value may each be a predetermined threshold. It should be understood that the above update algorithm is for illustration purposes and is not intended to limit the scope of the present disclosure in any way.
When a mismatch determination is made at 506, the flow proceeds to 508. At 508, it is determined whether there is a current application active during the conversation between the chat bot and the user.
In some implementations, to detect whether an application is already active, a user-feature usage database is used to store usage information for each user of the set of applications. By checking the user-feature usage database as shown in fig. 6, applications that are not currently active are identified if the activity data 620 is empty, and applications that are currently active are identified if the activity data 620 is not empty.
When it is identified at 508 that there is no application currently active, the flow proceeds to 510. At 510, a pure chat mode is initiated.
When the currently active application is identified at 508, the flow proceeds to 512, where the currently active application continues.
When a match determination is made at 506, the flow proceeds to 514. At 514, it is identified whether there is a current application active during the conversation between the chat bot and the user.
When it is identified at 514 that there is no application currently active, the flow proceeds to 520. At 520, the matching application is activated to make it the currently active application.
When the currently active application is identified at 514, the flow proceeds to 516. At 516, a recommendation is output for the matched application. The recommendation may be presented as a question asking if the user wants to switch to the matching application.
If a negative acknowledgement is received from the user for the recommendation at 518, the flow proceeds to 512, where the currently active application continues.
If an acknowledgement from the user for the recommendation is received at 518, the flow proceeds to 520. At 520, the matching application is activated to make it the currently active application.
At 522, user usage data for the currently active application is recorded in the activity data 620 of the user-application database. When the currently active application is terminated, the activity data 620 is stored as history data 610.
Fig. 6 illustrates an exemplary user-application usage database 600. There are two types of data in this database, one is journaled data called historical data 610, which stores historical usage of all applications for all users, and the other is active data called activity data 620, which records statistics of the currently active applications for a particular user identified by a user ID. The activity data 620 is stored in the history data unit 610 when the currently active application is terminated by the user or due to a timeout exception.
The architecture of the history data and the activity data is the same as shown at 630 and 640, except that some information in the activity data is always updated because the active application is still working. For example, timestamp termination information in an active data unit is not available until the currently active application is terminated.
An exemplary architecture for user-application usage data is shown at 630. The exemplary architecture includes user ID, application ID, timestamp Start, timestamp end, user query list, application statistics, application session data, whether third party application, application owner. It should be understood that the architecture may include more or fewer information elements, and the disclosure is not limited to this particular architecture 630. The timestamp start and timestamp end indicate the start time and end time of the use of the application (identified by the application ID) by the user (identified by the user ID). The user query list includes queries entered by the user for the use of the application. For example, for a cooking application, the user query may be "how to cook a spring roll", "i want to make sushi", etc., entered during this use of the cooking application. The application statistics include statistics about this use of the application, such as the number of rounds the user has played the application "connect". Examples of application session data include the number of times the application is terminated in a normal manner, the number of times the application is terminated in an interrupted manner (e.g., the application is interrupted by another application). In some implementations, application session data may be calculated for a single user and a single application, while in some other implementations, application session data may also be calculated for a single application and all users. The application session data may be updated periodically. Whether an element of the third party application indicates whether the application identified by the application ID is provided by the third party application provider. The application owner indicates information of the application provider, such as the name or ID of the third party developer.
Based on the user-application usage data in the database, machine learning features can be obtained for training a similarity calculation model to calculate a similarity score between the query and the application. As a machine learning model, the similarity calculation model is implemented in the application recommendation module 280 or is the application recommendation module 280. Exemplary machine learning features obtained based on user-application usage data are as follows:
1. for the current user or all users, the cumulative frequency of use of one application relative to all applications.
2. The number of accumulated interrupts for one application for the current user or all users.
3. For the current user or all users, the usage ranking of one of all applications.
4. For the current user or all users, an outage ranking for one of all applications.
5. The average usage time (e.g., in seconds) of an application for the current user or all users.
6. The longest usage time (e.g., in seconds) of an application for the current user or all users.
7. The cumulative usage time (e.g., in seconds) of one application for the current user or all users.
8. The current user triggers an average point in time for an application. For example, for a weather forecast application, the time point is mainly in the morning, while for a food recommendation application, the time point is near 12 am or 6 pm.
9. Average query length of user queries for an application. For example, the longer the query, the more likely the user will be to use the current application.
10. A user query for an application is in emotional tendency. For example, the more aggressive the query, the more likely the user will be to use the current application.
11. Whether an image is uploaded during use of an application. In this case, the application may be linked to the image.
12. The number of users using the current application.
13. Whether the application is a third party application. For example, if a developer of a third party application pays for this, the weight of the third party application may be increased. In some implementations, a developer of a third party application may bid to obtain special trigger words to help trigger its application.
The similarity calculation model can be implemented with a machine learning algorithm by using features extracted from the user-application usage database. One example of a machine learning algorithm may be a gradient-lifting decision tree algorithm for computing similarity scores.
In some implementations, when the application usage data for the current user is quite limited or even empty, statistics for all existing users may be used as a feature of application recommendations to calculate similarity scores. In this case, the most popular application that is used by most users or for a relatively long period of time may be recommended to the current user.
FIG. 7 illustrates an example of information collection from user data according to one embodiment. The user clustering model is used to automatically cluster users into groups and further links each group with a keyword list that is further associated with an event. An "event" word is a set of sentences or sentence-level descriptions used to express keywords that share the same topic.
At 704, the user data 702 is automatically clustered into a plurality of clusters, such as cluster 1 706, cluster 2 708, etc., using a latent dirichlet allocation (LDA, latent Dirichlet allocation) clustering algorithm. The user data 702 may be user log data stored in the user log database 272 and/or user-application usage data stored in the user-application usage database 274. In some implementations, log data (e.g., in the form of query-response pairs) for all users and user queries stored in a user-application usage database are collected as user data 702.
In order to make the user data time sensitive, a discounted weight λ/n value may be assigned to older user data, where λ is the range of values (0, 1), where n is the temporal distance of the user data from the time of clustering (e.g., number of months). For example, λ is 0.8, for the log of the last month of the user data, 0.8/2=0.4, in this way the ideas collected by the user clustering process are "fresh".
Each cluster includes a list of keywords, such as dragon cat, sea thief king, etc. shown at 706, and spring rolls, curry, etc. shown at 708. It should be appreciated that although only two clusters are shown in fig. 7, there may be a number of clusters, for example, the number of clusters may be on the order of hundreds, thousands, tens of thousands, or even millions. In some implementations, the labels may be explicitly defined for the individual clusters. In some other implementations, only integers are used to annotate the clusters. Thus, the clustering algorithm may be performed by simply predefining the number of clusters, without other configuration.
Each keyword in each cluster is attached with a list containing one or more events. An exemplary keyword "Dragon cat" in Cluster 1 is shown at 710, with the keyword "Dragon cat" appended with two exemplary events "Linesless," i want to watch the movie 'Dragon cat' "and" Linesless, "i can find the movie 'Dragon cat' for me, as shown at 712 and 714. It should be appreciated that more or fewer events may be attached to a keyword. In some implementations, a user query from the user data 702 that matches a keyword of a cluster may be appended to the keyword of the cluster as an event, and the user sending the query may be linked to the cluster. Taking the keyword "Dragon cat" in Cluster 1 as an example, the query "Linesless, I want to see the movie Dragon cat" contains the keyword "Dragon cat", then the query is appended to this keyword as an event, and accordingly the query and the user sending the query are linked to the Cluster 1. All users who sent the query containing the keyword "dragon cat" are included in cluster 1. Similarly, all users who send queries containing the keyword "cuttlefish king" are included in cluster 1. Finally, all users who send queries containing any of the keywords in cluster 1 are included in cluster 1.
User cluster models are designed to better understand terms frequently used by large-scale users and frequently engaged events. The information collected through the user clusters helps the application developer develop new applications suitable for the use habit of each group of users, so that the use rate of the newly developed applications is improved.
Fig. 8 illustrates an example of collecting information from network data according to one embodiment.
At 804, the network data 802 is automatically clustered into a plurality of clusters, such as cluster 1 806, cluster 2 808, and the like, using an LDA cluster model. The network data 802 may come from various network resources, such as social networks, knowledge-related websites, and the like.
Each cluster includes a list of keywords, such as star wars, dragon cats, etc. shown at 806, and spring rolls, sushi, etc. shown at 808. It should be appreciated that although two clusters are shown in the figures, there may be a certain number of clusters, as discussed above.
Each keyword in each cluster is attached with a list of one or more events. An exemplary keyword "Dragon cat" in Cluster 1 is shown at 810, with two exemplary events attached to the keyword "Dragon cat", dragon cat 'being a long motion movie made by Ji Boli studio and director of Dragon cat' being Kazakhstan Jun ", shown at 812 and 814. It should be appreciated that there may be more or fewer events attached to a keyword. In some implementations, sentence-level descriptions (e.g., sentences 812, 814 or sentences 818, 820) from the network data 802 match a keyword in a cluster, which can be appended to the keyword of the cluster as an event. As shown, sentences 812 and 814 are appended to keyword 810 in cluster 1 and sentences 818 and 820 are appended to keyword 816 in cluster 2.
Fig. 9 illustrates exemplary links of a user cluster and a network cluster according to one embodiment. Like reference numerals shown in fig. 7-9 denote like elements.
After a list of user clusters is generated from the user data as shown in fig. 7 and a list of network clusters is generated from the network data as shown in fig. 8, similar clusters in the two lists of clusters are unified. For example, as shown in fig. 9, if one cluster in the list of user clusters (e.g., cluster 1 in the list of user clusters) and one cluster in the list of network clusters (e.g., cluster 1 in the list of network clusters) both contain the same keyword (e.g., "dragon cat" 710), then the event (e.g., event 812, 814) that is appended to the keyword in the network cluster may be linked to the event that is appended to the keyword in the user cluster. Such links are significant because the intent of the user's needs is primarily included in events from the user, while events from the website may provide material for the user's specific intent to be identified by the keyword. Thus, the present disclosure creates a new query-response pair by utilizing a link of user data and network data, where the query is from the user and the response is from the network.
In some implementations, a query-answer similarity score calculation model is used to find answers from network data that have high confidence in queries from user data. One exemplary algorithm for this model is as follows.
For each user cluster Cu in the user cluster list:
finding a network cluster Cw in the network cluster list, so that the Cw and Cu share the maximum word number;
for each query Qu connected to Cu:
sim max (Qu,Sw)=0;
for each sentence Sw connected to Cw:
calculate the similarity score sim (Qu, sw), and if sim (Qu, sw)>sim max (Qu, sw), sw is recorded;
sim max (Qu,Sw)=sim(Qu,Sw);
if sim is max (Qu,Sw)>The value of =threshold value,
take (Qu, sw) as the < query, answer > candidate pair.
sim (Qu, sw) represents the similarity score between Qu and Sw, sim max (Qu, sw) represents the maximum similarity score. A machine learning module, e.g., a gradient-lifting decision tree, may be trained to calculate a similarity score sim (Qu, sw) that indicates the accuracy of the response sentence to the query. Query Qu is an event in user cluster Cu and sentence Sw is an event in network cluster Cw. The threshold is a predefined value, which may be, for example, 0.5, wherein sim (Qu, sw) has a value in the range of 0 to 1.
It will be appreciated that the above algorithm is illustrative and not intended to limit the scope of the present disclosure, and that suitable modifications may be made to the algorithm. For example, by using the above algorithm, it can be directed to a user from a userA query of the cluster finds an optimal sentence Sw from the network cluster, however as a variant of the algorithm the maximum similarity score sim is not considered max (Qu, sw) and all sentences from the network clusters having a score above the threshold can be taken as candidate answers to the query, it is thus possible to find multiple sentences from the network clusters as candidate answers for one query from the user clusters. It should be appreciated that the search for candidate query-response pairs may be performed periodically based on user data and network data.
As described above, the number of clusters may be hundreds, thousands, tens of thousands, or even millions, so that a rich candidate query-response candidate pair may be found through the above-described procedure using a link of user data and network data. In some implementations, the application may be updated with candidate query-response pairs.
FIG. 10 illustrates an exemplary flow for updating an application, according to one embodiment.
At 1010, the chat bot identifies that the user query matches an application, similar to making an affirmative determination at 506 in FIG. 5.
At 1020, the matched application is activated, similar to the process at 520 in FIG. 5.
At 1030, the chat bot identifies whether there are sufficient responses available for the application. In some implementations, a determination is made that the available response is insufficient if the number of available responses for the application is less than a threshold. For example, for an application related to a movie theme, when the number of available responses is less than the threshold, it is identified that the available responses are insufficient, and it is further determined that the application can be updated by supplementing movie data from the network.
At 1040, the query may be linked to a network cluster. The linking of the query and the network cluster may be implemented based on keywords or events in the cluster. Taking the query "smart, you can find the movie for me 'Dragon cat' as an example, this query can be used to trigger a movie related application at 1020 and can be linked to a network cluster related to the movie theme.
At 1050, data is obtained from the network cluster to update an application, such as an application related to a movie. In some implementations, candidate query-response pairs corresponding to sentences of the network cluster as described above may be obtained. As described above, since the user's demand intent is primarily contained in events from the user, and events from the network may provide material for preparing the user's special intent, candidate query-response pairs obtained for the application may be used to prepare the user's various intents using the network material. In some other implementations, sentences in the network clusters that are not included in the available responses of the application may be derived. Taking the movie related application as an example, data about a new movie can be obtained from the network to update the application.
At 1060, data obtained from the network cluster is attached to the application.
Although the application is updated as needed after the application is triggered, as shown in fig. 10, it is also possible to update the application periodically based on candidate query-response pairs, which are also updated periodically.
It will be appreciated that reasonable modifications may be made to the process of updating the application. For example, after the matched application is activated at 1020, if a second user query is received but a response is not obtained from the data of the application, then it is determined at 1030 that the available response is insufficient, then a response to the second user query may be obtained from the network data or network cluster, and at the same time, the application may be updated by collecting data from the network data, as shown at 1040-1060.
User clusters and network clusters obtained from user data and network data can be used to drive concept collection about applications in addition to being used to update existing applications. In particular, because network data updates are faster and chat robots cannot be guaranteed to include new events or trending keywords, such as newly named entities, new games, new movies, etc., the network cluster list can be used to collect new ideas for the chat robot to create new applications. For example, for a network cluster, there may be considerable keywords present in the user's log data and/or there are no corresponding clusters from the user cluster list, then event sentences from the network may be used as material or data resources for preparing new applications.
Furthermore, user clustering may also be used to improve application recommendations performed by the application recommendation module 280, as user clustering may help to better understand frequently used words and frequently engaged events for a large scale of users. In addition to the features described above obtained from the user-application usage database, one or more of the following features may be used in a machine learning module implemented at the application recommendation module 280 to calculate a similarity score between the query and the trigger data of the application:
1. a cluster to which a current user belongs;
2. the type of application. Types of applications include, for example, time sensitive applications, gaming style applications, functional applications such as weather reporting applications, image-based applications, and other suitable types of applications;
3. edit distance at word level between query and trigger word list;
4. edit distance at character level between query and trigger word;
5. word-to-vector (word 2 vec) similarity scores between queries and trigger words;
6. BM25 scores between query and trigger terms.
FIG. 11 illustrates an exemplary process for updating keywords of an application, according to one embodiment.
At 1110, the chat bot identifies that the user query matches the application.
At 1120, the chat bot recommends the application to the user. The recommendation may be implemented as a process as at 516 in fig. 5 when there is a currently active application. The recommendation may also be performed whenever a match determination is made at 1110, regardless of whether there is a currently active application.
At 1130, in response to the application recommendation, the chat bot receives user feedback.
At 1140, the chat bot identifies whether the user's feedback is positive or negative, for example, by using an emotion analysis module.
At 1150, in response to the affirmative feedback, the matched application is activated.
At 1160, the chat bot identifies whether the application is terminated normally. In some implementations, the application is identified as terminating normally if the application ends without being interrupted and/or the application's time of use is greater than the average time of use. The average usage time may be the average usage time of the application among the plurality of users, or the average usage time of the application of the current user.
At 1170, the user query is added to the application's keyword list as a new keyword for the application. Thus, the keywords of an application will self-expand with the use of the application.
It should be understood that although the term keyword is used in the specification, the keyword of one application is not limited to the word level keyword, and in practice the keyword of one application may be a phrase level keyword, a sentence level keyword, or a pattern level keyword, which may be collectively referred to as trigger data of an application.
It should be understood that appropriate modifications may be made to the process of updating keywords. For example, when it is determined at 1150 that positive feedback for a recommendation was received, the user query may be added to the keyword list for the application at 1170, regardless of whether the application is normally terminated at 1160.
FIG. 12 illustrates an exemplary process for application recommendation through intelligent automated chat, according to one embodiment.
At 1210, a query is received in a conversation. At 1220, the match rate between the query and the application is scored. At 1230, a query is identified as matching a first application of the applications based on the score. At 1240, the first application is recommended in the conversation.
In some implementations, the query may be added to the trigger data for the first application in response to an acknowledgement for the recommendation. In some other implementations, the query may be added to the trigger data for the first application if the first application ends without being interrupted and/or the first application has a use time greater than the average use time.
In some implementations, recommending the first application may be accomplished by outputting a question as to whether to activate the first application. In some implementations, recommending the first application may be accomplished by activating the first application.
In some implementations, after identifying that the query matches the first application, a second application is identified as active. Recommending the first application may be accomplished by outputting a question as to whether to switch from the second application to the first application. In response to an acknowledgement for the problem, a handover from the second application to the first application is performed. The second application is continued in response to a negative acknowledgement for the problem.
In some implementations, usage data for the first application and/or the second application associated with the user may be recorded in a user-application usage database.
In some implementations, during the first application activity, a second query is received. A second response to the second query is obtained from the network data and presented to the user. The second query and the second response may be appended to the first application to update a query-response pair of the first application.
In some implementations, it is insufficient to identify an available query-response for the first application. Candidate query-response pairs are appended to the first application to update the query-response pairs of the first application. The queries in the candidate query-response pair are from user data, while the responses in the pair are from network data.
In some implementations, a determination is made that a query matches a first application based on a rate of match between the query and the first application and a threshold for the first application. The threshold of the first application may be updated based on a number of successful uses of the first application and a number of unsuccessful uses of the first application.
In some implementations, the match rate score between the query and the application is obtained based on the query, the trigger data of the application, and at least one of: user of an application-application usage data, user profile, monetary bid information for the application, type of application, and potential semantic scores between query and trigger data. The user profile includes user cluster information indicating which of a plurality of clusters the user belongs to, wherein each cluster includes a list of users and a list of keywords.
FIG. 13 illustrates an exemplary process for collecting information according to one embodiment.
At 1310, a plurality of user clusters are generated based on user data associated with the service, wherein a user cluster includes a set of users and a set of keywords, and one keyword in the user cluster is appended with one or more sentence-level descriptions. At 1320, the plurality of clusters of users are stored in a database.
The service may be, for example, a chat robot service or an AI chat service as described above. It will be appreciated that the information gathering process may be adapted for use with chat services, such as IM services, through which users chat, rather than chat with a chat robot. User clusters obtained from user data of such chat services may also be used to reflect user demand intents.
In some implementations, user data may be clustered into a plurality of user clusters. For a keyword in a user cluster, one or more sentence-level descriptions from one or more users in the user data are appended to the keyword for the user cluster and the one or more users are included in the user cluster.
In some implementations, a plurality of network clusters are generated based on network data. A network cluster includes a list of keywords and one or more sentence-level descriptions are attached to a keyword in the network cluster.
In some implementations, the network data is clustered into a plurality of network clusters. For a keyword in a network cluster, one or more sentence-level descriptions from one or more users in the network data are appended to the keyword in the network cluster.
In some implementations, for a keyword that is included in both a user cluster and a network cluster, a sentence-level description of the keyword in the network cluster is appended to the keyword of the user cluster.
In some implementations, a query-response pair is obtained based on the plurality of user clusters and the plurality of network clusters. The queries in the pair come from the user cluster and the responses in the pair come from the network cluster. By using the query-response, the application associated with the service is updated.
In some implementations, the user data includes at least one of user chat log data and user-application usage data. Information indicating an application development recommendation is generated based on at least one of the user data (i.e., historical user chat log data and user-application usage data) and the network data. For example, one or more network clusters containing a plurality of keywords that are present in the user cluster may be identified. One or more network clusters that do not correspond to any of the user clusters may be identified. Thus, information is collected from at least one of user data and network data, facilitating application recommendation in one aspect and providing information for application development in another aspect.
FIG. 14 illustrates an exemplary apparatus for application recommendation through intelligent automated chat, according to one embodiment.
The apparatus 1400 includes an acquisition module 1410 and a recommendation module 1420. The get module 1410 gets the query in a dialogue. The recommendation module 1420 scores a match rate between the query and the applications, identifies that the query matches a first application of the applications based on the match rate, and recommends the first application in the conversation.
In some implementations, the recommendation module 1420 recommends the first application by outputting questions regarding whether to activate the first application. In some implementations, the recommendation module 1420 recommends a first application by activating the first application.
In some implementations, the recommendation module 1420 identifies that the second application is active after identifying that the query matches the first application. The recommendation module 1420 recommends the first application by outputting a question as to whether to switch from the second application to the first application. In response to an acknowledgement for the recommendation, the recommendation module 1420 switches from the second application to the first application. In response to a negative acknowledgement for the recommendation, the recommendation module 1420 continues the second application.
It should be appreciated that recommendation module 1420 may perform any operations related to application recommendation in accordance with the embodiments described above in connection with fig. 1-13. It should be appreciated that the apparatus 1400 may also include any other module configured to perform any operations for applying the recommended methods according to the embodiments described above in connection with fig. 1-13.
FIG. 15 illustrates an exemplary apparatus for collecting information according to one embodiment.
The apparatus 1500 includes a generation module 1510 and a storage module 1520. The generation module 1510 generates a plurality of user clusters based on user data associated with the service. A user cluster includes a set of users and a set of keywords, and one keyword in the user cluster is attached with one or more sentence-level descriptions. The storage module 1520 stores the plurality of user clusters in a database.
It should be appreciated that the generation module 1510 may perform any operations related to information collection in accordance with the embodiments described above in connection with fig. 1-13. It should be appreciated that the apparatus 1500 may also include any other module configured to perform any of the operations of the method for information collection according to the embodiments described above in connection with fig. 1-13.
FIG. 16 illustrates an exemplary computing system according to one embodiment.
The system 1600 includes one or more processors 1610. The system 1600 further includes a memory 1620 coupled to the one or more processors 1610.
The memory 1620 stores computer-executable instructions that, when executed, cause the one or more processors 1610 to receive a query in a conversation, score a match rate between the query and an application, identify that the query matches a first application in the application based on the match rate, and recommend the first application in the conversation.
The memory 1620 stores computer-executable instructions that, when executed, cause the one or more processors 1610 to generate a plurality of user clusters based on user data associated with a service and store the plurality of user clusters in a database, wherein a user cluster includes a set of users and a set of keywords, and one keyword in the user cluster is appended with one or more sentence-level descriptions.
It should be appreciated that the computer-executable instructions, when executed, cause the one or more processors 1610 to perform any operations in accordance with the methods of the embodiments described above in connection with fig. 1-13.
Embodiments of the present disclosure may also be implemented in non-volatile computer-readable media. The non-transitory computer-readable medium includes instructions that, when executed, cause one or more processors to perform any of the operations of the method according to the embodiments described above.
It should be understood that all operations in the above-described method are merely exemplary, and the present disclosure is not limited to any operations in the method or order of execution of the operations, and should cover all other equivalents having the same or similar concepts.
It should also be understood that all of the modules in the apparatus described above may be implemented in various ways. These modules may be implemented as hardware, software, or a combination of both. Furthermore, any of these modules may be functionally further divided into sub-modules or combined together.
The processor has been described in connection with various apparatus and methods. These processors may be implemented using electronic hardware, computer software, or any combination of the two. Whether such processors are implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. For example, a processor, any portion of a processor, or any combination of processors provided by the present disclosure may be implemented with a microprocessor, microcontroller, digital Signal Processor (DSP), field Programmable Gate Array (FPGA), programmable Logic Device (PLD), state machine, gating logic, discrete hardware circuits, and other suitable processing components configured to perform the various functions described herein. The functions of the processors, any portion of the processors, or any combination of processors provided by the present disclosure may be implemented using software executed by a microprocessor, microcontroller, DSP, or other suitable platform.
Software should be construed broadly to mean instructions, instruction sets, code segments, program code, programs, subroutines, software modules, applications, software packages, routines, subroutines, objects, threads of execution, procedures, functions, and the like. The software may reside on a computer readable medium. A computer-readable medium may include, for example, memory such as magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips), optical disks, smart cards, flash memory devices, random Access Memory (RAM), read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically Erasable PROM (EEPROM), registers, or removable disk. Although the memory is shown separate from the processor for various aspects of the disclosure, the memory may be internal to the processor (e.g., a cache or register).
The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Accordingly, the claims are not intended to be limited to the various aspects described above. All structural and functional equivalents to the elements included in the aspects described in the disclosure that are presently or later to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims.

Claims (17)

1. A method for application recommendation through intelligent automated chat, comprising:
receiving a query in a conversation;
scoring a match rate between the query and a plurality of applications based on the query and respective keyword lists of the plurality of applications;
identifying, based on the match rate, that the query matches a first application of the plurality of applications; and
recommending said first application in said dialog,
wherein the method further comprises performing one of the following steps:
in response to an acknowledgement for the recommendation, adding the query to the keyword list of the first application; or alternatively
If the first application ends without being interrupted and/or the first application has a use time greater than an average use time, the query is added to the keyword list of the first application.
2. The method of claim 1, wherein the recommending the first application further comprises performing one of:
outputting a question as to whether to activate the first application; or alternatively
Activating the first application.
3. The method of claim 1, further comprising:
After identifying that the query matches the first application, identifying that a second application is active;
the recommending the first application further includes outputting a question regarding whether to switch from the second application to the first application; and
the method further comprises performing one of the following steps:
switching from the second application to the first application in response to an acknowledgement to the question; or alternatively
And continuing the second application in response to a negative acknowledgement to the question.
4. A method as in claim 3, further comprising:
usage data of the first application and/or the second application associated with the user is recorded in a user-application usage database.
5. A method as in claim 3, further comprising:
receiving a second query while the first application is active;
obtaining a second response to the second query from the network data;
outputting the second response; and
the second query and the second response are appended to the first application.
6. The method of claim 1, further comprising:
identifying an available query-response pair deficiency for the first application; and
A candidate query-response pair is appended to the first application, wherein the query in the candidate query-response pair is from user data and the response in the pair is from network data.
7. The method of claim 1, the identifying that the query matches the first application further comprising:
based on a matching rate between the query and the first application and a threshold of the first application, the query is identified as matching the first application.
8. The method of claim 7, wherein the threshold of the first application is updated based on a number of successful uses of the first application and a number of unsuccessful uses of the first application.
9. The method of claim 1, wherein scoring further comprises:
the match rate is also scored based on at least one of: user-application usage data of the application, a user profile, monetary bid information of the application, a type of the application, and potential semantic scores between the query and the keyword list.
10. The method of claim 9, wherein the user profile includes user cluster information indicating to which cluster of a plurality of clusters the user belongs.
11. A method for collecting information, comprising:
generating a plurality of user clusters based on user data associated with a service, wherein a user cluster includes a set of users and a set of keywords, and one keyword in the user cluster is appended with one or more sentence-level descriptions;
storing the plurality of user clusters in a database;
generating a plurality of network clusters based on the network data, wherein one network cluster comprises a keyword list, and one keyword in the network cluster is added with one or more sentence-level descriptions; and
a query-response pair is obtained based on the plurality of user clusters and the plurality of network clusters, wherein the queries in the pair are from the user clusters and the responses in the pair are from the network clusters.
12. The method of claim 11, further comprising:
by utilizing the query-response, an application associated with the service is updated.
13. The method of claim 11, wherein the user data comprises user chat log data and user-application usage data, and the method further comprises:
information indicating a recommendation for application development is generated based on at least one of the user cluster and the network cluster.
14. The method of claim 13, wherein the step of generating information further comprises:
identifying one or more network clusters comprising a plurality of keywords present in the user cluster; and/or
One or more network clusters that do not correspond to any of the user clusters are identified.
15. An apparatus for application recommendation through intelligent automated chat, comprising:
an obtaining module for obtaining a query in a dialogue; and
a recommendation module for scoring a match rate between the query and a plurality of applications based on the query and respective keyword lists of the plurality of applications, identifying that the query matches a first application of the plurality of applications based on the match rate, and recommending the first application in the conversation,
wherein the apparatus further comprises means for performing one of the following:
in response to an acknowledgement for the recommendation, adding the query to the keyword list of the first application; or alternatively
If the first application ends without being interrupted and/or the first application has a use time greater than an average use time, the query is added to the keyword list of the first application.
16. The apparatus of claim 15, wherein the recommendation module is further to recommend the first application by performing one of:
outputting a question as to whether to activate the first application; or alternatively
Activating the first application.
17. The apparatus of claim 15, wherein the recommendation module is further to:
after identifying that the query matches the first application, identifying that a second application is active;
recommending the first application by outputting a question regarding whether to switch from the second application to the first application; and
one of the following steps is performed:
switching from the second application to the first application in response to an acknowledgement to the question; or alternatively
And continuing the second application in response to a negative acknowledgement to the question.
CN201780031432.0A 2017-03-09 2017-03-09 Application recommendation Active CN109313638B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/076133 WO2018161306A1 (en) 2017-03-09 2017-03-09 Application recommendation

Publications (2)

Publication Number Publication Date
CN109313638A CN109313638A (en) 2019-02-05
CN109313638B true CN109313638B (en) 2023-09-01

Family

ID=63447070

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780031432.0A Active CN109313638B (en) 2017-03-09 2017-03-09 Application recommendation

Country Status (2)

Country Link
CN (1) CN109313638B (en)
WO (1) WO2018161306A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3916733A1 (en) * 2020-05-28 2021-12-01 Stichting IMEC Nederland Method, system, and computer program product for matching stress-management application software to the needs of a user
CN114374660B (en) * 2020-10-15 2023-09-19 中国移动通信集团浙江有限公司 Recommendation method, device, equipment and storage medium of 5G message chat robot

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0992919A1 (en) * 1998-10-08 2000-04-12 Canon Kabushiki Kaisha Apparatus and method for processing natural language
EP1109119A2 (en) * 1999-12-08 2001-06-20 Genesys Telecommunications Laboratories, Inc. Method and apparatus for query answering
CN101105795A (en) * 2006-10-27 2008-01-16 北京搜神网络技术有限责任公司 Network behavior based personalized recommendation method and system
CN101320375A (en) * 2008-07-04 2008-12-10 浙江大学 Digital book search method based on user click action
CN102083245A (en) * 2009-11-30 2011-06-01 中国移动通信集团四川有限公司 Intelligent terminal as well as collaboration service method and system aiming at same
CN102421062A (en) * 2011-12-01 2012-04-18 中国联合网络通信集团有限公司 Method and system for pushing application information
CN102760128A (en) * 2011-04-26 2012-10-31 华东师范大学 Telecommunication field package recommending method based on intelligent customer service robot interaction
CN103412757A (en) * 2013-08-19 2013-11-27 南京大学 Realizing method of personalized integrated framework of mobile applications
WO2015016094A1 (en) * 2013-07-31 2015-02-05 ソニー株式会社 Information processing device, information processing method, and program
CN104836720A (en) * 2014-02-12 2015-08-12 北京三星通信技术研究有限公司 Method for performing information recommendation in interactive communication, and device
CN104951570A (en) * 2015-07-27 2015-09-30 广州九尾信息科技有限公司 Intelligent part-time job recommendation system based on data mining and LBS
CN105446994A (en) * 2014-07-11 2016-03-30 华为技术有限公司 Service recommendation method and device with intelligent assistant
CN105631590A (en) * 2015-12-25 2016-06-01 苏州贝多环保技术有限公司 Applying system based on intelligent terminal
CN105677822A (en) * 2016-01-05 2016-06-15 首都师范大学 Enrollment automatic question-answering method and system based on conversation robot
CN105701182A (en) * 2016-01-07 2016-06-22 百度在线网络技术(北京)有限公司 Information pushing method and apparatus
CN106294618A (en) * 2016-08-01 2017-01-04 北京百度网讯科技有限公司 Searching method and device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8812033B2 (en) * 2010-04-28 2014-08-19 Cellco Partnership Systems and method for recommending an application from a mobile station
US9201865B2 (en) * 2013-03-15 2015-12-01 Bao Tran Automated assistance for user request that determines semantics by domain, task, and parameter
US20150286709A1 (en) * 2014-04-02 2015-10-08 Samsung Electronics Co., Ltd. Method and system for retrieving information from knowledge-based assistive network to assist users intent
CN103914548B (en) * 2014-04-10 2018-01-09 北京百度网讯科技有限公司 Information search method and device
KR20160089152A (en) * 2015-01-19 2016-07-27 주식회사 엔씨소프트 Method and computer system of analyzing communication situation based on dialogue act information

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0992919A1 (en) * 1998-10-08 2000-04-12 Canon Kabushiki Kaisha Apparatus and method for processing natural language
EP1109119A2 (en) * 1999-12-08 2001-06-20 Genesys Telecommunications Laboratories, Inc. Method and apparatus for query answering
CN101105795A (en) * 2006-10-27 2008-01-16 北京搜神网络技术有限责任公司 Network behavior based personalized recommendation method and system
CN101320375A (en) * 2008-07-04 2008-12-10 浙江大学 Digital book search method based on user click action
CN102083245A (en) * 2009-11-30 2011-06-01 中国移动通信集团四川有限公司 Intelligent terminal as well as collaboration service method and system aiming at same
CN102760128A (en) * 2011-04-26 2012-10-31 华东师范大学 Telecommunication field package recommending method based on intelligent customer service robot interaction
CN102421062A (en) * 2011-12-01 2012-04-18 中国联合网络通信集团有限公司 Method and system for pushing application information
WO2015016094A1 (en) * 2013-07-31 2015-02-05 ソニー株式会社 Information processing device, information processing method, and program
CN103412757A (en) * 2013-08-19 2013-11-27 南京大学 Realizing method of personalized integrated framework of mobile applications
CN104836720A (en) * 2014-02-12 2015-08-12 北京三星通信技术研究有限公司 Method for performing information recommendation in interactive communication, and device
CN105446994A (en) * 2014-07-11 2016-03-30 华为技术有限公司 Service recommendation method and device with intelligent assistant
CN104951570A (en) * 2015-07-27 2015-09-30 广州九尾信息科技有限公司 Intelligent part-time job recommendation system based on data mining and LBS
CN105631590A (en) * 2015-12-25 2016-06-01 苏州贝多环保技术有限公司 Applying system based on intelligent terminal
CN105677822A (en) * 2016-01-05 2016-06-15 首都师范大学 Enrollment automatic question-answering method and system based on conversation robot
CN105701182A (en) * 2016-01-07 2016-06-22 百度在线网络技术(北京)有限公司 Information pushing method and apparatus
CN106294618A (en) * 2016-08-01 2017-01-04 北京百度网讯科技有限公司 Searching method and device

Also Published As

Publication number Publication date
WO2018161306A1 (en) 2018-09-13
CN109313638A (en) 2019-02-05

Similar Documents

Publication Publication Date Title
CN110869969B (en) Virtual assistant for generating personalized responses within a communication session
CN110892395B (en) Virtual assistant providing enhanced communication session services
CN109690526B (en) Method, device and system for intelligent automatic chat
CN114556354A (en) Automatically determining and presenting personalized action items from an event
US9953088B2 (en) Crowd sourcing information to fulfill user requests
CN109643325B (en) Recommending friends in automatic chat
CN106649704B (en) Intelligent conversation control method and system
US10635752B2 (en) Method and system for creating interactive inquiry and assessment bots
KR101840420B1 (en) Method and apparatus for providing chatbot platform
US20170277993A1 (en) Virtual assistant escalation
CN114503115A (en) Generating rich action items
US11792141B2 (en) Automated messaging reply-to
CN110995569B (en) Intelligent interaction method and device, computer equipment and storage medium
CN109313649B (en) Method and apparatus for voice-based knowledge sharing for chat robots
CN116541498A (en) Providing emotion care in a conversation
US20220210098A1 (en) Providing responses in an event-related session
US20240249215A1 (en) Dynamic and continuous onboarding of service providers in an online expert marketplace
CN105830118A (en) Methods and apparatus for determining outcomes of on-line conversations and similar discourses through analysis of expressions of sentiment during the conversations
CN108306813B (en) Session message processing method, server and client
CN116775815B (en) Dialogue data processing method and device, electronic equipment and storage medium
CN109313638B (en) Application recommendation
WO2024186578A1 (en) Methods and systems for hyperchat conversations among large networked populations with collective intelligence amplification
CN116301329A (en) Intelligent device active interaction method, device, equipment and storage medium
CN116701572A (en) Summarizing method of interaction tasks, server, electronic equipment and storage medium
CN118831316A (en) Virtual object interaction method, device, equipment, storage medium and program product

Legal Events

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