Systems, methods, and machine-readable storage media for identifying missing browsing nodes
By identifying the aspects of categories and their combinations, missing browsing node pages are automatically created, which solves the problem of users missing browsing nodes during the search process, and improves user experience and system efficiency.
Patent Information
- Application Number
- CN202411813081.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2016-10-11
- Filing Date
- 2017-05-30
- Publication Date
- 2025-04-25
AI Technical Summary
The prior art is difficult to efficiently identify and solve the browsing nodes that users lack during the search process, resulting in the inability of users to effectively obtain the results of interest.
By identifying aspects of categories and their combinations, identifying missing browsing node pages and creating corresponding browsing node pages, providing specific project groups that users can browse.
Improve the user experience. By automatically creating missing browsing node pages, users can obtain relevant results more easily, reducing users' efforts in the search process and the consumption of system resources.
Smart Images

Figure CN119884514A_ABST
Abstract
Description
[0001] This application is a divisional application of the PCT invention patent application with application number No.201780033427.3 and invention name “Identifying Missing Browsing Nodes”, which was submitted to the International Bureau on May 30, 2017 and entered the Chinese national phase on November 29, 2018.
[0002] Priority claim
[0003] This application claims priority to U.S. Patent Application No. 15 / 290,283, filed on October 11, 2016, entitled “Identifying Missing BrowseNodes,” and U.S. Provisional Patent Application No. 62 / 343,646, filed on May 31, 2016, entitled “Labeling Querywith Aspects,” both of which are incorporated herein by reference in their entirety. Technical Field
[0004] The subject matter disclosed herein relates generally to data processing. Specifically, in some example embodiments, the present disclosure addresses systems and methods for identifying missing browsing nodes. Background Art
[0005] It is desirable to efficiently retrieve and present results of interest to the user without requiring the user to explicitly perform a series of queries. Summary of the invention
[0006] In order to improve user experience, the present disclosure proposes a system, method and machine-readable storage medium for identifying missing browsing nodes.
[0007] According to one aspect of the present disclosure, there is provided a method for identifying a missing browsing node executed by a system, comprising:
[0008] identifying a combination of a category and one or more aspects of said category;
[0009] determining that a browse node page does not exist for the identified combination of the category and one or more aspects of the category; and
[0010] Based on determining that no browsing node page exists for the combination of the identified category and one or more aspects of the category, a browsing node page is created for the combination of the identified category and one or more aspects of the category, wherein the browsing node page presents a specific group of items associated with the combination of the identified category and one or more aspects of the category that can be browsed by multiple users.
[0011] According to another aspect of the present disclosure, a system for identifying a missing browsing node is provided, comprising:
[0012] a memory for storing instructions; and
[0013] One or more processors configured by the instructions to perform the following operations:
[0014] identifying a combination of a category and one or more aspects of said category;
[0015] determining that a browse node page does not exist for the identified combination of the category and one or more aspects of the category; and
[0016] Based on determining that no browsing node page exists for the combination of the identified category and one or more aspects of the category, a browsing node page is created for the combination of the identified category and one or more aspects of the category, wherein the browsing node page presents a specific group of items associated with the combination of the identified category and one or more aspects of the category that can be browsed by multiple users.
[0017] According to another aspect of the present disclosure, there is provided a machine-readable storage medium including instructions, which, when executed by one or more processors of a machine, cause the machine to perform operations including:
[0018] identifying a combination of a category and one or more aspects of said category;
[0019] determining that a browse node page does not exist for the identified combination of the category and one or more aspects of the category; and
[0020] Based on determining that no browsing node page exists for the combination of the identified category and one or more aspects of the category, a browsing node page is created for the combination of the identified category and one or more aspects of the category, wherein the browsing node page presents a specific group of items associated with the combination of the identified category and one or more aspects of the category that can be browsed by multiple users. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] Some embodiments are shown by way of example and not limitation in the accompanying drawings.
[0022] Figure 1 is a network diagram illustrating a network environment suitable for identifying missing browsing nodes according to some example embodiments.
[0023] Figure 2 is a block diagram illustrating components of a mapping server suitable for identifying missing browse nodes, according to some example embodiments.
[0024] Figure 3 is a block diagram illustrating components of a client device suitable for submitting queries and displaying results, according to some example embodiments.
[0025] Figure 4 is a block diagram illustrating a user interface suitable for displaying search results, according to some example embodiments.
[0026] Figure 5 is a block diagram illustrating a user interface suitable for displaying search results, according to some example embodiments.
[0027] Figure 6 is a block diagram illustrating a user interface suitable for displaying browse nodes according to some example embodiments.
[0028] Figure 7 is a block diagram illustrating a hierarchy of browsing nodes according to some example embodiments.
[0029] Figure 8 is a block diagram illustrating an example relationship between an input query and its labeled aspects, according to some example embodiments.
[0030] Fig. 9 is a block diagram illustrating factors suitable for identifying missing browsing nodes, according to some example embodiments.
[0031] Fig.10 is a flow chart illustrating the operation of an application server in performing a method of identifying missing browsing nodes according to some example embodiments.
[0032] Fig.11 is a flowchart illustrating the operation of an application server in executing a method of creating a missing browsing node according to some example embodiments.
[0033] Fig.12 is a block diagram illustrating the use of query data features in a method of tagging queries with aspects for identifying missing browsing nodes, according to some example embodiments.
[0034] Fig.13 is a block diagram illustrating the use of user data features in a method of tagging queries with aspects for identifying missing browsing nodes, according to some example embodiments.
[0035] Fig.14 is a block diagram illustrating the use of contextual data features in a method of tagging queries with aspects for identifying missing browsing nodes, according to some example embodiments.
[0036] Fig.15 is a flow diagram illustrating the operation of an application server in executing a method of facet-tagging a query for identifying missing browsing nodes, according to some example embodiments.
[0037] Figure 16 to Figure 17is a flow chart illustrating the operation of an application server in performing a method of identifying missing browsing nodes according to some example embodiments.
[0038] Fig.18 is a block diagram illustrating an example of a software architecture that may be installed on a machine according to some example embodiments.
[0039] Fig.19 is a diagrammatic representation of a machine in the form of a computer system according to an example embodiment within which a set of instructions may be executed to cause the machine to perform any one or more of the methodologies discussed herein. DETAILED DESCRIPTION
[0040] Example methods and systems relate to identifying missing browsing nodes. Examples are merely representative of possible variations. Unless otherwise expressly stated, components and functions are optional and may be merged or subdivided, and operations may be varied in order or combined or subdivided. In the following description, for the purpose of explanation, a number of specific details are set forth to provide a thorough understanding of the example embodiments. However, it will be apparent to those skilled in the art that the subject matter may be implemented without these specific details.
[0041] Aspects are properties that can be used to filter search results, stored as key / value pairs. Aspects are distinct from the content of a search result (e.g., the text or image displayed in a search result) and from the category of a search result. Categories are organized in a tree structure, with each search result belonging to at most one leaf node of the tree. Conversely, each search result can be associated with multiple aspects. For example, "Brand = Nike" and "Condition = New" can both be associated with a single item. For clarity, the term "aspect type" may be used to refer to the key in a key / value pair, and "aspect value" is used to refer to the value in a key / value pair.
[0042] A browse node is a specific group of items that a user can browse. In some example embodiments, a browse node is distinguished from a search results page by means of a hypertext markup language (HTML) tag in the provided page, a feature of the uniform resource locator (URL) of the provided page, or both. For example, a search results page may have a URL that indicates the search query terms as parameters of a common gateway interface (CGI) script, while a browse node page may have a URL that indicates the search query terms as part of the path portion of the URL. As another example, a search results page may have a general title for many search queries (e.g., using <title> or< / title> <h1>HTML tags), and a browsing node page (such as an HTML document) can have a title that specifically reflects the browsing node.
[0043] A user may submit a search query to a search engine (e.g., a search application running on an application server). The search engine may process the search query and generate a result set. The results generated by different search engines for the same search query may be different. For example, one search engine may be suitable for providing image results, while another search engine is suitable for providing shopping results. Continuing with this example, submitting a search query including "wallet" to two engines may result in the generation of images of wallets from the first engine and links to wallet retailers from the second engine.
[0044] The search query may have been previously run by other users, and the actions taken by other users in response to receiving a result set for the search query may have been recorded. For example, a database of previous user actions taken after other users submitted search queries may have been created. The actions of other users may be used to tag aspects in the current search query. For example, if the search query is "digital cameras Nikon", and many users using that search query refine their searches to items in the "Cameras & Photos > Digital Cameras" category with the aspect "Brand = Nikon", the query for "digital cameras Nikon" may be tagged with the aspect "Brand = Nikon".
[0045] Additionally or alternatively, previous searches by the current user may be used to mark aspects of the current search query. For example, the search query may have been previously run by the same user, and the actions taken by the user in response to receiving a previously used result set for the search query may have been recorded. The user's previous actions may be used to mark aspects in the current search query.
[0046] In some example embodiments, the context of the search is used to mark aspects of the current search query. Context refers to the way in which the query is conducted, not the query itself. For example, the user's device, web browser, application, and operating system all provide context. Other elements of context include the date, day of the week, time of day when the query is submitted, and current events (e.g., recent news reports or sporting events). The user's previous actions using the same context can be used to mark aspects in the current search query.
[0047] In order to improve the user experience, browse nodes for popular combinations of categories and aspects are needed. When a particular combination of categories and aspects is found to be requested with a frequency exceeding a threshold, the existence of a browse node for that combination is checked, and if the browse node is missing, a request for creating the browse node is generated. In some example embodiments, an entire set of missing browse nodes is generated based on the recognition of a pattern of requested category and aspect combinations.
[0048] Figure 1 1 is a network diagram illustrating a network environment 100 suitable for identifying missing browsing nodes according to some example embodiments. Network environment 100 includes e-commerce servers 120 and 140, mapping server 130, and devices 150A, 150B, and 150C, all of which are communicatively coupled to each other via network 170. Devices 150A, 150B, and 150C may be collectively referred to as "devices 150," or generally referred to as "devices 150." E-commerce server 120 and mapping server 130 may be part of network-based system 110. Alternatively, device 150 may be directly connected to mapping server 130, or connected to mapping server 130 via a local network that is different from network 170 used to connect to e-commerce servers 120 or 140. As described below with reference to Figure 17-18 As described, the e-commerce servers 120 and 140, the mapping server 130, and the device 150 may all be implemented in whole or in part in a computer system.
[0049] The e-commerce servers 120 and 140 provide e-commerce applications to other machines (e.g., device 150) via the network 170. The e-commerce servers 120 and 140 may also be directly connected to or integrated with the mapping server 130. In some example embodiments, one e-commerce server 120 and mapping server 130 is part of the network-based system 110, while the other e-commerce servers (e.g., e-commerce server 140) are separate from the network-based system 110. The e-commerce application may provide a way for users to buy and sell items directly to each other, to buy items from and sell items to e-commerce application providers, or both.
[0050] Figure 1 Also shown in the figure is a user 160. The user 160 can be a human user (e.g., a human), a machine user (e.g., a computer configured by a software program to interact with the device 150 and the mapping server 130), or any suitable combination thereof (e.g., a machine-assisted person or a machine supervised by a person). The user 160 is not part of the network environment 100, but is associated with the device 150 and can be a user of the device 150. For example, the device 150 can be a sensor, a desktop computer, a car computer, a tablet computer, a navigation device, a portable media device, or a smart phone belonging to the user 160.
[0051] In some example embodiments, mapping server 130 receives a search query from a user. Mapping server 130 modifies the search query to include aspects, remove terms from the search query, or both. The resulting search query is sent to e-commerce server 120 or 140, which generates a result list for the user. Alternatively, if the search query corresponds to a browse node, the browse node is provided to the user instead of the result list.
[0052] Figure 1 Any of the machines, databases, or devices shown in the text may be implemented using a general-purpose computer that is modified (e.g., configured or programmed) by software to be a special-purpose computer to perform the functions described herein for the machine, database, or device. Figure 17-18 A computer system capable of implementing any one or more of the methods described herein is discussed. As used herein, a "database" is a data storage resource and may store data structured as a text file, a table, a spreadsheet, a relational database (e.g., an object-relational database), a triple store, a hierarchical data store, or any suitable combination thereof. In addition, Figure 1 Any two or more of the machines, databases, or devices shown in the may be combined into a single machine, database, or device, and the functionality described herein for any single machine, database, or device may be subdivided into multiple machines, databases, or devices.
[0053] The network 170 may be any network that enables communication between machines, databases, and devices (e.g., mapping server 130 and device 150). Thus, the network 170 may be a wired network, a wireless network (e.g., a mobile or cellular network), or any suitable combination thereof. The network 170 may include one or more portions that constitute a private network, a public network (e.g., the Internet), or any suitable combination thereof.
[0054] Figure 2 1 is a block diagram showing the components of the mapping server 130 according to some example embodiments. The mapping server 130 is shown to include a communication module 210, an evaluation module 220, a dictionary module 230, and a storage module 240 that are all configured to communicate with each other (e.g., via a bus, a shared memory, a switch, or an application programming interface (API)). Any one or more modules described herein can be implemented using hardware (e.g., a processor of a machine) or a combination of hardware and software. For example, any module described herein can configure a processor to perform the operations described herein for the module. In addition, any two or more of these modules can be combined into a single module, and the functions described herein for a single module can be subdivided into multiple modules. In addition, according to various example embodiments, the modules described herein as being implemented in a single machine, a database, or a device can be distributed in multiple machines, databases, or devices.
[0055] The communication module 210 is configured to send and receive data. For example, the communication module 210 can receive image data via the network 170 and send the received data to the evaluation module 220. The communication module 210 can receive a search query from the device 150. Upon receiving the search query, the communication module 210 can send the search query to the dictionary module 230 to tag the query with aspects. For example, the received search query can be a query for items that match the search string.
[0056] Evaluation module 220 is configured to create a dictionary that associates search queries with corresponding aspects. For example, a dictionary entry for "Nike shoes" can be created that associates the query with the aspect "brand = Nike". Evaluation module 220 can use storage module 240 to retrieve one or more search queries related to the search query (e.g., "Nike shoes"). Based on previous user activity after running the search query, categories (e.g., "shoes" in the clothing category), aspects (e.g., "shoes" sold at auction), or any suitable combination thereof can be identified and associated with the search query in the dictionary.
[0057] Search results may contain both aspects and categories. As an example, consider a search result for a listing for a particular pair of shoes. The shoes may belong to the clothing category, while the listing may have an aspect as an auction. As another example, consider a search result for a web page that includes an article about economic policy. The article may belong to the economics category, while the presentation mode of the article (the aspect of the search result) is web page.
[0058] Dictionary module 230 is configured to find replacement queries for input queries. For example, dictionary module 230 can receive a search query from communication module 210 and access a database to identify a replacement query. Based on the above example, a search for "Nike shoes" may be replaced by a query for all items in the "clothing>shoes" category with the aspect "brand=Nike". Communication module 210 can send a replacement query to e-commerce server 120 or 140 to generate search results to be sent to the user. In some example embodiments, a dictionary lookup for a query returns an identifier of a browsing node. The identifier of the browsing node is sent to e-commerce server 120 or 140, and e-commerce server 120 or 140 sends the browsing node to device 150 to display to the user.
[0059] The storage module 240 may store data related to previous searches conducted by the querying user and other users for use by the evaluation module 220, store aspect lookup data for use by the dictionary module 230, or store both. For example, historical query data, user modeling data, context modeling data, and query modeling data may all be stored by the storage module 240. Additionally or alternatively, the storage module 240 may access data storage on other devices (e.g., external databases).
[0060] Figure 3 1 is a block diagram illustrating components of a device 150 suitable for submitting queries and displaying results and browsing nodes according to some example embodiments. Device 150 is shown to include a communication module 310 and a user interface module 320 that are all configured to communicate with each other (e.g., via a bus, shared memory, or switch).
[0061] The communication module 310 can communicate with the e-commerce server 120 or 140, the mapping server 130, or any suitable combination thereof. Information received via the communication module 310 can be presented (e.g., displayed on a display device) via the user interface module 320. A user can select information or can enter a search query using a user interface presented by the user interface module 320. The search query can be transmitted to the e-commerce server 120 or 140 or the mapping server 130 via the communication module 310. The communication module 310 can receive a response including a result set from the e-commerce server 120 or 140 or the mapping server 130. The search results can be presented to the user via the user interface module 320. For example, the search results can be presented in a list view or a gallery view. Similarly, a browsing node that provides a customized view of the data instead of a general result list can be presented.
[0062] Figure 4 4 is a block diagram illustrating a user interface 400 suitable for presenting search results according to some example embodiments. Figure 4 As can be seen, user interface 400 includes title 410 "Search Results"; category 420; aspect 430; and four search results 440-470.
[0063] User interface 400 may be displayed in response to a user query. For example, if a user enters a query for "Sony cameras" on device 150, the query may be sent from device 150 to mapping server 130. Mapping server 130 replaces the query phrase with a search for all items in the subcategory "Camcorders" in the category "Cameras & Photos" that have the aspect "Brand = Sony". E-commerce server 120 or 140 executes the replaced query and sends search results 440 to 470 to device 150 for display to the user.
[0064] Each of search results 440 to 470 may be used to view additional information about the search result. For example, the search result may be an item for sale, and the initial search result screen may display an image and a tag for the item. Clicking or otherwise activating the image of the item may display a new page that displays additional information about the item, such as a description of the item, additional images, price, etc.
[0065] Results may include items, events, locations, people, and the like. Items may be items for sale or items that are wanted for purchase. Events may be concerts, festivals, movies, sporting events, and the like. Locations may be monuments, stores, gas stations, restaurants, stadiums, and the like. People may be friends of the user, celebrities, or other persons. In some example embodiments, one or more of the items, events, locations, or people displayed are selected based on the advertising fee paid.
[0066] Figure 5 is a screen shot showing a user interface 500 suitable for presenting search results according to some example embodiments. Figure 5 As can be seen in FIG. 5 , user interface 500 includes a title 510 “Search Results”; a result count 520; a category 530; an aspect 540; and four search results 550 to 580. User interface 500 may be presented to a user viewing search results on a device with a larger screen, whereas user interface 400 may be presented on a device with a smaller screen. Additional screen area may allow for presentation of result count 520 and additional information in search results 550 to 580. For example, user interface 500 includes a price and description for each search result 550 to 580, whereas in the example discussed above, the user interface 500 may include a price and description for each search result 550 to 580. Figure 4 In the example of FIG. 4 , only an image and a label are shown for each search result 440 to 470 .
[0067] Figure 6 is a screen shot showing a user interface 600 suitable for presenting a browse node according to some example embodiments. Figure 6 As can be seen in the figure, user interface 600 includes a title 610 "browsing node name"; a result count 620; a category 630; an aspect 640; and four search results 650 to 680. User interface 600 can be presented to a user viewing a browsing node, while user interface 500 can be presented to a viewer viewing search results. One or more elements in user interface 600 are presented based on the specific browsing node being viewed. In contrast, all elements of user interface 500 are dynamically generated based on a search query (e.g., search results 550 to 580), or are presented regardless of the search query. Therefore, in reality, the possible number of search result pages is infinite, with different search result pages being generated for each possible query. However, since each browsing node includes at least one element specific to a particular browsing node, the possible number of browsing nodes is limited (e.g., limited by the time involved in creating each browsing node, the storage space of a particular element, or both). Therefore, browsing nodes should be created for search queries in a manner that provides the greatest benefit rather than randomly.
[0068] Figure 7 700 is a block diagram showing a hierarchy of browsing nodes according to some example embodiments. As shown in block diagram 700, browsing nodes can exist at different levels in the hierarchy. At the highest level, users can view information of the entire product type. From the product type view, users can specifically view categories and subcategories. Within a category or subcategory, further browsing nodes can exist for specific aspect values and combinations. For example, browsing nodes can be created for "brand = Sony", "color = black" or both. Due to the combinatorial explosion caused by the number of possible combinations of different aspects, it is usually desirable to avoid creating browsing nodes for each possible aspect combination. For example, if there are aspects for brand, color and size, and each aspect has 10 possible values (by no means an upper limit), it will be necessary to create 1000 different browsing nodes for various combinations in order to provide browsing nodes for each combination. Selectively creating browsing nodes can provide most of the benefits at a minimum cost. For example, if 10 browsing nodes cover 80% of user interests, limiting the browsing nodes to those 10 will provide 80% of the benefits and only cost 1% of the cost of creating all 1000 browsing nodes.
[0069] Aspect-restricted browse nodes are further refined by product line nodes. Product line nodes contain a curated list of closely related items. For example, an aspect-restricted browse node with "Brand = Sony" and "Color = Black" for the category "Cameras & Photos > Film Photography > Film Cameras" would contain all items that match those criteria. As another example, a product line node for "Marvel Film Cameras" would contain a collection of items that meet the curator's judgment criteria.
[0070] Creating browse nodes for specific categories / aspect combinations can provide a better browsing experience. For example, browse nodes can be presented to users differently from ordinary aspect filters, allowing users to more easily find popular aspect sets for the current browsing category. In addition, browse nodes can improve the ranking of the site in other search engines. For example, if the site provides a natural way for a web crawler to find each browse node, the browse node page for a specific category / aspect may have a higher page rank than the search result page for the same combination.
[0071] Figure 8 8 is a block diagram 800 illustrating example relationships between an input query 810, a category 820, and labeled aspects 830, according to some example embodiments. Figure 8 In the example of , the input query is "Jordan 10 toddler". Categories 820 and labeled aspects 830 are determined based on interactions of other users after the query was submitted, interactions of the current user after the query was submitted, interactions of users in the same context as the current query, or any suitable combination thereof. For example, a two-step process can be used. In the first step, the relationships between queries, categories, and aspect sets are determined and stored in a dictionary. The process of mining past user interactions to create a dictionary can be performed periodically (e.g., daily or weekly). In the second step, when a user submits a query, the dictionary is accessed to identify replacement queries. In some example embodiments, these two steps are performed when a query is received. Compared to a two-step implementation in which a dictionary is prepared in advance, a runtime solution may consume more processing resources but provide better results.
[0072] exist Figure 8 In the example of , the resulting category 820 is "Apparel, Shoes & Accessories > Baby & Toddler Clothing > Baby Shoes". The resulting facets 830 are "US Shoe Size (Baby & Toddler) = 10" and "Brand = Jordan". Therefore, when a user submits a general query for "Jordan 10 Toddler", all results in category 820 with facets 830 can be displayed to the user.
[0073] Fig. 9 900 is a block diagram illustrating factors suitable for identifying missing browsing nodes according to some example embodiments. As shown in block diagram 900, query keywords 905, recall 910, context 915, basic user data 920, query data features 925, and user data features 930 may be input into a broad query model 935. These inputs may be collectively referred to as inputs 905 to 930. Broad query model 935 may generate one or more experiences 940 to 950.
[0074] The query keyword 905 may be part of a search query submitted by a user. For example, the search query may consist of a selected image and a plurality of keywords.
[0075] Callback 910 may include a result set generated for the user in response to the search query. Continuing with the example of a search query consisting of an image and a plurality of keywords, the result set may include images similar to the selected image, articles containing one or more of the plurality of keywords, articles including the selected image, articles including images similar to the selected image, images having titles or metadata including one or more of the plurality of keywords, or results found to be relevant to the search in another way.
[0076] Context 915 can include any information about the environment in which the query was submitted. For example, context 915 can include not only the search query and the user, but also the browser being used, the time of day in which the query was submitted, which queries were submitted before the current query, and any other information about the environment in which the query was submitted.
[0077] Basic user data 920 may include information about the user submitting the query. For example, basic user data 920 may include the user's name, age, address, gender, income level, education level, marital status, and any other known information about the user.
[0078] In some example embodiments, broad query model 935 accesses query keywords 905, callback 910, context 915, and basic user data 920 before accessing information related to query data features 925 and user data features 930. In other example embodiments, broad query model 935 accesses input data elements in a different order.
[0079] Query data feature 925 includes information based on the query. For example, searches typically run by other users (or all users including the current user) after running the current search query would be query data feature 925. To illustrate, a search for items with the "mode=digital" aspect can often follow a search for "camera". Thus, the "mode=digital" aspect can be a query data feature 925 for a "camera" query.
[0080] User data features 930 include information based on the user. For example, modifications to other queries that are typically run by the current user can be user data features 930. To illustrate, the current user can often follow up a search for items with the same search query that is limited to items that can be purchased immediately (e.g., "buy now" items). Therefore, modifying the search to include a "buy now" aspect can be a user data feature 930 for the user. Basic user data 920 and user data features 930 are similar in that they both involve data for a specific user. The difference is that basic user data 920 contains data that is directly and intentionally provided by the user (e.g., name, address, email address, and credit card number), while user data features 930 contain data derived by mapping server 130 or electronic commerce servers 120, 140 based on actions taken by the user.
[0081] After considering the query data features 925 and the user data features 930 for the input query (including the query keyword 905), the callback 910, the context 915, and the basic user data 920, the extensive query model 935 may generate one or more experiences 940 to 950. In some example embodiments, each experience 940 to 950 is a browsing node including one or more aspects. For example, the extensive query model 935 may apply various weights to the query generated using the inputs 905 to 930 to generate the experiences 940 to 950. Based on the query data features 925, a search for items with the aspect of "mode = digital" in the "Camera & Photo" category may be generated. Based on the user data features 930, a search for items with the aspect of "buy now" in the "Camera & Photo" category may be generated. Based on the weighting factors or the recommendation hierarchy, one of the generated searches may be used to provide results to the user. A search combination recommendation for items with the aspect of "buy now" and the aspect of "mode = digital" in the "Camera & Photo" category may also be generated. Based on the weighting factors or the recommendation hierarchy, the combined recommendation may be used to provide results to the user. In other embodiments, different combinations of weighting factors or hierarchies may be used.
[0082] Therefore, when the determined experience 940 to 950 is a browsing node that has not been created, the mapping server 130 or the e-commerce server 120 or 140 can generate a request for creating a corresponding browsing node. The request can be processed by an administrator or result in the automatic generation of a browsing node.
[0083] Fig.10 1 is a flowchart illustrating the operation of the mapping server 130 when performing the method 1000 of identifying missing browsing nodes according to some example embodiments. The operations in the method 1000 may be performed by the mapping server 130 using the method described above with reference to Figure 2 Described modules to execute.
[0084] In operation 1010, the evaluation module 220 obtains the query and the project data being viewed. For example, you can access Figure 12 to Figure 14 Historical user behavior data is used to determine successful sessions resulting from a particular query. In some example embodiments, the viewing of an individual item shows that the session was successful. In various example embodiments, other measures of successful sessions are used in place of the viewed items. A successful session can be a session in which a user interacts with an item in any way (e.g., views an item, bids on an item, purchases an item, orders an item, etc.) or a session in which a user performs a particular interaction (e.g., bids on an item, purchases an item, or both). An unsuccessful session is any session that is not successful according to the definition of success used by a particular embodiment. Other criteria may also be used to identify successful and unsuccessful sessions. Therefore, method 1000 may be performed using other criteria for successful sessions, but is described below using viewed items.
[0085] In operation 1020, the evaluation module 220 groups similar queries together. The similarity between queries can be determined by a distance metric, and queries with a distance below a threshold are combined. For example, "nike shoes" and "shoes nike" are not the same query, but the distance metric can indicate that the queries are similar because they contain the same words in different orders. Similarly, "dvd movie" and "dvd movies" are not the same query, but the distance metric can indicate that the queries are similar because the words in one query are plural of the words in the other query. In some example embodiments, the queries are grouped together so that items viewed for either query are considered to have been viewed for both queries. In other example embodiments, the queries are grouped together so that items viewed for similar queries are considered to have been viewed for the most popular query among the similar queries; other similar queries are then ignored.
[0086] In operation 1030, the evaluation module 220 obtains item-specific information for the viewed items. For example, the category and aspects of each viewed item may be obtained from historical user behavior data. In some example embodiments, additional information for each item is obtained. For example, the title of the item, tags for the item provided by the seller, tags provided by the buyer, or any suitable combination thereof are obtained.
[0087] In operation 1040, the dictionary module 230 builds a query specific aspect dictionary. The query specific aspect dictionary allows aspects to be looked up from a query. Various algorithms may be used to build the query specific aspect dictionary. In some example embodiments, a percentage of items having each aspect viewed in response to the query is determined. The determined percentage is compared to a threshold, and if the threshold is exceeded, the aspect is added to the dictionary. For example, if the threshold is 80%, and 90% of the viewed items after a search for "Nike shoes" have the aspect "brand=Nike", then "brand=Nike" is added as an aspect for the query "Nike shoes".
[0088] In operation 1050, the dictionary module 230 applies a query-specific aspect dictionary to the query by performing exact and fuzzy matching between the query's n-grams and the aspect dictionary. That is, each query is composed of terms; an n-gram is a subset of a query that contains n terms. For example, a query for "Nike shoes" includes two 1-grams ("Nike" and "shoes") and one 2-gram ("Nike shoes"). For an exact match, the three n-grams for the query are looked up in the aspect dictionary to identify the corresponding aspects. For fuzzy matching, root stemming of the terms is also performed. For example, plural words are converted to singular forms, suffixes (e.g., -ly and -ing) are stripped, etc. Multiple lookups in the aspect dictionary provide multiple results.
[0089] First, the search for n-grams begins with the longest n-gram. When a matching n-gram is found, the tokens in the n-gram are ignored for further search. When all n-grams have been used to identify aspects, the global aspect dictionary is updated to associate the identified aspects with the query. For n-grams of equal length, the popularity of the resulting aspects can be used. For example, a query for "Levi's belt buckle" in the "men's belt" category can be mapped to "brand = buckle" or "brand = Levis". Since searches for "brand = Levis" are more common in the "men's belt" category, this aspect can be given priority. If a user searches for "belt buckle" without including "Levi's", then if further searches for "brand = buckle" exceed a predetermined threshold, the aspect "brand = buckle" can be automatically added to the query.
[0090] In some example embodiments, aspects are selected for tagging based on usage patterns of the current user and other users. In some example embodiments, aspects are generated based on advertising rates, promotions, seasons, etc. For example, a recommended search for St. Patrick's Day might add the term "color=green" to the search query. Mapping server 130 can also determine whether an aspect should be provided. For example, if an aspect has already been applied to a search query, mapping server 130 can decide to avoid applying another aspect to the query.
[0091] As another factor to consider, the hierarchy of categories in the category tree may be considered. For example, narrow categories near the bottom of the category tree may be preferred for labeling aspects, while broad categories near the top of the category tree are not. Thus, in some example embodiments, aspects are labeled only when the identified category is a narrow category (such as when the identified category is, for example, not within two levels of the root node of the category tree).
[0092] At operation 1060, the evaluation module 220 of the mapping server 130 determines whether a browsing node exists for the marked query. For example, the mapping server 130 may request a browsing node for the marked query from the e-commerce server 120 or 140, and receive an error message or a null value indicating that there is no browsing node in response. If there is no browsing node, the mapping server 130 sends a request to the e-commerce server 120 or 140 to create a browsing node.
[0093] Fig.11 1 is a flowchart illustrating the operation of the mapping server 130 when performing the method 1100 of creating a missing browsing node according to some example embodiments. The operations in the method 1100 may be performed by the mapping server 130 using the method 1100 described above with reference to Figure 2 Described modules to execute.
[0094] In operation 1110, the mapping server 130 obtains query data. For example, past queries (e.g., Figure 1 2).
[0095] In operation 1120, the mapping server 130 groups similar queries together. For example, the query data may include each query received over a period of time and a count of the number of times the query was received. Similar queries may be combined by removing all but one of the similar queries and adding the counts of the removed queries to the counts of the remaining queries. To illustrate, by determining that "bag" and "bags" are equivalent using root stemming, it may be found that "Gucci bag" that occurs 100 times is similar to "Gucci bags" that occurs 200 times. The more popular query "Guccibags" may be retained and the less popular queries may be discarded. Thus, after similar queries are combined, "Gucci bags" that occurs 300 times will be retained, and "Gucci bag" will no longer appear as a query.
[0096] Operations 1130 to 1150 mirror operations 1030 to 1050 as described above. In operation 1130, the evaluation module 220 obtains project-specific information for the viewed project. In operation 1140, the dictionary module 230 builds a query-specific aspect dictionary. In operation 1150, the dictionary module 230 applies the query-specific aspect dictionary to the query by performing exact and fuzzy matching between the query's n-grams and the aspect dictionary.
[0097] In operation 1160, the evaluation module 220 identifies patterns of category and aspect combinations that do not have browse nodes. For example, in the "camera" category, many searches may be run for a specific brand (e.g., "Nikon" or "Canon") in combination with a specific media format (e.g., "micro SD," "compact flash," or "memory stick"). The pattern of category and aspect combinations is identified based on the sum of all such searches exceeding a threshold and the absence of at least one browse node. Thus, even if no single combination (e.g., "Nikon micro SD") would exceed the threshold for browse node creation, the pattern as a whole may still be sufficient to justify the creation of a set of browse nodes.
[0098] In operation 1170, the evaluation module 220 requests the e-commerce server 120 or 140 to create one or more browsing nodes for the determined pattern. In some example embodiments, a browsing node is created for each combination of the identified category and aspect. In other example embodiments, a second threshold is used to determine which combinations will have associated browsing nodes created. For example, the ten most popular category / aspect combinations that match the pattern may have corresponding browsing nodes created.
[0099] Fig.12 1200 is a block diagram illustrating the use of query data features in performing a method of tagging queries with aspects according to some example embodiments. Database 1210 stores historical user behavior data, including data related to the behavior of a certain number of users of the system. In one embodiment, data related to the actions of all users are stored in database 1210. Based on the historical user behavior data, usage metrics 1220 of categories, aspects, global filters, etc. in successful sessions for each unique search query can be extracted. Similarly, usage metrics 1230 of categories, aspects, global filters, etc. in unsuccessful sessions for each unique search query can be extracted. Usage metrics 1220 and 1230 can be used to model categories, aspects, and global filters that may be needed when using the same query in the future, and stored in database 1240 as query modeling data.
[0100] Fig.13 1300 is a block diagram illustrating the use of user data features in performing a method of tagging queries with aspects according to some example embodiments. Database 1310 stores historical user behavior data, including search queries run by users and sequences of actions resulting from each search query. For example, in a particular session, an initial search query may be run, then a category filter may be added, then another item may be added to the query, then an aspect filter may be added, then a first item may be viewed, then a second item may be viewed, and finally a bid may be placed on the second item. Based on the historical user behavior data, usage metrics 1320 for categories, aspects, global filters, etc. in successful sessions for each unique user may be extracted. Similarly, usage metrics 1330 for categories, aspects, global filters, etc. in unsuccessful sessions for each unique user may be extracted. Usage metrics 1320 and 1330 may be used to model categories, aspects, and global filters that may be required in future queries by the same user, and stored in database 1340 as user modeling data.
[0101] Fig.14 14 is a block diagram 1400 illustrating the use of contextual data features in performing a method of tagging queries with aspects according to some example embodiments. A database 1410 stores historical user behavior data. Based on the historical user behavior data, usage metrics 1420 for query changes, devices, browsers, locations, times, seasons, etc. in successful sessions can be extracted. Similarly, usage metrics 1430 for query changes, devices, browsers, locations, times, seasons, etc. in unsuccessful sessions can be extracted. The usage metrics 1420 and 1430 can be used to model categories, aspects, and global filters that may be needed when making future queries under similar contexts, and are stored in a database 1440 as context modeling data. The context modeling data includes data related to the context of the query and is based on previous queries issued from the same context or similar contexts. For example, the context may include the browser that submitted the query, the season in which the query was generated, etc. Based on the historical context data, searches for jackets in the summer can generally be followed by related searches for windbreakers, while searches for jackets in the winter can generally be followed by related searches for coats. Thus, the query modeling data would suggest both coats and windbreakers as relevant searches, but the context modeling data would suggest appropriate related searches based on the season.
[0102] Fig.15 15 is a block diagram 1500 illustrating factors that may be considered when labeling aspects of a query 1510 according to some example embodiments. The query modeling data 1520, context modeling data 1530, and user modeling data 1540 may be stored in separate databases (as shown), or in a combined database. The query modeling data 1520 may be stored in a separate database. Figure 1 2. The context modeling data 1530 can be derived from the historical user behavior data in the database 1210 shown in FIG. Fig.14 The historical user behavior data in the database 1410 shown in FIG. 1540 can be derived from Fig.13 The historical user behavior data in the database 1310 shown in is exported.
[0103] The application of context modeling data 1530 can depend on the type of device that the user is using. For example, the device can be a personal computer, a tablet computer, or a smart phone. The user device can also report the brand and version of the browser. For example, the browser can be Internet Explorer 8 or Chrome version 32.0. Additionally or alternatively, the browser information can indicate one or more features of the browser. For example, the browser can support frames, pop-ups, or JavaScript. In addition, the screen size or resolution can be made available to the mapping server 130. Therefore, based on the previous behavior of the current user or other users using similar devices, aspects can be marked differently based on context. For example, the value for size aspect obtained from a search for "glare filter" conducted on a desktop computer can be different from the value for size aspect obtained from the same search run on a smartphone.
[0104] Similarly, geolocation can provide an approximate location of a user device based on the IP address of the user device. For example, the mapping server 130 may know the IP address of the user device by virtue of communications between the two machines over the Internet. The IP address of the user device may be used to search a database of registered IP addresses to identify a physical address corresponding to the IP address. The physical address may be a street address, town, county, state, or another political or geographic location. The session context may include session data for communications between the mapping server 130 and the user device, such as how long the session has existed, the number of queries run in the session, the number of results sent during the session, and the like.
[0105] In some example embodiments, only high frequency keywords are marked. High frequency keywords are keywords that are searched for more than a minimum threshold number of times over a period of time. For example, a high frequency keyword may be a keyword that is searched in at least 1000 sessions per month. As another example, a threshold may be determined based on locking a certain number of high frequency keywords. For example, a threshold may be set so that the 60,000 most frequently searched keywords are considered high frequency keywords. The success and usage rate of each category and aspect of the keyword may be determined. The most frequently used categories and aspects may be identified and presented as browsing nodes. The decision to present a category or aspect may be based on whether the success rate for the category or aspect exceeds a threshold. For example, a particular keyword may be widely associated with many aspects, so that each aspect has a success rate of no more than 10%. A 10% success rate may be lower than the threshold, and a decision may be made not to present any aspect as a browsing node. For another keyword, a particular aspect may have a 40% success rate, which may be higher than the threshold, and a choice may be made to present the aspect.
[0106] The association of aspects with each keyword may be stored for later access (e.g., in a database), or the association of aspects for each keyword may be dynamically generated each time a query is received. In embodiments where aspects are stored for later access in a global aspect dictionary, the association may be periodically updated based on additional data collected for queries and users over time since the aspect tags were previously generated. For example, aspect tagging may be performed for high frequency keywords and updated weekly.
[0107] The database storing aspect tags for search keywords may store multiple data fields for each keyword or query. For example, each of the following may be stored: the number of sessions in which a keyword or query was used ("TotalSessions"), the percentage of those sessions that resulted in users interacting with items ("SrpEventsRatio"), the number of additional categories used in the average successful search relative to the average unsuccessful search ("CategoryEventsRatio"), the average number of aspect constraints used in a successful session ("SuccessAspectEvents"), the average number of result pages viewed in a successful session ("SuccessPaginationEvents"), the number of successful sessions ("SuccessSrpEvents"), the average number of global filter constraints used in successful sessions ("SuccessGlobalFilterEvents"), the percentage of sessions in which a global filter was used that resulted in users interacting with items ("GlobalFilterEventsRatio"), the average number of pages viewed in the average successful search relative to the average unsuccessful search ("PaginationEventsRatio"), the average number of category constraints used in a successful session ("SuccessCategoryEvents"), and the additional number of aspects used in the average successful search relative to the average unsuccessful search ("AspectEventsRatio").
[0108] One or more of the following may be stored for a recommended aspect type: the total number of times the query was used ("total_imp"), the percentage of time the aspect type was used that resulted in a success ("n_ctr"), the name of the aspect type ("aspectName"), the number of buy now events associated with the aspect type ("n bin"), the percentage of time the aspect type was used ("n_imp_per"), the number of times the aspect type was used ("n_imp"), and the number of successes that resulted from using this aspect type ("n clicks").
[0109] The following items may be stored for each of the recommended aspect types: the total number of uses of the query ("total_imp"), the value of the aspect ("value"), the number of uses of the aspect ("v_imp"), the number of successes utilizing the aspect ("vclicks"), the number of buy now events resulting from the aspect ("v bin"), and the URL of an image representing the aspect ("url").
[0110] The decision about which aspects to tag a query with can be based on thresholds corresponding to any of these values or a combination thereof. Some example thresholds include: CategoryEventsRatio>=0, AspectEventsRatio>=0, SuccessCategoryEvents>=0, SuccessAspectEvents>=0, n_imp_per>=50%, and n_imp_per>=0%.
[0111] The query 1510, query modeling data 1520, context modeling data 1530, and user modeling data 1540 can be used as input to a ranking engine 1550, which determines which aspects to use for tagging. For example, when the aspects generated using most of the individual modeling data are consistent, those aspects can be used to tag the query. As another example, the aspects provided by all three data analyses can be used (unless they conflict), in which case the priority order is applied. For example, if the query modeling data 1520 suggests that the "color = black" aspect is recommended for searches for "Nikon cameras", and the context modeling data 1530 suggests that the "color = silver" aspect is recommended for searches for "Nikon cameras", then based on the predetermined priorities of the data sources, one aspect can be used and the other ignored.
[0112] In operation 1560, the query 1510 is tagged with facets using the output of the ranking engine 1550. The tagged query can be used to provide search results to a user, or stored in a dictionary for later use by the mapping server 130.
[0113] Other types of searches using facets may also take advantage of the above process. For example, a web page may have facets for creation date, last modification date, size, author, and subject. Thus, search queries for web pages may be improved by identifying facets for web pages that were previously viewed using the same or similar query, storing those facets in an facet database, looking up the facets when a later query is received, and limiting the result set for the later query to web pages having the frequently desired facets. Similar benefits may arise for local hard drive file searches, email archive searches, and the like.
[0114] Figure 16 to Figure 1 7 is a flowchart illustrating the operation of the mapping server 130 when performing the method 1600 of identifying missing browsing nodes according to some example embodiments. The operations in the method 1500 may be performed by the mapping server 130 using the method 1600 described above with reference to FIG. Figure 2 Described modules to execute.
[0115] Elements 1601 to 1604 are data elements used in method 1600. Aspects and title phrases in the context of a query-leafcat (element 1601) show how often specific aspects and title phrases (i.e., n-grams that appear in titles) appear on items in a separate leaf category (i.e., a category without subcategories). A synonym dictionary (element 1602) allows n-grams to be replaced with their canonical form. Example synonym matches include abbreviations (e.g., 10 meter amp = 10 meter amplifier; 4wd = four wheel drive), numerical representations (e.g., thirty one = 31; Samsung galaxy 2 = Samsung galaxy ii), common replacements (e.g., rotary phase converter = 3 phase converter), traditional synonyms (e.g., old fashioned = ancient; handbag = wallet), space folds (e.g., iphone 4 = iphone4; Samsung galaxy 2 = Samsunggalaxy2), and inclusive matches (e.g., running shoes = running / cross training shoes; thing 1 thing 2 = Dr. Seuss Thing 1 and Thing 2).
[0116] The global buyer tags (element 1604) at the leaf category level shows how often a particular buyer tag (ie, a tag provided by the buyer) appears on items in an individual leaf category. The category breadcrumb (element 1603) shows the complete path to a leaf category.
[0117] In operation 1610, each token in the query having at least three characters is stemmed. For example, the Porter Stemming Algorithm can be used to find the stem of each token. To illustrate, the token "happiness" can be replaced by the stem "happy", and the token "jumping" can be replaced by the stem "jump".
[0118] In operation 1620, any tokens in the query that match any tokens in the category breadcrumb navigation are excluded from the query. The category breadcrumb navigation is the complete sequence of categories and subcategories from the root node of the category tree to the category associated with the query. For example, if the query is "nike shoes" and the category breadcrumb navigation is "Apparel>Shoes & Clothing", the token "shoes" will be excluded from the query because it appears in the category breadcrumb navigation.
[0119] In operation 1630, the mapping server 130 creates a set of candidate phrases from all n-grams in the query in a predetermined size range, such as 1 to 5. In the example above, the only token remaining in the query is the 1-gram "Nike".
[0120] In operation 1640, a local buyer and seller tag dictionary is created and classified based on the confidence scores. For example, for items in the leaf categories of the query, each buyer tag in element 1504 can be identified and classified based on popularity. Similarly, for items in the leaf categories of the query, each seller tag can be identified and classified based on popularity. Other factors can be used to determine the confidence scores. For example, tags from users with higher feedback scores compared to other users can have higher confidence scores than tags from users with low feedback scores.
[0121] In operation 1650, each local buyer tag in the buyer tag dictionary is checked to see if it exactly matches an n-gram in the query. If a match is found, the buyer tag is added to the query. In some example embodiments, the matching n-gram is also removed from the query.
[0122] In operation 1710, each local buyer tag in the buyer tag dictionary is checked to see if it fuzzily matches an n-gram in the query. A fuzzy match is a probabilistic match that exceeds a predetermined threshold. For example, two tokens may be found to be a fuzzy match if the number of insertions, deletions, and substitutions required to transform one into the other is below a threshold (e.g., 2). The threshold may depend on the length of the token (e.g., a fuzzy match for a 10-letter word may allow more changes than a fuzzy match for a 3-letter word). If a fuzzy match is found, the buyer tag is added to the query. The matching n-gram may also be removed from the query. In some example embodiments, operation 1710 is performed only if an exact match is not found in operation 1650.
[0123] In operation 1720, each global vendor tag in the vendor tag dictionary is checked to see if it exactly matches an n-gram in the query that has not been matched to a local tag. If a match is found, the global vendor tag is added to the query. In some example embodiments, the matching n-gram is also removed from the query.
[0124] In operation 1730, each local vendor tag in the vendor tag dictionary is checked to see if it matches an n-gram in the query exactly or fuzzily. If a match is found, the local vendor tag is added to the query. The matching n-gram may also be removed from the query.
[0125] During different exact matches or fuzzy matches, various confidence and support thresholds are used. The confidence of an aspect value is the expected probability of the value when the aspect name is included in the query. Therefore, the confidence can be calculated by dividing the number of items with the aspect value that are clicked by the total number of items with the aspect name that are clicked. For example, out of 142,000 searches for "belt buckle Levis", 22,000 are items that are not clicked, 20,000 are items that are clicked but do not have a brand value, 75,000 are items that are clicked with "brand = Levis", and 25,000 are items that are clicked with "brand = buckle", then the confidence that the aspect value "Levis" should be used for the aspect name "brand" is 75%. The support value for the aspect name is: the probability that an item with the aspect name is viewed assuming that any item is viewed. Therefore, support can be calculated by dividing the total number of clicks on items with the aspect name by the total number of clicks. Continuing the example above, the support for the aspect name "brand" is 83.33%.
[0126] At operation 1740, the evaluation module 220 of the mapping server 130 determines whether a browsing node exists for the marked query. For example, the mapping server 130 may request a browsing node for the marked query from the e-commerce server 120 or 140, and receive an error message or a null value indicating that there is no browsing node in response. If there is no browsing node, the mapping server 130 sends a request to the e-commerce server 120 or 140 to create a browsing node.
[0127] According to various example embodiments, one or more of the methods described herein can facilitate identifying missing browsing nodes. Therefore, one or more of the methods described herein can help obtain and present interesting results to a user without requiring the user to explicitly perform a series of queries. Likewise, one or more of the methods described herein can facilitate improving the search engine ranking of a site that provides missing browsing nodes.
[0128] When these effects are considered in general, one or more methods described herein can eliminate the need for certain workloads or resources that would otherwise be involved in a search. Through one or more methods described herein, the effort expended by a user in identifying relevant queries can be reduced. Similarly, the computing resources used by one or more machines, databases, or devices (e.g., in the network environment 100) can be reduced. Examples of such computing resources include processor cycles, network traffic, memory usage, data storage capacity, power consumption, and cooling capabilities.
[0129] Modules, components, and logic
[0130] Certain embodiments are described herein as including logical or multiple components, modules, or mechanisms. A module may constitute a software module (e.g., code embodied on a machine-readable medium) or a hardware-implemented module. A hardware-implemented module is a tangible unit that is capable of performing certain operations and that can be configured or arranged in a certain manner. In an example embodiment, one or more computer systems (e.g., stand-alone, client, or server computer systems) or one or more processors may be configured by software (e.g., an application or application portion) as a hardware-implemented module that operates to perform certain operations as described herein.
[0131] In various embodiments, hardware-implemented modules may be implemented mechanically or electronically. For example, a hardware-implemented module may include dedicated circuits or logic that are permanently configured to perform certain operations (e.g., a hardware-implemented module may be a dedicated processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)). A hardware-implemented module may also include programmable logic or circuits that are temporarily configured by software to perform certain operations (e.g., configured to be contained in a general-purpose processor or other programmable processor). It will be clear that the decision to implement a hardware-implemented module mechanically in a dedicated and permanently configured circuit or in a temporarily configured circuit (e.g., configured by software) may be driven by cost and time considerations.
[0132] Therefore, the phrase "hardware-implemented module" should be understood to include a tangible entity, which should be physically constructed, permanently configured (e.g., hardwired) or temporarily or transiently configured (e.g., programmed) to work in a specific manner to perform specific operations described herein. Considering embodiments in which the hardware-implemented module is temporarily configured (e.g., programmed), each hardware-implemented module need not be configured or instantiated at all times. For example, in the case where the hardware-implemented module includes a general-purpose processor configured using software, the general-purpose processor can be configured as different hardware-implemented modules at different times. The software can thus configure the processor to, for example, constitute a specific hardware-implemented module at one time, and to constitute different hardware-implemented modules at different times.
[0133] The module of hardware implementation can provide information to the module of other hardware implementation, and can receive information from the module of other hardware implementation.Therefore, the module of hardware implementation described can be regarded as communication coupling.In the case where multiple such hardware implementation modules exist simultaneously, communication can be realized by signal transmission (for example, on the appropriate circuit and bus connecting the module of hardware implementation).In the embodiment that multiple hardware implementation modules are configured or instantiated at different times, the communication between such hardware implementation modules can be realized, for example, by the storage and retrieval of information in the memory structure accessible to the modules of multiple hardware implementations.For example, a module of hardware implementation can perform an operation, and the output of the operation is stored in a storage device coupled to the module of hardware implementation communication.Then another module of hardware implementation can access the storage device at a later time to retrieve and process the stored output.The module of hardware implementation can also initiate communication with input or output devices, and can perform operations on resources (for example, a collection of information).
[0134] The various operations of the example methods described herein may be performed, at least in part, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Such processors, whether temporarily or permanently configured, may constitute processor-implemented modules that operate to perform one or more operations or functions. In some example embodiments, "modules" referred to herein include processor-implemented modules.
[0135] Similarly, the methods described herein may be implemented at least in part by a processor. For example, at least some of the operations of the method may be performed by one or more processors or modules implemented by the processor. The execution of certain operations may be distributed in one or more processors, and may not reside only in a single machine, but may be deployed across multiple machines. In some example embodiments, one or more processors or processors may be located in a single location (e.g., in a home environment, an office environment, or a server farm), while in other embodiments, the processors may be distributed in multiple locations.
[0136] The one or more processors may also operate to support the execution of related operations in a "cloud computing" environment or as "software as a service" (SaaS). For example, at least some operations may be performed by a computer group (as an example of a machine including a processor), which can be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., application program interfaces (APIs)).
[0137] Electronic devices and systems
[0138] Example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Example embodiments may be implemented using a computer program product, such as a computer program tangibly represented in an information carrier, such as a machine-readable medium executed by or for controlling the operation of a data processing apparatus, such as a programmable processor, a computer, or multiple computers.
[0139] Computer programs can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as stand-alone programs or as modules, subroutines, or other units suitable for use in a computing environment. Computer programs can be configured to execute on one computer or on multiple computers located at one site or on multiple computers distributed at multiple sites and interconnected by a communication network.
[0140] In an example embodiment, the operations may be performed by one or more programmable processors executing a computer program to perform functions by operating input data and generating output. The method operations may also be performed by a dedicated logic circuit (e.g., FPGA or ASIC), and the apparatus of the example embodiment may be implemented as a dedicated logic circuit.
[0141] The computing system may include a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The relationship between the client and the server is generated by a computer program that runs on a corresponding computer and has a client-server relationship with each other. In the embodiment using a programmable computing system, it will be clear that both hardware architecture and software architecture need to be considered. Specifically, it will be clear that it can be a design choice to implement a specific function in a permanently configured hardware (e.g., ASIC), in a temporarily configured hardware (e.g., a combination of software and a programmable processor), or in a combination of permanently configured and temporarily configured hardware. The hardware architecture (e.g., machine) and software architecture that can be deployed in various example embodiments are set forth below.
[0142] Software Architecture
[0143] Fig.18 is a block diagram 1800 illustrating the architecture of software 1802, which may be installed on any one or more of the devices described above. Fig.18 is merely a non-limiting example of a software architecture, and it will be appreciated that many other architectures may be implemented to facilitate the functionality described herein. Software 1802 may be provided by, for example, Fig.19 1900, which includes a processor 1910, a memory 1930, and an I / O component 1950. In this example architecture, the software 1802 can be conceptualized as a stack of layers, each of which can provide specific functionality. For example, the software 1802 includes layers such as an operating system 1804, a library 1806, a framework 1808, and an application 1810. In operation, according to some implementations, the application 1810 calls an application programming interface (API) call 1812 through the software stack and receives a message 1814 in response to the API call 1812.
[0144] In various implementations, the operating system 1804 manages hardware resources and provides public services. The operating system 1804 includes, for example, a kernel 1820, services 1822, and drivers 1824. In some implementations, the kernel 1820 serves as an abstraction layer between the hardware and other software layers. For example, the kernel 1820 provides, among other things, functions for memory management, processor management (e.g., scheduling), component management, networking, and security settings. Services 1822 can provide other public services to other software layers. Drivers 1824 can be responsible for controlling or interfacing with the underlying hardware. For example, drivers 1824 can include display drivers, camera drivers, drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Drivers, audio drivers, power management drivers, etc.
[0145] In some implementations, the library 1806 provides a low-level common infrastructure that can be used by the application 1810. The library 1806 may include: a system library 1830 (e.g., a C standard library) that can provide functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the library 1806 may include an API library 1832, such as a media library (e.g., a library that supports the presentation and manipulation of various media formats, such as Moving Picture Experts Group 4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer 3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), Portable Network Graphics (PNG)), a graphics library (e.g., an OpenGL framework for two-dimensional (2D) and three-dimensional (3D) rendering in a graphics context on a display), a database (e.g., SQLite that provides various relational database functions), a web library (e.g., WebKit that provides web browsing functions), etc. Library 1806 may also include a variety of other libraries 1834 to provide many other APIs to application 1810.
[0146] According to some implementations, the framework 1808 provides a high-level common infrastructure that can be used by the applications 1810. For example, the framework 1808 provides various graphical user interface (GUI) functions, advanced resource management, advanced location services, etc. The framework 1808 can provide a wide range of other APIs that can be used by the applications 1810, some of which can be specific to a particular operating system or platform.
[0147] In an example embodiment, applications 1810 include a home application 1850, a contacts application 1852, a browser application 1854, a book reader application 1856, a location application 1858, a media application 1860, a messaging application 1862, a game application 1864, and a variety of other applications such as third-party applications 1866. According to some embodiments, applications 1810 are programs that perform functions defined in the program. Various programming languages can be used to create one or more of the applications 1810 structured in various ways, such as an object-oriented programming language (e.g., Objective-C, Java, or C++) or a procedural programming language (e.g., C or assembly language). In a specific example, third-party applications 1866 (e.g., provided by an entity other than the vendor of a particular platform using Android TM or iOS TM Software Development Kit (SDK) can be developed on mobile operating systems such as iOS TM 、Android TM , Phone or other mobile operating system). In this example, the third-party application 1866 can call API calls 1812 provided by a mobile operating system such as operating system 1804 to facilitate the functions described herein.
[0148] Example machine architecture and machine-readable medium
[0149] Fig.19 1 is a block diagram illustrating components of a machine 1900 capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and performing any one or more of the methodologies discussed herein, according to some example embodiments. Specifically, Fig.19 A schematic diagram of a machine 1900 in the form of an example of a computer system is shown, in which instructions 1916 (e.g., software, programs, applications, applet, app or other executable code) can be executed to cause the machine 1900 to perform any one or more of the methods discussed herein. In alternative embodiments, the machine 1900 operates as a standalone device or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1900 can operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer (or distributed) network environment. The machine 1900 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a network device, a network router, a network switch, a bridge, or any machine capable of sequentially or otherwise executing instructions 1916 specifying actions to be taken by the machine 1900. Further, while a single machine 1900 is illustrated, the term "machine" shall also be taken to include a collection of machines 1900 that individually or jointly execute instructions 1916 to perform any one or more of the methodologies discussed herein.
[0150] The machine 1900 may include a processor 1910, a memory 1930, and an I / O component 1950, which may be configured to communicate with each other via a bus 1902. In an example embodiment, the processor 1910 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor 1912 and a processor 1914 that may execute instructions 1916. The term "processor" is intended to include a multi-core processor having two or more independent processors (also referred to as "cores") that can execute instructions simultaneously. Although Fig.19 Multiple processors are shown, but machine 1900 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.
[0151] The memory 1930 may include a main memory 1932, a static memory 1934, and a storage unit 1936 accessible to the processor 1910 via the bus 1902. The storage unit 1936 may include a machine-readable medium 1938 on which are stored instructions 1916 embodying any one or more of the methods or functions described herein. During execution of the instructions by the machine 1900, the instructions 1916 may also reside completely or at least partially within at least one of the main memory 1932, the static memory 1934, the processor 1910 (e.g., within a cache memory of the processor), or any suitable combination thereof. Thus, in various embodiments, the main memory 1932, the static memory 1934, and the processor 1910 are considered to be machine-readable media 1938.
[0152] As used herein, the term "memory" refers to a machine-readable medium 1938 capable of storing data temporarily or permanently, and may be considered to include, but is not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. Although the machine-readable medium 1938 is shown as a single medium in the example embodiment, the term "machine-readable medium" should be considered to include a single medium or multiple media (e.g., a centralized or distributed database or associated caches and servers) capable of storing instructions 1916. The term "machine-readable medium" will also be considered to include any medium or combination of multiple media capable of storing instructions (e.g., instructions 1916) executed by a machine (e.g., machine 1900), such that when the instructions are executed by one or more processors of the machine (e.g., processor 1910), the machine performs any one or more of the methods described herein. Therefore, "machine-readable medium" refers to a single storage device or device, as well as a "cloud-based" storage system or storage network including multiple storage devices or devices. Thus, the term "machine-readable medium" should be understood to include, but is not limited to, one or more data repositories in the form of solid-state memory (e.g., flash memory), optical media, magnetic media, other non-volatile memory (e.g., erasable programmable read-only memory (EPROM)), or any suitable combination thereof. The term "machine-readable medium" includes machine-readable storage media and transmission media (e.g., signals).
[0153] I / O components 1950 include various components for receiving input, providing output, generating output, sending information, exchanging information, capturing measurements, etc. In general, it should be understood that I / O components 1950 may include Fig.19 Many other components not shown in the figure. The I / O components 1950 are grouped according to function only to simplify the following discussion, and the grouping is not limiting in any way. In various example embodiments, the I / O components 1950 include output components 1952 and input components 1954. The output components 1952 include visual components (e.g., displays such as plasma display panels (PDPs), light emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), acoustic components (e.g., speakers), tactile components (e.g., vibration motors), other signal generators, etc. The input components 1954 include alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric inputs, optical keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touch pads, trackballs, joysticks, motion sensors, or other pointing instruments), tactile input components (e.g., physical buttons, touch screens or other tactile input components that provide the location and force of touch or touch gestures), audio input components (e.g., microphones), etc.
[0154] In other example embodiments, the I / O component 1950 includes, among other components, a biometric component 1956, a motion component 1958, an environmental component 1960, or a position component 1962. For example, the biometric component 1956 includes components for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), identifying a person (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition), etc. The motion component 1958 includes an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. The environment component 1960 includes, for example, an illumination sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor (e.g., a machine olfactory detection sensor, a gas detection sensor that detects harmful gas concentrations for safety or measures pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. The position component 1962 includes a position sensor component (e.g., a global positioning system (GPS) receiver component), an altitude sensor component (e.g., an altimeter or a barometer that detects air pressure (altitude can be derived from air pressure)), an orientation sensor component (e.g., a magnetometer), and the like.
[0155] A variety of technologies may be used to implement communications. I / O components 1950 may include a communication component 1964 operable to couple machine 1900 to network 1980 or device 1970 via coupling 1982 and coupling 1972, respectively. For example, communication component 1964 includes a network interface component or another suitable device that interfaces with network 1980. In other examples, communication component 1964 includes a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, Components (e.g. Low energy), Components, and other communication components that provide communication via other modalities. Device 1970 can be another machine or any of a variety of peripheral devices (eg, a peripheral device coupled via USB).
[0156] Additionally, in some implementations, the communication component 1964 detects an identifier or includes a component operable to detect an identifier. For example, the communication component 1964 includes a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional bar codes (such as universal product code (UPC) bar codes), multi-dimensional bar codes (such as Quick Response (QR) codes, Aztec codes, Data Matrix, Data Word, MaxiCode, PDF 417, Super Code, Uniform Commercial Code Reduced Space Symbol (UCC RSS)-2D bar codes, and other optical codes), an acoustic detection component (e.g., a microphone for identifying an audio signal with a tag), or any suitable combination thereof. Additionally, various information may be derived via the communication component 1964, such as location via Internet Protocol (IP) geographic location, location via Internet Protocol (IP), location information via Internet Protocol (IP), location information via Internet Protocol (IP), location information via Internet Protocol (IP), location information, and other information. The location of signal triangulation, the location of an NFC beacon signal via detection that can indicate a specific location, and the like.
[0157] Transmission medium
[0158] In various example embodiments, one or more portions of network 1980 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of a public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, 1980, or a portion of network 1980, may include a wireless or cellular network, and coupling 1982 may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or another type of cellular or wireless coupling. In this example, coupling 1982 may implement any of various types of data transmission technologies, such as single carrier radio transmission technology (1xRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rates for GSM evolution (EDGE) technology, the third generation partnership project (3GPP) including 3G, fourth generation wireless (4G) networks, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), world wide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other standards defined by various standard setting organizations, other remote protocols, or other data transmission technologies.
[0159] In an example embodiment, instructions 1916 are sent or received using a transmission medium over network 1980 via a network interface device (e.g., a network interface component included in communication component 1964) and using any of a number of well-known transmission protocols (e.g., HTTP). Similarly, in other example embodiments, instructions 1916 are sent or received using a transmission medium to device 1970 via coupling 1972 (e.g., a peer-to-peer coupling). The term "transmission medium" should be taken to include any intangible medium capable of storing, encoding, or carrying instructions 1916 for execution by machine 1900, and includes digital or analog communication signals or other intangible media used to facilitate communication of the software. Transmission media is an embodiment of a machine-readable medium.
[0160] language
[0161] Throughout the specification, plural instances may implement components, operations or structures as described in a single instance. Although the individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed simultaneously, and there is no need to perform the operations in the order shown. The structures and functions shown as separate components in the example configuration may be implemented as combined structures or components. Similarly, the structures and functions shown as single components may be implemented as separate components. These and other variations, modifications, additions and improvements fall within the scope of the subject matter herein.
[0162] Although an overview of the inventive subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of the embodiments of the present disclosure. These embodiments of the inventive subject matter may be referred to herein, individually or collectively, by the term "invention" for convenience only and are not intended to automatically limit the scope of the present application to any single disclosure or inventive concept (if in fact more than one is disclosed).
[0163] The embodiments shown herein are described in sufficient detail to enable those skilled in the art to implement the disclosed teachings. Other embodiments may be utilized and derived from these embodiments, so that structural and logical substitutions and changes may be made without departing from the scope of the present disclosure. Therefore, this "Detailed Description" should not be taken in a limiting sense, and the scope of the various embodiments is limited only by the appended claims and the full scope of equivalents of the claims.
[0164] As used herein, the term "or" may be interpreted as inclusive or exclusive. In addition, multiple instances may be provided for resources, operations, or structures described herein as single instances. In addition, the boundaries between various resources, operations, modules, engines, and data stores are arbitrary to some extent, and specific operations are shown in the context of specific illustrative configurations. Other allocations of functions are contemplated, and these allocations may fall within the scope of various embodiments of the present disclosure. In general, structures and functions presented as separate resources in the example configuration may be implemented as combined structures or resources. Similarly, structures and functions presented as single resources may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within the scope of the embodiments of the present disclosure represented by the appended claims. Therefore, the specification and drawings should be regarded as illustrative rather than restrictive.
[0165] The following listed examples define various example embodiments of the methods, machine-readable media, and systems (ie, apparatuses) discussed herein:
[0166] Example 1. A method comprising:
[0167] Access search queries that include multiple terms;
[0168] identifying, based on the search query, a combination of a category and one or more aspects of the category;
[0169] determining that no browse nodes exist for the identified category and aspect combination; and
[0170] Based on determining that a browse node does not exist for the identified category and aspect combination, a request is sent to create a browse node for the identified category and aspect combination.
[0171] Example 2. The method of Example 1, wherein:
[0172] The search query is one of a plurality of search queries from a plurality of users;
[0173] The combination of the identified categories and one or more aspects of the categories is based on the plurality of search queries; and
[0174] The method further comprises:
[0175] determining counts of the plurality of search queries upon which the identified category and aspect combinations are based; and
[0176] Wherein: the sending of the request to create the browsing node is also based on the count and the threshold.
[0177] Example 3. The method according to Example 2 further includes:
[0178] determining, based on the plurality of search queries, a pattern of category and aspect combinations having no browse nodes; and
[0179] A request is sent to create a plurality of browse nodes matching the determined pattern.
[0180] Example 4. The method according to any one or more of Examples 1 to 3, further comprising:
[0181] In response to receiving the request, the browse node is created.
[0182] Example 5. The method according to Example 4, wherein creating a browsing node includes creating a document with a title.
[0183] Example 6. The method of Example 5, wherein the document is an HTML document and the title is contained in< / h1> <h1>HTML tags.
[0184] Example 7. The method of any one or more of Examples 1 to 6, wherein the combination of the identified category and one or more aspects of the category comprises:
[0185] One or more terms of the search query are replaced with one or more replacement terms, the replacement being based on a fuzzy match between the replaced terms and the replacement terms.
[0186] Example 8. A system comprising:
[0187] a memory for storing instructions; and
[0188] One or more processors configured by the instructions to perform the following operations:
[0189] Access search queries that include multiple terms;
[0190] identifying, based on the search query, a combination of a category and one or more aspects of the category;
[0191] determining that no browse nodes exist for the identified category and aspect combination; and
[0192] Based on determining that a browse node does not exist for the identified category and aspect combination, a request is sent to create a browse node for the identified category and aspect combination.
[0193] Example 9. The system of Example 8, wherein:
[0194] The search query is one of a plurality of search queries from a plurality of users;
[0195] The combination of the identified categories and one or more aspects of the categories is based on the plurality of search queries;
[0196] The operations also include:
[0197] determining counts of the plurality of search queries upon which the identified category and aspect combinations are based; and
[0198] The sending of the request to create a browse node is also based on the count and the threshold.
[0199] Example 10. The system of Example 9, wherein the operations further comprise:
[0200] determining, based on the plurality of search queries, a pattern of category and aspect combinations having no browse nodes; and
[0201] A request is sent to create a plurality of browse nodes matching the determined pattern.
[0202] Example 11. The system of any one or more of Examples 8 to 10, wherein the operations further comprise:
[0203] In response to receiving the request, the browse node is created.
[0204] Example 12. The system of Example 11, wherein creating the browse node comprises creating a document having a title.
[0205] Example 13. The system of Example 12, wherein the document is an HTML document and the title is contained in< / h1> <h1>HTML tags.
[0206] Example 14. The system of any one or more of Examples 8 to 13, wherein the combination of the identified category and one or more aspects of the category comprises:
[0207] One or more terms of the search query are replaced with one or more replacement terms, the replacement being based on a fuzzy match between the replaced terms and the replacement terms.
[0208] Example 15. A machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:
[0209] Access search queries that include multiple terms;
[0210] identifying, based on the search query, a combination of a category and one or more aspects of the category;
[0211] determining that no browse nodes exist for the identified category and aspect combination; and
[0212] Based on determining that a browse node does not exist for the identified category and aspect combination, a request is sent to create a browse node for the identified category and aspect combination.
[0213] Example 16. The machine-readable storage medium of Example 15, wherein
[0214] The search query is one of a plurality of search queries from a plurality of users;
[0215] The combination of the identified categories and one or more aspects of the categories is based on the plurality of search queries;
[0216] The operations also include:
[0217] determining counts of the plurality of search queries upon which the identified category and aspect combinations are based; and
[0218] The sending of the request to create a browse node is also based on the count and the threshold.
[0219] Example 17. The machine-readable storage medium of Example 16, wherein the operations further comprise:
[0220] determining, based on the plurality of search queries, a pattern of category and aspect combinations having no browse nodes; and
[0221] A request is sent to create a plurality of browse nodes matching the determined pattern.
[0222] Example 18. The machine-readable storage medium of any one or more of Examples 15 to 17, wherein the operations further comprise:
[0223] In response to the request, the browsing node is created.
[0224] Example 19. The machine-readable storage medium of Example 18, wherein creating the browse node comprises creating a document having a title.
[0225] Example 20. The machine-readable storage medium of Example 19, wherein the document is an HTML document and the title is included in< / h1> <h1>HTML tags.
[0226] Example 21. A machine-readable medium carrying instructions, which, when executed by one or more processors of a machine, causes the machine to perform a method according to any one of Examples 1 to 7.< / h1>
Claims
1. A method for identifying a missing browsing node performed by a system, comprising: identifying a combination of a category and one or more aspects of said category; determining that a browse node page does not exist for the identified combination of the category and one or more aspects of the category; as well as Based on determining that no browsing node page exists for the combination of the identified category and one or more aspects of the category, a browsing node page is created for the combination of the identified category and one or more aspects of the category, wherein the browsing node page presents a specific group of items associated with the combination of the identified category and one or more aspects of the category that can be browsed by multiple users.
2. The method according to claim 1, further comprising: Access search queries that include multiple terms; Wherein the combination of the identified category and one or more aspects of the category is based on the search query.
3. The method according to claim 1 or 2, further comprising: Access historical user behavior data, The combination of the identified category and one or more aspects of the category can be based on an analysis of the historical user behavior data.
4. The method according to claim 3, wherein: The historical user behavior data includes search queries executed by users and the sequence of actions resulting from each search query.
5. The method according to claim 3, wherein: The analysis of the historical user behavior data includes combining search queries that are determined to be similar based on a similarity metric.
6. The method according to any one of claims 2, 4 and 5, wherein: The search query is one of a plurality of search queries from a plurality of users; The combination of the identified categories and one or more aspects of the categories is based on the plurality of search queries; as well as The method further comprises: determining a count of the plurality of search queries upon which the identified category and aspect combinations are based; as well as The creation of the browsing node page is also based on the count and the threshold.
7. The method according to claim 6, further comprising: Based on the plurality of search queries, determining a pattern of category and aspect combinations that do not have a browse node page; as well as A plurality of browse node pages matching the determined pattern are created.
8. The method according to any one of claims 1-2, 4-5 and 7, wherein creating the browsing node page comprises: Sending a request to create the browse node page, and In response to receiving the request, the browse node page is created.
9. The method according to claim 8, wherein: Creating the browse node page includes creating a document having a title.
10. The method according to claim 9, wherein: The document is an HTML document and the title is contained in <h1> HTML tags.< / h1> 11. The method according to any one of claims 2, 4-5 and 7, wherein: The combination of the identified category and one or more aspects of the category includes: One or more terms of the search query are replaced with one or more replacement terms, the replacement being based on a fuzzy match between the replaced terms and the replacement terms.
12. A system for identifying missing browsing nodes, comprising: a memory for storing instructions; as well as One or more processors configured by the instructions to perform the following operations: identifying a combination of a category and one or more aspects of said category; determining that a browse node page does not exist for the identified combination of the category and one or more aspects of the category; as well as Based on determining that no browsing node page exists for the combination of the identified category and one or more aspects of the category, a browsing node page is created for the combination of the identified category and one or more aspects of the category, wherein the browsing node page presents a specific group of items associated with the combination of the identified category and one or more aspects of the category that can be browsed by multiple users.
13. The system of claim 12, wherein the operations further comprise: Access search queries that include multiple terms; Wherein the combination of the identified category and one or more aspects of the category is based on the search query.
14. The system according to claim 12 or 13, wherein: The operation also includes: accessing historical user behavior data, The combination of the identified category and one or more aspects of the category can be based on an analysis of the historical user behavior data.
15. The system of claim 14, wherein: The historical user behavior data includes search queries executed by users and the sequence of actions resulting from each search query.
16. The system of claim 14, wherein: The analysis of the historical user behavior data includes combining search queries that are determined to be similar based on a similarity metric.
17. A system according to any one of claims 13, 15 and 16, wherein: The search query is one of a plurality of search queries from a plurality of users; The combination of the identified categories and one or more aspects of the categories is based on the plurality of search queries; The operations also include: determining a count of the plurality of search queries upon which the identified category and aspect combinations are based; as well as The creation of the browsing node page is also based on the count and the threshold.
18. The system of claim 17, wherein: The operations also include: Based on the plurality of search queries, determining a pattern of category and aspect combinations that do not have a browse node page; and A plurality of browse node pages matching the determined pattern are created.
19. The system according to any one of claims 12-13, 15-16 and 18, wherein creating the browsing node page comprises: Sending a request to create the browse node page, and In response to receiving the request, the browse node page is created.
20. The system of claim 19, wherein: Creating the browse node page includes creating a document having a title.
21. The system of claim 20, wherein: The document is an HTML document and the title is contained in <h1> HTML tags.< / h1> 22. The system according to any one of claims 13, 15-16 and 18, wherein: The combination of the identified category and one or more aspects of the category includes: One or more terms of the search query are replaced with one or more replacement terms, the replacement being based on a fuzzy match between the replaced terms and the replacement terms.
23. A machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising: identifying a combination of a category and one or more aspects of said category; determining that a browse node page does not exist for the identified combination of the category and one or more aspects of the category; and Based on determining that no browsing node page exists for the combination of the identified category and one or more aspects of the category, a browsing node page is created for the combination of the identified category and one or more aspects of the category, wherein the browsing node page presents a specific group of items associated with the combination of the identified category and one or more aspects of the category that can be browsed by multiple users.
24. The machine-readable storage medium of claim 23, wherein the operations further comprise: Access search queries that include multiple terms; Wherein the combination of the identified category and one or more aspects of the category is based on the search query.
25. The machine-readable storage medium according to claim 23 or 24, wherein: The operation also includes: accessing historical user behavior data, The combination of the identified category and one or more aspects of the category can be based on an analysis of the historical user behavior data.
26. The machine-readable storage medium of claim 25, wherein: The historical user behavior data includes search queries executed by users and the sequence of actions resulting from each search query.
27. The machine-readable storage medium of claim 25, wherein: The analysis of the historical user behavior data includes combining search queries that are determined to be similar based on a similarity metric.
28. The machine-readable storage medium according to any one of claims 24, 26 and 27, wherein The search query is one of a plurality of search queries from a plurality of users; The combination of the identified categories and one or more aspects of the categories is based on the plurality of search queries; The operations also include: determining a count of the plurality of search queries upon which the identified category and aspect combinations are based; as well as The creation of the browsing node page is also based on the count and the threshold.
29. The machine-readable storage medium of claim 28, wherein: The operations also include: Based on the plurality of search queries, determining a pattern of category and aspect combinations that do not have a browse node page; and A plurality of browse node pages matching the determined pattern are created.
30. The machine-readable storage medium according to any one of claims 23-24, 26-27 and 29, wherein creating the browse node page comprises: Sending a request to create the browse node page, and In response to the request, the browsing node page is created.
31. The machine-readable storage medium of claim 30, wherein: Creating the browse node page includes creating a document having a title.
32. The machine-readable storage medium of claim 31, wherein: The document is an HTML document and the title is contained in <h1> HTML tags.< / h1> 33. The machine-readable storage medium according to any one of claims 24, 26-27 and 29, wherein: The combination of the identified category and one or more aspects of the category includes: One or more terms of the search query are replaced with one or more replacement terms, the replacement being based on a fuzzy match between the replaced terms and the replacement terms.