Embodiments of the present invention generally relate to online shopping. More particularly, embodiments relate to the use of search queries to define product attributes in electronic commerce (e-commerce) platforms.
A typical online shopping experience may involve a consumer conducting various searches on manufacturer or retailer web sites to identify products of interest. If the consumer's search terms match the information used in a particular product description, then that product might be included in the search results presented to the consumer. Because the product descriptions may often be generated, however, by the manufacturer or retailer there may be instances in which consumer expectations are not fully captured in the information being searched. Accordingly, there may be significant room for improvement with regard to providing consumers an accurate and fast mechanism to identify products of interest.
Embodiments may provide for a computer implemented method in which a search query is received and a user expectation is extracted from the search query. The method may also provide for defining an attribute for a product based on the user expectation.
Embodiments may also include a computer program product having a computer readable storage medium and computer usable code stored on the computer readable storage medium. If executed by a processor, the computer usable code can cause a computer to receive a search query and extract a user expectation from the search query. The computer usable code may also cause a computer to define an attribute for a product based on the user expectation.
Other embodiments may include a computer implemented method in which a search query is received and one or more nouns in the search query are distinguished from a product in the search query. The method can also provide for identifying one or more synonyms associated with the one or more nouns, and extracting a user expectation from the search query based on the one or more nouns and the one or more synonyms. Consumer generated content can be mined for the user expectation, and an occurrence frequency of the user expectation in the consumer generated content may be determined. In addition, the method may involve generating an attribute for the product based on the user expectation if the occurrence frequency exceeds a threshold and the attribute is not present in a product catalog. Moreover, metadata may be added to the attribute, wherein the metadata includes at least one of occurrence frequency data and opinion data. The method can also include adding the attribute to the product catalog, conducting a search of the product catalog based on the search query, and generating a result based on the search.
Embodiments may also include a computer program product having a computer readable storage medium and computer usable code stored on the computer readable storage medium. If executed by a processor, the computer usable code can cause a computer to receive a search query, and distinguish one or more nouns in the search query from a product in the search query. The computer usable code may also cause a computer to identify one or more synonyms associated with the one or more nouns. In addition, the computer usable code can cause a computer to extract a user expectation from the search query based on the one or more nouns and the one or more synonyms, and mine consumer generated content for the user expectation. The computer usable code may also cause a computer to generate an attribute for the product based on the user expectation if the occurrence frequency exceeds a threshold and the attribute is not present in a product catalog. In addition, the computer usable code may cause a computer to add metadata to the attribute, wherein the metadata is to include at least one of occurrence frequency data and opinion data, and add the attribute to the product catalog. The computer usable code can also cause a computer to conduct a search of the product catalog based on the search query, and generate a result based on the search.
Embodiments may also include a computer program product comprising a computer readable storage medium and computer usable code stored on the computer readable storage medium. If executed by a processor, the computer usable code may cause a computer to receive a search query and filter consumer generated content based on the search query to obtain one or more matching products. The computer usable code may also cause a computer to rate the one or more matching products based on one or more opinions expressed in the consumer generated content.
The various advantages of the embodiments of the present invention will become apparent to one skilled in the art by reading the following specification and appended claims, and by referencing the following drawings, in which:
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
Referring now to
In the illustrated example, a query processor 12 is used to enhance search results 20 returned to consumers in response to search queries entered via the product search page 10. In particular, the query processor 12 may include an expectation extractor 14 to receive the search queries and extract user expectations from the search queries. As will be discussed in greater detail, the extraction of user expectations may involve the use of various tools such as synonym repositories, industry-specific knowledge bases, etc. In addition, an attribute generator 16 may dynamically define attributes for products based on the user expectations, wherein the defined attributes may be added to a product catalog 18. The updated product catalog 18 can be used to generate the product search results 20 for both the user associated with the source search query as well as other/subsequent users.
The user defined attributes thus obtained can be further used as filters for obtaining search results. Typically, when a search query is presented to a search engine, the search engine may navigate one or more product catalogs to obtain products that match the query. The user defined attributes described herein, along with one or more “sentiment keywords”, can be used to search the user generated content for specific products that match the sentiment of the user defined attribute. Thus, the user defined attributes can be used to reverse the traditional approach of first using search queries to filter the products. Rather, the illustrated approach provides the searched information (e.g. sentiment keyword) at the end of the navigation process to consumers. Ratings can also be provided for the products that match the search query.
For example, a user might enter the text “Washing machines with good service” into the product search page 10 as a search query, as shown. In such a case, the expectation extractor 14 might parse the entered text to identify “washing machines” as a product and “service” as an expectation with respect to that product. In this regard, the manufacturer (e.g., “Acme”) may not have considered service as a washing machine expectation that is important to its customers. For example, traditional specifications such as physical dimensions, color and cycle types might be a primary focus of the manufacturer for the product in question, whereas more subjective considerations that are important to the end user could be difficult for the manufacturer to ascertain without explicit and costly consumer survey information. Accordingly, in the example shown, the washing machine product descriptions in the product catalog 18 might not include service as a metric that is either searchable or viewable on a product-by-product basis.
The illustrated attribute generator 16, however, is able to dynamically define “service” as an attribute for the product “washing machines”, and add the dynamically defined service attribute to the product catalog 18. Moreover, the attribute generator 16 may populate the service attribute for various washing machines offered by the manufacturer. In one example, the population is accomplished in the form of metadata that can be created based on consumer generated content such as forum content, blog content and social networking content, wherein the metadata is dynamically added to the attribute. As will be discussed in greater detail, the relevant consumer generated content may be validated against an occurrence frequency threshold to ensure an acceptable level of confidence in the generated attribute. In addition, the generated attribute and initial search query may be validated against one or more sentiment rules that enable the proper meaning and/or context to be gleaned from the initial search query.
Thus, it might be determined from the consumer generated content that consumers generally consider “Acme washer 1” to be slightly better than “Acme washer 2” with respect to service. Accordingly, a higher service rank can be assigned to Acme washer 1 than Acme washer 2 in the product search results 20, as shown in the illustrated the example. The illustrated approach therefore provides the initiating user as well as subsequent users of the product search page 10 with more accurate results. Moreover, users may be able to find products that match their expectations more quickly, and may be more likely to make purchases from the manufacturers and/or retailers deploying the query processor 12.
Turning now to
Returning to
If it is determined at block 54 that the occurrence frequency exceeds a certain threshold, a determination may be made at block 56 as to whether a product catalog such as catalog 18 (
Returning now to
The illustrated server 70 also includes a query processor 72 configured to receive search queries from the UE devices 74, extract user expectations from the search queries, and dynamically define attributes for products based on the user expectations. The query processor 72 may also be configured to add the defined attributes to a product catalog such as catalog 18 (
Thus, techniques described herein enable manufacturers/retailers to support opinion searches on specific customer derived attributes, understand customer requirements for products, realign marketing strategies according to customer requirements, and so forth. In addition, consumers may be able to search for products by derived attributes that are not typically provided by manufacturers/retailers, increase confidence in their purchasing decisions, and be exposed to features that are not typically available.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. In addition, the terms “first”, “second”, etc. may be used herein only to facilitate discussion, and carry no particular temporal or chronological significance unless otherwise indicated.
The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.