Cross-lingual seeding of sentiment

A contact center system can receive messages from social media sites or centers. The messages may be in a foreign language. The system can review messages by identifying content in the social media messages with negative/positive sentiment and then identify a seed term in the messages. A seed term can be a word in another language, different from the message body. The seed term is then used to find one or more other words, in the foreign language, that are correlated with the seed term. The identification of the found words in other messages can then be used to determine sentiment in the foreign language.

BACKGROUND

Communication with customers and the importance of addressing customer concerns continues to grow in importance. Sentiment is generally regarded as an opinion or attitude towards something or someone or the expression of the opinion or attitude. With written, global communications on the rise, companies are developing methods and systems to determine sentiment when communications include information about the company. It may be critically important for reputation and branding to be able to respond quickly to expressed written sentiment (especially if it is negative).

Current methods of determining sentiment are either ineffective or inefficient, especially when analyzing messages in different languages. For example, emoticons are often used but may be culturally ambiguous and are not good indicators especially in a noisy environment. The company needs an efficient way to determine that a message, even in a foreign language, is negative and requires agent attention.

SUMMARY

It is with respect to the above issues and other problems that the embodiments presented herein were contemplated. Embodiments include a method for determining sentiment in a foreign language, the method comprising: retrieving one or more sentiment terms with known sentiment in the foreign language, wherein the one or more terms are associated with one or more seed terms in one or more different languages; identifying, by a processor, a first term of the one or more terms associated with a seed term in a message; and based on the identification of the first term, determining that the message has a known sentiment.

An aspect of the above method includes further comprises: receiving a second message in the foreign language; identifying a seed term within the second message; analyzing the second message for a sentiment term in the foreign language; and storing the sentiment term.

An aspect of the above method further comprises determining statistical information about the sentiment term.

An aspect of the above method includes wherein the statistical information includes a confidence score that the sentiment term indicates a sentiment, and wherein the sentiment may be positive or negative.

An aspect of the above method includes wherein the confidence score is a probability, the method further comprises: determining if the confidence score reaches or crosses a predetermined threshold; and if the confidence score reaches or crosses the predetermined threshold, signifying that the sentiment term indicates a known sentiment.

An aspect of the above method further comprising: if the confidence score does not reach or cross the predetermined threshold, receiving a third message; re-calculating the confidence score using analysis associated with the third message.

An aspect of the above method includes wherein each seeding term includes two or more sentiment terms associated therewith.

An aspect of the above method includes wherein each message includes two or more seeding terms.

An aspect of the above method includes wherein at least one of the seeding terms is in English.

An aspect of the above method further comprises: analyzing a known negative/positive message; identifying seeding terms; and storing the seeding terms.

A computer readable medium having stored thereon processor executable instructions that cause a computing system to execute a method for generating an agent routing, the instructions comprising: instructions to receive a first message in the foreign language; instructions to identify a seed term within the first message, wherein the seed term is in a different language; instructions to analyze the first message for a sentiment term in the foreign language; instructions to store the sentiment term; instructions to retrieve the sentiment term with known sentiment in the foreign language; instructions to identify the sentiment term, associated with a seed term, in a second message; and based on the identification of the sentiment term, instructions to determine that the second message has a known sentiment.

An aspect of the above computer readable medium further comprises instructions to determine statistical information about the sentiment term, wherein the statistical information includes a confidence score that the sentiment term indicates a sentiment.

An aspect of the above computer readable medium further comprises: instructions to determine if the confidence score reaches or crosses a predetermined threshold; if the confidence score reaches or crosses the predetermined threshold, instructions to signify that the sentiment term indicates a known sentiment; if the confidence score does not reach or cross the predetermined threshold, instructions to receive a third message; and instructions to re-calculate the confidence score use analysis associated with the third message.

An aspect of the above computer readable medium includes wherein each seeding term includes two or more sentiment terms associated therewith.

An aspect of the above computer readable medium includes wherein each message includes two or more seeding terms, and wherein at least one of the seeding terms is in English.

A communication system comprising: a social media gateway in communication with a social media network, the social media gateway operable to receive a social media message, from a customer, on the social media network; a dialog system in communication with the social media gateway, the dialog system operable to determine an agent routing for the social media message, wherein the dialog system compromises: a text processing component that is operable to receive and analyze the social media message, wherein the text processing component compromises: a seed term identifier operable to: receive a first message in the foreign language; identify a seed term within the first message, wherein the seed term is in a different language; a negative term identifier in communication with the seed term identifier, wherein the negative term identifier is operable to analyze the first message for a sentiment term in the foreign language; a parser in communication with the negative term identifier, wherein the parser is operable store the sentiment term; a negative message identifier in communication with the parser, wherein the negative message identifier is operable to: retrieve the sentiment term with known sentiment in the foreign language; identify the sentiment term, associated with a seed term, in a second message; and based on the identification of the sentiment term, determine that the second message has a known sentiment.

An aspect of the above communication system further comprises a statistics analyzer in communication with the parser, wherein the statistics analyzer is operable to determine statistical information about the sentiment term, wherein the statistical information includes a confidence score that the sentiment term indicates a sentiment.

An aspect of the above communication system includes wherein the statistics analyzer is further operable to: determine if the confidence score reaches or crosses a predetermined threshold; if the confidence score reaches or crosses the predetermined threshold, signify that the sentiment term indicates a known sentiment; if the confidence score does not reach or cross the predetermined threshold, receive a third message; and instructions to re-calculate the confidence score use analysis associated with the third message.

An aspect of the above communication system includes wherein each seeding term includes two or more sentiment terms associated therewith.

An aspect of the above communication system includes wherein each message includes two or more seeding terms, and wherein at least one of the seeding terms is in English.

English is sometimes called the uniform language of anger sentiment. There are many ways that anger can be expressed in writing in English, and at least some of these methods are adopted across cultures. With the widespread use of social media, certain English phrases and expressions transcend language barriers. Examples might include “#fail,” “Sucks”, “<swear word>”, “awesome”, “best”, #success”, etc. These phrases or terms may be used across many languages.

Embodiments herein can derive sentiment from known words. Then, the system can identify English and/or other known language keywords from dialogs using text analysis and natural language processing. The system thereinafter can locate these words in messages and can create continuous derivatives.

For example, in the case of using the Japanese language to create a Korean sentiment dictionary, the system can monitor for similar co-occurrence, modeling, and keywords in each language. By watching polarity, seed words, and other distinctive features with a large number of occurrences, the system can provide word correlation between language sets. This correlation allows for significantly less translation and expense in creating a sentiment dictionary.

Another example might be when trying to expand sentiment to the French language, the system can use the hash tag “#fail” as a seeding term. The system then may monitor messages on social media for the “seed” term “#fail”, when those messages are in French, and or some other appropriate query for the channel. The language identifier may additionally find posts in a targeted language with a simple query of “#fail.” By accumulating a large volume of messages containing “#fail” in French, the system can use co-occur and other processing techniques to derive a common pattern of words in French posts with #fail. Since #fail is negative, these newly identified words in French from the posts can then be added to the French sentiment dictionary as negative terms. Once added, improved identification of French sentiment is possible on posts/comments without #fail. The system may then be used iteratively to expand language coverage and expand seed words for both positive and negative sentiment.

The term “seed term” can refer to a word, character, emoticon, punctuation, etc., or some combination thereof, in a first language that connotes sentiment in the first language. The seed term may connote a positive or negative sentiment. Further, the seed term may be universal in that the seed term may be used by people who do not speak or write the first language.

The term “sentiment term” can refer to a word, character, etc. in a native language that connotes sentiment in the native language. The sentiment term may connote a positive or negative sentiment.

The term “computer-readable medium” as used herein refers to any tangible storage that participates in providing instructions to a processor for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, NVRAM, or magnetic or optical disks. Volatile media includes dynamic memory, such as main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, magneto-optical medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, a solid state medium like a memory card, any other memory chip or cartridge, or any other medium from which a computer can read. When the computer-readable media is configured as a database, it is to be understood that the database may be any type of database, such as relational, hierarchical, object-oriented, and/or the like. Accordingly, the invention is considered to include a tangible storage medium and prior art-recognized equivalents and successor media, in which the software implementations of the present invention are stored.

The term “module” as used herein refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and software that is capable of performing the functionality associated with that element. Also, while the invention is described in terms of exemplary embodiments, it should be appreciated that individual aspects can be separately claimed.

The term “in communication with” as used herein refers to any coupling, connection, or interaction using electrical signals to exchange information or data, using any system, hardware, software, protocol, or format.

A user context, an extended user context, and/or a user social context as used herein means information about a user of a social media network that can be used to determine a “value” of that user.

The term “social media network” or “social media” is a service provider that builds online communities of people, who share interests and/or activities, or who are interested in exploring the interests and activities of others. Generally, social media are web-based and provide a variety of ways for users to interact, such as e-mail and instant messaging services.

DETAILED DESCRIPTION

The ensuing description provides embodiments only, and is not intended to limit the scope, applicability, or configuration of the claims. Rather, the ensuing description will provide those skilled in the art with an enabling description for implementing the embodiments. Various changes may be made in the function and arrangement of elements of the embodiment without departing from the spirit and scope of the appended claims.

A block diagram depicting components of a communication system100is shown inFIG. 1A. In particular, the communication system100can include a contact center104. In general, the contact center104can be in communication with one or more customer endpoints or devices108via one or more communication networks112. Examples of customer endpoints108can include one or more of, but are not limited to, smartphones, desktop computers, laptop computers, or any other device capable of supporting communications between a customer and a customer service or other agent associated with the contact center104using written, oral, and/or electronic communications. Accordingly, communications between the contact center104and the customer endpoints108can comprise email, instant messaging, a telephone call, short message system, or other real time or non-real time communications. The communication network112can include the Internet, a local area network (LAN), wide area network (WAN), public switched telephone network (PSTN), wireless networks, or a plurality of networks in any combination.

The contact center104generally includes a call or contact center server116, such as an automatic contact (or call) distribution system (ACD) server116. The ACD server116is illustratively the Communication Manager™ enterprise communication-based ACD system available from Avaya Inc. The ACD server is interconnected to a plurality of agent workstations or endpoints120. For example, the agent workstations120may be connected to the ACD server116by an enterprise network or networks128.

The contact center server116generally functions to connect agent workstations120to customer devices or endpoints108through the communication network112, to allow the agents122to service customer110contacts132. The contacts can comprise written, electronic communications. However, contacts are not necessarily limited to written communications. For example, the contact center106can additionally handle voice contacts. As can be appreciated by one of skill in the art after consideration of the present disclosure, the contact center server116can maintain one or more queues136for organizing and maintaining or holding contacts132waiting for handling by a contact center agent122. For example, a plurality of queues136can be provided to sort contacts according to various parameters. Agents122associated with the agent workstations120are assigned to provide services to contacts132that have been placed within one or more of the queues136based on availability and/or weighting factors. Moreover, the workstations120, which can comprise general purpose computers, thin client devices, or other devices, generally support the delivery of customer contacts to associated agents122, and to receive replies to the customer contacts from the agents122. In addition, the agent workstations120can include a user output in the form of a display that can present a determined sentiment or sentiment indicator for a contact, or aggregation of contacts, to associated agents122.

In addition, system100, as described herein, can include one or more supervisor or administrator devices124. The supervisor device124is generally in communication with the contact center server116via the communication network112and/or the enterprise network128. For example, if the supervisor device124is on the premises of the contact center104, communications with the contact center server116may be over a portion of the enterprise network128comprising a wired or wireless network. As another example, the supervisor device124may be in communication with the contact center server116over the communication network112, for example via a cellular telephony data network, a wired or wireless connection outside of the enterprise network128, or the like. In general, the supervisor device124comprises functionality that allows a supervisor126to monitor the health of the contact center104, and to control aspects of the operation of the contact center104. Moreover, the supervisor device124can present a sentiment indicator for a contact or aggregation of contacts to a supervisor126. Accordingly, the supervisor device124can comprise any device, including a mobile device, capable of presenting information to a supervisor126. Accordingly, examples of a supervisor device124include, but are not limited to, a tablet computer, a smartphone, a laptop computer, a desktop computer, a netbook, or the like.

A further embodiment of the communication system100, for interacting with persons using social media, is shown inFIG. 1B. The communication system100can include a contact center104, a network128,112, and one or more types of social media networks or systems, such as social media network1140, social media network2144, and/or social media network3148. Social media networks140,144, and/or148can be any social media including, but not limited to, networks, websites, or computer enabled systems. For example, a social media network may be MySpace™, Facebook™, Twitter™, Linked-In™, Spoke™, Sina Weibo, Pantip, or other similar computer enabled systems or websites. The communication system100can communicate with more or fewer social media networks140,144, and/or148than those shownFIG. 1B, as represented by ellipses152.

The network(s)128,112can be any network, as described in conjunction withFIG. 1A, which allow communication between the contact center116and the one or more social media networks140,144, and/or148. The network(s)128,112can represent any communication system, whether wired or wireless, using any protocol and/or format. The network(s)128,112provides communication capability for the contact center116to communicate with websites or systems corresponding to the one or more social media networks140,144, and/or148. The network(s)128,112may be as described in conjunction withFIGS. 7 and 8.

A contact center116can be a system that can communicate with one or more persons that use social media networking sites112,114, and/or116. The contact center116can be hardware, software, or a combination of hardware and software. The contact center116can be executed by one or more servers or computer systems, as described in conjunction withFIGS. 7 and 8. The contact center116can include all systems, whether hardware or software, that allow the contact center116to receive, service, and respond to directed and non-directed contacts. For example, the contact center116can include the telephone or email system, an interface to human agents, systems to allow human agents to service and respond to received contacts, and one or more systems operable to analyze and improve the function of agent interaction.

The contact center116may include a dialog system160and a social media gateway156. While the dialog system160and the social media gateway156are shown as being a part of the contact center system116, in other situations, the dialog system160and/or the social media gateway156are separate systems or functions executed separately from the contact center116and/or executed by a third party. The dialog system160may process and receive messages. The social media gateway156can receive and translate messages from the one or more social media networks140,144, and/or148. An embodiment of the dialog system160is described in conjunction withFIG. 2B. An embodiment of the social media gateway156is described in conjunction withFIG. 2A.

The contact center116may also communicate with one or more communication devices108. The communication devices108can represent a customer's or user's cell phone, email system, personal digital assistant, laptop computer, or other device that allows the contact center116to interact with the customer. The contact center116can modify a non-direct contact, from a social media network140,144, and/or148, into a directed contact by sending a response message directly to a customer's communication device108.

An embodiment of the social media gateway156is shown inFIG. 2A. The social media gateway156can include one or more components which may include hardware, software, or combination of hardware and software. The social media gateway156can be executed by a computer system, such as those described in conjunction withFIGS. 7 and 8. However, in other embodiments, the components described in conjunction withFIG. 2Aare logic circuits or other specially-designed hardware that are embodied in a field programmable gate array (FPGA) application specific integrated circuit (ASIC), or other hardware.

Herein, the social media gateway156can include one or more content filters202a,202b, and/or202c. A content filter202can receive all of the messages for the contact center116from a social media network140,144, and/or148and eliminate or delete those messages that do not require a response. For example, a message between two friends on a Facebook™ page, if not pertaining to a product or a service of the company operating the contact center116, may not need a response. As such, the content filter202can filter out or delete the non-suitable message from the messages that are received by the social media network application programming interface (API)1204a, social media network API2204b, and/or social media network API3204c. With the content filter202, the social media network API204only needs to convert to a common message format for those messages that should be received by the dialog system160.

The content filter202is provided with one or more heuristics or filter rules from a filter database (not shown). These filter rules can be created by the external customer or internal user (e.g. agent or administrator) of the communication system100. Thus, the user or customer of the communication system100can customize the filtering of messages from social media networks140,144, and/or148. Further, different rules may be applied to different social media networks140,144, and/or148, as some social media networks140,144, and/or148may have different types of messages or postings than other types of social media networks140,144, and/or148. While the content filter202is shown as part of the social media gateway156, it is to be appreciated that the content filter202may be a part of the social media network API204. The content filter202may correspond to query terms used by the social media network API204. The content filter202or query terms are an argument to the social media network API204call.

The social media network API204can be an application, which may be provided by the social media network140,144, and/or148, to access the social media network(s)140,144, and/or148. Thus, the social media network API204is called and connects the social media gateway156to the social media network140,144, and/or148. Any suitable filter criteria may be employed for social media API204. Examples of filter criteria include positive content of the source of a posting, an address field, a destination or recipient address fields, a time stamp field, a subject matter field, and/or a message body field. For example, a type of searchable content can be the name of the business enterprise running or employing the contact center116and/or the products or services of the enterprise.

The social media gateway156can include one or more social media network APIs204. As shown inFIG. 2A, the social media gateway156may include a social media network API204for each social media network140,144, and/or148. As such, the social media gateway156can interact with each social media network140,144, and/or148in the particular (often unique) format or protocol used by the social media network140,144, and/or148. Further, when new social media networks are created, the social media gateway156can be easily expanded to interact with those social media networks by adding another social media network API204. Where social media networks140,144, and/or148are more standardized, or use substantially similar formats or protocols, a single social media network API204can be shared by multiple social media networks140,144, and/or148.

The social media network API204can receive messages from and send messages to the social media network140,144, and/or148. The social media network API204can translate a message received from a social media network140,144, and/or148and send the translated message to a message filter206. The social media network API204can translate the received message into a standard formatted file. For example, the translated message may be represented by an extensible mark-up language (XML) file or other file having a general format. As such, each specific and particular social media network message can be translated into a standard format for use by the dialog system160. Further, the social media network API204can receive a generally or standard format response message, from the dialog system160, and translate that response into a particularly or specifically formatted response message that can be posted to the corresponding social media network140,144, and/or148.

Messages to the contact center116are addressed to the contact center116. For example, a customer may become a “friend” of the contact center116on a social media network140,144, and/or148, such as Facebook™. The customer may then address a message to the contact center116on Facebook™. This non-direct contact is a message that is not sent directly to the contact center116but to the contact center's Facebook™ page. In other circumstances, the contact center116receives messages not addressed to the contact center116. For example, the contact center116can receive tweets from Twitter™ that are “broadcast” rather than addressed to the contact center116. The contact center116may also search for messages or content on the social media networks140,144, and/or148. Exemplary search criteria include customer name, customer profession, customer home address, customer business address, customer employer name, customer educational or professional background, customer hobby, personal or business interests, customer family profile, and the like. Thus, the social media gateway156of the contact center116can query, gather, or connect to a live feed of data from a social media network140,144, and/or148and then apply a filter to the indirect information.

Further, the social media network API204can also retrieve user context or other extended information from the social media networks140,144, and/or148. User context or other extended information can include historical posts, historical tweets, or other historical communications that a user may have received or sent. Further, user context or other extended information can include, but is not limited to, account information for a user, the user's followers or friends, information on where historical messages were posted (e.g., geo-location, time/date, what type of device, etc.), trending analysis that the social media network140,144, and/or148might provide the user, etc. Thus, the social media network API204can retrieve information that is associated with a user and a social media network140,144, and/or148but not necessarily a part of a current message. The social media network API204is a gatherer of data, which can be used to determine a value for the user of the social media networks140,144, and/or148.

The translated messages from the social media network API204can be received by a message filter206. A message filter206can perform some or all of the functions of the content filter202and eliminate messages before being sent to the dialog system160. However, in other situations, the message filter206eliminates information from within the messages before the redacted messages are sent to the dialog system160. For example, a message from a social media network140,144, and/or148may have three or four interactions between two parties not associated with the contact center116. Only one of the several postings may be pertinent to the dialog system160. As such, the message filter206can eliminate or delete at least a portion of the other messages for the dialog system160. Thus, the dialog system160receives a message where some of the content of the message has been deleted.

The message filter206can retrieve heuristics or filter rules from a filter database (not shown), similar to the content filter202. A substantial difference between the content and message filters202and206is that the content filter202is specific to a particular message format associated with a corresponding social media network140,144, and/or148, while the message filter206is applied to a standardized or universal format and is therefore common to multiple social media networks140,144, and/or148. One skilled in the art will understand the type of rules that may be used to filter information from messages such that only pertinent questions, facts, requests, or information is sent to the dialog system160.

A message aggregator208may also be included with the social media gateway156. A message aggregator208can, in contrast to the message filter206, combine two or more messages into a packet or grouping that is sent to the dialog system160. Therefore, the message aggregator208can interrelate or combine messages based on information within the messages. For example, two messages may be combined based on any of the message fields referenced above, such as the person that posted the message, the subject, the request or question asked, the person the message was sent to, or other information that may be pertinent to the dialog system160. Thus, the dialog system160may be able to respond concurrently to two or more messages based on a grouping provided by the message aggregator208. Regardless of whether the messages are aggregated, each message or grouping of messages can be sent from the social media gateway156to the dialog system160.

The social media gateway156can also send responses back to the social media networks140,144, and/or148. A response from an agent in the contact center116can be sent to the social media gateway156. The response may be received in a general format and then translated. The translated response may then be posted to the appropriate social media network140,144, and/or148by the social media gateway156. In other embodiments, the agent may post the response directly to the social media network140,144, and/or148without sending the response to the social media gateway156.

An embodiment of the dialog system160is shown inFIG. 2B. The dialog system160can include one or more components which may be hardware, software, or a combination of hardware and software. The dialog system160can be executed by a computer system such as those described in conjunction withFIGS. 7 and 8. However, in other embodiments, the components described in conjunction withFIG. 2B, are logic circuits or other specially-designed hardware that are embodied in a FPGA or ASIC. The components contained within the dialog system160can include a dialog core210that is communication with a message history database222, an agent interface224, and a heuristic rules and dialogs database218. Further, the heuristic rules and dialogs database218can be in communication with a dialog creator220.

The dialog core210can include one or more sub-components. For example, the dialog core210can include a trend analysis component212, a text processing component214, and an analysis tools component216. These components, similar to the components for the dialog system160, can be hardware, software, or combination of hardware and software. The dialog core210may step through the states of a dialog data structure. A dialog data structure can include a set of inputs and associated actions that can be taken which allow for the automatic and structured response to social media requests or messages. For example, if a user asks for a manual, the input of the text word “manual” can cause the dialog system160, in accordance with a dialog data structure, to send information about one or more manuals. In turn, the receiver of the response may respond, in kind, with the selection of a certain user manual. In which case, the dialog data structure may then instruct the dialog core210to send the user to a website where the user can retrieve an electronic version of the manual. As such, the dialog data structure provides a script a dialog that allows the dialog core210to automate the interaction between the contact center116and a person. This automation eliminates the need for agent involvement, in some situations, and makes the contact center116more efficient and more effective. Further, the automation expands the contact center's ability to answer numerous messages from the plethora of postings on the numerous social media networks140,144, and/or148.

The dialog creator220can create a dialog data structure that includes instructions for various states for each social media message that comes into the contact center116. The first instruction might be to send the social media message to the trend analysis component212, then to the text processing component214, and then execute a query of a Customer Relationship Management (CRM) database232(to determine if this user has an existing order). A CRM database232can be a database as described in conjunction withFIGS. 7 and 8and can store information about customers or other data related to customer relations. Finally, the dialog data structure220may decide that the social media message should be sent to a human agent228for processing. The instructions or node transitions are executed in the dialog core210and make use of many different components that the dialog creator220combines in any way the user desires to handle the social media messages. The dialog core210can make use of the trend analysis component212, text processing component214, or other systems. The dialog core210may also interface with a CRM system and/or database232, external databases, social media user information (e.g., followers, friends, post history, etc. from the social media site), or other systems.

The trend analysis component212is operable to analyze trends that occur between two or more messages received by the social media networks140,144, and/or148. The two messages can be from different social media network140,144, and/or148, so that the trend analysis component212can identify trends across several different social media networks140,144, and/or148. Trends can include multiple occurrences of the same word or phrase, multiple occurrences of a customer identity, product name or service, or multiple occurrences of some other information that might indicate a trend. Further, the trend analysis component212may be able to identify escalations in the occurrences of particular text, identities, or other information, or may identify multiple occurrences over a period of time. The trend analysis component212may also be able to apply one or more different algorithms to occurrences of information within the social media networks140,144, and/or148. For example, the trend analysis component212can match the number of occurrences of a phrase or word over a period of time and apply analysis to determine if the occurrences are increasing or decreasing over the period of time.

The text processing component214is operable to analyze text of one or more messages from social media networks112,114, or116or other contacts. Some possible methods for text processing can include Regular Expression, Latent Semantic Indexing (LSI), text part of speech tagging, text clustering, N-Gram document analysis, etc. In addition, for possibly longer documents, (such as, blogs or emails), the text processing component214may execute one or more methods of document summarization. The summarization may occur if the social media message will be sent to an agent228of the contact center116; the summarization can reduce the amount of information that the agent228may manage. The text processing rules or models may be stored in and/or retrieved from a text processing rules database230. The text processing rules database230can be a database as described in conjunction withFIGS. 7 and 8that stores rules or models used by the text processing component214.

The text processing component214can identify one or more occurrences of a particular text, such as using one or more of the message fields referenced above, in order to associate that social media message with one or more dialogs data structures in the heuristic rules and dialog database218. For example, the text processing component214can look for the word “manual,” in the social media message. If the word “manual” is found, the text processing component214may retrieve a dialog data structure from the heuristic rules and dialogs database218and, as the dialog data structure instructs, communicate with the customer about one or more owner's manuals, repair manuals, or other types of manuals. In another example, if the social media message includes the words, “buy”, “sell”, “price, “discount” or other types of words that may indicate the user or customer wishes to buy a product, the text processing component214can retrieve one or more dialog data structures from the heuristic rules and dialogs database218that can provide instruction to assist the customer in purchasing products or services from the enterprise.

The analysis tools component216is operable to analyze response messages received back from an agent interface224. In analyzing the agent's responses, the analysis tools component216can determine if the dialog data structures originally retrieved by the text processing component214met the needs of the customer. In the analysis, the agent228may enter one or more items of information, for the analysis tools component216, about the response and about how the response matched with the dialog data structures. The analysis tools component216can review the response and determine if it was similar to the response provided by the dialog data structure. Thus, the analysis tools component216can provide information to the dialog core210or the dialog creator220to improve the dialog data structures that are included in the heuristic rules and dialogs database218.

The message history database222can be any database or data storage system as described in conjunction withFIGS. 7 and 8. Thus, the message history database222can store data in data fields, objects, or other data structures to allow other systems to retrieve that information at a later time. The message history database222can store previous messages or information about previous messages. Thus, for example, if the trend analysis component212is analyzing several messages over a period of time, the trend analysis component212can retrieve information about previous messages associated with the current analysis from the message history database222. As such, the trend analysis component212can better detect trends occurring at the social media networks140,144, and/or148. The data stored by the message history database222can include the entire message or only a portion of the message, and in some circumstances, include metadata about the message(s).

The heuristic rules and dialogs database218can be any type of database or data storage system as described in conjunction withFIGS. 7 and 8. The heuristic rules and dialogs database218can store information in data fields, data objects, and/or any other data structures. The heuristic rules and dialogs database218stores rules and dialogs data structures that automate responses to received social media messages. The dialogs data structures control the interaction between the dialog core210and the social media network140,144, and/or148. The dialogs or heuristic rules can be created by a dialog creator220. Thus, the dialog creator220can interface with user input226to receive information about dialogs. The user input226is then used to form the states and responses for a dialog data structure.

An agent interface224is a communication system operable to send action items to contact center agents228, in the contact center116. An agent can be a person or other system that is operable to respond to certain questions or requests from a customer. For example, the agent228can be a person that has specialized expertise in a topic area, such as technical support. The agent interface224can format the social message into an action item and forward that message to one or more agents228. The agent interface224can also receive response(s) back from the agents228. The information provided by the agent228may be used by the dialog core210to complete a response to the social media message or other contact. For example, the information may classify the social media message (e.g., sales, service, etc.). In other situations, the response is a complete response to the social media message that can be posted to the social media network140,144, and/or148. It should be noted that the answer based agent routing described hereinafter may be implemented in other types of call center or customer service centers other than that previously described. Thus, the answer based agent routing systems and methods described hereinafter are not limited to the social media call center described above.

An embodiment of a text processing component214is shown inFIG. 3. As explained previously, the text processing component214can be a module that is embodied in hardware, software, and/or hardware and software. The text processing component214can include one or more sub-modules or components. These components may provide certain functionality and be able to access one or more databases. The databases can include a seed terms database336, a negative/positive terms database328, and a statistics database332. These databases may be flat file databases, relational databases, or any other type of database used to store, retrieve and manage information or data. The seed terms database336can include one or more seed terms described herein. The negative/positive terms database328can include the one or more negative/positive terms in the foreign language, as described herein. The statistics database332can include the statistics about the negative/positive terms, including any confidence score, confidence interval, and/or probability that the negative/positive term stored in the negative/positive terms database328can connote negative/positive sentiment in the foreign language.

A seed term identifier304can receive one or messages. The seed term identifier304can then evaluate the message(s) to locate any of the seed terms, retrieved from seed terms database336, in the message304. If any seed terms are identified, the seed terms may be identified and/or indicated in the message304, and then sent to the negative/positive term identifier308.

The seed term identifier304may also receive the selection of seed terms to be stored in a seed terms database336. Here, a user, supervisor or some other person may enter a seed term input into the seed term identifier304to indicate which seed term(s) should be used. For example, the seed term identifier304can receive a selection to use the “#fail” identifier as a seed term. Further, other English words may be used, such as, “sucks”, “awesome”, “cool”, “#success”, or some other term or curse term that may be used globally as a sign of negativity.

Further, the seed term identifier304may receive messages304with known negative/positive content in a foreign language and be able to receive inputs as to which terms within those messages304are negative/positive. Here, the seed term identifier304may evaluate two or more messages304to determine which of the foreign language seed terms may have a greater confidence score or likelihood of being used thereinafter. These seed terms, whether provided or identified, are stored in the seed terms database336, for use in the future for identifying other negative/positive terms in a foreign language that may be associated with, or correlated with, the seed terms. Messages with seed terms identified are passed to the negative/positive term identifier308.

The negative/positive term identifier308is operable to store negative/positive terms in database328. The database328can provide negative/positive terms that are associated with the foreign language. Here, the negative/positive term identifier308can receive a message having one or more seed terms identified. The seed terms may then be used to locate other terms in the foreign language within the message that may be correlated with the seed term. There may be a physical proximity or term density within the message that indicates to the negative/positive term identifier308that these identified terms are negative/positive terms in the foreign language and may connote negative/positive sentiment because of their relation or associated to the seed term. These negative/positive terms may then be stored in the negative/positive terms database328. The message with the negative/positive terms identified may be passed to the parser312.

The parser312may extract possible negative/positive terms from the message and store those negative/positive terms in the negative/positive terms database328. Here, the parser312may be able to extract negative/positive terms and store those negative/positive terms, and may also provide other information in the negative/positive terms database328. For example, the parser312may provide a number of instances, some type of correlation between the negative/positive term and seed term, or other information in the negative/positive terms database328. The negative/positive term information may also be passed from the parser312to the statistics analyzer316.

The statistics analyzer316is operable to review instances of a negative/positive term being used within a message. The analysis information is stored in the statistics database332. Here, the statistics analyzer316can attempt to determine, by multiple instances of a negative/positive term being identified in a message with the seed term, whether that negative/positive term has a statistical confidence score of connoting negative/positive sentiment within a message. The statistics analyzer316can use known statistical techniques to determine a confidence score, which can include a confidence score, that a negative/positive term having consistent and continuous use with a seed term and/or within a negative/positive message may indeed connote negative/positive sentiment. Upon reaching some threshold, for example, the confidence interval of 90%, the statistics analyzer316may then provide that negative/positive term to a negative/positive message identifier320to use in evaluating future messages.

A negative/positive message identifier320may receive the message304, negative/positive terms from the parser312, and/or information about the statistics associated with the negative/positive terms from statistics analyzer316. With this information, a negative/positive message identifier320can locate the negative/positive terms within a message304and determine if the message likely has a negative/positive sentiment. If the message does have negative/positive sentiment, that message may be actionable. The actionable message, therefore, may then be sent onto an agent interface224to be routed to an agent228. It is at this time that the message can be translated, or the message may be sent to an agent having a fluency in that language. Thus, using the system ofFIG. 3, only messages that are believed to have negative/positive sentiment can be addressed or provided to agents. This process thus eliminates a great number of messages in foreign languages that need not be translated.

A database400for storing negative/positive terms, which may be the same or similar to negative/positive terms database328, along with any information about statistics332or seed terms in database236, may be shown inFIG. 4. Here, the information in these separate databases328through336are shown as being consolidated into one data structure400, but may be stored in separate database. The data structure400can include one or more rows404,408,412, which may each be associated with a negative/positive term. Each row may include different fields or portions that are associated with the negative/positive term. For example, the fields can include one or more of, but are not limited to, a term identifier416, the negative/positive term420, the seed term424, a correlation statistics428, and/or a confidence interval432. The rows404-412, within the data structure400, can include more or fewer fields than those shown inFIG. 4, as represented by ellipses436. Further, there may be more or fewer rows404through412than those shown inFIG. 4.

The term identifier416can be any type of identifier that provides a way of identifying the negative/positive term. The term identifier416can be an alphanumeric identifier, a globally unique identifier (GUID), or some other identifier that uniquely identifies the negative/positive term amongst other negative/positive terms within the database400. The term identifier416may be used because some negative/positive terms may be picture-based (e.g., Chinese characters). Thus, these types of terms are more difficult to locate and store and may require using a term identifier416.

The negative/positive term may be provided in field420. Here, the negative/positive term420is listed with any characters or pictures required to identify or provide that negative/positive term420. The term identifier field of416and the term field420may be searched to locate the term to update statistics in fields428and/or432.

One or more seed terms may be listed in field424that have been associated with negative/positive term420. Thus, each negative/positive term420may have been associated with, located near, or identified because of one or more seed terms424. In this way, every time the negative/positive term420is discovered, the seed term used to identify the negative/positive term may be listed in field424. The more seed terms listed in field424connotes a higher confidence score that term420is negative/positive.

A correlation field428can provide some type of score that quantifies the possibility that the negative/positive term420and the seed term, or at least one of the seed terms in field424, are correlated. The correlation may be a number based on the number of instances the negative/positive term has been found with the seed term, the type of physical proximity between seed term and the negative/positive term, or other information. The correlation field428can store the highest correlation, store an average correlation, or may store both a highest and average correlation for one or more of the seed terms424.

The confidence interval432may be a statistical confidence interval that the negative/positive term420does connote negative/positive sentiment. The confidence interval432may be created over several instances or several messages that include the term420. Thus, as the term420becomes more prevalent in messages with the seed terms424and is consistently found with the seed term424, the confidence interval rises. The confidence interval432, thus, suggests a probability that a negative/positive term420is, or connotes, negative/positive sentiment in a foreign language.

An embodiment of a method500for determining seeding terms is shown inFIG. 5. Generally, the method500begins with a start operation504and terminates with an end operation520. While a general order for the steps of the method500are shown inFIG. 5, the method500can include more or fewer steps or arrange the order of the steps differently than those shown inFIG. 5. The method500can be executed as a set of computer-executable instructions, executed by a computer system, and encoded or stored on a computer readable medium. Further, the method500can be executed by a gate or other hardware device or component in an Application Specific Integrated Circuit, a Field Programmable Gate Array, or other type of hardware device. Hereinafter, the method500shall be explained with reference to the systems, components, modules, software, data structures, user interfaces, etc. described herein.

The seed term identifier304can analyze known negative/positive messages304, in step508. Thus, the seed term identifier304can be provided with two or more messages that have known negative/positive sentiment. From these messages, the seed term identifier304can locate reoccurrences of certain terms within that language that may be used as a seed term.

The seed term identifier304then identifies the seeding terms, in step512. The identification can be through language or text processing algorithms. As more messages304are provided to the seed term identifier304, the seed term identifier304can better identify probable seeding terms, in step512.

The seed term identifier304may then store the seeding terms, in step516. Here, the seed term identifier304parses or extracts the seeding terms, and stores those seeding terms in the seed terms database336. These seed terms in database336may then be used thereinafter for analyzing other messages.

An embodiment of a method600for identifying negative/positive sentiment in a message of a different language or foreign language is shown inFIG. 6. Generally, the method600begins with a start operation604and terminates with an end operation640. While a general order for the steps of the method600are shown inFIG. 6, the method600can include more or fewer steps or arrange the order of the steps differently than those shown inFIG. 6. The method600can be executed as a set of computer-executable instructions, executed by a computer system, and encoded or stored on a computer readable medium. Further, the method600can be executed by a gate or other hardware device or component in an Application Specific Integrated Circuit, a Field Programmable Gate Array, or other type of hardware device. Hereinafter, the method600shall be explained with reference to the systems, components, modules, software, data structures, user interfaces, etc. described herein.

The contact center server116can receive messages, in step608. The contact center server116can receive a message from a customer device108, through a communications network112, which is sent through an enterprise network128to a contact center server116. In other situations, the contact center server116may receive a social media message through a social media gateway156. The messages may then be provided to the dialog core210. Specifically, the text processing component214of the dialog core210can receive the messages.

A seeding term identifier304may then receive the messages340. The seeding term identifier304may then retrieve one or more seeding terms from seed terms database336. The seeding terms can then be used to review messages340to determine or identify seeding terms within the messages340, in step612. Here, the seeding term identifier304does a scan or compare between the seed terms and the message340. Any located seeding terms are then flagged, indicated, or identified, and the message340may be passed to the negative/positive term identifier308.

The negative/positive term identifier308can then analyze the message for other terms in the message in the foreign language. A negative/positive term identifier308can analyze the foreign language message for these other terms, in step616, to determine which terms may have negative/positive sentiment. Here, the negative/positive term identifier308attempts to find terms that have had previous appearances in previous messages, or terms that have some type of correlation with the seed term. These terms can be correlated with the seeding terms based on physical proximity, rate of occurrence, or some other information. Any term within the message340that appears to be negative/positive may be passed to the parser312.

The parser312can extract the negative/positive terms from the message340and store those message terms or sentiment terms in a negative/positive terms database328, in step620. The information in the database328continues to be updated as negative/positive terms are identified, or instances of negative/positive terms are identified, and any information about negative/positive terms in a message may be passed to statistics analyzer316.

The statistics analyzer316can then determine statistical information about the possible negative/positive term, in step624. Here, the statistics analyzer316can compute a correlation428and/or a confidence interval432for each of the sentiment terms identified in the foreign language. The statistics may be continuously updated as new messages are received and possible new or recurrent instances of a negative/positive term(s) is used. At some point thereinafter, the statistics analyzer316can determine if a term has a statistical confidence score of being a negative/positive term, in step628. Here, if the negative/positive term reaches a predetermined threshold, for example, a confidence interval of 90%, the statistics analyzer316then denotes that the negative/positive sentiment term can be used to indicate negative/positive sentiment within a foreign language. If the term does have a statistical confidence score of being a negative/positive term, the method600proceeds YES to step632. If the term does not have a statistical confidence score of being a negative/positive term at present time, the method600proceeds NO to receive more messages in step608and further analyze that term.

In step632, a next message is received. This next message may be provided to the negative/positive message identifier320. The negative/positive message identifier320can receive a list of negative/positive terms from the parser312with any associated statistical information from the statistics analyzer316. The negative/positive terms may then be compared against the newly received message340to determine if the negative/positive term(s) exists within the message. If the negative/positive terms do appear within the message, and if the instances appear to be in a great enough concentration, the negative/positive message identifier320can determine that the message is negative/positive or has negative/positive sentiment, in step636. The message with negative/positive sentiment may then be sent, as an actionable message324, to agent interface324to be routed to an agent228.

It should be noted that each seeding term may include two or more sentiment terms associated therewith. Thus, in database400, the seeding terms424may be listed in two or more rows404through412. Further, in some circumstances, each message received340may include two or more seeding terms. More seeding terms within a message indicates that there is a higher confidence score that the message340is negative/positive. Further, the accumulation of seeding terms in a message may bolster the possibility of finding negative/positive terms or creating a better association between seeding terms and negative/positive terms. The seeding terms304can be in English, as English tends to be cross-cultural, and English is used internationally to represent anger and/or dissatisfaction.

The ability to locate seeding terms and then identify sentiment terms with negative/positive connotations in a foreign language helps to better evaluate incoming messages340. The advantage with such a processing system100is that not every message340received by the contact center server116needs to be translated. Determining whether messages that are identified as having negative/positive sentiment, based on the presence of sentiment terms with negative/positive connotation, need to be translated helps to greatly reduce the effort needed for the contact center116to review messages in certain foreign languages. Further, a database of sentiment terms328may be built automatically through the reception of several messages and over a period of time. Still further, as these negative/positive terms are identified and have higher and higher statistical confidence score of connoting negative/positive content, those negative/positive terms328may be then become seed terms for other languages. This database, with its growing number of terms, may then be able to indicate, over a period of time, negativity in any type of language received by the contact center server116. This process, thus, provides the great advantage to analyze messages, without needing to have specific people who are fluent in those languages read or translate the messages.

FIG. 7illustrates a block diagram of a computing environment700that may function as servers, computers, or other systems provided herein. The environment700includes one or more user computers705,710, and715. The user computers705,710, and715may be general purpose personal computers (including, merely by way of example, personal computers, and/or laptop computers running various versions of Microsoft Corp.'s Windows™ and/or Apple Corp.'s Macintosh™ operating systems) and/or workstation computers running any of a variety of commercially-available UNIX™ or UNIX-like operating systems. These user computers705,710,715may also have any of a variety of applications, including for example, database client and/or server applications, and web browser applications. Alternatively, the user computers705,710, and715may be any other electronic device, such as a thin-client computer, Internet-enabled mobile telephone, and/or personal digital assistant, capable of communicating via a network720and/or displaying and navigating web pages or other types of electronic documents. Although the exemplary computer environment700is shown with three user computers, any number of user computers may be supported.

The system may also include one or more server725,730. In this example, server725is shown as a web server and server730is shown as an application server. The web server725, which may be used to process requests for web pages or other electronic documents from user computers705,710, and715. The web server725can be running an operating system including any of those discussed above, as well as any commercially-available server operating systems. The web server725can also run a variety of server applications, including SIP servers, HTTP servers, FTP servers, CGI servers, database servers, Java servers, and the like. In some instances, the web server725may publish operations available operations as one or more web services.

The environment700may also include one or more file and or/application servers730, which can, in addition to an operating system, include one or more applications accessible by a client running on one or more of the user computers705,710,715. The server(s)730and/or725may be one or more general purpose computers capable of executing programs or scripts in response to the user computers705,710and715. As one example, the server730,725may execute one or more web applications. The web application may be implemented as one or more scripts or programs written in any programming language, such as Java™, C, C#™, or C++, and/or any scripting language, such as Perl, Python, or TCL, as well as combinations of any programming/scripting languages. The application server(s)730may also include database servers, including without limitation those commercially available from Oracle, Microsoft, Sybase™, IBM™ and the like, which can process requests from database clients running on a user computer705.

The web pages created by the server725and/or730may be forwarded to a user computer705via a web (file) server725,730. Similarly, the web server725may be able to receive web page requests, web services invocations, and/or input data from a user computer705and can forward the web page requests and/or input data to the web (application) server730. In further embodiments, the web server730may function as a file server. Although for ease of description,FIG. 6illustrates a separate web server725and file/application server730, those skilled in the art will recognize that the functions described with respect to servers725,730may be performed by a single server and/or a plurality of specialized servers, depending on implementation-specific needs and parameters. The computer systems705,710, and715, web (file) server725and/or web (application) server730may function as the system, devices, or components described inFIGS. 1-4.

The environment700may also include a database735. The database735may reside in a variety of locations. By way of example, database735may reside on a storage medium local to (and/or resident in) one or more of the computers705,710,715,725,730. Alternatively, it may be remote from any or all of the computers705,710,715,725,730, and in communication (e.g., via the network720) with one or more of these. The database735may reside in a storage-area network (“SAN”) familiar to those skilled in the art. Similarly, any necessary files for performing the functions attributed to the computers705,710,715,725,730may be stored locally on the respective computer and/or remotely, as appropriate. The database735may be a relational database, such as Oracle10i™, that is adapted to store, update, and retrieve data in response to SQL-formatted commands.

FIG. 8illustrates one embodiment of a computer system800upon which the servers, computers, or other systems or components described herein may be deployed or executed. The computer system800is shown comprising hardware elements that may be electrically coupled via a bus855. The hardware elements may include one or more central processing units (CPUs)805; one or more input devices810(e.g., a mouse, a keyboard, etc.); and one or more output devices815(e.g., a display device, a printer, etc.). The computer system800may also include one or more storage devices820. By way of example, storage device(s)820may be disk drives, optical storage devices, solid-state storage devices such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash-updateable and/or the like.

The computer system800may additionally include a computer-readable storage media reader825; a communications system830(e.g., a modem, a network card (wireless or wired), an infra-red communication device, etc.); and working memory840, which may include RAM and ROM devices as described above. The computer system800may also include a processing acceleration unit835, which can include a DSP, a special-purpose processor, and/or the like.

The computer-readable storage media reader825can further be connected to a computer-readable storage medium, together (and, optionally, in combination with storage device(s)820) comprehensively representing remote, local, fixed, and/or removable storage devices plus storage media for temporarily and/or more permanently containing computer-readable information. The communications system830may permit data to be exchanged with the network820(FIG. 8) and/or any other computer described above with respect to the computer system800. Moreover, as disclosed herein, the term “storage medium” may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information.

The computer system800may also comprise software elements, shown as being currently located within a working memory840, including an operating system845and/or other code850. It should be appreciated that alternate embodiments of a computer system800may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as applets), or both. Further, connection to other computing devices such as network input/output devices may be employed.