IP Library Granted Patent US 10,498,898
Granted Patent B2
US 10,498,898 · App. 15/840,295 · Granted Dec 3, 2019

Systems and methods for chatbot generation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,498,898
App. No.
15/840,295
Granted
Dec 3, 2019
Kind
B2
Abstract

A method for configuring a topic-specific chatbot: clustering, by a processor, a plurality of transcripts of interactions between customers and human agents of a contact center of an enterprise to generate a plurality of clusters of interactions, each cluster of interactions corresponding to a topic, each of the interactions including agent phrases and customer phrases; for each cluster of the plurality of clusters of interactions: extracting, by the processor, a topic-specific dialogue tree for the cluster; pruning, by the processor, the topic-specific dialogue tree to generate a deterministic dialogue tree; and configuring, by the processor, a topic-specific chatbot in accordance with the deterministic dialogue tree; and outputting, by the processor, the one or more topic-specific chatbots, each of the topic-specific chatbots being configured to generate, automatically, responses to messages regarding the topic of the topic-specific chatbot from a customer in an interaction between the customer and the enterprise.

Claims (132)

1. A method for configuring one or more topic-specific chatbots for a contact center of an enterprise, the method comprising:

clustering, by a processor, a plurality of transcripts of interactions between customers and human agents of the contact center of the enterprise to generate a plurality of clusters of interactions, each cluster of interactions corresponding to a topic, each of the interactions comprising agent phrases and customer phrases;

for each cluster of the plurality of clusters of interactions:

extracting, by the processor, a topic-specific dialogue tree for the cluster, the topic-specific dialogue tree comprising nodes connected by edges, each of the nodes corresponding to a plurality of agent phrases and each of the edges corresponding to a plurality of customer phrases;

pruning, by the processor, the topic-specific dialogue tree to generate a deterministic dialogue tree by:

identifying a first edge and a second edge having overlapping customer phrases, the first edge corresponding to a sequences of agent phrases most frequently observed in the transcripts of the cluster; and

removing the second edge; and

configuring, by the processor, a topic-specific chatbot in accordance with the deterministic dialogue tree; and

outputting, by the processor, the one or more topic-specific chatbots, each of the topic-specific chatbots being configured to generate, automatically, responses to messages regarding the topic of the topic-specific chatbot from a customer in an interaction between the customer and the enterprise.

2. The method of claim 1 , wherein the clustering the plurality of transcripts comprises:

extracting a description from each of the interactions, the description comprising text;

computing semantic distances between the descriptions; and

clustering the interactions based on semantic distances between the descriptions when the semantic distances satisfy a threshold semantic distance.

3. The method of claim 2 , wherein the description of each transcript of the transcripts is a first customer phrase of the transcript.

4. The method of claim 2 , further comprising for each cluster of the clusters, labeling the cluster, the labeling comprising:

extracting a plurality of content word lemmas from all transcripts of the cluster;

scoring each content word lemma of the content word lemmas to compute a plurality of scores;

extracting all n-grams from each description of the interactions of the cluster, each of the n-grams comprising a number of content words, the number being from one to a maximum keyphrase length;

scoring each n-gram of the n-grams by:

retrieving a score of the scores corresponding to each content word of the n-gram;

summing the scores of the content words of the n-gram; and

scaling the sum in accordance with the number of words in the n-gram;

constructing a graph of the n-grams by:

defining, for each n-gram p extracted from a sentence s, a node (p, s);

for each pair of nodes (p1, s1) and (p2, s2), computing a semantic distance between the n-grams p1 and p2; and

in response to determining that the semantic distance between the n-grams p1 and p2 exceeds a threshold value, adding an edge between nodes (p1, s1) and (p2, s2), the edge having a weight equal to:

(1−semantic distance)*length( p _1)*length( p _2)

extracting a subgraph from the graph having maximum total node and edge weights, wherein the subgraph comprises at most one n-gram from each description;

filtering out nodes of the subgraph that are not connected to other nodes to extract a plurality of connected components; and

outputting an n-gram of the n-grams of the connected components having longest length as a label for the cluster.

5. The method of claim 4 , further comprising:

displaying, on a user interface, the label of each of the clusters;

receiving a command to edit a label of the labels; and

updating the label of the labels in accordance with the command.

6. The method of claim 2 , wherein the interactions comprise a plurality of excluded interactions, each of the excluded interactions failing to satisfy the threshold semantic distance, and

wherein the clustering further comprises, for at least one excluded interaction of the excluded interactions:

computing affiliation scores between each of the clusters and the excluded interaction;

identifying a highest affiliation score of the affiliation scores;

determining whether the highest affiliation score satisfies an affiliation threshold; and

adding the excluded interaction to a cluster corresponding to the highest affiliation score.

7. The method of claim 1 , wherein the extracting the topic-specific dialogue tree for the cluster comprises:

grouping similar phrases of the agent phrases of the interactions of the cluster;

for each group of similar phrases:

computing a percentage of interaction of the cluster containing at least one phrase from the group of similar phrases;

determining whether the percentage exceeds a threshold occurrence rate; and

in response to determining that the percentage exceeds the threshold occurrence rate, generating an anchor corresponding to the group of similar phrases;

projecting the anchors onto the interactions of the cluster to represent the interactions as sequences of anchors;

computing dialogue flows by aligning the sequences of anchors representing the interactions of the clusters; and

computing the topic-specific dialogue tree from the dialogue flows, wherein:

each node of the topic-specific dialogue tree corresponds to an anchor, and

each edge of the topic-specific dialogue tree connects a first node of the topic-specific dialogue tree to a second node of the topic-specific dialogue tree, and the edge corresponds to a plurality of keyphrases characterizing the customer phrases appearing, in the transcripts, in response to the agent phrases of the anchor corresponding to the first node and the agent phrases of the anchor corresponding to the second node are in response to the customer phrases of the edge.

8. The method of claim 7 , further comprising:

displaying the anchors on a user interface;

receiving, via the user interface, a command to edit an anchor of the anchors; and

updating the anchor of the anchors in accordance with the command.

9. A method for configuring one or more topic-specific chatbots for a contact center of an enterprise, the method comprising:

clustering, by a processor, a plurality of transcripts of interactions between customers and human agents of the contact center of the enterprise to generate a plurality of clusters of interactions, each cluster of interactions corresponding to a topic, each of the interactions comprising agent phrases and customer phrases;

for each cluster of the plurality of clusters of interactions:

extracting, by the processor, a topic-specific dialogue tree for the cluster;

pruning, by the processor, the topic-specific dialogue tree to generate a deterministic dialogue tree; and

configuring, by the processor, a topic-specific chatbot in accordance with the deterministic dialogue tree; and

outputting, by the processor, the one or more topic-specific chatbots, each of the topic-specific chatbots being configured to generate, automatically, responses to messages regarding the topic of the topic-specific chatbot from a customer in an interaction between the customer and the enterprise,

wherein the topic-specific dialogue tree comprises nodes connected by edges, each of the nodes corresponding to a plurality of agent phrases and each of the edges corresponding to a plurality of customer phrases, and

wherein the pruning the topic-specific dialogue tree comprises:

identifying nodes of the topic-specific dialogue tree having at least two outgoing edges having overlapping customer phrases, each of the outgoing edges connecting a corresponding first node to a corresponding second node;

identifying one edge from among the at least two outgoing edges corresponding to sequences of agent phrases of the second nodes of the at least two outgoing edges most frequently observed in the transcripts of the cluster and identifying the remaining edges among the at least two outgoing edges; and

removing the remaining edges from the topic-specific dialogue tree.

10. The method of claim 9 , wherein the pruning the topic-specific dialogue tree further comprises:

displaying the topic-specific dialogue tree on a user interface;

receiving, via the user interface, a command to modify the topic-specific dialogue tree; and

updating the topic-specific dialogue tree in accordance with the command.

11. A system comprising:

a processor; and

memory storing instructions that, when executed by the processor, cause the processor to configure one or more topic-specific chatbots for a contact center of an enterprise, including instructions that cause the processor to:

cluster a plurality of transcripts of interactions between customers and human agents of the contact center of the enterprise to generate a plurality of clusters of interactions, each cluster of interactions corresponding to a topic, each of the interactions comprising agent phrases and customer phrases;

for each cluster of the plurality of clusters of interactions:

extract a topic-specific dialogue tree for the cluster, the topic-specific dialogue tree comprising nodes connected by edges, each of the nodes corresponding to a plurality of agent phrases and each of the edges corresponding to a plurality of customer phrases;

prune the topic-specific dialogue tree to generate a deterministic dialogue tree by:

identifying a first edge and a second edge having overlapping customer phrases, the first edge corresponding to a sequences of agent phrases most frequently observed in the transcripts of the cluster; and

removing the second edge; and

configure a topic-specific chatbot in accordance with the deterministic dialogue tree; and

output the one or more topic-specific chatbots, each of the topic-specific chatbots being configured to generate, automatically, responses to messages regarding the topic of the topic-specific chatbot from a customer in an interaction between the customer and the enterprise.

12. The system of claim 11 , wherein the memory further stores instructions that cause the processor to cluster the plurality of transcripts by:

extracting a description from each of the interactions, the description comprising text;

computing semantic distances between the descriptions; and

clustering the interactions based on semantic distances between the descriptions when the semantic distances satisfy a threshold semantic distance.

13. The system of claim 12 , wherein the description of each transcript of the transcripts is a first customer phrase of the transcript.

14. The system of claim 12 , wherein the memory further stores instructions that, when executed by the processor cause the processor to label each cluster of the clusters by:

extracting a plurality of content word lemmas from all transcripts of the cluster;

scoring each content word lemma of the content word lemmas to compute a plurality of scores;

extracting all n-grams from each description of the interactions of the cluster, each of the n-grams comprising a number of content words, the number being from one to a maximum keyphrase length;

scoring each n-gram of the n-grams by:

retrieving a score of the scores corresponding to each content word of the n-gram;

summing the scores of the content words of the n-gram; and

scaling the sum in accordance with the number of words in the n-gram;

constructing a graph of the n-grams by:

defining, for each n-gram p extracted from a sentence s, a node (p, s);

for each pair of nodes (p1, s1) and (p2, s2), computing a semantic distance between the n-grams p1 and p2; and

in response to determining that the semantic distance between the n-grams p1 and p2 exceeds a threshold value, adding an edge between nodes (p1, s1) and (p2, s2), the edge having a weight equal to:

(1−semantic distance)*length( p _1)*length( p _2)

extracting a subgraph from the graph having maximum total node and edge weights, wherein the subgraph comprises at most one n-gram from each description;

filtering out nodes of the subgraph that are not connected to other nodes to extract a plurality of connected components; and

outputting an n-gram of the n-grams of the connected components having longest length as a label for the cluster.

15. The system of claim 14 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to:

display, on a user interface, the label of each of the clusters;

receive a command to edit a label of the labels; and

update the label of the labels in accordance with the command.

16. The system of claim 12 , wherein the interactions comprise a plurality of excluded interactions, each of the excluded interactions failing to satisfy the threshold semantic distance, and

wherein the memory further stores instructions that cause the processor to cluster at least one excluded interaction of the excluded interactions by:

computing affiliation scores between each of the clusters and the excluded interaction;

identifying a highest affiliation score of the affiliation scores;

determining whether the highest affiliation score satisfies an affiliation threshold; and

adding the excluded interaction to a cluster corresponding to the highest affiliation score.

17. The system of claim 11 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to extract the topic-specific dialogue tree for the cluster by:

grouping similar phrases of the agent phrases of the interactions of the cluster;

for each group of similar phrases:

computing a percentage of interaction of the cluster containing at least one phrase from the group of similar phrases;

determining whether the percentage exceeds a threshold occurrence rate; and

in response to determining that the percentage exceeds the threshold occurrence rate, generating an anchor corresponding to the group of similar phrases;

projecting the anchors onto the interactions of the cluster to represent the interactions as sequences of anchors;

computing dialogue flows by aligning the sequences of anchors representing the interactions of the clusters; and

computing the topic-specific dialogue tree from the dialogue flows, wherein:

each node of the topic-specific dialogue tree corresponds to an anchor, and

each edge of the topic-specific dialogue tree connects a first node of the topic-specific dialogue tree to a second node of the topic-specific dialogue tree, and the edge corresponds to a plurality of keyphrases characterizing the customer phrases appearing, in the transcripts, in response to the agent phrases of the anchor corresponding to the first node and the agent phrases of the anchor corresponding to the second node are in response to the customer phrases of the edge.

18. The system of claim 17 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to:

display the anchors on a user interface;

receive, via the user interface, a command to edit an anchor of the anchors; and

update the anchor of the anchors in accordance with the command.

19. The system of claim 18 , wherein the memory further stores instructions that, when executed by the processor cause the processor to prune the topic-specific dialogue tree by:

displaying the topic-specific dialogue tree on a user interface;

receiving, via the user interface, a command to modify the topic-specific dialogue tree; and

updating the topic-specific dialogue tree in accordance with the command.

Assignments (6)
NOTICE OF SUCCESSION OF SECURITY INTERESTS AT REEL/FRAME 050860/0227 Recorded Feb 3, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR AGENT
Reel/Frame 070096/0452 →
CHANGE OF NAME Recorded May 13, 2024
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
To: GENESYS CLOUD SERVICES, INC.
Reel/Frame 067391/0089 →
SECURITY INTEREST Recorded Nov 4, 2020
From: VAULT PRESSURE CONTROL LLC
To: SIENA LENDING GROUP LLC
Reel/Frame 054302/0559 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO ADD PAGE 2 OF THE SECURITY AGREEMENT WHICH WAS INADVERTENTLY OMITTED PREVIOUSLY RECORDED ON REEL 049916 FRAME 0454. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Oct 29, 2019
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 050860/0227 →
SECURITY AGREEMENT Recorded Jul 31, 2019
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 049916/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2018
From: MAZZA, ARNON; FAIZAKOF, AVRAHAM; LEV-TOV, AMIR; TAPUHI, TAMIR; KONIG, YOCHAI
To: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
Reel/Frame 046054/0692 →