Related Systems and Methods for Mining Topics in Conversations

By applying the topic mining algorithm in the customer relationship management system, the topic information in the conversation between customers and agents is automatically extracted, and the inefficiency problem in the existing technology is solved, and more efficient analysis and operation efficiency is achieved.

JP2025512816APending Publication Date: 2025-04-22GENESIS CLOUD SERVICES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024556725
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-03-30
Filing Date
2023-03-30
Publication Date
2025-04-22

AI Technical Summary

Technical Problem

The prior art is difficult to extract topic information from the conversation between customers and customer service agents efficiently and automatically, resulting in a lack of effective analysis and operational efficiency in customer relationship management.

Method used

By using a topic mining algorithm, the algorithm includes identifying candidate topics in a conversation, determining keywords through partial syntax tags (POS) tags and graph rankings, accumulating candidate topics, filtering according to functional factors in the conversation, finalizing topics, and grouping topics with related statements.

Benefits of technology

It realizes automated theme mining for a large number of natural language conversations, improves the analytical efficiency in customer relationship management and the operational efficiency of contact centers, and helps enterprises better understand customer problems and trends.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025512816000001_ABST
    Figure 2025512816000001_ABST
Patent Text Reader

Abstract

A method for mining topics discussed in a conversation, the method comprising receiving conversation data and using a topic mining algorithm to mine topics from the conversation data. The topic mining algorithm includes identifying candidate topics in each of the conversations. The topic mining algorithm further includes identifying topics for the conversations by accumulating a list of candidate topics, pruning the list of candidate topics by discarding some of the candidate topics for each cross-conversation factor that factors usage across all conversations, and identifying as topics the candidate topics remaining on the pruned list of candidate topics. The topic mining algorithm further includes determining topic groups by grouping the topics according to semantic similarities between the topics, and associating a list of utterances with the topic groups.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] (CROSS REFERENCE TO RELATED APPLICATIONS AND PRIORITY CLAIM) This application claims priority to U.S. patent application Ser. No. 17 / 708,679, filed Mar. 30, 2022, entitled "SYSTEMS AND METHODS RELATING TO MINING TOPICS IN CONVERSATIONS." [Background technology]

[0002] The present invention relates generally to the field of customer relationship management, and more particularly, but not exclusively, to telecommunications systems in the field of customer relationship management, including automating the mining of topics discussed within conversations between customers and customer service agents, delivering improved analytics related thereto, and more efficient contact center operations. Summary of the Invention

[0003] The present application describes a computer-implemented method related to mining topics discussed within a conversation. The method may include receiving, by a processor, conversation data including text derived from a conversation occurring between a customer and an agent, and using, by the processor, a topic mining algorithm to automatically mine topics from the conversation of the conversation data. The topic mining algorithm may include identifying candidate topics within each of the conversations. In the context of an exemplary first conversation of the conversation, identifying candidate topics may include identifying utterances within the first conversation, where the utterances are defined as turns within the first conversation in which the customer, in the form of a customer utterance, or the agent, in the form of an agent utterance, is communicating; tagging each word within the utterance with a part-of-speech (POS) tag; identifying keywords from the utterance based on the POS tags, where the keywords are defined as words having a POS tag indicating that the word is one of a noun, an adjective, and a verb; and using a graph-based ranking to determine the relative importance of the keywords within the first conversation. The method may include calculating a keyword importance score for each of the keywords according to the determined relative importance using an algorithm to identify keyphrases in the first conversation, where a keyphrase is defined as a keyword where the keywords appear consecutively, calculating the keyphrase importance score as a sum of the keyword importance scores for the keywords contained within the keyphrase, and determining the relative importance of each of the keyphrases in the first conversation by comparing the calculated keyphrase importance scores, and selecting a predetermined number of keyphrases with the highest keyphrase importance scores as candidate topics from the first conversation.The topic mining algorithm may further include identifying topics for a conversation by accumulating a list of candidate topics found in the conversation, pruning the list of candidate topics by discarding some of the candidate topics according to a cross-conversation factor that factors the candidate topic usage across all of the conversations, and identifying the candidate topics remaining on the pruned list of candidate topics as topics. The topic mining algorithm may further include determining topic groups by grouping the topics into topic groups according to semantic similarities between the topics, and associating the list of utterances with the topic groups by accumulating the accumulated utterances, utterances corresponding to the topics included in each of the topic groups, and associating the list of utterances with the topic groups.

[0004] These and other features of the present application will become more apparent from a consideration of the following detailed description of exemplary embodiments taken in conjunction with the drawings and the appended claims. [Brief description of the drawings]

[0005] A more complete understanding of the present invention will be more readily apparent as the invention becomes better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings, in which like reference characters indicate like elements and in which: [Figure 1] 1 illustrates a schematic block diagram of a computing device according to an exemplary embodiment of the present invention and / or on which an exemplary embodiment of the present invention may be enabled or practiced. [Diagram 2] 1 illustrates a schematic block diagram of a communications infrastructure or contact center according to an exemplary embodiment of the present invention and / or in which an exemplary embodiment of the present invention may be enabled or implemented; [Diagram 3] 1 is a topic mining workflow according to an exemplary embodiment of the present invention. [Figure 4]1 is an exemplary flow chart of a topic mining algorithm according to an exemplary embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0006] For the purposes of promoting an understanding of the principles of the present invention, reference will now be made to exemplary embodiments illustrated in the drawings and specific language will be used to describe the same. However, it will be apparent to one skilled in the art that detailed materials provided in the examples may not be required to practice the present invention. In other instances, well-known materials or methods have not been described in detail to avoid obscuring the invention. As used herein, language designating non-limiting examples and illustrations includes "eg," "ie," "for example," "for instance," and the like. Furthermore, throughout this specification, reference to an "embodiment," "one embodiment," "the present embodiment," "an exemplary embodiment," "a particular embodiment," and the like means that a particular feature, structure, or characteristic described in connection with a given example may be included in at least one embodiment of the present invention. Particular features, structures, or characteristics may be combined in any suitable combination and / or subcombination in one or more embodiments or examples. Those skilled in the art will recognize from this disclosure that various embodiments may be computer-implemented using many different types of data processing equipment, and that the embodiments may be implemented as an apparatus, a method, or a computer program product.

[0007] The flowcharts and block diagrams provided in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to exemplary embodiments of the present invention. In this regard, it will be understood that each block of the flowcharts and / or block diagrams, or a combination of blocks thereof, may represent a module, segment, or portion of a program code having one or more executable instructions for implementing the specified logical functions. Similarly, it will be understood that each block of the flowcharts and / or block diagrams, or a combination of blocks thereof, may be implemented by a dedicated hardware-based system or a combination of dedicated hardware and computer instructions to perform a particular operation or function. Such computer program instructions may also be stored in a computer-readable medium that can instruct a computer or other programmable data processing apparatus to function in a particular manner, such that the program instructions in the computer-readable medium can produce an article of manufacture including instructions for implementing the function or operation specified in each block of the flowcharts and / or block diagrams, or a combination of blocks thereof.

[0008] Computing Devices It will be appreciated that the systems and methods of the present invention may be computer-implemented using many different forms of data processing equipment, such as digital microprocessors and associated memory, executing appropriate software programs. By way of background, Figure 1 illustrates a schematic block diagram of an exemplary computing device 100 in accordance with and / or on which embodiments of the present invention may be enabled or practiced. It should be understood that Figure 1 is provided as a non-limiting example.

[0009] Computing device 100 may be implemented, for example, via firmware (e.g., application specific integrated circuits), hardware, or a combination of software, firmware, and hardware. It will be understood that each of the servers, controllers, switches, gateways, engines, and / or modules (which may be collectively referred to as servers or modules) in the following figures may be implemented via one or more of computing devices 100. As an example, various servers may be processes running on one or more processors of one or more computing devices 100 that execute computer program instructions and may interact with other systems or modules to perform various functions described herein. Unless otherwise specifically limited, functionality described in conjunction with multiple computing devices may be integrated into a single computing device, or various functionality described in conjunction with a single computing device may be distributed across several computing devices. Furthermore, in conjunction with any of the computing systems described herein, the various servers and computer devices may be located on a computing device 100 that is local (i.e., on-site) or remote (i.e., off-site or in a cloud computing environment), or some combination thereof.

[0010] As shown in the illustrated embodiment, computing device 100 may include a central processing unit (CPU) or processor 105 and a main memory 110. Computing device 100 may also include a storage device 115, a removable media interface 120, a network interface 125, an I / O controller 130, and one or more input / output (I / O) devices 135, which may include a display device 135A, a keyboard 135B, and a pointing device 135C as shown. Computing device 100 may further include additional elements, such as a memory port 140, a bridge 145, an I / O port, one or more additional input / output devices 135D, 135E, 135F, and a cache memory 150 in communication with processor 105.

[0011] The processor 105 may be any logic circuit that responds to and processes instructions fetched from the main memory 110. For example, the process 105 may be implemented by an integrated circuit, such as a microprocessor, microcontroller, or graphic processing unit, or by a field programmable gate array or an application specific integrated circuit. As shown, the processor 105 may communicate directly with the cache memory 150 via a secondary bus or a backside bus. The main memory 110 may be one or more memory chips that can store data and allow the stored data to be directly accessed by the central processing unit 105. The storage device 115 may provide storage for an operating system. Unless otherwise limited, the computing device 100 may include an operating system and software capable of performing the functionality described herein.

[0012] As shown in the illustrated embodiment, computing device 100 may include a wide variety of I / O devices 135, one or more of which may be connected via I / O controller 130. Input devices may include, for example, a keyboard 135B and a pointing device 135C (e.g., a mouse or optical pen). Output devices may include, for example, a video display device, speakers, and a printer. Computing device 100 may also support one or more removable media interfaces 120. More generally, I / O devices 135 may include any conventional devices for performing the functions described herein.

[0013] Unless otherwise limited, the computing device 100 may be any workstation, desktop computer, laptop or notebook computer, server machine, virtual machine, mobile or smartphone, portable telecommunication device, or any other type of computing device capable of performing the functions described herein without limitation. The computing device 100 may include multiple devices and resources connected by a network. As used herein, a network includes one or more computing devices, machines, clients, client nodes, client machines, client computers, endpoints, or endpoint nodes that communicate with one or more other such devices. The network may be a private or public switched telephone network (PSTN), a wireless carrier network, a local area network (LAN), a private wide area network (WAN), a public WAN such as the Internet, etc., where connections are established using an appropriate communication protocol. More generally, it should be understood that unless otherwise limited, the computing device 100 may communicate with other computing devices 100 over any type of network using any suitable communication protocol. Furthermore, the network may be a virtual network environment in which various network components are virtualized. Other types of virtualization are also contemplated.

[0014] Contact Center Systems 2, a communications infrastructure or contact center system 200 in accordance with and / or in which an exemplary embodiment of the present invention may be enabled or implemented is shown. It should be understood that, as used herein, the term "contact center system" is used to refer to the system illustrated in FIG. 2 and / or components thereof, whereas the term "contact center" is used more generally to refer to contact center systems, customer service providers that operate those systems, and / or organizations or businesses associated therewith. Thus, unless specifically limited otherwise, the term "contact center" generally refers to a contact center system (such as contact center system 200), associated customer service providers (such as a particular customer service provider that provides customer service through contact center system 200), and / or organizations or businesses on behalf of which customer service is provided.

[0015] By way of background, customer service providers generally provide many types of services through contact centers. Such contact centers may be staffed with employees or customer service agents (or simply "agents") who act as an interface between a company, business, government agency, or organization (hereinafter interchangeably referred to as an "organization" or "business") and people, such as users, individuals, or customers (hereinafter interchangeably referred to as an "individual" or "customer"). For example, contact center agents may take customer orders, resolve customer problems with products or services already received, or help customers make purchasing decisions. Within a contact center, such interactions between contact center agents and external entities or customers may occur over a variety of communication channels, such as, for example, via voice (e.g., telephone calls or voice over IP, i.e., VoIP calls), video (e.g., video conferencing), text (e.g., email and text chat), screen sharing, co-browsing, etc.

[0016] With specific reference to FIG. 2, contact centers generally strive to provide quality service to customers while minimizing costs. Contact centers may include many different systems and modules, as shown in the exemplary contact center system 200, to facilitate this goal. For example, the contact center system 200 may be used to engage and manage interactions in which automated processes (or bots) or human agents communicate with customers. It should be understood that the contact center system 200 may be an in-house facility of a company or business for performing sales and customer service functions therefor. In another aspect, the contact center system 200 may be operated by a third-party service provider contracted to provide services on behalf of another organization. Furthermore, the contact center system 200 may be deployed on equipment dedicated to the business or a third-party service provider and / or may be deployed in a remote computing environment, such as, for example, a private or public cloud environment. The contact center system 200 may include software applications or programs executed on-premise and / or remotely. Thus, various components of the contact center system 200 may be distributed across various geographic locations and / or housed locally.

[0017] It should be understood that unless specifically limited otherwise, any of the computing elements of the present invention may be implemented within a cloud-based or cloud computing environment. As used herein, "cloud computing" or simply "cloud" is defined as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned through virtualization, released with minimal management effort or service provider interaction, and then scaled accordingly. Cloud computing can be comprised of a variety of characteristics (e.g., on-demand self-service, wide area network access, resource pooling, rapid scalability, measurable services, etc.), service models (e.g., Software as a Service ("SaaS"), Platform as a Service ("PaaS"), Infrastructure as a Service ("IaaS"), and deployment models (e.g., private cloud, community cloud, public cloud, etc.). Cloud execution models, often referred to as "serverless architectures," generally involve a service provider dynamically managing the allocation and provisioning of remote servers to accomplish a desired function.

[0018] 2, components or modules of the contact center 200 include a plurality of customer devices 205A, 205B, 205C, a communications network (or simply “network”) 210, a switch / media gateway 212, a call controller 214, an interactive media response (IMR) server 216, a routing server 218, a storage device 220, a statistics (or “stat”) server 226, a plurality of agent devices 230A, 230B, 230C each including workbins 232A, 232B, 232C, a multimedia / social media server 234, a knowledge management server 236 coupled to a knowledge system 238, a chat server 240, a web server 242, a workforce engagement management (WEM) server 243, an interaction server 244, a universal contact server (or “universal contact 2, or in any of the following figures, may be implemented via any type of computing device, including the exemplary computing device 100 of FIG. 1. As will be appreciated, the contact center system 200 generally manages resources (e.g., employees, computers, telecommunications equipment, etc.) to enable delivery of services via telephone, email, chat, or other communication mechanisms. Such services may vary depending on the type of contact center and may include, for example, customer service, help desk functions, emergency response, telemarketing, order taking, etc.

[0019] A customer desiring to receive service from the contact center system 200 may initiate inbound communications (e.g., telephone calls, emails, chats, etc.) to the contact center system 200 via a customer device 205. FIG. 2 shows three such customer devices, namely, customer devices 205A, 205B, and 205C, but it should be understood that any number may be present. The customer device 205 may be, for example, a communication device such as a phone, a smartphone, a computer, a tablet, or a laptop. In accordance with the functionality described herein, a customer may generally use the customer device 205 to initiate, manage, and conduct communications with the contact center system 200, such as telephone calls, emails, chats, text messages, etc.

[0020] Inbound and outbound communications to customer device 205 may traverse network 210, the nature of which typically depends on the type of customer device and form of communication used. By way of example, network 210 may include telephony, mobile telephony, and / or data service communications networks. Network 210 may be a private or public switched telephone network (PSTN), a local area network (LAN), a private wide area network (WAN), and / or a public WAN such as the Internet. Additionally, network 210 may include any wireless carrier network.

[0021] With regard to the switch / media gateway 212, it may be coupled to the network 210 for receiving and transmitting telephone calls between the customer and the contact center system 200. The switch / media gateway 212 may include a telephone or communication switch configured to act as a central switch for routing at the agent level within the center. The switch may be a hardware switching system or may be implemented via software. For example, the switch 215 may include an automatic call distributor, a private branch exchange (PBX), an IP-based software switch, and / or any other switch having dedicated hardware and software configured to receive interactions from the customer, from the Internet and / or from the telephone network and route those interactions, for example, to one of the agent devices 230. Thus, in general, the switch / media gateway 212 establishes a voice connection between the customer and the agent by establishing a connection between the customer device 205 and the agent device 230. As further shown, the switch / media gateway 212 may be coupled to a call controller 214 that acts as an adapter or interface between the switch and other routing, monitoring, and communication processing components of the contact center system 200, for example. The call controller 214 may be configured to process PSTN calls, VoIP calls, etc. For example, the call controller 214 may include computer-telephone integration (CTI) software for interfacing with switches / media gateways and other components. The call controller 214 may include a session initiation protocol (SIP) server for processing SIP calls. The call controller 214 may also extract data about incoming interactions, such as the customer's phone number, IP address, or email address, and then communicate them to other contact center components when processing the interaction.

[0022] With regard to the interactive media response (IMR) server 216, it may be configured to enable self-help or virtual assistant functions. Specifically, the IMR server 216 may be similar to an interactive voice response (IVR) server, except that the IMR server 216 is not limited to voice and may also cover various media channels. In an example illustrating voice, the IMR server 216 may be configured with an IMR script to query a customer for their needs. For example, a bank contact center may tell a customer via an IMR script to "press 1" if the customer wants to get their account balance. Through a continuous interaction with the IMR server 216, the customer can receive service without needing to speak with an agent. The IMR server 216 may also be configured to work out why the customer is contacting the contact center so that the communication can be routed to the appropriate resource.

[0023] With respect to the router or routing server 218, it may function to route incoming interactions. The routing server 218 may perform predictive routing, whereby incoming interactions are routed to resources calculated to provide the best outcome for the customer and / or the contact center. For example, functionality within the routing server 218 may select the most appropriate agent and route the communication thereto. This agent selection may be based on which available agent is best suited to handle the communication. More specifically, the selection of the appropriate agent may be based on a routing strategy or algorithm implemented by the routing server 218. In doing so, the routing server 218 may query data related to the incoming interaction, e.g., data related to the particular customer, the available agents, and the type of interaction, which may be stored in a particular database as described more below. Once an agent is selected, the routing server 218 may interact with the call controller 214 to route (i.e., connect) the incoming interaction to a corresponding agent device 230. As part of this connection, information about the customer may be provided to the selected agent via their / their agent device 230. This information is intended to improve the service that agents can provide to their customers.

[0024] With regard to data storage, the contact center system 200 may include one or more mass storage devices, generally represented as storage device 220, for storing data related to the contact center's functions. For example, the storage device 220 may store customer data maintained in a customer database 222. Such customer data may include customer profiles, contact information, service level agreements (SLAs), and interaction history (e.g., details of previous interactions with a particular customer, including the nature of the previous interactions, disposition data, wait times, handling times, and actions taken by the contact center to resolve the customer's issues). As another example, the storage device 220 may store agent data in an agent database 223. The agent data maintained by the contact center system 200 may include agent availability and agent profiles, schedules, skills, handling times, etc. As another example, the storage device 220 may store interaction data in an interaction database 224. The interaction data may include data related to multiple past interactions between the customer and the contact center. More generally, unless otherwise specifically specified, it should be understood that storage device 220 may include databases and / or be configured to store data related to any of the types of information described herein, which databases and / or data are accessible to other modules or servers of contact center system 200 in a manner that facilitates the functions described herein. For example, a server or module of contact center system 200 may query such a database to retrieve data stored therein or transmit data thereto for storage. Storage device 220 may take the form of, for example, any conventional storage medium and may be housed locally or operated from a remote location.

[0025] With regard to stat server 226, it may be configured to record and aggregate data related to the performance and business aspects of contact center system 200. Such information may be accumulated by stat server 226 and made available to other servers and modules, such as reporting server 248, which may then use the data to generate reports used to manage the business aspects of the contact center and to perform automated actions in accordance with the functionality described herein. Such data may relate to the status of contact center resources, such as average wait times, abandonment rates, agent occupancy, and others as may be required by the functionality described herein.

[0026] The agent devices 230 of the contact center 200 may be communication devices configured to interact with various components and modules of the contact center system 200 in a manner to facilitate the functionality described herein. The agent devices 230 may further include computing devices configured to communicate with the servers of the contact center system 200, perform business related data processing, and talk to customers via voice, chat, email, and other multimedia communication mechanisms in accordance with the functionality described herein. Although FIG. 2 shows three such agent devices 230, any number may be present.

[0027] With regard to the multimedia / social media server 234, it may be configured to facilitate media interactions (other than voice) with the customer devices 205 and / or the web server 242. Such media interactions may relate to, for example, email, voicemail, chat, video, text messaging, web, social media, co-browsing, etc. The multimedia / social media server 234 may take the form of any IP router conventional in the art having dedicated hardware and software for receiving, processing, and forwarding multimedia events and communications.

[0028] With respect to the knowledge management server 234, it may be configured to facilitate interactions between customers and a knowledge system 238. Generally, the knowledge system 238 may be a computer system capable of receiving questions or queries and providing answers in response. The knowledge system 238 may be included as part of the contact center system 200 or may be operated remotely by a third party. The knowledge system 238 may include an artificial intelligence computer system capable of answering questions posed in natural language by retrieving information from sources such as encyclopedias, dictionaries, newswire articles, literary works, or other documents that are populated into the knowledge system 238 as reference material, as is known in the art.

[0029] With respect to the chat server 240, it may be configured to conduct, orchestrate, and manage electronic chat communications with customers. In general, the chat server 240 is configured to conduct and maintain chat conversations and generate chat transcripts. Such chat communications may be conducted by the chat server 240 in such a manner that customers communicate with automated chatbots, human agents, or both. In an exemplary embodiment, the chat server 240 may function as a chat orchestration server that allocates chat conversations to chatbots and available human agents. In such a case, the processing logic of the chat server 240 may be rules driven to leverage intelligent workload distribution among available chat resources. The chat server 240 may further implement, manage, and facilitate chat functionality and associated user interfaces (UIs), including those generated on either the customer device 205 or the agent device 230. The chat server 240 may be configured to transfer chats between automated and human sources within a single chat session with a particular customer, such that, for example, a chat session may be transferred from a chatbot to a human agent or from a human agent to a chatbot. The chat server 240 may also be coupled to the knowledge management server 234 and the knowledge system 238 to receive suggestions and answers to inquiries posed by the customer during the chat, such as to provide links to related articles.

[0030] With respect to web server 242, such a server may be included to provide site hosting for various social interaction sites to which customers subscribe, such as Facebook, Twitter, Instagram, etc. Although illustrated as part of contact center system 200, it should be understood that web server 242 may be provided by a third party and / or maintained remotely. Web server 242 may also provide web pages to businesses or organizations supported by contact center system 200. For example, customers may browse web pages to receive information about products and services of a particular business. Within such business web pages, mechanisms may be provided for initiating interactions with contact center system 200, for example, via web chat, voice, or email. One example of such a mechanism is a widget that may be deployed on a web page or website hosted on web server 242. As used herein, a widget refers to a user interface component that performs a particular function. In some embodiments, a widget may include a graphical user interface control that may be overlaid on a web page displayed to customers via the Internet. A widget may include buttons or other controls that show information in a window or text box, or allow a customer to access a particular function, such as sharing or opening a file, or initiating a communication. In some implementations, a widget includes a user interface component that has a portable portion of code that may be installed and executed in a separate web page without being compiled. Some widgets may include corresponding or additional user interfaces and may be configured to access various local resources (e.g., calendar or contact information on the customer device) or remote resources over a network (e.g., instant messaging, email, or social networking updates).

[0031] With regard to the WEM server 243, it may be configured to host and enable a set of features focused on improving employee engagement in contact centers, which may be broadly referred to as "workforce engagement management" (or "WEM"). The WEM server 243 may provide solutions that help simplify agent experience and drive results and employee satisfaction. The WEM server 243 may include capabilities such as call logging, screen recording, quality management, performance management, voice and text analytics, gamification, and capabilities related to workforce management (or "workforce management, WFM") and workforce optimization ("workforce optimization, WFO"). In general, WFM ensures that the right resources are present at the right time for service, while WFO provides the ability to monitor and act on the content of interactions via quality management and interaction analytics. In addition to these capabilities, WEM further ensures the prerequisites for enabling contact centers to provide effective customer service over time by engaging with agents who provide the service. In doing so, the WEM server 243 may provide capabilities aimed at enabling contact centers to improve metrics related to employee recognition, turnover, and talent development. Additionally, WEM recognizes a shift within the contact center industry from a focus on labor productivity optimization and labor cost management, i.e., workforce optimization, to a more employee-centric focus of engaging agents throughout the entire employment lifecycle. WEM applications are designed to increase agent engagement by automating tasks related to scheduling, coaching, quality management, performance management, etc. More specifically, the WEM server 243 can include core applications such as interaction recording across all channels, quality monitoring with automated scoring, workforce management with AI-infused scheduling and forecasting, performance management, voice and data analytics, etc.The WEM server 243 can further provide features such as gamification, robotic process automation, voice authentication, predictive analytics, chatbots, customer engagement hubs, tools for building custom applications, and AI and analytics. For example, algorithms incorporating AI can prepare more accurate agent schedules, customer insights, routing, etc. that consider more variables and have greater predictive power. Additionally, many of the tedious tasks associated with quality monitoring can be automated, thereby saving time and money and improving agent engagement. Other functionality can include any of the associated features described herein as would be understood and enabled by one of ordinary skill in the art. Such enablement may include connectivity with any of the other servers, devices, and data sources described herein.

[0032] With respect to the interaction server 244, it may be configured to manage the contact center's deferrable activities and the routing to human agents for completion of the activities. As used herein, deferrable activities include back office work that can be performed offline, such as replying to emails, participating in training, and other activities that do not involve real-time communication with customers. As an example, the interaction server 244 may be configured to interact with the routing server 218 to select an appropriate agent to handle each of the deferrable activities. Deferrable activities are assigned to a particular agent such that, when assigned to the agent, the activity is displayed on the selected agent's agent device 230. Deferrable activities may be displayed in a work bin 232 as a task for the selected agent to complete. The functionality of the work bin 232 may be implemented via any conventional data structure, such as, for example, a linked list, an array, and the like. Each of the agent devices 230 may include a work bin 232, with work bins 232A, 232B, and 232C maintained within agent devices 230A, 230B, and 230C, respectively. As an example, a work bin 232 may be maintained in a buffer memory of the corresponding agent device 230 .

[0033] With regard to the universal contact server (UCS) 246, it may be configured to retrieve information stored in the customer database 222 and / or transmit information thereto for storage in that database. For example, the UCS 246 may be utilized as part of a chat function to facilitate maintaining a history of how chats with particular customers were handled, which may then be used as a reference for how future chats should be handled. More generally, the UCS 246 may be configured to facilitate maintaining a history of customer preferences, such as preferred media channels and best times to contact. To do this, the UCS 246 may be configured to identify data related to each customer's interaction history, such as, for example, data regarding comments from agents, customer communication history, and the like. Each of these data types may then be stored in the customer database 222 or other modules and retrieved as needed by the functionality described herein.

[0034] With respect to reporting server 248, it may be configured to generate reports from data accumulated and aggregated by statistics server 226 or other sources. Such reports may include near real-time or historical reports and may relate to the status of contact center resources and performance characteristics, such as, for example, average wait times, abandonment rates, agent occupancy, etc. The reports may be generated automatically or upon specific request from a requesting party (e.g., an agent, an administrator, a contact center application, etc.). The reports may then be used to manage contact center operations in accordance with the functionality described herein.

[0035] With regard to the media services server 249, it may be configured to provide audio and / or video services to support contact center functions, which may include, according to the functionality described herein, IVR or IMR system prompts (e.g., playing audio files), music on hold, voicemail / self-recording, multi-person recording (e.g., of audio and / or video calls), voice recognition, dual tone multi frequency (DTMF) recognition, fax, audio and video transcoding, secure real-time transport protocol (SRTP), audio conferencing, video conferencing, coaching (e.g., support for coaches to listen in on interactions between customers and agents and for coaches to provide comments to agents without the customer hearing the comments), call analytics, keyword discovery, and the like.

[0036] With respect to the analytics module 250, it may be configured to provide a system and method for performing analytics on data received from multiple different data sources, as may be required by the functionality described herein. According to an exemplary embodiment, the analytics module 250 may also generate, update, train, and modify predictors or models 252 based on collected data, such as, for example, customer data, agent data, and interaction data. The models 252 may include customer or agent behavior models. The behavior models may be used to predict, for example, customer or agent behavior in various situations, thereby enabling embodiments of the present invention to adjust interactions based on such predictions or allocate resources in preparation for predicted characteristics of future interactions, thereby improving overall contact center performance and customer experience. Although the analytics module 250 is illustrated as being part of a contact center, it will be understood that such behavior models may also be implemented on the customer system (or, as also used herein, the "customer side" of the interaction) and used to the benefit of the customer.

[0037] According to an example embodiment, the analytics module 250 may have access to data stored in the storage device 220, including a customer database 222 and an agent database 223. The analytics module 250 may also have access to an interaction database 224, which stores data related to interactions and interaction content (e.g., interaction transcripts and events detected therein), interaction metadata (e.g., customer identifier, agent identifier, medium of the interaction, length of the interaction, start and end times of the interaction, department, tagged categories), and application settings (e.g., interaction path through the contact center). Additionally, as discussed more below, the analytics module 250 may be configured to retrieve the data stored in the storage device 220 for use in developing and training algorithms and models 252, for example by applying machine learning techniques.

[0038] One or more of the included models 252 may be configured to predict customer or agent behavior and / or aspects related to contact center operations and performance. Additionally, one or more of the models 252 may be used for natural language processing, including, for example, intent recognition, and the like. The models 252 may be developed based on 1) known first-principles equations describing the system, 2) data resulting in an empirical model, or 3) a combination of known first-principles equations and data. In developing models for use in the present embodiment, it may generally be preferred to build empirical models based on collected and stored data, since first-principles equations are often not available or easily derived. In order to adequately capture the relationships between manipulated / disturbance variables and controlled variables of a complex system, it may be preferred that the models 252 are nonlinear. This is because nonlinear models may exhibit curvilinear relationships, rather than linear relationships, between manipulated / disturbance variables and controlled variables, as is typical for complex systems such as those discussed herein. Considering the aforementioned requirements, machine learning or neural network-based approaches are currently preferred embodiments for implementing the models 252. For example, neural networks can be developed based on empirical data using advanced regression algorithms.

[0039] The analysis module 250 may further include an optimizer 254. As will be appreciated, an optimizer may be used to minimize a "cost function" under a set of constraints, where the cost function is a mathematical expression of a desired objective or system behavior. Because the model 252 may be nonlinear, the optimizer 254 may be a nonlinear programming optimizer. However, it is contemplated that the present invention may be implemented using a variety of different types of optimization approaches, individually or in combination, including, but not limited to, linear programming, quadratic programming, mixed integer nonlinear programming, stochastic programming, global nonlinear programming, genetic algorithms, particle / swarm techniques, and the like.

[0040] According to an example embodiment, model 252 and optimizer 254 may be used together in optimization system 255. For example, analytics module 250 may utilize optimization system 255 as part of an optimization process in which aspects of contact center performance and operations are optimized or at least improved. This may include, for example, aspects related to customer experience, agent experience, dialogue routing, natural language processing, intent recognition, or other functionality related to automated processes.

[0041] With respect to topic manager module (or “topic manager”) 258, this component is configured to mine topics from interactions, such as with topic mining module (or “topic miner”) 259, and provide analytics and other functionality related to those mined topics. As discussed in more detail below, topic manager 258 accomplishes this by orchestrating other components, servers, and modules of the contact center, such as those components, servers, and modules described above in connection with exemplary contact center system 200, and their associated data, to provide the functionality described herein, as will be understood by those skilled in the art. Topic manager 258 may provide such functionality as part of a set of features associated with WEM server 243. Alternatively, topic manager 258 may be a standalone functionality.

[0042] The various components, modules, and / or servers of FIG. 2 and other figures contained herein may each include one or more processors that execute computer program instructions and interact with other system components to perform various functions described herein. Such computer program instructions may be stored in a memory implemented using standard memory devices. Although the functionality of each of the servers is described as being provided by a particular server, those skilled in the art will recognize that the functionality of the various servers may be combined or integrated into a single server, or the functionality of a particular server may be distributed across one or more other servers. Furthermore, the terms "interaction" and "communication" are used interchangeably and generally refer to any real-time and non-real-time interactions using any communication channel of the contact center. Access and control to components of the contact system 200 may be affected via user interfaces (UIs) that may be generated on the customer device 205 and / or the agent device 230.

[0043] The functionality of topic manager 259 according to an exemplary embodiment of the present invention will now be described with reference to Figures 3-4. However, before proceeding, some background on how contact centers function will be provided, while also highlighting some business shortcomings that the present invention addresses.

[0044] As companies invest more in improving their customer experience, an increasing number of conversations occur daily between contact center agents and customers. For companies, a primary goal is to understand the nature of the conversations. For example, this allows a company to better understand the major areas of frustration, or "pain points," experienced by its customers. Such understanding can be important in improving customer satisfaction, which helps to improve customer retention and ultimately profits. It can therefore be appreciated that gaining insight into the very large number of conversations that occur within a contact center represents a key component in understanding customer issues. One way to do this is through analytics that identify and track the topics covered within such conversations. Such analytics can be used to provide insight into trending customer issues so that corrective actions can be taken in a timely manner. This type of data is a valuable source of information for companies as it can enable improved customer satisfaction, compliance, and reduced agent workload.

[0045] As used herein, the term "topic" refers to the main theme or subject matter covered in a conversation, such as a conversation occurring between a customer and an agent or other resource (e.g., an automated resource or bot) in a contact center. Identifying these topics in the conversation history and analyzing how such topics change and trend allows companies to understand how customer issues change over time and identify new issues and opportunities. This type of information can also be used to effectively train agents. Furthermore, discovering topics in ongoing conversations in real time can enable contact centers to better assist agents in resolving customer issues. For example, a question answering system can be trained to provide answers to questions when certain topics are discovered. Additionally, the system can be designed to notify agent supervisors when certain topics are discovered and inform them in real time about the necessary corrective actions to be taken.

[0046] While various systems exist for identifying topics from documents, systems that mine topics in real time from numerous conversations occurring in contact centers and / or provide the type of analysis and solutions described herein are not available in the art. One reason for this is that the conversations being analyzed are often nuanced and difficult to decipher because each conversation involves multiple parties (i.e., at least an agent and a customer) and the data does not occur as a series of text documents, but over a series of turns (voice or text) between agents and customers that are often unclear and overlapping. However, the challenge is worthwhile because once topics are mined from such conversations, the information can be used in a number of scenarios to improve customer satisfaction, agent performance, and contact center operations. The mined topics can be used, for example, to visualize trends in conversation topics as part of a topic dashboard component of an operational dashboard in a contact center. Furthermore, the mined topics can be used to train machine learning models to more effectively discover topics in conversation history and real-time conversations.

[0047] As will be appreciated, the topic manager module of the present invention, e.g., topic manager 258 of FIG. 2, may provide several types of functionality, including topic mining, analysis related to the mined topics, model training, and reporting features that may be taken in response to the mined topics and analysis. Such functionality may be incorporated into the WEM server 243 or may be provided as separate functionality. According to an exemplary embodiment, when a new topic is identified, the topic manager 258 may notify a user (such as a supervisor, manager, or other designated employee) and prompt the user to create or approve the new topic in the system. The user may also add training utterances to the topic. In conventional systems, this represents a time-consuming process that may extend to days or even weeks, but given the automation provided by the topic manager 258 and topic miner 259 of the present invention, this process may be completed conveniently and efficiently. As will be appreciated, the topic miner 259 may mine tens of thousands of conversation histories and identify important topics covered therein. The topic miner 258 also mines utterances that suggest the topic. The utterances can then be exported to a topic manager for use in the topic manager. This type of automation can significantly reduce the overall time required to manage topics in a contact center environment.

[0048] Referring now to FIG. 3, various stages or steps of a topic mining workflow 300 according to the present invention are shown. To begin the workflow 300, a conversation, more specifically conversation data, may be imported for mining. Such conversation data may consist of a conversation that has previously occurred between an agent and a customer. Such conversation data may be a natural language conversation consisting of multiple back and forth messages or turns. The conversation may take place through multiple different channels. For example, the conversation may take place through a chat interface, through text, or through a voice call conversation. In the latter case, the conversation may be transcribed into text via speech recognition to generate the text conversation data required for topic mining.

[0049] Thus, in a first step 305, the topic mining workflow 300 involves importing conversation data (i.e., conversational text data) for use in the topic mining process. This can be done in a number of ways. For example, conversation data may be imported via a text file (in a supported format such as JSON) that contains the conversations to be mined. Conversation data may also be imported from cloud storage or streamed in real time.

[0050] At step 310, the topic mining workflow 300 may include mining topics from the conversation data. The topics may be mined according to a topic mining algorithm, as discussed in connection with FIG. 4 below.

[0051] At step 315, the topic mining workflow 300 may include reviewing, revising, and testing the mined topics. This may include displaying the mined topics to a user and accepting input from the user regarding topic approval or revision. At this stage of the workflow, the user acts on the mined output to make necessary changes, which may include fine-tuning and pruning the topics and associated utterances before exporting them to the topic manager module for use in topic discovery. The user may perform various actions on the mined output, such as selecting a topic and utterances belonging to the topic, merging two or more topics into a single topic resulting in a merge of the selected utterances, splitting a topic into multiple topics resulting in a split of the corresponding utterances, and renaming topic labels. This process may be automatically driven by a predefined business logic. At the end of this process, a set of modified and / or approved topics and associated utterances (or, as will be understood, utterance segments) is generated.

[0052] At step 320, the topic mining workflow 300 may include importing the mined topics and associated utterances into downstream applications for use by them. For example, the mined topics may be uploaded to other modules in the topic manager 258, which may then use the topics and associated utterances to provide analytics and other related functions. A reporting function may provide the results of the analysis to designated users. Additionally, the newly mined topics and associated utterances may also be used by the topic miner 259 to mine conversations occurring in real time in the contact center.

[0053] Referring now to FIG. 4, an exemplary algorithm 400 for topic mining according to the present invention is shown. As will be appreciated, the topic miner algorithm may be used by the topic miner 259 to mine topics from conversation data. As shown, the algorithm may be broken down into several steps, referred to herein as a) key phrase extraction to identify candidate topics (step 405), b) pruning the candidate topics to determine topics (step 410), c) semantically grouping the topics into topic groups (step 415), and d) associating utterances / speech segments with the topic groups (step 420). Other steps may be provided, such as masking personally identifiable information within the utterance. Additional steps may further include computing specific analytics related to the mined data. Each of these steps will now be discussed in more detail. As will be appreciated, these steps are described in the context of imported conversation data, which may include, for example, data related to natural language conversations between customers interacting with customer service representatives or agents. However, it should be understood that the processes described herein may be applicable to other contexts involving other types of users and conversation types.

[0054] As mentioned above, once the conversation data is imported, the topics can be mined according to a topic mining algorithm. The first step of the topic mining algorithm is key phrase extraction. Once extracted, the key phrases can be referred to as candidate topics. As can be appreciated, a conversation typically consists of multiple message utterances or turns involving multiple parties, which can include automated agents or bots, live agents, and / or customers. According to an exemplary embodiment, all utterances known to be generated by a bot can be deemed unimportant for the purpose of mining topics. Thus, utterances identified as coming from a bot can be discarded. For example, a message generated by a bot may include: "Hello, thank you for contacting us. All chats may be monitored or recorded for quality and training purposes. We will get back to you shortly to assist you with your request." Such bot-generated messages can be safely discarded as they tend to be general and do not provide any assistance in identifying conversation topics. A real conversation can be considered to start when either a real agent or a customer sends a message or communication. Of course, to the extent that more sophisticated bots can interact with customers in a more meaningful way, the step of discarding such utterances may itself be discarded.

[0055] The identification and extraction of key phrases may continue with utterances or messages generated by the agent or customer during the conversation. As the agent / customer enters into the conversation, a part-of-speech (POS) tag for each word may be obtained. This may include lemmatizing the words to obtain tokens, which reduces different conjugation and other variations of the word to a common base form. Then, only words / tokens with POS tags corresponding to nouns, adjectives, and verbs are selected as they are deemed important for extracting topics. These selected words may be referred to as "keywords". The remaining unselected words may be considered as unimportant words and designated as "stop words".

[0056] A graph-based ranking algorithm can then be used to obtain the relative importance of the keywords in the conversation. As will be appreciated, such a word graph can be used to understand co-occurrence relationships between keywords in a conversation. As an example, a text rank algorithm (such as "TextRank") can be used to obtain a relevance or importance score for each keyword in a conversation. This score may also be referred to as a "keyword importance score." Key phrases can be identified among the keywords. According to an exemplary embodiment, a key phrase is defined as an instance in which a keyword occurs consecutively. That is, keywords that occur consecutively in a conversation are identified as a key phrase. The consecutively occurring keywords can be concatenated with each other to obtain a key phrase. The relative importance of the key phrases in the conversation can then be determined. According to an exemplary embodiment, the text rank scores of the keywords that make up a key phrase are summed to obtain an importance score. This score may also be referred to as a "key phrase importance score."

[0057] As an example, consider a customer turn that includes "credit card for the month of April." In this case, "credit," "card," "month," and "April" are taken as keywords, and "for," "the," and "of" are marked as stop words. Also, "credit card" is taken as a key phrase since "credit" and "card" occur consecutively in sequence. The sum of the text rank scores of "credit" and "card" gives the importance score of the "credit card" key phrase. Then, from each conversation, a predetermined number of key phrases with the highest key phrase importance scores are selected. For example, the top five key phrases may be selected after sorting the key phrases in descending order based on their key phrase importance scores. As part of this process, the utterances associated with each of the key phrases (i.e., the words used within the turn in which the key phrases are found) are stored as metadata for later use. This process is completed for each conversation. Then, all the extracted key phrases and associated metadata may be stored in a database. The extracted key phrases may be called "candidate topics" at this stage of the process.

[0058] The next step in the topic mining algorithm may include pruning the key phrases or candidate topics, which is done to identify topics. As will be appreciated, many of the candidate topics obtained in the extraction process are likely to be repeated across multiple conversations. According to an exemplary embodiment, the list of candidate topics found in the conversations may be pruned by discarding some of the candidate topics according to a cross-conversation factor, which is a factor that, as used herein, takes into account the candidate topic usage across all of the conversations. For example, the key phrase importance score for a given candidate topic may be updated by averaging its value across multiple or all conversations. The pruning may be based on this updated value. Another cross-conversation factor is frequency of occurrence. Frequency of occurrence is a metric that evaluates candidate topics based on how frequently they appear in the conversations of the conversation data. According to an exemplary embodiment, candidate topics that are determined to have a frequency of occurrence below a predefined threshold are ignored or pruned. This may help avoid noise by eliminating the extraction of spurious key phrases during the extraction process. By pruning the list of candidate topics in this manner, the most dominant / relevant key phrases present in the conversation dataset are more reliably determined. The key phrases (or candidate topics) remaining after pruning may be designated as topics identified in the conversation data.

[0059] The next step involves grouping the topics to determine topic groups. According to an exemplary embodiment, the topics are grouped based on semantic similarity. As will be appreciated, many of the identified topics are semantically similar and likely can be combined to make the number of topics more manageable. While morphologically similar topics such as "credit card" and "credit card bill" can be easily grouped using traditional NLP techniques, grouping semantically similar but morphologically distinct topics is more difficult. For example, grouping "fraudulent charges" and "unknown transaction" is more difficult to achieve. Therefore, in this step, deep learning techniques for word embedding generation may be employed. In an exemplary embodiment, the process may include the following steps:

[0060] First, for each topic, an embedding is computed. An embedding is an efficient representation of text, such as words, phrases, sentences, or paragraphs, where semantically similar texts have similar encodings. This allows for efficient and reliable comparison (i.e., determining similarity) of different topics at a semantic level by using various mathematical formulas, such as Euclidean distance, cosine distance, etc. The embedding of a topic may be computed in different ways. For example, it may be the average of a global vector or GloVe embedding of the topic's constituent tokens. The embedding may also be computed using BERT (or Bidirectional Encoder Representations from Transformers) or any of its variants. Then, the similarity may be computed over all pairs of topic embeddings. Second, the list of topics is scanned in descending order of similarity. A topic is associated with another topic if the similarity is above a certain threshold. If a topic is already associated with another topic, it is not used for further grouping. Once this process is completed, a group of semantically similar topics is obtained. This type of grouping helps collapse broad topics into smaller sets of semantically distinct, and therefore more compact, topics. Third, each group of topics may be labeled; that is, for each group of topics, a topic label is identified for ease of reference. The challenge is to find the most representative label for the group. Although several approaches can be used, the topic that has the highest similarity to all other topics in the group may be identified as the label for the group.

[0061] As a next step, the utterance is associated with each of the topic groups. This may include associating with the group an utterance corresponding to each of the topics in the group. In addition, phrases or segments may be extracted from the utterance and then associated with the topic group. Specifically, the utterances related to the topics of the topic group are obtained from the metadata stored as part of the key phrase extraction and topic identification process. As used herein, an utterance refers to an entire conversational turn in which a customer or agent communicates in a conversation. Similar to how semantically similar topics are grouped together under a topic label, utterances belonging to all the topics in a group are grouped together. However, for some of the use cases related to topic mining, the association of the entire utterance with the topic group may produce the best results. For example, in topic discovery scenarios, the system needs to be trained with a smaller and more precise context around the topic. Training a topic model using the entire utterance may increase noise and result in reduced effectiveness. Thus, according to an exemplary embodiment, the utterance may be shortened or refined into segments, which may be referred to as "utterance segments." Speech segments are selected with the goal of shortening the utterance while providing sufficient context to identify the topic covered therein. For example, consider a topic labeled "Loan Application" and containing the following utterance: - "Hello, I would like to know the status of my loan application. My account number is 12345." - "I'd like to know the status of my loan application." - "What's the status of my loan application?" - "What's the status of my credit application?" - "I need to know the status of my credit application. The loan account number is 12345."

[0062] From these utterances, two speech segments can be obtained for the topic of “loan application”, namely a) “loan application” and b) “credit application status”. These speech segments are more compact and therefore more useful in training a topic discovery system.

[0063] According to an exemplary embodiment, speech segments can be extracted from utterances associated with a topic in the following manner: First, determine the start and end character offsets of the speech segments present in the utterance. Then, obtain segments that belong to a slightly larger window on either side of the offsets. This windowing may be done in a heuristic manner. For example, if the start and end offsets of the speech segments from the beginning of the utterance are 32 and 45, respectively, the windows may be selected from 32 "N" characters behind and 45 "N" characters behind. If N=10, the text segment between offsets 22 and 55 is obtained. The text may be extended to the nearest word break present to avoid incomplete words in a phrase. If the start or end of the text is reached, the scan is stopped. The number of characters "N" used to obtain the larger window may be a parameter configurable by the user.

[0064] As a next step, any Personally Identifiable Information (PII) information that may be present in the phrase may be identified and removed from storage. According to an exemplary embodiment, PII entities may be identified using conventional means such as a named entity resolver tool. Once identified, each PII entity is removed or masked. This step may be omitted if the incoming conversation is already anonymized. For example, PII entities that are masked include name, phone number, email, and SSN. In addition, entities related to geographic location, date, and any numbers are also masked for additional security against the use of personal data. This process is repeated across each utterance in each of the topic groups. For example, this utterance Think, "Hi, I need to book a flight from Washington DC to Miami on August 15 under the name of John Honai."

[0065] After masking, this utterance becomes: It would be, "Hi, I need to book a flight from <place name><place name> to <place name> on <date><date> under the name of <person><person>."

[0066] In addition to mining topics and their associated utterances / speech segments, topic manager 258 may include analytics and metrics related to the identified topics. Such metrics may be automatically calculated and reported to a given user. Such metrics may include one or more of the following: As will be appreciated, such analytics may enable managers and supervisors to better understand their customers and take appropriate action based on changes seen in the topics being mined.

[0067] According to an exemplary embodiment, the first analysis is referred to as a "topic abundance metric." The topic abundance metric refers to the number of conversations that include a particular topic, more specifically, one of the topics grouped in a topic group. The topic abundance metric may be expressed in terms of the percentage of conversations that feature one of the topic groups. As will be appreciated, this metric can help understand the relative importance of a topic based on how frequently it occurs within a set of conversations. This metric may be expressed in a manner that shows how it has changed over time. According to an exemplary embodiment, the second analysis is referred to as a "speech segment metric." The speech segment metric refers to the number of speech segments associated with a given topic group. This metric provides the supervisor with an indication of how many similar speech segments are included within one of the topic groups. Similarly, according to an exemplary embodiment, the third analysis is referred to as a "speech metric." The speech metric refers to the total number of utterances found for a topic group in a set of conversations.

[0068] In addition, once the topics and utterances have been mined, the process may further allow a supervisor to act on the output. This step represents a revision stage where the topics and utterances can be fine-tuned or pruned before being used by the topic manager. The supervisor can perform various actions on the mined topic data, such as selecting one or more topics, selecting utterances associated with a topic group, viewing utterances associated with a speech segment to understand the broader context in which the topic appears, merging two or more topic groups into a single topic, merging associated utterances, splitting a topic group into multiple topic groups (which may include splitting associated utterances), and renaming topic group labels.

[0069] At the end of this process, a set of topics and associated speech is generated, or otherwise an existing set of topics and associated speech is modified to include new topics and / or new associated speech (or associated speech segments). The set of topics and associated speech, or output of the topic mining process, can then be used in various downstream applications. More specifically, the output can be downloaded as a CSV or JSON file and used as input to other systems with appropriate modifications. The output can also be exported to applications such as a topic manager module, where multiple topics and corresponding speech can be defined and used. Such applications can also be used to train machine learning models for topics that use those speech segments, thereby making it more efficient to discover topics in real-time or offline conversations.

[0070] Thus, according to an exemplary embodiment, a method for mining topics in a conversation is disclosed. The method may include receiving, by a processor, conversation data including text derived from a conversation occurring between a customer and an agent, and using, by the processor, a topic mining algorithm to automatically mine topics from the conversation of the conversation data. The topic mining algorithm may include identifying candidate topics in each of the conversations. In the context of an exemplary first conversation of the conversation, identifying candidate topics may include identifying utterances in the first conversation, where the utterances are defined as turns in the first conversation in which the customer, in the form of a customer utterance, or the agent, in the form of an agent utterance, is communicating; tagging each word in the utterance with a part-of-speech (POS) tag; identifying keywords from the utterance based on the POS tags, where the keywords are defined as words having a POS tag indicating that the word is one of a noun, an adjective, and a verb; and using a graph-based ranking algorithm to determine the relative importance of the keywords in the first conversation. calculating a keyword importance score for each of the keywords according to the determined relative importance using a keyphrase weighting function; identifying keyphrases in the first conversation, where a keyphrase is defined as a keyword where the keywords appear consecutively; calculating the keyphrase importance score as a sum of the keyword importance scores for the keywords contained within the keyphrase and determining the relative importance of each of the keyphrases in the first conversation by comparing the calculated keyphrase importance scores; and selecting a predetermined number of keyphrases having the highest keyphrase importance scores as candidate topics from the first conversation.The topic mining algorithm may further include identifying topics for a conversation by accumulating a list of candidate topics found in the conversation, pruning the list of candidate topics by discarding some of the candidate topics according to a cross-conversation factor that factors candidate topic usage across all of the conversations, and identifying the candidate topics remaining on the pruned list of candidate topics as topics. The topic mining algorithm may further include determining topic groups by grouping the topics into topic groups according to semantic similarities between the topics, and associating the list of utterances with the topic groups by accumulating utterances corresponding to the topics included in each of the topic groups and associating the accumulated utterances with the topic groups.

[0071] According to an exemplary embodiment, the method may further include uploading the mined topics as topic data to a topic manager module, which receives the upload and automatically performs one or more actions related to the uploaded topic data. The uploaded topic data may include one or more topic groups, each defining a set of semantically similar topics, a label for each of the one or more topic groups, and, for each of the one or more topic groups, one or more topics and one or more utterances associated with the one or more topics, respectively. According to an exemplary embodiment, the one or more actions may include presenting, by the topic manager module, aspects of the uploaded topic data on a user device of a contact center supervisor, receiving, by the topic manager module, at least one correction related to the topic data from an input received from the supervisor's user device, and using, by the topic manager module, the corrected topic data to discover topics in conversation data related to other conversations. The received modifications may include at least one of splitting a given topic group into multiple topic groups and separating utterances associated with the given topic group among the multiple topic groups, combining two or more topic groups into a single topic group and combining utterances associated with the two or more topic groups for association with the single topic group.

[0072] According to another embodiment, the one or more actions may include using the uploaded topic data to discover topics in the conversation data, by the topic manager module, calculating metrics related to at least one of the topics in the uploaded topic data in relation to the conversation data of the other conversations, by the topic manager module, and reporting the calculated metrics to a contact center supervisor via electronic communication, by the topic manager module. The metrics may include a topic volume metric that calculates a percentage of the conversations of the other conversations in which at least one of the topics in the uploaded topic data is discussed. The metrics may include a speech segment volume metric that calculates the number of speech segments associated with a given topic group.

[0073] According to an example embodiment, the cross-conversation factor may include calculating an updated keyphrase importance score for a given keyphrase by averaging keyphrase importance scores for the given keyphrase in multiple conversations. In an alternative embodiment, the cross-conversation factor includes calculating a frequency of occurrence of each of the keyphrases across the conversations, and pruning includes discarding keyphrases having a calculated frequency of occurrence that does not meet a predetermined threshold.

[0074] According to an example embodiment, grouping the topics according to semantic similarity may include computing an embedding for each of the topics, where the embedding may include coded representations of text where semantically similar text has similar coded representations, comparing the computed embeddings to determine semantic similarity between pairs of topics, and grouping topics whose semantic similarity is above a predefined threshold. The embedding may be computed as a global vector embedding of key phrases of each of the topics. Comparing the computed embeddings may include at least one of Euclidean distance and cosine similarity.

[0075] As will be appreciated, the system and method described herein provide several advantages. The present invention provides efficient unsupervised mining of topics and associated utterances from large volumes of natural language conversations. The conversations can be consumed by such systems as text files or from other storage platforms. The present system and method provide the ability to identify and group topics and associated utterances with similar semantic meaning. Furthermore, privacy is protected by anonymizing the utterances through PII masking. Furthermore, the topic analysis provided provides insight into the conversation data related to the customer. The topic manager also allows users to efficiently review and make changes to the mined results by selecting, renaming, regrouping, and / or discarding the mined topics and associated utterances. Once completed, the mined topics and associated utterances may be conveniently exported to other applications for use in those applications, including exporting to systems that have used the mined output to build machine learning models for real-time identification of topics in conversation data.

[0076] As will be understood by those skilled in the art, many of the various features and configurations described above in connection with some exemplary embodiments can be further selectively applied to form other possible embodiments of the present invention. For the sake of brevity and in consideration of the ability of those skilled in the art, each possible iteration is not provided or discussed in detail, but all combinations and possible embodiments or otherwise encompassed by the following several claims are intended to be part of this application. Furthermore, from the above description of various exemplary embodiments of the present invention, those skilled in the art will appreciate improvements, changes, and modifications. Such improvements, changes, and modifications within the skill of those skilled in the art are also intended to be covered by the appended claims. Furthermore, the above relates only to the described embodiments of this application, and it will be apparent that numerous changes and modifications can be made herein without departing from the spirit and scope of this application as defined by the following claims and their equivalents.

Claims

1. 1. A computer-implemented method relating to mining topics discussed in a conversation, the method comprising: receiving, by a processor, conversation data, the conversation data including text derived from the conversation that occurred between a customer and an agent; using, by the processor, a topic mining algorithm to automatically mine topics from the conversations in the conversation data; The topic mining algorithm comprises: Identifying candidate topics in each of the conversations, where when described with respect to an exemplary first one of the conversations, identifying the candidate topics includes: Identifying an utterance in the first conversation, where an utterance is defined as a turn in the first conversation in which the customer is communicating in the form of a customer utterance or the agent is communicating in the form of an agent utterance; tagging each word in the utterance with a part-of-speech (POS) tag; Identifying keywords from the utterance based on the POS tags, where a keyword is defined as the word having a POS tag indicating that the word is one of a noun, an adjective, and a verb; using a graph-based ranking algorithm to determine a relative importance of the keywords in the first conversation, and calculating a keyword importance score for each of the keywords according to the determined relative importance; identifying key phrases in the first conversation, the key phrases being defined as consecutive occurrences of the keyword; calculating a keyphrase importance score as a sum of the keyword importance scores for the keywords contained within the keyphrase and determining the relative importance of each of the keyphrases within the first conversation by comparing the calculated keyphrase importance scores; selecting a number of the key phrases having the highest key phrase importance scores from the first conversation as candidate topics; The topic of the conversation, accumulating a list of the candidate topics found in the conversation; pruning the list of candidate topics by discarding some of the candidate topics according to a cross-conversation factor that factors candidate topic usage across all of the conversations; identifying as the topic the candidate topics remaining in the pruned list of candidate topics; determining the topic groups by grouping the topics into topic groups according to semantic similarities between the topics; and associating a list of utterances with the topic groups by accumulating the utterances corresponding to the topics contained in each of the topic groups and associating the accumulated utterances with the topic groups.

2. in the conversation, the agent is a contact center agent providing customer service to the customer; uploading, by the processor, the mined topics as topic data to a topic manager module, the topic manager module receiving the upload and automatically performing one or more actions related to the uploaded topic data; The uploaded topic data, one or more topic groups, each of which defines a set of semantically similar topics; a label for each of the one or more topic groups; 10. The method of claim 1, further comprising: for each of the one or more topic groups, one or more of the topics and one or more respective utterances associated with the one or more topics.

3. the step of determining the topic groups further comprises selecting the label for each of the topic groups; The method of claim 2 , wherein the label for a given topic group is selected as being the topic in the given topic group that has the highest semantic similarity with other topics in the given topic group.

4. The method of claim 2 , wherein the graph-based ranking algorithm comprises a word graph configured to score co-occurrence relationships between the keywords of the conversation.

5. The method of claim 2 , wherein the graph-based ranking algorithm comprises a TextRank algorithm.

6. The one or more actions include: presenting aspects of the uploaded topic data on a user device of the contact center supervisor by the topic manager module; receiving, by the topic manager module, at least one modification related to the topic data from an input received from the user device of the supervisor; using, by the topic manager module, the modified topic data to discover topics within conversation data that are related to other conversations; The received amendment is dividing a given topic group into a plurality of topic groups and dividing the utterances associated with the given topic group among the plurality of topic groups; and 3. The method of claim 2, comprising at least one of: combining two or more topic groups into a single topic group; and combining the utterances associated with the two or more topic groups for association with the single topic group.

7. The one or more actions include: using, by the topic manager module, the uploaded topic data to discover topics within conversation data that are related to other conversations; calculating, by the topic manager module, metrics associated with at least one of the topics in the uploaded topic data in association with the conversation data of the other conversations; and reporting, by the topic manager module, the calculated metrics to a contact center supervisor via electronic communication.

8. The method of claim 7 , wherein the metric comprises a topic volume metric that calculates a percentage of conversations of the other conversations in which the at least one of the topics of the uploaded topic data is discussed.

9. The method of claim 7 , wherein the metric comprises a speech segment quantity metric that calculates a number of speech segments associated with a given topic group.

10. 8. The method of claim 7, wherein the step of identifying the key phrases in the first conversation comprises concatenating the consecutively ordered keywords to form a key phrase.

11. 8. The method of claim 7, wherein the cross-conversation factor comprises calculating an updated keyphrase importance score for a given keyphrase by averaging the keyphrase importance scores for the given keyphrase in multiple ones of the conversations.

12. 8. The method of claim 7, wherein the cross-conversation factor comprises calculating a frequency of occurrence of each of the key phrases across the conversation, and wherein the pruning comprises discarding the key phrases having a calculated frequency of occurrence that does not meet a predetermined threshold.

13. said grouping said topics according to said semantic similarity; computing an embedding for each of the topics, the embedding including coded representations of text where semantically similar text has similar coded representations; comparing the computed embeddings to determine the semantic similarity between the pairs of topics; and b. grouping the topics having a semantic similarity above a predetermined threshold.

14. the embeddings are computed as global vector embeddings of the keyphrases for each of the topics; The method of claim 13 , wherein the comparing the computed embeddings comprises at least one of Euclidean distance and cosine similarity.

15. the step of associating the list of utterances with the topic groups further comprises extracting speech segments from each utterance for association with the topic groups; The method of claim 7 , wherein the speech segments comprise shortened utterances contained within an utterance selected according to competing criteria of shortening the utterance while maintaining sufficient context.

16. A speech segment is extracted from the corresponding utterance, Defining a window within a given utterance by a starting character offset and an ending character offset; extending the window by an offset at both the starting character offset and the ending character offset, the offset including several characters; and considering the words contained within the expanded window as the speech segment.

17. 1. A system for mining topics discussed in a conversation, the system comprising: A processor; a memory storing instructions that, when executed by the processor, cause the processor to: receiving conversation data, the conversation data including text derived from the conversation that occurred between a customer and an agent; using a topic mining algorithm to automatically mine topics from the conversations in the conversation data; The topic mining algorithm comprises: Identifying candidate topics in each of the conversations, where when described with respect to an exemplary first one of the conversations, identifying the candidate topics includes: Identifying an utterance in the first conversation, where an utterance is defined as a turn in the first conversation in which the customer is communicating in the form of a customer utterance or the agent is communicating in the form of an agent utterance; tagging each word in the utterance with a part-of-speech (POS) tag; Identifying keywords from the utterance based on the POS tags, where a keyword is defined as the word having a POS tag indicating that the word is one of a noun, an adjective, and a verb; using a graph-based ranking algorithm to determine a relative importance of the keywords in the first conversation, and calculating a keyword importance score for each of the keywords according to the determined relative importance; identifying key phrases in the first conversation, the key phrases being defined as consecutive occurrences of the keyword; calculating a keyphrase importance score as a sum of the keyword importance scores for the keywords contained within the keyphrase and determining the relative importance of each of the keyphrases within the first conversation by comparing the calculated keyphrase importance scores; selecting a number of the key phrases having the highest key phrase importance scores from the first conversation as candidate topics; The topic of the conversation, accumulating a list of the candidate topics found in the conversation; pruning the list of candidate topics by discarding some of the candidate topics according to a cross-conversation factor that factors candidate topic usage across all of the conversations; identifying as the topic the candidate topics remaining in the pruned list of candidate topics; determining the topic groups by grouping the topics into topic groups according to semantic similarities between the topics; and associating a list of utterances with the topic groups by storing the utterances corresponding to the topics included in each of the topic groups and associating the stored utterances with the topic groups.

18. in the conversation, the agent is a contact center agent providing customer service to the customer; The instructions, when executed by the processor, further cause the processor to: uploading the mined topics as topic data to a topic manager module, the topic manager module receiving the upload automatically performing one or more actions related to the uploaded topic data; The uploaded topic data, one or more topic groups, each of which defines a set of semantically similar topics; a label for each of the one or more topic groups; 20. The system of claim 17, further comprising: for each of the one or more topic groups, one or more of the topics and one or more respective utterances associated with the one or more topics.

19. the graph-based ranking algorithm comprises a TextRank algorithm; The one or more actions include: presenting aspects of the uploaded topic data on a user device of the contact center supervisor by the topic manager module; receiving, by the topic manager module, at least one modification related to the topic data from an input received from the user device of the supervisor; using, by the topic manager module, the modified topic data to discover topics within conversation data that are related to other conversations; The received amendment is dividing a given topic group into a plurality of topic groups and dividing the utterances associated with the given topic group among the plurality of topic groups; and 20. The system of claim 18, comprising at least one of: combining two or more topic groups into a single topic group; and combining the utterances associated with the two or more topic groups for association with the single topic group.

20. the graph-based ranking algorithm comprises a TextRank algorithm; The one or more actions include: using, by the topic manager module, the uploaded topic data to discover topics within conversation data that are related to other conversations; calculating, by the topic manager module, metrics associated with at least one of the topics in the uploaded topic data in association with the conversation data of the other conversations; reporting, by the topic manager module, the calculated metrics to a contact center supervisor via electronic communication; 20. The system of claim 18, wherein the metrics include a topic volume metric that calculates a percentage of conversations of the other conversations in which the at least one of the topics of the uploaded topic data is discussed.