Method and system for creating a browsing node using frequent pattern mining

By analyzing keyword-value pairs and item associations in search queries using frequent pattern mining techniques, the most representative browsing nodes are identified and created, solving the problem of low browsing node creation efficiency in existing technologies and improving the search experience and engine ranking.

CN116628101BActive Publication Date: 2026-07-24EBAY INC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
EBAY INC
Filing Date
2017-08-16
Publication Date
2026-07-24

AI Technical Summary

Technical Problem

Existing technologies struggle to efficiently identify and create browsing nodes, making it difficult to distinguish between search results pages and browsing node pages, and the workload of creating browsing nodes across all possible combinations is excessive.

Method used

By employing frequent pattern mining technology, we analyze keyword-value pairs and item associations in search queries to identify combinations that meet thresholds and create browsing nodes. We then use frequent pattern mining algorithms to select the most representative combinations for creating browsing nodes.

Benefits of technology

It improves the browsing experience of search results, reduces the workload of creating browsing nodes, and at the same time improves the search engine's ranking in web crawlers and the efficiency of users finding relevant content.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116628101B_ABST
    Figure CN116628101B_ABST
Patent Text Reader

Abstract

The present disclosure provides methods and systems for creating browse nodes using frequent pattern mining. Browse node pages are addressed by their path. As a result, web crawlers have a greater chance of finding browse nodes than corresponding parameter-based search pages. Browse nodes and search result pages can be further distinguished by using a title or header meta tag that indicates information about the browse node and distinguishes the browse node from a general search result page. The number of combinations of keywords, categories, and keyword-value pairs makes it prohibitive to create a browse node for every possible combination in all but the simplest applications. Methods and systems for identifying which search result pages should be converted to browse nodes are disclosed herein.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of Chinese Patent Application No. 201780050415.1 entitled "Creation of Browsing Nodes Using Frequent Pattern Mining" (PCT International Application No. PCT / US2017 / 047041), filed on August 16, 2017 and filed with the China Patent Office on February 15, 2019, and entered the Chinese national phase.

[0002] Cross-references to related applications

[0003] This application claims priority to U.S. Application No. 15 / 240,841, filed August 18, 2016, the entire contents of which are incorporated herein by reference. Technical Field

[0004] The subject matter disclosed herein generally relates to data processing. Specifically, in some example embodiments, this disclosure relates to systems and methods for creating browsing nodes using frequent pattern mining. Attached Figure Description

[0005] Some embodiments are shown in the accompanying drawings by way of example rather than limitation.

[0006] Figure 1 This illustrates a network graph, based on some example embodiments, suitable for creating browsing nodes using frequent pattern mining in a network environment.

[0007] Figure 2 This is a block diagram illustrating components of a search server suitable for creating browsing nodes using frequent pattern mining, according to some example embodiments.

[0008] Figure 3 This is a block diagram illustrating components suitable for a client device to submit queries and display results, according to some example embodiments.

[0009] Figure 4 This is a block diagram illustrating a user interface suitable for displaying search results according to some example embodiments.

[0010] Figure 5 This is a block diagram illustrating a user interface suitable for displaying browsing nodes according to some example embodiments.

[0011] Figure 6 This is a block diagram illustrating the hierarchical structure of browsing nodes according to some example embodiments.

[0012] Figure 7 This is a flowchart illustrating the operations of an application server in performing a method for creating browsing nodes using frequent pattern mining, according to some example embodiments.

[0013] Figure 8 This is a flowchart illustrating the operations of an application server in performing a method for creating browsing nodes using frequent pattern mining, according to some example embodiments.

[0014] Figure 9 This is a flowchart illustrating the operations of an application server in performing a method for creating browsing nodes using frequent pattern mining, according to some example embodiments.

[0015] Figure 10 This is a flowchart illustrating the operations of an application server in performing a method for creating browsing nodes using frequent pattern mining, according to some example embodiments.

[0016] Figure 11 This is a flowchart illustrating the operations of an application server in performing a method for creating browsing nodes using frequent pattern mining, according to some example embodiments.

[0017] Figure 12 This is a table showing a collection of example items and the created browsing nodes according to some example embodiments.

[0018] Figure 1 3 is a table showing a set of example browsing nodes and titles according to some example embodiments.

[0019] Figure 14 This is a block diagram illustrating an example of a software architecture that can be installed on a machine according to some example embodiments.

[0020] Figure 15 It is a schematic representation of a machine in the form of a computer system according to an example embodiment, in which a set of instructions can be executed to cause the machine to perform any one or more of the methods discussed herein. Detailed Implementation

[0021] The example methods and systems relate to creating browsing nodes using frequent pattern mining. The examples represent only possible variations. Unless explicitly stated otherwise, components and functionalities are optional and may be combined or subdivided, and operations may vary in order or be combined or subdivided. In the following description, several specific details are set forth for illustrative purposes to provide a thorough understanding of the example embodiments. However, it will be apparent to those skilled in the art that this subject matter can be practiced without these specific details.

[0022] An aspect is an attribute that can be used to filter search results; this attribute is stored as keyword-value pairs. An aspect differs from the content of a search result (e.g., the text or image displayed in the search result) and differs from the category of the search result. Categories are organized in a tree structure, where each search result belongs to at most one leaf node of the tree. In contrast, each search result can be associated with multiple aspects. For example, both "brand=Nike" and "condition=new" can be associated with a single item. For clarity, the term "aspect type" can be used to refer to the keyword in the keyword-value pair, and "aspect value" is used to refer to the value.

[0023] Users can submit search queries to search engines (such as search applications running on application servers). Search engines can process these queries and generate a set of results. Different search engines may generate different results for the same search query. For example, one search engine might be better suited to providing image results, while another might be better suited to providing shopping results. Continuing the example, submitting a search query containing "wallet" to both engines might result in images of wallets from the first engine and links to wallet retailers from the second engine.

[0024] Search engine results are presented on both the search results page and the browse node page. The search results page is generated in response to a specific search and is inaccessible except by running the search. For example, "http: / / scarehengine.com / search.cgi?key=brand&value=nike" could be a Uniform Resource Locator (URL) that submits the keyword-value pair "brand=nike" to the search engine's search script. The resulting webpage will be dynamically created in response to this query and is not accessible via a static URL. In this case, the keyword-value pair argument is sent as a parameter to the path "search.cgi" within the domain "searchengine.com". In contrast, the browse node page is addressed via its path. For example, "http: / / searchengine.com / Nike" could be a URL that also provides search results for "brand=nike". As a result, web crawlers are more likely to find browse nodes than to find the corresponding parameter-based search page. In some example embodiments, browsing nodes are further identified by using a title or header metatag that indicates information about the browsing node and distinguishes it from general search results pages. For example, a general search results page might have a header such as "Search results for brand = Nike" (e.g., with...). <h1>The title or header of the browsing node is in the form of Hypertext Markup Language (HTML) tags, and the corresponding browsing node may have a header that says "Nike Branded Goods". In some example embodiments, the title or header of the browsing node is created by a person, while the title or header of the search results page is automatically generated based on search criteria.

[0025] Automated processes can be used to create browse nodes for search results pages. However, the sheer number of combinations of keywords, categories, and keyword-value pairs makes creating browse nodes for every possible combination daunting in all applications except the simplest. This paper discloses methods and systems for identifying which search results pages should be converted into browse nodes.

[0026] Figure 1 This is a network diagram illustrating a network environment 100 suitable for creating browsing nodes using frequent pattern mining, according to some example embodiments. Network environment 100 includes e-commerce servers 120 and 140, a search server 130, and devices 150A, 150B, and 150C, all communicatively coupled to each other via network 170. Devices 150A, 150B, and 150C may be collectively referred to as "device 150," or generally as "device 150." E-commerce server 120 and search server 130 may be part of a network-based system 110. Alternatively, device 150 may be directly connected to search server 130, or connected to search server 130 via a local network different from network 170 used for connecting to e-commerce servers 120 or 140. See below for reference. Figure 14-15 As described, the e-commerce servers 120 and 140, the search server 130, and the device 150 can all be implemented, either wholly or partially, within the computer system.

[0027] E-commerce servers 120 and 140 provide e-commerce applications to other machines (e.g., device 150) via network 170. E-commerce servers 120 and 140 may also be directly connected to or integrated with search server 130. In some example embodiments, one e-commerce server 120 and search server 130 are part of a network-based system 110, while other e-commerce servers (e.g., e-commerce server 140) are separate from the network-based system 110. E-commerce applications may provide users with the means to buy items directly from and sell items directly to each other, buy items from and sell items to e-commerce application providers, or both.

[0028] Figure 1 User 160 is also shown. User 160 can be a human user (e.g., a human), a machine user (e.g., a computer configured via software to interact with device 150 and e-commerce or search servers 120, 130, 140), or any suitable combination thereof (e.g., a machine-assisted person or a human-supervised machine). User 160 is not part of network environment 100, but is associated with device 150 and can be a user of device 150. For example, device 150 can be a sensor, desktop computer, in-vehicle computer, tablet computer, navigation device, portable media device, or smartphone belonging to user 160.

[0029] In some example embodiments, search server 130 receives a search query from a user. Search server 130 executes the search query provided by the user or identifies a corresponding browsing node. The search query is sent to e-commerce server 120 or 140, which generates a list of results for the user.

[0030] Figure 1 Any of the machines, databases, or devices shown can be implemented using a general-purpose computer, which is then modified (e.g., configured or programmed) into a special-purpose computer to perform the functions described herein for the machines, databases, or devices. For example, see the following reference... Figure 14-15 This discussion focuses on computer systems capable of implementing one or more of the methods described herein. As used herein, "database" is a data storage resource that can store data structured as text files, tables, spreadsheets, relational databases (e.g., object-relational databases), triplet storage, hierarchical data storage, or any suitable combination thereof. Furthermore, Figure 1 Any two or more of the machines, databases or devices shown herein can be combined into a single machine, database or device, and the functionality described herein for any single machine, database or device can be subdivided into multiple machines, databases or devices.

[0031] Network 170 can be any network that enables communication between or within machines, databases, and devices (e.g., e-commerce or search servers 120, 130, 140, and device 150). Therefore, network 170 can be a wired network, a wireless network (e.g., a mobile or cellular network), or any suitable combination thereof. Network 170 may include one or more components constituting a private network, a public network (e.g., the Internet), or any suitable combination thereof.

[0032] Figure 2 This is a block diagram illustrating the components of a search server 130 according to some example embodiments. The search server 130 is shown as including a communication module 210, a search module 220, a browsing module 230, and a storage module 240, all configured to communicate with each other (e.g., via a bus, 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 machine's processor) or a combination of hardware and software. For example, any module described herein can have a processor configured to perform the operations described herein for that module. Furthermore, any two or more of these modules can be combined into a single module, and the functionality described herein for a single module can be subdivided into multiple modules. Additionally, modules described herein as implemented in a single machine, database, or device, according to various example embodiments, can be distributed across multiple machines, databases, or devices. In some example embodiments, modules implemented using Apache... TM The modules are implemented using a hardware computer cluster, which allows for scalable and parallelizable implementation of the methods described in this paper.

[0033] Communication module 210 is configured to send and receive data. For example, communication module 210 can receive search queries from device 150. Upon receiving a search query, communication module 210 can send the search query to browsing module 230 to determine whether the search query corresponds to a browsing node.

[0034] Search module 220 is configured to evaluate search queries. In some example embodiments, evaluating a search query includes forwarding the search query to e-commerce server 120 or 140. In other example embodiments, evaluating a search query includes searching a database on search server 130 to obtain results.

[0035] Search results can have both aspects and categories. As an example, consider search results for a list of specific pairs of shoes. The shoes could belong to the clothing category, and the list could have an aspect for auctions. As another example, consider search results including web pages containing articles about economic policy. The articles could belong to the economics category, and the article's presentation format (the aspect of the search results) would be a web page.

[0036] Browsing module 230 is configured to locate and provide browsing nodes in response to an input query. For example, browsing module 230 may receive a search query from communication module 210 and access a database to identify browsing nodes. Building on the example above, a search for "Nike shoes" could be replaced with a browsing node containing all items in the "Apparel > Shoes" category that have the attribute "Brand = Nike". The title of the browsing node could be "Nike shoes". Communication module 210 may send a query associated with the browsing node to e-commerce server 120 or 140 to generate search results to be sent to the user.

[0037] Storage module 240 can store data related to previous searches performed by the querying user and other users, data retrieved from browsing nodes of browsing module 230, or both. For example, historical query data, user modeling data, contextual modeling data, and query modeling data can all be stored by storage module 240. Additionally or alternatively, storage module 240 can access data storage on other devices, such as external databases.

[0038] Figure 3 This is a block diagram illustrating components of a client device (e.g., device 150) suitable for submitting queries and displaying results according to some example embodiments. Device 150 is shown as including a communication module 310 and a user interface module 320 configured to communicate with each other (e.g., via a bus, shared memory, or switch).

[0039] Communication module 310 can communicate with e-commerce server 120 or 140, search server 130, or any suitable combination thereof. Information received via communication module 310 can be presented via user interface module 320 (e.g., displayed on a display device). Users can select information or enter search queries using the user interface, which is presented via user interface module 320. Search queries can be transmitted to e-commerce or search servers 120, 130, 140 via communication module 310. Communication module 310 can receive responses including a set of results from e-commerce or search servers 120, 130, 140. Search results can be presented to the user via user interface module 320. For example, search results can be presented in a list view or gallery view.

[0040] Figure 4 This is a block diagram illustrating a user interface 400 suitable for presenting search results according to some example embodiments. From Figure 4 As can be seen, the user interface 400 includes a title 410 "Search Results"; a result count 420; a category 430; an aspect 440; and four search results 450-480.

[0041] The user interface 400 can be displayed in response to a user query. For example, if a user enters a query for "Sony camera" on device 150, the query can be sent from device 150 to search server 130. Search server 130 determines that the query should be processed by e-commerce server 120 or 140 without modification and forwards the query to e-commerce server 120 or 140. E-commerce server 120 or 140 executes the query and sends search results 450-480 to device 150 for display to the user.

[0042] Each search result has 450-480 operable elements used to view additional information related to the search result. For example, a search result could be an item for sale, and the initial search result screen could display an image and tags of the item. Clicking on or otherwise activating the item's image would cause a new page to appear, displaying additional information related to the item, such as an item description, additional images, price, etc.

[0043] Results can include items, events, locations, people, etc. Items can be items for sale or items you want to buy. Events can be concerts, festivals, movies, sporting events, etc. Locations can be monuments, shops, gas stations, restaurants, stadiums, etc. People can be the user's friends, celebrities, or other individuals. In some example implementations, one or more of the items, events, locations, or people displayed are selected based on the advertising fee paid.

[0044] Figure 5 This is a block diagram illustrating a user interface 500 suitable for displaying browsing nodes according to some example embodiments. It can be seen that the user interface 500 includes a title 510 "Sony portable camcorder"; a result count 520; and four search results 530-560.

[0045] User interface 500 can be displayed in response to a user query. For example, if a user enters a query for "Sony camera" on device 150, the query can be sent from device 150 to search server 130. Search server 130 determines that a browsing node should be used to respond to the query and sends a request for a browsing node to e-commerce server 120 or 140. E-commerce server 120 or 140 responds to the request by sending a browsing node (including search results 530-560) to device 150 for display to the user. By comparing user interface 500 and user interface 400, it can be seen that the generic header 410 "Search Results" has been replaced by header 510 "Sony Camcorder," which is specific to the query associated with the browsing node.

[0046] Figure 6 This is a block diagram 600 illustrating a hierarchical structure of browsing nodes applicable when creating browsing nodes based on usage pattern mining according to some example embodiments. Browsing nodes are specific groups of items that a user can browse. In some example embodiments, browsing nodes are distinguished from search results pages by means of HTML tags in the provided page, characteristics of the URL of the provided page, or both. For example, the URL of a search results page may indicate that the search query is a variable for a CGI script, while the URL of a browsing node page may indicate that the search query is part of the path portion of a URL. As another example, a search results page may have a generic title for many search queries (e.g., using <title> or< / h1> <h1>(HTML tags), and browsing node pages can have titles specifically reflecting the browsing nodes. As shown in diagram 600, browsing nodes can exist at different levels in the hierarchy. At the highest level, users can view information for the entire product type. From the product type view, users can delve deeper into categories and subcategories. Within a category or subcategory, additional browsing nodes can exist for specific aspect values ​​and combinations. For example, browsing nodes could be created for "Brand = Sony", "Color = Black", or both. Due to the proliferation of combinations caused by the sheer number of possible combinations of different aspects, it is generally desirable to avoid creating browsing nodes for every possible combination of aspects. For example, if aspects such as brand, color, and size exist, and each aspect has 10 possible values ​​(by no means an upper limit), then to provide a browsing node for each combination, 1000 different browsing nodes would need to be created for all combinations. Selectively creating browsing nodes can provide most of the benefits at minimal cost. For example, if 10 browsing nodes cover 80% of user interests, limiting browsing nodes to these 10 browsing nodes will provide 80% of the benefits at 1% of the cost of creating all 1000 browsing nodes.

[0047] Aspect-restricted browsing nodes are further refined by product category nodes. Product category nodes contain a list of closely related curated items. For example, an aspect-restricted browsing node in the category "Cameras & Photos > Film Photography > Film Cameras" with "Brand = Sony" and "Color = Black" would contain all items matching these criteria. As another example, the product category node "Amazing Film Cameras" would include a set of items that meet the curator's judgment.

[0048] Creating browsing nodes for specific category / aspect combinations can provide a better browsing experience. For example, browsing nodes can be presented to users differently from regular aspect filters, making it easier for users to find popular sets of aspects for the current browsing category. Additionally, browsing nodes can improve a site's ranking in other search engines. For instance, if a site provides a natural way for web crawlers to find each browsing node, a page with browsing nodes for a specific category / aspect may rank higher than a search result page for the same combination.

[0049] Figure 7 This is a flowchart illustrating the operations of a search server 130 during the execution of a method 700 for creating browsing nodes using frequent pattern mining, according to some example embodiments. The operations in method 700 can be performed by the search server 130 using the above-described references. Figure 2 The module described is used for execution.

[0050] In operation 710, the browsing module 230 accesses keyword-value pairs for items within a category. For example, it can access... Figure 12 The key-value pairs shown.

[0051] In operation 720, the browsing module 230 determines keyword-value pairs (or combinations of keyword-value pairs) associated with the number of items that meet or exceed a threshold. For example, in Figure 12 Of the five items shown, four are associated with the keyword-value pair "brand=Samsung". Therefore, if the threshold is 2, "brand=Samsung" will be one of the identified keyword-value pairs. Similarly, Figure 12 Two items in the project are associated with both "Model = S3" and "Brand = Samsung". Therefore, the keyword-value pairs will be determined to satisfy the threshold individually. Furthermore, the keyword-value pair combination "Brand = Samsung; Model = S3" will also be determined to satisfy the threshold.

[0052] In operation 730, the browsing module 230 creates a browsing node for one or more of the identified keyword-value pairs (or combinations thereof). Continuing the example above, browsing nodes can be created for any or all of "Brand=Samsung", "Model=S3", and "Brand=Samsung; Model=S3".

[0053] Figure 8 This is a flowchart illustrating the operations of a search server 130 during the execution of a method 800 for creating browsing nodes using frequent pattern mining, according to some example embodiments. The operations in method 800 can be performed by the search server 130 using the above-described references. Figure 2 The module described is used for execution. Operations 810 and 820 can be executed in a similar manner to operations 710 and 720 described above.

[0054] In operation 830, a loop begins for each key-value pair (or combination of key-value pairs) determined in operation 820. Therefore, the appropriate operations in operations 840-860 are performed for each such determined key-value pair or combination thereof. For convenience, each such determined key-value pair or combination thereof will be referred to as a set of key-value pairs having one or more members.

[0055] In operation 840, the browsing module 230 determines whether any value in the keyword-value pair set is in the list of excluded values. For example, values ​​corresponding to categories and values ​​that are unlikely to be meaningful can be excluded (e.g., "garbage", "temporary" or "bad (foo)").

[0056] In operation 850, if no value is in the exclusion list, a browse node is created for the set of key-value pairs. However, in operation 860, if one or more values ​​are in the exclusion list, a browse node is not created for the set of key-value pairs.

[0057] Figure 9 This is a flowchart illustrating the operations of a search server 130 during the execution of a method 900 for creating browsing nodes using frequent pattern mining, according to some example embodiments. The operations in method 900 can be performed by the search server 130 using the above-described references. Figure 2 The module described is used for execution.

[0058] In operation 910, browsing module 230 accesses potential browsing nodes for a category. For example, each set of keyword-value pairs obtained from operation 720 can define a potential browsing node and be accessed in operation 910.

[0059] In operation 920, the browsing module 230 begins a loop for each pair of potential browsing nodes. Therefore, the appropriate operations in operations 930-960 are performed for each pair of potential browsing nodes. Consider... Figure 12 The data shown identifies six potential browsing nodes, resulting in 15 browsing node pairs.

[0060] In operation 930, the browsing module 230 determines the degree of overlap between items associated with two potential browsing nodes. The degree of overlap can be determined as a count of items, a percentage of the larger item set, a percentage of the smaller item set, or any suitable combination thereof. For example, refer to... Figure 12 The first two potential browsing nodes, items 1-4, are associated with potential browsing nodes for "Brand = Samsung", and items 1 and 3 are associated with potential browsing nodes for "Model = S3". Therefore, the degree of overlap is 50% for the larger item set or 100% for the smaller item set.

[0061] In operation 940, the browsing module 230 compares the degree of overlap with a threshold to determine whether the threshold is met or exceeded. The threshold can be defined based on the number of items or a percentage. For example, if the threshold is 75% of a smaller set of items, then... Figure 12 The pair where "Brand = Samsung" and "Model = S3" will satisfy the threshold. If the threshold is satisfied, the process continues to operation 960. Otherwise, the process continues to operation 950.

[0062] In operation 950, the overlap does not meet the threshold, and both browsing nodes remain in the list of potential browsing nodes. However, in operation 960, the overlap meets the threshold, and one of the potential browsing nodes is removed from the list. For example, a browsing node with a smaller set of associated items can be removed from the list. In some example embodiments, a configurable set of cascading rules is applied to determine which browsing node is removed and which survives (i.e., is not removed). Administrators can choose the criteria to apply either sequentially or using weights. For example, a browsing node with a larger number of aspect keyword-values ​​may be a survivor, but if the numbers are equal, the browsing node with a larger number of associated items survives, and if two browsing nodes are still bound, the first node survives in alphabetical order. As another example, the average popularity of items in a browsing node can be weighted at 25%, the average benefit of items in a browsing node can be weighted at 25%, the number of aspect keyword-values ​​can be weighted at 10%, and the number of associated items can be weighted at 40%. In this example, the browsing node with the highest weighted score will be the survivor.

[0063] In operation 970, after the loop completes, browse nodes are created for the remaining potential browse nodes in the list. For example, a threshold of 75% for smaller sets of items is applied. Figure 12 The data will cause "Model=S3" and "Brand=Samsung; Model=S3" to be removed from the list due to excessive overlap with "Brand=Samsung". The remaining three potential browsing nodes have only 50% overlap with "Brand=Samsung", so they will not be removed compared to this potential browsing node. However, "OS=Android", "Storage=8GB", and "OS=Android; Storage=8GB" have 100% overlap. Therefore, only one of the three potential browsing nodes will be created. In some example embodiments, the potential browsing node with the largest number of keyword-value pairs is selected. Therefore, "Brand=Samsung" and "OS=Android; Storage=8GB" will be based on Figure 12 The data in this example embodiment represents two browsing nodes created.

[0064] Figure 10 This is a flowchart illustrating the operations of a search server 130 during the execution of a method 1000 for creating browsing nodes using frequent pattern mining, according to some example embodiments. The operations in method 1000 can be performed by the search server 130 using the above-described... Figure 2 The module described is used for execution.

[0065] In operation 1010, the browsing module 230 accesses potential browsing nodes of a category. In operation 1020, the browsing module 230 initiates a loop for each potential browsing node. Therefore, the appropriate operations in operations 1030-1060 are performed for each potential browsing node.

[0066] In operation 1030, potential browsing nodes are verified to determine whether they should be created. Different criteria and combinations thereof are used in different example embodiments.

[0067] In some example implementations, an allowed keyword check is performed. To check for allowed keywords, the keywords in the keyword-value pairs of potential browsing nodes are compared to a list of allowed keywords. If all keywords are in the allowed list, the allowed keyword check passes. If one or more keywords are not in the allowed list, the allowed keyword check fails.

[0068] In some example implementations, a duplicate keyword check is performed. To check for duplicate keywords, the keywords in the keyword-value pairs of potential browsing nodes are compared to each other. If any keyword appears twice, the duplicate keyword check fails. Otherwise, the duplicate keyword check passes.

[0069] In some example implementations, a duplicate value check is performed. To check for duplicate values, the values ​​in the keyword-value pairs of potential browsing nodes are compared to each other. If any value appears twice, the duplicate value check fails. Otherwise, the duplicate value check passes.

[0070] In some example implementations, an exclusion keyword check is performed. To check for exclusion keywords, the keywords in the keyword-value pairs of the potential browsing node are compared with keywords in the list of exclusion keywords. If the keyword of the potential browsing node does not appear in the list of exclusion keywords, the exclusion keyword check passes. Otherwise, the exclusion keyword check fails.

[0071] In some example implementations, an exclusion value check is performed. To check for exclusion values, the values ​​in the keyword-value pairs of a potential browsing node are compared to the values ​​in the exclusion value list. If the value of the potential browsing node does not appear in the exclusion value list, the exclusion value check passes. Otherwise, the exclusion value check fails.

[0072] In some example implementations, a value relevance check is performed. To check for excluded value relationships, the keyword-value pairs of potential browsing nodes are compared with patterns of invalid keyword-value pairs. For example, in the "jewelry" category, the keyword "metal purity" can have valid values ​​for silver and gold (e.g., 14K), but is meaningless for bronze or tin-lead alloys. Therefore, browsing nodes with the keyword-value pairs "metal = bronze" and "metal purity" are undesirable. Thus, if the keyword-value pairs of a potential browsing node match the pattern of invalid keyword-value pairs, the value relevance check fails. Otherwise, the value relevance check passes.

[0073] Value relevance checks can also exclude key-value pairs when no other specific keywords are present. For example, if the keyword "metal purity" is only meaningful when the keyword "metal" is present, then the keyword "metal purity" is excluded if the keyword "metal" is not present.

[0074] In some example embodiments, a keyword-value pair count check is performed. To perform this check, the number of keyword-value pairs in a potential browsing node is compared to a range of allowed keyword-value pairs. For example, browsing nodes with 1 to 4 keyword-value pairs, 2 to 5 keyword-value pairs, or some other range may be preferred. If the number of keyword-value pairs in a potential browsing node is within the allowed range, the check passes. Otherwise, the check fails.

[0075] Once the checks implemented for a specific embodiment have been performed, the browsing module 230 performs checks in operation 1040 to determine whether a potential browsing node is confirmed. A potential browsing node is confirmed only if it passes all applicable checks. In operation 1050, if the potential browsing node is confirmed, a browsing node is created for the potential browsing node. In operation 1060, if the potential browsing node is not confirmed, a browsing node is not created for the potential browsing node.

[0076] Figure 11 This is a flowchart illustrating the operations of a search server 130 during the execution of a method 1100 for creating browsing nodes using frequent pattern mining, according to some example embodiments. The operations in method 110() can be performed by the search server 130 using the above references. Figure 2 The module described is used for execution.

[0077] In operation 1110, browsing module 230 accesses potential browsing nodes for a specific category. In operation 1120, browsing module 230 initiates a loop for each potential browsing node. Therefore, operation 1130 is performed for each potential browsing node.

[0078] In operation 1130, the browsing module 230 selects one or more display images of a potential browsing node from the images associated with the items associated with that potential browsing node. For example, since 12 items and a specific potential browsing node are associated with the same keyword-value pairs, the 12 items can be associated with that potential browsing node. Each of the 12 items is associated with a set of images (e.g., an average of 1.5 images per item, for a total of 18 images). One or more images from the combined set selected in operation 1130 are directly associated with the potential browsing node. For example, once the browsing node is created, the selected images can be displayed at the top of the browsing node page. As another example, a page with links to multiple browsing nodes can be created, where each browsing node is represented by a selected image.

[0079] In various example embodiments, various image selection methods are used. For example, images associated with most items in a browsing node can be selected. As another example, random images associated with items in a browsing node can be selected. In some example embodiments, a database stores information about images, and this information is used to allow or prohibit corresponding images. For example, the creator of an image may have granted or denied permission to use the image for purposes other than directly presenting the item. Therefore, permission can be complied with as needed by excluding or including images from the possible set of images associated with the browsing node.

[0080] Additionally or alternatively, image quality metrics can be used as part of the selection process. For example, the contrast between foreground and background objects can be calculated automatically. Images with contrast below a threshold can be ignored. Images with the highest contrast can be selected.

[0081] In some example implementations, a classification model trained using machine learning algorithms is used to apply image quality metrics. This model is trained on a set of learning images labeled "good" or "bad." The resulting model is able to provide a probability that an input image is "good." In this way, the output probabilities from the model can be used to determine the image most likely to be "good" associated with the browsing node.

[0082] Figure 12 Table 1210 shows a set of example items and associated key-value pairs, along with a list 1220 of the created example corresponding browse nodes. The data shown in Table 1210 can be accessed by storage module 240 for use by browse module 230. Table 1210 includes a unique identifier for each of the five items and a set of key-value pairs for each of the five items. List 1220 identifies the six created browse nodes by their respective sets of key-value pairs.

[0083] Figure 13 Table 1310 illustrates a set of example browsing nodes and titles according to some example embodiments. For each browsing node, the data in Table 1310 includes a unique identifier, a set of associated keyword-value pairs, and a title.

[0084] While the above description of the invention uses examples from online marketplaces, other types of searches using these aspects can also utilize the described methods. For example, web pages may have aspects such as creation date, last modified date, size, author, and subject. Some search engines categorize web pages (e.g., to provide a deeper viewing interface that allows users to find pages through a category hierarchy). Therefore, search queries for categorized web pages can be improved by identifying aspects of popular web pages for specific categories and creating browsing nodes for these aspects and combinations of aspects. The created browsing nodes can be presented in the user interface as part of the category hierarchy, even if these aspects are not part of the category hierarchy from a data perspective. Similar benefits arise from searching local hard drive files, searching email archives, etc.

[0085] According to various example embodiments, one or more of the methods described herein can use data mining to facilitate the creation of browsing nodes. Therefore, one or more of the methods described herein can facilitate search engine optimization, which further benefits users of general search engines in finding desired items without first entering search queries to online marketplaces or other specialized search engines. For example, one or more of the methods described herein can facilitate the retrieval and presentation of results of interest to users without requiring them to explicitly perform a series of queries.

[0086] When these effects are considered holistically, one or more methods described herein can eliminate the need for certain workloads or resources that would otherwise be involved in a search. The methods described herein can reduce the effort a user expends in identifying relevant queries. Similarly, the computational resources used by one or more machines, databases, or devices can be reduced (e.g., in network environment 100). Examples of such computational resources include processor cycles, network traffic, memory usage, data storage capacity, power consumption, and cooling capacity.

[0087] Modules, components and logic

[0088] Some embodiments are described herein as including logic or multiple components, modules, or mechanisms. A module can 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 capable of performing certain operations and which can be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., standalone, 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.

[0089] In various embodiments, the hardware-implemented module can be implemented mechanically or electronically. For example, a hardware-implemented module may include dedicated circuitry or logic permanently configured to perform certain operations (e.g., the 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 circuitry temporarily configured by software to perform certain operations (e.g., configured to be included 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.

[0090] Therefore, the phrase "hardware-implemented module" should be understood to include tangible entities, which are physically constructed, permanently configured (e.g., hardwired) or temporarily or transiently configured (e.g., programmed) to operate in a particular manner to perform the specific operations described herein. Given that the hardware-implemented module is a temporarily configured (e.g., programmed) embodiment, each hardware-implemented module does not need to 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 various hardware-implemented modules at different times. The software can thus configure the processor to, for example, constitute a module of a particular hardware implementation at one time, and to constitute modules of different hardware implementations at different times.

[0091] Hardware-implemented modules can provide information to and receive information from other hardware-implemented modules. Therefore, the described hardware-implemented modules can be considered communicatively coupled. When multiple such hardware-implemented modules exist simultaneously, communication can be achieved through signal transmission (e.g., on appropriate circuitry and buses connecting the hardware-implemented modules). In embodiments where multiple hardware-implemented modules are configured or instantiated at different times, such communication between the hardware-implemented modules can be achieved, for example, by storing and retrieving information in a memory structure accessible to the multiple hardware-implemented modules. For example, one hardware-implemented module can perform an operation and store the output of that operation in a storage device communicatively coupled to that hardware-implemented module. Another hardware-implemented module can then access that storage device at a later time to retrieve and process the stored output. Hardware-implemented modules can also initiate communication with input or output devices and can perform operations on resources (e.g., collections of information).

[0092] The various operations of the example methods described herein can be performed, at least in part, by one or more processors configured, either temporarily (e.g., by software) or permanently, to perform the relevant operations. Whether temporarily or permanently configured, such processors can constitute modules of processor implementations that operate to perform one or more operations or functions. In some example embodiments, as used herein, "module" includes processor-implemented modules.

[0093] Similarly, the methods described herein can be implemented at least in part by a processor. For example, at least some operations of the methods can be performed by one or more processors or modules implemented by processors. The execution of certain operations can be distributed across one or more processors and deployed across multiple machines, rather than residing on a single machine. In some example embodiments, one or more processors or processors can be located in a single location (e.g., in a home environment, office environment, or server cluster), while in other embodiments, the processors can be distributed across multiple locations.

[0094] One or more processors may also operate to support the execution of related operations in a "cloud computing" environment or as related operations in a "Software as a Service" (SaaS) environment. For example, at least some operations may be performed by a group of computers (e.g., machines including processors) that are accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., APIs).

[0095] Electronic devices and systems

[0096] Example embodiments may be implemented using digital electronic circuits, computer hardware, firmware or software, or combinations thereof. Example embodiments may be implemented using computer program products (e.g., computer programs tangibly represented in an information carrier, such as a machine-readable medium executed by a data processing apparatus or a machine-readable medium for controlling the operation of a data processing apparatus, such as a programmable processor, a computer, or multiple computers.

[0097] Computer programs can be written in any programming language, including compiled or interpreted languages, and can be deployed in any form, including as standalone programs or as modules, subroutines, or other units suitable for a computing environment. Computer programs can be configured to execute on a single computer, on multiple computers located at one location, or on multiple computers distributed across multiple locations and interconnected through a communication network.

[0098] In the example embodiments, the operations can be performed by executing a computer program through one or more programmable processors to perform functions by manipulating input data and producing output. The method operations can also be performed by dedicated logic circuitry (e.g., an FPGA or ASIC), and the apparatus of the example embodiments can be implemented as dedicated logic circuitry.

[0099] Computing systems may include clients and servers. Clients and servers are generally geographically isolated and typically interact via a communication network. The client-server relationship is generated by computer programs running on respective computers and having a client-server relationship with each other. In embodiments using programmable computing systems, it will be clear that both hardware and software architectures need to be considered. Specifically, it will be clear that implementing a particular function in permanently configured hardware (e.g., ASIC), in temporarily configured hardware (e.g., a combination of software and a programmable processor), or in a combination of permanently and temporarily configured hardware may be a design choice. The following describes hardware (e.g., machine) and software architectures that can be deployed in various example embodiments.

[0100] Software Architecture

[0101] Figure 14 This is a block diagram 1400 illustrating the architecture of software 1402, which can be installed on any one or more of the aforementioned devices. Figure 14 This is merely a non-limiting example of a software architecture, and it will be understood that many other architectures can be implemented to facilitate the realization of the functionality described herein. Software architecture 1402 can be derived from, for example... Figure 15 This is implemented using hardware such as machine 1500, which includes processor 1510, memory 1530, and I / O components 1550. In this example architecture, software 1402 can be conceptualized as a stack of layers, each providing specific functionality. For example, software 1402 includes layers such as operating system 1404, libraries 1406, frameworks 1408, and application 1410. Operationally, depending on some implementations, application 1410 calls application programming interface (API) calls 1412 through the software stack and receives messages 1414 in response to API calls 1412.

[0102] In various implementations, the operating system 1404 manages hardware resources and provides public services. The operating system 1404 includes, for example, a kernel 1420, services 1422, and drivers 1424. In some implementations, the kernel 1420 serves as an abstraction layer between hardware and other software layers. For example, the kernel 1420 specifically provides functions such as memory management, processor management (e.g., scheduling), component management, networking, and security settings. Services 1422 may provide other public services to other software layers. Drivers 1424 may be responsible for controlling the underlying hardware or interface with the underlying hardware. For example, drivers 1424 may include display drivers, camera drivers, etc. Drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Drivers, audio drivers, power management drivers, etc.

[0103] In some implementations, library 1406 provides low-level public infrastructure that can be used by application 1410. Library 1406 may include: system library 1430 (e.g., the C standard library) that provides functions such as memory allocation, string manipulation, and mathematical functions. Additionally, library 1406 may include API library 1432, such as media libraries (e.g., libraries supporting the rendering 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 Picture Experts Group (JPEG or JPG), or Portable Network Graphics (PN G)), graphics libraries (e.g., the OpenGL framework for rendering in two-dimensional (2D) and three-dimensional (3D) backgrounds on a display), databases (e.g., SQLite providing various relational database functions), web libraries (e.g., WebKit providing web browsing functionality), etc. Library 1406 may also include a wide variety of other libraries 1434 to provide many other APIs to application 1410.

[0104] Depending on the implementation, Framework 1408 provides advanced public infrastructure that can be used by Application 1410. For example, Framework 1408 provides various graphical user interface (GUI) functionalities, advanced resource management, advanced location services, and more. Framework 1408 can also provide a wide range of other APIs that can be used by Application 1410, some of which may be specific to a particular operating system or platform.

[0105] In an example embodiment, application 1410 includes a home application 1450, a contacts application 1452, a browser application 1454, a book reader application 1456, a location application 1458, a media application 1460, a messaging application 1462, a game application 1464, and a wide variety of other applications such as a third-party application 1466. According to some embodiments, application 1410 is a program that performs functions defined in a program. Various programming languages ​​can be used to create one or more of the applications 1410 structured in various ways, such as object-oriented programming languages ​​(e.g., Objective-C, Java, or C++) or procedural programming languages ​​(e.g., C or assembly language). In a specific example, third-party application 1466 (e.g., used by an entity different from the platform-specific vendor of Android) TM Or iOS TM Applications developed using a Software Development Kit (SDK) can run on mobile operating systems such as iOS. TM Android TM , Mobile software running on a phone or other mobile operating system. In this example, a third-party application 1466 can call API call 1412 provided by a mobile operating system such as operating system 1404 to facilitate the implementation of the functions described herein.

[0106] Example machine architecture and machine-readable media

[0107] Figure 15 This is a block diagram illustrating components of a machine 1500, according to some example embodiments, capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and executing any one or more of the methods discussed herein. Specifically, Figure 15 A schematic diagram of machine 1500 in an example form of a computer system is shown, wherein instructions 1516 (e.g., software, programs, applications, applets, or other executable code) can be executed to cause machine 1500 to perform any or more methods discussed herein. In alternative embodiments, machine 1500 operates as a standalone device or can be coupled (e.g., networked) to other machines. In a networked deployment, machine 1500 can operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. Machine 1500 can be, but is not limited to, server computers, client computers, personal computers (PCs), tablet computers, laptop computers, netbooks, set-top boxes (STBs), personal digital assistants (PDAs), entertainment media systems, cellular phones, smartphones, mobile devices, wearable devices (e.g., smartwatches), smart home devices (e.g., smart appliances), other smart devices, network devices, network routers, network switches, bridges, or any machine capable of sequentially or otherwise executing instructions 1516 specifying actions to be taken by machine 1500. Furthermore, although only a single machine 1500 is shown, the term "machine" will also be considered to include a collection of machines 1500 that individually or jointly execute instructions 1516 to perform any or more of the methods discussed herein.

[0108] Machine 1500 may include processor 1510, memory 1530, and I / O components 1550, which may be configured to communicate with each other via bus 1502. In an example embodiment, processor 1510 (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) includes, for example, processors 1512 and 1514 capable of executing instructions 1516. The term "processor" is intended to include multi-core processors that may include two or more independent processors (also referred to as "cores") capable of executing instructions simultaneously. Although Figure 15 Multiple processors are shown, but machine 1500 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.

[0109] Memory 1530 may include main memory 1532, static memory 1534, and storage cell 1536 accessible via bus 1502 to processor 1510. Storage cell 1536 may include machine-readable medium 1538 on which instructions 1516 embodying any one or more of the methods or functions described herein are stored. During execution of instructions by machine 1500, instructions 1516 may also reside wholly or at least partially in at least one of main memory 1532, static memory 1534, processor 1510 (e.g., in the processor's cache memory), or any suitable combination thereof. Therefore, in various embodiments, main memory 1532, static memory 1534, and processor 1510 are considered to be machine-readable medium 1538.

[0110] As used herein, the term "memory" refers to machine-readable medium 1538 capable of temporarily or permanently storing data and can be considered to include, but is not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. While machine-readable medium 1538 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 capable of storing instructions 1516 (e.g., a centralized or distributed database or associated cache and server). The term "machine-readable storage medium" will also be considered to include any medium or combination of media capable of storing instructions (e.g., instructions 1516) executable by a machine (e.g., machine 1500), such that when executed by one or more processors of the machine (e.g., processor 1510), the instructions cause the machine to perform any or more of the methods described herein. Therefore, "machine-readable storage medium" refers to a single storage device or apparatus, and a "cloud-based" storage system or storage network comprising multiple storage devices or apparatuses. Therefore, the term "machine-readable storage medium" should be understood to include, but is not limited to, one or more data storage libraries 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 both machine-readable storage media and transmission media or signals.

[0111] I / O component 1550 includes various components for receiving input, providing output, generating output, sending information, exchanging information, capturing measurements, etc. Generally, it should be understood that I / O component 1550 may include... Figure 15 Many other components are not shown. The I / O components 1550 may be grouped according to function for the purpose of simplifying the following discussion only, and the grouping is not intended to be limiting in any way. In various example embodiments, the I / O components 1550 include output components 1552 and input components 1554. Output components 1552 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), haptic components (e.g., vibration motors), other signal generators, etc. Input components 1554 include alphanumeric input components (e.g., keyboards, touchscreens configured to receive alphanumeric input, photoelectric keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touchpads, trackballs, joysticks, motion sensors, or other pointing instruments), haptic input components (e.g., physical buttons, touchscreens providing position and force for touch or touch gestures, or other haptic input components), audio input components (e.g., microphones), etc.

[0112] In other example embodiments, I / O component 1550 particularly includes components such as biometric component 15556, motion component 1558, environmental component 1560, or position component 1562. For example, biometric component 1556 includes components for detecting performance (e.g., hand performance, facial performance, voice performance, body posture, 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). Motion component 1558 includes accelerometer components (e.g., accelerometers), gravity sensor components, rotation sensor components (e.g., gyroscopes), etc. Environmental component 1560 includes, for example, an illuminance sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers for detecting ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones for detecting background noise), a proximity sensor component (e.g., an infrared sensor for detecting nearby objects), a gas sensor (e.g., a machine olfactory detection sensor, a gas detection sensor for detecting the concentration of harmful gases for safety purposes, or measuring pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. Position component 1562 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 for detecting air pressure (from which altitude can be derived)), an orientation sensor component (e.g., a magnetometer), etc.

[0113] A wide variety of technologies can be used to implement communication. I / O component 1550 may include communication component 764, operable to couple machine 1500 to network 1580 or device 1570 via coupling 1582 and coupling 1572, respectively. For example, communication component 1564 includes a network interface component or another suitable device interfaced with network 1580. In other examples, communication component 1564 includes wired communication components, wireless communication components, cellular communication components, near field communication (NFC) components, etc. Components (e.g.) (low energy) Components, and other communication components that provide communication via other modes. Device 1570 can be another machine or any of a variety of peripheral devices (e.g., a peripheral device coupled via USB).

[0114] Furthermore, in some implementations, the communication component 1564 detects identifiers or includes components operable to detect identifiers. For example, the communication component 1564 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 barcodes (such as Universal Product Code (UPC) barcodes), multi-dimensional barcodes (such as Quick Response (QR) codes, Aztec codes, data matrices, data words, MaxiCode, PDF 417, SuperCode, Uniform Business Code Reduced Space Symbol (UCC RSS)-2D barcodes, and other optical codes), an acoustic detection component (e.g., a microphone for recognizing tagged audio signals), or any suitable combination thereof. Additionally, various information can be derived via the communication component 1564, such as location via Internet Protocol (IP) geolocation, etc. The location of signal triangulation, the location of NFC beacon signals that can be detected to indicate a specific location, and so on.

[0115] transmission medium

[0116] In various example embodiments, one or more portions of network 1580 may be an ad hoc network, intranet, extranet, virtual private network (VPN), local area network (LAN), wireless LAN (WLAN), wide area network (WAN), wireless WAN (WWAN), metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a common old-style telephone service (POTS) network, a cellular telephone network, a wireless network, etc. A network, another type of network, or a combination of two or more such networks. For example, network 1580 or a portion thereof may include a wireless or cellular network, and coupling 1582 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 1582 can implement any of a variety of data transmission technologies, such as Single Carrier Radio Transmission (1xRTT), Evolved Data Optimization (EVDO), General Packet Radio Service (GPRS), GSM Evolution Enhanced Data Rate (EDGE), the 3rd Generation Partnership Project (3GPP) including 3G, fourth-generation wireless (4G) networks, Universal Mobile Telecommunications System (UMTS), High-Speed ​​Packet Access (HSPA), Global Microwave Access Interoperability (WiMAX), Long Term Evolution (LTE) standards, other standards defined by various standards-setting organizations, other telematics protocols, or other data transmission technologies.

[0117] In an example embodiment, instructions 1516 are sent or received on network 1580 via a network interface device (e.g., a network interface component included in communication component 1564) using a transmission medium and utilizing any of a plurality of known transport protocols (e.g., Hypertext Transfer Protocol (HTTP)). Similarly, in other example embodiments, instructions 1516 are sent or received to device 1570 via coupling 1572 (e.g., peer-to-peer coupling) using a transmission medium. The term "transmission medium" should be considered to include any intangible medium capable of storing, encoding, or carrying instructions 1516 for execution by machine 1500, and includes digital or analog communication signals or other intangible media for facilitating communication of the software. The transmission medium is an embodiment of a machine-readable medium.

[0118] language

[0119] Throughout this specification, multiple instances can implement components, operations, or structures described as singular instances. While the individual operations of one or more methods are illustrated and described as separate operations, one or more of these operations can be executed concurrently, and not necessarily in the order shown. Structures and functionalities shown as separate components in the example configuration can be implemented as composite structures or components. Similarly, structures and functionalities shown as single components can be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of this subject matter.

[0120] Although an overview of the subject matter of the invention has been described with reference to specific exemplary embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of this disclosure. These embodiments of the subject matter of the invention 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 this application to any single disclosure or inventive concept (if more than one is disclosed).

[0121] The embodiments illustrated herein have been 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, thereby allowing structural and logical substitutions and changes to be made without departing from the scope of this disclosure. Therefore, this "details" should not be construed as limiting, and the scope of the various embodiments is defined only by the appended claims and the full scope of their equivalents.

[0122] As used herein, the term "or" can be interpreted as inclusive or exclusive. Furthermore, multiple instances may be provided for a resource, operation, or structure described herein as a single instance. Additionally, the boundaries between various resources, operations, modules, engines, and data stores are arbitrary to some extent, and a particular operation is shown in the context of a specific illustrative configuration. Other allocations of functionality are contemplated, and these allocations may fall within the scope of various embodiments of this disclosure. Generally, 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 embodiments of this disclosure as represented by the appended claims. Therefore, the specification and drawings should be considered illustrative rather than restrictive.

[0123] The following examples define various exemplary embodiments of the methods, machine-readable media, and systems (i.e., devices) discussed herein:

[0124] Example 1: A method that includes:

[0125] Access data representing multiple items;

[0126] For each of the plurality of projects, access the set of key-value pairs associated with that project;

[0127] Select a first key-value pair from the set of key-value pairs;

[0128] Determine a first number of projects in the plurality of projects that are associated with the first key-value pair;

[0129] The machine's processor compares the first quantity with a threshold to generate a result; and

[0130] Based on the results, a browsing node is created for the first keyword-value pair, the browsing node including a title that references the value of the first keyword-value pair.

[0131] Example 2: The method described in Example 1 further includes:

[0132] Select a second key-value pair from the set of key-value pairs;

[0133] Determine a second number of items in the plurality of projects that are associated with both the first key-value pair and the second key-value pair;

[0134] The machine's processor compares the second quantity with the threshold to generate a second result; and

[0135] Based on the second result, a second browsing node is created, the second browsing node including a title that references the values ​​of the first keyword-value pair and the values ​​of the second keyword-value pair.

[0136] Example 3: The method described according to any one or more of Examples 1 to 2 further includes:

[0137] The value of the first key-value pair is compared with the exclusion value set to determine that the value is not in the exclusion value set; and

[0138] The creation of the browsing node for the first keyword-value pair is also based on determining that the value of the first keyword-value pair is not in the excluded value set.

[0139] Example 4: The method described according to any one or more of Examples 1 to 3 further includes:

[0140] A first set of items is determined from the plurality of items, the first set of items being associated with the first key-value pair;

[0141] Select a second key-value pair from the set of key-value pairs;

[0142] A second set of items is determined from the plurality of items, the second set of items being associated with the second key-value pair;

[0143] Determine the degree of intersection between the first set of items and the second set of items; and

[0144] Based on the intersection degree and the second threshold, the creation of a browsing node for the second keyword-value pair is abandoned.

[0145] Example 5: The method described according to any one or more of Examples 1 to 4 further includes:

[0146] The keyword of the first keyword-value pair is compared with the set of allowed keywords to determine if the keyword is in the set of allowed keywords; and

[0147] The creation of the browsing node for the first keyword-value pair is further based on determining that the keyword of the first keyword-value pair is in the set of allowed keywords.

[0148] Example 6: The method described according to any one or more of Examples 1 to 5, wherein:

[0149] The multiple items are associated with a single category;

[0150] The method further includes:

[0151] Compare the value of the first keyword-value pair with the name of the individual category to determine that the value does not match the name of the individual category; and

[0152] The creation of the browsing node for the first keyword-value pair is also based on determining that the value of the first keyword-value pair does not match the name of the single category.

[0153] Example 7: The method according to any one or more of Examples 1 to 6, wherein: creating the browsing node for the first keyword-value pair includes creating a Uniform Resource Locator URL for the browsing node, the URL including the value of the first keyword-value pair.

[0154] Example 8: The method described according to any one or more of Examples 1 to 7 further includes:

[0155] A first set of items is determined from the plurality of items, the first set of items being associated with the first key-value pair;

[0156] Select an image from the images associated with the items in the first set of items associated with the first keyword-value pair; and

[0157] Associate the selected image with the browsing node for the first keyword-value pair.

[0158] Example 9: The method described according to any one or more of Examples 1 to 8, wherein:

[0159] Each item in the first set of items has an associated quantity; and

[0160] The selection of the image is based on the quantity associated with each item in the first set of items.

[0161] Example 10: The method described according to any one or more of Examples 1 to 9, wherein:

[0162] Each item in the first set of items has an associated user; and

[0163] The selection of the image is based on the attributes of the user associated with the project associated with the selected image.

[0164] Example 11: A system comprising:

[0165] Memory, storage instructions; and

[0166] The processor, configured by the instructions, to perform the following operations:

[0167] Access data representing multiple items;

[0168] For each of the plurality of projects, access the set of key-value pairs associated with that project;

[0169] Select a first key-value pair from the set of key-value pairs;

[0170] Determine a first number of projects in the plurality of projects that are associated with the first key-value pair;

[0171] The first quantity is compared with a threshold to generate a result; and

[0172] Based on the results, a browsing node is created for the first keyword-value pair, the browsing node including a title that references the value of the first keyword-value pair.

[0173] Example 12: The system according to Example 11, wherein the operation further includes:

[0174] Select a second key-value pair from the set of key-value pairs;

[0175] Determine a second number of items in the plurality of projects that are associated with both the first key-value pair and the second key-value pair;

[0176] The second quantity is compared with the threshold to generate a second result; and

[0177] Based on the second result, a second browsing node is created, the second browsing node including a title that references the values ​​of the first keyword-value pair and the values ​​of the second keyword-value pair.

[0178] Example 13: A system according to any one or more of Examples 11 to 12, wherein the operation further includes:

[0179] The value of the first key-value pair is compared with the exclusion value set to determine that the value is not in the exclusion value set; and

[0180] The creation of the browsing node for the first keyword-value pair is also based on determining that the value of the first keyword-value pair is not in the excluded value set.

[0181] Example 14: A system according to any one or more of Examples 11 to 13, wherein the operation further includes:

[0182] A first set of items is determined from the plurality of items, the first set of items being associated with the first key-value pair;

[0183] Select a second key-value pair from the set of key-value pairs;

[0184] A second set of items is determined from the plurality of items, the second set of items being associated with the second key-value pair;

[0185] Determine the degree of intersection between the first set of items and the second set of items; and

[0186] Based on the intersection degree and the second threshold, the creation of a browsing node for the second keyword-value pair is abandoned.

[0187] Example 15: A system according to any one or more of Examples 11 to 14, wherein the operation further includes:

[0188] The keyword of the first keyword-value pair is compared with the set of allowed keywords to determine if the keyword is in the set of allowed keywords; and

[0189] The creation of the browsing node for the first keyword-value pair is further based on determining that the keyword of the first keyword-value pair is in the set of allowed keywords.

[0190] Example 16: A system according to any one or more of Examples 11 to 15, wherein:

[0191] The multiple items are associated with a single category; and

[0192] The operation also includes:

[0193] Compare the value of the first keyword-value pair with the name of the individual category to determine that the value does not match the name of the individual category; and

[0194] The creation of the browsing node for the first keyword-value pair is also based on determining that the value of the first keyword-value pair does not match the name of the individual category.

[0195] Example 17: A system according to any one or more of Examples 11 to 16, wherein: creating the browsing node for the first keyword-value pair includes creating a Uniform Resource Locator (URL) for the browsing node, the URL including the value of the first keyword-value pair.

[0196] Example 18: A system according to any one or more of Examples 11 to 17, wherein the operation further includes:

[0197] A first set of items is determined from the plurality of items, the first set of items being associated with the first key-value pair;

[0198] Select an image from the images associated with the items in the first set of items associated with the first keyword-value pair; and

[0199] Associate the selected image with the browsing node for the first keyword-value pair.

[0200] Example 19: A system according to any one or more of Examples 11 to 18, wherein:

[0201] Each item in the first set of items has an associated quantity; and

[0202] The selection of the image is based on the quantity associated with each item in the first set of items.

[0203] Example 20: A machine-readable storage medium storing instructions that, when executed by one or more processors of a machine, cause the machine to perform operations including:

[0204] Access data representing multiple items;

[0205] For each of the plurality of projects, access the set of key-value pairs associated with that project;

[0206] Select a first key-value pair from the set of key-value pairs;

[0207] Determine a first number of projects in the plurality of projects that are associated with the first key-value pair;

[0208] The first quantity is compared with a threshold to generate a result; and

[0209] Based on the results, a browsing node is created for the first keyword-value pair, the browsing node including a title that references the value of the first keyword-value pair.

[0210] Example 21: A machine-readable medium carrying instructions that can be executed by one or more processors of a machine to perform the method according to any one of Examples 1 to 10.< / h1>

Claims

1. A method for creating browsing nodes using frequent pattern mining, comprising: Access data representing a list of potential browsing nodes, which are defined for different keyword-value pairs or combinations of keyword-value pairs. The list includes at least a first potential browsing node and a second potential browsing node. The first potential browsing node contains a first set of items, and the second potential browsing node contains a second set of items. The first set of items is associated with a first keyword-value pair, and the second set of items is associated with a second keyword-value pair. Determine the degree of overlap between the first set of items and the second set of items; It is determined that the degree of overlap exceeds a threshold degree of overlap; At least in part based on the overlap exceeding the threshold overlap, remove one of the first potential browsing node and the second potential browsing node from the list; and Create browsing nodes for the remaining potential browsing nodes in the list.

2. The method according to claim 1, wherein, Creating a browser node includes generating a Uniform Resource Locator (URL) that references the browser node.

3. The method according to claim 2, wherein, The generated URL includes a title or header meta tag that indicates information about the browsing node.

4. The method according to claim 1, wherein, The degree of overlap is determined as a count of items, a percentage of the larger set of items, or a percentage of the smaller set of items.

5. A browsing node creation system using frequent pattern mining, comprising: Memory, storing instructions; as well as The processor, configured by the instructions, to perform operations including: Access data representing a list of potential browsing nodes, which are defined for different keyword-value pairs or combinations of keyword-value pairs. The list includes at least a first potential browsing node and a second potential browsing node. The first potential browsing node contains a first set of items, and the second potential browsing node contains a second set of items. The first set of items is associated with a first keyword-value pair, and the second set of items is associated with a second keyword-value pair. Determine the degree of overlap between the first set of items and the second set of items; It is determined that the degree of overlap exceeds a threshold degree of overlap; At least in part based on the overlap exceeding the threshold overlap, remove one of the first potential browsing node and the second potential browsing node from the list; and Create browsing nodes for the remaining potential browsing nodes in the list.

6. The system according to claim 5, wherein, Creating a browser node includes generating a Uniform Resource Locator (URL) that references the browser node.

7. The system according to claim 6, wherein, The generated URL includes a title or header meta tag that indicates information about the browsing node.

8. The system according to claim 5, wherein, The degree of overlap is determined as a count of items, a percentage of the larger set of items, or a percentage of the smaller set of items.

9. A machine-readable medium carrying instructions executable by one or more processors of a machine to perform the method according to any one of claims 1 to 4.