Customers can provide feedback, in the form of reviews, regarding offerings (products or services) of an enterprise. Reviews can be submitted online at third party sites (e.g. web survey sites or social networking sites such as Facebook and Twitter), or alternatively, reviews can be received directly by an enterprise. There can be potentially a very large number of received reviews, which can make meaningful analysis of such reviews difficult and time-consuming.
The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.
Some embodiments are described with respect to the following figures:
An enterprise (e.g. a company, educational organization, government agency, etc.) may collect feedback from customers (or more generally “users”) to better understand user sentiment regarding an offering of the enterprise. An offering can include a product or a service provided by the enterprise. A “sentiment” refers to an attitude, opinion, or judgment of a human with respect to the offering.
If there are a relatively large number of users, then there can be relatively large amounts of user feedback. An enterprise can provide an online website to collect feedback from users. Alternatively or additionally, the enterprise can also collect feedback through telephone calls or on paper survey forms. Furthermore, feedback can be collected at third party sites, such as travel review websites, product review websites, social networking sites (such as Facebook and Twitter), web survey sites, and so forth. Some third party websites provide professional reviews of offerings from enterprises, as well as provide mechanisms for users to submit their individual reviews.
Traditionally, visualizations of sentiment feedback from users do not effectively express geo-spatial information, which is information indicating geographic locations associated with feedback data records provided by users. Without the geo-spatial information, analysis of sentiments expressed by users may not consider effects of geographic locations towards respective sentiments.
In accordance with some implementations, such as in examples according to
Instead of using different colors to represent different sentiments, other types of visual indicators can be used instead, such as different fill patterns or different gray levels.
In some examples, the sentiment expressed in a particular data record can be based on scores assigned by a user (e.g. a score between 1 and 5, where 5 is positive while 1 is negative). In other examples, the sentiment expressed in a particular data record can be based on analysis of words in the data record—for example, the analysis can identify sentiment words associated with nouns representing targets of the sentiment words, and the sentiment words can be processed to determine the corresponding sentiment.
In the example of
The data records representing corresponding user reviews contain location attributes, which can specify values for geometric coordinates (e.g. latitude and longitude) for each data record, where the specified values of the geometric coordinates represent the geographic location associated with the corresponding user review. Such geographic location can be the location of the user when the user submitted the review, the location of the entity that the review is about, and so forth.
The positions of the various pixels in the graphical visualization 100 can correspond to positions on a geographic map, such as geographic map 200 shown in
By placing pixels representing user review data records in a graphical visualization according to positions that correspond to geographic locations, geo-spatial information can be provided to an analyst. As a result, the analyst can determine the correlation, if any, between geographic locations and corresponding sentiments (positive, negative, or neutral).
It is possible that there can be multiple data records that share the same values of geometric coordinates (e.g. same latitude and same longitude). This can occur when reviews are submitted by users in large cities, such as Los Angeles, San Francisco, New York City, and so forth. To avoid or reduce overlapping of pixels corresponding to data records that share the same geometric coordinates (which can result in occlusion of these pixels), techniques or mechanisms according to some implementations can place pixels representing data records that share the same geometric coordinates in nearby positions within a defined subregion. By placing pixels sharing the same geometric coordinates, clusters of such pixels are formed, to provide respective subregions (e.g. 104, 106, 108, or 110, among others in
Each of subregions 104, 106, 108, and 110 contain pixels corresponding to data records that share a set of geometric coordinates (e.g. same latitude and longitude). For example, the subregion 104 can contain pixels corresponding to data records associated with San Francisco, the subregion 106 can contain pixels corresponding to data records associated with Los Angeles, the subregion 108 can contain pixels corresponding to data records associated with Buenos Aires, and the subregion 110 can contain pixels corresponding to data records associated with New York City.
If pixels corresponding to data records that share the same geometric coordinates were placed at the same position in the graphical visualization 100, then the graphical visualization 100 would indicate presence of just one data record at the position, even though potentially there can be hundreds or thousands of data records sharing the same geometric coordinates.
In some examples, each subregion of pixels that correspond to data records sharing the same geometric coordinates can have a generally rectangular shape (in some examples, a subregion can have a generally square shape). Placing pixels that share the same geometric coordinates in “nearby locations” can refer to pixels being placed in such close proximity that a user can detect the grouping of the visual indicator (e.g. colors) of the pixels, where the visual indicators indicate respective sentiment attribute values. Further details regarding a technique for avoiding or reducing overlay of pixels sharing common attribute values are provided in U.S. Ser. No. 12/381,716, “Constructing a Cell-Based Cluster of Data Records of a Scatterplot,” filed Mar. 16, 2009.
Using techniques or mechanisms according to some implementations, a relatively large quantity of data records can be visualized in a graphical visualization that provides geo-spatial information regarding the depicted data records. The ability to place pixels corresponding to data records that share geometric coordinates reduces or avoids occlusion of pixels corresponding to multiple data records. In addition to providing geo-spatial information of individual data records, density of data records at different geographic locations can also be depicted, such as by clustering pixels together in subregions for data records that share geometric coordinates. A region in the graphical visualization 100 having a relatively high density of pixels thus indicate reviews that are located in the same geographic location or are in a close neighborhood of geographic locations.
It is noted that in some examples, aggregation of pixels is not performed. Rather, the placement technique in which pixels representing data records that share the same geometric coordinates are placed in nearby positions is employed. Not aggregating pixels in the graphical visualization 100 allows for a user to move a cursor over individual pixels to obtain further information regarding the data records represented by the corresponding pixels.
Additional information regarding a data record represented by a particular pixel can be provided in a pop-up box 120. The pop-up box 120 can be displayed when a cursor is moved over the particular pixel in the graphical visualization 100.
The control element 140 is moveable left or right to control an amount of distortion of one of the axes in the graphical visualization. For example, the control element 140 can be moved to the right to apply greater distortion, where distortion of an axis, such as the horizontal axis, causes the axis to become non-linear in terms of scale.
The process of
The process then places (at 304) a subset of the pixels sharing a particular set of geometric coordinates (e.g. sharing the same latitude and longitude) in a subregion (e.g. one of the subregions 104, 106, 108, 110 in
In examples according to
In either the graphical visualizations 100 or 500 shown in
The placement technique according to some examples is described in the pseudocode set forth below:
In the example above, the pseudocode represents a function doPixelPlacement( ), which is called to perform pixel placement according to some implementations. The input to the function doPixelPlacement( ) includes an ordered list of data records (OrderedList DataObjects), which can be ordered according to a predefined attribute of the data records in ascending or descending order.
At line 5 of the pseudocode above, a parameter overlapCount (for a particular set of coordinates represented by p.x and p.y) is compared to a predefined parameter maxOverlap (which indicates the number of pixels that can overlay each other at a particular position in a graphical visualization). The value of maxOverlap depends on the position of the control element 130 in
The value of overlapCount[p.x][p.y] for a particular position, represented by the combination of p.x and p.y (the x and y coordinates, respectively), is incremented by 1 (line 7 of the pseudocode above) each time a pixel is placed (painted) at the particular position represented by p.x and p.y (line 6 of the pseudocode above). The values of p.x and p.y are obtained at line 4 of the pseudocode, which obtains a position (p) of a pixel, where p contains the p.x and p.y values.
If no overlap of pixels is allowed, or if overlapCount[p.x][p.y] is not less than maxOverlap as determined at line 5 of the pseudocode, then a function RearrangeDataObject( ) is invoked at line 9 of the pseudocode above. The function RearrangeDataObject( ) is to position pixels sharing the same geometric coordinates (p.x and p.y) in a subregion, such as according to
The RearrangeDataObject( ) function searches in a square (such as the subregion 402 of
The pixel geo-spatial visualization module 602 can be implemented as machine-readable instructions executable on one or multiple processors 604. The processor(s) 604 can be connected to a storage medium (or storage media) 606 and to a network interface 608. A processor can include a microprocessor, a microcontroller, processor module or subsystem, programmable integrated circuit, programmable gate array, or another control or computing device. The storage medium 606 can store a data set 610 that has been received by the system 600, where the dataset 610 can include various data records that contain a sentiment attribute and attributes relating to geometric coordinates.
The storage medium 606 can be implemented as one or more computer-readable or machine-readable storage media. The storage media include different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed, floppy and removable disks; other magnetic media including tape; optical media such as compact disks (CDs) or digital video disks (DVDs); or other types of storage devices. Note that the instructions discussed above can be provided on one computer-readable or machine-readable storage medium, or alternatively, can be provided on multiple computer-readable or machine-readable storage media distributed in a large system having possibly plural nodes. Such computer-readable or machine-readable storage medium or media is (are) considered to be part of an article (or article of manufacture). An article or article of manufacture can refer to any manufactured single component or multiple components. The storage medium or media can be located either in the machine running the machine-readable instructions, or located at a remote site from which machine-readable instructions can be downloaded over a network for execution.
In the foregoing description, numerous details are set forth to provide an understanding of the subject disclosed herein. However, implementations may be practiced without some or all of these details. Other implementations may include modifications and variations from the details discussed above. It is intended that the appended claims cover such modifications and variations.