The rapid proliferation of online social media sites, such as Twitter® and Facebook®, has made it possible for people to publish their opinions more frequently than ever before. The ease with which people may express their thoughts and make these thoughts instantaneously available on the social media websites is a key reason behind this phenomenon. For many businesses, for purposes of remaining competitive, online opinions represent an invaluable source of information. Therefore, it is not uncommon for a business to have a team of people dedicated to the task of reading what is posted on the various social media web sites and extracting insight into what is being said about the products and services that are offered by the business as well as the products and services that are offered by the competitors.
In accordance with exemplary implementations, systems and techniques are disclosed herein for purposes of monitoring online social messages (Twitter® and Facebook® microblogs, as non-limiting examples) to gain insight about the sentiments that are expressed in these messages. More particularly, the systems and techniques that are disclosed herein assign sentiments to the attributes of each monitored message, as compared to assigning a sentiment to each message as a whole.
The assignment of sentiments to message attributes allows better insight to be gleaned from the monitored messages. For example, a user (an employee of Company MNO or a person otherwise hired by Company MNO, as non-limiting examples) may desire to monitor sentiments of Twitter® messages (or “tweets”) that contain the keyword phrases “Company MNO printer” and “ink.” A particular tweet that conforms to this search criteria may specify, “I love my new company MNO printer but the ink runs out too fast”. Assigning this exemplary tweet an overall neutral score is not as informative as decomposing the tweet into its attributes and assigning a sentiment to each attribute. Assuming that the attributes of this exemplary tweet are “company MNO” and “ink,” the “Company MNO printer” attribute of the tweet, may be assigned a positive sentiment, while the “ink” attribute may be assigned a negative sentiment. Thus, for this example, the overall sentiment for the message may have traditionally been indicated as being neutral, whereas the decomposition of the message into its attributes and the assignment of sentiment values to these attributes allows the user monitoring the tweets to gain a better understanding regarding what is being said in the online social media about Company MNO's products and services.
Referring to
As depicted in
In accordance with a specific example described herein, the physical machine 10 contains machine executable program instructions and hardware that executes these instructions for purposes of monitoring sentiments associated with social media messages that are posted on the various social media web servers 100. In this manner, the execution of the machine executable instructions allows a user on the physical machine 10 to visualize (via a user interface 80) real time or near real time sentiments associated with attributes of these social media messages that are targeted by the user's keyword search. Although the machine executable instructions and hardware are discussed herein as being part of a single physical machine 10, the computer system 4 may include one or multiple additional physical machines 10 for purposes of performing the online sentiment monitoring and visualization, in accordance with other example implementations.
It is noted that the architecture that is depicted in
As depicted in
The hardware 32 of the physical machine 10 includes one or multiple processors that execute the machine executable instructions, such as one or multiple central processing units (CPUs) 34 or one or multiple processing cores of one or more multiple CPU(s) 34.
In accordance with some example implementations, the processor(s) of the physical machine 10 execute a set of machine executable instructions to form a processor-based “sentiment analyzer 50” to allow a user to define search criteria for targeting certain online social media messages and various parameters (described below) pertaining to visualization of the monitored sentiments associated with these messages; acquire recently posted online social media messages subject to the user-specified search criteria; decompose these messages to identify attributes in each message; assign sentiment values to each of the attributes; determine statistics characterizing the attribute sentiments; and generate data, which may be displayed on the physical machine's display 37 for purposes of allowing the user to, in real time or near real time, visualize the sentiments.
More specifically, referring to
Referring to
The decomposition engine 210 may identify attributes in the received messages one of a number of different ways, depending on the particular implementation. As a non-limiting example, in accordance with some example implementations, the user defines a list of attributes, and the decomposition engine 210 scans through the language of each received message for purposes of identifying attributes contained in the messages based on this list. It is noted that the list may contain keywords that are used in the search as well as words other than the search keywords. When the decomposition engine 210 identifies one of these specified attributes, the decomposition 210 evaluates the sentiment of the attribute and assigns it a corresponding sentiment value.
In other example implementations, the decomposition engine 210 analyzes the content of each social media message to identify attributes based on criteria other than a user-specified list. For example, the decomposition engine 210 may analyze each message based on its sentence structure and corresponding part of speech to identify nouns in the message such that each of the nouns is deemed to be an attribute. Other variations are contemplated for purposes of identifying attributes in accordance with other example implementations.
The decomposition engine 210 may also examine the sentence structure and parts of speech of a given message for purposes of assigning a sentiment value for each identified attribute of the message. For example, the decomposition engine 210 may examines modifiers (i.e., adjectives or adverbs) that modify a given attribute in the message for purposes of determining a sentiment value for that attribute. As a non-limiting example, the decomposition engine 210 may compare the executed modifiers to lists of modifiers that are predesignated as being associated with negative, neutral and positive sentiments. Regardless of the partitioning used to assign the sentiment, in accordance with some example implementations, the decomposition engine 210 assigns one of three sentiment values to a given attribute:: a “−1” identifying a negative sentiment; a “0” identifying a neutral sentiment; and a “+1” identifying a positive sentiment.
The sentiment monitoring engine 220 communicates with the decomposition engine 210 to retrieve the attributes; retrieve the sentiment values for the attributes; and organize and store the data in various data structures as follows. First, the sentiment monitoring engine 220 maintains a sentiment frequency table 224, which in general, is indexed (via a map 226) according to attribute categories such that the table 224 indicates the number of negative, neutral and positive sentiments expressed for each attribute category.
Thus, for the example that is set forth above, an attribute category of “ink” may be created such that any time the decomposition engine 210 identifies an “ink” attribute in a message and assigns a sentiment value to the “ink” attribute, the corresponding sentiment frequencies for the attribute category “ink” is updated. As depicted in
The sentiment monitoring engine 220 also maintains a sentiment log 240, which tracks the overall sentiment score for each monitored social media message. In this manner, the entries in the log 240 are indexed (via a map 244) to an attribute category. Therefore, each attribute category may index one or multiple social media messages that are tracked in the sentiment log 240. As a non-limiting example, exemplary entry 248 contains fields that identify the data and time of an associated message, along with a field that identifies an overall sentiment score for that message. A given attribute category may point to several such entries 248.
In accordance with an example implementation, the sentiment monitoring engine 220 monitors a user-specified time window of the targeted social media messages, such that, in general, as new messages arrive, a corresponding number of messages is discarded from the window.
As also depicted in
In addition to the above-described visualization of the most frequently occurring attribute categories, the user interface 80 may display one or multiple real time charts, illustrating the real time or near real time sentiments associated with various attribute categories. Additionally, in accordance with some example implementations, the user interface 80 also displays more recently received social media messages (the last five or ten received media messages, for example), which are stored in a recent messages queue 260.
Among the other features of the architecture 200, the user interface 80 allows the user to configure the various parameters that are used to target certain social media messages for monitoring. As a non-exhaustive list, the user interface 80 permits the user to customize what is viewed in the user interface 80, control the keywords associated with the online social media message search, control the selection of the attribute categories that are monitored in real time, control which online media websites are searched for purposes of retrieving the online social media messages, control an aggregation period for averaging sentiment scores, and determine various other parameters associated with the visualization of the monitored sentiments, as further described below.
Additionally, in accordance with exemplary implementations, the user interface 80 allows the user to select a time window on the input stream of incoming social media messages. In this regard, the selectable time window specifies how many social media messages are monitored and analyzed at one time. As the social media messages are received in a streaming fashion, each newly-received social media messages causes the oldest social media message in the time window and its corresponding statistics to be discarded.
The user interface 80 generates a graphical user interface (GUI) 300 (see
In section 320, the GUI 300 displays the overall sentiment score for attribute categories that are specified by the user. For example, the user may specify that the sentiment analyzer 50 is to track attribute categories associated with “Channel DEF,” “Amusement Park ABC,” and “Channel XYZ.” As depicted in
Moreover, in accordance with some example implementations, the GUI 400 includes a start button 436 and a stop button 440 for purposes of controlling the recording of the current monitoring session. Previous sessions may be replayed by the user entering the appropriate file name in a field 448 and clicking on a play button 444 of the GUI 400, in accordance with some example implementations. As also shown in
Referring to
Referring to
In accordance with some implementations, the sentiment analyzer 50 may operate on a single uninterrupted thread and as such, the sentiment analyzer 50 may determine (diamond 544) whether the thread has been interrupted, and if not, control returns to block 508 to continue the real time analysis and monitoring of the online social media sentiment.
While the present invention has been described with respect to a limited number of embodiments, those skilled in the art, having the benefit of this disclosure, will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2011/039566 | 6/8/2011 | WO | 00 | 12/19/2014 |