# US 8,751,518 B1 · Fixed phrase detection for search

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

- Number: US 8,751,518 B1
- Document ID: US8751518B1
- Status: Granted
- Kind: B1
- Application number: 13/465,884
- Filed: 2012-05-07
- Granted: 2014-06-10
- Earliest claimed: 2010-02-24
- Assignees: A9.com, Inc.
- Applicants: Waseem Ahmad; Deepak Jain
- Inventors: Waseem Ahmad; Deepak Jain
- Web page: https://patentgrep.com/patent/US8751518B1

## CPC

- G06F 16/285: {Clustering or classification}
- G06F 16/313: {Selection or weighting of terms for indexing}
- G06F 16/951: Indexing; Web crawling techniques
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A set of search requests may be analyzed to detect fixed phrases suitable for inclusion in a search index. Sets of candidate phrases may be identified among the search requests. Fixed phrases may be detected among the candidate phrases using statistical techniques, for example, by identifying phrases having a relatively high pointwise mutual information (PMI) with respect to component keywords. Fixed phrase detection may include keyword and/or phrase clustering. Clusters may correspond to topics defined using a latent Dirichlet allocation (LDA) procedure. Fixed phrase detection may include identifying phrases having relatively high PMI within particular clusters.

## Claims

### Claim 1

A computing system for facilitating a search, comprising:
at least one processor; and
memory including instructions that, when executed by the at least one processor, cause the computing system to:
cluster search terms extracted from previous searches into a plurality of search term clusters independent of human supervision;
for each of the plurality of search term clusters,
identify a candidate search phrase comprising a first search term and a second search term;
determine a first count of the first search term, a second count of the second search term, and a mutual count of the first search term and the second search term appearing simultaneously in the previous searches;
weight each individual count of the first count, the second count, and the mutual count based at least in part on an age of a respective individual count with respect to the previous searches, wherein each age is a difference in time between a current time and when the respective individual count appeared in the previous searches;
determine a pointwise mutual information score for the candidate search phrase using the weighted first count of the first search term, the weighted second count of the second search term, and the weighted mutual count of the first search term and the second search term;
select the candidate search phrase as a fixed phrase for inclusion in a respective search term cluster based at least in part on the determined pointwise mutual score being greater than a threshold score;
in response to receiving a search request, determine a relevance score for each of at least a portion of the search terms, including the fixed phrase, with respect to a collection of content;
provide at least one search result for presentation, the at least one search result at least referencing content selected from the collection of content based at least in part on the at least one relevance score;
detect interaction with a search result of the provided at least one result from a user; and
update the clustered search terms associated with the search result.

### Claim 2 (depends on 1)

The computing system of claim 1, wherein clustering search terms further comprises assigning each search term to one of a plurality of topics with which the search term has a greatest associative measure.

### Claim 3 (depends on 1)

The computing system of claim 1, wherein clustering search terms comprises assigning each search term to at least one of a plurality of topics.

### Claim 4 (depends on 1)

The computing system of claim 1, wherein clustering search terms comprises determining an associative measure between each search term and each of a plurality of topics in accordance with latent Dirichlet allocation.

### Claim 5 (depends on 1)

The computing system of claim 1, wherein the pointwise mutual information score is a specified fraction of a greatest pointwise mutual information score.

### Claim 6 (depends on 1)

The computing system of claim 1, wherein the weight of each individual count exponentially decays with the age of a respective individual count.

### Claim 7

A computer-implemented method, comprising:
under control of one or more computer systems configured with executable instructions,
analyzing keywords of previous searches to detect fixed phrases suitable for inclusion in a search index, each fixed phrase including a first keyword and a second keyword;
determining a first count of the first keyword, a second count of the second keyword, and a mutual count of the first keyword and the second keyword appearing simultaneously in the previous searches;
weighting each individual count of the first count, the second count, and the mutual count based at least in part on age of a respective individual count with respect to the previous searches;
determining a pointwise mutual information score using the weighted first count of the first keyword, the weighted second count of the second keyword, and the weighted mutual count of the first keyword and the second keyword;
associating a respective suitable fixed phrase with the search index based at least in part on the determined pointwise mutual score being greater than a threshold score;
in response to receiving a search request, determine a relevance score for each of at least a portion of the keywords, including the respective suitable fixed phrase, with respect to a collection of content;
provide at least one search result for presentation, the at least one search result at least referencing content selected from the collection of content based at least in part on the at least one relevance score;
detect interaction with a search result of the provided at least one result from a user; and
update the keywords associated with the search result.

### Claim 8 (depends on 7)

A computer-implemented method according to claim 7, further comprising:
associating the keywords of the previous searches in accordance with a latent Dirichlet allocation.

### Claim 9 (depends on 7)

A computer-implemented method according to claim 7, wherein each fixed phrase comprises a plurality of words.

### Claim 10 (depends on 7)

A computer-implemented method according to claim 7, further comprising:
determining at least one relevance score for the at least one suitable fixed phrase with respect to a topic.

### Claim 11 (depends on 10)

A computer-implemented method according to claim 10, wherein the at least one relevance score is based at least in part on detected interaction with one or more search results previously presented that correspond to the at least one suitable fixed phrase.

### Claim 12 (depends on 7)

A computer-implemented method according to claim 7, wherein the determined threshold is based at least in part on a fraction of a greatest of the pointwise mutual information scores.

### Claim 13 (depends on 7)

A computer-implemented method according to claim 7, wherein the weight of each individual count exponentially decays with the age of a respective individual count.

### Claim 14 (depends on 7)

A computer-implemented method according to claim 7, wherein the age is a difference between a time when the respective individual count appeared in the previous searches and a current time.

### Claim 15

A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to:
associate keywords of previous searches with a topic;
identify a candidate phrase from the previous searches that contains a first keyword and at least one second keyword associated with the topic;
determine a first count of the first keyword, a second count of the at least one second keyword, and a mutual count of the first keyword and the second keyword appearing simultaneously in the previous searches;
weight each individual count of the first count, the second count, and the mutual count based at least in part on age of a respective individual count with respect to the previous searches, wherein each age is a difference between a time when the respective individual count appeared in the previous searches and a current time;
determine pointwise mutual information score for the candidate phrase using the weighted first count of the first keyword, the weighted second count of the second keyword, and the weighted mutual count of the first keyword and the second keyword;
based at least in part on the determined pointwise mutual score being greater than a threshold pointwise mutual score, select the candidate phrase as a fixed phrase;
determine a relevance score for the fixed phrase with respect to the topic;
based at least in part on the relevance score being above a threshold score for the topic, associate the fixed phrase with the topic;
in response to receiving a search query, provide at least one search result for presentation, the at least one search result at least referencing content selected from a search index based at least in part on relevance scores of a plurality of keywords and a plurality of fixed phrases for the topic;
detect interaction with a search result of the provided at least one search result from a user; and
update the keywords associated with the search result.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein an association of keywords of previous searches with the topic is conducted in accordance with a latent Dirichlet allocation.

### Claim 17 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the relevance scores are based at least in part on detected interaction with one or more search results previously presented that correspond to the at least one fixed phrase.

### Claim 18 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein counts of candidate phrases are weighted with respect to age.

### Claim 19 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the weight of each individual count exponentially decays with the age of a respective individual count.
