BACKGROUNDUsers of popular applications, such as language input method editor applications, may develop emotion attachments with such applications. A user may express an emotional attachment with an application by customizing a visual appearance of the user interface provided by the application. Such customization is commonly referred to as “skinning”, and may be achieved with the use of custom graphics that alter the appearance of the user interface. Other skinning technologies may include the application of animation and sound to the user interface of the application.
SUMMARYDescribed herein are techniques for adaptively applying skins to a user interface of an application based on the emotional sentiment of a user that is using the application. A skin may alter the user's interactive experience with the user interface by supplementing the user interface with custom images, animation and/or sounds. Accordingly, by adaptively applying skins to the user interface, the look and feel of the user interface may be changed to correspond to the user's emotional sentiment throughout the usage of the application by the user.
The emotional state of the user may be detected based in part on content that the user inputs into the application or communication that the user transmits through the application. In this way, the sentiment aware skin customization of the application user interface may strengthen the emotional attachment for the application by the user. Accordingly, the user may become or remain a loyal user of the application despite being offered similar applications from other vendors. Sentiment aware skin customization may be applied to a variety of software. Such software may include, but are not limited to, office productivity applications, email applications, instant messaging client applications, media center applications, media player applications, and language input method editor applications. Language input method editor applications may include applications that are used for non-Roman alphabet character inputs, such as inputs of Chinese, Japanese, and/or Korean.
In at least one embodiment, the customization of a user interface of the application includes determining an emotional state of a user that is inputting content into an application. A skin package for the user interface of the application is selected based on the emotional state of the user. The selected skin package is further applied to the user interface of the application.
This Summary is provided to introduce a selection of concepts in a simplified form that is further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGSThe detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference number in different figures indicates similar or identical items.
FIG. 1 is a block diagram that illustrates an example scheme that implements sentiment aware user interface customization.
FIG. 2 is an illustrative diagram that shows the example components of a skin application engine that provides sentiment aware user interface customization.
FIG. 3 shows illustrative user interfaces that are customized by the skin application engine according to emotional sentiments of a user.
FIG. 4 shows an illustrative user interface of a helper application that is customized by the skin application engine according to an emotional sentiment of a user.
FIG. 5 is a flow diagram that illustrates an example process for selecting and applying a skin package to a user interface of the application based on an operation scenario type and an emotional state.
FIG. 6 is a flow diagram that illustrates an example process for classifying context data related to a user into one of multiple predefined emotional states.
FIG. 7 is a flow diagram that illustrates an example process for selecting a skin package for the user interface of the application by considering the confidence values associated with the operation scenario type and the emotional state.
DETAILED DESCRIPTIONThe embodiments described herein pertain to techniques for adaptively applying skins to a user interface of an application based on the emotional sentiment of a user that is using the application. A skin may alter the user's interactive experience with the user interface of an application by supplementing the user interface with custom images, animation and/or sounds. Accordingly, by adaptively applying skins to the user interface, the look and feel of the user interface may be changed to correspond to the user's emotional sentiment throughout the usage of the application by the user. The emotional state of the user may be determined from content that the user inputs into the application or communication that the user transmits through the application, in conjunction with other sources of data. The sentiment aware skin customization of the user interface of the application may strengthen the emotional attachment for the application by the user.
Sentiment aware skin customization may be applied to a variety of software. Such software may include, but are not limited to, office productivity applications, email applications, instant messaging client applications, media center applications, media player applications, and language input method editor applications. Language input method editor applications may include applications that are used for non-Roman alphabet character inputs, such as inputs of Chinese, Japanese, and/or Korean. Various examples of techniques for implementing sentiment aware user interface customization in accordance with the embodiments are described below with reference toFIGS. 1-7.
Example Scheme
FIG. 1 is a block diagram that illustrates anexample scheme100 for implementing askin application engine102 that performs sentiment aware user interface customization. Theskin application engine102 may be implemented by anelectronic device104. Theskin application engine102 may acquirecontext data106. Thecontext data106 may be acquired from anapplication108 that is operating on theelectronic device104, as well as from other sources. Thecontext data106 may include user inputs of content into theapplication108. For example, in a scenario in which the application is an instant message client application, the user inputs may include a current message that a user is typing and/or previous messages that the user has transmitted through the instant message client application.
Thecontext data106 may further include application specific data and environmental data. The application specific data may include the name and the type of the application, and/or a current state of the application (e.g., idle, receiving input, processing data, outputting data). The environment data may include data on the real-world environment. For example, the environmental data may include a time at each time the user inputs content, the weather at each time the user inputs content. The environmental data may also concurrently or alternatively include current system software and/or hardware status or events of theelectronic device104. Additionally, thecontext data106 may include user status data collected from personal web services used by the user. The collected user status data may provide explicit or implicit clues regarding the emotional state of the user at various times.
Once theskin application engine102 has acquired thecontext data106, theskin application engine102 may classify thecontext data106 into one of multiple predefinedemotional states110, such as theemotional state112. The predefined emotional states may include emotional states such as happiness, amusement, sadness, anger, disappointment, frustration, curiosity, and so on and so forth. Theskin application engine102 may then select askin package114 from theskin package repository116 that is best suited to theemotional state112 and anoperation scenario type118 of theapplication108. Each of the skin packages in theskin package repository116 may include images, animation and/or sound. Accordingly, theselected skin package114 may provide a full multimedia experience to the user. In some instances, theskin package114 that is selected by theskin application engine102 may reflect theemotional state112. In other instances, theskin application engine102 may select theskin package114 to alter theemotional state112. Subsequently, theskin application engine102 may apply theselected skin package114 to the user interface of theapplication108. In various embodiments, theskin application engine102 may apply other skin packages from theskin package repository116 to the user interface of theapplication108 based on changes in the determined emotional state of the user.
Electronic Device Components
FIG. 2 is an illustrative diagram that shows the example components of askin application engine102 that provides sentiment aware user interface customization. Theskin application engine102 may be implemented by theelectronic device104. In various embodiments, theelectronic device104 may be a general purpose computer, such as a desktop computer, a tablet computer, a laptop computer, a server, and so forth. However, in other embodiments, theelectronic device104 may be one of a camera, a smart phone, a game console, a personal digital assistant (PDA), or any other electronic device that interacts with a user via a user interface.
Theelectronic device104 may includes one ormore processors202,memory204, and/or user controls that enable a user to interact with the electronic device. Thememory204 may be implemented using computer readable media, such as computer storage media. Computer-readable media includes, at least, two types of computer-readable media, namely computer storage media and communication media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, communication media may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, or other transmission mechanism. As defined herein, computer storage media does not include communication media. Theelectronic device104 may have network capabilities. For example, theelectronic device104 may exchange data with other electronic devices (e.g., laptops computers, servers, etc.) via one or more networks, such as the Internet.
The one ormore processors202 and thememory204 of theelectronic device104 may implement components that include acontext collection module206, a context normalization module208, asentiment analysis module210, anapplication classification module212, askin selection module214, askin renderer module216, askin design module218, and auser interface module220. Thememory204 may also implement adata store222.
Thecontext collection module206 may collect thecontext data106 from theapplication108, theelectronic device104, and/or other sources. Thecontext data106 may include user inputs of content into theapplication108 in a recent time period (e.g., a time period between 10 minutes ago and the current time). For example, in a scenario in which the application is an instant message client application, the user inputs may include a current message that a user is typing and/or previous messages that the user has transmitted through the instant message client application. In another example, the user inputs may be text that is inputted into a word processing application in the recent time period. In various embodiments, thecontext collection module206 may extract emotion terms from the user inputs as context data. The emotion terms may be verbs, adjectives, or other descriptors that may explicitly or implicitly reflect the emotional state of the user. In such embodiments, thecontext collection module206 may use machine learning techniques, such as natural language processing (NLP), computational linguistics, and/or text analytics to recognize and extract such emotion terms.
In some embodiments, thecontext collection module206 may have the ability to extract emotion terms from user inputs that are in different languages. In such embodiments, thecontext collection module206 may use one of thedictionaries224 to recognize and translate non-English words or characters that are inputted by the user into standard English words, and then perform the emotion term extraction. However, the emotion term extraction may also be performed by using another language as the standard language in alternative embodiments. For example, thecontext collection module206 may perform the translation of user inputs and emotion term extraction according to languages such as Spanish, French, Chinese, Japanese, etc.
Thecontext data106 that is collected by thecontext collection module206 may further include application specific data. The application specific data may include the name and the type of the application. For example, the name of the application may be the designated or the trademark name of the application. The type of the application may be a general product category of the application, e.g., productivity, business communication, social networking, entertainment, etc. The application specific data may also include states of the application in a recent time period. In the example above, the application specific data may include an instant messaging status message (e.g., online, away, busy, etc.), a status of the application (e.g., application recently opened, updated, last used, etc.), and/or so forth.
Thecontext data106 may further include environmental data. The environment data may include a time at each time the user inputs content, the weather at each time the user inputs content, and other environmental indices at each time the user inputs content. Thecontext collection module206 may obtain such environmental data from service applications (e.g., a clock application, weather monitoring application, etc.) that are installed on theelectronic device104. The environmental data may also include system software and/or hardware status or events of theelectronic device104 in a recent time period. For example, the system status of theelectronic device104 may indicate how recently theelectronic device104 was turned on, the idle time of theelectronic device104 prior to a current user input of content, current amount and type of system resource utilization, recent system error messages, and/or so forth.
Thecontext data106 may further include user status data from a recent time period. Thecontext collection module206 may acquire the user status data from personal web services used by the user. For example, the user status data may include social network service profile information, messages exchanged with other social network members, and/or postings on a blog page or a forum. Such user status data may provide explicit or implicit clues regarding the emotional state of the user at various times. Accordingly, thecontext collection module206 may obtain the clues by performing emotion term extraction on the profiles, messages, and/or postings as described above, with the implementation of appropriate language translations.
In some embodiments in which theapplication108 is a communication application, thecontext collection module206 may be configured to obtain context data related to an interlocutor that is exchanging communications with the user rather than collecting context data on the user. For example, the communication application may be an instant messaging client application. In such embodiments, an electronic device used by the interlocutor who is exchanging communications with the user via a corresponding communication application may have a counterpart skin application engine installed. The counterpart skin application engine may be similar to theskin application engine102. Accordingly, thecontext collection module206 may be configured to obtain context data, such as the content inputted by the interlocutor, user status, etc., from the counterpart skin application engine. In this way, a skin package that is selected based on the emotional state of the interlocutor may be eventually applied to the user interface of theapplication108.
In various embodiments, thecontext collection module206 is configured to collect the context data related to a user, such as the application specific data, the environmental data, the user status data, from the user after obtaining permission from the user. For example, when a user elects to implement the sentiment aware user interface skinning for theapplication108, thecontext collection module206 may display a dialog box that indicates to the user that personal information is to be collected from the user, identifying each source of information. In this way, the user may be given the opportunity to terminate the implementation of the sentiment aware user interface skinning for theapplication108. In some embodiments, after the user consents, thecontext collection module206 may display one or more other dialog boxes that further enable the user to selectively allow thecontext collection module206 to collect context data from designated sources. For example, the user may allow thecontext collection module206 to collect user inputs of content to one or more specific applications, but not user inputs of content into other applications. In another example, the user may allow thecontext collection module206 to collect the user inputs and the application specific data, but deny thecontext collection module206 permission to collect the user status data. Accordingly, the user may be in control of safeguarding the privacy of the user while enjoying the benefits of the sentiment aware user interface skinning.
The context normalization module208 may normalize the collected context data, such as thecontext data106, into context features. Each of the context features may be expressed as a name value pair. In one instance, a name value pair may be “weather: 1”, in which the value “1” represents that the weather is sunny. In another instance, a name value pair may be “application type: 3”, in which the value “3” represents that theapplication108 is a instant messaging client application. In a further instance, a name value pair may be “emotion term: 12434”, in which the emotion term is a word or phrase that thecontext collection module206 extracted from a user input. In such an instance, the value “12434” may represent the word “happy”. Accordingly, the context normalization module208 may continuously receive context data from thecontent collector module206, and normalize the context data into context features for analysis by thesentiment analysis module210.
Thesentiment analysis module210 may classify the normalized context data in the form of context features into one of the predefinedemotional states110. The context data may be thecontext data106. Thesentiment analysis module210 may also generate a confidence value for the classification. The classification confidence value may be expressed as a percentage value or a numerical value in a predetermined value scale. For example, thesentiment analysis module210 may classify a set of context features as corresponding to a predefined emotional state of “happy” with a classification confidence value of “80%”.
In various embodiments, thesentiment analysis module210 may use one or more machine learning or classification algorithms to classify the context features into one of the predefinedemotional states110 and generate a corresponding classification confidence value. The machine learning algorithms may include supervised learning algorithms, unsupervised learning algorithms, semi-supervised learning algorithms, and/or so forth. The classification algorithms may include support vector machines, neural networks, expert systems, Bayesian belief networks, fuzzy logic, data fusion engine, and/or so forth. In other embodiments, thesentiment analysis module210 may employ one or more of directed and undirected model classification approaches, such as naïve Bayes, Bayesian networks, decision trees, neural networks, fuzzy logic models, and/or other probabilistic classification models to achieve these goals.
Theapplication classification module212 may determine anoperation scenario type118 of theapplication108 using a heuristic engine. Each of the operation scenario types may have a corresponding level of usage formality. The heuristic engine may be periodically updated by an external application information service so that the heuristic engine may stay current on the latest updates and changes to theapplication108. Accordingly, the heuristic engine may continuously or periodically poll theapplication108 for application information during the usage of theapplication108 by a user. The application information may include data such as application process names, field classes, an application object model, and screen pixel information of the output data that is generated by the application and presented on a display. Based on such application information, and using visual interpretation techniques such as optical character recognition (OCR), the heuristic engine may leverage heuristic rules and statistical information to determine that theapplication108 is operating in one of multiple operation scenario types. For example, the multiple operation scenario types may include an “online chat” operation scenario type, a “document authoring” operation scenario type, an “email composition” operation scenario type, and so forth.
The heuristic engine of theapplication classification module212 may also assign a type confidence value to the classification of the application into an operation scenario type. The type confidence value may be expressed as a percentage value or a numerical value in a predetermined value scale. For example, theapplication classification module212 may classify theapplication108 into the “online chat” operation scenario type with a type confidence value of “90%”.
Theskin selection module214 may select a skin package from theskin package repository116 based on the determined emotional state of the user and the determined operation scenario type of theapplication108, as well as their respect confidence values. In various embodiments, theskin selection module214 may assess whether the classification confidence value of a classified emotional state meets a corresponding predefined confidence threshold. If the classification confidence value of the emotional state is below the predefined confidence threshold, theskin selection module214 may consider the emotional state of the user as unknown. However, if the classification confidence value of the emotional state meets or is above the predefined confidence threshold, theskin selection module214 may determine that the user is in the emotional state.
Likewise, theskin selection module214 may assess whether the type confidence value of a classified operation scenario type of theapplication108 meets a corresponding predefined confidence threshold. If the type confidence value of the operation scenario type is below the predefined confidence threshold, theskin selection module214 may consider the operation scenario type of theapplication108 as unknown. However, if the type confidence value of the operation scenario type meets or is above the predefined confidence threshold, theskin selection module214 may determine that theapplication108 has the operation scenario type.
Accordingly, once theskin selection module214 has determined the emotional state, theskin selection module214 may select a skin package that is mapped to the emotional state. In some embodiments, the skin package selected by theskin selection module214 may correspond to the emotional state. For example, a “happy” skin package that shows cheerful images may be selected by theskin selection module214 when the emotional state of the user of theapplication108 is classified as “happy.” In other embodiments, theskin selection module214 may be configured to select a skin package to alter the emotional state of the user. For example, when the emotional state of the user is classified as “sad”, theskin selection module214 may select the “happy” skin package as a way to cheer up the user.
The selection of the skin package may be further based on the determined operation scenario type. Such selection of a skin package may be implemented when there are multiple skin packages with different levels of usage formality mapped to the same emotional state. For example, when the emotional state of the user is determined to be “happy”, theskin selection module214 may select a more formal “happy” skin package when the determined operation scenario type of theapplication108 is “document authoring.” In contrast, theskin selection module214 may select a less formal “happy” skin package for the “happy” emotional state when the determined operation scenario type of theapplication108 is “online chat”. The usage formality of a skin package may refer to the appropriateness of the skin package content (e.g., images, sounds, animation) in different social contexts. For instance, a more formal skin package is more likely to be acceptable in a professional environment but may be perceived as awkward or out of place in a causal social environment. In contrast, a less formal skin package is less likely to be acceptable in a professional social environment, but is more likely to be acceptable in a casual social environment. In some embodiments, when the operation scenario type of theapplication108 is determined to be unknown, and there are multiple skin packages that correspond to the determined emotional state, theskin selection module214 may select the most formal skin package that corresponds to the emotional state.
The mapping of skin packages in theskin package repository116 to emotional states may enable theskin selection module214 to select skin packages as described above. The mapping may be stored in the metadata of each skin package. In some instances, a single skin package may be mapped to multiple emotional states. For example, a “happy” skin package may be mapped to both the “happy” emotional state and the “amused” emotional state. Thus, such a “happy” skin package may be selected by theskin selection module214 for either of the emotional states. In other instances, a single emotional state may be mapped to multiple skin packages. For example, as described above, two “happy” skin packages with different levels of usage formality may be mapped to the same “happy” emotional state. In additional instances, a combination of the above mappings of skin packages to emotional states may be present in theskin package repository116.
In some embodiments, there may be a designated default skin package that is selected by theskin selection module214 when the emotional state of the user is ascertained to be unknown, such as in a scenario in which a classified emotional state has a low confidence value. Theskin selection module214 may also select the default skin package when no skin package has been mapped to a particular determined emotional state of the user. The default skin package may include neutral content that may be suitable for various emotional states.
It will be appreciated that since theskin selection module214 takes the classification confidence value of a classified emotional state into consideration when selecting a skin package, abrupt or unwarranted changes in skin selection may be reduced. Accordingly, the classification confidence value used by theskin selection module214 may be adjusted to balance timeliness of changes in user interface appearance in response to emotional state detection with annoyance that frequent user interface appearance changes may bring to the user.
Theskin renderer module216 may apply the skin package selected by theskin selection module214 to the user interface of theapplication108. For example, theskin renderer module216 may apply theskin package114 to the user interface. Theskin package114 may include images, sounds, and/or animation that provide a rich multimedia emotional experience for the user. Thus, the application of theskin package114 may change the user interface appearance of theapplication108, as well as provide additional features that are previously unavailable in the user interface of theapplication108. Such additional features may include the ability to play certain sounds or animate a particular portion of the user interface.
In some embodiments, theskin package114 may include a sentiment engine that plays different sounds and/or displays different animations based on the emotion terms detected by thecontext collection module206. For example, when thecontext collection module206 informs the sentiment engine that the user has inputted the word “happy” into theapplication108, the sentiment engine may cause the applied skin to play a laughter sound track and/or move an animated smiley face across the user interface of theapplication108. In other words, the sentiment engine that is included in theskin package114 may leverage functions of the skin application engine102 (e.g., the context collection module206) to enhance the features provided by theskin package114.
In certain embodiments, the images and animations that are provided by theskin package114 may be displayed outside of the user interface of theapplication108. For example, when the user interface of theapplication108 is a window that occupies a portion of a displayed desktop work area, an animation in theskin package114 may dance across the entire width of the desktop work area, rather than just the portion occupied by the user interface. In another example, an image in theskin package114 may protrude from the user interface of theapplication108, or otherwise modify the boundaries of the user interface of theapplication108.
Theskin design module218 may enable the user to design skin packages. In various embodiments, theskin design module218 may include a skin design assistant functionality. The assistant functionality may present the user with a sequence of user interface dialog boxes and/or skin design templates that lead the user through a series of steps for designing a skin package. In various instances, the assistant functionality may enable the user to create images, animation, and/or sounds, and then integrate the created content into a particular skin package. Alternatively or concurrently, the assistant functionality may enable the user to associate images, animation, and/or sounds selected from a library of such content to create the particular skin package. In some instances, the assistant functionality may also enable the user to incorporate a sentiment engine in the skin package. The assistant functionality may further enable the user to input metadata regarding each created skin package.
The metadata inputted for a created skin package may map the skin package to a corresponding emotional state (e.g., happy, sad, etc.) and/or a corresponding operation scenario type (e.g., document authoring, online chat, etc.). In some instances, the metadata inputted for the created skin package may also include configuration data that enable a sentiment engine that is included in the skin package to play different sounds or displays different animation based on the emotion terms detected by thecontext collection module206. The inputted metadata may be saved as a part of the created skin package. For example, the metadata may be saved as an extensible markup language (XML) file that is included in the created skin package.
Theuser interface module220 may enable the user to interact with the modules of theskin application engine102 using a user interface (not shown). The user interface may include a data output device (e.g., visual display, audio speakers), and one or more data input devices. The data input devices may include, but are not limited to, combinations of one or more of keypads, keyboards, mouse devices, touch screens, microphones, speech recognition packages, and any other suitable devices or other electronic/software selection methods.
In some embodiments, the user may adjust the threshold values used by theskin selection module214 via theuser interface module220. Further, theuser interface module220 may provide a settings menu. The settings menu may be used to adjust whether theskin selection module214 is to select a skin package that corresponds to the emotional state of the user or a skin package that alters the emotional state of the user. Theuser interface module220 may also enable the user to specify through one or more dialog boxes the type of context data (e.g., user inputs, environmental data, application specific data, etc.) that the user allows thecontext collection module206 to collect, and/or one or more applications from which user inputs may be collected. In other embodiments, theuser interface module220 may display the user interface of theskin design module218.
In other embodiments, theuser interface module220 may enable the user to select skin packages from a skin package library226 that resides on aserver228, and download the skin packages to theelectronic device104 via anetwork230. For example, the skin package library226 may be a part of an online store, and the user may purchase or otherwise acquire the skin packages from the online store. The downloaded skin packages may be stored in theskin package repository116. Thenetwork230 may be a local area network (“LAN”), a larger network such as a wide area network (“WAN”), and/or a collection of networks, such as the Internet. Protocols for network communication, such as TCP/IP, may be used to implement thenetwork230.
Thedata store222 may store thedictionaries224 that are used by thecontext collection module206. Additionally, thedata store222 may also storeapplications232 that may be skinned by theskin application engine102. Theapplications232 may include theapplication108. Further, theskin package repository116 may be stored in thedata store222. Thedata store222 may further store additional data or other intermediate products that are generated or used by various components of theskin application engine102, such thecontext data106, the operation scenario types234, and the predefinedemotional states110.
While the context normalization module208, thesentiment analysis module210, and theskin selection module214 are described above as being implemented on theelectronic device104, such modules may also be implemented on a server in other embodiments. For example, the server may be thenetworked server228, or any server that is part of computing cloud. In other words, the analysis of context data and the selection of an emotional skin package may be performed by a computing device that is separate from theelectronic device104. Likewise, while theskin design module218 is described above as being part of theskin application engine102, theskin design module218 may be a standalone skin design application in other embodiments. The standalone skin design application may be implemented on another computing device.
FIG. 3 shows illustrative user interfaces that are customized by the skin application engine according to emotional sentiments of a user. Each of theuser interfaces302 and304 may be a user interface for an instant messaging client application. Theuser interface302 may include amessage input portion306 that displays messages entered by a user, and aresponse message portion308 that displays messages entered by an interlocutor that is chatting with the user. Theskin application engine102 may determine based on the context data in this scenario to apply a “happy” skin package to theuser interface302. The context data may include the content the user inputted into themessage input portion306, among other context information. The “happy” skin package may include cheerful and upbeat images and animations. In some embodiments, the “happy” skin package may also include cheerful and upbeat sounds.
As shown by theuser interface302, because thesentiment analysis module210 is capable of using normalizedcontext data106 rather than rely solely on user inputted content to determine an emotional state of the user, thesentiment analysis module210 may accurately detect the emotional state of the user in many scenarios. For example, theskin application engine102 may classify the emotional state of the user as “happy” despite the user input of the emotion term “crying” in themessage input portion306. In contrast, a conventional keyword-based sentiment analysis engine may have determined from the presence of the word “crying” that the emotional state of the user is “sad”.
Likewise, theuser interface304 may include amessage input portion310 that displays messages entered by a user, and aresponse message portion312 that displays messages entered by an interlocutor that is chatting with the user. In contrast to the example above, theskin application engine102 may determine based on the context data in this scenario to apply a “sad” skin package to theuser interface304. The context data may include the content the user inputted into themessage input portion310, among other context information. As shown, the “sad” skin package may include somber and sympathetic images and animations. In some embodiments, the “sad” skin package may also include somber and sympathetic sounds. Nevertheless, in other embodiments, theskin application engine102 may apply a different skin package (e.g., a happy skin package) to theuser interface304 for the purpose of altering the emotional state of the user.
FIG. 4 shows an illustrative user interface of ahelper application402 that is customized by theskin application engine102 according to an emotional sentiment of a user. Thehelper application402 may be a language input method editor that runs cooperatively with another application, such as aprincipal application404, to enable the input of non-Roman alphabet characters into theprincipal application404. For example, the language input method editor may enable the input of Chinese, Japanese, Korean, or Indic characters into theprincipal application404. Theprincipal application404 may be an instant messaging client application, a word processing application, an email application, etc. In some embodiments, the helper application may be installed on and executed from theelectronic device104. In other embodiments, thehelper application402 may be a cloud-based application that may interact with theprincipal application404 without being installed on theelectronic device104.
Theskin application engine102 may customize theuser interface406 of thehelper application402 with askin package408 based on context data. The context data may include context information that is related to thehelper application402, theprincipal application404, and/or a combination of both applications. For example, the context data may include content that the user inputted into theprincipal application404, thehelper application402, or content that the user inputted into both applications.
In some embodiments, theskin package408 that is applied to theuser interface406 may include animage410 that protrudes from theuser interface406. Accordingly, theskin package408 may modify the boundaries of theuser interface406. Theskin package408 may also include ananimation412 and asound414.
Example Processes
FIGS. 5-7 describe various example processes for implementing sentiment aware user interface customization. The order in which the operations are described in each example process is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement each process. Moreover, the operations in each of theFIGS. 5-7 may be implemented in hardware, software, and a combination thereof. In the context of software, the operations represent computer-executable instructions that, when executed by one or more processors, cause one or more processors to perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and so forth that cause the particular functions to be performed or particular abstract data types to be implemented.
FIG. 5 is a flow diagram that illustrates anexample process500 for selecting and applying a skin package to a user interface of the application based on an operation scenario type and an emotional state. Atblock502, thesentiment analysis module210 ofskin application engine102 may determine an emotional state of a user based on receivedcontext data106 associated with a user. The associatedcontext data106 may include content that the user inputs into theapplication108 or communication that the user transmits through theapplication108, in conjunction with other sources of data. As a part of the emotional state determination, thesentiment analysis module210 may further assign a classification confidence value to the determined emotional state.
Atblock504, theskin application engine102 may ascertain an operation scenario type of theapplication108. In various embodiments, theapplication classification module212 of theskin application engine102 may continuously or periodically poll theapplication108 for application information during the usage of theapplication108 by the user. The application information may include data such as application process names, field classes, an application object model, and screen pixel information. Based on such application information, theapplication classification module212 may leverage heuristic rules and statistical information to determine that theapplication108 is operating in one of the multiple operation scenario types. As a part of the emotional state determination, theapplication classification module212 may further assign a confidence value to the determined emotional state.
Atblock506, theskin application engine102 may select a skin package from theskin package repository116 for a user interface of the application. In various embodiments, theskin selection module214 of theskin application engine102 may make the selection based on at least one of the determined emotional state of the user and the operation scenario type of the application, as well as their respective confidence values. In some instances, the skin package that is selected by theskin application engine102 may reflect the determined emotional state. In other instances, theskin application engine102 may select the skin package to alter the emotional state of the user. The selected skin package may include images, animation, and/or sound that provide a full multimedia experience to the user.
Atblock508, theskin application engine102 may apply the selected skin package to theapplication108. Thus, the skin package may change the user interface appearance of theapplication108, as well as provide additional features that are previously unavailable in the user interface of theapplication108. Such additional features may include the ability to play certain sounds or animate a particular portion of the user interface. Subsequently, theprocess500 may loop back to block502 so that theskin application engine102 may reassess and determine the emotional state of the user based on newly received context data, and apply a new skin package if the emotional state of the user changes.
In some embodiments, rather than determining the emotional state of the user, theskin application engine102 may obtain an emotional state of an interlocutor that is engaged in an online interaction with the user. Accordingly, the skin package selected for theapplication108 may be based on the received context data associated with the interlocutor.
FIG. 6 is a flow diagram that illustrates anexample process600 for classifying context data related to a user into one of multiple predefined emotional states. Theprocess600 may further describeblock502 of theprocess500.
Atblock602, thecontext collection module206 may collectcontext data106 associated with a user. The associated context data may include content that the user inputs into theapplication108 or communication that the user transmits through theapplication108, in conjunction with other sources of data in a recent time period. The other sources of may include application specific data, environmental data, and/or user status data from a recent time period. Each of the recent time periods may have a predetermined duration. The types and/or sources of context data that thecontext collection module206 collects may be configured by the user.
Atblock604, the context normalization module208 may normalize thecontext data106 into context features. Each of the context features may be expressed as a name value pair. In one instance, a name value pair may be “weather: 1”, in which the value “1” represents that the weather is sunny. In another instance, the name value pair may be “application type: 3”, in which the value “3” represents that theapplication108 is an instant messaging client application.
Atblock606, thesentiment analysis module210 may classify the context features into one of the multiple predefined emotional states. Thesentiment analysis module210 may also generate a classification confidence value for the classification. The classification confidence value may be expressed as a percentage value or a numerical value in a predetermined value scale. In various embodiments, thesentiment analysis module210 may use one or more machine learning and/or classification algorithms to classify the context features into one of the predefinedemotional states110 and generate a corresponding classification confidence value.
FIG. 7 is a flow diagram that illustrates anexample process700 for selecting a skin package for the user interface of the application by considering the confidence values associated with the operation scenario type and the emotional state. Theprocess700 may further describeblock506 of theprocess500.
Atblock702, theskin selection module214 may assess the classification confidence value of a classified emotional state. The classified emotional state may have been selected from multiple predefinedemotional states110 by thesentiment analysis module210 based on thecontext data106 related to a user. Accordingly, if theskin selection module214 determines that the classification confidence value does not meet a corresponding predefined confidence threshold (“no” at decision block704), theprocess700 may continue to block706. Atblock706, theskin selection module214 may determine that the emotional state of the user is unknown. Accordingly, theskin selection module214 may select an emotionally neutral skin package for an application.
In some embodiments, the emotional neutral skin package selected by theskin selection module214 may be a skin package that corresponds to the operation scenario type of theapplication108. In such embodiments, the emotionally neutral skin package may be selected from multiple emotionally neutral skin packages.
Returning to decision block704, if theskin selection module214 determines that the classification confidence value at least meets the corresponding predefined confidence threshold (“yes” at decision block704), theprocess700 may continue to block708.
Atblock708, theskin selection module214 may assess the type confidence value of the determined operation scenario type for theapplication108. The operation scenario type of theapplication108 may be determined from application information such as application process names, field classes, an application object model, and screen pixel information. Accordingly, if theskin selection module214 determines that the type confidence value at least meets a corresponding predefined confidence value (“yes” at decision block710), theprocess700 may continue to block712.
Atblock712, theskin selection module214 may select a skin package for the emotional state and the operation scenario type of theapplication108. In some instances, the skin package that is selected by theskin selection module214 may reflect the emotional state. In other instances, the selected skin package may alter the emotional state.
Returning to decision block710, if theskin selection module214 determines that the type confidence value does not meet a corresponding predefined confidence value (“no” at decision block710), theprocess700 may continue to block714. Atblock714, theskin selection module214 may select a default skin package for the emotional state. The default skin package may be a skin package that corresponds to or alters the emotional state, but which is one of the most formal skin packages.
The sentiment aware customization of the user interface of an application with a skin package based on context data that includes an emotional state of a user may strengthen the emotional attachment for the application by the user. Accordingly, the user may become or remain a loyal user of the application despite being offered similar applications from other vendors. Further, the sentiment aware customization may be applied to a variety of software. Such software may include, but are not limited to, office productivity applications, email applications, instant messaging client applications, media center applications, media player applications, and language input method editor applications.
CONCLUSIONIn closing, although the various embodiments have been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended representations is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed subject matter.