Reviews of software applications in application stores have been posted or published with little or no oversight as to the authenticity or seriousness of those reviews. As in any consumer or user reviews, some reviewers may have ulterior motives for reviewing applications in application stores. The reputation of an application developer may be unfairly tarnished by capricious reviewers who have not even used the application. In some instances, even if the reviewer has no ulterior motive against the developer, the reviewer may post a highly biased review without having used the application, or with only superficial or insubstantial use of the application.
According to an embodiment of the disclosed subject matter, a method of weighting a user review of an application includes receiving the review from a user device, determining whether the application is in the user device, and assigning a first weight to the review if the application is not in the user device. In an embodiment, the method further includes determining a usage parameter based on one or more usages of the application by the user device if the application is in the user device, and assigning a second weight to the review based on the usage parameter, where the second weight is greater than the first weight.
According to an embodiment of the disclosed subject matter, an apparatus for weighting a user review of an application includes a memory and a processor communicably coupled to the memory. In an embodiment, the processor is configured to execute instructions to receive the review from a user device, to determine whether the application is in the user device, and to assign a first weight to the review if the application is not in the user device. In an embodiment, the processor is further configured to execute instructions to determine a usage parameter based on one or more usages of the application by the user device if the application is in the user device, and to assign a second weight to the review based on the usage parameter, where the second weight is greater than the first weight.
According to an embodiment of the disclosed subject matter, a server capable of communication with a user device through a network is provided. In an embodiment, the server includes a memory and a processor communicably coupled to the memory. In an embodiment, the processor is configured to execute instructions to receive a review of an application from a user device, to determine whether the application is in the user device, and to assign a first weight to the review if the application is not in the user device. In an embodiment, the processor is further configured to execute instructions to determine a usage parameter based on one or more usages of the application by the user device if the application is in the user device, and to assign a second weight to the review based on the usage parameter, where the second weight is greater than the first weight.
According to an embodiment of the disclosed subject matter, means for weighting a user review of an application are provided, which include means for receiving the review from a user device, means for determining whether the application is in the user device, and means for assigning a first weight to the review if the application is not in the user device. In an embodiment, the means for weighting the user review of the application further include means for determining a usage parameter based on one or more usages of the application by the user device if the application is in the user device, and means for assigning a second weight to the review based on the usage parameter, where the second weight is greater than the first weight.
Additional features, advantages, and embodiments of the disclosed subject matter may be set forth or apparent from consideration of the following detailed description, drawings, and claims. Moreover, it is to be understood that both the foregoing summary and the following detailed description are illustrative and are intended to provide further explanation without limiting the scope of the claims.
The accompanying drawings, which are included to provide a further understanding of the disclosed subject matter, are incorporated in and constitute a part of this specification. The drawings also illustrate embodiments of the disclosed subject matter and together with the detailed description serve to explain the principles of embodiments of the disclosed subject matter. No attempt is made to show structural details in more detail than may be necessary for a fundamental understanding of the disclosed subject matter and various ways in which it may be practiced.
The presently-disclosed subject matter relates to methods and apparatus for weighting user reviews of applications based on usage history. An “application” may include a computer program or software with an interface, such as a user interface, which may enable a user to accomplish a task on a computer or a user device, such as a smartphone, a tablet, or a smartwatch. The user interface for an application may include an icon on a touchscreen of a user device, for example. On various types of user devices, users may download and install various applications from an application store, for example. These applications may be developed by one or more software developers. Reviews by users of such applications may be published on a website, for example.
According to various embodiments of the disclosure, the review of an application by a user is weighted based on prior usage the application by the user on the user device. For example, upon receiving a review of the application from the user device, a determination is made as to whether the application is in the user device. As a specific example, such a determination may be made by the application store, which may detect whether the application has been downloaded from the application store by the user device. As another example, such a determination may be made by sending a query, through a wireless network, for example, to the user device, to detect whether the application is in the user device. If it is determined that the application is not in the user device, then a first weight, which may be a weight of zero or a relatively low weight, is assigned to that review.
On the other hand, if the application is in the user device, a usage parameter based on the usage of the application prior to receiving the review may be determined, and a second weight may be assigned to the review based on the usage parameter. The second weight, which is generated only if the application is in the user device, would be greater than the first weight, which corresponds to the non-presence of the application in the user device. The second weight may be scaled according to the usage parameter, which may be indicative of the user's experience or familiarity with the application. For example, the usage parameter may be based on the number of times the application is opened by the user on the user device prior to the review. As another example, the usage parameter may be based on the length of time the application is open prior to the review. As another example, if the application is opened and closed multiple times on the user device prior to the review, the usage parameter may be based on the total amount of time the application is open. As yet another example, the usage parameter may be based only on instances in which the application has remained open for at least a specific amount of time to determine the weight given to the review.
In some implementations, the service provider may detect the number of active sessions conducted by a given user device for a given application. For example, an active session may include a session in which a user performs one or more substantive tasks by using the application instead of by merely opening and closing the application, or by merely allowing the application to remain idle. In such implementations, the usage parameter may be based on the number of active sessions prior to the review instead of the number of times the application is opened by the user. As another example, the usage parameter may be based on the length of time during which the application is active prior to the review, instead of the total amount of time the application remains open. In some implementations, the usage parameter may be a function of some or all of these values.
If the application is not in the user device as determined in block 104, then a first weight is assigned to the review of the application in block 106. Because the application that has been allegedly reviewed is not in the user device, the review may be a fake or otherwise unreliable one and thus may be given no weight or a low weight. For example, if the weighting of a review is indicated by a five-star rating system, in which a five-star rating corresponds to the heaviest weight and a one-star rating corresponds to the lightest weight for user reviews, then a review received from a user device in which the application does not exist may be given a one-star rating. Alternatively, a review received from a user device in which the application does not exist may be rejected or withheld from publication. As shown in
If, on the other hand, the application that has been allegedly reviewed is present in the user device as determined in block 104, then a usage parameter is determined based on usage of the application by the user device in block 110. The usage parameter may be an indication of the history of usage of the application in the user device prior to receiving the review, and such a usage parameter may be based on one or more types of information that may be detectable by the publisher of the review. Some specific examples of usage parameters that may be used in weighting a user review of the application are described below with references to
In
In some implementations, the user may legitimately enter a review from a device based on usage experience on another device. Such a review may be weighted as a legitimate review instead of being assigned a zero weight when the system detects that the application has been installed on another device owned or used by the user but not on the device on which the user submits the review. The system may determine the legitimacy of the review by reviewing the account profile of the user and comparing it with credentials the user has entered to submit the review, for example.
Similar to the process shown in
A high frequency of access may indicate a high likelihood that the user has gained much experience or familiarity with the application. In some implementations, uses of the application long before submitting the review may be disregarded or discounted. For example, the usage parameter may be limited to a certain time period prior to receiving the review. As a specific example, the number of times the user has opened the application only within one week or one month before submitting the review may be counted and used as a factor in determining the weight to be accorded to the review. In some implementations, after the system has received a number of reviews from a number of users, it may sort those reviews and publish them in an order that reflects the weights assigned to the reviews. For example, the review that is accorded the greatest weight may be published at the top, and the review that is accorded the least weight may be published at the bottom.
In
Similar to the processes shown in
If a user has kept the application open on the user device for a long period of time prior to submitting a review, the length of time during which the application remains open may be an indication that the user has used the application with seriousness, and thus a relatively great weight may be accorded to that review based on the length of time the application has remained open on the user device. In some situations, the user may have opened the application more than once prior to submitting the review, for example. In other words, there may be multiple instances in which the user has opened and closed the application, and the length of time the application has remained open in each instance may vary. In these situations, the length of time that is to be used as a factor in weighting the review may be the total length of time the application is open prior to submitting the review, for example. Alternatively, the length of time that is to be used as a factor in weighting the review may be the longest period of time the application has remained open continuously in a single instance of use prior to the review, for example. As another example, only those instances in which the user has opened the application within a limited period of time before submitting the review, for example, within one week or one month before submitting the review, may be used as a factor in determining the weight for that review, whereas instances of use prior to that period of time are disregarded. As yet another example, instances in which the application has remained open for only a short period of time before it is closed may be disregarded, because it may be unlikely that the user would have had sufficient time to gain more than a superficial understanding of the application in order to provide an informed opinion.
In
In
In
In some situations, there may be multiple instances in which the user has actively used the application. In such situations, the total length of time over multiple instances of active use may applied as a usage parameter for determining the weight to be accorded to the review, for example. Alternatively, the longest time of active use over a single instance of use prior to the review may be applied as a usage parameter for determining the weight, for example. As another example, only the length of time of active use within a limited period of time before submitting the review, for example, within one week or one month before submitting the review, may be used as a factor in determining the weight for that review, whereas instances of active use prior to that period of time are disregarded.
In
In situations in which the systems discussed here collect personal information about users, or may make use of personal information, the users may be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user's identity may be treated so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. As another example, although the identity of the device in which an application has been installed and used may be used for weighting a review received from that device, personal information associated with the user of that device may not be necessary for a system to provide a weighting of that review. Thus, the user may have control over how information is collected about the user and used by a system as disclosed herein.
Embodiments of the presently disclosed subject matter may be implemented in and used with a variety of component and network architectures.
The bus 21 allows data communication between the central processor 24 and one or more memory components, which may include RAM, ROM, and other memory, as previously noted. Typically RAM is the main memory into which an operating system and application programs are loaded. A ROM or flash memory component can contain, among other code, the Basic Input-Output system (BIOS) which controls basic hardware operation such as the interaction with peripheral components. Applications resident with the computer 20 are generally stored on and accessed via a computer readable medium, such as a hard disk drive (e.g., fixed storage 23), an optical drive, floppy disk, or other storage medium.
The fixed storage 23 may be integral with the computer 20 or may be separate and accessed through other interfaces. The network interface 29 may provide a direct connection to a remote server via a wired or wireless connection. The network interface 29 may provide such connection using any suitable technique and protocol as will be readily understood by one of skill in the art, including digital cellular telephone, Wi-Fi, Bluetooth®, near-field, and the like. For example, the network interface 29 may allow the computer to communicate with other computers via one or more local, wide-area, or other communication networks, as described in further detail below.
Many other devices or components (not shown) may be connected in a similar manner (e.g., document scanners, digital cameras and so on). Conversely, all of the components shown in
The user interface 13, database 15, and/or processing units 14 may be part of an integral system, or may include multiple computer systems communicating via a private network, the Internet, or any other suitable network. One or more processing units 14 may be, for example, part of a distributed system such as a cloud-based computing system, search engine, content delivery system, or the like, which may also include or communicate with a database 15 and/or user interface 13. In some arrangements, an analysis system 5 may provide back-end processing, such as where stored or acquired data is pre-processed by the analysis system 5 before delivery to the processing unit 14, database 15, and/or user interface 13. For example, a machine learning system 5 may provide various prediction models, data analysis, or the like to one or more other systems 13, 14, 15. In some implementations, any computing device associated with the network 7, such as the analysis system 5, the remote service client 11, or the processing unit 14, may perform any of the processes of
More generally, various embodiments of the presently disclosed subject matter may include or be embodied in the form of computer-implemented processes and apparatuses for practicing those processes. Embodiments also may be embodied in the form of a computer program product having computer program code containing instructions embodied in non-transitory and/or tangible media, such as floppy diskettes, CD-ROMs, hard drives, USB (universal serial bus) drives, or any other machine readable storage medium, such that when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing embodiments of the disclosed subject matter. Embodiments also may be embodied in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, such that when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing embodiments of the disclosed subject matter. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits.
In some configurations, a set of computer-readable instructions stored on a computer-readable storage medium may be implemented by a general-purpose processor, which may transform the general-purpose processor or a device containing the general-purpose processor into a special-purpose device configured to implement or carry out the instructions. Embodiments may be implemented using hardware that may include a processor, such as a general purpose microprocessor and/or an Application Specific Integrated Circuit (ASIC) that embodies all or part of the techniques according to embodiments of the disclosed subject matter in hardware and/or firmware. The processor may be coupled to memory, such as RAM, ROM, flash memory, a hard disk or any other device capable of storing electronic information. The memory may store instructions adapted to be executed by the processor to perform the techniques according to embodiments of the disclosed subject matter.
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit embodiments of the disclosed subject matter to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to explain the principles of embodiments of the disclosed subject matter and their practical applications, to thereby enable others skilled in the art to utilize those embodiments as well as various embodiments with various modifications as may be suited to the particular use contemplated.