Patent Publication Number: US-11023551-B2

Title: Document processing based on proxy logs

Description:
BACKGROUND 
     The universal use of digital computers in almost every walk of life has lead to generation of immense volumes of data. As a result, complex database management systems are developed to store and retrieve information when requested by users. In addition to maintaining and retrieving information, a database needs to be able to allow users to share the retrieved information. Generally, users may not require long, detailed data sheets that lists hundreds of data rows retrieved from the database. Rather, the users will require aggregated data that conveys the most relevant information for their decision making. Accordingly, many enterprise database systems include tools to generate informative documents that collate data from various databases and present it in a coherent manner as reports that help users to analyze and understand complex data. 
     Information regarding a subject can be presented in a document in an organized manner through creative use of tables, infographics, images or combinations thereof. Informative documents such as reports may include text, images, numeric or alpha-numeric data. Informative documents or reports can obtain their data from various sources such as flat files, comma separated values (CSV) files, spread sheets, databases and the like. Reports are extensively used for summarizing or identifying and displaying trends derived from the data and or answer specific questions related to one or more entities whose data may be recorded in the databases. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       Features of the present disclosure are illustrated by way of examples shown in the following figures. In the following figures, like numerals indicate like elements, in which: 
         FIG. 1  is a block diagram of an information request processor in accordance with examples disclosed herein. 
         FIG. 2  shows a block diagram of a search behavior analyzer in accordance with the examples disclosed herein. 
         FIG. 3  shows a block diagram of a search association mapper in accordance with the examples disclosed herein. 
         FIG. 4  shows a diagram of some examples of trained Information Extraction (IE) models that can be employed for identifying various entities/search terms. 
         FIG. 5  is a flowchart that details a method of responding to an information request in accordance with the examples disclosed herein. 
         FIG. 6  is a flowchart that details a method of automatically generating a response to the information request in accordance with examples disclosed herein. 
         FIG. 7  is a flowchart that details a method of identifying successful search queries in accordance with the examples disclosed herein. 
         FIG. 8  is a flowchart that details a method of extracting data from the output of the search behavior analyzer in accordance with the examples disclosed herein. 
         FIG. 9  is a block diagram that details an example of a computer system that may be used to implement the information request processor. 
     
    
    
     DETAILED DESCRIPTION 
     For simplicity and illustrative purposes, the present disclosure is described by referring to examples thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be readily apparent however that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure the present disclosure. Throughout the present disclosure, the terms “a” and “an” are intended to denote at least one of a particular element. As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on. 
     According to one or more examples described herein, an information request processing system that receives an information request, identifies prior reports relevant to the information request, extracts portions of browsing history that were generated during the creation of the prior reports and provides for display as knowledge nuggets, data extracted from the proxy server logs and the prior reports is disclosed. The knowledge nuggets may include but are not limited to the search queries used for generating the prior reports, information sources such as the websites on which the search queries were executed and the prior reports. The information request processing system also generates associations between the search terms from the portions of the browsing history and entities in the prior reports. In an example, the knowledge nuggets thus displayed are validated and search queries may be rephrased to obtain a response or report containing the information that was initially sought in the information request. In an example, a report responsive to the information request may also be automatically generated based on correlation of the information request with the search queries extracted from the proxy server logs. 
     A search behavior analyzer is included in the information request processor. The search behavior analyzer is configured to access a plurality of data sources and select the prior reports from a data source of prior reports and the portions of the browsing history from the proxy server logs. The information request is initially processed to identify a primary entity and one or more informational items. The primary entity may be a company, a person, an organization, a product, a place and the like about which the information is initially sought by the information request. The one or more informational items may include attributes of the primary entity or particular data regarding the primary entity that is sought in the information request. Based at least on the primary entity, one or more domains associated with the information request are identified wherein the domains classify the information request into categories that may be predefined within the information request processor. The domains may also provide a basis of categorization of prior reports in a data store of previously generated reports. Accordingly, the prior reports that are relevant to the information request are selected based on the domains of the information request. Portions of the browsing history that were generated during the creation of the selected prior reports by one or more users are extracted from proxy server logs. The proxy server logs may record the various online activities of users browsing the internet. The proxy server logs can include the websites accessed by the users, the search queries and the search terms used in the search queries by the users, the results obtained in response to the search queries and the like. The portions of browsing history may be identified based on creation dates of the prior reports, IDs of the users who worked on the prior reports, entities included in the prior reports and the like. The prior reports and the portions of the browsing history are parsed and tokenized. 
     A search association mapper processes the tokens from the search behavior analyzer to establish associations between the entities extracted from the reports and the search terms obtained from the portions of browsing history. Trained information extraction (IE) models may be employed for extracting the entities and the search terms from the output of the search behavior analyzer. In addition, the information regarding the report structures that includes sections and subsections of the prior reports can be obtained from a data source that includes knowledge of the various domains. Natural Language Processing (NLP) techniques such as pattern matching or identifying synonyms using NLP data sources such as dictionaries or domain-specific ontologies may be employed to establish associations between the entities and the search terms. Based on the associations, successful search terms and search queries that provided information included in the prior reports can be identified. The information sources such as the websites that provided the information for the creation of the reports are also identified. 
     A result generator may display the successful search queries, search terms and the prior reports as knowledge nuggets on one or more graphical user interfaces (GUIs) associated with the information request processor. The result generator may be further configured to receive user input validating the associations established by the search association mapper and/or modifying or rephrasing the search queries that are displayed. In an example the rephrasing of the search queries can include replacing an entity or search term of a search query with the primary entity or a different search term and selecting an information source such as a website to execute the rephrased search query. The rephrased search query is executed on a selected information source to generate a response that may include a report providing the information sought in the information request. 
     In an example, the result generator may determine if generation of the response to the information request involves a simple substitution of the primary entity to a search term in at least one of the successful search queries. If yes, a new query is generated with the primary entity substituted for a corresponding search term in the at least one search query and the new query is executed on a selected information source. In an example, the new query can be executed on the same information source on which the at least one search query was previously executed. The results obtained from the new query may be used in generating the report. The result generator may have certain default templates associated with the various domains based on the informational items that are likely to be associated with the entities of the domains. Using the primary entity and the informational items in the information request, a default template of the domain corresponding to the primary entity may be selected for the automatic generation of the report. 
     The information request processor as disclosed herein enables machines to intelligently identify relevant search queries and/or information sources for a given information request and to generate the reports based on execution of the search queries on the information sources. Typically, analysts who obtain details regarding entities such as suppliers with respect to some specific objectives formulate the search queries, select the appropriate information sources and run the search queries on the information sources such as GOOGLE or other domain-specific websites. As a result, the information collection process is rather slow and does not confirm to consistent quality metrics as the quality of the information collected in typical information collection processes depends on the expertise and talent of the analyst who is gathering the information. Currently no solution exists that receives an entity id and informational items and generates an accurate report based on similar prior endeavors. The information request processor provides a technical improvement in that it enables intelligent selection of search queries and data sources in addition to automatic creation of the reports. The information request processor therefore not only improves consistency in the report quality but also enables faster and more accurate execution of the report generation procedures. 
       FIG. 1  is a block diagram of an information request processor  100  in accordance with examples disclosed herein. The information request processor  100  is configured to process an information request  110  received from a user, extract information relevant to the information request  110  from one or more of a plurality of data sources  130  and produce a response  120  relevant to the information request  110 . The information request processor  100  includes a search behavior analyzer  102 , a search association mapper  104 , one or more trained information extraction (IE) models  106  and a result generator  108 . The information request processor  100  may be associated with one or more GUIs that enable receiving information requests from users and enabling display of the responses or results generated for the information requests. 
     The information request  110  may be received via one of the GUIs  140  and can include a primary entity  112  and one or more informational items  114 . The primary entity  112  can be the subject of the information request  110  while the informational items  114  can include particular items of information regarding the subject that are being requested. For example, if the information request  110  relates to number of employees at an organization, the primary entity  112  may be identified by the name of the organization and the informational items may include the terms “number of employees” or other equivalent phrases such as “staff strength” and the like. The information request  110  may be provided to the information request processor  100  via textual, voice or other interfaces. 
     The plurality of data sources  130  can include proxy server logs  132  that store browsing history collected by monitoring and capturing or recording activities from computers of individual users who previously worked on generating informational documents including reports as responses to prior information requests. Proxy servers are servers that act as intermediaries between one or more client devices seeking access to network resources such as other servers on the network such as the internet. Proxy servers can also log the various client device interactions which can be helpful for trouble shooting. Accordingly, when a user is generating an informational document such as a report in response to an information request, the various data sources accessed by the user, the search queries executed by the user and the search terms employed by the user and the results received by the user in response to the search queries are recorded in the proxy server logs. The proxy server logs  132  can include a collection of such logs from a plurality of proxy servers employed by many users who may be generating such reports. 
     The plurality of data sources  130  also include a data store of domain knowledge  134 . The domain knowledge  134  may contain for example, structure of a report including the sections and sub-sections. For example, information requests for a domain may typically involve similar kind of information for various entities associated with the domain. Therefore, the reports generated for the domain may follow a standardized structure whereas the structures for reports from different domains may differ. Furthermore, the domain knowledge  134  may include parameters that are to be determined for an entity associated with the domain. For example, the geo of operations for an entity in the logistics domain may carry higher weight when compared to an entity in the domain of cloud service providers. In the latter case, the geo of operations carries lesser weight while the physical location of the cloud servers may carry higher weight. The plurality of data sources  130  may also include a data store with prior reports  136  which were generated for the various information requests. Therefore, the browsing history that was recorded during the process of creation of the reports in the data store of prior reports  136  is stored in the proxy server logs  132 . In an example, the prior reports within the data store of prior reports  136  can be categorized into domains, based on the type of organizations or industries the primary entities of those prior reports are associated with. For example, a report regarding a primary entity in hardware manufacturing may be associated with a broader ‘computer industry’ domain or a more focused ‘hardware manufacturer’ domain. Similarly a report on a charitable institution may be categorized as ‘non-profit’ domain. Another data source for NLP  138  is also accessible by the information request processor  100  for linguistic analysis as detailed further herein. 
     The search behavior analyzer  102  analyzes the terms in the information request  110  to identify one or more of the data sources  130  that include information or that enable obtaining information responsive to the information request  110 . The information request  110  is initially processed to identify the primary entity  112  and the informational items  114  provided to the information request processor  100 . In an example, the primary entity  112  can include the name or other unique identifier of an organization (such as a ticker symbol) and the like. The search behavior analyzer  102  initially identifies a domain associated with the primary entity  112 . Upon categorizing the primary entity  112  into a domain, the search behavior analyzer  102  selects the prior reports associated with the domain from the data store of prior reports  214  for further analysis. The search behavior analyzer  102  also accesses from the proxy server logs  132 , the corresponding portions of browsing history that was created during the generation of the selected prior reports. 
     The selected prior reports and the browsing history are further analyzed in accordance with methodologies detailed herein to identify successful search queries and the search terms in the search queries that were used to obtain the information for the selected prior reports. In addition, the data sources such as the internet websites that were visited to obtain the information are also identified from the proxy server logs  132 . Furthermore, the knowledge such as the structure information of the selected prior reports is also obtained from the domain knowledge  134 . 
     A search association mapper  104  correlates the information obtained from each of the data sources  130  to establish meaningful associations. Associations can be therefore established between the search queries, search terms and data sources extracted from the proxy server logs  132  to the primary entities and the informational items extracted from the selected prior reports and the structure information etc obtained from the domain knowledge  134 . The portions of the browsing history and the selected prior reports can be parsed and tokenized and the textual tokens thus generated can be compared and matched up to establish the necessary correlations. Trained IE models  106  can be employed to extract various search terms/entities from various sources including internet search results such as those included in the portions of the browsing history. Non-limiting examples of search terms can include names, contact information, locations, attributes such as financial information about an organization, staff strength, ratings, competitors of the organization and the like. In addition, NLP data source  138  is also coupled to the information request processor  100  that enables the search association mapper  104  to identify synonyms, acronyms and the like. For example, for ‘headquarters’ a synonym like ‘main office’ may be identified or a synonym like ‘major players’ can be identified for ‘competitors’. 
     NLP techniques such as entity recognition, text matching and the like can be employed for matching the search terms extracted from the portions of the browsing history to the corresponding primary entities and informational items extracted from the selected prior reports. In an example, terms, synonyms, antonyms and other linguistic information from the NLP data source  138  can be employed for establishing the search associations. For example, for ‘headquarters information’ ‘main office’ may be used alternately or for ‘competitors’ a term of ‘main players’ may be used alternately. Such variation in terminology of the proxy server logs  132  and prior reports may be resolved by the NLP data source  138 . Based on the matches thus established, the data sources that provided the necessary information for generating the selected prior reports may also be determined. The Universal Resource Locators (URLs) are thus mapped to the primary entities extracted from the prior reports. For example, a search query for the employee count of a company can be mapped to the corresponding report including the head count of the company and a search query, a query response from a particular website that provided the same number as included in the prior report may be determined as the successful query and the website recognized as an accurate information source for the head count of that company. 
     The result generator  108  presents the information or knowledge nuggets produced by the search association mapper  104  together with the domain knowledge including the report structure to a reviewer in a user-editable format. The reviewer may provide further input  116  validating the extracted information. The reviewer may further provide user edits rephrasing the successful search queries. For example, the reviewer may confirm the automated inferences made by the search association mapper  104  or the reviewer may tweak a successful search query by including the primary entity  112  and the other informational items  114  and execute it on one or more selected information sources to obtain the requisite information for generating a response  120  including a report with the data relevant to the information request  110 . The reviewer may select a prior report as a template or may design the structure for the report anew. In an example, one of the GUIs  140  may present the report or the report may be transmitted to other users via email, fax or placed in a designated folder of a data store. 
     In an example, the result generator  108  may be further configured for automatic generation of the response  120  to the information request  110  without the necessity for user intervention. An automatic query executor  182  is configured to execute successful search queries identified by the search association mapper  104  on selected information sources or websites. In an example, the selected websites can include those websites on which the successful search queries were earlier executed while being recorded on the proxy server logs  132 . Based on the information from the NLP data source  138  and the informational items  114 , the result generator  108  can determine if a search query that enabled generation of a prior report can be used to satisfy the information request  110  with a substitution of the prior entity identifier with the primary entity  112 . If it is possible to generate the response  120  with the substitution, the result generator  108  can be configured to automatically rephrase the search query to generate one or more new queries with the identifier of the primary entity  112  and automatically execute the new queries to obtain the response  120  to the information request  110 . The information source to execute the search query may also be similarly selected. If the prior search query was executed on a general-purpose search engine, the same information source may be selected for the automatic execution of the new query in order to generate a new report for the information request  110 . If the prior search query was executed on an entity-specific information source such as a company website, then the rephrased search query may be executed via a default information source such as a general purpose search engine which may be configured for the result generator  108 . 
       FIG. 2  shows a block diagram of the search behavior analyzer  102  in accordance with the examples disclosed herein. The search behavior analyzer  102  includes a report selector  202 , an information identifier  204  and a data processor  206  for identifying one or more of the data sources  130  and search queries that can satisfy the information request  110 . The report selector  202  selects one or more prior reports  214  from the prior reports  136  database based on the primary entity  112  associated with the information request  110 . The primary entity  112  enables identifying a domain for the information request and accordingly one or more other entities that were previously searched for within the domain. Accordingly, the prior reports  214  including or otherwise associated with the one or more other entities are selected from the data source of the prior reports  136 . In an example, the reports may also be selected based on predetermined date ranges, keyword searches, user ids of the people responsible for the reports and the like. The selection of the prior reports  214  enables the information identifier  204  to pull from the proxy server logs  132 , the portions of browsing history  212  that were generated during the process of creating the prior reports  214 . An example of the portions of browsing history  212  that are pulled is the proxy server log entry  252  showing a GOOGLE search for the staff strength of ABC International. One or more of such portions of the browsing history  212  can be obtained based on the dates of creation of the prior reports  214  so that the proxy server log entries created with a predefined time period preceding the report creation dates can be selected to obtain the portions of the browsing history  212 . In an example, the portions of the browsing history  212  may be further processed to remove personal browsing logs. The data processor  206  can parse and tokenize the prior reports  214  and the portions of the browsing history  212  for further analysis. 
       FIG. 3  shows a block diagram of the search association mapper  104  in accordance with examples disclosed herein. The search association mapper  104  includes an entity selector  302 , a query info identifier  304  and an entity/search term correlator  306 . The entity selector  302  selects one or more entities from the tokenized output of the prior reports  214  obtained from the search behavior analyzer  102 . Entity recognition (ER) techniques can be employed by the entity selector  302  for identifying the entities. The query info identifier  304  recognizes, from the portions of the browsing history  212 , requisite information which can include but is not limited to search terms used, information sources that were employed and search queries that were used for generating the prior reports  214 . The query info identifier  304  can use trained IE models  106  to extract various search terms/entities from the portions of the browsing history. The query info identifier  304  may further use AI elements such as trained classifiers to look for particular arrangements of string characters that are indicative of a browser-based search queries. In an example, specific search terms such as entity names for example, ‘ABC International’  356  and/or entity attributes such as ‘staff strength’  358  that occur within search queries that are usually executed for generating the reports may also be used in the query identification. 
     The entity/search term correlator  306  correlates the results from the portions of the browsing history  212  to the information in the prior reports  214 . The search queries whose results in the portions of the browsing history  212  match the information in the prior reports  214  can be determined by the entity/search term correlator  306  as the successful search queries that enabled the creation of the prior reports  214 . Furthermore, the information sources such as the websites on which the successful search queries  352  were executed may also be recorded by the entity/search term correlator  306  as likely information sources  354  that may satisfy the information request  110 . The websites may be general-purpose search engines or domain specific resources. In an example, the website may pertain to platforms that provide dynamically varying data such as prices of items in a commodity marketplace and the like. Furthermore, such domain specific websites may involve authentication procedures. The entity/search term correlator  306  may indicate such authentication-based websites and provide the necessary log in information for accessing the websites if available. Certain examples of the search association mapper  104  may be configured for automatic log in to subscription databases where the log in credentials are stored within the information request processor  100 . 
       FIG. 4  shows a diagram of the trained IE models  106  that can be employed for identifying various entities/search terms from different internal and external data sources such as live internet search results or logs of search results such as those in the proxy server logs  132  and the like. Trained IE models  106  can include various classifiers that learn to identify various entities/search terms and informational items  114  or entity attributes from the tokens generated by the search behavior analyzer  102 . The IE models  106  may be trained via supervised learning or unsupervised learning to identify the various entities. Entity name models  402  can be trained to identify various proper nouns occurring in the portions of the browsing history  212  and the prior reports  214 . Similarly, classifiers may be used for location id models  404  that can identify geographic locations in terms of latitude and longitudes, zip codes  406  which can identify global locations based on their local zip codes, date models  408  that can identify dates presented in various formats, currencies  410  which identify amounts in various currencies such as dollar amount ids, email id models  412 , telephone numbers  414  and the like. It can be appreciated that the list shown in  FIG. 4  and described herein is solely for illustration purposes and is not an exhaustive list. As newer reports are created and used by the information request processor  100 , newer entities may be identified and newer IE models may be trained and included within the information request processor  100  for identification of such entities. 
       FIG. 5  is a flowchart  500  that details a method of processing an information request in accordance with examples disclosed herein. The method begins at  502  wherein an information request  110  including the primary entity  112  and one or more informational items  114  is received. The primary entity  112  and the one or more informational items  114  are extracted from the information request at  504 . One or more domains associated with the information request  110  are identified at  506 . A plurality of domains may be defined based on one or more of the primary entity  112  and the informational items  114  within the information request processor  100  so that a received information request can be categorized into one or more domains to enable further processing. The domains can include an organization and/or particular type of information regarding the organization. For example, a company name may be classified under a domain. In another case, particular information regarding the company such as its production capacity, financial information, locations and the like may be associated with multiple domains. 
     Based on the domains identified at  506 , the prior reports  214  which were earlier generated by the information request processor  100  for the same primary entity  112  or for other primary entities with or without similar informational items  114  as the information request  110  are selected at  508 . The proxy logs associated with the selected prior reports are accessed at  510 . At  512 , the successful search queries that enabled generation of the selected prior reports are obtained. In an example, the information sources on which the successful search queries were executed can be identified as the reliable information sources that provided the information for the prior reports  214 . Accordingly, such reliable information sources may also be obtained at  512 . At  514  it is determined if a response  120  to the information request  110  is to be generated automatically. The determination on the automatic response generation may be based on the comparison of informational items  114  from the information request  110  to search terms in the successful search queries as detailed herein. If it is determined at  514  that the response  120  can be automatically generated, then the response is automatically generated at  514 . Automatic response generation can include performance of a search of internal and external data sources using the one or more successful search queries  352  and employing the trained IE models  106  to extract the information for the new report from search results obtained from the performance of the search on the internal and external data sources. The response can be generated from the information extracted by the trained IE models  106  from the search results obtained upon the performance of the search. If it is determined at  514  that the response  120  cannot be automatically generated, the method moves to  518  to generate response  120  with reviewer/manual input. 
     In an example, if the response  120  cannot be automatically generated based on the comparison of the successful search queries with the informational items  114 , the extracted information including the successful search queries and the information sources such as the websites on which the successful search queries were executed are displayed to a reviewer at  518 . At  520 , the reviewer may validate or further rephrase one or more of the successful search queries. In an example, the reviewer may select or add new information sources at  520  to execute the successful search queries to receive the response  120  to the information request  110 . The response  120  is generated with the reviewer input at  522 . In an example, the reviewer&#39;s input may be used as an explicit training mechanism so that the reviewer&#39;s selected information sources may be determined as more accurate for the particular domain and the rejected queries/information sources may be considered as less accurate or less useful for the domains identified at  506 . The response  120  thus generated either automatically or with user input may be added to the domain-specific knowledge associated with one or more domains relevant to the response  120 . 
       FIG. 6  is a flowchart  600  that details a method of automatically generating the response  120  to the information request  110  in accordance with examples disclosed herein. The response  120  to the information request  110  can be automatically generated if it is determined at  602 , that a substitution of the primary entity  112  to a search term can generate the response  120 . Such determination can be made if the informational items  114  within the information request  110  match the informational items in the successful query so that substitution of one entity for another can generate the correct results thereby enabling the information request processor  100  to automatically generate the response  120 . NLP techniques may be employed along with the information from the NLP data source  138  in order to make the determination at  602  so that if the successful query uses search terms synonymous with the informational items  114  then such a search query can be used for the automatic response generation. Moreover, the determination at  602  also includes a determination regarding whether the information sources used for the successful query can work to produce the results after substitution with the primary entity  112 . In an example, if the successful query was executed on a general-purpose search engine, the method may proceed with the automatic response generation. Else, if the successful query was executed on a website or information source that was specific to the search term, then the method may switch to manual generation of the response  120 . 
     At  604 , the primary entity is substituted for the search terms in the successful query so that the successful query which is now rephrased with the primary entity is automatically executed on the information sources at  606 . At  608 , the response  120  which may include a report is automatically generated. The automatic generation of the response at  608  may include a selection of the default structure for the report. For example, each of the plurality of domains defined within the information request processor  100  may have a default report structure associated therewith which can be used in the automatic response generation at  608 . 
       FIG. 7  is a flowchart  700  that details a method of identifying successful search queries. The method begins at  702  wherein the portions of the browsing history  212  that correspond to the prior reports  214  are parsed and tokenized. Accordingly, a plurality of string tokens indicating various search terms that were used, search information resources such as the Universal Resource Locators (URLs) where the search was done, the search results that were received in response to the search queries from the various URLs and the like are obtained at  702 . At  704 , the prior reports  214  are parsed and tokenized to obtain the entities, the informational items and the data included in the reports at  706 . Similarly, at  708 , the search terms used in the various search queries are identified from the tokenized output obtained at  702 . The search terms obtained from the portions of the browsing history  212  are mapped to the entities extracted from the prior reports at  710 . Moreover, the informational requirements in the search queries are identified at  712 . The informational requirements in the search queries are matched to the information in the prior reports at  714 . The successful search queries are therefore identified via analysis of information included in one or more of the sections and sub-sections of the prior reports. More particularly, the successful search queries are identified at  716  based on the matches between the informational requirements in the search queries to the information included in the prior reports. Other considerations such as timings of the execution of the search queries may also be considered for the identification of the successful search queries at  716 . In an example, when two queries need to be resolved in order to accurately identify a successful search query, the information request processor  100  may be configured to retrieve the timestamps of the search queries and select the search query with a later time stamp as the successful search query. 
       FIG. 8  is a flowchart  800  that details a method of extracting data from the output of the search behavior analyzer  102  in accordance with examples disclosed herein. The method begins at  802  wherein the tokenized output of the prior reports and the proxy logs is accessed. The trained IE models  106  are applied to the tokenized output for recognition of the entities and search terms at  804 . The entities and the search terms are extracted at  806  respectively from the prior reports  214  and the portions of the browsing history  212 . Application of the IE models  106  for extracting search terms, entities and the like enables a more accurate collection of information from greater number of information resources within a shorter time period as compared to manual reviews of the information sources. 
       FIG. 9  illustrates a computer system  900  that may be used to implement the information request processor  100 . More particularly, computing machines such as desktops, laptops, smartphones, tablets, wearables which may be used to generate or access the data from the information request processor  100  may have the structure of the computer system  900 . The computer system  900  may include additional components not shown and some of the components described may be removed and/or modified. In another example, a computer system  900  can sit on external-cloud platforms such as, Amazon Web Services, or internal corporate cloud computing clusters, or organizational computing resources, etc. 
     The computer system  900  includes processor(s)  902 , such as a central processing unit, ASIC or other type of processing circuit, input/output devices  912 , such as a display, mouse keyboard, etc., a network interface  904 , such as a Local Area Network (LAN), a wireless 802.11x LAN, a 3G or 4G mobile WAN or a WiMax WAN, and a computer-readable medium  906 . Each of these components may be operatively coupled to a bus  908 . The computer-readable medium  906  may be any suitable medium which participates in providing instructions to the processor(s)  902  for execution. For example, the computer-readable medium  906  may be non-transitory or non-volatile medium, such as a magnetic disk or solid-state non-volatile memory or volatile medium such as RAM. The instructions or modules stored on the computer-readable medium  906  may include machine-readable instructions  964  executed by the processor(s)  902  to perform the methods and functions of the information request processor  100 . 
     The information request processor  100  may be implemented as software stored on a non-transitory computer-readable medium and executed by the one or more processors  902 . For example, the computer-readable medium  906  may store an operating system  962 , such as MAC OS, MS WINDOWS, UNIX, or LINUX, and code  964  for the information request processor  100 . The operating system  962  may be multi-user, multiprocessing, multitasking, multithreading, real-time and the like. For example, during runtime, the operating system  962  is running and the code for the information request processor  100  is executed by the processor(s)  902 . 
     The computer system  900  may include a data storage or non-transitory computer readable storage medium  910 , which may include non-volatile data storage. The data storage  910  stores data used by the information request processor  100 . The data storage  910  may be used to store the tokenized output of the search behavior analyzer  102 , the associations established between the various entities and the search terms, the trained IE models  106  and the like. 
     The network interface  904  connects the computer system  900  to internal systems for example, via a LAN. Also, the network interface  904  may connect the computer system  900  to the Internet. For example, the computer system  900  may connect to web browsers and other external applications and systems via the network interface  904 . 
     What has been described and illustrated herein is an example along with some of its variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Many variations are possible within the spirit and scope of the subject matter, which is intended to be defined by the following claims and their equivalents.