SYSTEM AND METHOD FOR A CUSTOMIZED SEARCH PLATFORM - Patent application
Patent Information
- Application Number
- JP2024527195
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-11-04
- Filing Date
- 2022-11-07
- Publication Date
- 2025-12-22
- Estimated Expiration
- 2042-11-07
Smart Images

Figure 0007789913000017 
Figure 0007789913000018 
Figure 0007789913000019
Abstract
Description
[Technical Field]
[0001] This application is a nonprovisional application of U.S. Provisional Application No. 63 / 277,091, filed November 8, 2021, and claims priority under 35 U.S.C. § 119, which is expressly incorporated herein by reference in its entirety.
[0002] The present embodiments relate generally to search engines, and more particularly to a system and method for a customized search platform. [Background technology]
[0003] Search engines allow users to provide search queries and return search results in response. Search sites such as Google.com and Bing.com typically provide users with a list of search results from all kinds of data sources. For example, these existing search engines typically crawl web data to collect search results that are relevant to the search query. However, users have little control or transparency over where and how the search engine conducts its searches and what search results they get.
[0004] Therefore, there is a need for a customized search platform that provides users with both control and transparency regarding the searches they perform. [Brief explanation of the drawings]
[0005] [Figure 1] 3 is a simplified diagram illustrating data flow between entities during a search, according to one embodiment described herein.
[0006] [Figure 2] 2 is a simplified diagram illustrating a computing device for implementing the search described in FIG. 1 according to one embodiment described herein.
[0007] [Figure 3] FIG. 3 is a simplified block diagram of a networked system suitable for implementing the search framework described in FIGS. 1-2 and other embodiments described herein.
[0008] [Figure 4A] FIG. 4 is a simplified block diagram of a networked system suitable for implementing the customized search platform framework described in FIGS. 1-3 and other embodiments described herein.
[0009] [Figure 4B] FIG. 4B is a simplified block diagram of the ranker shown in FIG. 4A, as described with respect to FIG. 4A.
[0010] [Figure 4C] FIG. 4B is a simplified block diagram of the parser shown in FIG. 4A, as described with respect to FIG. 4A.
[0011] [Figure 5] FIG. 4B is an exemplary logic flow diagram illustrating a search method based on the framework shown in FIGS. 1-4A, according to certain embodiments described herein.
[0012] [Figure 6] FIG. 4B is an exemplary logic flow diagram illustrating a customized search method based on the framework shown in FIGS. 1-4A, according to certain embodiments described herein.
[0013] [Figure 7] FIG. 7 is a simplified block diagram of an exemplary search interface implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein.
[0014] [Figure 8A]7 is an exemplary search interface implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein. [Figure 8B] 7 is an exemplary search interface implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein. [Figure 8C] 7 is an exemplary search interface implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein. [Figure 8D] 7 is an exemplary search interface implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein. [Figure 8E] 7 is an exemplary search interface implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein. [Figure 8F] 7 is an exemplary search interface implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein. [Figure 8G] 7 is an exemplary search interface implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein. [Figure 8H] 7 is an exemplary search interface implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein. [Figure 8I] 7 is an exemplary search interface implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein. [Figure 8J]7 is an exemplary search interface implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein. [Figure 8K] 7 is an exemplary search interface implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein.
[0015] Embodiments of the present disclosure and their advantages are best understood by referring to the following detailed description, wherein like reference numerals are used to identify like elements illustrated in one or more of the drawings, and it should be understood that what is shown in the drawings is for purposes of illustrating embodiments of the disclosure and not for purposes of limitation thereof. DETAILED DESCRIPTION OF THE INVENTION
[0016] As used herein, the term "network" may include any artificial intelligence network or system, neural network or system, and / or any hardware or software-based framework including any training or learning model implemented therein or with it.
[0017] As used herein, the term "module" may include a hardware or software-based framework that performs one or more functions. In some embodiments, a module may be implemented on one or more neural networks.
[0018] This application relates generally to search engines, and more particularly to a system and method for a customized search platform.
[0019] Search engines allow users to submit search queries and return search results in response. Search sites such as Google.com and Bing.com typically employ a centralized structure, providing users with a list of search results from all kinds of data sources. For example, these existing search engines typically crawl web data to collect search results relevant to the search query. However, users have little control or transparency over where and how search engines conduct their searches. Additionally, users have little control over how their personal or private information is collected or used by general search engines. For example, users often want to engage with specialized databases for specific searches. For example, human resources staff may use background check websites to search for potential new hires. As another example, legal professionals may search legal databases such as LexisNexis for case law. However, these specialized databases are often scattered and difficult for laypeople to use, requiring, for example, a certain level of expertise to enter the most effective search string.
[0020] For example, when a user searches for "US Patent 12345678," search engines such as Google and Bing are likely to provide a list of search results, such as Internet articles that mention patent number "12345678." If the user is actually looking for the actual patent document for "US Patent 12345678," preferably from an authorized data source such as the United States Patent Office database, examining all of the search results may be cumbersome and inefficient for the user. Therefore, this type of search service provides an unsatisfactory search experience for the user.
[0021] In recognition of the need for an improved user search experience, embodiments described herein provide a system and method for a customized search platform. Specifically, the search system includes a web-based or mobile application platform that provides a customized search experience to individual users, such that the user controls which data sources the search is conducted on. In one embodiment, the search system may determine one or more prioritized data sources in response to a search query based on characteristics of the search query. For example, if the search query relates to a person's name, such as "Richard Socher," then social media (e.g., Facebook) and search results (e.g., Google+, Instagram, etc.) may be prioritized. (registered trademark) , LinkedIn (registered trademark) , Twitter (registered trademark) As another example, if a search query relates to an abstract item such as "QRNN," data sources such as general knowledge data sources (e.g., Wikipedia, (registered trademark) academic data sources (e.g., arXiv, Stanford course materials, etc.), discussion sources (e.g., Quora (registered trademark) , Reddit (registered trademark) etc.) may be given higher priority.
[0022] Additionally, users may select or deselect data sources for their searches, and the search platform may target search queries submitted by users only with data sources that interest the user, or at least prioritize data sources that interest the user, and / or exclude data sources that the user deems poor.
[0023] In one embodiment, a user may actively select data sources of interest to the user using the search platform via a user account management page. For example, the user may actively select Wikipedia, Reddit, Arxiv.org, etc. as their preferred data sources. As a result, if the user searches for "QRNN," search results grouped by the user's selected data source, e.g., Wikipedia, Reddit, Arxiv.org, may be presented to the user via the search user interface. The user may click on the Reddit data source icon to see a list of search results, such as discussion threads about "QRNN" specifically provided by the data source "Reddit." As another example, if the user clicks on the "Wikipedia" icon, the Wikipedia page for "QRNN" may be provided.
[0024] In another embodiment, the search system may monitor user preferences during user interaction with search results. For example, if a user actively "dislikes" displayed search results from a particular data source or rarely interacts with search results from a particular data source, the search system may deprioritize search results from that particular data source. In the example above, if the user chooses to dislike or not select search results from the data source "Reddit," the Reddit icon may be removed from the user interface presenting the search results.
[0025] In this way, by focusing on prioritized data sources based on the characteristics of the search query itself, and further prioritizing and filtering data sources per user preferences, the search system significantly reduces computational complexity and improves search efficiency, while also significantly improving the user experience by allowing users to have transparency and control over search data sources.
[0026] overview FIG. 1 is a simplified diagram illustrating data flow between entities implementing the processes described in FIGS. 2-7, according to one embodiment described herein. A user interacts with a user device 110, which in turn interacts with a search server 100 via an input query 112 provided by the user. The search server 100 interacts with various data sources 103a-103n (collectively referred to as 103). For example, the data sources 103a-103n may be any number of available databases, web pages, servers, blogs, content providers, cloud servers, etc. As described in further detail below with reference to FIGS. 5-6, the search server 100 utilizes a parser 134 and a ranker 132 to identify data sources 103 relevant to the input query 112, retrieve search results from the data sources 103, rank 120 the search results, and present the search results to the user via the user device 110, displaying the search result set in a user-interactive element.
[0027] Common data sources 103a to 103n are Wikipedia, Reddit, Twitter, and Instagram. (registered trademark) (and / or social media), etc. However, for different input queries 112, the search system may intelligently recommend which types of data sources 103 are most relevant to the particular search query. For example, when a user types a search for "Quasi convolutional neural network," the search system may pre-determine (or categorize via a classifier) that the search terms relate to technology topics. Thus, suitable data sources 103 may be identified as most likely to be relevant or interesting to the user based on the input query 112, such as knowledge bases like "Wikipedia," discussion forums like "Reddit" where users may discuss technology topics, archives of scientific papers like "arXiv," etc. The search system may then recommend these data sources 103 to the user.
[0028] In another example, if a user performs a search with the input query 112 "Richard Socher," which the search system may categorize as a person's name, the search system may rank the suggested data sources to include data sources 103 that are more relevant to people, such as "Instagram," "LinkedIn," and "Google Scholar."
[0029] In another embodiment, as described in more detail below with reference to FIG. 7 , a user can interact with search results via a user device 110 through user-interactive elements. In this manner, the search server 100 can refine search results by allowing a user to customize their preferred data sources 103 to better tailor the results to the user's needs and preferences. A user may choose to submit a preference or dislike for a particular data source by clicking an icon, such as a "Like" or "Dislike" icon. Based on the user-submitted preferences, the search system may rearrange and reprioritize data sources. For example, if a user selects "Like" for "LinkedIn" but "Dislike" for "Instagram," when the user searches for a person's name, such as "Richard Socher," the search system may prioritize data sources, such as "LinkedIn," and lower the priority of data sources, such as "Instagram."
[0030] Computer and network environment 2 is a simplified diagram illustrating a computing device 200 implementing the customized search server 100 depicted in FIG. 1 , according to one embodiment described herein. As shown in FIG. 2 , computing device 200 includes a processor 210 coupled to a memory 220. The operation of computing device 100 is controlled by processor 210. Also, while computing device 200 is shown with only one processor 210, it is understood that processor 210 may be representative of one or more central processing units, multi-core processors, microprocessors, microcontrollers, digital signal processors, field programmable gate arrays (FPGAs), application specific integrated circuits, graphics processing units (GPUs), etc. within computing device 200.
[0031] Computing device 200 may be implemented as a standalone subsystem, as a board added to a computing device, and / or as a virtual machine. In various embodiments, the communication device may be a personal computing device capable of communicating with a network (e.g., a smartphone, a computing tablet, a personal computer, a laptop, a wearable computing device such as eyeglasses or a watch, a Bluetooth (registered trademark) The user and service provider may utilize a network computing device (e.g., a network server) capable of communicating with the network. It should be understood that each of the devices utilized by the user and service provider may be implemented as computer system 200 as follows:
[0032] Memory 220 may be used to store software executed by computing device 200 and / or one or more data structures used during operation of computing device 200. Memory 220 may include one or more types of machine-readable media. Some common forms of machine-readable media may include, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with a pattern of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, and / or any other medium adapted to be read by a processor or computer.
[0033] Processor 210 and / or memory 220 may be located in any suitable physical location. In some embodiments, processor 210 and / or memory 220 may be implemented on the same board, the same package (e.g., a system-in-package), the same chip (e.g., a system-on-chip), etc. In some embodiments, processor 210 and / or memory 220 may comprise distributed, virtualized, and / or containerized computing resources. Consistent with such embodiments, processor 210 and / or memory 220 may be located in one or more data centers and / or cloud computing facilities.
[0034] In some examples, memory 220 may include a non-transitory, tangible, machine-readable medium containing executable code that, when executed by one or more processors (e.g., processor 210), may cause the one or more processors to perform the methods described in further detail herein. For example, as shown, memory 220 includes instructions for a search platform module 230, which may be used to implement and / or emulate the systems and models and / or implement any of the methods described further herein. Search platform module 230 may receive input 240, such as an input search query (e.g., a word, sentence, or other input provided by a user to perform a search) via data interface 215, and generate output 250, which may be one or more user-interactive elements that present search results according to different data sources. For example, if input data including a name such as "Richard Socher" is provided, the output data may include search results for "Twitter," "Facebook," "Instagram," "TikTok," etc. (registered trademark) ", or other social media websites. If input data is provided that includes a food such as "pumpkin pie," the output data may include a user-interactive element that shows results from "All Recipes," "Food Network," or other food-related websites. Python (registered trademark) If coding-related input data is provided, such as an error in the code snippet, the output data may include a user-interactive element showing results from StackOverflow, Reddit, or other web pages or blogs aimed at coding assistance.
[0035] The data interface 215 may include a communications interface, a user interface (such as a voice input interface, a graphical user interface, etc.). For example, the computing device 200 may receive input 240 (such as a search query) from a networked database via the communications interface. Alternatively, the computing device 200 may receive input 240, such as a search query, from a user via the user interface.
[0036] In some embodiments, search platform module 230 is configured to parse inputs, categorize the inputs, and rank the results. Search platform module 230 may further include a parser sub-module 231, a categorization sub-module 232, a ranker sub-module 233 (e.g., similar to ranker 412 and parser 414 in FIG. 4A), and a search sub-module 234. In one embodiment, search platform module 230 and its sub-modules 231-234 may be implemented by hardware, software, and / or a combination thereof.
[0037] In some embodiments, the search system employs a search platform module 230 to generate and filter search results from all the different data sources. For example, the search platform may include a ranker 233 and a parser 231, as shown in Figures 1-4A, that incorporates the user query, user context information, and other context information to determine which data sources are relevant, which corresponding data source application programming interfaces (APIs) to contact, how to parse the user query for each search APP API, and ultimately, the final ranked order of the data source results.
[0038] Some examples of computing devices, such as computing device 200, may include non-transitory, tangible, machine-readable media containing executable code that, when executed by one or more processors (e.g., processor 210), can cause the one or more processors to perform the processes of a method. Some common forms of machine-readable media that can contain the processes of a method are, for example, a floppy disk, a flexible disk, a hard disk, a magnetic tape, any other magnetic medium, a CD-ROM, any other optical medium, a punch card, a paper tape, any other physical medium with a pattern of holes, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, and / or any other medium adapted to be read by a processor or a computer.
[0039] FIG. 3 is a simplified block diagram of a networked system suitable for implementing the customized search platform framework described in FIGS. 5-6 and other embodiments described herein. In one embodiment, block diagram 300 illustrates a system including a user device 310 that may be operated by a user 340, data sources 345a and 345b-n, a platform 330, and other forms of devices, servers, and / or software components that operate to perform various methodologies in accordance with the described embodiments. Exemplary devices and servers may include devices that may be similar to computing device 200 described in FIG. 2, standalone, and enterprise-class servers, and may operate an operating system such as the MICROSOFT® OS, UNIX® OS, LINUX® OS, or other suitable device- and / or server-based operating system. It may be understood that the devices and / or servers illustrated in FIG. 3 may be deployed in other manners, and that the operations and / or services provided by such devices and / or servers may be combined or separated for a given embodiment, or may be performed by a greater or fewer number of devices and / or servers. One or more of the devices and / or servers may be operated and / or maintained by the same or different entities.
[0040] User device 310, data sources 345a and 354b-n, and platform 330 may communicate with each other via network 360. User device 310 may be utilized by a user 340 (e.g., a driver, a system administrator, etc.) to access various functions available to user device 310, which may include processes and / or applications associated with server 330 to receive output data anomaly reports.
[0041] User device 310, data sources 345a and 354b-n, and platform 330 may each include one or more processors, memory, and other suitable components for executing instructions, such as program code and / or data stored on one or more computer-readable media, to implement the various applications, data, and steps described herein. For example, such instructions may be stored on one or more computer-readable media, such as memory or data storage devices, internal and / or external to the various components of system 300 and / or accessible via network 360.
[0042] User device 310 may be implemented as a communications device that may utilize appropriate hardware and software configured for wired and / or wireless communications with data source 345 and / or platform 330. For example, in one embodiment, user device 310 may be implemented as an autonomous vehicle, a personal computer (PC), a smartphone, a laptop / tablet computer, a wristwatch with appropriate computing hardware resources, eyeglasses with appropriate computing hardware (e.g., GOOGLE GLASS®), other types of wearable computing devices, implantable communications devices, and / or an IPAD® from APPLE®, or other types of computing devices capable of transmitting and / or receiving data. While only one communications device is shown, multiple communications devices may function similarly.
[0043] 3 includes a user interface (UI) application 312 and / or other applications 316, which may correspond to executable processes, procedures, and / or applications having associated hardware. For example, the user device 310 may receive search results in the form of user-interactive elements from the platform 330 and display messages via the UI application 312. In other embodiments, the user device 310 may include additional or different modules having dedicated hardware and / or software, as desired.
[0044] In various embodiments, user device 310 includes other applications 316 if desired to provide functionality to user device 310 in a particular embodiment. For example, other applications 316 may include security applications for implementing client-side security features, programmatic client applications for interfacing with appropriate APIs over network 360, or other types of applications. Other applications 316 may also include communication applications, such as email, text, voice, social networking, and IM applications, that allow a user to send and receive email, phone, text, and other notifications over network 360. For example, other applications 316 may be email or instant messaging applications that receive predicted result messages from server 330. Other applications 316 may include device interfaces and other display modules that may receive input and / or output information. For example, other applications 316 may include a software program for asset management executable by a processor, including a graphical user interface (GUI) configured to provide a user 340 with an interface for viewing and interacting with user-interactive elements that display search results.
[0045] The user device 310 may further include a database 318 stored in temporary and / or non-transitory memory of the user device 310, which may store various applications and data and be utilized during the execution of various modules of the user device 310. The database 318 may store a user profile associated with the user 340, predictions previously viewed or saved by the user 340, historical data received from the server 330, etc. In some embodiments, the database 318 may be local to the user device 310. However, in other embodiments, the database 318 may be external to the user device 310 and accessible by the user device 310, including a cloud storage system and / or database accessible via the network 360.
[0046] The user device 310 includes at least one network interface component 319 adapted to communicate with data sources 354a, 345b-345n and / or server 330. In various embodiments, the network interface component 319 may include a DSL (e.g., Digital Subscriber Line) modem, a PSTN (Public Switched Telephone Network) modem, an Ethernet device, a broadband device, a satellite device, and / or various other types of wired and / or wireless network communication devices, including microwave, radio frequency, infrared, Bluetooth, and near field communication devices.
[0047] Data sources 345a and 354b-345n may correspond to servers hosting one or more search applications 303a-303n (or collectively referred to as 303) to provide server 330 with search results that include web pages, posts, or other online content hosted by data sources 303a and 354b-345n. Search application 303 may be implemented by one or more relational databases, distributed databases, cloud databases, etc. Search application 303 may be configured by platform 330, data source 345, or some other party.
[0048] In one embodiment, platform 330 may allow various data sources 345a, 354b, 345n, to partner with platform 330 as new data sources. The search system provides each data source 345a, 354b, 345n with an application programming interface (API) to plug into the search system's services. For example, the California Bar Association may register with the search system as a data source. In this manner, the data source "California Bar Association" may appear in a list of available data sources on the search system. Users may select or deselect the California Bar Association as a preferred data source for their searches. Similarly, additional data sources 345 may partner with platform 330 to provide additional data sources for searches so that users can understand where search results are aggregated.
[0049] Data sources 345a-345n (collectively referred to as 345) include at least one network interface component 326 adapted to communicate with user device 310 and / or server 330. In various embodiments, network interface component 326 may include a DSL (e.g., Digital Subscriber Line) modem, a PSTN (Public Switched Telephone Network) modem, an Ethernet device, a broadband device, a satellite device, and / or various other types of wired and / or wireless network communication devices, including microwave, radio frequency, infrared, Bluetooth, and near field communication devices. For example, in one implementation, data source 345 may transmit asset information from search application 303 to server 330 via network interface 326.
[0050] Platform 330 may be housed with search platform module 230 and its sub-modules described in Figure 2. In some implementations, platform 330 may receive data from search application 303 and / or network interface 326 at data source 345 via network 360 and generate user-interactive elements that display search results. The generated user-interactive elements may be transmitted via network 360 to user device 310 for review by user 340.
[0051] Database 332 may be stored in temporary and / or non-transitory memory of server 330. In one implementation, database 332 may store data obtained from data vendor server 345. In one implementation, database 332 may store parameters of search platform model 230. In one implementation, database 332 may store user input queries, user profile information, search application information, search API information, or other information related to a search being performed or a previously performed search.
[0052] In some embodiments, the database information may be local to the platform 330. However, in other embodiments, the database 332 may be external to the platform 330 and accessible by the user device 330, including cloud storage systems and / or databases accessible via the network 360.
[0053] Platform 330 includes at least one network interface component 333 adapted to communicate with user devices 310 and / or data sources 345a and 354b-345n over network 360. In various embodiments, network interface component 330 may include a DSL (e.g., Digital Subscriber Line) modem, a PSTN (Public Switched Telephone Network) modem, an Ethernet device, a broadband device, a satellite device, and / or various other types of wired and / or wireless network communication devices, including microwave, radio frequency (RF), infrared (IR) communication devices.
[0054] Network 360 may be implemented as a single network or a combination of multiple networks. For example, in various embodiments, network 360 may include the Internet or one or more intranets, landline networks, wireless networks, and / or other suitable types of networks. Thus, network 360 may correspond to a small communications network, such as a private or local area network, or a larger network, such as a wide area network or the Internet, accessible by various components of system 300.
[0055] Exemplary Architecture FIG. 4A is a simplified block diagram of a networked system suitable for implementing the customized search platform framework described in FIGS. 1-3 and other embodiments described herein.
[0056] Platform 410 (similar to 230 in FIG. 2 or 330 in FIG. 3 ) receives input data from a user. This input data may include one or more of a user query 402, a user context 404, and other context 406. User query 402 may include a word, multiple words, a sentence, or any other type of search query provided by a user performing a search using platform 410. For example, user query 402 may be search terms such as “quasi recurrent neural network,” “Richard Socher,” etc. User context 404 may include input representative of the user, such as a user ID, user preferences, a user click log, or other information collected or provided by the user, preferred data sources selected by the user, the user's past activity of “liking” or “disliking” search results or search sources, etc. Other context 406 may include input representative of other useful input information, such as information about world events, searches conducted around the same time, searches conducted around the same region, searches that have increased in volume over a period of time, or other potential contextual information that may assist platform 410 in providing appropriate search results to the user.
[0057] A user query 402 is transmitted via a platform 410 as a representative string q=(q1,...,q r ), where each q is a single token in a string tokenized by some tokenization strategy. User contexts 404 and other contexts 406 may also be converted via platform 410 into a representative string u=(u,...,u m ) (e.g., user context 404) and c=(c1,...,c p) (e.g., other context 406). These input permutations are concatenated into a single input sentence, e.g., a combined input sequence s = [TASK, q, SEP, u, SEP, c]. This combined input sequence is the entire representative string q, representative string u, and representative string c, along with special reserved tokens (TASK and SEP) that are used to inform the system where one sequence ends and another begins.
[0058] The single input sentence is then provided to a parser 414 (e.g., similar to parser sub-module 231 in FIG. 2) and a ranker 412 (e.g., similar to ranker sub-module 233 in FIG. 2). Each of ranker 412 and parser 414 may be built on a neural network.
[0059] Specifically, the ranker 412 determines and ranks a list of search apps 420a-420n that perform searches. In some embodiments, each search app 420a-420n corresponds to one of the data sources 103a-103n of FIG. 1 or 345a-345n as shown in FIG. 3. For example, search app 420a corresponds to a search application configured to search within the Amazon.com database, search app 420b corresponds to a search application configured to search within the Facebook.com database, etc. The ranker 414 scores the multiple search apps 420a-420n using an input sequence that includes the user query 402, the user context 404, and other context 406 by running the input sequence through a neural network model, once for each search app 420a-420n, as described in further detail below with respect to FIG. 4B. In this manner, the ranker 414 ranks a list of search apps that correspond to a list of data sources to perform the user query 402. For example, if a user query 402 searches for "affordable instant pot," a search app 420a corresponding to Amazon.com may be prioritized over a search app 420b corresponding to Facebook.com.
[0060] After the ranker 412 determines and ranks the list of search apps 420a-420n for a particular user query 402, the parser 414 determines each particular search input for each search app API 422a-422n corresponding to each search app 420a-420n, respectively. The parser 414 may use the input sequence, including the user query 402, the user context 404, and the other context 406, to determine which tokens in the user query correspond to which inputs of the search app APIs 422a-422n, as described further below with respect to FIG.
[0061] For example, the ranker 412 uses a combined input sequence s for each search application 420a-420n, where s is additionally concatenated with the representation of the search application 420, such that:
[0062]
number
[0063] Both the ranker 412 and the parser 414 utilize a variant of the Transformer, where a sequence containing n tokens is
[0064]
number
[0065]
number
[0066]
number
[0067] The second block uses a feedforward network with ReLU activation that projects the input onto the internal dimension f. This operation is
[0068]
number
[0069]
number
[0070]
number
[0071] Each block precedes the core function using layer normalization and follows it using residual connections. Together, these give X i+1 That is,
[0072]
number
[0073]
number
[0074] The final output of the Transformer for a single input sequence x is X. For example, after l attention layers, the ranker 412 may pass an output matrix representing ranking information for the search applications 420a-420n to the parser 414. The parser 414 may generate a matrix X containing the search inputs for the search applications 420a-420n. l These are sent to the search application APIs 422a to 422n, respectively.
[0075] The search results returned via the search app APIs 422a-422n are then sorted according to the rankings generated by the ranker 412 and presented in ranked order 430. For example, result 431a corresponds to a group of search results from the highest ranked search app 420a, and result 431n corresponds to search results from the lowest ranked search app 420n. The results 431a-431n are then presented to the user via a graphical user interface or some other type of user output device. For example, the search results 431a-431n may be grouped and presented in the form of a list of user-interactive elements, each displaying an icon representing a respective search app (data source). When the user selects an icon, a list of search results from the respective search app may be presented to the user. Exemplary UI diagrams can be seen in FIGS. 8A-8K.
[0076] Thus, by using the neural network-based ranker 412 and parser 414, the search platform may intelligently predict which data sources are likely to be prioritized for a particular user based on the user query 402 and user context 404. For example, the user may directly set preferences or dislikes for data sources (e.g., see FIGS. 8H and 8J). Thus, the search platform may accordingly include or exclude search apps corresponding to the preferred or disliked data sources in the search (e.g., as filtered by the ranker 412). As another example, when a user dislikes search posts from Twitter.com, the search platform may not exclude Twitter.com from future searches. However, if the user consistently dislikes search results from Twitter.com (e.g., more than a predefined number of times per day, per week, or per percentage of all searches), the search platform is likely to deprioritize or exclude Twitter.com from future searches. The neural model of ranker 412 may be trained to predict whether Twitter.com should be excluded or de-prioritized based on past user behavior.
[0077] For example, the ranker 412 and parser 414 may each be trained independently. The training input may include similar data such as a user query 402, a user context 404, and other contexts 406. The ranker 412 generates a training output of rankings of search apps (data sources), which are compared to the actual ground truth rankings paired with the training input. A mutual entropy loss may be calculated to update the ranker 412 via backpropagation. The parser 414 may be trained in a similar manner. In another example, the ranker 412 and parser 414 may be jointly trained end-to-end.
[0078] These embodiments describe systems and methods for a customized search platform that provides users with control and transparency in their searches. In some cases, a user may prefer complete privacy with respect to their searches and / or internet browsing. In such cases, the user may choose to remain in "private mode" while searching. In other instances, the user may prefer results tailored to the user's preferences or interests. In such instances, the user may choose to enter "personal mode" instead.
[0079] A user may choose to remain in “private mode” while searching. In “private mode,” the computer system protects the user's privacy by not storing the query on a server, not recording clicks or any other interactions with the search engine, and disabling all apps that require an IP address or location. In “private mode” embodiments, the user can conduct a search while controlling how the search engine collects and uses information about the user. Thus, in “private mode” embodiments, the platform 410 may collect input from the user query 402 and other context 406, but does not have access to the user context 404 when performing each search. Additionally, the user query 402 is not retained by the platform 410 beyond the need to perform an immediate search using the user query 402.
[0080] In a "personal mode," the user can instead further customize their experience during a search, retaining control of the search while enjoying results tailored specifically to them. The user can optionally create a user profile to retain and store their preferences. In a "personal mode" embodiment, the user can control their search experience through the information they provide to the search system. For example, the user can select preferred data sources and modify the order in which applications appear in response to a search query. While user interactions may optionally be collected and used to provide better tailored results to the user in the future, "personal mode" ensures that the user, rather than an SEO expert or advertiser, retains control of the user's search experience. Thus, in a "personal mode" embodiment, the platform 410 may collect input including a user query 402, a user context 404, and other context 406. The user context 404 that is collected and utilized may be controlled by the user.
[0081] Figure 4B is a simplified block diagram of the ranker 412 described with respect to Figure 4A. The ranker 412 scores each search app 420a-420n using the user query 402, user context 404, and other context 406. Thus, the ranker 412 runs once for each search app 420 being ranked.
[0082] The ranker 412 determines a ranked order 430 for the set of search applications 420Si.
[0083]
number
[0084]
number
[0085]
number
[0086]
number
[0087]
number
[0088] This process is repeated for each search app 420a-420n. A ranked order 430 is then determined by sorting these scores.
[0089] 4C is a simplified block diagram of a parser 414 as described with respect to FIG. 4A. Parser 414 tags each entry in x with a marker of whether it corresponds to an entry in Search App API 422. Parser 414 operates on a sequence x as described above, and uses the underlying Transformer architecture X l Instead of pooling and calculating the scores of each search application 420a to 420n, the parser 414 applies the following formula:
[0090]
number
[0091] In the above formula, SlotScores aiFor each token in the input sequence x, determines whether the token corresponds to a particular input (or, in this case, a slot for disambiguating its own input) of the i-th Search App API 420, e.g., a starting location, a destination location, etc. Each Search App 420 has its own corresponding parameter, which has an entry corresponding to each slot that needs to be tagged to calculate the score on that slot.
[0092]
number
[0093] Example Workflow 5 is an exemplary logic flow diagram illustrating a search method based on the framework shown in FIGS. 1-4C according to some embodiments described herein. One or more of the processes of method 500 may be implemented, at least in part, in the form of executable code stored on a non-transitory, tangible, machine-readable medium that, when executed by one or more processors, can cause the one or more processors to perform one or more of the processes. In some embodiments, method 500 corresponds to the operation of search platform module 230 (e.g., FIGS. 1-4A ) that performs a search based on user input and provides user-interactive elements that include search results.
[0094] In step 502, an input query is received via a data interface. As shown in FIG. 4A, according to some embodiments, the input query may include one or more of a user query 402, a user context 404, or other context 406. In some embodiments, the input query is provided by a user via user interaction with the search system, such as by entering a search query into the search system.
[0095] In some embodiments, the input sequence may be generated by concatenating the input query (e.g., "Richard Socher," "Quasi Recurrent Neural Network," etc.) with a user context associated with the user who initiated the input query. The user context may include any combination of user profile information (e.g., user ID, user gender, user age, user location, zip code, device information, mobile application usage information, etc.), user-defined preferences or dislikes for one or more data sources (e.g., as shown in FIGS. 8H and 8J), and the user's past activity that perceived search results from particular data sources as favorable or unfavorable. In some embodiments, the input sequence further includes supplemental context, which includes contextual information from one or more data sources related to the input query. This supplemental context may include "popular searches," "top searches," "others are also searching for...," "hashtags," and other indicators of trending topics. The supplemental context may take into account global trends, local trends, news topics, or other relevant information based on current popularity. The supplemental context may also take into account searches for similar users, searches over a recent period of time, searches from a geographic area, or other contextual information that may be related to the input query. In some embodiments, the search input may be generated by a parsing neural model based on the input sequence.
[0096] In step 504, the search system determines first and second data sources that are relevant to the input query based at least in part on characteristics of potential search objects from the input query. As shown in FIG. 4A , according to some embodiments, this determination of relevant data sources is performed using the input query, which includes a user query 402, a user context 404, or other context 406. In some embodiments, this determination of relevant data sources is based at least in part on characteristics of potential search objects from the input query. For example, if the input query includes a name such as “Richard Socher,” relevant data sources may include “Twitter,” “Facebook,” “Instagram,” “TikTok,” or other social media websites. If the input query includes a food item such as “pumpkin pie,” relevant data sources may include “All Recipes,” “Food Network,” or other food-related websites. If the input query is related to coding, such as a Python error, relevant data sources may include “StackOverflow,” “Reddit,” or other web pages or blogs aimed at coding assistance.
[0097] In some embodiments, determining the first and second data sources that are relevant to the input query includes generating an input sequence by concatenating the input query and a user context associated with the user who initiated the input query. A ranking neural model (e.g., see 412 in FIG. 4A) may then generate a relevance score for each data source based on the input sequence and use the relevance scores to determine whether each data source is relevant based on whether each relevance score is greater than a threshold. Each data source may be ranked based on its respective relevance score. In some embodiments, an index may be generated by the analytical neural model for each data source.
[0098] In step 506, the search system may examine and filter the determined data sources based on the user's stored preferences for the data sources and generate / submit customized search inputs for each data source. In one implementation, if a user previously selected a particular data source as a preferred data source, the search system may include and prioritize this particular data source. In one implementation, if a user previously deselected or disliked a particular data source, the search system may exclude this particular data source even if this data source may have been determined to be relevant in step 504.
[0099] In one implementation, the search system may universally apply a user's preferred data source in a search. For example, if "Wikipedia" is selected by a user as a preferred data source, the search system may always place a group of search results from "Wikipedia" in a search for the user.
[0100] In another implementation, the search system may categorize a user's preferred data sources by their type. For example, if "LinkedIn" is selected by a user as a preferred data source, the search system may remember "LinkedIn" as a preferred data source for certain types of queries (e.g., related to people's names) and not prioritize searches on "LinkedIn" when the query is not related to people's names (e.g., "high performance instant pot").
[0101] In an alternative implementation, in step 506, the search system may send a first search input and a second search input to a first data source and a second data source, respectively, via a search application programming interface (APIs 422a-n in FIG. 4A ). The search inputs may be customized from the input query for each data source. Additional context related to the input query from the data source may be received from each Search App API, and the additional context may be used to determine which portions of the input query correspond to each Search App API. For example, for a Search App API having a data source “LinkedIn.com,” when a user input query is “Richard Socher,” the search input may be customized as “Posts mentioning Richard Socher,” “pages mentioning Richard Socher,” users named “Richard Socher,” stories mentioning “Richard Socher,” and hashtags.
[0102] In step 508, the search system retrieves and / or generates a first set of search results from a first data source and a second set of search results from a second data source. These search results correspond to results 431a-431n shown in FIG. 4A. Each set of search results is retrieved and / or generated for a different search application 420a-420n, and each search result set is ranked in ranked order 430 as determined by ranker 412 and parser 414.
[0103] In step 510, the search system presents, via a user interface, a first user-engageable panel including a first search result set with a first index from a first data source and a second user-engageable panel including a second search result set with a second index from a second data source. These search results may be presented in user-engageable elements 700, as shown in FIGS. 7 and 8A-8K. Exemplary UI diagrams can be seen in FIGS. 8A-8K. Each search result set generated in step 508 is displayed in an additional user-engageable element in step 510, such that each search result set 431a-431n (as shown in FIG. 4A) is generated and displayed to the user in a corresponding user-engageable element. In some embodiments, each user-engageable panel is presented in ranked order according to the ranking determined in step 504.
[0104] 6 is an exemplary logic flow diagram illustrating a customized search method based on the framework shown in FIGS. 1-4C , according to some embodiments described herein. One or more of the processes of method 600 may be implemented, at least in part, in the form of executable code stored on a non-transitory, tangible, machine-readable medium that, when executed by one or more processors, can cause the one or more processors to perform one or more of the processes. In some embodiments, method 600 corresponds to the operation of search platform module 230 (e.g., FIGS. 1-4A ) that performs a search based on user input and provides user-interactive elements that include search results.
[0105] In step 602, one or more ranked result sets are presented to the user via user-interactive elements. These results may be determined, for example, as described above with respect to FIG. 5. In some embodiments, each search app 420a-420n (e.g., FIG. 4A) ranked and analyzed by platform 410 is presented to the user via a sorted, ranked order. Each search app 420a-420n has a corresponding user-interactive element, i.e., search app 420, that allows the user to interact with the search results.
[0106] In step 604, a user interacts with one or more of search apps 420a-420n, which display results via user-interactive elements such as favorable elements 704 and unfavorable elements 706 shown in FIG. 7 . For example, if an input query includes a food such as "pumpkin pie," relevant data sources may include "All Recipes," "Food Network," or other food-related websites. The user may interact with the favorable elements 704 for "All Recipes" within user-interactive elements 700 to indicate a preference for the "All Recipes" source. The search system may then use this information to update the user's preferences to use the "All Recipes" source for other food-based input queries. The user may also interact with the unfavorable elements 706 for "Food Network" within user-interactive elements 700 to indicate a negative preference for the "Food Network" source. The search system may then use this information to update the user's preferences to avoid the "Food Network" source for other food-based input queries.
[0107] In some embodiments, when a user selection of an additional data source is received, a new search input to each data source is customized from the input query and sent to the server of the additional data source via the integrated Search App API. Search result sets from the data sources may be received and presented via user-interactive panels that display the search results, as described above and further below.
[0108] At steps 606 / 616, the user's preferences are updated based on the provided input. These user preferences may be included as user context 404 (e.g., FIG. 4A) and may tailor search results to better suit the user. Following the example above, at step 606, this may involve updating the user's preferences to reflect a greater desire to see "All Recipes" sources. Meanwhile, at step 616, this may involve updating the user's preferences to reflect a lesser desire to see "Food Networked" sources.
[0109] In some implementations, a user may directly set preferences or dislikes for data sources (e.g., see FIGS. 8H and 8J). Accordingly, the search platform may accordingly include or exclude search apps corresponding to the preferred or disliked data sources in a search (e.g., as filtered by ranker 412). In some implementations, the search platform may apply rule-based criteria to filter data sources based on the user's past activity with respect to search results from a particular data source. For example, when a user dislikes search submissions from Twitter.com, the search platform may not exclude Twitter.com from future searches. However, if the user consistently dislikes search results from Twitter.com (e.g., more than a predefined number of times per day, per week, or per percentage of all searches), the search platform may deprioritize or exclude Twitter.com from future searches.
[0110] In steps 608 / 618, the search results are updated based on the user's interaction with the system. Following the example above, in step 608, this may involve raising the position in ranked order 430 of result 431 corresponding to the "All Recipes" source (e.g., FIG. 4A). In step 616, this may involve lowering the position in ranked order 430 of result 431 corresponding to the "Food Network" source, or alternatively, may result in removing the "Food Network" source entirely from results 431a-431n displayed to the user.
[0111] In steps 610 / 620, the updated results are presented to the user. These results may be presented to the user in ranked order 430, with each result 431a-431n shown in a user-interactive element 700, as described in more detail below with respect to FIG.
[0112] In some embodiments, the user may instead interact with additional user-interactive elements to provide instructions regarding the search app 420 that is not included in the ranking order of search apps presented to the user. In such an example, the search system updates the user's preferences as described above for step 606. In step 608, the search results may be updated to increase the ranking of the search app 420 or, if the search app 420 is not already present in the search results, add the search app 128 to the search results based on input from the user-interactive elements.
[0113] Figure 7 is a simplified block diagram of an exemplary search interface implementing the customized search platform framework described in Figures 5-6 and other embodiments described herein. Figure 7 depicts user-interactive elements 700, one or more of which may be presented to a user via a user interface, each of which includes a set of search results.
[0114] The user-interactive element 700 may include source information 710 that informs the user with important or useful information about which source is providing the results 702a-702n shown in the user-interactive element 700. For example, this may be a website name indicating that the results 702a-702n are shown from a particular website related to the search input query. The user-interactive element 700 corresponds to a single search app 420, as depicted in FIG. 4A , where the first user-interactive element 700 shown to the user is the first result in ranked order 430 (e.g., result 431a), and each user-interactive element 700 shown thereafter is the next result 431 in ranked order 430.
[0115] Each user-interactive element 700 may provide one or more results 702a-702n, including web pages, social media posts, blog posts, recipes, videos, code segments, or other content relevant to the search query. Each result 702 may be user-interactive, allowing a user to visit a web page, interact directly with a social media post, comment on a blog post, read or save a recipe, watch a video, copy code, provide feedback, or otherwise interact with the content of each result 702. Each user-interactive element 700 may provide a user with the ability to indicate their preferences for a data source using an approval element 704 and a disapproval element 706, as described in more detail above with respect to FIG. 6 .
[0116] 8A-8K are exemplary search interfaces that implement the customized search platform framework described in FIGS. 5-6 and other embodiments described herein.
[0117] As seen in FIG. 8A, a customized search platform framework is utilized, allowing a user the option to perform a search and select a data source for the search. A user may search for a query such as "quasi convolutional neural network," and the customized search platform may determine that the data source "arXiv" provides the most relevant results according to the characteristics of the user query (e.g., the name of a scientific term, etc.) and prominently display the data source to the user along with a list of search results specifically provided from "arXiv." Search results from "ArXiv.org" are presented in the form of a sliding horizontal panel, so that a user may engage the panel to "slide" and browse the list of results within the panel.
[0118] As seen in FIG. 8B, for the same search query "quasi convolutional neural network," the customized search platform may determine that "Reddit" is another relevant data source (e.g., a search app) but may be ranked lower than "Arxiv.org." Thus, search results from "Reddit" may be presented in a separate slideable horizontal panel displayed below the panel for "Arxiv.org," so that a user may engage the panel to "slide" and browse the list of results within the panel.
[0119] As seen in Figure 8C, when the search query is "Richard Socher," the customized search platform may determine, according to the characteristics of this user query (e.g., a person's name, etc.), that data sources from social media such as "Twitter" provide the most relevant results and prominently display the data sources to the user along with a list of search results specifically provided from "Twitter." The search results from "Twitter" are presented in the form of a sliding horizontal panel, so that the user may engage with the panel to "slide" through and view a list of tweets from or mentioning the user "Richard Socher."
[0120] In another example, as seen in FIG. 8D, if a user enters the query "Boeuf Bourguignon," the customized search platform may pre-determine that this search term is related to food, cooking, and / or related terms, and therefore recommend search results from data sources such as "Recipes.com," "FoodNetwork," etc.
[0121] In another example, as seen in FIG. 8E, if a user enters the query "Asian Boss Girl," the customized search platform may pre-determine that this search item is a trending topic and reference social media sensations. Thus, the customized search platform may recommend search results from social media sources such as "Instagram," "Pinterest," "YouTube®," and / or other social media web pages.
[0122] In another example, as seen in Figure 8F, if a user enters the query "Squid Game," the customized search platform may pre-determine that the search term is related to a media item. Accordingly, the customized search platform may recommend search results from data sources that provide details about the media or media item.
[0123] In another example, as seen in FIG. 8G, if a user enters the query "wheels on the bus," the customized search platform may pre-determine that while the search term may be related to a media item, unlike the previous example of "Squid Game," the query "wheels on the bus" refers to an old-fashioned daycare center. Thus, the customized search platform may recommend search results from sources that provide content targeted to nursery rhymes, such as videos from YouTube, TikTok, or some other video source.
[0124] As seen in FIG. 8H, the customized search platform allows users to customize their preferred data sources. Users may choose to submit their preference or dislike for a particular data source by clicking an icon, such as a “like” or “dislike” icon, to indicate their preference or dislike. Based on the user-submitted preferences, the customized search platform may rearrange and reprioritize search results. For example, if a user selects a “like” (e.g., a good rating) for “LinkedIn®” but a “dislike” (e.g., a bad rating) for “Instagram,” when the user searches for a person's name, such as “Richard Socher,” the customized search platform may prioritize results for “Richard Socher” from “LinkedIn” and deprioritize results from “Instagram.”
[0125] 8I-8K show examples of searches performed on the customized search platform before and after preferences are set by a user. In FIG. 8I, a search is shown in which a user first enters a search query for "Jo Malone red roses," and the customized search platform may return any search results from different data sources, e.g., various shopping sites such as Nordstrom.com, Walmart.com, Macys.com, etc.
[0126] 8J shows one embodiment of how a user may set source preferences. In this example, the user sets their source preferences by selecting "Amazon" and "Instagram" as their preferred sources when the customized search platform performs a search.
[0127] In Figure 8K, the search of Figure 8I is repeated after the source preferences have been changed as seen in Figure 8J. After the user has set the source preferences, the customized search platform may predetermine that the search term "Jo Malone red rose" is related to products related to shopping. Thus, the customized search platform may prioritize search results from the shopping site "Amazon" according to the user's preferences.
[0128] This description and the accompanying drawings, which illustrate aspects, embodiments, implementations, or applications of the invention, should not be construed as limiting. Various mechanical, compositional, structural, electrical, and operational changes may be made without departing from the spirit and scope of this description and claims. In some instances, well-known circuits, structures, or techniques have not been shown or described in detail so as not to obscure the embodiments of the present disclosure. Like numbers in two or more figures represent the same or similar elements.
[0129] In this description, specific details are set forth describing some embodiments consistent with the present disclosure. Numerous details are set forth to provide a thorough understanding of the embodiments. It will be apparent to one of ordinary skill in the art that some embodiments may be practiced without some or all of these specific details. The specific embodiments disclosed herein are meant to be illustrative, but not limiting. Those skilled in the art may recognize other elements not specifically described herein that are within the scope and spirit of the present disclosure. Additionally, to avoid unnecessary repetition, one or more features shown and described in connection with one embodiment may be incorporated into other embodiments, unless otherwise specifically described or unless one or more features render the embodiment non-functional.
[0130] While exemplary embodiments have been shown and described, a wide range of modifications, variations, and substitutions are contemplated in the foregoing disclosure, and in some instances, some features of the embodiments may be employed without the corresponding use of other features. Those skilled in the art will recognize many variations, alternatives, and modifications. Accordingly, the scope of the present invention is to be limited only by the claims that follow, and it is appropriate that such claims be interpreted broadly in a manner consistent with the scope of the embodiments disclosed herein.
Claims
1. 1. A method for presenting a plurality of search results in response to a search query, comprising: receiving an input query for performing an internet search via a data interface; determining, by a server-implemented neural network, first and second data sources from which a search related to the input query will be performed based at least in part on characteristics of potential search objects from the input query, wherein data source preferences have been set by a user prior to the Internet search, and the data source preferences include at least one data source deselected by the user; submitting a first search input customized from the input query to the first data source via a first search application programming interface (API) integrated into the server; submitting a second search input customized from the input query to the second data source via a second search API integrated with the server without submitting any search input to the at least one data source; obtaining a first set of search results from a first search in the first data source and a second set of search results from a second search in the second data source without obtaining any search results from the at least one data source; causing, in a user interface, the display of a first user-interactable panel that displays the first search result set along with a first indication of the first data source, and a second user-interactable panel that displays the second search result set along with a second indication of the second data source.
2. Determining the first data source and the second data source by the neural network implemented on the server includes: generating an input sequence by concatenating the input query with a user context associated with a user that initiated the input query; generating a first relevance score for the first data source and a second relevance score for the second data source based on the input sequence using a ranking neural model; and determining that the first data source and the second data source are relevant when the first relevance score and the second relevance score are greater than a threshold.
3. The method of claim 2 , further comprising ranking the first data source and the second data source based on the first relevance score and the second relevance score.
4. 3. The method of claim 2, further comprising generating, by an analytical neural model, an index of the first search input or the second search input and the first data source or the second data source, respectively, based on the input sequence.
5. The method of claim 3 , wherein the first user-engageable panel and the second user-engageable panel are presented in ranked order according to the ranking.
6. receiving a user selection of a third data source via the data interface; submitting a third search input customized from the input query to the third data source via a third search API integrated with the server; obtaining a third set of search results from the third data source; The method of claim 1 , further comprising: presenting, via the user interface, a third user-interactable panel displaying the third set of search results.
7. receiving, via the data interface, a user indication that the second data source is unfavorable; and The method of claim 1 , further comprising: removing the second user-interactable panel from the user interface.
8. The user context is User profile information, Preferences or dislikes set by users of one or more data sources; and The method of claim 2 , including any combination of a user's past activity that perceived search results from a particular data source as good or bad.
9. The method of claim 2 , wherein the input sequence further comprises supplemental context comprising contextual information from one or more data sources related to the input query.
10. receiving additional contextual information related to the input query from the first data source or the second data source via the first search API or the second search API; 5. The method of claim 4, further comprising: determining which portion of the input query corresponds to the first search input to the first search API or the second search input to the second search API.
11. 1. A system for presenting a plurality of search results in response to a search query, comprising: a communications interface for receiving an input query for performing an internet search; a memory storing a plurality of processor-executable instructions; a processor coupled to the memory and the communication interface, the processor executing the plurality of processor-executable instructions to determining, by a server-implemented neural network, first and second data sources from which a search related to the input query will be performed based at least in part on characteristics of potential search objects from the input query, wherein data source preferences have been set by a user prior to the Internet search, and the data source preferences include at least one data source deselected by the user; submitting a first search input customized from the input query to the first data source via a first search application programming interface (API) integrated into the server; submitting a second search input customized from the input query to the second data source via a second search API integrated with the server without submitting any search input to the at least one data source; obtaining a first set of search results from a first search in the first data source and a second set of search results from a second search in the second data source without obtaining any search results from the at least one data source; and causing, in a user interface, the display of a first user-interactable panel displaying the first search result set along with a first indication of the first data source, and a second user-interactable panel displaying the second search result set along with a second indication of the second data source.
12. 1. A non-transitory computer-readable medium storing instructions that, when executed by a computing device, cause the computing device to perform operations of presenting a plurality of search results in response to a search query, the operations comprising: receiving an input query for performing an internet search via a data interface; determining, by a server-implemented neural network, first and second data sources from which a search related to the input query will be performed based at least in part on characteristics of potential search objects from the input query, wherein data source preferences have been set by a user prior to the Internet search, and the data source preferences include at least one data source deselected by the user; submitting a first search input customized from the input query to the first data source via a first search application programming interface (API) integrated into the server; submitting a second search input customized from the input query to the second data source via a second search API integrated with the server without submitting any search input to the at least one data source; obtaining a first set of search results from a first search in the first data source and a second set of search results from a second search in the second data source without obtaining any search results from the at least one data source; and causing, in a user interface, the display of a first user-interactive panel that displays the first search result set along with a first indication of the first data source, and a second user-interactive panel that displays the second search result set along with a second indication of the second data source.
Citation Information
Patent Citations
Automatic information source selector
JP1993314186A
Merge search results
JP2012528406A
Methods and apparatus for internet searching
JP2013537332A
Presenting anticipated user search query results prompted by a trigger
US20180349804A1