1. Field of the Invention
The invention generally relates to word searches, and, in particular, to a method and apparatus for collecting user feedback from search queries.
2. Description of the Related Art
Search engines are useful in finding specific information on the vast expanse of the Internet, such as the World Wide Web (“Web”). Without the use of search engines, it may be difficult to locate desired keywords on the Web without knowing a specific Universal Resource Locator (URL), especially with exponential growth of the Internet.
Various types of search engines exist today, including, but not limited to, those that are powered by crawlers (or spiders), those that are powered by human submissions, and those that are a combination of the two. Crawler-based engines, for example, send crawlers into cyberspace, where they search webpages for words, and then follow various hyperlinks found on these webpages to access other websites. In this way, the crawler quickly begins to travel, spreading out across the more widely used portions of the web to build and/or update the database of words. The crawler may periodically return to the sites to check for any information that has changed, and the frequency with which this happens is determined by the administrators of the search engine. In contrast to crawler-based engines, human-powered search engines rely on humans to submit information that is subsequently indexed and catalogued. Typically, only information that is submitted is included in the index.
When a search engine receives a query from a user, the search engine searches the created database to respond to the search query. These databases tend to be large because of the enormous amount of information that has been compiled over time. Because queries from users are searched against the compiled database of information, the ability of a search engine to effectively provide pertinent search results to the user is based in part on the relevancy of information stored in the database. Thus, it is not surprising that the utility of a search engine is oftentimes measured against the ratio of relevant-to-irrelevant links it provides based on a search query.
Conventional methods of swinging this ratio towards the better end of the equation include the use of complex, static, or passive algorithms, some of which may entail measuring the number of other pages that provide a link to the page in question, or by dynamically altering the weight of the ranking based upon the number of other users of the search engine that also selected the same hyperlink that was provided. These conventional methods, however, are generally inadequate for providing relevant information quickly and efficiently, in part because of the limited range of information that is available to improve, or even optimize, the data that is stored in the databases associated with the search engines.
The present invention is directed to addressing, or at least reducing, the effects of, one or more of the problems set forth above.
In one aspect of the instant invention, a method is provided for collecting user feedback based on search queries. The method comprises receiving a search term from a user and providing a search result to the user based on comparing at least a portion of the received search term with at least a portion of one or more entries stored in a database. The method further comprises providing a feedback module to the user to monitor at least one online action of the user in response to providing the search result. The method further calls for receiving, from the feedback module, information associated with the at least one monitored user action to adjust at least one entry stored in the database.
In another aspect of the instant invention, an apparatus is provided for collecting user feedback based on search queries. The apparatus comprises a storage unit that has a database stored therein, which is communicatively coupled to a control unit. The control unit is adapted to receive a search term from a user, provide a search result to the user based on comparing at least a portion of the received search term with at least a portion of one or more entries stored in the database, and provide a feedback module to the user to monitor at least one online action of the user in response to providing the search result. The control unit is further adapted to receive, from the feedback module, information associated with the at least one monitored user action to adjust at least one entry stored in the database.
In yet another aspect of the instant invention, an article comprising one or more machine-readable storage media containing instructions is provided for collecting user feedback based on search queries. The instructions, when executed, enable a processor to receive a search term from a user, provide a search result to the user based on comparing at least a portion of the received search term with at least a portion of one or more entries stored in a database, and provide a feedback module to the user to monitor at least one online action of the user in response to providing the search result. The instructions further enable a processor to receive, from the feedback module, information associated with the at least one monitored user action to adjust at least one entry stored in the database.
The invention may be understood by reference to the following description taken in conjunction with the accompanying drawings, in which like reference numerals identify like elements.
While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the description herein of specific embodiments is not intended to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.
Illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure.
The words and phrases used herein should be understood and interpreted to have a meaning consistent with the understanding of those words and phrases by those skilled in the relevant art. No special definition of a term or phrase, i.e., a definition that is different from the ordinary and customary meaning as understood by those skilled in the art, is intended to be implied by consistent usage of the term or phrase herein. To the extent that a term or phrase is intended to have a special meaning, i.e., a meaning other than that understood by skilled artisans, such a special definition will be expressly set forth in the specification in a definitional manner that directly and unequivocally provides the special definition for the term or phrase.
Referring to
The device 105 includes a search module 135 that allows a user to input one or more search terms that can be provided to a search engine module 140 of the device 110. Although not so limited, an example of a search module may be a web browser application that allows a user to access a desired website, such as a search engine website, to search for the desired terms or words.
In
In one embodiment, the search engine module 140 maintains a database of select words that may be found on the network 130. For example, the search engine module 140 may search and maintain a database of words that are found at various websites or in files associated with the various devices 120(1-3) that are coupled to the network 130. In one embodiment, each device 120(1-3) may be considered a node on the network 130 that may have an associated website that can be searched for contents.
The words found during a search and stored in the database may also contain an associated location identifying where those words can be found on the network 130. Furthermore, the database may also include meta tags, which generally provide information about a stored webpage, information such as who created the webpage, how often it was updated, what the webpage was about, and which keywords represented the webpage's content, page rank of the associated webpage, and so forth. A flow diagram of how the search engine module 140 may generate a database of words is described later with reference to
In accordance with one embodiment of the present invention, the search engine module 140 maintains its database such that the more meaningful (or relevant) results are returned for each query. Specifically, and as is described in greater detail below, the search engine module 140 updates its database based on feedback provided by users who use the services of the search engine module 140. In one embodiment, the search engine module 140 uses a feedback module 142 to transparently receive feedback from the user. The feedback module 142 may be any one of a variety of types of software applications, including a Java applet or a browser plug-in, for example.
In one embodiment, the search engine module 140 provides the feedback module 142 to the user's device (e.g., processor-based device 105), and the feedback module 142 thereafter monitors the user's activities during the search and/or after the search is complete, and then provides the gathered information (i.e., feedback) to the search engine module 140. Based on the user feedback, the search engine module 140 may employ robust algorithms to enable the search engine module 140 to provide more meaningful or relevant results to users during subsequent search queries. The above cycle may be repeated as many times as desired for any desired number of users to improve the relevancy of the stored data.
In an alternative embodiment, the search engine module 140 may employ proxies (not shown) to collect feedback from the users. For example, the exchange of information between the search engine module 140 and the user's device may occur through a proxy (or, specifically, a reverse proxy). In such an embodiment, the search engine module 140 may or may not employ the feedback module 142, depending on the implementation design. Thus, depending on the particular implementation, the search engine module 140 may employ the feedback module 142, a proxy, or a combination thereof to collect user feedback data.
In the illustrated embodiment, the devices 120(1-3) include a web server module 150, which may be capable of receiving requests over the network 130 and responding to such requests. For example, the web server module 150 may include an HTTP (Hypertext Transfer Protocol) service routine 155 that is capable of receiving HTTP requests over the network 130, as well as sending HTTP responses over the network 130. HTTP specifies how a client and server may establish a connection, how the client may request data from the server, how the server may respond to the request, and how the connection may be closed. One version of HTTP is described in RFC 2068, entitled “Hypertext Transfer Protocol—HTTP/1.1,” dated January 1997. In an alternative embodiment, the HTTPS protocol may also be employed. The devices 120(1-3) may host one or more websites that can be accessible by the search engine module 140 of the device 110. As noted, the search engine module 140 may search the websites for various words and generate a searchable database.
The network 130 of
As utilized herein, a “network” may refer to one or more communications networks, channels, links, or paths, and systems or devices (such as routers) used to route data over such networks, channels, links, or paths.
The various modules 135, 140, 142, 150 illustrated in
It should be understood that the configuration of the communications system 100 of
Those skilled in the art should appreciate that the path that the spider 205 takes in searching the Internet for words may vary from one implementation to another. In
In
Once the searchable database 228 is created, the search engine module 140 may employ the feedback module 142 to gather information from the users to improve the database 228 so that the relevance of the contents of the database, such as hyperlinks, can be improved, thereby increasing the usefulness and effectiveness of the search engine. In an alternative embodiment, one or more embodiments of the present invention may be employed to improve the relevancy of the contents of the database 228 as the contents are being compiled to create an initial database 228. One way of updating the contents of the database 228 for improved relevancy is illustrated next in
Referring now to
In accordance with one embodiment with the present invention, in association with providing the results (at 325) to the user, the search engine module 140 transmits (at 330), if desired, a copy of the feedback module 142 to the processor-based device 105. In one embodiment, the search engine module 140 may query the processor-based device 105 to determine if it already has a copy of the feedback module 142. The processor-based device 105 may already have a copy of the feedback module 142, for example, from a previous Web access (i.e., a cached copy), or the user may have manually installed a local copy at an earlier time. If it is determined that the processor-based device 105 already has a copy of the feedback module 142, the search engine module 140, in one embodiment, may not transmit (at 330) another copy to the user.
As the user peruses the results provided by the search engine module 140, and eventually selects one or more of the provided results (e.g., hyperlinks), the feedback module 142 may monitor (at 332) the user's activities. After a selected (or programmable) amount of time or, alternatively, after some selected (or programmable) amount of data has been collected, the feedback module 142 may provide the data to the search engine module 140. In one embodiment, the feedback collected may be based on the user's online actions or activities while the user continues to use the search engine or continues with the search. In an alternative embodiment, the feedback may be based on the user's online actions or activities after the search has been completed or the user has left the search engine. In yet another embodiment, the feedback collected may be based in part on the user's activities during the search, as well as the user's activities after the search.
The types of activities monitored may vary from one implementation to another. As an example, the feedback module 142 may monitor how quickly a user selects a given result provided by the search engine. This action by the user may occur, for example, while the user is still using the search engine. A relative quick selection from the provided results may be indicative of a highly relevant result. As another example, the feedback module 142 may monitor the position of a search result (e.g., hyperlink) selected by the user relative to the other provided results. Thus, in this example, the relative position of the user's selection may be indicative of the relevancy of that result. In this example, a more “static” indicator (e.g., relative position of the selected hyperlink) is monitored, as opposed to the first example in which a variable indicator (e.g., selection time) is monitored. As yet another example, the feedback module 142 may monitor how long a user stays on a particular page after leaving the search engine or may determine which pages a user visits after leaving the search engine. In another example, the feedback module 142 may monitor if the user comes back to the search engine to search again, which may indicate that a less relevant (or even an irrelevant) result may have been provided the first time. As can be seen based on the above-noted examples, the feedback module 142 may monitor the user's activities that occur during a search, after a search, or anytime therebetween. In one embodiment, the feedback module 142 may monitor any combination of the above-described activities and provide the monitored results to the search engine module 140. Of course, in addition to the above-noted examples, other desirable actions that are indicative of a relevance of a result may also be monitored and provided to the search engine module 140.
The data provided by the feedback module 142 is received (at 335) by the search engine module 140. Based on the received feedback, the search engine module 140 updates (at 350) the contents of its database 228 in an effort to improve the relevancy of its database 228 contents. Depending on the particular implementation and the particular context, the search engine module 140 may update (at 350) the database by revising entries stored therein, deleting stored entries, or adding new entries. For example, if the user's actions reveal that, based upon the submitted search criteria, the user visited webpages that were not previously known to the search engine module 140, the search engine module 140 may add a new entry to its database 228 to reflect the newly discovered webpage. As another example, if the user's actions indicate that the provided result was not very useful to the user, the search engine module 140 may lower the relevance associated with the provided result, or, if appropriate, may even remove the entry from the database 228. An entry may be removed, for example, if it is determined to be an invalid hyperlink. In one embodiment, in addition to the stored words and their associated locations, the search module 132 may also modify the meta tags associated with one or more entries of the database 228, as discussed below.
In one embodiment, an entry in the database 228 may be designated as more relevant compared to other stored entries based on an associated weighted value assigned to that entry. This weighted value, which can be a scaled value, may be part of a meta tag, for example. In one embodiment, the weighted value may represent the ranking of a particular entry in the database 228 relative to other entries in a manner analogous to the way “page ranking” is employed by some search engines, such as Google®, for example. Of course, in alternative embodiments, other techniques may be employed to designate the relevancy of the stored entries. This designation can be stored in the meta tags, which can then be updated based on the received user feedback.
In accordance with one or more embodiments of the present invention, and for reasons discussed above, it is possible to improve the relevancy of the contents of the database 228 to improve the ratio of relevant to irrelevant results. As explained, this may be accomplished, in one embodiment, by taking advantage of the conventional spidering and indexing techniques and combining them with the data collected based on users' activities. In one embodiment, the relevance of the results can be ascertained by the actual, on-line actions of the users, thus allowing the search engine module 140 to effectively and efficiently determine the usefulness of the results that were provided to the user. In this manner, a finer granularity in relevance can be achieved. Moreover, the search engine module 140 may continually improve the relevance of the provided results, and thereby further increase its utility to the users.
Referring now to
A storage unit 550 is coupled to the south bridge 535. The software installed in the storage unit 550 may depend on the features to be performed by the system 500. For example, if the system 500 is implemented as the device 105 of
In the illustrated embodiment, the system 500 includes a display interface 547 that is coupled to the south bridge 535. The system 500 may display information on a display device 548 via the display interface 547. The south bridge 535 of the system 500 may include a controller (not shown) to allow a user to input information using an input device, such as a keyboard 548 and/or a mouse 549, through an input interface 546.
The south bridge 535 of the system 500, in the illustrated embodiment, is coupled to a network interface 560, which may be adapted to receive, for example, a local area network card. In an alternative embodiment, the network interface 560 may be a Universal Serial Bus interface or an interface for wireless communications. The system 500 communicates with other devices coupled to the network 130 through the network interface 560. Although not shown, associated with the network interface 560 may be a network protocol stack, with one example being a UDP/IP (User Datagram Protocol/Internet Protocol) stack. UDP is described in RFC 768, entitled “User Datagram Protocol,” dated August 1980. In one embodiment, both inbound and outbound packets may be passed through the network interface 560 and the network protocol stack.
It should be appreciated that the configuration of the system 500 of
The various system layers, routines, or modules may be executable control units (such as control unit 515 (see
The particular embodiments disclosed above are illustrative only, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. Accordingly, the protection sought herein is as set forth in the claims below.