Systems and methods for extracting financial information from content

In one example, when a user reads content on a web browser, the content may contain information about companies, and may suggest, to the user, various financial transactions to be performed with respect to those companies. For example, the user may want to react to financial news about a company by buying or selling stock in the company. A software component (e.g., a browser plug-in) may be used to evaluate content that the user is reading, and to display a user interface that allows the user to perform financial transactions based on the content. For example, if the user reads a news article about a company, the software component may display an interface that shows the ticker symbol of the company's stock and allows the user to initiate a transaction to buy or sell that stock.

BACKGROUND

Many tasks that were traditionally done by other mechanisms have been migrated to computers. For example, people now typically read news on a web browser or other content readers, whereas in the past they would have read print newspapers or magazines. Also, many financial transactions are now performed on web browsers or other types of programs, whereas in the past such transactions involved telephone calls or in-person visits to financial institutions such as banks or stock brokerages. Computers have also engendered some tasks that have no clear analog in the pre-computer world—e.g., reading and posting to blogs.

The migration of news, finance, and other fields of endeavor to computers allows tasks related to these areas to be performed in one place. Moreover, using a computer to perform various different kinds of tasks allows synergy between the tasks. For example, a news article might inspire a financial transaction, and performing the tasks of news-reading and financial transactions together on a computer allows a person to switch from one task to the other at close to the speed of thought. However, due to the lack of effective tools, many opportunities to use the synergies that result from performing different tasks on a computer have not been realized.

SUMMARY

Many types of content—e.g., news, blogs, etc.—may contain information that is related to finance. A person may wish to take action based on the financial information contained in the content. A tool may be provided that extracts certain types of financial information from content, and presents an interface to allow the person to take action.

For example, a person might use a web browser to read an article about energy. The article might contain positive or negative news about a particular oil company, and the person might want to act on that news by buying, selling, shorting, etc., stock in the company. The tool may be used to extract from the article the name of the company. The tool may then identify financial instruments associated with that company (e.g., stocks, bonds, etc.). The person who is reading the article may have an account open with a financial institution (e.g., an on-line brokerage) through which financial instruments may be traded, and the tool may be aware of this account. The tool may then act as an interface to the person's account by offering a user interface (UI) through which the person can trade the financial instruments that the tool has identified.

In one example, the tool may take the form of a browser plug-in or control. The tool may be installed to work with a particular browser, and may evaluate content that is accessed through the browser. When the tool identifies the name of a company or some other type of information that suggests an opportunity for a financial transaction, the tool may present to the user some type of user interface (UI) element that identifies one or more financial instruments and offers the user the chance to trade the instruments.

DETAILED DESCRIPTION

When people access content with their computers (e.g., by reading news articles, blogs, etc.), that content may suggest action that the person may wish to take with their investment portfolio. For example, a news article may suggest the rising or falling fortunes of an oil company, an automobile company, a computer company, etc. The person who is reading the article may wish to buy or sell investments based on the news. An article suggesting that a company's business prospects are about to increase (or decrease) may suggest a reason to buy (or to sell) that company's stock. Or, an upgrade (or downgrade) in the company's credit rating may suggest a reason to buy (or to sell) the company's bonds. Any type of news could have financial or economic consequences, so any type of news might suggest reasons for a person to engage in financial transactions to adjust his or her financial positions.

Many sources of information (e.g., news, blogs, discussion groups, analysts' reports, etc.) may be accessed through a computer. Also, various types of financial transactions (e.g., buying or selling of stocks and bonds, banking deposits or withdrawals, etc.) may be performed through a computer. However, existing tools often fail to link the acquisition of information with the performance of a transaction. If a person is reading the web site of a financial magazine and reads something that suggests a reason to buy a certain stock, the person typically has to open a new browser window or tab, navigate to a financial institution's web site, identify the stock involved, and place an order for the stock.

The subject matter herein may be used to facilitate the use of information to perform financial transactions. A tool may be provided that evaluates content that a person is reading, and then provides a UI that allows the person to perform financial transactions related to the content. In one example, the tool takes the form of a browser plug-in or control, although the tool could take any form. The tool may include a component that extracts information from the content. For example, the tool might look for names of companies in the content, and then may look up the stock ticker symbols associated with those companies. The tool may then present the ticker symbol of the identified companies as part of a UI that allows a person to engage in transactions involving the stocks represented by those ticker symbols.

Extraction of information from documents could take various forms. In one example, the tool may perform a word search for names of companies that appear in the content (e.g., “Intel”, “Exxon”, etc.). In another example, the tool may attempt to extract information based on more complex rules. For example, using a knowledge base, a sophisticated extraction system might be able to infer that the phrase “largest petroleum company based in the Netherlands” refers to “Royal Dutch Shell,” even if the name “Shell” is never stated in the document.

Turning now to the drawings,FIG. 1shows an example user interface100, which illustrates aspects of the subject matter that is described herein. User interface100, in this example, takes the form of a window in which web browser102executes. Browser102includes a navigation bar104, which indicates the Uniform Resource Locator (URL) of a web page to be displayed. In the example ofFIG. 1, navigation bar104shows the URL of an example news web site named news.example.com, although any URL could appear in navigation bar104.

The web site referenced by that URL contains some form of content. In this example, the content is news content106, which may be displayed by browser102. News content106may include text, which may reference various companies. In one example, a reference to a company is made explicitly by name: The “XYZ Oil Company” (item108) is explicitly mentioned in the text. In another example, a reference to a company may be made implicitly: The phrase “the largest oil company in New Guinea” (item110) may refer to a specific company, although this phrase does not explicitly identify the company by name.

Browser102may be software that is extensible. For example, some browsers (e.g., the MOZILLA FIREFOX browsers) are extensible through “plug-ins.” Other types of browsers (e.g., the MICROSOFT INTERNET EXPLORER browsers) are extensible through ActiveX controls. Any appropriate component may be used to extend a browser, although the type of component to be used may depend on the type of browser to be extended. For the purpose of illustration, it will be assumed that browser102is extensible through plug-ins, although the subject matter herein encompasses any type of browser, and any type of components that might be used to extend that browser's functionality.

One example of a plug-in that may be added to browser102is a trading plug-in. For purpose of illustration, the trading plug-in is shown as a visible toolbar112, although the trading plug-in might operate behind the scenes in browser102without manifesting itself as a visible toolbar.

Regardless of the visible form that the trading plug-in might take, the trading plug-in may evaluate web content that has been accessed by browser102, and may suggest transactions to be performed based on that content. For example, the plug-in may contain the functionality to evaluate content106in order to identify companies that are mentioned in that content. With reference to the specific content106that is shown inFIG. 1, the plug-in may have the functionality to identify a phrase such as “XYZ oil company” (item108) as the name of a company. Depending on the level of sophistication of the plug-in, it may also be able to infer names of companies form more oblique phrases. For example, if the largest oil company in New Guinea is the “New Guinea Petroleum Company,” the plug-in may have the functionality to identify the phrase “largest oil company in New Guinea” as referring to this company, even though the name of the company is not explicitly stated.

When the plug-in detects information that could be used to suggest a financial transaction (e.g., the name of a company in which a user might want to buy stock), the plug-in may display a user interface element114, which offers a user the chance to perform a financial transaction. For example, user interface element114may offer a user the chance to buy and/or sell stock in XYZ company and the New Guinea Petroleum Company. User interface element114may identify these companies by their ticker symbols (XYZ and NGPC, respectively). It may also provide elements through which a user may enter the number of shares to be bought and/or sold (elements116), and buttons118through which a user may initiate a transaction. The buying or selling of stock is an example of a financial transaction that the plug-in may facilitate, although the plug-in could facilitate other types of financial transactions. For example, if a bank is named in an article, the plug-in could display a user interface that allows a user to deposit into, and/or withdraw money from, the named bank. Or, if the company identified by the plug-in borrows money through credit markets, then plug-in could offer the user the chance to buy and/or sell bonds and/or commercial paper issued by the company. Any type of financial transaction could be proposed and/or facilitated by the plug-in.

WhileFIG. 1shows an example web browser with a plug-in toolbar, the subject matter herein could be implemented in any form and is not limited to this example.

FIG. 2shows example components that may be used to facilitate financial transactions based on content.

Browser102is a program that executes on computer202. Browser102may be any type of browser although, in the example ofFIG. 2, browser102is one that is extensible by way of plug-ins. One example of a plug-in that is used to extend the functionality of browser102is trading plug-in204. Trading plug-in204, in turn, may include various sub-components that implement various parts of its functionality.

One example sub-component of trading component204is on-site analysis module206. On-site analysis module206evaluates content that is accessed by browser102(e.g., web pages that browser102has retrieved from specific URLs), and identifies information from which financial transactions may be suggested. For example, on-site analysis module206may identify the names of specific companies mentioned in a piece of content, so that trading plug-in204may suggest trading stock in those companies. On-site analysis module206is “on-site” in the sense that it performs analysis on the same machine as browser102is running (computer202). As described subsequently, on-site analysis module206may be assisted by an analysis machine220that is located at a place other than at computer202(e.g., analysis machine may be a remote server that is accessed through a network). Any analysis task may be performed by on-site analysis module206, or by an analysis machine located elsewhere, or by any combination of these components.

User-interface (UI) presentation module210may be used by trading plug-in204in order to present a user-interface that offers a user the chance to perform financial transactions. For example, UI element114(shown inFIG. 1) may be generated and/or presented to a user by UI presentation module210. UI presentation module might present a UI in the form of a pop-up window, a dialog box, a drop-down menu, or any other form.

User login credentials212are the credentials (e.g., username and password combination, or some other type of credential) that may be used by trading plug-in204to log into a server where financial transactions may be performed. In one example, trading plug-in204facilitates financial transactions by suggesting transactions to perform, where the actual transactions may be performed on a machine (e.g., trading machine216) with which a user has an account. For example, trading plug-in204may suggest to the user that he or she buy or sell shares of XYZ company, but the actual trade—if the user chooses to make that trade—may be performed by a trading web site with which a user has an account. Although the user may be able to use the UI element presented by trading plug-in204in order to specify that he or she wants to perform the trade (e.g., by clicking one of buttons118, shown inFIG. 1), if the user so indicates then trading plug-in204may act as a sort of client that acts on behalf of the user to perform the trade with the trading web site with which the user has an account. In this case, trading plug-in204presents the user's login credentials212to the trading web site and performs the trade that the user has requested. Login-credentials212may be stored in information store208(as shown in the example ofFIG. 2), although login credentials212could be stored in any manner.

Trading plug-in204may also include a communication component214. As shown inFIG. 2, trading plug-in may communicate with various remote entities, such as trading machine216and analysis machine220. Communication component214may be used to facilitate communication between trading plug-in214and these remote entities.

As previously noted, some or all of the content analysis that trading plug-in204provides may be performed by analysis machine220, which may be remote from the computer202on which trading plug-in204operates. For example, certain types of analysis (e.g., sophisticated feature extraction techniques) may involve more computational effort, or access to more data, than would be available on computer202. For this reason (or for any other reason), trading plug-in204may consult with analysis machine220in order to perform some of the analysis of content that has been accessed through a web browser. Trading plug-in204may communicate with analysis machine through communication component214, and through a network (such as the Internet). Analysis machine220may, for example, be a server computer, although analysis machine220could be any type of machine.

Database218may contain a corpus of information that may be used (e.g., by on-site analysis module206, or by analysis machine220) to analyze content that has been accessed with a web browser.

FIG. 3shows an example process300in which content may be analyzed, and in which transactions based on the content may be proposed and/or facilitated. Before turning to a description ofFIG. 3, it is noted thatFIG. 3is described, by way of example, with reference to components shown inFIGS. 1 and 2, although these processes may be carried out in any system and are not limited to any particular scenario. Additionally, the flow diagram ofFIG. 3shows an example in which stages of a process are carried out in a particular order, as indicated by the lines connecting the blocks, but the various stages shown may be performed in any order, or in any combination or sub-combination.

At302, a user navigates to content. For example, a user might type a URL into a navigation bar, or retrieve a bookmarked page, etc. Content could be navigated to in any manner. An example type of content to which a user might navigate is a news web site that contains financial news, although the user could navigate to any type of content.

At304, software (e.g., trading plug-in204, shown inFIG. 2) examines the content. At306, an analysis of the content may be performed by on-site software. For example, on-site module206(which is an example of such on-site software) may analyze the content. Various types of analysis may be performed. One type of analysis is a word search308. For example, a search may be performed to determine whether the names of particular companies appear in the content. Another type of analysis that may be performed is feature extraction310. For example, sophisticated feature extraction techniques that attempt to derive meaning from the context of certain words may be used to extract information from the document, when such information cannot be extracted by simple word analysis.

As previously noted, some or all of the analysis of content may be performed by a remote component, such as analysis machine220(shown inFIG. 2). Thus, at312, some information that is obtained or derived from the content to be analyzed may be sent to a remote component for analysis. At314, software present at that remote component may perform analysis of the information that has been sent to it. Like the analysis that may have been performed by an on-site component, the analysis performed by the remote component may, for example, include word search308and/or feature extraction310.

At316, one or more financial instruments are selected based on the analysis that has been performed by on-site software and/or by a remote component. Any types of financial instruments could be selected—e.g., stocks318, bonds320, or any other type of financial instrument (at322). The particular instruments selected may depend on the content being analyzed. For example, if the content contains the names of companies, then various types of securities (e.g., common stock, preferred stock, options, warrants, etc.) may be selected. If the content contains the name of a bank, then either stock in the bank, or instruments issued by the bank (e.g., certificates of deposit) could be selected. If the content contains the names of companies that issue debt instruments, then the financial instruments selected might include the stock of those companies as well as bonds issued by those companies. In general, the financial instruments selected could be any type of instruments that are appropriately suggested by the content being analyzed.

At324, a UI element is presented to a user that would allow the user to perform financial transactions involving the selected instruments. For example, if stocks are selected, then the UI element may present the ticker symbols of the stocks and offer the user the chance to buy or to sell shares of those stocks. If the financial instruments are bank deposits, then the UI element might offer the user a chance to make a deposit or withdrawal. User interface element114(shown inFIG. 1) is an example of a UI element that could be presented to a user to allow the user to trade stocks.

As previously noted, the software that presents the UI may act as a type of client that performs transactions with a server on behalf of a user. For example, the UI might allow the user to request a stock trade through a trading web site with which he or she has an account. Thus, in order to access such a server, the user's login credentials may be presented to that server (at326). At328, the transaction requested by the user may be performed.

The subject matter described herein may be implemented through the use of a computer system, or other type of device that has some computing mechanism(s).FIG. 4shows an example computing environment in which example embodiments and aspects may be implemented. The computing system environment is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality.

Numerous other general purpose or special purpose computing system environments or configurations may be used. Examples of well known computing systems, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers (PCs), server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, network PCs, minicomputers, mainframe computers, embedded systems, distributed computing environments that include any of the previously-described systems or devices, and the like.

With reference toFIG. 4, an example system for implementing aspects described herein includes a computing device, such as computing device400. In its most basic configuration, computing device400typically includes at least one processing unit402and memory404. Depending on the exact configuration and type of computing device, memory404may be volatile (such as random access memory (RAM)), non-volatile (such as read-only memory (ROM), flash memory, etc.), or some combination of the two. This most basic configuration is illustrated inFIG. 4by dashed line406.

Computing device400may have additional features/functionality. For example, computing device400may include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated inFIG. 4by removable storage408and non-removable storage410.

Computing device400typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computing device400and includes both volatile and non-volatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media.

Computing device400may also have input device(s)414such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s)416such as a display, speakers, printer, etc. may also be included. All these devices are well known in the art and need not be discussed at length here.