A method and apparatus for determining dialogue topics
By using dialogue data clustering and keyword evaluation metrics, the problem of insufficient correlation between the business provider's determination of dialogue topics and the success of business execution was solved, thus achieving more efficient business guidance.
Patent Information
- Application Number
- CN202210333544.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-03-30
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2042-03-30
AI Technical Summary
In existing technologies, when business providers determine dialogue topics based on their own experience, they cannot effectively guarantee the relevance of the dialogue topics to the success of business execution, resulting in low efficiency in business guidance.
By clustering dialogue data, keywords for each cluster are determined, and dialogue topics for specific businesses are determined based on the cluster weights and evaluation indicators, combined with preset weights.
It improved the relevance of dialogue topics to specific business needs, thereby enhancing the efficiency of business guidance.
Smart Images

Figure CN114676257B_ABST
Abstract
Description
Technical Field
[0001] This specification relates to the field of computer technology, and in particular to a method and apparatus for determining a dialogue topic. Background Technology
[0002] Currently, with the development of computer technology, service providers' staff need to engage in dialogues with users based on the dialogue topic to guide users in performing business tasks. Therefore, determining the dialogue topic has become an important issue.
[0003] A common method for determining the topic of a conversation is for the staff of the business provider to summarize keywords from historical conversations based on their own experience, and use these keywords as the target conversation topic.
[0004] However, the dialogue topics determined by staff based on their own experience have no clear correlation with whether the corresponding business is successfully executed, making the efficiency of guiding business based on dialogue topics determined by existing technology low. Summary of the Invention
[0005] This specification provides a method and apparatus for determining dialogue topics, in order to partially solve the aforementioned problems existing in the prior art.
[0006] The following technical solution is adopted in this specification:
[0007] This manual provides a method for determining the topic of a dialogue, including:
[0008] Determine a number of dialogue data and the execution result corresponding to each dialogue data, wherein the execution result is used to indicate the execution result of the user corresponding to the dialogue data for the specified service;
[0009] For each type of execution result of the specified service, the corresponding dialogue data of each type of execution result is clustered to obtain each cluster, and the keywords corresponding to each cluster are determined.
[0010] Based on the dialogue data contained in each cluster, the first weight of each cluster is determined to determine the evaluation index of each keyword in the execution result of that cluster.
[0011] Based on the evaluation indicators of each keyword in the various execution results of the specified service, and the preset second weight of each type of execution result, the keywords corresponding to the specified service are determined as the dialogue topics of the specified service.
[0012] Optionally, the dialogue data corresponding to this type of execution result can be clustered to obtain various clusters, specifically including:
[0013] For each dialogue data corresponding to this type of execution result, determine the statements contained in the dialogue data;
[0014] Determine the word segmentation sequence corresponding to each statement, and input each analysis sequence into the semantic model in the order of the statements in the dialogue data to obtain the semantic vector corresponding to the dialogue data.
[0015] Cluster the semantic vectors belonging to this type of execution result to obtain each cluster.
[0016] Optionally, the keywords corresponding to each cluster are determined, specifically including:
[0017] For each cluster, determine the dialogue data corresponding to each semantic vector contained in that cluster;
[0018] The frequency of each word in the word segmentation sequence of each dialogue data is statistically analyzed, and several central word segments are determined based on the statistical results.
[0019] Each central word segment is input into the semantic model to determine the word vector corresponding to each central word segment;
[0020] For each word vector, the similarity between the word vector and the semantic vectors contained in the cluster is determined.
[0021] Based on the similarity of each word vector to the cluster, the keywords corresponding to the cluster are determined.
[0022] Optionally, determine the first weight of each cluster, specifically including:
[0023] For each cluster, determine the amount of dialogue data contained in that cluster;
[0024] Based on the quantity, a first weight for the cluster is determined, and the first weight is positively correlated with the quantity.
[0025] Optionally, the keywords corresponding to the specified business are determined based on the evaluation indicators of each keyword in various execution results of the specified business, and the preset second weights of various execution results, specifically including:
[0026] The final evaluation of each keyword is determined based on the evaluation indicators of each keyword in the various execution results of the specified business, as well as the preset second weight of each type of execution result.
[0027] Based on the final evaluation, the keywords corresponding to the specified business are determined.
[0028] Optionally, the method further includes:
[0029] According to the preset time period, determine the keywords corresponding to each time period and the final evaluation corresponding to each keyword;
[0030] Based on the evaluation indicators, determine the trend of each keyword changing over the time period;
[0031] Based on the trend of change, determine the keywords corresponding to the specified business.
[0032] Optionally, based on the dialogue data contained in each cluster, a first weight for each cluster is determined, specifically including:
[0033] For each cluster, determine the cluster center of that cluster;
[0034] The relevance of the cluster is determined based on the distance between each dialogue data point in the cluster and the cluster center. Based on the relevance, a first weight of the cluster is determined, and the first weight is positively correlated with the relevance.
[0035] This specification provides a device for determining a dialogue topic, the device comprising:
[0036] The first determining module is used to determine a number of dialogue data and the execution result corresponding to each dialogue data. The execution result is used to indicate the execution result of the user corresponding to the dialogue data for the specified service.
[0037] The keyword determination module is used to cluster the dialogue data corresponding to each type of execution result of the specified business, obtain each cluster, and determine the keywords corresponding to each cluster.
[0038] The second determining module is used to determine the first weight of each cluster based on the dialogue data contained in each cluster, so as to determine the evaluation index of each keyword in the execution result of that cluster.
[0039] The dialogue topic determination module is used to determine the keywords corresponding to the specified business as the dialogue topic of the specified business based on the evaluation indicators of each keyword in the various execution results of the specified business, as well as the preset second weight of each type of execution result.
[0040] This specification provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the above-described dialogue topic determination method.
[0041] This specification provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the above-described dialogue topic determination method.
[0042] The above-mentioned technical solutions adopted in this specification can achieve the following beneficial effects:
[0043] In the dialogue topic determination method provided in this specification, several dialogue data and the execution results corresponding to each dialogue data are determined. For each type of execution result of a specified business, the dialogue data contained in that type of execution result are clustered to determine each cluster and the keywords corresponding to each cluster. Then, based on the dialogue data contained in each cluster, the evaluation index of each keyword in that type of execution result is determined. Finally, based on the evaluation index of each keyword in each type of execution result and the preset second weight of each type of execution result, the dialogue topic corresponding to the specified business is determined.
[0044] As can be seen from the above method, the dialogue topics determined by this solution are strongly correlated with the specified business, thus ensuring that when a dialogue is conducted with a user based on the dialogue topic, the user is more likely to perform the specified business corresponding to that dialogue topic, thereby improving the efficiency of business guidance. Attached Figure Description
[0045] The accompanying drawings, which are included to provide a further understanding of this specification and form part of this specification, illustrate exemplary embodiments and are used to explain this specification, but do not constitute an undue limitation thereof. In the drawings:
[0046] Figure 1 A flowchart illustrating the method for determining the dialogue topic provided in this specification;
[0047] Figure 2 A flowchart illustrating the process of determining keywords provided in this instruction manual;
[0048] Figure 3 Analysis diagrams corresponding to the various dialogue topics provided in this manual;
[0049] Figure 4 A schematic diagram of the dialogue topic determination device provided in this specification;
[0050] Figure 5 The corresponding information provided in this specification Figure 1 A schematic diagram of an electronic device. Detailed Implementation
[0051] To make the objectives, technical solutions, and advantages of this specification clearer, the technical solutions of this specification will be clearly and completely described below in conjunction with specific embodiments and corresponding drawings. Obviously, the described embodiments are only a part of the embodiments of this specification, and not all of them. Based on the embodiments in this specification, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this specification.
[0052] The technical solutions provided in the various embodiments of this specification are described in detail below with reference to the accompanying drawings.
[0053] In the field of business guidance, staff from business providers typically communicate via telephone, client applications, etc., and guide users to perform business tasks based on the topic of the conversation.
[0054] Taking fitness services as an example, staff from the service provider can call users to have a conversation about fitness services so that users can perform the specified services corresponding to those services.
[0055] Currently, however, staff members typically summarize dialogue topics based on their own work experience. However, there is no clear correlation between the dialogue topic and whether the corresponding business is successfully executed. In other words, it is unknown whether the user can actually execute the specified business corresponding to the dialogue topic during the actual dialogue process.
[0056] The designated service refers to the service corresponding to the topic of this conversation, which can be at least one of click, favorite, or place an order. Of course, the specific type of designated service can be set as needed, and this manual does not limit it.
[0057] Based on this, this specification provides a new method for determining dialogue topics.
[0058] Figure 1 The flowchart for the method of determining the dialogue topic provided in this specification includes the following steps:
[0059] S100: Determine a number of dialogue data and the execution results corresponding to each dialogue data, wherein the execution results are used to indicate the execution results of the user corresponding to the dialogue data for the specified service.
[0060] Unlike current methods where service providers' staff extract keywords from historical dialogue data based on experience and use these keywords as dialogue topics, this method addresses the issue of low accuracy in determining dialogue topics. It provides a novel approach to dialogue topic determination. This method clusters historical dialogue data and their corresponding execution results, identifies keywords based on the resulting clusters, and then determines the dialogue topic corresponding to the specified service based on these keywords.
[0061] Based on this, the server can first determine the historical dialogue data and the execution results corresponding to each dialogue data.
[0062] In one or more embodiments provided in this specification, the dialogue topic determination method can be executed by the server of the service provider. Therefore, the following description will take the execution of the dialogue topic determination method by the server as an example.
[0063] Specifically, when service provider staff and users engage in dialogue, the server can store the conversation between them as dialogue data. Each dialogue data entry contains all data from the start of the dialogue until its end. This dialogue data can be audio, text, video, etc., and the specific format can be configured as needed; this manual does not impose any restrictions on it.
[0064] Taking this dialogue data as an example, the dialogue data can include all the data before the dialogue ends, such as when the service provider's staff and the user start the conversation, when the staff shows the user the product, introduces the services included in the product, etc.
[0065] Then, when it is necessary to determine the topic of the conversation, the server can retrieve the pre-stored conversation data.
[0066] Of course, while determining the dialogue data, the server also needs to determine the execution result corresponding to the dialogue data. This execution result is used to indicate whether the user corresponding to the dialogue data has performed the specified service, that is, whether the user corresponding to the dialogue data has executed the specified service.
[0067] Specifically, for each dialogue data, the server can determine the identifier of the user corresponding to the dialogue data, and based on the identifier, determine the execution result of the user on the specified service, and then use the execution result as the execution result corresponding to the dialogue data.
[0068] Taking a click-based service as an example, during and after a conversation between a staff member and a user, the server can determine the execution result of the user's specified service based on the user's corresponding identifier. If the user executes the specified service, the server can determine the execution result corresponding to the conversation data as "execution successful". If the user does not execute the specified service, the server can determine the execution result corresponding to the conversation data as "execution failed".
[0069] Of course, the types of execution results mentioned above can be set as needed, and this manual does not impose any restrictions on this.
[0070] S102: For each type of execution result of the specified service, cluster the dialogue data corresponding to that type of execution result to obtain each cluster, and determine the keywords corresponding to each cluster.
[0071] In one or more embodiments provided in this specification, for each type of execution result of the specified service, if the dialogue data corresponding to that type of execution result is clustered, then for each obtained cluster, each dialogue data contained in that cluster has the same or similar characteristics as other dialogue data contained in that cluster. If these same or similar characteristics are extracted, the keywords represented by the extracted features can be used to characterize the commonalities of the dialogue data contained in that cluster within that type of execution result. Based on the determined keywords, the server can determine the dialogue topic.
[0072] Based on this, the server can cluster the dialogue data corresponding to each type of execution result for a specified business, obtain each cluster, and determine the keywords corresponding to each cluster.
[0073] Specifically, according to step S100, the server can categorize the execution results into two types: "execution successful" and "execution failed." It then determines the corresponding dialogue data for the "execution successful" type and the corresponding dialogue data for the "execution failed" type, respectively.
[0074] Then, for each type of execution result, the server can cluster the dialogue data corresponding to that type to obtain each cluster.
[0075] Finally, for each cluster, the server can count the frequency of each character in each dialogue data contained in the cluster, and obtain the keyword corresponding to the cluster based on the statistical results.
[0076] Furthermore, if clustering is performed solely based on dialogue data, the differences in encoding between text and audio data may lead to inaccurate clustering results. Therefore, the server can convert the format of each dialogue data into a single format, determine the corresponding statement for each dialogue data, and then cluster the dialogue data based on each statement.
[0077] Specifically, when the dialogue data is audio data, the server can determine the corresponding audio data for each dialogue data.
[0078] Then, the audio data is used as input to a pre-defined semantic recognition algorithm to transcribe the audio data into text data.
[0079] Finally, based on the characteristics of the identified text and audio data, such as Mel-scale frequency cepstral coefficients (MFCC), the identified text data is segmented into sentences to determine the corresponding statements for each dialogue data.
[0080] Furthermore, for each cluster, if the cluster is clustered based on the encoding form of features, the commonalities of the identified clusters can be used to characterize the common encoding form of the dialogue data contained in that cluster. If semantic clustering is performed on the dialogue data, then the dialogue data in each resulting cluster will contain similar semantics.
[0081] Based on this, the server can perform semantic clustering on each dialogue data.
[0082] Specifically, after identifying each statement, the server can use all the statements contained in the dialogue data as input and input them sequentially into a pre-trained semantic model to obtain the semantic vector corresponding to the dialogue data.
[0083] The semantic model can be an encoder-decoder network or a convolutional neural network, etc. The specific structure of the semantic model can be set as needed, and this specification does not impose any restrictions on it.
[0084] Of course, since the length of sentences usually varies, the number of characters contained in different sentences may vary greatly. Therefore, the server can also perform word segmentation on the determined sentences, determine the word segmentation sequence corresponding to each sentence contained in the dialogue data, and then use the word segmentation sequence as the input of the model to determine the semantic vector.
[0085] In addition, considering that the statement may contain too many words such as "I" and "you", which may result in the clustering result being the semantics represented by words such as "I" and "you" when clustering based on the determined semantic vector, the server can also perform word segmentation on the determined statement and filter out words such as stop words before determining the semantic vector.
[0086] Specifically, the server can pre-train a specific word segmentation model.
[0087] Secondly, the server can take each sentence in the text data as input, input it into the pre-trained word segmentation model, and output the word segmentation results corresponding to each sentence.
[0088] Then, for each statement, the server can update the word segmentation result corresponding to the statement according to the preset stop word list, that is, filter the stop words in the word segmentation result to obtain the word sequence corresponding to the statement that does not contain stop words.
[0089] Finally, the server can use the updated result as the word segmentation sequence corresponding to the statement.
[0090] For each statement, the semantic vector corresponding to that statement can be generated in the following way:
[0091] The server can pre-train a semantic extraction model using labeled data. After identifying a statement, the server can take the statement as input and input it into the pre-trained semantic extraction model to determine the semantic vector corresponding to the statement.
[0092] In addition, the above-mentioned processing of each sentence to determine the corresponding word segmentation sequence typically includes three parts: Chinese word segmentation, text cleaning, and text denoising. Chinese word segmentation involves dividing a continuous, uninterrupted sequence of Chinese characters into individual words according to certain standards. Chinese word segmentation is the foundation of text mining; successful segmentation of a given Chinese text allows for automatic computer recognition of the sentence's meaning. Text cleaning primarily aims to standardize and unify the text, facilitating subsequent analysis and mining. This mainly includes the following steps: case conversion, full-width / half-width character conversion, simplified / traditional character conversion, and special character conversion. Text denoising primarily involves removing stop words, i.e., deleting words that have no significant meaning for understanding the text, such as high-frequency but meaningless words like modal particles, adverbs, prepositions, and conjunctions.
[0093] Determining the word segmentation sequence can effectively remove unimportant information from the text, effectively standardize the text while preserving semantic information, and provide a unified input text for subsequent determination of semantic vectors.
[0094] Furthermore, when performing clustering based on semantic vectors, the server can determine the keywords corresponding to each cluster based on the semantic model.
[0095] Specifically, the server can determine the dialogue data corresponding to each semantic vector contained in each cluster.
[0096] Secondly, the server can count the frequency of each word in the word segmentation sequence of each dialogue data, and determine several central words based on the statistical results.
[0097] Then, the server can input each central word into the semantic model to determine the word vector corresponding to each central word.
[0098] Finally, the server can determine the keywords corresponding to the cluster based on each word segmentation vector and each semantic vector contained in the cluster.
[0099] The word segmentation sequences of the dialogue data mentioned above can be updated based on the stop word list or not.
[0100] S104: Based on the dialogue data contained in each cluster, determine the first weight of each cluster to determine the evaluation index of each keyword in the execution result of that cluster.
[0101] In one or more embodiments provided in this specification, for each type of execution result of a specified service, if a certain cluster contains more dialogue data and another cluster contains less dialogue data, then when a dialogue is initiated based on the keywords corresponding to the cluster containing more dialogue data, the user is more likely to achieve that type of execution result for the specified service. Conversely, when a dialogue is initiated based on the keywords corresponding to the cluster containing less dialogue data, the user is less likely to achieve that type of execution result for the specified service.
[0102] Based on this, the server can determine the first weight of each cluster according to the dialogue data contained in each cluster, so as to determine the evaluation index of each keyword in the execution result of that class.
[0103] Specifically, the server can determine the dialogue data contained in each cluster.
[0104] The server can then determine a first weight for the cluster based on the amount of dialogue data contained within it. This first weight characterizes the proportion of the cluster in the execution results of the class to which the cluster belongs. This first weight is positively correlated with the amount of dialogue data contained in the cluster.
[0105] Finally, the server can determine the evaluation metric for the keyword in the execution results of that class based on the first weight of the cluster.
[0106] The evaluation index can be a score, such as directly using the first weight of the cluster as the evaluation index of the keyword. Alternatively, the evaluation index can be a preset level, such as determining the weight range into which the first weight falls based on the first weight of the cluster, determining the level corresponding to the cluster based on the range, and determining the evaluation index of the keyword corresponding to the cluster based on the level.
[0107] Furthermore, for each cluster in the execution results of a specified business, if the distance between each semantic vector contained in the cluster and the cluster center of the cluster is small, then when a dialogue is initiated based on the keywords corresponding to the cluster, the semantics and flow of the dialogue are relatively similar. In other words, when a dialogue is initiated based on the keywords corresponding to the cluster, the probability that the execution result of the user executing the specified business is that type of execution result is relatively stable.
[0108] Based on this, the server can determine the first weight based on the similarity of dialogue data in each cluster.
[0109] Specifically, the server can determine the location of the cluster center for each cluster.
[0110] Then, the server can determine the distance between each dialogue data contained in the cluster and the cluster center.
[0111] Finally, the server can determine the first weight of the cluster based on the determined distance. This first weight is negatively correlated with the distance; that is, the closer the distance, the higher the first weight, and the farther the distance, the lower the first weight.
[0112] The distance can be Euclidean distance, etc., and can be determined by superimposing the distances between each dialogue data and the cluster center, or it can be the average distance. The specific method and type of distance determination can be set as needed, and this manual does not impose any restrictions on it.
[0113] S106: Based on the evaluation indicators of each keyword in the various results of the specified service, and the preset second weights of various execution results, determine the keywords corresponding to the specified service as the dialogue topics of the specified service.
[0114] In one or more embodiments provided in this specification, as described above, for each type of execution result of a specified service, when conducting a dialogue based on the keywords of each cluster corresponding to that type of execution result, the probability that the user executing the specified service will result in that type of execution result is relatively high. However, if the same keyword exists in different execution results, it may be impossible to determine the keyword corresponding to the specified service based solely on the keyword evaluation index. But if a second weight is preset for each type of execution result, the keyword corresponding to the specified service can be determined based on the evaluation index of each keyword and each second weight.
[0115] Based on this, the server can determine the keywords corresponding to the specified business as the dialogue topic of the specified business based on the evaluation indicators of each keyword in various execution results of the specified business and the preset second weight of each type of execution result.
[0116] Specifically, the server can first determine each keyword, that is, it can statistically analyze the keywords in each type of execution result of the specified business to determine each keyword.
[0117] Then, the server can determine the final evaluation for each keyword based on the evaluation indicators of the keyword in the various execution results of the specified business, as well as the preset second weight of each type of execution result.
[0118] Taking a specified business as an example, which includes two types of execution results: successful execution and unsuccessful execution, with a weight of 1 for successful execution and a weight of -1 for unsuccessful execution, if the evaluation index of the keyword "machinery" is 5 for successful execution of the specified business and 7 for unsuccessful execution of the specified business, then the final evaluation of the keyword "machinery" can be determined to be -2.
[0119] Finally, the server can sort the keywords according to their respective final evaluations, and determine the keywords corresponding to the specified service based on this sorting, which will then serve as the dialogue topic for that specified service.
[0120] Of course, in addition to determining the final evaluation, the server can also sort the keywords in each type of execution result according to the evaluation indicators to determine the keyword ranking of that execution result. Then, based on the weight of each type of execution result and the keyword sequences in other types of execution results, the keywords of that execution result are updated. For example, if the keyword sequence for successful execution is A, B, and C, and the keyword sequence for failed execution is B and D, then the server can remove keyword B from the successful keyword sequence. The specific method for determining the keywords corresponding to a specific business can be set as needed, and this manual does not impose any restrictions on it.
[0121] based on Figure 1 The proposed method for determining dialogue topics involves identifying several dialogue data sets and their corresponding execution results. For each type of execution result within a specified business function, the dialogue data within that result set are clustered to determine each cluster and its corresponding keywords. Based on the dialogue data within each cluster, evaluation metrics for each keyword in that type of execution result are determined. Finally, based on these evaluation metrics and pre-defined second weights for each type of execution result, the dialogue topic corresponding to the specified business function is determined. The dialogue topics determined by this method are strongly correlated with the specified business function, thus ensuring that when a dialogue is initiated with a user based on a dialogue topic, the probability of the user performing the specified business function corresponding to that dialogue topic is increased, improving the efficiency of business guidance.
[0122] based on Figure 1 The method for determining the dialogue topic is shown in this manual. A flowchart illustrating the process of determining the dialogue topic is provided, as follows: Figure 2 As shown.
[0123] Figure 2This diagram illustrates the process of determining a dialogue topic, as provided in this specification. The server retrieves several dialogue data points and their corresponding execution results from a database. Then, based on the various execution results of a specified service, the server categorizes the acquired dialogue data and clusters the dialogue data within each category of execution results, resulting in separate clusters. In the diagram, the white dot corresponds to the cluster for keyword A, the light gray dot to keyword B, the black dot to keyword C, and the dark gray dot to keyword D. The second weight for executing a specified service is 1, and the second weight for not executing a specified service is -1.
[0124] Therefore, based on the evaluation indicators of each keyword's execution results and the preset second weights for each type of execution result, the final evaluation for each keyword can be determined. Keyword A has a final evaluation of 3, keyword B has a final evaluation of -2, keyword C has a final evaluation of 4, and keyword D has a final evaluation of -3. Based on these final evaluations, the server can determine that keyword C is the keyword corresponding to the specified service and use keyword C as the dialogue topic for the specified service.
[0125] It should be noted that the above database is only an example of how to store dialogue data and its corresponding execution results. How to pre-store dialogue data and its execution results and retrieve them when needed can be configured as required, and this manual does not impose any restrictions on this.
[0126] In addition, after determining the dialogue topic for a specific service, the server can generate excellent scripts for each service based on that dialogue topic to ensure efficient service guidance.
[0127] Furthermore, the topic of the conversation changes over time. Therefore, in order to accurately determine the topic of the conversation, the server can also determine the keywords for a specific business based on the changing trends of each keyword over time.
[0128] Specifically, the server can acquire dialogue data for each preset time period.
[0129] Then, for each time period, following steps S100 to S106 above, determine the keywords for that time period and the final evaluation of each keyword.
[0130] Finally, based on the final evaluations, the changing trends of each keyword are determined, and based on these trends, the keywords for the specific business are determined. For example... Figure 3 As shown.
[0131] Figure 3 This is an analysis diagram corresponding to each dialogue topic provided in this manual. The diagram shows keywords from January to March, with each month as a time period, along with their corresponding final evaluations. Based on these final evaluations, the server can determine the trend of each key point over time. For example, A: 10-7-6, B: 7-9-8, C: 5-4-1, D: 1-2-7. Based on these trends, the server can determine the dialogue topics that can be used in the next period. For example, if the trend for dialogue topic D is steadily increasing, then topic D can be determined as the dialogue topic for the next period.
[0132] Of course, the specific method for determining the dialogue topic based on the changing trend can be set as needed, and this manual does not impose any restrictions on this.
[0133] Furthermore, in this specification, there may be multiple designated services, and each designated service may exist within a single service. For example, the designated services involved in an insurance service may include click services, favorite services, order placement services, etc. The server can then determine the various types of execution results for the service and the third weight of each type of execution result based on the execution results of each type of service.
[0134] Then, based on the first weight of each cluster and the third weight of the execution result of each category, the weight corresponding to each keyword is determined, and based on each weight, the keyword corresponding to the service is determined as the dialogue topic of the service.
[0135] The above describes one or more embodiments of the dialogue topic determination method provided in this specification. Based on the same idea, this specification also provides a corresponding dialogue topic determination device, such as... Figure 4 As shown.
[0136] Figure 4 The schematic diagram of the dialogue topic determination device provided in this specification includes:
[0137] The first determining module 200 is used to determine a number of dialogue data and the execution results corresponding to each dialogue data. The execution results are used to indicate the execution results of the user corresponding to the dialogue data for the specified service.
[0138] The keyword determination module 202 is used to cluster the dialogue data corresponding to each type of execution result of the specified business, obtain each cluster, and determine the keywords corresponding to each cluster.
[0139] The second determining module 204 is used to determine the first weight of each cluster based on the dialogue data contained in each cluster, so as to determine the evaluation index of each keyword in the execution result of that cluster.
[0140] The dialogue topic determination module 206 is used to determine the first weight of each cluster based on the dialogue data contained in each cluster, so as to determine the evaluation index of each keyword in the execution result of that cluster.
[0141] Optionally, the keyword determination module 202 is used to determine each statement contained in the dialogue data for each type of execution result, determine the word segmentation sequence corresponding to each statement, input each analysis sequence into the semantic model in sequence according to the order of each statement in the dialogue data, obtain the semantic vector corresponding to the dialogue data, and cluster each semantic vector belonging to the type of execution result to obtain each cluster.
[0142] Optionally, the keyword determination module 202 is used to determine the dialogue data corresponding to each semantic vector contained in each cluster for each cluster, count the frequency of each word in the word segmentation sequence of each dialogue data, and determine several central words based on the statistical results. Each central word is then input into the semantic model to determine the word vector corresponding to each central word. For each word vector, the similarity between the word vector and each semantic vector contained in the cluster is used to determine the similarity between the word vector and the cluster. Finally, based on the similarity between each word vector and the cluster, the keyword corresponding to the cluster is determined.
[0143] Optionally, the second determining module 204 is used to determine the number of dialogue data contained in each cluster, and to determine a first weight of the cluster based on the number, wherein the first weight is positively correlated with the number.
[0144] Optionally, the second determining module 204 is used to determine the cluster center of each cluster, determine the relevance of the cluster based on the distance between each dialogue data contained in the cluster and the cluster center, and determine the first weight of the cluster based on the relevance, wherein the first weight is positively correlated with the relevance.
[0145] Optionally, the keyword determination module 202 is used to determine the dialogue data corresponding to each semantic vector contained in each cluster for each cluster, to count the frequency of each word in the word segmentation sequence of each dialogue data, and to determine several central words based on the statistical results, to input each central word into the semantic model, to determine the word vector corresponding to each central word, and to determine the keyword corresponding to the cluster based on each word vector and each semantic vector contained in the cluster.
[0146] Optionally, the dialogue topic determination module 206 is used to determine the final evaluation of each keyword based on the evaluation indicators of each keyword in various execution results of the specified business, and the preset second weight of each type of execution result, and to determine the keyword corresponding to the specified business based on the final evaluation.
[0147] Optionally, the dialogue topic determination module 206 is used to determine the keywords corresponding to each time period according to a preset time period, as well as the final evaluation corresponding to each keyword, and to determine the trend of each keyword changing with the time period based on the evaluation indicators, and to determine the keywords corresponding to the specified business based on the trend of change.
[0148] It should be noted that all actions involving the acquisition of signals, information, or data in this invention are carried out in compliance with the relevant data protection laws and policies of the country where the invention is located, and with authorization from the owner of the relevant device.
[0149] This specification also provides a computer-readable storage medium storing a computer program that can be used to execute the above-described... Figure 1 The provided method for determining the topic of the conversation.
[0150] This instruction manual also provides Figure 5 The diagram shows a schematic structural representation of the electronic device. Figure 5 At the hardware level, the electronic device includes a processor, internal bus, network interface, memory, and non-volatile memory, and may also include other hardware required for the business operations. The processor reads the corresponding computer program from the non-volatile memory into memory and then runs it to achieve the above-mentioned functions. Figure 1 The method for determining the dialogue topic is described above. Of course, in addition to software implementation, this specification does not exclude other implementation methods, such as logic devices or a combination of hardware and software, etc. In other words, the execution subject of the following processing flow is not limited to individual logic units, but can also be hardware or logic devices.
[0151] In the 1990s, improvements to a technology could be clearly distinguished as either hardware improvements (e.g., improvements to the circuit structure of diodes, transistors, switches, etc.) or software improvements (improvements to the methodology). However, with technological advancements, many methodological improvements today can be considered direct improvements to the hardware circuit structure. Designers almost always obtain the corresponding hardware circuit structure by programming the improved methodology into the hardware circuit. Therefore, it cannot be said that a methodological improvement cannot be implemented using hardware physical modules. For example, a Programmable Logic Device (PLD) (such as a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic function is determined by the user programming the device. Designers can program and "integrate" a digital system onto a PLD themselves, without needing chip manufacturers to design and manufacture dedicated integrated circuit chips. Furthermore, nowadays, instead of manually manufacturing integrated circuit chips, this programming is mostly implemented using "logic compiler" software. Similar to the software compiler used in program development, the original code before compilation must be written in a specific programming language, called a Hardware Description Language (HDL). There are many HDLs, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language). Currently, the most commonly used are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should understand that by simply performing some logic programming on the method flow using one of these hardware description languages and programming it into an integrated circuit, the hardware circuit implementing the logical method flow can be easily obtained.
[0152] The controller can be implemented in any suitable manner. For example, it can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. A memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also recognize that, in addition to implementing the controller in purely computer-readable program code form, the same functionality can be achieved by logically programming the method steps to make the controller take the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers. Therefore, such a controller can be considered a hardware component, and the means included therein for implementing various functions can also be considered as structures within the hardware component. Alternatively, the means for implementing various functions can be considered as both software modules implementing the method and structures within the hardware component.
[0153] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, a computer can be, for example, a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email device, game console, tablet computer, wearable device, or any combination of these devices.
[0154] For ease of description, the above devices are described in terms of function, divided into various units. Of course, in implementing this specification, the functions of each unit can be implemented in one or more software and / or hardware components.
[0155] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0156] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0157] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0158] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0159] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0160] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0161] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0162] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0163] Those skilled in the art will understand that the embodiments of this specification can be provided as methods, systems, or computer program products. Therefore, this specification may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this specification may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0164] This specification can be described in the general context of computer-executable instructions that are executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform a specific task or implement a specific abstract data type. This specification can also be practiced in distributed computing environments, where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.
[0165] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to interchangeably. Each embodiment focuses on describing the differences from other embodiments. In particular, the system embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments.
[0166] The above description is merely an embodiment of this specification and is not intended to limit this specification. Various modifications and variations can be made to this specification by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this specification should be included within the scope of the claims of this specification.
Claims
1. A method for determining a dialogue topic, characterized in that, include: Determine a number of dialogue data and the execution result corresponding to each dialogue data, wherein the execution result is used to indicate the execution result of the user corresponding to the dialogue data for the specified service; For each type of execution result of the specified service, the corresponding dialogue data of each type of execution result is clustered to obtain each cluster, and the keywords corresponding to each cluster are determined. Based on the dialogue data contained in each cluster, the first weight of each cluster is determined to determine the evaluation index of each keyword in the execution result of that cluster. Based on the evaluation indicators of each keyword in the various execution results of the specified business, and the preset second weight of each type of execution result, the keywords corresponding to the specified business are determined as the dialogue topics of the specified business. Clustering is performed on the dialogue data corresponding to this type of execution result to obtain various clusters, specifically including: For each dialogue data corresponding to this type of execution result, determine the statements contained in the dialogue data; Determine the word segmentation sequence corresponding to each statement, and input each word segmentation sequence into the semantic model in sequence according to the order of the statements in the dialogue data to obtain the semantic vector corresponding to the dialogue data. Cluster the semantic vectors belonging to this type of execution result to obtain each cluster; Determining the keywords corresponding to each cluster specifically includes: For each cluster, determine the dialogue data corresponding to each semantic vector contained in that cluster; The frequency of each word in the word segmentation sequence of each dialogue data is statistically analyzed, and several central word segments are determined based on the statistical results. Each central word segment is input into the semantic model to determine the word vector corresponding to each central word segment; For each word vector, the similarity between the word vector and the semantic vectors contained in the cluster is determined. Based on the similarity of each word vector to the cluster, the keywords corresponding to the cluster are determined.
2. The method as described in claim 1, characterized in that, Determining the first weight of each cluster includes: For each cluster, determine the amount of dialogue data contained in that cluster; Based on the quantity, a first weight for the cluster is determined, and the first weight is positively correlated with the quantity.
3. The method as described in claim 1, characterized in that, Based on the evaluation metrics of each keyword in various execution results of the specified service, and the preset second weights of various execution results, the keywords corresponding to the specified service are determined, specifically including: The final evaluation of each keyword is determined based on the evaluation indicators of each keyword in the various execution results of the specified business, as well as the preset second weight of each type of execution result. Based on the final evaluation, the keywords corresponding to the specified business are determined.
4. The method as described in claim 3, characterized in that, The method further includes: According to the preset time period, determine the keywords corresponding to each time period and the final evaluation corresponding to each keyword; Based on the evaluation indicators, determine the trend of each keyword changing over the time period; Based on the trend of change, determine the keywords corresponding to the specified business.
5. The method as described in claim 1, characterized in that, Based on the dialogue data contained in each cluster, the first weight of each cluster is determined, specifically including: For each cluster, determine the cluster center of that cluster; The relevance of the cluster is determined based on the distance between each dialogue data point in the cluster and the cluster center. Based on the relevance, a first weight of the cluster is determined, and the first weight is positively correlated with the relevance.
6. A device for determining a dialogue topic, characterized in that, The device includes: The first determining module is used to determine a number of dialogue data and the execution result corresponding to each dialogue data. The execution result is used to indicate the execution result of the user corresponding to the dialogue data for the specified service. The keyword determination module is used to cluster the dialogue data corresponding to each type of execution result of the specified business, obtain each cluster, and determine the keywords corresponding to each cluster. The second determining module is used to determine the first weight of each cluster based on the dialogue data contained in each cluster, so as to determine the evaluation index of each keyword in the execution result of that cluster. The dialogue topic determination module is used to determine the keywords corresponding to the specified business as the dialogue topic of the specified business based on the evaluation indicators of each keyword in the various execution results of the specified business and the preset second weight of each type of execution result. Clustering is performed on the dialogue data corresponding to this type of execution result to obtain various clusters, specifically including: For each dialogue data corresponding to this type of execution result, determine the statements contained in the dialogue data; Determine the word segmentation sequence corresponding to each statement, and input each word segmentation sequence into the semantic model in sequence according to the order of the statements in the dialogue data to obtain the semantic vector corresponding to the dialogue data. Cluster the semantic vectors belonging to this type of execution result to obtain each cluster; Determining the keywords corresponding to each cluster specifically includes: For each cluster, determine the dialogue data corresponding to each semantic vector contained in that cluster; The frequency of each word in the word segmentation sequence of each dialogue data is statistically analyzed, and several central word segments are determined based on the statistical results. Each central word segment is input into the semantic model to determine the word vector corresponding to each central word segment; For each word vector, the similarity between the word vector and the semantic vectors contained in the cluster is determined. Based on the similarity of each word vector to the cluster, the keywords corresponding to the cluster are determined.
7. A computer-readable storage medium, characterized in that, The storage medium stores a computer program, which, when executed by a processor, implements the method described in any one of claims 1 to 5.
8. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the method described in any one of claims 1 to 5.
Citation Information
Patent Citations
Deep learning method and device based on man-machine interaction
CN107066633A
Text topic determining method and device and electronic equipment
CN107992477A