Technique for determining keywords for a document

A technique for providing one or more keywords associated with a document (such as a web page) is described. In this technique, a set of user-selected keywords and a specification of a market segment associated with the document are received from a user. In response, a set of similar keywords (which can include one or more of the set of user-selected keywords) is determined based on the user-selected keywords. Furthermore, a market-specific set of keywords (which can also include one or more of the set of user-selected keywords and/or the set of similar keywords) is selected based on the set of similar keywords by using keywords for documents that are associated with other users in the market segment. Then, at least a subset of the set of market-specific keywords is provided to the user.

BACKGROUND

The present disclosure relates to techniques for determining keywords associated with a document.

As the number of web pages on the Internet continues to increase, search engines are becoming increasingly important in directing customer traffic to specific web pages. For example, in response to a customer query, a search engine may generate a search expression that includes synonyms and paraphrases of the customer query, as well as logical permutations of the positions of the words in the search query. This search expression is compared against information in a set of crawled web pages from the Internet to identify the web pages that are most relevant to the search query to produce a set of search results. In particular, the search results are usually the top web pages in a ranking of match scores that are associated with the set of web pages. These match scores measure the agreement between the search expression and information in the set of web pages.

A variety of factors are typically considered when generating a match score for a given web page. Among these are keywords associated with the web page (which are sometimes referred to as ‘adwords’). As a consequence, the choice of the keywords associated with the given web page can have a significant impact on the ranking of the given web page in the search results and, thus, on the amount of customer traffic that is driven to the given web page.

However, choosing suitable keywords for a web page can be difficult. For example, while many search-engine providers offer services to assist an owner of the given web page in choosing suitable keywords, these tools often return a large number of possible keywords (such as more than 100,000 keywords). Reviewing such a large list of keywords can be time consuming. This problem is compounded by the uncertainty about which keywords are likely to provide the best results (in terms of web-page traffic) at a reasonable price. In particular, the cost of purchasing the right to use popular keywords can be prohibitive for most web-page owners.

SUMMARY

One embodiment of this disclosure relates to a computer system that provides one or more keywords associated with a document. During operation, the computer system receives a set of user-selected keywords and a specification of a market segment associated with the document from a user. Then, the computer system determines a set of similar keywords based on the user-selected keywords, where the set of similar keywords can include one or more of the set of user-selected keywords. The computer system also selects a market-specific set of keywords based on the set of similar keywords by using keywords for documents that are associated with other users in the market segment, where the market-specific set of keywords can include one or more of the user-selected keywords and the set of similar keywords. Next, the computer system provides at least a subset of the set of market-specific keywords to the user.

Note that the document may include one or more web pages. Furthermore, the set of similar keywords may include synonyms of, or words that are related to, the set of user-selected keywords.

In some embodiments, determining the set of similar keywords involves performing a filtering operation in which N top-ranked keywords in the set of similar keywords are used in subsequent operations in the method. Alternatively or additionally, determining the set of similar keywords may involve calculating competitiveness scores of the set of similar keywords. For example, a given competitiveness score of a given keyword in the set of similar keywords may be based on a number of users that pay to be associated with the given keyword during searches for documents on a network. Furthermore, calculating the competitiveness scores may involve performing a filtering operation in which keywords in the set of similar keywords that have competitiveness scores in a range of values are used in subsequent operations in the method, where a maximum or a minimum of the competitiveness scores in the range of values is other than a maximum or minimum possible competitiveness score. This filtering operation may reduce a cost of purchasing keywords in at least the set of similar keywords.

Note that the set of market-specific keywords may include N top-ranked keywords in the set of market-specific keywords.

In some embodiments, the computer system receives user selections of keywords in at least the subset of the set of market-specific keywords to associate with the document. These user selections may facilitate a search-engine-determined ranking of the document in response to a search query from another user. Furthermore, the computer system may modify weights of the keywords associated with the documents based on the received user selections.

Another embodiment provides a method that includes at least some of the operations performed by the computer system.

Another embodiment provides a computer-program product for use with the computer system. This computer-program product includes instructions for at least some of the operations performed by the computer system.

Table 1 provides a set of similar keywords that are generated in response to keywords provided by a user in accordance with an embodiment of the present disclosure.

Table 2 provides a set of market-specific keywords that are selected based on the set of similar keywords in Table 1 in accordance with an embodiment of the present disclosure.

Table 3 provides a subset of the set of market-specific keywords in Table 2 that are presented to the user in accordance with an embodiment of the present disclosure.

DETAILED DESCRIPTION

Embodiments of a computer system, a technique for providing one or more keywords associated with a document (such as a web page), and a computer-program product (e.g., software) for use with the computer system are described. In this technique, a set of user-selected keywords and a specification of a market segment associated with the document are received from a user. In response, a set of similar keywords (which can include one or more of the set of user-selected keywords) is determined based on the user-selected keywords. Furthermore, a market-specific set of keywords (which can also include one or more of the set of user-selected keywords and/or the set of similar keywords) is selected based on the set of similar keywords using keywords associated with documents that are associated with other users in the market segment. Then, at least a subset of the set of market-specific keywords is provided to the user.

By providing at least the subset of the set of market-specific keywords to the user, this technique solves the problem of choosing suitable keywords for use with the document. In particular, the subset of the set of market-specific keywords are selected for the user such that these keywords are relevant to the user's document and are cost effective, without requiring user expertise in search-engine optimization. Consequently, the technique may reduce the time and effort needed to choose suitable keywords, and may allow the user to increase the visibility of the document on a network in search-engine results (e.g., the technique may increase the ranking of the document). These higher rankings may result in increased customer traffic to the document and, thus, increased revenue for the user. Therefore, the technique may facilitate commerce.

In the discussion that follows, one or more web pages are used as an illustrative example of the document. However, this technique may be used with a wide variety of documents, including: text documents, files associated with word-processing software, files associated with a spreadsheet, files associated with presentation software, audio files, video files, and/or animation files.

We now describe embodiments of the method.FIG. 1presents a flow chart illustrating a method100for providing one or more keywords associated with a document, which may be performed by a computer system (such as computer system200inFIG. 2and/or400inFIG. 4). During operation, the computer system receives a set of user-selected keywords and a specification of a market segment associated with the document from a user (operation110). Then, the computer system determines a set of similar keywords based on the user-selected keywords (operation112), where the set of similar keywords can include one or more of the set of user-selected keywords. For example, the set of similar keywords may include synonyms of, or words that are related to, the set of user-selected keywords.

In some embodiments, determining the set of similar keywords involves performing a filtering operation in which N top-ranked keywords in the set of similar keywords are used in subsequent operations in the method. Alternatively or additionally, determining the set of similar keywords may involve calculating competitiveness scores of the set of similar keywords. For example, a given competitiveness score of a given keyword in the set of similar keywords may be based on a number of users that pay to be associated with the given keyword during searches for documents on a network. Furthermore, calculating the competitiveness scores may involve performing a filtering operation in which keywords in the set of similar keywords that have competitiveness scores in a range of values are used in subsequent operations in the method, where a maximum or a minimum of the competitiveness scores in the range of values is other than a maximum or minimum possible competitiveness score. This filtering operation may reduce a cost of purchasing keywords in at least the set of similar keywords.

Moreover, the computer system may select a market-specific set of keywords based on the set of similar keywords by using keywords for documents that are associated with other users in the market segment (operation114), where the market-specific set of keywords can include one or more of the user-selected keywords and/or the set of similar keywords. Note that the subset of the set of market-specific keywords may include N top-ranked keywords in the set of market-specific keywords.

Next, the computer system provides at least a subset of the set of market-specific keywords to the user (operation116).

In some embodiments, the computer system optionally receives user selections of keywords in at least the subset of the set of market-specific keywords to associate with the document (operation118). These user selections may facilitate a search-engine-determined ranking of the document in response to a search query from another user. Furthermore, the computer system may optionally modify weights of the keywords associated with the documents based on the received user selections (operation120).

In an exemplary embodiment, a user input five initial keywords and an industry or market segment. For example, the industry may be ‘restaurants,’ and the five initial keywords include ‘Italian,’ ‘pasta,’ ‘quality,’ ‘cheap,’ and ‘San Jose.’ As shown in Table 1, which provides the top-20 keywords in a set of similar keywords, the correlation with similar keywords in a data structure associated with a search engine may be determined based on the five initial keywords to generate the set of similar keywords. Note that the correlation with a given one of the initial keywords may provide a measure of how similar (and, thus, how relevant) an alternative keyword is to the given initial (user-supplied) keyword. This correlation may measure the overlap between the initial keywords and terms in search results provided by the search engine.

As noted previously, the set of similar keywords associated with the search engine may include a large number of results (such as 100,000 keywords). Consequently, the set of similar keywords may be filtered to reduce the number of keywords considered in the remainder of method100. For example, the top-N keywords in the set of similar keywords may be used, where N may be: 10, 20, 50, 100 or 500.

Because many of the keywords in the set of similar keywords are popular, they may be prohibitively expensive for the user to purchase for use with their web page(s). To address this problem, competitiveness scores may be calculated for the set of similar keywords. The competitiveness score of a given keyword may be based on the number of advertisers bidding for a keyword relative to all other keywords (i.e., how many web pages are ranked for the given keyword as opposed to other keywords that have high correlation). For example, each keyword may be assigned a score between 0 and 1.

To help ensure that the identified keywords are affordable (for example, when the user is a small business owner), the keywords with the top competitiveness scores may be filtered out from the set of similar keywords. For example, the top-N keywords may be inverse ranked based on their competitiveness scores (i.e., from the lowest competitiveness score to the highest competitiveness score), and the keywords at the bottom of this inverse ranking (such as the keywords having competitiveness scores between 0.9 and 1) may be excluded in the subsequent operations in method100. Thus, the initial keyword ‘pasta’ may be too broad and expensive to use as an adword. While it may have high correlation and competitiveness scores, the latter may result in its removal from the set of similar keywords.

Then, the industry ‘restaurants’ and the set of similar keywords may be used to determine the market-specific set of keywords. In particular, the industry and the set of similar keywords may be used to identify keywords in another data structure that are associated with web pages of other users in the industry. For example, the market-specific set of keywords may be determined by ranking the keywords in the other data structure based on how often they are used by the other users in the industry. Table 2 provides the top-20 keywords in a set of market-specific keywords that are selected based on the set of similar keywords in Table 1.

Next, the set of market-specific keywords may be filtered to determine the subset of the set of market-specific keywords. For example, the top-M keywords in the set of market-specific keywords may be used in subsequent operations in method100, where M is 5, 10, 25 or 50. This subset of the set of market-specific keywords may be presented to the user. Table 3 provides a subset of the set of market-specific keywords in Table 2 that can be presented to the user.

After the results are presented, the user may be asked to provide feedback. Specifically, the user may be asked which of the keywords in the subset of the set of market-specific keywords they will use with their web page. If a particular keyword is used by the user, a weight in the other data structure that is associated with this keyword may be incremented. For example, the weight of a given keyword in the other data structure may initially be 1. Each time a user selects the given keyword for use in conjunction with a web page, the weight may be incremented by 2 (thus, the first time the given keyword is used, the weight may be incremented from 1 to 3). These weights may provide an indication of how useful the keywords in the other data structure are to the users. Furthermore, over time, the incremented weights may provide an increasingly accurate indication of the usefulness of the keywords in the other data structure (and, thus, may improve the effectiveness of the set of market-specific keywords that are identified using the other data structure).

We now describe embodiments of the computer system and its use.FIG. 2presents a block diagram illustrating a computer system200that performs method100(FIG. 1). In this system, a user of computer208may provide the user-selected keywords (i.e., the initial keywords) and the industry. For example, the user may use a web browser that executes in the environment of computer208to access a web page or website (via network212) that is hosted by server210. After logging in to the web page, and providing the user-selected keywords and the industry, the user may active a ‘Get Keywords’ icon that is displayed on the web page.

Note that the web browser may be installed and may execute on computer208. Alternatively or additionally, the user may use an application that is resident on and that executes on computer208, such as the financial-software application, which is provided by an organization or entity that provides server210. This application may be a stand-alone application or a portion of another application that is resident on and which executes on computer208.

In some embodiments, at least a portion of the application may be a software application tool (such as a financial-software application tool) that is embedded in the web page (and which executes in a virtual environment of the web browser). In an illustrative embodiment, the software-application tool is a software package written in: JavaScript™ (a trademark of Sun Microsystems, Inc.), e.g., the software-application tool includes programs or procedures containing JavaScript instructions, ECMAScript (the specification for which is published by the European Computer Manufacturers Association International), VBScript™ (a trademark of Microsoft, Inc.) or any other client-side scripting language. In other words, the embedded software-application tool may include programs or procedures containing: JavaScript, ECMAScript instructions, VBScript instructions, or instructions in another programming language suitable for rendering by the web browser or another client application (such as on computer208). Thus, the software application may be provided to the user via a client-server architecture.

In response to the information provided by the user and the user request, server210may determine at least the subset of the set of market-specific keywords using method100(FIG. 1). While performing the associated operations, server210may access the data structure216on server214via network212. In addition, server210may access other data structure218. As noted previously, the keywords in other data structure218may include the keywords associated with web pages of other users in the same industry as the user. These other web pages may be hosted on servers220.

Then, server210may provide the subset of the set of market-specific keywords to the user. For example, the subset of the set of market-specific keywords may be communicated, via network212, to computer208, and may be displayed by the web browser.

Subsequently, the user may provide feedback to server210via network212about which of the keywords he intends to use with his web page. For example, the user may activate radio buttons next to one or more of the displayed keywords in the subset of the set of market-specific keywords. Using this feedback, server210may update weights associated with the keywords in other data structure218.

By improving the rankings of the user's web page or website in search results, method100(FIG. 1) can increase customer loyalty to the provider of server210. Moreover, increasing the user's sales may also increase demand for products and services offered by the provider of server210(such as the financial-software application).

Note that the information in computer system200(such as data structure216and/or other data structure218) may be stored at one or more locations in computer system200(i.e., locally or remotely). Moreover, because this information may be sensitive in nature, it may be encrypted. For example, stored information and/or information communicated via network212may be encrypted.

The interaction between the user of computer208and server210is summarized inFIG. 3, which presents a flow chart illustrating method100(FIG. 1). In particular, the user provides information310to server210, such as the user-selected keywords (i.e., the initial keywords), the industry and the request to ‘Get Keywords.’ After receiving the information312, server210identifies the subset of the set of market-specific keywords314, and provides this subset to the user316. In response to receiving the subset of the set of market-specific keywords318, the user may provide feedback320to server210(for example, by selecting one or more of the keywords in the subset of the set of market-specific keywords). Based on the received feedback322, server210may optionally update one or more weights324of keywords in the other data structure.

In some embodiments of methods100(FIG. 1) and/or300, there may be additional or fewer operations. Moreover, the order of the operations may be changed and/or two or more operations may be combined into a single operation.

We now further describe embodiments of the computer system, such as server210(FIG. 2).FIG. 4presents a block diagram illustrating a computer system400that performs method100(FIG. 1). Computer system400includes one or more processors410, a communication interface412, a user interface414, and one or more signal lines422coupling these components together. Note that the one or more processing units410may support parallel processing and/or multi-threaded operation, the communication interface412may have a persistent communication connection, and the one or more signal lines422may constitute a communication bus. Moreover, the user interface414may include: a display416, a keyboard418, and/or a pointer420, such as a mouse.

Memory424in the computer system400may include volatile memory and/or non-volatile memory. More specifically, memory424may include: ROM, RAM, EPROM, EEPROM, flash memory, one or more smart cards, one or more magnetic disc storage devices, and/or one or more optical storage devices. Memory424may store an operating system426that includes procedures (or a set of instructions) for handling various basic system services for performing hardware-dependent tasks. Memory424may also store procedures (or a set of instructions) in a communication module428. These communication procedures may be used for communicating with one or more computers and/or servers, including computers and/or servers that are remotely located with respect to the computer system400. While not shown inFIG. 4, in some embodiments memory424includes a web browser.

Memory424may also include multiple program modules (or sets of instructions), including: keyword module430(or a set of instructions), search module432(or a set of instructions), correlation module434(or a set of instructions), competitiveness module436(or a set of instructions), market-specific module438(or a set of instructions), encryption module440(or a set of instructions) and/or optional financial software442(or a set of instructions). Note that one or more of these program modules (or sets of instructions) may constitute a computer-program mechanism.

Using keyword module430, the user may provide initial keywords444and industry446. In response to the user request to ‘Get Keywords,’ correlation module434and/or competitiveness module436may determine set of similar keywords450based on initial keywords444using the data structure (which may be located remotely from computer system400).

Then, market-specific module438may determine set of market-specific keywords452based on set of similar keywords450, industry446and other data structure218. This other data structure may include keywords associated with web pages of multiple users in different industries, such as industry A448-1and industry B448-2.

Furthermore, keyword module430may present at least the subset of set of market-specific keywords452to the user. Additionally, user feedback454may be used to modify weight in other data structure218.

Note that the user-selected keywords, which are associated with the user's web page or website, may improve rankings of the user's web page or website in response to search results that are generated using search module432.

In some embodiments, at least some of the information stored in memory424and/or at least some of the information communicated using communication module428is encrypted using encryption module440. Furthermore, in some embodiments one or more of the modules in memory424may be included in optional financial software442.

Instructions in the various modules in the memory424may be implemented in: a high-level procedural language, an object-oriented programming language, and/or in an assembly or machine language. Note that the programming language may be compiled or interpreted, e.g., configurable or configured, to be executed by the one or more processing units410.

Although the computer system400is illustrated as having a number of discrete items,FIG. 4is intended to be a functional description of the various features that may be present in the computer system400rather than a structural schematic of the embodiments described herein. In practice, and as recognized by those of ordinary skill in the art, the functions of the computer system400may be distributed over a large number of servers or computers, with various groups of the servers or computers performing particular subsets of the functions. In some embodiments, some or all of the functionality of the computer system400may be implemented in one or more application-specific integrated circuits (ASICs) and/or one or more digital signal processors (DSPs).

Computers and servers in computer systems200(FIG. 2) and/or400may include one of a variety of devices capable of manipulating computer-readable data or communicating such data between two or more computing systems over a network, including: a personal computer, a laptop computer, a mainframe computer, a portable electronic device (such as a cellular phone or PDA), a server and/or a client computer (in a client-server architecture). Moreover, network212(FIG. 2) may include: the Internet, World Wide Web (WWW), an intranet, LAN, WAN, MAN, or a combination of networks, or other technology enabling communication between computing systems.

Computer systems200(FIG. 2) and/or400may include fewer components or additional components. For example, data structure216and other data structure218inFIG. 2may be combined into a single data structure. Moreover, two or more components may be combined into a single component, and/or a position of one or more components may be changed. In some embodiments, the functionality of the computer systems200(FIG. 2) and/or400may be implemented more in hardware and less in software, or less in hardware and more in software, as is known in the art.

We now discuss a data structure.FIG. 5presents a block diagram illustrating a data structure500for use in computer system400(FIG. 4). This data structure may include keywords for different market segments510(i.e., data structure500may include other data structure218inFIGS. 2 and 4). For example, the keywords in market segment510-1may include: keywords512-1, associated weights514-1, associated users516-1, and/or associated web pages or websites518-1.

In some embodiments of data structure500, there may be fewer or additional components. Moreover, two or more components may be combined into a single component and/or a position of one or more components may be changed.