Conventionally, a user receives query formulation assistance from a local application or a remote server that provides cached terms based on queries previously received by conventional search engines from the user or other users that submit queries to the conventional search engines.
Conventional search engines receive queries from users to locate web pages having terms that match the terms included in the received queries. Conventional search engines assist a user with query formulation by caching terms sent to the conventional search engines from all users of the conventional search engines on servers that are remote from the users and displaying one or more of the cached terms to a user that is entering a user query for the conventional search engines. The user selects any one of the cached terms to complete the query and receives a listing of web pages having terms that match the terms included in the user query.
Embodiments of the invention relate to systems, methods, and computer-readable media for presenting and generating lateral concepts in response to a query from a user. The lateral concepts are presented in addition to search results that match the user query. A search engine receives a query from a client device. In turn, storage is searched to locate a match to the query. If a match exists, content corresponding to the query is retrieved by a lateral concept generator from the storage. In turn, categories associated with the content are identified by the lateral concept generator. The lateral concept generator also obtains additional content associated with each category. A comparison between the retrieved content and the additional content is performed by the lateral concept generator to assign scores to each identified category. The lateral concept generator selects several categories based on scores assigned to content corresponding to each category and returns the retrieved content and several categories as lateral concepts. If a match does not exist, the lateral concept generator compares content stored in the storage to the query to create a content collection that is used to identify categories and calculate scores based on similarity between the query and content in the content collection.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in isolation to determine the scope of the claimed subject matter.
Illustrative embodiments of the invention are described in detail below with reference to the attached drawing figures, which are incorporated by reference herein, wherein:
This patent describes the subject matter for patenting with specificity to meet statutory requirements. However, the description itself is not intended to limit the scope of this patent. Rather, the inventors have contemplated that the claimed subject matter might also be embodied in other ways, to include different steps or combinations of steps similar to the ones described in this patent, in conjunction with other present or future technologies. Moreover, although the terms “step” and “block” may be used herein to connote different elements of methods employed, the terms should not be interpreted as implying any particular order among or between various steps herein disclosed unless and except when the order of individual steps is explicitly described.
As used herein, the term “lateral concept” refers to words or phrases that represent orthogonal topics of a query.
As used herein the term “component” refers to any combination of hardware, firmware, and software.
Embodiments of the invention provide lateral concepts that allow a user to navigate a large collection of content having structured data, semistructured data, and unstructured data. The computer system generates lateral concepts by processing the collection of content matching a query provided by the user and selecting categories for the content. The lateral concepts comprise a subset of the selected categories. The lateral concepts are presented to user along with search results match the query. The lateral concepts allow the search engine to provide concepts that are orthogonal to a query or content corresponding to the query. In turn, the user may select one of the lateral concepts to search the combination of structured, unstructured, and semistructured data for content corresponding to the lateral concepts. In an embodiment, the lateral concepts may be stored in an index with a pointer to one or more queries received from a user. Accordingly, the lateral concepts may be returned in response to subsequent queries—similar to previous queries—received at a search engine included in the computer system without processing the content.
For instance, a search engine may receive a query for Seattle Space Needle from a user. The search engine processes the query to identify lateral concepts and search results. The lateral concepts may be selected from the structure of metadata stored with content for Seattle Space Needle. Or the lateral concepts may be selected from feature vectors generated by parsing search results associated with the user query.
The storage structure may include metadata, e.g., content attributes for the Seattle Space Needle. The Seattle Space Needle content attributes may include a tower attribute, a Seattle attraction attribute, and an architecture attribute. The tower attribute may include data that specifies the name and height of the Seattle Space Needle and other towers, such as Taipei 101, Empire State Building, Burj, and Shanghai World Financial Center. The Seattle attraction attribute may include data for the name and location of other attractions in Seattle, such as Seattle Space Needle, Pike Place Market, Seattle Art Museum, and Capitol Hill. The architecture attribute may include data for the architecture type, modern, ancient, etc., for each tower included in the tower attribute. Any of the Seattle Space Needle content attributes may be returned as a lateral concept by the search engine.
Alternatively, the search results may be processed by a computer system to generate lateral concepts that are returned with the search results. The content associated with the search results is parsed to identify feature vectors. The feature vectors include a category element that is associated with the content. The feature vectors are used to compare the search results and calculate a similarity score between the search results or between the search results and the query. The categories in the feature vectors are selected by the computer system based on the similarity score and returned as lateral concepts in response to the user query.
The computer system that generates the lateral concepts may include storage devices, a search engine, and additional computing devices. The search engine receives queries from the user and returns results that include content and lateral concepts. The storage is configured to store the content and the lateral concepts. In some embodiments, the content includes a collection of structured, unstructured, and semi-structured data.
The computing device 100 typically includes a variety of computer-readable media. By way of example, and not limitation, computer-readable media may comprise Random Access Memory (RAM); Read Only Memory (ROM); Electronically Erasable Programmable Read Only Memory (EEPROM); flash memory or other memory technologies; CDROM, digital versatile disks (DVD) or other optical or holographic media; magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to encode desired information and be accessed by the computing device 100. Embodiments of the invention may be implemented using computer code or machine-useable instructions, including computer-executable instructions such as program modules, being executed by a computing device 100, such as a personal data assistant or other handheld device. Generally, program modules including routines, programs, objects, modules, data structures, and the like, refer to code that performs particular tasks or implements particular abstract data types. Embodiments of the invention may be practiced in a variety of system configurations, including distributed computing environments where tasks are performed by remote-processing devices that are linked through a communications network.
The computing device 100 includes a bus 110 that directly or indirectly couples the following components: a memory 112, one or more processors 114, one or more presentation modules 116, input/output (I/O) ports 118, I/O components 120, and an illustrative power supply 122. The bus 110 represents what may be one or more busses (such as an address bus, data bus, or combination thereof). Although the various components of
The memory 112 includes computer-readable media and computer-storage media in the form of volatile and/or nonvolatile memory. The memory may be removable, nonremovable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical-disc drives, etc. The computing device 100 includes one or more processors 114 that read data from various entities such as the memory 112 or I/O components 120. The presentation components 116 present data indications to a user or other device. Exemplary presentation components 116 include a display device, speaker, printer, vibrating module, and the like. The I/O ports 118 allow the computing device 100 to be physically and logically coupled to other devices including the I/O components 120, some of which may be built in. Illustrative I/O components 120 include a microphone, joystick, game pad, satellite dish, scanner, printer, wireless device, and the like.
A computer system that generates lateral concepts includes a search engine, storage, and a lateral concept generator. The lateral concepts may be stored in storage along with content and queries that are related to the content. The search engine receives the query and transmits lateral concepts and results that include content corresponding to the query to a client device. The client device displays the results along with a list of at least some of the lateral concepts.
The client device 210 is connected to the search engine 230 via network 220. The client device 210 allows a user to enter queries. The client device 210 transmits the queries to the search engine 230. In turn, the client device 210 receives results that include lateral concepts and displays the results and lateral concepts to the users. In some embodiments, the client device 210 may be any computing device that is capable of web accessibility. As such, the client device 210 might take on a variety of forms, such as a personal computer (PC), a laptop computer, a mobile phone, a personal digital assistance (PDA), a server, a CD player, an MP3 player, a video player, a handheld communications device, a workstation, any combination of these delineated devices, or any other device that is capable of web accessibility.
The network 220 connects the client device 210, search engine 230, lateral concept generator 240, and storage 250. The network 220 may be wired, wireless, or both. The network 220 may include multiple networks, or a network of networks. For example, the network 220 may include one or more wide area networks (WANs), one or more local area networks (LANs), one or more public networks, such as the Internet, or one or more private networks. In a wireless network, components such as a base station, a communications tower, or even access points (as well as other components) may provide wireless connectivity in some embodiments. Although single components are illustrated for the sake of clarity, one skilled in the art will appreciate that the network 220 may enable communication between any number of client devices 210.
The search engine 230 is a server computer that provides results for queries received from client devices 210. In some embodiments, the search engine 230 provides lateral concepts in response to the queries. The search engine 230 may return some number, e.g., the top three, lateral concepts for each query received from the client devices 210. The search engine 230 may receive the lateral concepts from the lateral concept generator 240 or storage 250.
The lateral concept generator 240 generates lateral concepts in response to a query. In one embodiment, the lateral concept generator 240 includes an initial processing component 242, a similarity engine 244, and an indexing engine 246. The lateral concept generator 240 receives categories and content from storage 250. In turn, the content and categories are processed by one or more components 242, 244, and 246 of the lateral concept generator 240.
The initial processing component 242 is configured to locate content that matches the query received by the search engine 230, to analyze the content, and extract information using one or more data processing methods. In this regard, the initial processing component 242 may be used to analyze content and extract information from the three types of data: unstructured data, structured data, and semistructured data. Unstructured data may comprise documents with a series of text lines. Documents that are included in the category of unstructured data may have little or no metadata. Structured data, on the other hand, may comprise a traditional database where information is structured and referenced. Semistructured data may comprise a document such as a research paper or a Security and Exchange Commission filing, where part of the document comprises lines of text and part of the document comprises tables and graphs used for illustration. In the case of semistructured data, the structured components of a document may be analyzed as structured data and the unstructured components of the documents may be analyzed as unstructured data.
Feature vectors are used to compare content matching the query. The feature vectors may include the following elements: a group of words, a concept, and score. The group of words represent a summary or sampling of the content. The concept categorizes the content. And the score contains a similarity measure for the content and additional content matching the query. For instance, a feature vector for Space Needle content may include a group of words “monument built for world fair” a concept “tower” and a score “null.” The concepts element of the feature vectors may be selected as the lateral concept based on the score assigned to the feature vector.
The values for the elements of the feature vector may be generated manually or automatically. A subject matter expert may manually populate the elements of the feature vector. Alternatively, the elements of the feature vector may be populated automatically by the lateral concept generator 240.
The initial processing component 242 may include a lexical analysis, a linguistic analysis, an entity extraction analysis, and attribute extraction analysis. In an embodiment, the initial processing component 242 creates feature vectors for the content in storage 250. The initial processing component 242 automatically populates the words and concepts for feature vectors. In certain embodiments, the initial processing component 242 selects the concepts from the ontologies 252 in storage 250, or from the words extracted from the content.
The similarity engine 244 calculates a similarity score that populates the score element for the feature vector. The similarity engine 244 is a component of the lateral concept generator 240. The similarity engine calculates a similarity score that is stored in the feature vector for the content retrieved from storage 250. The score may represent similarity to other content, in storage 250, matching the query or similarity to the query received by the search engine 230. In turn, the similarity score is used to select several categories from concepts identified in the feature vectors associated with the content matching the query. The selected categories are returned to the search engine 230 as lateral concepts.
In one embodiment, the similarity engine 244 may calculate similarity between content matching the query using the feature vectors. The similarity score may be calculated based on distance between the feature vectors using the Pythagorean theorem for multidimensional vectors. For instance, when the storage 250 includes content matching the query, the lateral concept generator 240 may return several categories based on scores assigned to content within each of the several categories. The lateral concept generator 240 obtains the matching content and corresponding categories from storage 250. In turn, the lateral concept generator 240 generates the feature vector for the matching content. Also, the lateral concept generator 240 generates a content collection using the categories associated with the matching content. Each content in the content collection is processed by the lateral concept generator 240 to create feature vectors. In turn, each feature vector for the content collection is compared to the feature vector for the matching content to generate a similarity score. In turn, the feature vectors for the content collection are updated with similarity scores calculated by the similarity engine 244. The similarity engine 244 may select a number of feature vectors with high similarity scores in each category, average the scores, and assign the category the averaged score. In an embodiment, the similarity engine 244 selects three feature vectors within each category assigned the highest score to calculate the average score that is assigned to the categories. Thus, as an example, the top five categories with the highest scores may be returned to the search engine 230 as lateral concepts.
In another embodiment, the similarity engine 244 may calculate similarity between content and the query. The similarity score may be calculated based on distance between the feature vectors using the Pythagorean theorem for multidimensional vectors. For instance, when the storage 250 does not include content matching the query, the lateral concept generator 240 may return several categories based on scores assigned to content within each of the several categories. The lateral concept generator 240 obtains a predetermined number of content related to the query and corresponding categories from storage 250. In one embodiment, the lateral concept generator obtains fifty items of content from storage 250 having a high query similarity score. In turn, the lateral concept generator 240 generates a feature vector for the query. Also, the lateral concept generator 240 retrieves a collection of content using the categories associated with the obtained content. Content in the collection of content is processed by the lateral concept generator 240 to create feature vectors. In turn, the feature vectors for content in the collection of content is compared to the feature vector for the query to generate a similarity score. In turn, the feature vectors for the content collection are updated with similarity scores calculated by the similarity engine 244. The similarity engine 244 may select a number of feature vectors with high similarity scores in each category, average the scores, and assign the category the averaged score. In an embodiment, the similarity engine 244 selects three feature vectors within each category assigned the highest score to calculate the average score that is assigned to the categories. In turn, the top five categories with the highest scores are returned to the search engine as lateral concepts.
The similarity engine 244 may use word frequency to calculate a query similarity score for the content in storage 250. The query similarity score (Sq) is calculated by the similarity engine when a match to the query is not stored in the storage 250. Sq=√{square root over (freq(w)xlog(docfreq(w)))}{square root over (freq(w)xlog(docfreq(w)))}, where freq(w) is the frequency of the query (w) in the storage and docfreq is the frequency of the query within the content that is selected for comparison. The content assigned the largest Sq are collected by the similarity engine 244, and the top fifty documents are used to generate the lateral concepts.
The indexing engine 246 is an optional component of the lateral concept generator 240. The indexing engine 246 receives the lateral concepts from the similarity engine 244 and stores the lateral concepts in index 254 along with the query that generates the lateral concept. In turn, a subsequent query similar to a previously processed query may bypass the lateral concept generator 240 and obtain the lateral concepts stored in the index 254.
The storage 250 provides content and previously generated lateral concepts to the search engine 230. The storage 250 stores content, ontologies 252, and an index 254. In certain embodiments, the storage 250 also includes one or more data stores, such as relational and/or flat file databases and the like, that store a subject, object, and predicate for each content. The index 254 references content along with previously generated lateral concepts. The content may include structured, semistructured, and unstructured data. In some embodiments, the content may include video, audio, documents, tables, and images having attributes that are stored in the flat file databases. The computer system 200 may algorithmically generate the lateral concepts, or content attributes may be used as lateral concepts.
For instance, content attributes for the Seattle Space Needle or of a particular stock may be stored in storage 250. The content attributes may be provided as lateral concepts in response to a search query for the Seattle Space Needle or the particular stock, respectively. The Seattle Space Needle content attributes may include a tower attribute, a Seattle attraction attribute, and an architecture attribute. The tower attribute may include data that specifies the name and height of the Seattle Space Needle and other towers, such as Taipei 101, Empire State Building, Burj, and Shanghai World Financial Center. The Seattle attraction attribute may include data for the name and location of other attractions in Seattle, such as Seattle Space Needle, Pike Place Market, Seattle Art Museum, and Capitol Hill. The architecture attribute may include data for the architecture type, modern, ancient, etc., for each tower included in the tower attribute. Any of the Seattle Space Needle content attributes may be returned as a lateral concept by the computer system 200.
The particular stock may also include stock content attributes. For instance, MSFT content attributes may include a type attribute, an industry attribute, and a profit to earnings (PE) attribute. The type attribute includes data for business type, e.g., corporation, company, incorporated, etc. The industry attribute, may specify the industry, e.g., food, entertainment, software, etc., and the PE attribute includes the value of the PE. Any of the stock content attributes may be returned as a lateral concept by the computer system 200.
The lateral concepts that are generated algorithmically by the computer system 200 may be stored in the index 254. In turn, subsequent queries received by the search engine 230 that match feature vectors in storage 250 may be responded to, in certain embodiments, with the lateral concepts stored in the index 254. For a given query, the index 254 may store several lateral concepts. Accordingly, the search engine 230 may access the index 254 to obtain a list of lateral concepts. The lateral concepts enable a user to navigate content in the storage 250.
The ontologies 252 include words or phrases that correspond to content in storage 250. The categories associated with content in storage 250 may be selected from multiple ontologies 252. Each ontology 252 includes a taxonomy for a domain and the relationship between words or phrases in the domain. The taxonomy specifies the relationship between the words or phrases in a domain. The domains may include medicine, art, computers, etc. In turn, the categories associated with the content may be assigned a score by the lateral concept generator 240 based on similarity. In one embodiment, the lateral concept generator 240 calculates the score based on similarity to content obtained in response to the query. In another embodiment, the lateral concept generator 240 calculates the score based on similarity to the query. The lateral concept generator 240 selects several categories as lateral concepts based on the score.
In some embodiments, one or more lateral concepts stored in an index are transmitted to a client device for presentation to a user in response to a query from the user. Alternatively, the lateral concepts may be dynamically generated based on the query received from the user. The computer system may execute at least two computer-implemented methods for dynamically generating lateral concepts. In a first embodiment, the lateral concepts are selected based on scores between feature vectors of content matching the query and other content in storage.
In step 320, the computer system receives a user query. In turn, the computer system obtains content that corresponds to the user query from storage, in step 330. In step 340, the computer system identifies categories associated with the obtained content corresponding to the user query. In one embodiment, the categories include phrases in one or more ontologies. In another embodiment, the categories comprise attributes of the obtained content corresponding to the user query. In turn, the computer system retrieves, from storage a collection of content that corresponds to each identified category, in step 350.
In step 360, the computer system selects several identified categories as lateral concepts based on scores assigned to content in the collection of content. In one embodiment, the lateral concepts may include orthogonal concepts. The lateral concepts may be stored in the storage of the computer system.
In certain embodiments, the content is represented as feature vectors. And the score is assigned to the content based on similarity between feature vectors. The computer system displays the lateral concepts to the user that provided the user query. Also, content displayed with the lateral concepts may be filtered by the computer system based on the similarity score assigned to the content. In an embodiment, the computer system displays the top three lateral concepts.
The computer system may select, in some embodiments, orthogonal concepts by identifying the normal to a plane corresponding to the feature vector of the obtained content. In turn, feature vectors for the collection of content that create planes, which are parallel to a plane created by the normal, are processed by the computer system to obtain categories of the content associated with those feature vectors. In step 370, several of these categories may be returned as lateral concepts based on a score assigned to the content within the categories. The method terminates in step 380.
As mentioned above, the computer system may execute at least two computer-implemented methods for dynamically generating lateral concepts. In a second embodiment, the lateral concepts are selected based on scores between feature vectors for the query and content in storage. The computer system may execute this method when the storage does not contain a match to the query. In some embodiments, a match is determined without using stems for the terms included in the query. Thus, the storage of the computer system may include other matches that are based on the stems of the terms included in the query. These other matches may be used to generate the lateral concepts.
In step 420, the computer system receives a user query. In step 430, the computer system calculates similarity between content in storage and the user query. In step 440, the computer system creates a collection of content having a predetermined number of content similar to the user query. In turn, the computer system identifies each category that corresponds to content in the collection of content, in step 450. In step 460, the computer system selects several identified categories as lateral concepts based on scores assigned to content in the collection of content.
In certain embodiments, the query and content are represented as feature vectors. And the score is assigned to the content based on similarity between feature vectors for the query and content. The computer system displays the lateral concepts to the user that provided the user query. Also, content displayed with the lateral concepts may be filtered by the computer system based on the similarity score assigned to the content. In an embodiment, the computer system displays the top three lateral concepts. In one embodiment, orthogonal concepts may be included in the lateral concepts. The orthogonal concepts are selected by identifying the normal to a plane corresponding to the feature vector of the query. In turn, feature vectors for the collection of content that create planes, which are parallel to a plane created by the normal, are processed by the computer system to obtain categories of the content associated with those feature vectors. In step 470, several of these categories may be returned as lateral concepts based on a score assigned to the content within the categories. The method terminates in step 480.
In certain embodiments, the selected lateral concepts are displayed in a graphical user interface provided by a search engine. The lateral concepts are provided along with the search results that match the user query received by the search engine. The user may select the lateral concepts to issue queries to the search engine and retrieve additional content corresponding to the selected lateral concepts.
The graphical user interface 500 is displayed in response to a user query entered in the search text box 510. The user query is transmitted to the search engine after the user initiates the search. The search engine responds with a listing of results and the results are displayed in the search results region 520. The search engine also responds with lateral concepts. The lateral concepts are displayed in the lateral concepts regions 530. If a user selects a lateral concept from the lateral concepts regions 530, search results relevant to the selected lateral concept are displayed in the search results region 520.
In summary, lateral concepts allow a user to traverse unstructured, structured, and semistructured content using information derived from the content or the storage structure of the computer system storing the unstructured, structured, and semistructured content. A user may send a query to a search engine, which returns a number of results. In addition the search engine may also provide lateral concepts. The lateral concepts may correspond to one or more categories associated with content included in the search results. When the user clicks on the lateral concepts, the results are updated to include additional content associated with the lateral concepts.
Many different arrangements of the various components depicted, as well as components not shown, are possible without departing from the spirit and scope of the present invention. Embodiments of the present invention have been described with the intent to be illustrative rather than restrictive. It is understood that certain features and subcombinations are of utility and may be employed without reference to other features and subcombinations and are contemplated within the scope of the claims. Not all steps listed in the various figures need be carried out in the specific order described.
This is a continuation of U.S. application Ser. No. 12/700,980, Attorney Docket No. 328616.01/MFCP.153202, entitled “Generating and Presenting Lateral Concepts,” filed on Feb. 5, 2010, which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 12700980 | Feb 2010 | US |
Child | 14478900 | US |