This application relates to the technical fields of software and/or hardware technology and, in one example embodiment, to system and method to narrow generic searches using related search terms.
Networked commerce systems, such as on-line trading systems, depend upon user specified searches to locate items of commerce. While some users are highly skilled at locating desired items, a large segment of users lack knowledge helpful in navigating such systems. As a result, inefficient use of the system and a lack of user traffic to some commerce items can be experienced. In some existing systems, a web page that allows a user to enter search terms may also be configured to permit a user to select a category, from a list of pre-existing categories, within which the search based on the user-supplied search terms is to be performed.
Embodiments of the present invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numbers indicate similar elements and in which:
A method and system to narrow generic searches using related search terms is described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of an embodiment of the present invention. It will be evident, however, to one skilled in the art that the present invention may be practiced without these specific details.
As used herein, the term “or” may be construed in either an inclusive or exclusive sense. Similarly, the term “exemplary” is merely to mean an example of something or an exemplar and not necessarily a preferred or ideal means of accomplishing a goal. Additionally, although various exemplary embodiments discussed below may utilize Java-based servers and related environments, the embodiments are given merely for clarity in disclosure. Thus, any type of server environment, including various system architectures, may employ various embodiments of the application-centric resources system and method described herein and is considered as being within a scope of the present invention.
An on-online trading system may be configured to maintain listings of items that are being offered for sale. Each such listing comprises a title consisting of words and phrases describing characteristics of the commerce item represented by the listing. System and method may be provided for narrowing generic searches for commerce items described in the listings. The phrase “generic search” refers to a search based on a user-supplied keyword that typically returns a great number of search results, where not all of the results may be of interest to the user. In one example embodiment, when a user submits a request to perform a search based on a word or a phrase (collectively referred to as a search term), all listings that have titles containing the user-supplied search term are examined in order to identify additional words that may be useful in narrowing the search. These additional words may be determined based on how frequently each word appears in the titles of the returned listings. An example system to narrow down generic searches may include a system for determining supplemental search terms based on user-supplied search terms, which may be configured to identify a certain number of words (e.g., five or seven) that appear most frequently in the titles of the returned listings. These words, alone or combined with the user-supplied (or supplemental) search term, may be referred to as system-supplied search terms.
The system-supplied search terms may be used to generate a list of one or more filters to be presented to the user. A filter from the list of filters may be, e.g., a system-supplied search term. When the system to narrow generic searches receives, from a user's computer system, a selection of a filter from the list of filters, the retrieved listings are filtered based on the received selected filter. In some embodiments, a filter from the list of filters may be an inferred category associated with a system-supplied search term, as described below.
The listings returned in response to a user's search request may be filtered by requesting to view only those listings that are associated with a certain pre-existing category. A listing may be mapped to a category based on the words that appear in the title of the listing. For example, words describing a color may be associated with a “color” category; and a listing that includes a word describing a color in its title may be mapped to the “color” category. Similarly, a listing that includes a word describing a part of an automobile may be mapped to an “automobile” category. In some embodiments, the system for determining supplemental search terms based on user-supplied search terms may be utilized to identify additional (also referred to as inferred) categories associated with a listing.
For example, additional categories may be inferred by analyzing, other than the user-supplied search term or synonyms of the user-supplied search terms, in the titles of the returned listings. In some embodiments, one or more inferred categories may be used to refine the returned listings when 1) a user-supplied search term contains more than one word and some of the words can be identified as associated with one category while some of the other words can be identified as associated with another category; or 2) a user-supplied search term contains only one word that can be identified as associated with more than one category. For instance, when a user submits a search request for “black carpet,” all returned listings that have titles containing “black carpet” are examined to identify additional terms. A “color” category may be presented if “black” is identified as associated with the category “color.” Further, if the word “carpet” is identified as associated with the category “automobile,” the “automobile” category may also be presented to the user. Both the “color” category and the “automobile” category may be presented to the user either together at the same time, or separately at different times. In another example, if a user submits a search term “carpet” and the word “carpet” is associated with both the “house decoration” category and the “automobile” category, then both the “house decoration” and the “automobile” category may be presented to help the user refine the returned listings. In some embodiments, additional categories may be inferred based on related/context words that appear in the titles of the returned listings. For example, if the search based on the user-supplied search term “black carpet” returns a listing with the title “black EUROPEAN 6×8 area RUG French MEDALLION carpet,” the context/related words “European,” “area,” “rug,” “French,” and “medallion” can be used to determine supplemental search terms and additional categories.
In still another embodiment, a subcategory may be presented in addition to an inferred category if the user-supplied or the system-generated term has been identified as associated with two or more categories and one of the categories is a subcategory of another. For example, if the word “carpet” is identified as associated with both the category “sedan” and the category “automobile,” and “sedan” is a recognized subcategory of the “automobile” category, then both the “automobile” category and the subcategory “sedan” may be presented to the user.
However, in other embodiments, subcategories may be presented within a main category, regardless of whether the user-supplied or system-generated term is identified as associated with these subcategories or not, as long as the term is identified as associated with the main category. For example, in response to a user search request for “carpet,” an “automobile” category is presented, because “carpet” is identified as an accessory of an automobile. The “automobile” category may include subcategories corresponding to different automobile makers, in which case an example system for narrowing generic searches may present to the user a subcategory related to an automobile maker, such that the user may search only for those “carpet” listings that describe automobile carpet for a particular automobile.
In yet another example embodiment, in determining how frequently a term appears in the titles of the returned listings, the system for narrowing generic searches may examine not only individual terms, but a term and its synonyms. Synonymous relationships (which may be between single words or between phrases consisting of more than one word) may be stored in the mapping database or in a separate database. For the purpose of generating supplemental search terms, the frequency of a term may be determined as the total number of appearances of the term in the titles of the returned listings plus the total number of appearances of its synonyms in the titles of the returned listings. In some embodiments, only one of the synonymous terms is selected as a system-supplied search term. For example, if a user submits a search request for “computer,” and the word “laptop” and its synonym “notebook,” together, appear more frequently than other words in the titles of the returned listings, the system will select either the word “laptop” or the word “notebook,” but not both, for presentation to the user as a system-supplied supplemental search term. For the purposes of determining a supplemental search term, the system may be configured to ignore certain words in the titles of the listings, such as articles and prepositions.
In determining whether two terms are synonyms, the system to narrow generic searches may first determine a so-called level of synonymy. Two terms are considered to be one-level synonymous with each other if they are direct synonyms of each other (e.g., the term “car” is a one-level synonym of the term “automobile”). Two terms are two-level synonymous with each other if the first term and the second terms are not one-level synonymous with each other, but they are both one-level synonymous with a third term (e.g., “truck” and “sedan” are two-level synonyms if they are both mapped as synonyms of the word “automobile”). The calculation of how frequently a term appears in the titles of the returned listings may be performed using one-level and also two-level synonyms. The system to narrow generic searches may be configured to only rely on those synonymous relationships that have less than a predetermined level of depth.
In another example embodiment, synonyms may be also used together with categories to refine the returned listings. A term can be identified as associated with a category if one of its synonyms is identified, as associated with the category. Because the deeper the level a synonymous relationship is, the less likely the two terms are directed to the same subject matter, the system can be configured so that only a synonymous relationship less than a predetermined level of depth is be considered to be associated with a common category.
In a further example embodiment, if a search based on a user-supplied search term containing two or more words returns no results, a system-supplied search term can be generated by removing one or more words from the user-supplied search term. For example, if a search for “embroidered automobile carpet” returns no listings, system-supplied search terms, such as “automobile carpet,” “embroidered carpet,” or simply “carpet” may be provided to the user for selection. Alternatively, the system may automatically, without requiring a selection by the user, perform searches based on the system-generated supplemental search term and present the results to the user. In some embodiments, the system may be configured to remove no greater than a predetermined number of words from the user-supplied search term in generating the system-supplied search terms.
An example system to narrow generic searches may be configured to store system-generated supplemental search terms and inferred categories for future use. When a user-supplied search term is encountered for the first time in the context of a search request, and the system generates a set of filters (e.g., in the form of supplemental search terms, phrases containing a supplemental search term, or one or more inferred categories), these filters are presented to the user and, also, are stored for future use. Thus, next time the same user-supplied search term is encountered by the system to narrow generic searches, the system does not perform the examination of the returned listings during runtime, but instead retrieves the stored set of filters for that user-supplied search term and presents it to the user for selection of a filter. An example method and system to narrow generic searches using related search terms may be implemented in the context of a network environment 100 illustrated in
As shown in
The client system 110 may utilize the browser application 112 to access services provided by the server system 140, such as, e.g., the on-line trading platform 142. The on-line trading platform 142 may be configured to retrieve commerce item listings 152 stored in a storage system 150 and to provide the retrieved listings to users for viewing. The server 140 may also host a system 144. The system 144 may be configured to aid a user in narrowing results of searches performed based on one or more keywords supplied by the user. The system 144 may be configured to examine respective titles of all listings returned in response to a user's search request and, based on the frequency with which different words appear in the titles of the returned listings, provide the user with suggestions of supplemental search terms and/or additional categories.
In one example embodiment, the storage system 150 may store listings of commerce items 152, as well as a mapping database 154. As described above, each listing has a title consisting of words describing characteristics of the commerce item represented by the listing. The mapping database 154 may store associations between keywords and categories, as well as a list of synonymous relationship which may be considered in generating system-supplied search terms. An example system to narrow generic searches may be described with reference to
An example method to narrow generic searches using related search terms can be described with reference to
As shown in
The list of filters may include one or more supplemental search terms identified at operation 330 or, in some embodiments, one or more categories (and, in some embodiments, subcategories) associated with the one or more supplemental search terms. As explained above, the associations of various words and phrases with one or more categories may be stored in the mapping database 154 of
The example computer system 500 includes a processor 502 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 504 and a static memory 506, which communicate with each other via a bus 505. The computer system 500 may further include a video display unit 510 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 500 also includes an alpha-numeric input device 512 (e.g., a keyboard), a user interface (UI) navigation device 514 (e.g., a cursor control device), a disk drive unit 516, a signal generation device 518 (e.g., a speaker) and a network interface device 520.
The disk drive unit 516 includes a machine-readable medium 522 on which is stored one or more sets of instructions and data structures (e.g., software 524) embodying or utilized by any one or more of the methodologies or functions described herein. The software 524 may also reside, completely or at least partially, within the main memory 504 and/or within the processor 502 during execution thereof by the computer system 500, with the main memory 504 and the processor 502 also constituting machine-readable media.
The software 524 may further be transmitted or received over a network 526 via the network interface device 520 utilizing any one of a number of well-known transfer protocols (e.g., Hyper Text Transfer Protocol (HTTP)).
While the machine-readable medium 522 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing and encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of embodiments of the present invention, or that is capable of storing and encoding data structures utilized by or associated with such a set of instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media. Such media may also include, without limitation, hard disks, floppy disks, flash memory cards, digital video disks, random access memory (RAMs), read only memory (ROMs), and the like.
The embodiments described herein may be implemented in an operating environment comprising software installed on a computer, in hardware, or in a combination of software and hardware. Such embodiments of the inventive subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is, in fact, disclosed.
Thus, a method and system to narrow generic searches using related search terms has been described. Although embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the inventive subject matter. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
For example, while an embodiment has been described with reference to an on-line trading platform, a method and system may be implemented and utilized advantageously in the context of various other on-line platforms, as well as stand-alone applications.