Searching multilingual documents based on document structure extraction

An approach is provided for searching multilingual documents. Structure components are extracted from multilingual documents. Based on the extracted components, the documents are grouped into classifications including respective sets of documents expressed in different respective natural languages. A natural language in a query is detected. One of the documents is selected based on the document having content indicated by the query and the natural language of the document matching the detected natural language. Structure components of the selected document are extracted. Based on the extracted structure components of the selected document, one of the classifications is identified as including the selected document. Other document(s) in the classification are identified and presented as having content that matches the content of the selected document. The natural language(s) of the other document(s) are each different from the natural language of the selected document.

BACKGROUND

The present invention relates to information retrieval, and more particularly to retrieving multilingual documents.

International business and corporate globalization require that companies communicate in many natural languages and dialects. For many instances of an event or an object, there are substantial amounts of interrelated reports, reviews, or descriptions from different perspectives and in different natural languages. Multiple versions of a single internal document of a company may be generated, where each of the versions has the same content, but is expressed in a different natural language. A user may utilize a search query expressed in a natural language in which the user is proficient in order to find multilingual versions of a document. Known information retrieval systems translate multilingual versions of a document into a single natural language, and then apply searches across the multilingual versions using that single natural language. The translation of a document is often inaccurate, especially if the document includes terminology in a domain of a specific industry. To improve translation accuracy, users must expend effort to understand the meaning of the document and know how to translate the document from one language to a different language, including how to translate terminology that is specific to a particular industry's domain.

Other known information retrieval systems require multiple search engines to search for multilingual versions of a document, where a single search query is translated into multiple natural languages and each search engine searches for text in a corresponding one of those natural languages. The translation of the search query is subject to the same inaccuracies and difficulties mentioned above.

Still other known information retrieval systems perform multilingual searching based on identifying images in a first document expressed in a first natural language and then searching for documents expressed in other natural languages that include images similar to the images in the first document. Different language versions of a document that have the same textual content, however, may not always include similar images, and therefore inaccurate search results may be generated.

Accordingly, there is a need for a technique that efficiently searches for multilingual documents without requiring translation of the documents or the search query and without requiring multiple, language-specific search engines.

SUMMARY

In one embodiment, the present invention provides a method of searching documents expressed in multiple natural languages. The method includes a computer extracting components of structures of the documents expressed in the multiple natural languages. The method includes based on the extracted components of the structures of the documents, the computer classifying the documents into classifications including respective, mutually exclusive sets of documents expressed in different respective natural languages. The documents in each set have matching content. The method further includes the computer detecting a natural language in a query. The method further includes based on the query and the detected natural language and based on a utilization of a search engine, the computer selecting a document included in the documents whose content is indicated by the query and whose natural language matches the detected natural language. The method further includes the computer extracting first components of a structure of the selected document. The method further includes based on the extracted first components, the computer identifying a classification included in the classifications as including the selected document. The method further includes the computer identifying one or more other documents in the identified classification. The method further includes the computer presenting the one or more other documents as having content that matches the content of the selected document. The one or more other documents are expressed in one or more respective natural languages different from the natural language of the selected document.

The aforementioned embodiment provides multilingual searching of documents that is efficient and does not require translation or multiple language-specific search engines. The aforementioned embodiment advantageously allows a user who is proficient in only one language to compose a search query to retrieve multilingual versions of a document without requiring the user to translate the search query, the document, or any portion of the document, and without requiring the user to understand the semantic meaning of the document or to understand domain-specific terminology used in the document.

The advantages discussed above also apply to the computer system and computer program product embodiments, which are summarized below.

In one optional aspect of the present invention, the steps of the aforementioned method are performed without translating the document, the one or more other documents, or the query. The aforementioned aspect of the present invention advantageously provides searching for multilingual documents where a user composes a search query to retrieve multilingual versions of a document without requiring the user to expend effort in a difficult and error-prone exercise of understanding the meaning of any portion of the content of the multilingual versions of the document, and where the search does not require language-specific search engines to translate the search query or the document whose language and content matches the search query.

In another optional aspect of the present invention, the step of extracting the components includes modeling the structure of a first document included in the documents as a first stream of the first components. The stream includes words of the document and other indicators of the structure of the document, without an indication of a semantic meaning of the document. The step of extracting the components further includes replacing the words in the stream with a first tag indicating a word. The step of extracting the components further includes subsequent to the step of replacing, encoding the stream as a numerical vector by utilizing a long short-term memory (LSTM) network which learns the sequences of the components. The step of classifying the documents includes determining a classification that includes the document and the one or more other documents. The classification is determined by minimizing a distance between the numerical vector and one or more other numerical vectors resulting from an encoding of one or more other streams that model the one or more other documents. The aforementioned aspect of the present invention advantageously provides a language-agnostic technique for determining multilingual documents that have the same or similar content, without requiring translation or knowledge of semantic meaning of the content of the documents. The determination of the same or similar multilingual documents advantageously utilizes an efficient comparison of densely encoded vectors which represent the structure of the documents rather than using a comparison of extremely long vectors.

In another embodiment, the present invention provides a computer program product for searching documents expressed in multiple natural languages. The computer program product includes a computer readable storage medium. Program instructions are stored on the computer readable storage medium. The computer readable storage medium is not a transitory signal per se. The program instructions are executed by a central processing unit (CPU) of a computer system to cause the computer system to perform a method. The method includes the computer system extracting components of structures of the documents expressed in the multiple natural languages. The method further includes based on the extracted components of the structures of the documents, the computer system classifying the documents into classifications including respective, mutually exclusive sets of documents expressed in different respective natural languages. The documents in each set have matching content. The method further includes the computer system detecting a natural language in a query. The method further includes based on the query and the detected natural language and based on a utilization of a search engine, the computer system selecting a document included in the documents whose content is indicated by the query and whose natural language matches the detected natural language. The method further includes the computer system extracting first components of a structure of the selected document. The method further includes based on the extracted first components, the computer system identifying a classification included in the classifications as including the selected document. The method further includes the computer system identifying one or more other documents in the identified classification. The method further includes the computer system presenting the one or more other documents as having content that matches the content of the selected document. The one or more other documents are expressed in one or more respective natural languages different from the natural language of the selected document.

In another embodiment, the present invention provides a computer system including a central processing unit (CPU); a memory coupled to the CPU; and a computer readable storage device coupled to the CPU. The storage device includes instructions that are executed by the CPU via the memory to implement a method of searching documents expressed in multiple natural languages. The method includes a computer system extracting components of structures of the documents expressed in the multiple natural languages. The method further includes based on the extracted components of the structures of the documents, the computer system classifying the documents into classifications including respective, mutually exclusive sets of documents expressed in different respective natural languages. The documents in each set have matching content. The method further includes the computer system detecting a natural language in a query. The method further includes based on the query and the detected natural language and based on a utilization of a search engine, the computer system selecting a document included in the documents whose content is indicated by the query and whose natural language matches the detected natural language. The method further includes the computer system extracting first components of a structure of the selected document. The method further includes based on the extracted first components, the computer system identifying a classification included in the classifications as including the selected document. The method further includes the computer system identifying one or more other documents in the identified classification. The method further includes the computer system presenting the one or more other documents as having content that matches the content of the selected document. The one or more other documents are expressed in one or more respective natural languages different from the natural language of the selected document.

DETAILED DESCRIPTION

Overview

Embodiments of the present invention provide an efficient search of multilingual documents without translation. The multilingual documents are documents whose contents are expressed in different respective natural languages. At least some of the documents have matching content, but are expressed in different natural languages (i.e., at least some of the documents are multilingual versions of the same document). For example, the same human resources policy manual of a corporation may exist as a first document expressed in a first language, a second document expressed in a second language, and a third document expressed in a third language, where the first, second, and third documents have matching content. The search of the multilingual documents described herein is based on a first content of a first document matching a second content of a second document if components (i.e., features) of the structure of the first document match the components of the structure of the second document, even though the contents (i.e., text) of the first and second documents may be expressed in different natural languages. The components of the structure of a document includes words, images, indicators of the start of lines, and labels that indicate, for example, space, tab, HyperText Markup Language (HTML) tag, title, subtitle, table, etc. Other components of the structure of a document may indicate the position of an image, the length of a section, the number of sentences, the number of paragraphs, the start of a sentence, and the start of a paragraph. In one embodiment, the aforementioned documents being searched are electronic structured documents that include embedded markup coding that provides structural meanings to the whole document and portions of the document. As used herein, versions of a document are instances of a document that have content that is expressed in respective languages that differ from one another, but the content expresses the same meaning in each of the versions.

As used herein, a natural language is defined as a language that has evolved naturally in humans through use and repetition without conscious planning or premeditation, and is different from constructed and formal languages that include computer programming languages and languages consciously devised to study logic. As used herein, the term “language” and “languages” means a natural language and natural languages, respectively, unless the term is modified by a reference to a constructed language and/or a formal language.

Known approaches to searching across one document and other documents that have the same content and are written in different languages utilize translation of the other documents into the language of the one document, followed by a search across the one document and the translated documents. For example, a known approach may select an English language human resources policy document and translate into English other human resource policy documents that are originally written in Chinese and Korean, and subsequently search across the documents using a query which is either in English originally, or is translated into English if the query is originally in another language. The translations used in the known approach require effort and may be inaccurate translations, which may cause the search results to be inaccurate or incomplete. Other known approaches to searching across the above-mentioned documents written in different languages involve the utilization of different search engines for each language, but still introduce inaccuracies of translation in translating a search query into the different languages, which again may cause the search results to be inaccurate or incomplete. Furthermore, a user may need to translate or understand the meaning of the content of the search results, which are expressed in different languages, in order to verify that the documents in the search results actually have the same content, but the user may not have the level of proficiency in the different languages to (i) perform the translation, (ii) understand the meaning of the documents in different languages, or (iii) understand the meaning of specialized terminology in the documents. Still other known approaches to searching across multilingual documents utilize image similarity recognition by searching a first document by one language, determining images included in the first document, and finding documents in other languages which include images similar to the images in the first document. The image similarity recognition approach may cause inaccurate search results because documents in different language versions may not always include similar images. Embodiments of the present invention overcome the aforementioned deficiencies of the known approaches of searching multilingual documents by using extracted features of document structure, under the assumption that multilingual versions of a document usually have the same features of document structure and have the same labels such as images, table, title, subtitle, and number of paragraphs. By using the extracted features of document structure, embodiments of the present invention search for and retrieve multilingual versions of a document without using translation and without requiring a user to have the multiple language proficiency to understand the meaning of the content or the meaning of special terminology in different languages in the multilingual versions of the document, thereby advantageously avoiding (i) an additional effort of translation of document content into a different language, (ii) a requirement of user proficiency in multiple languages, and (iii) a requirement of user proficiency in industry-specific terminology in multiple languages.

For example, a user utilizing a search of multilingual documents using the extracted document structure features, as disclosed herein, retrieves documents that consist of a company's product information manual, where the retrieved documents are in different languages but consist of the same content (i.e., content that expresses the same meaning). In this example, the user writes a search query in English and retrieves the product information manual in English because the user has language proficiency in English, but the user also distributes the same product information manual to first and second customers as a first retrieved document written in Chinese and a second retrieved document written in Korean, respectively, because the first and second customers have language proficiency in Chinese and Korean, respectively. In this example, the distribution of the document in different languages is completed without requiring the user to translate English into Chinese or Korean, and without requiring the user to have enough language proficiency in Chinese and Korean to understand the meaning of the content of the first and second documents, or to understand the meaning of industry-specific terminology in the first and second documents.

System for Searching Multilingual Documents

FIG. 1is a block diagram of a system100for searching documents expressed in multiple natural languages, in accordance with embodiments of the present invention. System100includes a computer102, which executes a software-based multilingual search system104, which includes the following software-based components: a structure extraction tool106, a classifier engine108, a language detection tool110, a search engine112, an extractor/collector component113, and a ranking engine114.

Structure extraction tool106receives document116-1, . . . , document116-N, where N is an integer greater than one. Structure extraction tool106extracts features of the structure of each of documents116-1, . . . ,116-N.

Classifier engine108classifies documents116-1, . . . ,116-N into mutually exclusive classifications generated by classifier engine108, so that documents that have matching extracted features are included in the same classification. Having extracted document structure features that match is an indication that the documents have the same or similar content. At least one of the classifications includes documents that have the same content but are expressed in different languages.

Language detection tool110receives a query118, which is a search query to search for a document included in document116-1, . . . , document116-N based on keyword(s). Language detection tool110detects the language in which query118is expressed. Language detection1101110sends query118to search engine112, which is a search engine that searches across documents in the detected language of query118. Search engine112generates a search result that includes one or more documents in the detected language of query118. Extractor/collector component113extracts the features of the structure of each of the documents in the search result and identifies the classification(s) generated by classifier engine108that includes each of the documents in the aforementioned search result. Extractor/collector component113retrieves the multilingual documents that are included in the identified classification(s).

Ranking engine114ranks the documents in the search result and the retrieved multilingual documents, and presents the ranked documents as ranked search results120in response to query118.

In one embodiment, ranking engine114includes a software-based adjustor122which extracts data about multiple factors, including current query language, user language, and the popularity of documents in the search result. Adjustor122generates ranked search results120by ranking the documents based on the extracted data about the multiple factors. Adjustor122also collects user feedback about search results generated by search engine112and adjusts ranked search results120according to the collected user feedback. In an alternate embodiment, ranking engine114ranks the documents according to one or more of the aforementioned multiple factors, but does not include adjustor122.

The functionality of the components shown inFIG. 1is described in more detail in the discussion ofFIG. 2,FIG. 3,FIGS. 4A-4D, andFIG. 5presented below.

Process for Searching Multilingual Searching

FIG. 2is a flowchart of a process of searching documents expressed in multiple natural languages, where the process is implemented in the system ofFIG. 1, in accordance with embodiments of the present invention. The process ofFIG. 2begins at step200. Prior to step202, multilingual search system104(seeFIG. 1) receives documents116-1, . . . ,116-N (seeFIG. 1). In step202, structure extraction tool106(seeFIG. 1) extracts components (i.e., features) of structures of documents116-1, . . . ,116-N (seeFIG. 1).

In step204, based on the components extracted in step202, classifier engine108(seeFIG. 1) generates classifications of documents116-1, . . . ,116-N (seeFIG. 1) so that documents that have matching extracted features are grouped into the same classification. Documents having the same classification is an indication that the documents have matching content. At least one of the classifications includes documents that have matching content and are expressed in different languages.

Subsequent to the classifications being generated in step204and prior to step206, multilingual search system104(seeFIG. 1) receives query118(seeFIG. 1), which is a search query to search across documents116-1, . . . ,116-N (seeFIG. 1). In step206, language detection tool110(seeFIG. 1) detects a language used in query118(seeFIG. 1).

In step208, based on query118(seeFIG. 1) and the language detected in step206, search engine112(seeFIG. 1) selects a document included in documents116-1, . . . ,116-N (seeFIG. 1), so that the content of the selected document is indicated by query118(seeFIG. 1) and the language in which the selected document is expressed matches the language detected in step206.

In step210, extractor/collector component113(seeFIG. 1) extracts first components of a structure of the document selected in step208.

In step212, based on the first components extracted in step210, extractor/collector component113(seeFIG. 1) identifies a classification included in the classifications generated in step204that includes a document whose components of its structure match the first components extracted in step210.

In step214, extractor/collector component113(seeFIG. 1) retrieves the documents in the classification identified in step212, where the retrieved documents include (1) the document selected in step208and (2) other document(s) (i) whose content matches the content of the document selected in step208and (ii) are expressed in respective language(s) that are different from the language detected in step206.

In step216, ranking engine114(seeFIG. 1) rank the documents retrieved in step214and presents the ranked documents as documents having matching content and are expressed in different languages. In one embodiment, the ranking of the retrieved documents is based on a vector of multiple factors, which include the current language of query118(seeFIG. 1), the language of the user who provided query118(seeFIG. 1), and the popularity of each of the retrieved documents. In one embodiment, adjustor122collects user feedback about the search results provided by search engine112(seeFIG. 1) and adjusts the ranking of the retrieved documents based on the collected user feedback.

In one embodiment, the extraction of components of the structure of a given document in step202and step210includes (1) modeling the structure of the document as a stream of components, where the stream includes words in the text of the document and further includes other indicators of the structure of the document, without an indication of the semantic meaning of the document; (2) replacing the words in the stream with a tag that indicates a word (e.g., replace the words “travel,” “reimbursement,” and “policy” with “word,” “word,” and “word”); and (3) subsequent to replacing the words, encoding the stream as a numerical vector by utilizing a long short-term memory (LSTM) network434in a deep neural network architecture.

In one embodiment, the generation of the classifications in step204includes determining a classification that includes a given document and one or more other documents by determining that distances are minimized between a numerical vector that encodes the structure stream that models the given document and each of one or more other numerical vectors that encode one or more other structure streams that model the one or more other documents (i.e., the distances are less than a predefined threshold distance). The identification of the classification in step212includes (1) by utilizing an LSTM network, determining another numerical vector that encodes a structure stream that models another document; (2) determining a distance between the other numerical vector and a numerical vector that encodes a structure stream that models a first document that is included in the classification; (3) determining that the distance is less than a predetermined threshold distance; and (4) based on the distance being less than the threshold distance, determining that the one or more documents included in the classification have content that matches the content of the other document.

Examples

FIG. 3is an example300of extracting features of structures of documents and classifying the documents based on the extracted features within the process ofFIG. 2, in accordance with embodiments of the present invention. Example300includes structure extraction tool106(seeFIG. 1) receiving document302, document304, and document306, and extracting (1) components308of the structure of document302, (2) components310of the structure of document304, and (3) components312of the structure of document306. The extraction of the aforementioned components is included in step202(seeFIG. 2). Classifier engine108receives components308,310, and312and determines that components310match components312and further determines that components308do not match components310or components312. Based on components308not matching components310or components312, classifier engine108generates a classification314that includes only document302. Based on components310matching components312, classifier engine108generates a classification316that includes document304and document306. The generation of classification314and classification316is included in step204(seeFIG. 2).

FIGS. 4A-4Ddepict an example of extracting and encoding features of a structure of a document within the process ofFIG. 2, in accordance with embodiments of the present invention.FIG. 4Adepicts a first portion400of the example of extracting and encoding document structure features. First exemplary portion400includes a policy document402. In step202(seeFIG. 2), structure extraction tool106(seeFIG. 1) extracts components (i.e., features) of the structure of policy document402and creates a structure stream404consisting of the aforementioned components that were extracted from policy document402. The structure stream404includes words in the textual content of policy document402, indicators of a start of a new line, an indicator of an underscore, an indicator of a table, and labels for a list.

FIG. 4Bdepicts a second portion410of the example of extracting and encoding document structure features. Second exemplary portion410includes structure stream404. Multilingual search system104(seeFIG. 1) generates a simplified structure stream412by replacing all the words included in structure stream404with the tag “word.”

FIG. 4Cdepicts a third portion430of the aforementioned example of extracting and encoding document structure features. Policy document402is a document called Policy XYZ Document which is written in English. Policy document432is also the Policy XYZ Document, but is written in Chinese. Policy document402is encoded into simplified structure stream412(seeFIG. 4B) and policy document432is encoded into a similar simplified structure stream (not shown inFIG. 4C). Multilingual search system104(seeFIG. 1) further encodes the aforementioned simplified structure streams by employing a long short-term memory (LSTM) network434in a deep neural network architecture, which continuously accepts new input and feedback from previous output to itself to memorize the meaningful part of a whole stream. Utilizing the LSTM network434transforms simplified structure stream412(seeFIG. 4B) into a first encoded structure vector436and transforms the simplified structure stream that encodes policy document432into a second encoded structure vector438. First encoded structure vector436and second encoded structure vector438are numeric, fixed length vectors. Classifier engine108(seeFIG. 1) applies a sigmoid function440to first and second encoded structure vectors436and438and determines whether sigmoid function440is minimized. If the sigmoid function440is minimized, classifier engine108determines that the policy documents402and432have content that is the same or similar, and groups the documents in the same classification.

FIG. 4Ddepicts a fourth portion450of the aforementioned example of extracting and encoding document structure features. After classifier engine108(seeFIG. 1) uses the LSTM network434(seeFIG. 4C) in a training mode across documents to determine classifications of documents that have the same or similar content, a document stream encoder452in multilingual search system104(seeFIG. 1) encodes policy document402into simplified structure stream454. Subsequently, a document structure encoder456(i.e., document structure LSTM encoder) in multilingual search system104transforms simplified structure stream454into an encoded structure vector458. In step212, multilingual search system104(seeFIG. 1) identifies a classification as including a document that matches policy document402by determining that the document in the identified classification is encoded by document structure encoder456as an encoded structure vector that matches encoded structure vector458.

By generating encoded structure vectors which are numeric, fixed length vectors, multilingual search system104(seeFIG. 1) advantageously represents documents in relatively short vectors rather than relatively long vectors representing the simplified structure streams and avoids difficulties of comparing extremely long vectors to determine documents that have the same or similar content based on the documents having the same structure. For example, a simplified structure stream may have a variable length of more than 3000, whereas the corresponding encoded structure vector generated by document structure encoder456may have a fixed length of only 100 elements.

Computer System

FIG. 5is a block diagram of a computer102that is included in the system ofFIG. 1and that implements the process ofFIG. 2, in accordance with embodiments of the present invention. Computer102is a computer system that generally includes a central processing unit (CPU)502, a memory504, an input/output (I/O) interface506, and a bus508. Further, computer102is coupled to I/O devices510and a computer data storage unit512. CPU502performs computation and control functions of computer102, including executing instructions included in program code514for multilingual search system104(seeFIG. 1) to perform a method of searching multilingual documents, where the instructions are executed by CPU502via memory504. CPU502may include a single processing unit, or be distributed across one or more processing units in one or more locations (e.g., on a client and server).

Memory504includes a known computer readable storage medium, which is described below. In one embodiment, cache memory elements of memory504provide temporary storage of at least some program code (e.g., program code514) in order to reduce the number of times code must be retrieved from bulk storage while instructions of the program code are executed. Moreover, similar to CPU502, memory504may reside at a single physical location, including one or more types of data storage, or be distributed across a plurality of physical systems in various forms. Further, memory504can include data distributed across, for example, a local area network (LAN) or a wide area network (WAN).

I/O interface506includes any system for exchanging information to or from an external source. I/O devices510include any known type of external device, including a display, keyboard, etc. Bus508provides a communication link between each of the components in computer102, and may include any type of transmission link, including electrical, optical, wireless, etc.

I/O interface506also allows computer102to store information (e.g., data or program instructions such as program code514) on and retrieve the information from computer data storage unit512or another computer data storage unit (not shown). Computer data storage unit512includes a known computer readable storage medium, which is described below. In one embodiment, computer data storage unit512is a non-volatile data storage device, such as a magnetic disk drive (i.e., hard disk drive) or an optical disc drive (e.g., a CD-ROM drive which receives a CD-ROM disk).

Memory504and/or storage unit512may store computer program code514that includes instructions that are executed by CPU502via memory504to search multilingual documents. AlthoughFIG. 5depicts memory504as including program code, the present invention contemplates embodiments in which memory504does not include all of code514simultaneously, but instead at one time includes only a portion of code514.

Further, memory504may include an operating system (not shown) and may include other systems not shown inFIG. 5.

Storage unit512and/or one or more other computer data storage units (not shown) that are coupled to computer102may include documents116-1, . . . ,116-N (seeFIG. 1), and simplified structured streams and encoded structure vectors that represent the structure of documents116-1, . . . ,116-N (seeFIG. 1).

As will be appreciated by one skilled in the art, in a first embodiment, the present invention may be a method; in a second embodiment, the present invention may be a system; and in a third embodiment, the present invention may be a computer program product.

Any of the components of an embodiment of the present invention can be deployed, managed, serviced, etc. by a service provider that offers to deploy or integrate computing infrastructure with respect to searching multilingual documents. Thus, an embodiment of the present invention discloses a process for supporting computer infrastructure, where the process includes providing at least one support service for at least one of integrating, hosting, maintaining and deploying computer readable code (e.g., program code514) in a computer system (e.g., computer102) including one or more processors (e.g., CPU502), wherein the processor(s) carry out instructions contained in the code causing the computer system to search multilingual documents. Another embodiment discloses a process for supporting computer infrastructure, where the process includes integrating computer readable program code into a computer system including a processor. The step of integrating includes storing the program code in a computer readable storage device of the computer system through use of the processor. The program code, upon being executed by the processor, implements a method of searching multilingual documents.

While it is understood that program code514for searching multilingual documents may be deployed by manually loading directly in client, server and proxy computers (not shown) via loading a computer readable storage medium (e.g., computer data storage unit512), program code514may also be automatically or semi-automatically deployed into computer102by sending program code514to a central server or a group of central servers. Program code514is then downloaded into client computers (e.g., computer102) that will execute program code514. Alternatively, program code514is sent directly to the client computer via e-mail. Program code514is then either detached to a directory on the client computer or loaded into a directory on the client computer by a button on the e-mail that executes a program that detaches program code514into a directory. Another alternative is to send program code514directly to a directory on the client computer hard drive. In a case in which there are proxy servers, the process selects the proxy server code, determines on which computers to place the proxy servers' code, transmits the proxy server code, and then installs the proxy server code on the proxy computer. Program code514is transmitted to the proxy server and then it is stored on the proxy server.

Another embodiment of the invention provides a method that performs the process steps on a subscription, advertising and/or fee basis. That is, a service provider, such as a Solution Integrator, can offer to create, maintain, support, etc. a process of searching multilingual documents. In this case, the service provider can create, maintain, support, etc. a computer infrastructure that performs the process steps for one or more customers. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement, and/or the service provider can receive payment from the sale of advertising content to one or more third parties.

The present invention may be a system, a method, and/or a computer program product at any possible technical detail level of integration. The computer program product may include a computer readable storage medium (or media) (i.e., memory504and computer data storage unit512) having computer readable program instructions514thereon for causing a processor (e.g., CPU502) to carry out aspects of the present invention.

Computer readable program instructions (e.g., program code514) described herein can be downloaded to respective computing/processing devices (e.g., computer102) from a computer readable storage medium or to an external computer or external storage device (e.g., computer data storage unit512) via a network (not shown), for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card (not shown) or network interface (not shown) in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Aspects of the present invention are described herein with reference to flowchart illustrations (e.g.,FIG. 2) and/or block diagrams (e.g.,FIG. 1andFIG. 5) of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions (e.g., program code514).

These computer readable program instructions may be provided to a processor (e.g., CPU502) of a general purpose computer, special purpose computer, or other programmable data processing apparatus (e.g., computer102) to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium (e.g., computer data storage unit512) that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.