# US 7,613,687 B2 · Systems and methods for enhancing web-based searching

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,613,687 B2
- Document ID: US7613687B2
- Status: Granted
- Kind: B2
- Application number: 10/973,660
- Filed: 2004-10-26
- Published: 2005-06-02
- Granted: 2009-11-03
- Earliest claimed: 2003-05-30
- Assignees: TrueLocal Inc.
- Inventors: Timothy G. Nye
- Web page: https://patentgrep.com/patent/US7613687B2

## CPC

- G06F 16/951: Indexing; Web crawling techniques
- G06F 16/35: Clustering; Classification
- G06F 16/9538: Presentation of query results
- G06F 16/954: Navigation, e.g. using categorised browsing
- Y10S 707/99933: Query processing, i.e. searching
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

A system for enhancing web-based searching is provided. Categorizing and clustering techniques are used to optimize searching. Businesses are classified using a control group of predetermined categories. The predetermined categories may be SIC codes or headings that are used to describe business activities. The website addresses for a business listed in the control group is determined, and the content of the business's website is extracted. The extracted content is associated with the predetermined category that the business is classified under. The extracted content is used to further enhance the overall classification scheme. The system may compare and match the extracted content with content of other business' websites, which are similarly categorized. If a relevant keyword match is identified in several of the websites, the keyword may be used to update the classification scheme. A new category or sub-category can be created based on this keyword. Furthermore, when a search is performed, the search results are organized by these categories, and using various processes, the most common results are kept and the less relevant results are discarded.

## Claims

### Claim 1

An information gathering system implemented in a computer system for optimizing searching comprising:
a processor and memory;
a data extraction tool executing in the computer system, in communication with a database, extracting website content to enable full text searching, the website content being extracted from a plurality of websites associated with business entities that are classified according to a standard industry classification system (SIC), which is a predefined taxonomy of business activities having verified information about the business entities;
the database, in communication with the data extraction tool, storing the extracted website content according to a classification system that is based on the predefined taxonomy of SIC business activities;
a content analyzer, in communication with the database, identifying commonly occurring keywords in the extracted website content from the websites of business entities that are similarly classified in the SIC predefined taxonomy of SIC business activities, where the commonly occurring keywords identified are used to update the classification system, the updated classification system being used to optimize searching in response to search queries;
the content analyzer identifying commonly occurring keywords that are used to create a new category to update the classification system by:
identifying keyword matches in the extracted website content by identifying any commonly occurring keywords or phrases in the extracted website content; and
processing the matches identified by determining whether any of the keywords or phrases in the identified matches contain one or more keywords associated with any of the business activities in the SIC predefined taxonomy; and
a full text indexed search engine, in communication with the database, processing a search query by matching the search query against the database, where at least a portion of the search results are clustered based on their respective SIC business activity category.

### Claim 2 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein the SIC predefined taxonomy of SIC business activities are not computer generated.

### Claim 3 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein storing data concerning business entities according to a classification system further includes storing verified attributes about the business entities including at least one of: business name, business address, business telephone number, or business website address.

### Claim 4 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein the business entities correspond to corporations, agencies, or organizations.

### Claim 5 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein each of the business activities in the SIC predefined taxonomy corresponds to a business descriptor.

### Claim 6 (depends on 1)

An information gathering system for optimizing searching as in claim 1 further includes a search handler which identifies the website content and causes the data extraction tool to extract the identified website content.

### Claim 7 (depends on 6)

An information gathering system for optimizing searching as in claim 6 wherein the search handler identifies the website content through a search engine.

### Claim 8 (depends on 7)

An information gathering system for optimizing searching as in claim 7 wherein the data extraction tool extracts the website content from indexed data provided by the search engine.

### Claim 9 (depends on 6)

An information gathering system for optimizing searching as in claim 6 wherein the search handler identifies the website content through a website address of the business entity.

### Claim 10 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein processing matches identified further includes a process for eliminating irrelevant matches.

### Claim 11 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein matches identified further includes a process for:
ranking each of the matches identified; and
processing the ranked matches to determine the highest ranking match.

### Claim 12 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein processing matches identified further includes the following processes:
determining whether any of the identified matches were extracted from two or more websites that are associated with any of the same business activities in the SIC predefined taxonomy;
computing the identified matches and determining whether any of the matches exceed a certain percentage of the computed total; or
computing the identified matches and eliminating matches that are below a certain percentage of the computed total.

### Claim 13 (depends on 11)

An information gathering system for optimizing searching as in claim 11 wherein updating the classification system further includes using the highest ranking match to update the classification system by creating a new category in the classification system based on the highest ranking match.

### Claim 14 (depends on 13)

An information gathering system for optimizing searching as in claim 13 wherein the update to the classification system causes a sub-category of one of the business activities in the SIC predefined taxonomy to be created, where the sub-category is indicative of an association between one of the business activities of the SIC predefined taxonomy and the extracted content.

### Claim 15 (depends on 1)

An information gathering system for optimizing searching as in claim 1 further including a search process that locates websites of business entities that have not been categorized in the SIC predefined taxonomy of SIC business activities.

### Claim 16 (depends on 15)

An information gathering system for optimizing searching as in claim 15 wherein the data extraction tool extracts content from the websites that have not been categorized in the SIC predefined taxonomy of SIC business activities.

### Claim 17 (depends on 16)

An information gathering system for optimizing searching as in claim 16 wherein the extracted content from the websites that have not been categorized in the SIC predefined taxonomy of SIC business activities is used to update the classification system.

### Claim 18 (depends on 1)

An information gathering system for optimizing searching as in claim 1 further includes a search process to identify business entities associated with one or more of the business activities in the SIC predefined taxonomy, which do not have a website.

### Claim 19 (depends on 18)

An information gathering system for optimizing searching as in claim 18 wherein the process to identify business entities associated with one or more of the business activities in the SIC predefined taxonomy, which do not have a website, further includes logic to assign each of the business entities identified to new categories created in the updated classification system.

### Claim 20 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein the classification system includes categories based on geographical locations, where the geographical locations are used to eliminate false positives in search results resulting from a keyword search query when one of the terms in the keyword search query has more than one meaning in the classification system.

### Claim 21 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein the classification system further includes logic that processes queries to identify business entities that are geographically located within a certain distance from a particular location.

### Claim 22 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein the updated classification system is used by the full text indexed search engine to process queries for business entities.

### Claim 23 (depends on 22)

An information gathering system for optimizing searching as in claim 22 wherein the query includes attributes matching one or more categories in the updated classification system, where one or more business entities is responsive to the query.

### Claim 24 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein the categories in the updated classification are used to cluster search result hits.

### Claim 25 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein the full text indexed search engine further includes:
a search handler being responsive to a user search query; and
a clustering engine, in communication with the search handler, processing search result hits resulting from the query, where the clustering engine clusters the search result hits based on categories defined in the classification system.

### Claim 26 (depends on 1)

An information gathering system for optimizing searching as in claim 1 wherein the full text indexed search engine processing a search query by matching the search query against the database, where at least a portion of the search results are clustered further includes:
returning a set of indexed results having content matching the search query;
matching the returned indexed results to the SIC codes in the database to determine hits; and
grouping the hits according to their respective SIC code.

### Claim 27 (depends on 26)

An information gathering system for optimizing searching as in claim 26 wherein grouping the hits according to their respective SIC code further includes:
determining a group hit count for each group;
determining if the group hit count is above a threshold value;
displaying groups of hits that are above the threshold value, where each of the displayed groups of hits are displayed with a heading corresponding to their respective SIC code and with counts showing the number of hits in the group, where the SIC code heading displayed is an associated SIC business descriptor.

### Claim 28 (depends on 27)

An information gathering system for optimizing searching as in claim 27 further includes responding to a selection of one of the SIC code headings by presenting hits in the group corresponding to the selected SIC code heading.

### Claim 29 (depends on 27)

An information gathering system for optimizing searching as in claim 27 wherein grouping the hits according to their respective SIC code further includes using the first three digits of the SIC codes to group hits.

### Claim 30 (depends on 29)

An information gathering system for optimizing searching as in claim 29 wherein if the search fails to return one or more groups of hits having a count above the threshold value, using the first two digits of the SIC codes to group hits.

### Claim 31

A method of optimizing searching in a data processing system comprising the steps of:
identifying websites of business entities that are associated with a standard industry classification system (SIC) predefined taxonomy of business activities having verified information of the business entities;
extracting website content from the websites of business entities that are associated with the SIC predefined taxonomy of SIC business activities to enable full text searching;
processing the extracted content to identify commonly occurring keywords in the extracted content from websites of business entities that have been similarly classified in the SIC predefined taxonomy of SIC business activities, where one or more of the commonly occurring keywords are used to update a classification system, where the classification system is based on the SIC predefined taxonomy of SIC business activities;
creating a new category to update the classification system by:
identifying keyword matches in the extracted website content by identifying any commonly occurring keywords or phrases in the extracted website content; and
processing the matches identified by determining whether any of the keywords or phrases in the identified matches contain one or more keywords associated with any of the business activities in the SIC predefined taxonomy;
processing a search query using full text index searching by matching the search query against at least a portion of the extracted content, where at least a portion of the search results are clustered according to their respective SIC business activity category.

### Claim 32 (depends on 31)

A method of optimizing searching as in claim 31 wherein the SIC predefined taxonomy of SIC business activities are not computer generated.

### Claim 33 (depends on 31)

A method of optimizing searching as in claim 31 wherein processing matches identified further includes:
determining whether any of the identified matches were extracted from two or more websites that are associated with any of the same SIC business activities in the SIC predefined taxonomy;
computing the identified matches and determining whether any of the matches exceed a certain percentage of the computed total; or
computing the identified matches and eliminating matches that are below a certain percentage of the computed total.

### Claim 34 (depends on 33)

A method of optimizing searching as in claim 33 wherein updating the classification system further includes using the highest ranking match to update the classification system by creating a new classification category based on the highest ranking match.

### Claim 35 (depends on 31)

A method of optimizing searching as in claim 31 wherein the update to the classification system causes a sub-category of one of the SIC business activities in the SIC predefined taxonomy to be created, where the sub-category is indicative of an association between one of the SIC business activities in the SIC predefined taxonomy, and the extracted content.

### Claim 36 (depends on 31)

A method of optimizing searching as in claim 31 further includes identifying business entities associated with one or more of the SIC business activities in the SIC predefined taxonomy, which do not have a website.

### Claim 37 (depends on 36)

A method of optimizing searching as in claim 36 wherein identifying business entities associated with one or more of the SIC business activities in the SIC predefined taxonomy, which do not have a website, further assigning each of the business entities identified to new categories created in the updated classification system.

### Claim 38 (depends on 31)

A method of optimizing searching as in claim 31 wherein the classification system includes categories based on geographical locations, where the geographical locations are used to eliminate false positives in search results resulting from a keyword search query if one of the terms in the keyword search query has multiple meanings in the classification system.

### Claim 39 (depends on 31)

A method of optimizing searching as in claim 31 wherein the classification system further includes processing queries to identify business entities that are geographically located within a certain distance from a particular location.

### Claim 40 (depends on 31)

A method of optimizing searching as in claim 31 further including:
responding to a user search query; and
processing search result hits resulting from the query by clustering the search result hits based on categories defined in the classification system.

### Claim 41 (depends on 40)

A method of optimizing searching as in claim 40 wherein processing search result hits resulting from the query by clustering the search result hits based on categories defined in the classification system further includes assigning a search result hit to a category in the classification system.

### Claim 42

A computer implemented system for optimizing searching comprising:
a processor and memory;
means for identifying websites of business entities that are associated with a standard industry classification system (SIC) predefined taxonomy of business activities having verified information of the business entities;
means for extracting website content from the websites of business entities associated with the SIC predefined taxonomy of SIC business activities to enable full text searching;
means for processing the extracted content to identify commonly occurring words in the extracted content from websites of business entities that have been similarly classified by the SIC predefined taxonomy of SIC business activities, where one or more of the commonly occurring keywords are used to update the classification system, where the classification scheme is based on the SIC predefined taxonomy of SIC business activities;
means for creating a new category to update the classification system by:
means for identifying keyword matches in the extracted website content by identifying any commonly occurring keywords or phrases in the extracted website content; and
means for processing the matches identified by determining whether any of the keywords or phrases in the identified matches contain one or more keywords associated with any of the business activities in the SIC predefined taxonomy;
means for processing a search query using a full text index searching by matching the search query against at least a portion of the extracted content, where at least a portion of the search results are clustered according to their respective SIC business activity category.

### Claim 43

A method of optimizing searching in a data processing system comprising the steps of:
obtaining website content of business entities that are included in a control group, where the control group defines a classification system that is based on a standard industry classification system (SIC) predefined taxonomy of SIC business activities having verified information about the business entities, the classification system being used to classify and store the website content of the business entities;
searching for unclassified business entities using at least a portion of the website content of business entities in the control group;
classifying the unclassified business entities based on the portion of website content of business entities in the control group;
identifying commonly occurring keywords in website content of business entities that are similarly classified in the classification system of the control group;
allowing the control group to grow if a substantial amount of commonly occurring keywords have been identified; and
creating a new business entities category to update the classification system of the control group allowing the control group to grow by:
identifying keyword matches in the stored website content by identifying any commonly occurring keywords or phrases in the website content; and
processing the matches identified by determining whether any of the keywords or phrases in the identified matches contain one or more keywords associated with any of the SIC business activities in the SIC predefined taxonomy; and
using the control group to optimize full text index searching of the website content by organizing search results according to categories in the classification system of the control group.

### Claim 44 (depends on 43)

A method of optimizing searching as in claim 43 wherein the business entities correspond to corporations, agencies, or organizations.

### Claim 45 (depends on 43)

A method of optimizing searching as in claim 43 wherein the control group includes verified attributes about the business entities including at least one of: business name, business address, business telephone number, or business website address.

### Claim 46 (depends on 43)

A method of optimizing searching as in claim 43 wherein obtaining information including website content of the business entities that are included in a control group further includes extracting website content from websites of business entities in the control group.

### Claim 47 (depends on 46)

A method of optimizing searching as in claim 46 wherein the SIC control group by creating new categories for the classification system based on the commonly occurring keywords that have been identified, where the step of identifying the commonly occurring keywords includes:
identifying keyword matches in the extracted website content by identifying any commonly occurring keywords or phrases in the extracted website content; and
processing the matches identified.

### Claim 48 (depends on 43)

A method of optimizing searching as in claim 43 wherein classifying the website based on the information about the business entities in the control group further includes:
extracting content from a website of an unclassified business entity; and
comparing the unclassified website content with website content of the classified business entities in the control group to determine the classification of the unclassified business entity.

### Claim 49 (depends on 48)

A method of optimizing searching as in claim 48 further includes defining relationships in the classification system according to geographical locations, where geographical locations are used to eliminate false positives in search results from a keyword search query if one of the terms in the keyword search query has multiple meanings in the classification system.

### Claim 50 (depends on 48)

A method of optimizing searching as in claim 48 further includes using the control group to cluster search result hits in response to a user search query.

### Claim 51

A method of optimizing searching in a data processing system comprising the steps of:
storing website content associated with business entities that are included in a control group, where the control group defines a classification system that is based on a standard industry classification system (SIC) predefined taxonomy of business activities having verified information about the business entities, the classification system being used to classify and store the website content of the business entities;
responding to a search request by using full text index searching of the website content;
identifying commonly occurring keywords in website content from the search results and website content of business entities in the control group that are classified in the SIC predefined taxonomy of SIC business activities;
grouping the search results based on the commonly occurring keywords identified;
using website content from the search results to allow the control group to grow if a substantial amount of groups of commonly occurring keywords have been identified; and
creating a new business entities category to update the classification system of the control group, allowing the control group to grow by:
identifying keyword matches in the stored website content by identifying any commonly occurring keywords or phrases in the website content; and
processing the matches identified by determining whether any of the keywords or phrases in the identified matches contain one or more keywords associated with any of the SIC business activities in the SIC predefined taxonomy.

### Claim 52 (depends on 51)

A method of optimizing searching as in claim 51 wherein grouping the search results based on the commonly occurring keywords identified further includes:
identifying keyword or phrase matches in website content associated with the search results and website content associated with the business entities in the control group;
ranking the matches associated with each category of business entities in the control group.

### Claim 53 (depends on 52)

A method of optimizing searching as in claim 52 using website content from the search results to allow the control group to grow if a substantial amount of commonly occurring keywords have been identified further includes:
determining a SIC business activities category in the SIC predefined taxonomy having a highest ranking match of commonly occurring keywords; and
enabling the category having the highest ranking match to grow if a large group of search results are assigned to the category.
