Dynamic faceted ranking
By dynamically generating facets and using supervised machine learning algorithms to sort them, the problems of low efficiency and susceptibility to human error in existing technologies are solved, achieving efficient and accurate facet generation and sorting.
Patent Information
- Application Number
- CN202180085937.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-12-22
- Filing Date
- 2021-10-19
- Publication Date
- 2025-11-25
- Estimated Expiration
- 2041-10-19
AI Technical Summary
Existing facet generation techniques are inefficient and susceptible to human error, especially during the generation and sorting processes, which can lead to unnecessary errors.
By dynamically generating facets and using supervised machine learning algorithms to sort the generated facets, human error is reduced and efficiency is improved.
It achieves efficient and accurate facet generation and sorting, reduces human error, and improves system reliability and user experience.
Smart Images

Figure CN116648698B_ABST
Abstract
Description
BACKGROUND
[0001] The present invention relates generally to the field of ranking techniques, and more specifically to dynamic faceted ranking techniques.
[0002] Search filters are specific product attributes that a visitor can use to refine the search results of a particular category list, for example, by size, color, price, or brand. Multiple filters can be applied to take a broad range of products and refine them into a narrower selection, allowing an end user to retrieve the most relevant search results based on selected criteria. Filters are sophisticated tools that help users find information. Filters analyze a given collection of content to exclude items that do not meet certain criteria.
[0003] Faceted navigation further extends the concept of filters into a complex structure that attempts to describe all the different aspects of an object for maximum flexibility in information retrieval. Ideally, faceted navigation provides multiple filters, one for each different aspect of the content. Faceted navigation is more flexible and more useful than systems that provide only one or two different types of filters, especially for very large collections of content. Faceted navigation describes multiple different dimensions of the content, provides a structure to help users understand the content space, and provides users with an idea of what is available and how to search the content. SUMMARY
[0004] Embodiments of the present invention provide a computer system, a computer program product, and a method, the method comprising: analyzing a performed query by identifying a plurality of indicative markers based on a pre-stored taxonomy database associated with the performed query; generating a plurality of facets based on the analysis of the performed query, wherein the generated plurality of facets are search results; selecting at least two facets within the generated plurality of facets by determining a quantified similarity value between each respective facet and the plurality of identified indicative markers associated with the performed query; dynamically ranking the selected facets by prioritizing the selected facets based on a computed total score associated with an assigned weighted value of each selected facet of the generated plurality of facets using a supervised machine learning algorithm; and displaying the dynamically ranked facets within a user interface of a computing device associated with a user. BRIEF DESCRIPTION OF DRAWINGS
[0005] Figure 1 is a functional block diagram depicting an environment having a computing device connected to or in communication with another computing device in accordance with at least one embodiment of the present invention;
[0006] Figure 2 is a flowchart illustrating operational steps for dynamically ranking facets using a supervised machine learning algorithm in accordance with at least one embodiment of the present invention;
[0007] Figure 3 is an example diagram illustrating aspects of dynamic ranking within a query according to at least one embodiment of the present application; and
[0008] Figure 4 is a block diagram illustrating components of a computing system within a computing display environment according to an embodiment of the present application. Figure 1 is a block diagram illustrating components of a computing system within a computing display environment according to an embodiment of the present application. DETAILED DESCRIPTION
[0009] Embodiments of the present application recognize a need to improve facet generation techniques because the generation of facets is performed manually and remains unsupervised. Facets are data classifications based on performed queries. For example, filters that help queries in a database are examples of facets. Current facet generation techniques manually generate facets as annotations or tags for documents prior to indexing of the documents, which increases the amount of time spent generating facets and decreases the efficiency of the facet generation techniques. Moreover, current facet generation techniques require manual labor to generate facets, which is an unsupervised task, allowing for unnecessary errors, particularly human errors. Typically, facet generation techniques have a ranking process that is also unsupervised, which leads to unnecessary errors due to human errors. Embodiments of the present application improve the efficiency of current facet generation techniques by dynamically generating facets and dynamically ranking the generated facets. Embodiments of the present application remove unnecessary errors, particularly human errors, by dynamically generating facets and dynamically ranking the generated facets using supervised machine learning algorithms. Embodiments of the present application dynamically rank the generated facets by receiving data in the form of a performed query; analyzing the received data using a search engine algorithm; generating a plurality of facets based on analyzing the received data using the search engine algorithm, wherein the generated plurality of facets are limited as results; dynamically selecting at least two facets within the generated plurality of facets using a facet selection algorithm; dynamically ranking the selected facets within the generated plurality of facets using a supervised machine learning algorithm; and displaying the dynamically ranked facets on a user interface of a computer device.
[0010] Figure 1 is a functional block diagram of a computing environment 100 according to embodiments of the present application. The computing environment 100 includes a computing device 102 and a server computing device 108. The computing device 102 and the server computing device 108 can be a desktop computer, a laptop computer, a specialized computer server, a smart phone, wearable technology, or any other computing device known in the art. In certain embodiments, the computing device 102 and the server computing device 108 can represent computing devices that utilize multiple computers or components to act as a single seamless pool of resources when accessed over a network 106. Generally, the computing device 102 and the server computing device 108 can represent any electronic device or combination of electronic devices capable of executing machine-readable program instructions, as described with respect toFigure 4 In more detail.
[0011] The computing device 102 can include a program 104. The program 104 can be a standalone program on the computing device 102. In another embodiment, the program 104 can be stored on the server computing device 108. In this embodiment, the program 104 improves the efficiency of the facet generation technique by dynamically ordering the generated facets using a supervised machine learning algorithm and removes unnecessary errors, particularly human errors, by dynamically ordering the generated facets associated with the executed query using a supervised machine learning algorithm, a facet selection algorithm, a search engine algorithm, and an artificial intelligence algorithm. In this embodiment, the program 104 dynamically orders the generated facets by receiving data in the form of an executed query. In this embodiment, the program 104 defines a query as a retrieval of information of a database. The program 104 then analyzes the received data by identifying indicative markers associated with the received data using a search engine algorithm. In this embodiment, the program 104 defines an indicative marker as a factor that assists in classifying the received data within the database. In another embodiment, the program 104 defines an indicative marker as an embedding vector. The program 104 then generates a plurality of facets based on the analysis of the received data using the search engine algorithm, wherein the generated plurality of facets are defined as results. In this embodiment, the program 104 defines a facet as a dynamic classification or annotation associated with the received data. The program 104 then dynamically selects at least two facets from the generated plurality of facets using a facet selection algorithm. In this embodiment, the program 104 dynamically selects at least two facets based on a determined similarity within the plurality of facets. In this embodiment, the program 104 defines dynamic selection as a training of a model associated with a classification of the received data based on the analysis. For example, the program 104 dynamically selects facets based on a topic and a type classification, respectively. The program 104 then dynamically orders the selected facets within the generated plurality of facets by assigning a weighted value to each indicative marker associated with each selected facet, by summing the assigned weighted values of the plurality of indicative markers to compute a total score, and prioritizing the selected facets based on the computed total score of the respective selected facets using a supervised machine learning algorithm. The program 104 then displays the dynamically ordered facets on a user interface of the computing device 102. In another embodiment, the program 104 stores the dynamically ordered facets within the server computing device 108 via the network 106.
[0012] In another embodiment, the program 104 transmits the received data to a search engine module (not shown) in the form of an executed query to analyze the received data for a plurality of identified indicative markers. In this embodiment, the program 104 transmits instructions to the search engine module to identify the indicative markers within the received data using a search engine algorithm.
[0013] In another embodiment, the program 104 transmits the generated plurality of facets to a facet selection module (not shown) to dynamically select at least two facets of the generated plurality of facets that meet or exceed a predetermined similarity threshold. In this embodiment, the program 104 transmits instructions to the facet selection module to dynamically select the at least two facets within the generated plurality of facets based on the determined similarity between the at least two facets and the executed query using a facet selection algorithm.
[0014] In another embodiment, the program 104 transmits the selected facets within the generated plurality of facets to a facet ranker module (not shown) to dynamically rank the selected facets based on the computed total scores associated with each respective facet. In this embodiment, the program 104 transmits instructions to the facet ranker module to dynamically rank the selected facets by using a supervised machine learning algorithm to prioritize the selected facets based on the computed total scores of the respective selected facets.
[0015] The network 106 can be a local area network (“LAN”), a wide area network (“WAN”), such as the Internet, or a combination of both; and it can include wired, wireless, or fiber optic connections. In general, the network 106 can be any combination of connections and protocols that will support communications between the computing device 102 and the server computing device 108, specifically the program 104 according to the desired embodiments of the present application.
[0016] The server computing device 108 communicates with the computing device 102 via the network 106 to store the plurality of generated facets. In another embodiment, the server computing device 108 stores the program 104. In another embodiment, the server computing device 108 stores a database (not shown). The server computing device 108 can be a single computing device, a laptop, a set of cloud-based computing devices, a set of servers, and other known computing devices. In this embodiment, the server computing device 108 can be in communication with the computing device 102. In another embodiment, the server computing device 108 can be in communication with the program 104. In another embodiment, the program 104 can store the executed query, the generated plurality of facets, and the ranked facets database within the server computing device 108.
[0017] Figure 2is a flowchart 200 illustrating operational steps for using a supervised machine learning algorithm to dynamically rank facets according to at least one embodiment of the present application.
[0018] In step 202, the program 104 receives data from a user. In this embodiment, the program 104 receives data from a user in the form of a query executed. In this embodiment and in response to receiving data associated with a user's personal information, the program 104 receives an opt-in / opt-out permission from the user prior to receiving data associated with the user. For example, the program 104 receives clothing data based on a query executed against a clothing manufacturer database.
[0019] In step 204, the program 104 analyzes the received data. In this embodiment, the program 104 analyzes the received data by using a search engine algorithm to identify a plurality of indicative markers within the received data that are associated with the executed query. In this embodiment, the program 104 defines an indicative marker as a classification of data within the received data. In this embodiment, a classification is defined as information that distinguishes one indicative marker from the remaining indicative markers within the plurality of indicative markers. For example, the program 104 identifies a make, model, and seat count of a car as a classification of a car. In another embodiment, the program 104 analyzes the received data by identifying a classification based on the executed query associated with the received data. For example, the program 104 identifies a sweater as an indicative marker within the executed query against the clothing manufacturer database and identifies a loose fit as another indicative marker within the executed query against the clothing manufacturer database, where the identified sweater and loose fit are indicative classifications of clothing. In another example, the program 104 identifies a color, make, and model as indicative markers of a car.
[0020] In step 206, the program 104 generates a plurality of facets based on the analysis of the received data. In this embodiment, the program 104 defines the generated plurality of facets as results of the executed query associated with the received data. In this embodiment, the program 104 generates the plurality of facets by using a search engine algorithm to match at least one of the identified indicative markers to the executed query associated with the received data of the user. For example, the program 104 uses a search engine algorithm to match the indicative marker of black within the car database to the executed query for a black sedan. In this embodiment, the program 104 determines a positive match between at least one of the plurality of facets to at least one indicative marker by identifying the requested information within the executed search and identifying information within the results associated with the requested information. For example, the program 104 executes a query for athletic shoes within the clothing manufacturer database and generates a color annotation, a size annotation, a style annotation as the plurality of facets associated with the executed query, where each respective facet further categorizes the results of the executed query by providing information associated with each generated facet.
[0021] In another embodiment, the program 104 generates a plurality of facets associated with each executed query. In this embodiment, the program 104 splits the executed query into key terms and the program 104 generates a plurality of facets for each key term associated with the executed query. In this embodiment, the program 104 identifies the key terms within the executed query by analyzing the pre-stored database of terms associated with the generated plurality of facets based on the executed query for a predetermined set of terms. In this embodiment and in response to identifying the key terms, the program 104 separates the key terms and generates a plurality of facets for each separated key term. For example, the program 104 analyzes the executed query of the user as "black sedan" and the program 104 generates a plurality of facets associated with black (as a key term) cars and generates a plurality of facets associated with four door cars (as another key term). In this example, the color and number of doors are within the predetermined set of terms within the pre-stored database associated with the generated plurality of facets. In another embodiment, the program 104 generates a plurality of facets based on a search of related documents of the executed query performed by the program 104. In this embodiment, the program 104 defines related documents as documents containing matching subject and type information within the documents as the executed query.
[0022] In step 208, the program 104 dynamically selects at least two facets of the generated plurality of facets. In this embodiment, the program 104 dynamically selects at least two facets of the generated plurality of facets by determining a quantitative similarity between the generated plurality of facets and an analysis of the executed query using a facet selection algorithm. In this embodiment, the program 104 qualifies this as dynamic because the program 104 selects at least two facets of the generated plurality of facets without human input and changes constantly based on the executed query. In this embodiment, the program 104 determines the quantitative similarity by establishing a similarity threshold associated with the executed query and matching each respective facet of the generated plurality of facets to a plurality of identified indicative markers associated with the executed query. In this embodiment, each positive match is assigned a value of 1 and each failed match is assigned a value of 0. For example, a positive match for color receives a value of 1, a positive match for manufacturer origin receives a value of 1, a positive match for sedan receives a value of 1, and a non-match for rear-wheel drive receives a value of 0. In this example, the program 104 determines that a value of 3 is associated with the executed query based on an aggregation of the values of the positive matches associated with each determined similarity of each facet. In this embodiment, and in response to aggregating the assigned values associated with each determined similarity of each facet, the program 104 dynamically selects at least two facets that meet or exceed a predetermined similarity threshold. In this embodiment, the predetermined similarity threshold is qualified as a total value of 2. For example, the program 104 dynamically selects a facet associated with color (due to a similarity with the executed query "black sedan" due to type and theme) and a facet associated with texture (due to a similarity with the executed query "wool socks" due to type and theme).
[0023] In another embodiment, the program 104 trains the facet selection module by determining a quantified similarity within each facet, identifying a plurality of features associated with the search results based on the executed query, and dynamically selecting at least two of the identified features within each facet based on a knowledge graph score using a facet selection algorithm, wherein the search results are based on the determined similarity within each facet. In this embodiment, the knowledge graph score is defined as the identified features having a computed strength of relationship between each identified feature and the determined similarity of each facet. In another embodiment, when the number of identified features and the number of facets are very large, the knowledge graph score has been derived using other disclosed techniques subject to size reduction techniques. Examples of the identified features associated with the search results are a proportion of document titles containing the facet, a proportion of document text containing the facet, a Boolean value representing the frequency of the facet in the title, a Boolean value representing the frequency of the facet in the document text, and a minimum index of the facet in the text across all results returned. In this embodiment, the program 104 trains the facet selection module by continuously updating the module based on the selected features having a predetermined knowledge graph score.
[0024] In step 210, the program 104 dynamically ranks the selected facets using a supervised machine learning algorithm. In this embodiment, the program 104 dynamically ranks the selected facets within the generated plurality of facets by assigning a weighted value to each respective indicative token associated with each facet within the generated plurality of facets, computing a total score by summing the assigned weighted values of the plurality of indicative tokens for each facet within the generated plurality of facets, and prioritizing the selected facets based on the computed total score for each respective facet. In this embodiment, the program 104 defines this as dynamic because the program 104 selects at least two facets in the generated plurality of facets without human input and continuously changes based on the executed query. In this embodiment, the program 104 receives user preferences associated with the plurality of indicative tokens, wherein the ordering of the user preferences modifies the assigned weight values for each indicative token within the plurality of tokens. For example, the program 104 assigns a value of one for type, topic, item, and feature matches for facet A, and computes a total score of four for facet A. In this example, the program 104 assigns a value of one for type and topic matches for facet B, and computes a total score of two for facet B. In this example, the program 104 prioritizes and dynamically ranks facet A higher in order than facet B based on the computed total score for facet A being greater than the computed total score for facet B. In another example, the program 104 receives a user preference that prioritizes type facets over item facets. In this example, the program 104 assigns a weighted value of three for positive matches of type facets, and a weighted value of two for positive matches of item facets.
[0025] In this embodiment, the program 104 assigns a weight value to each identified indicative marker associated with each facet by quantifying the match of each identified indicative marker to the executed query. In this embodiment, each match is assigned a weight value of 1. In other embodiments, and in response to receiving additional information from a user that a particular indicative marker has a higher priority than the remainder of the identified indicative markers, the match for that particular indicative marker is assigned a weight value greater than 1.
[0026] In this embodiment, and in response to assigning weight values to the plurality of identified indicative markers, the program 104 computes a total score for the selected facet by summing the assigned weight values for the plurality of indicative markers for each of the generated plurality of facets using an artificial intelligence algorithm. In another embodiment, the program 104 computes the total score based on the knowledge graph features associated with the facet ranking module that assigns values to the plurality of dimensional vectors associated with the executed query. In this embodiment, the computed total score is directly proportional to the strength of the relationship between the plurality of indicative markers associated with each facet and the plurality of indicative markers associated with the executed query. In another embodiment, the program 104 limits the strength of the relationship to quantifying the similarity. In this embodiment, the knowledge graph is limited to a collection of interconnected descriptions of entities, objects, events, or concepts.
[0027] In this embodiment, the program 104 prioritizes the selected facets based on the computed total scores for the selected facets. In this embodiment, the program 104 prioritizes the selected facets by using a supervised machine learning algorithm to place the selected facets with higher computed total scores in a higher position than the selected facets with lower computed total scores. In this embodiment, the program 104 limits the supervised machine learning to a machine learning task that learns a function mapping inputs to outputs based on example input-output pairs and infers the function from labeled training data consisting of a set of training examples. In another embodiment, and in response to transmitting the selected facets to the facet ranker module, the program 104 transmits instructions to the facet ranker module to dynamically rank the selected ranker module based on the computed total scores associated with each respective facet using the supervised machine learning algorithm.
[0028] At step 212, program 104 displays the ranked, selected facets within a user interface stored on computing device 102. In this embodiment, program 104 displays the ranked, selected facets within the user interface as a display output. In this embodiment, program 104 defines a display output as an output on an electronic display, or a hard copy printout, or an output on other auxiliary displays deemed to be display elements relevant to the executed query associated with the user. For example, program 104 displays the ranked facets within a clothing manufacturer database as a prompted label that assists the user in interacting with the database and identifies items that meet or exceed a predetermined similarity threshold to the user's initial executed query.
[0029] Figure 3 is an exemplary diagram 300 illustrating aspects of dynamic ranking within a query in accordance with at least one embodiment of the present application. In this embodiment, search engine module 302, facet selection module 304, and facet ranker module 306 are within program 104. In another embodiment, program 104 is in communication with search engine module 302, facet selection module 304, and facet ranker module 306, respectively, as shown in Figure 3 .
[0030] In Figure 3 this embodiment, search engine module 302 receives instructions from program 104 to analyze data transmitted from a user. In this embodiment, program 104 transmits instructions to search engine module 302 to identify indicative markers in the transmitted data associated with the user using a search engine algorithm. In this embodiment, the transmitted data is defined as an executed query. In this embodiment, program 104 generates a plurality of facets based on the analysis of the transmitted data by search engine module 302. Program 104 then transmits instructions to facet selection module 304 to select at least two facets from the generated plurality of facets. In this embodiment, program 104 transmits instructions to facet selection module 304 to dynamically select the at least two facets by determining a quantitative similarity of a plurality of identified indicative markers associated with each facet to a plurality of identified indicative markers associated with the executed query using a facet selection algorithm. Program 104 then transmits instructions to facet ranker module 306 to dynamically rank the selected facets. In this embodiment, program 104 transmits instructions to facet ranker module 306 to dynamically rank the selected facets within the generated plurality of facets by prioritizing the selected facets within the generated plurality of facets based on a calculated total score associated with each facet within the generated plurality of facets using a supervised machine learning algorithm. Program 104 then displays the dynamically ranked facets within a user interface on computing device 102.
[0031] Figure 4A block diagram of components of a computing system within a computing environment 100 in accordance with embodiments of the present application is depicted. It should be understood that Figure 1 Figure 4 The depicted environment is provided merely as an illustration and is not intended to imply any limitation as to the scope of use or functionality of the different embodiments. Numerous modifications can be made to the depicted environment.
[0032] The programs described herein are based on applications implemented in specific embodiments of the present application. However, it should be understood that any specific program terminology used herein is used merely for convenience and thus the present application should not be limited to use only in any particular application identified and / or implied by such terminology.
[0033] Computer system 400 includes a communication fabric 402 that provides communication between cache 416, memory 406, persistent storage 408, communication unit 412, and input / output (I / O) interface 414. Communication fabric 402 can be implemented with any architecture designed for passing data and / or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system. For example, communication fabric 402 can be implemented with one or more buses or crossbar switches.
[0034] Memory 406 and persistent storage 408 are computer readable storage media. In this embodiment, memory 406 includes a random access memory (RAM). Generally, memory 406 can include any suitable volatile or non-volatile computer readable storage media. Cache 416 is a fast memory that enhances the performance of computer processor 404 by very quickly holding data and instructions that are likely to be needed next.
[0035] Program 104 can be stored in persistent storage 408 and memory 406 for execution by one or more of the respective computer processors 404, via cache 416. In an embodiment, persistent storage 408 includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage 408 can include a solid-state hard drive, a semiconductor storage device, read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, or any other computer readable storage media that is capable of storing program instructions or digital information.
[0036] The medium used by the persistent storage 408 can also be removable. For example, a removable hard drive can be used for persistent storage 408. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive, e.g., to transfer data to another, also a computer-readable storage medium, that is part of the persistent storage 408.
[0037] In these examples, the communication unit 412 provides communication with other data processing systems or devices. In these examples, the communication unit 412 includes one or more network interface cards. The communication unit 412 can provide communication through the use of either physical and / or wireless communications links. The program 104 can be downloaded to the persistent storage 408 through the communication unit 412.
[0038] The I / O interface 414 allows for input and output of data with other devices that can be connected to the mobile device, the approval device, and / or the server computing device 108. For example, the I / O interface 414 can provide a connection to external devices 420 such as a keyboard, a keypad, a touch screen, and / or some other suitable input device. The external devices 420 can also include portable computer readable storage media such as, e.g., thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present application, e.g., the program 104, can be stored on such portable computer readable storage media and can be loaded onto the persistent storage 408 via the I / O interface 414. The I / O interface 414 is also connected to a display 422.
[0039] The display 422 provides a mechanism to display data to a user, and can be, for example, a computer monitor.
[0040] The present application can be a system, a method, and / or a computer program product. The computer program product can include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present application.
[0041] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
[0042] Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network can comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.
[0043] Computer readable program instructions for carrying out operations of the present application can be assembly instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like and conventional procedural programming languages such as the "C" programming language or similar programming languages. The computer readable program instructions can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate array (FPGA), or programmable logic array (PLA) can execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present application.
[0044] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0045] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0046] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0047] The flow diagrams and block diagrams in the drawings are illustrative of architectures, functions, and operations for possible implementations of systems, methods, and computer program products according to various embodiments of the application. Of note, each block in the flow diagrams and block diagrams can represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks can occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks can sometimes be executed in the reverse order, depending on the functionality involved. Also, each block in the block diagrams and / or flow diagrams, and combinations of blocks in the block diagrams and / or flow diagrams, can be implemented by special purpose hardware-based systems that perform the specified functions or actions, or combinations of special purpose hardware and computer instructions.
[0048] The description of various embodiments of the application has been presented for purposes of illustration but is not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the application. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application, or technical improvement over technologies found in the marketplace, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. A computer-implemented method comprising: analyzing an executed query by identifying a plurality of indicative markers based on a pre-stored classification database associated with data received for the executed query; generating a plurality of facets based on the analysis of the executed query, wherein the generated plurality of facets are search results; limiting the plurality of indicative markers to embedded vectors; selecting at least two facets within the generated plurality of facets by determining a quantified similarity value between the plurality of indicative markers associated with each respective facet and the plurality of indicative markers associated with the executed query; dynamically ranking the selected facets by prioritizing the selected facets based on a calculated total score associated with an assigned weighted value for each selected facet of the generated plurality of facets using a supervised machine learning algorithm; and displaying the dynamically ranked facets within a user interface of a computing device associated with a user.
2. The computer-implemented method of claim 1, wherein generating the plurality of facets comprises: matching at least one of the identified indicative markers to the executed query associated with received data of a user.
3. The computer-implemented method of claim 2, wherein matching the at least one identified indicative marker to the executed query comprises: identifying information requested within the executed query and information within the results associated with the requested information, the results being a positive match.
4. The computer-implemented method of claim 1, further comprising: separating the analysis of the executed query into key terms by identifying a plurality of terms within the analysis of the executed query; placing a plurality of identified terms into a database separate from a remainder of the identified terms; and generating a plurality of facets for each identified term placed within the separated database associated with the analysis of the executed query.
5. The computer-implemented method of claim 1, wherein selecting at least two facets within the generated plurality of facets comprises: determining a quantified similarity between the generated plurality of facets and the analysis of the executed query by calculating a knowledge graph score based on an aggregation of positive matches associated with a plurality of identified features; establishing a predetermined similarity threshold associated with the determined similarity; and dynamically selecting at least two facets that meet or exceed the predetermined similarity threshold based on the calculated knowledge graph score correlated within the identified features of each facet.
6. The computer-implemented method of claim 1, wherein dynamically ranking the selected facets comprises: assigning a weighted value to each respective indicative marker associated with each facet within the generated plurality of facets; calculating a total score by summing the assigned weighted values for the plurality of indicative markers for each facet within the generated plurality of facets; and prioritizing the selected facets based on the calculated total score of each respective facet.
7. The computer-implemented method of claim 6, wherein prioritizing the selected facets comprises: using the supervised machine learning algorithm, prioritizing the selected facets based on a computed total score associated with each selected facet of the generated plurality of facets.
8. A computer program product, comprising: one or more computer-readable storage media and program instructions stored on the one or more computer-readable storage media, the program instructions comprising: program instructions to analyze an executed query by defining a plurality of indicative markers as embedding vectors and identifying the plurality of indicative markers based on a pre-stored classification database associated with data received for the executed query; program instructions to generate a plurality of facets based on the analysis of the executed query, wherein the generated plurality of facets are search results; program instructions to select at least two facets within the generated plurality of facets by determining a quantified similarity value between a plurality of indicative markers associated with each respective facet and a plurality of indicative markers associated with the executed query; program instructions to dynamically rank the selected facets by using a supervised machine learning algorithm, prioritizing the selected facets based on a computed total score associated with an assigned weighted value for each selected facet of the generated plurality of facets; and program instructions to display the dynamically ranked facets within a user interface of a computing device associated with a user.
9. The computer program product of claim 8, wherein the program instructions to generate the plurality of facets comprise: program instructions to match at least one of the identified indicative markers to the executed query associated with received data of a user.
10. The computer program product of claim 9, wherein the program instructions to match the at least one identified indicative marker to the executed query comprise: program instructions to identify information requested within the executed query and information within the results associated with the requested information, the results being positive matches.
11. The computer program product of claim 8, wherein the program instructions stored on the one or more computer-readable storage media further comprise: program instructions to separate the analysis of the executed query into key terms by identifying a plurality of terms within the analysis of the executed query; program instructions to place a plurality of identified terms into a database separate from a remainder of the identified terms; and program instructions to generate a plurality of facets for each identified term placed within the separated database associated with the analysis of the executed query.
12. The computer program product of claim 8, wherein the program instructions to select at least two facets within the generated plurality of facets comprise: program instructions to determine a quantified similarity between the generated plurality of facets and the analysis of the executed query by computing a knowledge graph score based on an aggregation of positive matches associated with a plurality of identified features; program instructions to establish a predetermined similarity threshold associated with the determined similarity; and program instructions to dynamically select at least two facets that meet or exceed the predetermined similarity threshold based on the computed knowledge graph scores associated within each facet's identified features.
13. The computer program product of claim 8, wherein the program instructions to dynamically rank the selected facets include: program instructions to assign a weighted value to each respective indicative marker associated with each facet within the generated plurality of facets; program instructions to compute a total score by summing the assigned weighted values of the plurality of indicative markers for each facet within the generated plurality of facets; and program instructions to prioritize the selected facets based on the computed total score of each respective facet.
14. The computer program product of claim 13, wherein the program instructions to prioritize the selected facets comprise: program instructions to use the supervised machine learning algorithm to place selected facets with higher computed total scores in higher positions than selected facets with lower computed total scores.
15. A computer system comprising: one or more computer processors; one or more computer-readable storage media; and program instructions stored on the one or more computer-readable storage media for execution by at least one of the one or more processors, the program instructions comprising: program instructions to analyze an executed query by defining a plurality of indicative markers as embedding vectors and identifying the plurality of indicative markers based on a pre-stored taxonomy database associated with data received for the executed query; program instructions to generate a plurality of facets based on the analysis of the executed query, wherein the generated plurality of facets are search results; program instructions to select at least two facets within the generated plurality of facets by determining a quantified similarity value between a plurality of indicative markers associated with each respective facet and a plurality of indicative markers associated with the executed query; program instructions to dynamically rank the selected facets by using a supervised machine learning algorithm to prioritize the selected facets based on a computed total score associated with assigned weighted values for each selected facet of the generated plurality of facets; and program instructions to display the dynamically ranked facets within a user interface of a computing device associated with a user.
16. The computer system of claim 15, wherein the program instructions to generate the plurality of facets comprise: program instructions to match at least one of the identified indicative markers to the executed query associated with received user's data.
17. The computer system of claim 16, wherein the program instructions to match the at least one identified indicative marker to the executed query comprise: program instructions to identify information requested within the executed query and information within the results associated with the requested information, the results being a positive match.
18. The computer system of claim 15, wherein the program instructions stored on the one or more computer-readable storage media further comprise: program instructions to separate the analysis of the executed query into key terms by identifying a plurality of terms within the analysis of the executed query; program instructions to place a plurality of identified terms into a database separate from a remainder of the identified terms; and program instructions to generate a plurality of facets for each identified term, the identified terms placed within the separate database associated with the analysis of the executed query.
19. The computer system of claim 15, wherein the program instructions to select at least two facets from the generated plurality of facets comprises: program instructions to determine a quantified similarity between the generated plurality of facets and the analysis of the executed query by calculating a knowledge graph score based on an aggregate of positive matches associated with a plurality of identified features; program instructions to establish a predetermined similarity threshold associated with the determined similarity; and program instructions to dynamically select at least two facets that meet or exceed the predetermined similarity threshold based on the calculated knowledge graph score correlated within the identified features of each facet.
20. The computer system of claim 15, wherein the program instructions to dynamically rank the selected facets comprises: program instructions to assign a weighted value to each respective indicative marker associated with each facet within the generated plurality of facets; program instructions to calculate a total score by summing the assigned weighted values of the plurality of indicative markers for each facet within the generated plurality of facets; and program instructions to prioritize rank the selected facets based on the calculated total score of each respective facet.
21. The computer system of claim 15, wherein the program instructions to dynamically rank the selected facets comprises: program instructions to assign a weighted value to each respective indicative marker associated with each facet within the generated plurality of facets; program instructions to calculate a total score by summing the assigned weighted values of the plurality of indicative markers for each facet within the generated plurality of facets; and program instructions to prioritize rank the selected facets based on the calculated total score of each respective facet.
22. The computer system of claim 15, wherein the program instructions to dynamically rank the selected facets comprises: program instructions to assign a weighted value to each respective indicative marker associated with each facet within the generated plurality of facets; program instructions to calculate a total score by summing the assigned weighted values of the plurality of indicative markers for each facet within the generated plurality of facets; and program instructions to prioritize rank the selected facets based on the calculated total score of each respective facet.
Citation Information
Patent Citations
Dynamic faceting for personalized search and discovery
US20180189417A1
Search Result Ranking Based on Post Classifiers on Online Social Networks
US20180268065A1