This disclosure relates generally to Internet keyword phrase bidding, and more particularly to a method of updating prices for Internet keyword phrases using natural language processing on real-time data feeds.
As use of the Internet has grown, so has the demand on keyword phrases used in Internet searches. Individuals and companies alike now bid for keyword phrases at auctions. When a user searches a particular keyword phrase on the Internet, the results may highlight or give preferential treatment to the websites of those who have won the keyword phrase at auction.
According to one embodiment, a method for updating prices for keyword phrases may begin by receiving, at a computing device, a real-time data feed comprising a plurality of messages. The method may continue by detecting, by the computing device, a topic associated with a message in the plurality of messages using natural language processing. The topic may indicate the subject of the message. The method may continue by calculating, by the computing device, a score for the topic using temporal data associated with the message. The score may indicate the popularity of the topic. The method may continue by extracting, by the computing device, a keyword phrase from the topic. The method may conclude by determining, by the computing device, a price associated with the keyword phrase using the score.
According to another embodiment, an apparatus is provided comprising a receiver, a language processor, a ranker, and an engine. The receiver may be configured to receive a real-time data feed. The real-time data feed may comprise a plurality of messages. The language processor may be configured to detect a topic associated with a message in the plurality of messages using natural language processing. The topic may indicate the subject of the message. The language processor may be further configured to extract a keyword phrase from the topic. The ranker may be configured to calculate a score for the topic using temporal data associated with the message. The score may indicate the popularity of the topic. The engine may be configured to determine a price associated with the keyword phrase using the score.
Technical advantages of certain embodiments of the present disclosure include updating prices for Internet keyword phrases using real-time data feeds. Specifically, the prices may be updated to more accurately reflect the popularity of particular keyword phrases in real-time. Other technical advantages will be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some or none of the enumerated advantages.
For a more complete understanding of the present disclosure and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
In particular embodiments, network 110 may be the Internet. In some embodiments, network 110 may include information sources such as main stream media sources, social media sources, or other communication sources. As an example and not by way of limitation, network 110 may include newspapers, news agencies, Twitter, Facebook, blogs, forums, or Bulletin Board Systems (BBS). In particular embodiments, the information sources may produce data feeds 120. In some embodiments, data feeds 120 may be real-time data feeds 120. Data feeds 120 may include messages. As an example and not by way of limitation, data feed 120 from a news agency may include news articles.
In particular embodiments, computing device 130 may be configured to process data feeds 120 from network 110 to generate a price 140. In particular embodiments, computing device 130 may be configured to extract a message from data feed 120 and to detect a topic associated with the message using natural language processing. The topic may indicate the subject of the message. As an example and not by way of limitation, computing device 130 may be configured to detect that an article from a news agency is about an oil spill. In particular embodiments, computing device 130 may be configured to extract a keyword phrase from the topic. As an example and not by way of limitation, computing device 130 may extract the keyword phrase “oil” from the topic “oil spill.” In some embodiments, computing device 130 may be configured to extract a plurality of keyword phrases from the topic. In particular embodiments, computing device 130 may determine a price 140 associated with the keyword phrase. Because computing device 130 may process real-time data feeds 120 to determine price 140, price 140 may more accurately reflect the popularity or relevance of the keyword phrase. In particular embodiments computing device 130 may pass price 140 onto an advertising engine 150.
In particular embodiments, advertising engine 150 may be configured to administer the bidding process for keyword phrases. Advertising engine 150 may use prices 140 from computing device 130 to assess bids for keyword phrases. In particular embodiments, advertising engine 150 may administer auctions for keyword phrases more efficiently by using prices 140 from computing device 130. Because prices 140 may more accurately reflect the popularity or relevance of a keyword phrase, buyers with secret information about the keyword phrase will be less likely to win an auction with a low bid.
In particular embodiments, receiver 210 may be configured to receive a plurality of data feeds 120. Each data feed 120 may include a plurality of messages 220. In particular embodiments, receiver 210 may be configured to extract messages 220 from data feeds 120. As an example and not by way of limitation, receiver 210 may extract news articles from a data feed 120 from a news agency. Receiver 210 may be configured to pass messages 220 to language processor 230.
In particular embodiments, language processor 230 may be configured to process messages 220. As an example and not by way of limitation, language processor 230 may process messages 220 by using natural language processing techniques, such as, for example, the natural language algorithms of “Introduction to Information Retrieval” by Manning, Raghavan, and Schiitze (July, 2008). In particular embodiments, language processor 230 may be configured to detect a topic 240 from a message 220. Topic 240 may indicate the subject of message 220. As an example and not by way of limitation, language processor 230 may detect the topic 240 “oil spill” for a news article detailing the plight of marine life after an oil spill. In particular embodiments, language processor 230 may be configured to extract a keyword phrase 270 from topic 240. In some embodiments, language processor 230 may examine text from message 220 to extract keyword phrase 270. As an example and not by way of limitation, language processor 230 may be configured to extract the keyword phrase 270 “oil” from the topic 240 “oil spill.” In particular embodiments, language processor 230 may be configured to pass topic 240 to ranker 250. Ranker 250 may be configured to determine ranking 260 and score 290 for topic 240. Ranker 250 may be embodied in computer-readable media. In particular embodiments, ranking 260 may indicate the popularity or relevance of topic 240. In some embodiments, language processor 230 may be further configured to pass keyword phrase 270 to pricing engine 280.
In particular embodiments, pricing engine 280 may be configured to determine price 140 for keyword phrase 270 from ranking 260 and/or score 290. Price 140 may indicate a predicted click-through rate for keyword phrase 270. In some embodiments, a higher determined price 140 may indicate a higher predicted click-through rate. In particular embodiments, price 140 may increase for a higher ranking 260 and/or score 290. Price 140 may more accurately reflect the true market value of keyword phrase 270 because ranking 260 and score 290 may more accurately measure the popularity or relevance of keyword phrase 270 by using information from real-time data feeds 120. By using price 140, an auction system may prevent a buyer who has information that other buyers do not from underbidding on a keyword phrase 270 that is about to become popular or relevant.
In particular embodiments, score calculator 310 may be configured to calculate score 290 for topic 240. In particular embodiments, score calculator 310 may use temporal data associated with message 220 from which topic 240 was determined to calculate score 340. As an example and not by way of limitation, score calculator 310 may use the timestamp associated with message 220 to calculate score 290. As another example and not by way of limitation, score calculator 310 may use the time of download associated with message 220 to calculate score 290. In some embodiments, score calculator 310 may be configured to calculate a higher score for topic 240 the more recent message 220 was downloaded. As an example and not by way of limitation, score calculator 310 may use the following formula to calculate score 290:
where Nnews is the total number of messages 220 related to topic 240 from data feed 120 from a source of news, NBlog is the total number of messages 220 related to topic 240 from data feed 120 from a blog, NBBS is the total number of messages 220 related to topic 240 from data feed 120 from a BBS, t is the current date, tinews downloading date of the ith message 220 related to topic 240 from data feed 120 from the source of news, tiBlog is the downloading date of the jth message 220 related to topic 240 from data feed 120 from the blog, tkBBS stands for the downloading date of the kth message 220 related to topic 240 from data feed 120 from the BBS, and ωnews, ωBlog, ωBBS, λnews, λBlog, and λBBS are constants. As an example and not by way of limitation, ωnews=1, ωBlog=ωBBS=0.7, and λnews=λBlog=λBBS=1. In particular embodiments, a large number of recently downloaded messages 220 associated with topic 240 may indicate topic 240 is popular or relevant, and score calculator 310 may calculate a high score 340 for topic 240. In particular embodiments, score calculator 310 may be configured to write score 290 into ranking-topic-score table 330.
In particular embodiments, rank calculator 320 may be configured to receive score 290. Rank calculator 320 may be configured to determine a ranking 260 for topic 240 based on score 290, and to write the determined ranking 260 to rank topic score table 330. Rank calculator 320 may be configured to determine a higher rank for topic 240 the higher score 290 is. In particular embodiments, using ranking-topic-score table 330, rank calculator 320 may compare a first topic's 240 score 290 with a second topic's 240 score 290 to determine a ranking 260 for the first topic 240.
In particular embodiments, rank calculator 320 may determine a ranking 260 that indicates the popularity or relevance of a topic 240. Ranking 260 may be used to determine or update pricing for particular keyword phrases 270 as topics 240 become more or less popular or relevant. As an example and not by way of limitation, there may be a sudden rise in the number of news articles, blog postings, and BBS messages about oil spills. Computing device 130 may detect a rise in the number of messages relating to oil spills and increase ranking 260 for the keyword phrase 270 “oil.” Pricing engine 280 may then increase price 140 for the keyword phrase 270 “oil.” An increasing price 140 may indicate to potential buyers that keyword phrase 270 is becoming popular or relevant, and may prevent buyers from underbidding on keyword phrase 270.
In particular embodiments, by analyzing real-time data feeds, method 400 may provide prices that more accurately reflect the true market value of a keyword phrase. These prices may be used by auction administrators or auction systems to prevent a buyer with secret information from underbidding on a keyword phrase that is increasing in popularity or relevance.
Although the present disclosure includes several embodiments, changes, substitutions, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present disclosure encompass such changes, substitutions, variations, alterations, transformations, and modifications as fall within the spirit and scope of the appended claims.