CROSS-REFERENCE TO RELATED APPLICATIONSThis patent application claims the benefit of priority as a continuation of U.S. patent application Ser. No. 13/754,437 filed Jan. 30, 2013 entitled “Method and System relating to Sentiment Analysis of Electronic Content” which itself claims the benefit of priority from U.S. Provisional Patent Application 61/647,183 filed May 15, 2012 entitled “Method and System of Managing Content”, the entire contents of both being incorporated herein by reference.
FIELD OF THE INVENTIONThe present invention relates to published content and more specifically to the processing of published content for users to associate sentiment to the content.
BACKGROUND OF THE INVENTIONIn 2008, Americans consumed information for approximately 1.3 trillion hours, or an average of almost 12 hours per day per person (Global Information Industry Center, University of California at San Diego, January 2010). Consumption totaled 3.6 zettabytes (3.6×1021bytes) and 10,845 trillion (10,845×1012) words, corresponding to 100,500 words and 34 gigabytes for an average person on an average day. This information coming from over twenty different sources of information, from newspapers and books through to online media, social media, satellite radio, and Internet video although the traditional media of radio and TV still dominated consumption per day.
Computers and the Internet have had major effects on some aspects of information consumption. In the past, information consumption was overwhelmingly passive, with telephone being the only interactive medium. However, with computers, a full third of words and more than half of digital data are now received interactively. Reading, which was in decline due to the growth of television, tripled from 1980 to 2008, because it is the overwhelmingly preferred way to receive words on the Internet. At the same time portable electronic devices and the Internet have resulted in a large portion of the population in the United States for example becoming active generators of information throughout their daily lives as well as active consumers augmenting their passive consumption. Social media such as Facebook™ and Twitter™, blogs, website comment sections, Bing™, Yahoo™ have all contributed in different ways to the active generation of information by individuals which augments that generated by enterprises, news organizations, Government, and marketing organizations.
Globally the roughly 27 million computer servers active in 2008 processed 9.57 zettabytes of information (Global Information Industry Center, University of California at San Diego, April 2011). This study also estimated that enterprise server workloads are doubling about every two years and whilst a substantial portion of this information is incredibly transient overall the amount of information created, used, and retained is growing steadily.
The exploding growth in stored collections of numbers, images and other data represents one facet of information management for organizations, enterprises, Governments and individuals. However, even what was once considered “mere data” becomes more important when it is actively processed by servers as representing meaningful information delivered for an ever-increasing number of uses. Overall the 27 million computer servers were estimated as providing an average of 3 terabytes of information per year to each of the estimated 3.18 billion workers in the world's labor force.
Increasingly, a corporation's competitiveness hinges on its ability to employ innovative search techniques that help users discover data and obtain useful results. In some instances automatically offering recommendations for subsequent searches or extracting related information are beneficial. To gain some insight into the magnitude of the problem consider the following:
- in 2009 around 3.7 million new domains were registered each month and as of June 2011 this had increased to approximately 4.5 million per month;
- approximately 45% of Internet users are under 25;
- there are approximately 600 million wired and 1,200 million wireless broadband subscriptions globally;
- approximately 85% of wireless handsets shipped globally in 2011 included a web browser;
- there are approximately 2.1 billion Internet users globally with approximately 2.4 billion social networking accounts;
- there are approximately 800 million users on Facebook™ and approximately 225 million Twitter™ accounts;
- there are approximately 250 million tweets per day and approximately 250 million Facebook activities;
- there are approximately 3 billion Google™ searches and 300 million Yahoo™ searches per day.
Accordingly it would be evident that users face an overwhelming barrage of information (content) that must be filtered, processed, analysed, reviewed, consolidated and distributed or acted upon. For example a market researcher seeking to determine the perception of a particular product may wish to rapidly collate sentiments from reviews sourced from websites, press articles, and social media.
Similarly, a search by a user using the terms “Barack Obama Afghanistan” with Google™ run on May 2, 2012 returns approximately 324 million “hits” in a fraction of a second. These are displayed, by default in the absence of other filters by the user, in an order determined by rules executed by Google™ servers relating to factors including, but not limited to, match to user entered keywords and the number of times a particular webpage or item of content has been opened. However, within this search the same content may be reproduced multiple times in different sources legitimately as well as having been plagiarized partially into other sources as well as the same event being presented through different content on other websites. Accordingly, different occurrences of Barack Obama visiting Afghanistan or different aspects of his visit to Afghanistan may become buried in an overwhelming reporting of his last visit or the repeated occurrence of strategic photo opportunities during the visit during a campaign.
Accordingly, it would be beneficial for the user to be able to retrieve a collection of multiple items of content, commonly referred to as documents, which mention one or more concepts or interests, and automatically cluster them into cohesive groups that relate to the same concepts or interests. Each cohesive group (or cluster) formed thereby consists of one or more documents from the original collection which describe the same concept or interest even where the documents have perhaps a different vocabulary. Even when a user identifies an item of content of interest, for example a review of a product, then the salient text may be buried within a large amount of other content or alternatively the item of content may be formatted for display upon laptops, tablet PCs, etc. whereas the user is accessing the content on a portable electronic device such as a smartphone or portable gaming console for example.
Accordingly it would be beneficial for the user to be able to access the salient text contained in one or more items of content, based on learned semantic and content structure cues so that extraneous elements of the item of content are removed. Accordingly it would be beneficial to provide a tool for inducing content scraping automatically to filter content to that necessary or automatically extracting core text for viewing on constrained screen devices or vocalizing through a screen reader. Automated summarization or text simplification may also form extensions of the scraper.
Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.
SUMMARY OF THE INVENTIONIt is an object of the present invention to provide improvements in the art relating to published content and more specifically to the processing of published content for users to associate sentiment to content, cluster content for review, and extract core text.
In accordance with an embodiment of the invention there is provided a method comprising:
- receiving an item of content;
- parsing the item of content with a microprocessor to generate a linguistic annotated item of content with language associations;
- retrieving from a term selection rules repository stored upon a memory at least a rule of a plurality of rules;
- applying with the microprocessor the at least a rule of the plurality of rules to establish a set of candidate sentiment carrying terms within the linguistic annotated item of content;
- querying the set of candidate sentiment carrying terms against a target-domain sentiment lexicon to generate a set of sentiment labeled terms; and
- applying to the linguistic annotated item of content a set of sentiment labeling rules established in dependence of at least the set of sentiment labeled terms to generate a sentiment label for the item of content.
In accordance with an embodiment of the invention there is provided a method comprising:
- a) receiving an item of content;
- b) receiving upon a microprocessor an indication of a predetermined portion of the item of content to analyze;
- c) establishing with the microprocessor a plurality of positive sentiment terms and a plurality of negative sentiment terms;
- d) parsing with the microprocessor the predetermined portion of the item of content to count occurrences of a positive sentiment term of the plurality of positive sentiment terms to establish a positive sentiment count;
- e) parsing with the microprocessor the predetermined portion of the item of content to count occurrences of a negative sentiment term of the plurality of negative sentiment terms to establish a negative sentiment count; and
- f) determining with the microprocessor a sentiment label to associate with the item of content in dependence upon at least one of the occurrences of the positive sentiment term and occurrences of the negative sentiment term.
In accordance with an embodiment of the invention there is provided a method comprising:
- receiving with an item of content;
- processing with a microprocessor the item of content to determine occurrences of content sentiment-carrying terms;
- displaying to a user the sentiment labels of content sentiment-carrying terms within the item of content; and
- presenting to the user any sentiment intensity variation based on matching at least one of a predetermined sentence and a phrasal syntactic structure of the document with a repository of syntactic structure patterns.
In accordance with an embodiment of the invention there is provided a method comprising:
- a) receiving a plurality of items of content;
- b) identifying with a microprocessor within the plurality of items of content at least a core multi-item concept of a plurality of core multi-item concepts, each core multi-item concept relating to a concept contained at least within a predetermined portion of the plurality of items of concept;
- c) selecting a core multi-item concept from the plurality of core multi-item concepts; and
- d) establishing with the microprocessor a sentiment relating to the core multi-item concept for the plurality of items of content.
Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.
BRIEF DESCRIPTION OF THE DRAWINGSEmbodiments of the present invention will now be described, by way of example only, with reference to the attached Figures, wherein:
FIG. 1A depicts a network accessible by a user and content sources accessible to the user with respect to embodiments of the invention;
FIG. 1B depicts an electronic device supporting communications and interactions for a user according to embodiments of the invention
FIGS. 2A and 2B depict a machine based sentiment learning and classification process according to the prior art;
FIG. 3 depicts a flowchart of a process for a sentiment classification process using a target-domain sentiment lexicon according to an embodiment of the invention;
FIG. 4 depicts a flowchart of a process for a target domain sentiment lexicon generation process according to an embodiment of the invention; and
FIG. 5 depicts a process flow for associating key concepts within multiple documents and associating sentiments to the key concepts according to an embodiment of the invention.
DETAILED DESCRIPTIONThe present invention is directed to published content and more specifically to the processing of published content for users to associate sentiment to content, cluster content for review, and extract core text.
The ensuing description provides exemplary embodiment(s) only, and is not intended to limit the scope, applicability or configuration of the disclosure. Rather, the ensuing description of the exemplary embodiment(s) will provide those skilled in the art with an enabling description for implementing an exemplary embodiment. It being understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope as set forth in the appended claims.
A “portable electronic device” (PED) as used herein and throughout this disclosure, refers to a wireless device used for electronic communications that requires a battery or other independent form of energy for power. This includes devices, but is not limited to, such as a cellular telephone, smartphone, personal digital assistant (PDA), portable computer, pager, portable multimedia player, portable gaming console, laptop computer, tablet computer, and an electronic reader. A “fixed electronic device” (FED) as used herein and throughout this disclosure, refers to a wired or wireless device used for electronic communications that may be dependent upon a fixed source of power, employ a battery or other independent form of energy for power. This includes devices, but is not limited to, such as a portable computer, personal computer, Internet enabled display, gaming console, computer server, kiosk, and a terminal.
A “network operator/service provider” as used herein may refer to, but is not limited to, a telephone or other company that provides services for mobile phone subscribers including voice, text, and Internet; telephone or other company that provides services for subscribers including but not limited to voice, text, Voice-over-IP, and Internet; a telephone, cable or other company that provides wireless access to local area, metropolitan area, and long-haul networks for data, text, Internet, and other traffic or communication sessions; etc.
“Content”, “input content” and/or “document” as used herein and through this disclosure refers to an item or items of information stored electronically and accessible to a user for retrieval or viewing. This includes, but is not limited to, documents, images, spreadsheets, databases, audiovisual data, multimedia data, encrypted data, SMS messages, social media data, data formatted according to a markup language, and information formatted according to a portable document format.
A “web browser” as used herein and through this disclosure refers to a software application for retrieving, presenting, and traversing information resources on the World Wide Web identified by a Uniform Resource Identifier (URI) and may be a web page, image, video, or other piece of content. The web browser also allows a user to access and implement hyperlinks present in accessed resources to navigate their browsers to related resources. A web browser may also be defined within the scope of this specification as an application software or program designed to enable users to access, retrieve and view documents and other resources on the Internet as well as access information provided by web servers in private networks or files in file systems.
An “application” as used herein and through this disclosure refers to a software application, also known as an “app”, which is computer software designed to help the user to perform specific tasks. This includes, but is not limited to, web browser, enterprise software, accounting software, information work software, content access software, education software, media development software, office suites, presentation software, work processing software, spreadsheets, graphics software, email and blog client software, personal information systems and desktop publishing software. Many application programs deal principally with multimedia, documentation, and/or audiovisual content in conjunction with a markup language for annotating a document in a way that is syntactically distinguishable from the content. Applications may be bundled with the computer and its system software, or may be published separately.
A “user,” as used herein and through this disclosure refers to, but is not limited to, a person or device that generates, receives, analyses, or otherwise accesses content stored electronically within a portable electronic device, fixed electronic device, network accessible server, or other source storing content.
A “server” as used herein and through this disclosure refers to a computer program running to serve the requests of other programs, the “clients”. Thus, the “server” performs some computational task on behalf of “clients” which may either run on the same computer or connect through a network. Accordingly such “clients” therefore being applications in execution by one or more users on their PED/FED or remotely at a server. Such a server may be one or more physical computers dedicated to running one or more services as a host. Examples of a server include, but are not limited to, database server, file server, mail server, print server, and web server.
Referring toFIG. 1A there is depicted a network supporting communications and interactions between devices connected to the network and executing functionalities according to embodiments of the invention with a first andsecond user groups100A and1000B respectively to atelecommunications network100. Within the representative telecommunication architecture a remotecentral exchange180 communicates with the remainder of a telecommunication service providers network via thenetwork100 which may include for example long-haul OC-48/OC-192 backbone elements, an OC-48 wide area network (WAN), a Passive Optical Network, and a Wireless Link. The remotecentral exchange180 is connected via thenetwork100 to local, regional, and international exchanges (not shown for clarity) and therein throughnetwork100 to first and second wireless access points (AP)120 and110 respectively which provide Wi-Fi cells for first andsecond user groups100A and100B respectively.
Within the cell associated withfirst AP120 the first group ofusers100A may employ a variety of portable electronic devices (PEDs) including for example,laptop computer155,portable gaming console135,tablet computer140,smartphone150,cellular telephone145 as well asportable multimedia player130. Within the cell associated withsecond AP110 the second group ofusers100B may employ a variety of portable electronic devices (not shown for clarity) but may also employ a variety of fixed electronic devices (FEDs) including forexample gaming console125,personal computer115 and wireless/Internet enabledtelevision120 as well ascable modem105 which linkssecond AP110 to thenetwork100.
Also connected to thenetwork100 iscell tower125 that provides, for example, cellular GSM (Global System for Mobile Communications) telephony services as well as 3G and 4G evolved services with enhanced data transport support.Cell tower125 provides coverage in the exemplary embodiment to first andsecond user groups100A and100B. Alternatively the first andsecond user groups100A and100B may be geographically disparate and access thenetwork100 through multiple cell towers, not shown for clarity, distributed geographically by the network operator or operators. Accordingly, the first andsecond user groups100A and100B may according to their particular communications interfaces communicate to thenetwork100 through one or more communications standards such as, for example, IEEE 802.11, IEEE 802.15, IEEE 802.16, IEEE 802.20, UMTS, GSM 850, GSM 900, GSM 1800, GSM 1900, GPRS, ITU-R 5.138, ITU-R 5.150, ITU-R 5.280, and IMT-2000. It would be evident to one skilled in the art that many portable and fixed electronic devices may support multiple wireless protocols simultaneously, such that for example a user may employ GSM services such as telephony and SMS and Wi-Fi/WiMAX data transmission, VOIP and Internet access.
Also communicated to thenetwork100 are first andsecond servers110A and110B respectively which host according to embodiments of the invention multiple services associated with content from one or more sources including for example, but not limited to:
- social media160 such as Facebook™, Twitter™, LinkedIn™ etc;
- web feeds165 such as formatted according to RSS and/or Atom formats to publish frequently updated works;
- web portals170 such as Yahoo™, Google™, Baidu™, and Microsoft's Bing™ for example;
- broadcasters175 including Fox, NBC, CBS, and Comcast for example who provide content via multiple media including for example satellite, cable, and Internet;
- print media180 including for example USA Today, Washington Post, Los Angeles Times and China Daily;
- websites185 including, but not limited to, manufacturers, market research, consumer research, newspapers, journals, and financial institutions.
Also connected to network100 isapplication server105 which provides software system(s) and software application(s) associated with receiving retrieved content and processing said published content for users to associate sentiment to content, cluster content for review, and extract core text as discussed below in respect of embodiments of the invention. First andsecond servers110A and110B andapplication server105 together with other servers not shown for clarity may also provided dictionaries, speech recognition software, product databases, inventory management databases, retail pricing databases, shipping databases, customer databases, software applications for download to fixed and portable electronic devices, as well as Internet services such as a search engine, financial services, third party applications, directories, mail, mapping, social media, news, user groups, and other Internet based services.
Referring toFIG. 1B there is depicted anelectronic device1004, supporting communications and interactions according to embodiments of the invention with local and/or remote services.Electronic device1004 may be for example a PED, FED, a terminal, or a kiosk. Also depicted within theelectronic device1004 is the protocol architecture as part of a simplified functional diagram of asystem1000 that includes anelectronic device1004, such as asmartphone155, an access point (AP)1006, such as first Wi-Fi AP110, and one or more remote servers1007, such as communication servers, streaming media servers, and routers for example such as first andsecond servers110A and110B respectively. Remote server cluster1007 may be coupled toAP1006 via any combination of networks, wired, wireless and/or optical communication links such as discussed above in respect ofFIG. 1. Theelectronic device1004 includes one ormore processors1010 and a memory1012 coupled to processor(s)1010.AP1006 also includes one ormore processors1011 and amemory1013 coupled to processor(s)1011. A non-exhaustive list of examples for any ofprocessors1010 and1011 includes a central processing unit (CPU), a digital signal processor (DSP), a reduced instruction set computer (RISC), a complex instruction set computer (CISC) and the like. Furthermore, any ofprocessors1010 and1011 may be part of application specific integrated circuits (ASICs) or may be a part of application specific standard products (ASSPs). A non-exhaustive list of examples formemories1012 and1013 includes any combination of the following semiconductor devices such as registers, latches, ROM, EEPROM, flash memory devices, non-volatile random access memory devices (NVRAM), SDRAM, DRAM, double data rate (DDR) memory devices, SRAM, universal serial bus (USB) removable memory, and the like.
Electronic device1004 may include anaudio input element1014, for example a microphone, and anaudio output element1016, for example, a speaker, coupled to any ofprocessors1010.Electronic device1004 may include avideo input element1018, for example, a video camera, and avideo output element1020, for example an LCD display, coupled to any ofprocessors1010.Electronic device1004 includes one ormore applications1022 that are typically stored in memory1012 and are executable by any combination ofprocessors1010.Electronic device1004 includes aprotocol stack1024 andAP1006 includes acommunication stack1025. Withinsystem1000protocol stack1024 is shown as IEEE 802.11 protocol stack but alternatively may exploit other protocol stacks such as an Internet Engineering Task Force (IETF) multimedia protocol stack for example. LikewiseAP stack1025 exploits a protocol stack but is not expanded for clarity. Elements ofprotocol stack1024 andAP stack1025 may be implemented in any combination of software, firmware and/or hardware.Protocol stack1024 includes an IEEE 802.11-compatible PHY module1026 that is coupled to one or more Front-End Tx/Rx &Antenna1028, an IEEE 802.11-compatible MAC module1030 coupled to an IEEE 802.2-compatible LLC module1032.Protocol stack1024 includes a networklayer IP module1034, a transport layer User Datagram Protocol (UDP)module1036 and a transport layer Transmission Control Protocol (TCP)module1038.
Protocol stack1024 also includes a session layer Real Time Transport Protocol (RTP) module1040, a Session Announcement Protocol (SAP)module1042, a Session Initiation Protocol (SIP)module1044 and a Real Time Streaming Protocol (RTSP) module1046.Protocol stack1024 includes a presentation layermedia negotiation module1048, acall control module1050, one or moreaudio codecs1052 and one ormore video codecs1054.Applications1022 may be able to create maintain and/or terminate communication sessions with any of remote servers1007 by way ofAP1006. Typically,applications1022 may activate any of the SAP, SIP, RTSP, media negotiation and call control modules for that purpose. Typically, information may propagate from the SAP, SIP, RTSP, media negotiation and call control modules toPHY module1026 throughTCP module1038,IP module1034,LLC module1032 andMAC module1030.
It would be apparent to one skilled in the art that elements of thePED1004 may also be implemented within theAP1006 including but not limited to one or more elements of theprotocol stack1024, including for example an IEEE 802.11-compatible PHY module, an IEEE 802.11-compatible MAC module, and an IEEE 802.2-compatible LLC module1032. TheAP1006 may additionally include a network layer IP module, a transport layer User Datagram Protocol (UDP) module and a transport layer Transmission Control Protocol (TCP) module as well as a session layer Real Time Transport Protocol (RTP) module, a Session Announcement Protocol (SAP) module, a Session Initiation Protocol (SIP) module and a Real Time Streaming Protocol (RTSP) module, media negotiation module, and a call control module.
As depicted remote server cluster1007 comprises afirewall1007A through which the discrete servers within the remote server cluster1007 are accessed. Alternatively remote server1007 may be implemented as multiple discrete independent servers each supporting a predetermined portion of the functionality of remote server cluster1007. As presented the discrete servers includeapplication servers1007B dedicated to running certain software applications,communications server1007C providing a platform for communications networks,database server1007D providing database services to other computer programs or computers,web server1007E providing HTTP clients connectivity in order to send commands and receive responses along with content, andproxy server1007F that acts as an intermediary for requests from clients seeking resources from other servers.
Contextual Sentiment Classification:
Prior Art: Within the prior art multiple approaches to classifying or assigning a sentiment for an item of content, typically a document or portion of a document, exist. However, these existing sentiment filtering approaches simply determine occurrences of a keyword with positive and negative terms to establish an overall sentiment. However, this analysis does not provide any context in respect of these occurrences with their context. As outlined above the phrase “Last night I drove to see Terminator 3 in mynew Fiat 500, after eating at Stonewall, the truffle bison burger was great” would be interpreted as positive feedback even though the positive term is associated with the food rather than either the film “Terminator 3” or the vehicle “Fiat 500.” Accordingly, it would be beneficial for sentiment analysis of content to be contextually aware.
Referring toFIGS. 2A and 2B there are depicted first and secondschematic representations200 and2000 respectively of the prior art of Pang et al for sentiment classification, which employs the classic ‘bag-of-words’ feature representation for machine learning classification. Referring to first schematic200 there is depicted a first stage of the prior art process wherein a learning process is performed. A training document set205 is stored upon a server for example wherein the training document set205 comprises a predetermined set of documents that serve as training examples for the prior art process wherein typically half of the training document set205 are labelled as expressing positive sentiment, and the other half of the training document set205 are labelled as expressing negative sentiment. The training document set205 are then parsed in a featurevocabulary extraction process210 to provide a unique set of words found in the training document set205. Optionally these are stored with associated frequency counts. The “feature vocabulary list” extracted in featurevocabulary extraction process210 is then optionally reduced throughfeature engineering220 to a smaller set via thresholds which may for example be based on word frequencies, chi-squared distribution (also known as chi-square or χ2distribution), or information theoretic means for example. New features may also be introduced via documents or corpus analysis. The training document set205 are then processed using a standardmachine learning algorithm230, such as for example Naïve Bayes, Support Vector Machines, and Maximum Entropy to generate aclassification model235 based on the association of provided features to the document sentiment labels.
Now referring to second schematic2000 a second stage of the prior art is depicted wherein aninput document240 is to be analyzed for sentiment. Afeature vocabulary245 was used to generate asentiment classification model255 as discussed above in respect of first schematic200 during a machinelearning training process230. Accordingly theinput document240 is processed by an initialdocument feature engineering250 process which converts theinput document240 to a format that matches the features employed in thesentiment classification process260 which is based upon amachine learning model255. This transformation follows the same process asfeature engineering220 infirst schematic200 ofFIG. 2A. Accordingly thesentiment classification process260 assigns a sentiment label to the features derived from theinput document240 wherein the positive or negative sentiment is output asdocument sentiment label270 and associated with theinput document240.
Such prior art approaches suffer from a number of serious limitations, which are addressed by embodiments of the current invention. The limitations include the fact that thesentiment label270 applied to aninput document240 is not explainable. Most machine-learning based classification systems generate an opaque high-dimensional model such that the sentiment label associated with a document cannot be mapped back to the document, and thus there is no easily understandable method to describe how the class-association statistics associated with individual features are used to derive the sentiment label. This “black-box” nature of the machine learning classifier can unnerve those who depend professionally on the veracity of the sentiment label to make business decisions.
Additionally the performance of these supervised machine learning techniques is dependent on the degree to which the training data set and testing data match with respect to domain, topic and time-period. However, it would be evident that a term may provide positive or negative sentiment and accordingly should not form part of the feature vocabulary. For example the word “conservative” may be considered to have positive sentiment in content from the financial domain, but may have negative sentiment in content relating to movie reviews or an artistic genre. Accordingly prior art machine learning based solutions do not ensure that the sentiment associated with a document's constituent terms is derived from the same sentiment context as the document. Without this domain match, highly descriptive words in testing or production document may have a different sentiment than those given in the training document set. Prior art techniques are also not arrived at by a rigorous linguistic analysis of the document.
It would also be evident that the prior art machine learning classification approaches can only operate on information that they have encountered before, i.e. only those features are supported that were included in the training document set's vocabulary. Occurrences of “unseen” words, i.e. words not within the training document set which are extracted into the feature vocabulary set, are essentially ignored. Another limitation within prior art techniques is the ability to classify small documents, especially data sets derived from cellular SMS messages or Twitter status updates for example, as these documents are too small to accurately be classified by machine learning based sentiment classifiers. However, in many instances such documents are desirable as the focus of sentiment classification as a substantial negative or positive sentiment across SMS messages, Tweets, or Facebook status updates provide rapid near real-time analysis of an event or occurrence. For example, a broadcaster upon broadcasting a potentially controversial episode or program may gauge their viewers' responses as the broadcast progresses and track the subsequent evolution of demographic breakdowns in sentiment or evolution of consensus for example.
Contextual Sentiment Classification-Sentiment Classification Process: The contextual sentiment classification of content according to embodiments of the invention is achieved through use of two core processes. These are a sentiment classification process which exploits a target-domain sentiment lexicon and generation of the target-domain sentiment lexicon. Referring toFIG. 3 there is presented anoverview process flowchart300 according to an embodiment of the invention by which aninput document310 is labelled with asentiment label370 as an output of theoverview process flowchart300 class, with optional sentiment intensity, via alinguistic parser320,term selection rules340, target-domain sentiment lexicon350, and document sentiment labelling rules380. Thesentiment label370 being generated in dependence of one or more sentiment labelledterms360 generated through the process.
Accordingly the process begins with input content,document310, which is transformed via aparser320 into an annotated form with associations including, but not limited to, part-of-speech, phrasal chunks, and grammatical relations associated with terms that constitute the input content,document310. Rules retrieved from a termselection rules repository340 are then employed to derive a set of candidate sentiment carrying terms, selectedterms330, from the annotated version of thedocument310 generated byparser320. Eachselected term330 is then queried in a target-domain sentiment lexicon350 to create a list of terms, the sentiment labelledterms360, with associated sentiment labels and optionally associated sentiment intensity. These sentiment labelledterms360 with any associated elements are then employed with the linguistic annotated version of the document generated by theparser320 to apply a set of documentsentiment labeling rules380 in order to generate adocument sentiment label370. Similarly optionally associated sentiment intensities can be employed in conjunction with the documentsentiment labeling rules380 to establish an optional sentiment intensity level for thedocument310.
Optionally, the sentiment labelledterms360, have associated with them one or more sentiment labels and optionally one or more associated sentiment intensities. For example, the term “git” may have the sentiment label of “hate” associated with an intensity of “weak” whereas “loathe” may have the same sentiment label of “hate” but an intensity of “extreme.” It would be evident to one skilled in the art that the target-domain sentiment lexicon350 may established in dependence upon the domain of the input content,document310. The domain may be one or more fields, the fields including but not limited to, an area of human activity, an area of human interest, an area of human endeavour, a topic, a subject, an area of academic interest, an area of academic specialization, a profession, an aspect of business, an aspect of entertainment, and an aspect of personal relationships. The termselection rules repository340 and the rules stored within it may optionally be established upon the domain of the input content or alternatively these may be established in dependence upon one or more factors including the enterprise/service provider executing the sentiment classification process, the software system and/or software system provider supplied repository and rules, user preferences, and preferences of a requestor of a sentiment analysis.
It would be evident to one skilled in the art that the process described above in respect ofFIG. 3 may be applied to a plurality of documents to form the input content wherein the results of each of the plurality of documents may be reported individually or the results may be collated to provide a single determined sentiment or an analysis such as numbers expressing strong positive, positive, mildly positive, neutral, mildly negative, negative, and strong negative sentiment. Such analysis may include optionally reporting events of particular sentiments with intense or very strong sentiment. Optionally, the results of a sentiment analysis such as described supra may be employed in other processes, such as, for example, where the sentiment labelled terms become elements of core text to be extracted from a document through a salient content extraction process such that the result of such a process is a document or documents being reduced to the text associated with the sentiment labelled terms.
Contextual Sentiment Classification—Target-Domain Sentiment Lexicon Generation Process: As noted supra the sentiment classification process exploits a target-domain sentiment lexicon and accordingly the generation of the target-domain sentiment lexicon, which is a separate process is described here. Referring toFIG. 4 there is illustrated a process flowchart schematic400 wherein aninput term410 is assigned a target-domain sentiment label with asentiment lexicon480, with an optional sentiment intensity, by analyzing the co-occurrence counts of thisinput term410 with negative sentiment seed terms420 and positivesentiment seed terms430 in a target-domain document set440.
The process flowchart schematic400 depicting the lexicon generation process is based upon a determination process. This process is based upon generating two counts, the first count being of documents in the target-domain document set440 containing both aninput term410 and one or more negative sentiment seed terms of the set of negative sentiment seed terms420 and storing this negative sentiment seed co-occurrence count450. The second count being of documents in the target-domain document set440 containing both aninput term410 and one or more positive sentiment seed terms of the set of positivesentiment seed terms430 and is stored as the positive sentiment seed co-occurrence count460. Optionally, the co-occurrence counts, being negative sentiment seed co-occurrence count450 and positive sentiment seed co-occurrence count460, may count co-occurrences in one or more of paragraphs, sentences, sliding windows of word (optionally truncated by sentence end punctuations), and via grammatical relations.
The counts of negative and positive seed term co-occurrence counts450 and460 respectively are analyzed to determine the target-domain sentiment label of the term, the sentiment label ofterm470. Subsequently the input term, sentiment label, and (optionally) count information, is reported to a user as shown in the process byReport Sentiment475 and is also stored into a target-domain sentiment lexicon480. The analysis and determination of the sentiment label ofterm470 may for example simply be the higher score if the negative term counts, negative sentiment seed co-occurrence count450, are approximately equal the positive term counts, positive sentiment seed co-occurrence count460. Alternatively, if the classes are imbalanced the analysis may involve a normalization step to reduce the weighting of the more frequent class or terms within each of the negative and positive seed term co-occurrence counts450 and460 respectively may have weightings associated with them such that certain terms if occurring in a document have higher weighting than others.
It would be evident thatinput term410 may be an item of content without any prior consideration or analysis and hence may be an item of content retrieved from one or more sources as discussed above in respect ofFIG. 1 or may be an item of content received in real time such that for example Twitter tweets or Facebook posts may be analysed as they are published thereby allowing an organization the ability to monitor sentiments in essentially real-time. It would also be evident that the item of content may be a single document, such as for example a marketing report or a customer comment received online; a collection of documents; a webpage such as for example a blog, a reporters column, a competitor's product, or a consumer organization's report; or a web domain such that all content within the web domain is analysed such as for example web domains for consumer organizations, newspapers, magazines, competitors, and retailers. It would be further evident thatinput term410 may be initially filtered for an occurrence of a particular keyword, subset of a set of keywords, or all keywords in a set of keywords. Optionally the content may also be processed such that locations of the negative and positive sentiment seed terms relative to one or more keywords are determined and only those meeting a predetermined threshold condition are counted into the respective negative and positive sentiment seed co-occurrence counts.
The content in addition to a social network status update may therefore as discussed and presented supra include, but not be limited to, other content such as an email, a news article, a blog post, a forum comment, a stock report, a news cast, a web page, or any other form of user generated content and/or content generated from an editorial process. The document may have a structure, such as for example including a title, body, and summary, with one or more paragraphs. The structure could be in the form of a template or a frame. Accordingly sentiment analysis may be performed on these structural elements independently to provide multiple sentiments for the item of content or be combined with a weighting in dependence of the structure to provide a sentiment for the content overall. For example, sentiments within the title and summary may be weighted higher than those within the body of the content.
Optionally, according to another embodiment of the invention a domain-detection component may be provided which identifies the domain of an input document, and employs this domain-identification-tag to choose one (or more) target-domain sentiment lexicons from a plurality of stored lexicons. According to another embodiment of the invention a sentiment may be provided with an ordinal scale, for example from {0,1}, {−1,+1}, {2,+5}, or {−5,+5}.
In another embodiment of the invention in addition to the sentiment label for the document, a set of sentiment labels, with optional intensity metrics, could be provided for each constituent term in the document. Optionally the sentiment returned for the document could also contain psychological tone qualifications, such as anger, affinity, disgust, sorrow, etc. based upon exploiting known emotion and attitude ontologies.
The invention could also be combined with a display method which can show the document and the associated sentiment, with optional annotations on selected lexical units that serve to explain the sentiment provided thereby.
Accordingly, advantages of embodiments of the invention include:
- providing improved sentiment analysis as the sentiment generated is based on a targeted-domain sentiment lexicon;
- domain-independent sentiment analysis can be provided when a contextual sentiment analysis system is coupled with a large sample of documents that pertain to a plurality of subjects of interest to a variety of readers;
- ability to describe why a sentiment label has been applied to a document by providing the underlying sentiment(s) associated with selected terms in the document;
- a parser is employed to select the salient terms from the document thereby allowing the system to assign sentiment to only the relevant sentiment-carrying terms.
It would be evident that beneficially the parser allows for identification of the syntactic and semantic linguistic roles of the terms that constitute the document being analyzed for sentiment. Further by employing a set of document sentiment labeling rules, that operate on the syntactic, semantic and sentiment meta-data associated with the terms constituting a document, embodiments of the invention can generate a sentiment based on the linguistic structure of the document, rather than employing the prior art linguistic-structure-bereft ‘bag-of-words’ machine learning sentiment analysis framework.
Contextual Sentiment Classification—Multi-Document Key Concept Generation and Sentiment Association Process: Referring toFIG. 5 there is depicted aprocess flowchart500 according to an embodiment of the invention for associating key concepts within multiple documents and associating sentiments to the key concepts. As depictedprocess flowchart500 begins atstep505 wherein the document set is selected by one or more methods including, but not limited to, manual selection by the user, automatically by an application in execution associated with the user, automatically by an application in execution upon a software system associated with a service subscribed to by the user, and an application in execution upon a software system associated with a software application employed by the user. The process then proceeds to step510 wherein the core multi-document concepts are identified. These core multi-document concepts being identified, for example, using a ranking technique including, but not limited to, frequency-based ranking, chi-square, mutual information, k-means clustering, vector-space centroids. The process then proceeds to step515 wherein the list of key concepts may be filtered to reduce the derived, optionally ranked list, via one or more techniques including, but not limited to, threshold based cutoff, top predetermined number, confidence scores or by comparing with a stop-word list which consists of terms to be excluded as key concepts.
Instep520 the core multi-document concept is selected, e.g. highest ranking, wherein the process proceeds to step525 for a determination as to the method to be employed is made, which are shown as “Document Summary” and “All Occurrences”. If “Document Summary” is selected, for example by the user, via a preference within the software application and/or software system, number of documents, and in dependence upon the core multi-document concept, then the process proceeds to step530 wherein a document based sentiment for the given key concept is obtained for a document within the document set. Instep535 the process determines whether all documents within the document set have had document based sentiments established wherein the process loops back to step530 when further documents remain or proceeds to step540 wherein counts are generated for the positive, negative and neutral sentiments establishing how many documents for that sentiment it is the overall. Then instep545 the user is presented with the category with the largest sentiment count, or alternatively is presented with the results for all three categories. The largest sentiment count category may then be employed according to embodiments of the invention for a variety of subsequent processes, such as for example rewarding customers within that category for their feedback which may be in some instances negative feedback but avoiding automatic rewarding for good feedback may result in a more honest feedback. Alternatively, the sentiment result may be employed to trigger other activities or events such as searching for that sentiment within a new document set.
If instep525 the “All Occurrences” method was selected then the process proceeds to step550 wherein the context-count-based sentiment for a given key concept is established by identifying the sentiment associated with each and every instance of the key concept as it occurs in each document being processed. Accordingly, the process then proceeds to step545 again to present for example and an indicator that indicates the sentiment of the term based on the sentiment label derived using the results fromstep550 via simple addition or through other sentiment classification techniques. The indication may for example be a colour coding, audiovisual coding, or another indicator as known within the art.
It would be evident that other statistical techniques and approaches may be employed in establishing the core multi-document concepts including identification by the user, identification by the software applications and/or software system using previously stored index terms, and entry of a search term and/or terms into a software application such as an Internet browser for example. Optionally, thefiltering step515 may be omitted or replaced with a user selection using a graphical user interface according to one or more techniques known in the prior art. As presentedsteps525 through550 ofprocess flowchart500 are depicted as occurring once for the top ranked core multi-document concept. However, it would be evident to one skilled in the art that these steps may be repeated for one or more of the core multi-document concepts resulting from thefiltering step515. For example, the top 5 concepts may be automatically processed or all concepts exceeding a threshold may be processed.
It would be evident that more or less categories may be established for the multi-document sentiment analysis of the sentiment set or that the process may be re-run once a particular overall sentiment has been assessed to refine the analysis, for example negative may be subsequently assessed for anger, frustration, calm for example. Within the embodiments of the invention a document within a document set may refer, for example, to an article, a blog, a social media post, an email, a comment posted to a website, a word processing document, an office document, a response to a survey, an item of multimedia content, and an item of audiovisual content. Optionally, the results from theprocess flowchart500 relating to a sentiment analysis of a core concept or core concepts within a document set may be communicated through the software application or another software application, e.g. an electronic mail application, for distribution. According, a user may establish a sentiment analysis upon a software system and/or software application which periodically selects a predetermined number of documents to form a document set from a larger volume of documents and transmits the result of sentiment analysis and core concepts to the user such that for example a news service may not only identify the currently trending topics within say, Twitter™, but also automatically obtain associated with these the sentiment analysis.
Specific details are given in the above description to provide a thorough understanding of the embodiments. However, it is understood that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
Implementation of the techniques, blocks, steps and means described above may be done in various ways. For example, these techniques, blocks, steps and means may be implemented in hardware, software, or a combination thereof. For a hardware implementation, the processing units may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, other electronic units designed to perform the functions described above and/or a combination thereof.
Also, it is noted that the embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
Furthermore, embodiments may be implemented by hardware, software, scripting languages, firmware, middleware, microcode, hardware description languages and/or any combination thereof. When implemented in software, firmware, middleware, scripting language and/or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium, such as a storage medium. A code segment or machine-executable instruction may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a script, a class, or any combination of instructions, data structures and/or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters and/or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
For a firmware and/or software implementation, the methodologies may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. Any machine-readable medium tangibly embodying instructions may be used in implementing the methodologies described herein. For example, software codes may be stored in a memory. Memory may be implemented within the processor or external to the processor and may vary in implementation where the memory is employed in storing software codes for subsequent execution to that when the memory is employed in executing the software codes. As used herein the term “memory” refers to any type of long term, short term, volatile, nonvolatile, or other storage medium and is not to be limited to any particular type of memory or number of memories, or type of media upon which memory is stored.
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 term “machine-readable medium” includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and/or various other mediums capable of storing, containing or carrying instruction(s) and/or data.
The methodologies described herein are, in one or more embodiments, performable by a machine which includes one or more processors that accept code segments containing instructions. For any of the methods described herein, when the instructions are executed by the machine, the machine performs the method. Any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine are included. Thus, a typical machine may be exemplified by a typical processing system that includes one or more processors. Each processor may include one or more of a CPU, a graphics-processing unit, and a programmable DSP unit. The processing system further may include a memory subsystem including main RAM and/or a static RAM, and/or ROM. A bus subsystem may be included for communicating between the components. If the processing system requires a display, such a display may be included, e.g., a liquid crystal display (LCD). If manual data entry is required, the processing system also includes an input device such as one or more of an alphanumeric input unit such as a keyboard, a pointing control device such as a mouse, and so forth.
The memory includes machine-readable code segments (e.g. software or software code) including instructions for performing, when executed by the processing system, one of more of the methods described herein. The software may reside entirely in the memory, or may also reside, completely or at least partially, within the RAM and/or within the processor during execution thereof by the computer system. Thus, the memory and the processor also constitute a system comprising machine-readable code.
In alternative embodiments, the machine operates as a standalone device or may be connected, e.g., networked to other machines, in a networked deployment, the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer or distributed network environment. The machine may be, for example, a computer, a server, a cluster of servers, a cluster of computers, a web appliance, a distributed computing environment, a cloud computing environment, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. The term “machine” may also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The foregoing disclosure of the exemplary embodiments of the present invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many variations and modifications of the embodiments described herein will be apparent to one of ordinary skill in the art in light of the above disclosure. The scope of the invention is to be defined only by the claims appended hereto, and by their equivalents.
Further, in describing representative embodiments of the present invention, the specification may have presented the method and/or process of the present invention as a particular sequence of steps. However, to the extent that the method or process does not rely on the particular order of steps set forth herein, the method or process should not be limited to the particular sequence of steps described. As one of ordinary skill in the art would appreciate, other sequences of steps may be possible. Therefore, the particular order of the steps set forth in the specification should not be construed as limitations on the claims. In addition, the claims directed to the method and/or process of the present invention should not be limited to the performance of their steps in the order written, and one skilled in the art can readily appreciate that the sequences may be varied and still remain within the spirit and scope of the present invention.