Abstract:
A computer-aided reading system offers assistance to a user who is reading in a non-native language, as the user needs help, without requiring the user to divert attention away from the text. In one implementation, the reading system is implemented as a reading wizard for a browser program. The reading wizard is exposed via a graphical user interface (UI) that allows the user to select a word, phrase, sentence, or other grouping of words in the non-native text, and view a translation of the selected text in the user&#39;s own native language. The translation is presented in a window or pop-up box located near the selected text to minimize distraction.

Description:
RELATED APPLICATION  
       [0001]    This application stems from and claims priority to U.S. Provisional Application Serial No. 60/199,288 filed on Apr. 24, 2000, the disclosure of which is expressly incorporated herein by reference. This application is also related to U.S. patent application Ser. No. 09/556,229, filed on Apr. 24, 2000, the disclosure of which is incorporated by reference herein. 
     
    
     
       TECHNICAL FIELD  
         [0002]    The present invention relates to a machine-aided reading systems and methods. More particularly, the present invention relates to a user interface and underlying architecture that assists users with reading non-native languages.  
         BACKGROUND  
         [0003]    With the rapid development of the Internet, computer users all over the world are becoming increasingly more exposed to writings that are penned in non-native languages. Many users are entirely unfamiliar with non-native languages. Even for a user who has had some training in a non-native language, it is often difficult for that user to read and comprehend the non-native language.  
           [0004]    Consider the plight of a Chinese user who accesses web pages or other electronic documents written in English. The Chinese user may have had some formal training in English during school, but such training is often insufficient to enable them to fully read and comprehend certain words, phrases, or sentences written in English. The Chinese-English situation is used as but one example to illustrate the point. This problem persists across other language boundaries.  
           [0005]    Accordingly, this invention arose out of concerns associated with providing machine-aided reading systems and methods that help computer users read and comprehend electronic writings that are presented in non-native languages.  
         SUMMARY  
         [0006]    A computer-aided reading system offers assistance to a user who is reading in a non-native language, as the user needs help, without requiring the user to divert attention away from the text.  
           [0007]    In one implementation, the reading system is implemented as a reading wizard for a browser program. The reading wizard is exposed via a graphical user interface (UI) that allows the user to select a word, phrase, sentence, or other grouping of words in the non-native text, and view a translation of the selected text in the user&#39;s own native language. The translation is presented in a window or pop-up box located near the selected text to minimize distraction.  
           [0008]    In one aspect, a core of the reading wizard includes a shallow parser, a statistical word translation selector, and a translation generator. The shallow parser parses phrases or sentences of the user-selected non-native text into individual translation units (e.g., phrases, words). In one implementation, the shallow parser segments the words in the selected text and morphologically processes them to obtain the morphological root of each word. The shallow parser employs part-of-speech (POS) tagging and base noun phrase (baseNP) identification to characterize the words and phrases for further translation selection. The POS tagging and baseNP identification may be performed, for example, by a statistical model. The shallow parser applies rules-based phrase extension and pattern matching to the words to generate tree lists.  
           [0009]    The statistical word translation selector chooses top candidate word translations for the translation units parsed from the non-native text. The word translation selector generates all possible translation patterns and translates the translation units using a statistical translation and language models. The top candidate translations are output.  
           [0010]    The translation generator translates the candidate word translations to corresponding phrases in the native language. The translation generator uses, in part, a native language model to help determine proper translations. The native words and phrases are then presented via the UI in proximity to the selected text. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]    [0011]FIG. 1 is a block diagram of a computer system that implements a reading system with a cross-language reading wizard.  
         [0012]    [0012]FIG. 2 is a block diagram of an exemplary shallow parser in accordance with one embodiment.  
         [0013]    [0013]FIG. 3 is a diagram that is useful in understanding processing that takes place in accordance with one embodiment.  
         [0014]    [0014]FIG. 4 is a diagram that is useful in understanding the FIG. 3 diagram.  
         [0015]    [0015]FIG. 5 is a flow diagram that describes steps in a method in accordance with one embodiment.  
         [0016]    [0016]FIG. 6 is a diagram that is useful in understanding processing that takes place in accordance with one embodiment.  
         [0017]    [0017]FIG. 7 is a flow diagram that describes steps in a method in accordance with one embodiment.  
         [0018]    [0018]FIG. 8 is a block diagram of an exemplary translation generator in accordance with one embodiment.  
         [0019]    FIGS.  9 - 13  show various exemplary user interfaces in accordance with one embodiment. 
     
    
     DETAILED DESCRIPTION  
       [0020]    Overview  
         [0021]    A computer-aided reading system helps a user read a non-native language. For discussion purposes, the computer-aided reading system is described in the general context of browser programs executed by a general-purpose computer. However, the computer-aided reading system may be implemented in many different environments other than browsing (e.g., email systems, word processing, etc.) and may be practiced on many diverse types of devices.  
         [0022]    The embodiments described below can permit users who are more comfortable communicating in a native language, to extensively read non-native language electronic documents quickly, conveniently, and in a manner that promotes focus and rapid assimilation of the subject matter. User convenience can be enhanced by providing a user interface with a translation window closely adjacent the text being translated. The translation window contains a translation of the translated text. By positioning the translation window closely adjacent the translated text, the user&#39;s eyes are not required to move very far to ascertain the translated text. This, in turn, reduces user-perceptible distraction that might otherwise persist if, for example, the user were required to glance a distance away in order to view the translated text.  
         [0023]    User interaction is further enhanced, in some embodiments, by virtue of a mouse point translation process. A user is able, by positioning a mouse to select a portion of text, to quickly make their selection, whereupon the system automatically performs a translation and presents translated text to the user.  
         [0024]    Exemplary System Architecture  
         [0025]    [0025]FIG. 1 shows an exemplary computer system  100  having a central processing unit (CPU)  102 , a memory  104 , and an input/output (I/O) interface  106 . The CPU  102  communicates with the memory  104  and I/O interface  106 . The memory  104  is representative of both volatile memory (e.g., RAM) and non-volatile memory (e.g., ROM, hard disk, etc.). Programs, data, files, and may be stored in memory  104  and executed on the CPU  102 .  
         [0026]    The computer system  100  has one or more peripheral devices connected via the I/O interface  106 . Exemplary peripheral devices include a mouse  110 , a keyboard  112  (e.g., an alphanumeric QWERTY keyboard, a phonetic keyboard, etc.), a display monitor  114 , a printer  116 , a peripheral storage device  118 , and a microphone  120 . The computer system may be implemented, for example, as a general-purpose computer. Accordingly, the computer system  100  implements a computer operating system (not shown) that is stored in memory  104  and executed on the CPU  102 . The operating system is preferably a multi-tasking operating system that supports a windowing environment. An example of a suitable operating system is a Windows brand operating system from Microsoft Corporation.  
         [0027]    It is noted that other computer system configurations may be used, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. In addition, although a standalone computer is illustrated in FIG. 1, the language input system may be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network (e.g., LAN, Internet, etc.). In a distributed computing environment, program modules may be located in both local and remote memory storage devices.  
         [0028]    Exemplary Reading System  
         [0029]    The computer system  100  implements a reading system  130  that assists users in reading non-native languages. The reading system can provide help at the word, phrase, or sentence level. The reading system is implemented in FIG. 1 as a browser program  132  stored in memory  104  and executed on CPU  102 . It is to be appreciated and understood that the reading system described below can be implemented in contexts other than browser contexts.  
         [0030]    The reading system  130  has a user interface  134  and a cross-language reading wizard  136 . The UI  134  exposes the cross-language reading wizard  136 . The browser program  132  may include other components in addition to the reading system, but such components are considered standard to browser programs and will not be shown or described in detail.  
         [0031]    The reading wizard  136  includes a shallow parser  140 , a statistical word translation selector  142 , and a translation generator  144 .  
         [0032]    Exemplary Shallow Parser  
         [0033]    The shallow parser  140  parses phrases or sentences of the selected non-native text into individual translation units (e.g., phrases, words).  
         [0034]    [0034]FIG. 2 shows shallow parser  140  in a little more detail in accordance with one embodiment. The shallow parser can be implemented in any suitable hardware, software, firmware or combination thereof. In the illustrated and described embodiment, the shallow parser is implemented in software.  
         [0035]    As shown, shallow parser  140  comprises a word segment module  200 , a morphological analyzer  202 , a part-of-speech (POS) tagging/base noun phrase identification module  204 , a phrase extension module  206 , and a pattern or template matching module  208 . Although these components are shown as individual components, it should be appreciated and understood that the components can be combined with one another or with other components.  
         [0036]    In accordance with the described embodiment, shallow parser  140  segments words in text that has been selected by a user. It does this using word segment module  200 . The shallow parser then uses morphological analyzer  202  to morphologically process the words to obtain the morphological root of each word. The morphological analyzer can apply various morphological rules to the words in order to find the morphological root of each word. The rules that morphological analyzer  202  uses can be developed by a person skilled in the particular language being analyzed. For example, one rule in English is that the morphological root of words that end in “ed” is formed by either removing the “d” or the “ed”.  
         [0037]    The shallow parser  140  employs part-of-speech (POS) tagging/base noun phrase (baseNP) identification module  204  to characterize the words and phrases for further translation selection. The POS tagging and baseNP identification can be performed, for example, by a statistical model, an example of which is described below in a section entitled “POS tagging and baseNP Identification” just below. The shallow parser  140  uses phrase extension module  206  to apply rule-based phrase extension to the words characterized by POS tagging/base noun phrase identification module  204 . One goal of the phrase extension module is to extend a base noun phrase to a more complex noun phrase. For example, “baseNP of baseNP” is the more complex noun phrase of the “baseNP” phrase. The shallow parser  140  also uses patterning or template matching module  208  to generate tree lists. The patterning or template matching module is used for translation and recognizes that some phrase translation is pattern dependent, and is not directly related to the words in the phrases. For example, the phrase “be interested in baseNP” contains a pattern (i.e. “baseNP”) that is used to form a more complex translation unit for translation. The words “be interested in” are not directly related to the pattern that is used to form the more complex translation unit.  
         [0038]    POS Tagging and BaseNP Identification  
         [0039]    The following discussion describes a statistical model for automatic identification of English baseNP (Noun Phrase) and constitutes but one way of processing selected text so that a tree list can be generated. The described approach uses two steps: the N-best Part-Of-Speech (POS) tagging and baseNP identification given the N-best POS-sequences. The described model also integrates lexical information. Finally, a Viterbi algorithm is applied to make a global search in the entire sentence which permits a linear complexity for the entire process to be obtained.  
         [0040]    Finding simple and non-recursive base Noun Phrase (baseNP) is an important subtask for many natural language processing applications, such as partial parsing, information retrieval and machine translation. A baseNP is a simple noun phrase that does not contain other noun phrase recursively. For example, the elements within [. . . ] in the following example are baseNPs, where NNS, IN VBG etc are part-of-speech (POS) tags. POS tags are known and are described in Marcus et al.,  Building a Large Annotated Corpus of English: the Penn Treebank,  Computational Linguistics, 19(2): 313-330, 1993.  
         [0041]    [Measures/NNS] of/IN [manufacturing/VBG activity/NN] fell/VBD more/RBR than/IN [the/DT overall/JJ measures/NNS]./.  
         [0042]    The Statistical Approach  
         [0043]    In this section, the two-pass statistical model, parameters training and the Viterbi algorithm for the search of the best sequences of POS tagging and baseNP identification are described. Before describing the algorithm, some notations that are used throughout are introduced.  
         [0044]    Let us express an input sentence E as a word sequence and a sequence of POS respectively as follows: 
         [0045]    E=w 1  w 2  . . . w n−1  w n   
         [0046]    T=t 1  t 2  . . . t n−1  t n   
         [0047]    where n is the number of words in the sentence, t i  is the POS tag of the word w i .  
         [0048]    Given E, the result of the baseNP identification is assumed to be a sequence, in which some words are grouped into baseNP as follows 
         [0049]    . . . w l−1  [w l  w l+1  . . . w j ] w j+1  . . .  
         [0050]    The corresponding tag sequence is as follows: 
           B= . . . t   l−1   [t   l   t   l+1    . . . t   j   ]t   j+1   . . . = . . . t   l−1   b   l,j   t   j+1   . . . =n   1   n   2    . . . n   m   (a) 
         [0051]    in which b i,j  corresponds to the tag sequence of a baseNP: [t l  t l+1  . . . t j ]. b i,j  may also be thought of as a baseNP rule. Therefore B is a sequence of both POS tags and baseNP rules. Thus 1≦m≦n, n l ε(POS tag set∪baseNP rules set). This is the first expression of a sentence with baseNP annotated. Sometimes, we also use the following equivalent form: 
           Q=  . . . ( t   l−1   , bm   l−1 )( t   l   ,bm   l )( t   l+1   bm   i+1 ) . . . ( t   j   bm   j )( t   j+1   ,bm   j+1 ) . . . = q   1   q   2    . . . q   n   (b) 
         [0052]    where each POS tag t i  is associated with its positional information bm i  with respect to baseNPs. The positional information is one of {F, I, E, O, S}. F, E and I mean respectively that the word is the left boundary, right boundary of a baseNP, or at another position inside a baseNP. O means that the word is outside a baseNP. S marks a single word baseNP.  
         [0053]    For example, the two expressions of the example given above are as follows: 
           B=[NNS]IN[VBG NN]VBD RBR IN[DT JJ NNS]   (a) 
           Q= ( NNS S )( IN O )( VBG F )( NN E )( VBD O )( RBR O )( IN O )( DT F )( JJ I )( NNS E ) (. O )  (b) 
         [0054]    An ‘Integrated’ Two-Pass Procedure  
         [0055]    The principle of the described approach is as follows. The most probable baseNP sequence B* may be expressed generally as follows:  
         B   *     =       argmax   B     (     p        (     B           E   )       )                               
 
         [0056]    We separate the whole procedure into two passes, i.e.:  
               B   *     ≈       argmax   B     (     P   (     T           E   )     ×     P        (     B             T   ,   E     )       )                     (   1   )                               
 
         [0057]    In order to reduce the search space and computational complexity, we only consider the N best POS tagging of E, i.e.  
               T        (     N   -   best     )       =       argmax       T   =     T   1       ,   …   ,     T   N         (     P        (     T           E   )       )                 (   2   )                               
 
         [0058]    Therefore, we have:  
               B   *     ≈       argmax     B   ,     T   =     T   1       ,   …   ,     T   N         (     P   (     T           E   )     ×     P        (     B             T   ,   E     )       )                     (   3   )                               
 
         [0059]    Correspondingly, the algorithm is composed of two steps: determining the N-best POS tagging using Equation (2), and then determining the best baseNP sequence from those POS sequences using Equation (3). The two steps are integrated together, rather than separated as in other approaches. Let us now examine the two steps more closely.  
         [0060]    Determining the N Best POS Sequences  
         [0061]    The goal of the algorithm in the first pass is to search for the N-best POS-sequences within the search space (POS lattice). According to Bayes&#39; Rule, we have  
         P        (     T   |   E     )       =         P        (     E   |   T     )       ×     P        (   T   )           P        (   E   )                               
 
         [0062]    Since P(E) does not affect the maximizing procedure of P(T|E), equation (2) becomes  
               T        (     N   -   best     )       =       argmax       T   =     T   1       ,   …   ,     T   N         (       P        (     T           E   )       )       =       argmax       T   =     T   1       ,   …   ,     T   N         (     P        (     E           T   )     ×     P        (   T   )         )                     (   4   )                               
 
         [0063]    We now assume that the words in E are independent. Thus  
               P        (     E   |   T     )       ≈       ∏     i   =   1     n          P        (       w   i     |     t   i       )                 (   5   )                               
 
         [0064]    We then use a trigram model as an approximation of P(T), i.e.:  
               P        (   T   )       ≈       ∏     i   =   1     n          P        (         t   i     |     t     i   -   2         ,     t     i   -   1         )                 (   6   )                               
 
         [0065]    Finally we have  
               T        (     N   -   best     )       =         argmax       T   =     T   1       ,   …              ,     T   N              (     P        (     T   |   E     )       )       =       argmax       T   =     T   1       ,   …              ,     T   N              (       ∏     i   =   1     n            P        (       w   i     |     t   i       )       ×     P        (         t   i     |     t     i   -   2         ,     t     i   -   1         )           )                 (   7   )                               
 
         [0066]    In the Viterbi algorithm of the N best search, P(w i |t i ) is called the lexical generation (or output) probability, and P(t i |t i−2 ,t i−1 ) is called the transition probability in the Hidden Markov Model. The Viterbi algorithm is described in Viterbi,  Error Bounds for Convolution Codes and Asymptotically Optimum Decoding Algorithm,  IEEE Transactions on Information Theory IT-13(2): pp. 260-269,  April, 1967.  
         [0067]    Determining the baseNPs  
         [0068]    As mentioned before, the goal of the second pass is to search the best baseNP-sequence given the N-best POS-sequences.  
         [0069]    Considering E, T and B as random variables, according to Bayes&#39; Rule, we have  
                 P        (     B   |   TE     )       =         P        (     B   |   T     )       ×     P        (       E   |   B     ,   T     )           P        (     E   |   T     )                
              Since                   P        (     B   |   T     )         =           P        (     T   |   B     )       ×     P        (   B   )           P        (   T   )                       we                 have       ,     
            P        (       B   |   T     ,   E     )       =         P        (       E   |   B     ,   T     )       ×     P        (     T   |   B     )       ×     P        (   B   )             P        (     E   |   T     )       ×     P        (   T   )                       (   8   )                               
 
         [0070]    Because we search for the best baseNP sequence for each possible POS-sequence of the given sentence E, P(E|T)×P(T)=P(E∩T) const. Furthermore, from the definition of B, during each search procedure, we have  
         P        (     T   |   B     )       =       ∏     i   =   1     n          P   (       (       t   i     ,   …              ,       t   j     |     b     i   ,   j           )     =   1.                               
 
         [0071]    Therefore, equation (3) becomes  
                     B   *     =       argmax     B   ,     T   =     T   1       ,   …              ,     T   N         (       P        (     T   |   E     )       ×     P        (       B   |   T     ,   E     )         )                 =       argmax     B   ,     T   =     T   1       ,   …              ,     T   N         (       P   (     T   |   E     )     ×     P        (       E   |   B     ,   T     )       ×     P        (   B   )         )                   (   9   )                               
 
         [0072]    using the independence assumption, we have  
               P        (       E   |   B     ,   T     )       ≈       ∏     i   =   1     n            P        (         w   i     |     t   i       ,     bm   i       )       .               (   10   )                               
 
         [0073]    With trigram approximation of P(B), we have:  
               P        (   B   )       ≈       ∏     i   =   1     m          P        (         n   i     |     n     i   -   2         ,     n     i   -   1         )                 (   11   )                               
 
         [0074]    Finally, we obtain  
               B   *     =       argmax     B   ,     T   =     T   1       ,   …              ,     T   N              (       P        (     T   |   E     )       ×       ∑     i   =   1     n            P        (         w   i     |     bm   i       ,     t   i       )       ×       ∏       i   =   1     ,   m            P        (         n   i     |     n     i   -   2         ,     n     i   -   1         )               )             •12•                             
 
         [0075]    To summarize, in the first step, the Viterbi N-best searching algorithm is applied in the POS tagging procedure and determines a path probability f t  for each POS sequence calculated as follows:  
         f   t     =       ∏       t   =   1     ,   n              p        (       w   t     |     t   i       )       ×       p        (         t   1     |     t     i   -   2         ,     t     i   -   1         )       .                               
 
         [0076]    In the second step, for each possible POS tagging result, the Viterbi algorithm is applied again to search for the best baseNP sequence. Every baseNP sequence found in this pass is also associated with a path probability  
         f   b     =       ∏     i   =   1     n            p        (         w   i     |     t   i       ,     bm   i       )       ×       ∏       i   =   1     ,   m              p        (         n   i     |     n     i   -   2         ,     n     i   -   1         )       .                                 
 
         [0077]    The integrated probability of a baseNP sequence is determined by f t   a×f   b , where a is a normalization coefficient (a=2.4 in our experiments). When we determine the best baseNP sequence for the given sentence E, we also determine the best POS sequence of E, which corresponds to the best baseNP of E.  
         [0078]    As an example of how this can work, consider the following text: “stock was down 9.1 points yesterday morning.” In the first pass, one of the N-best POS tagging results of the sentence is: T=NN VBD RB CD NNS NN NN.  
         [0079]    For this POS sequence, the second pass will try to determine the baseNPs as shown in FIG. 3. The details of the path in the dashed line are given in FIG. 4. Its probability calculated in the second pass is as follows ((Φ is pseudo variable): 
           P ( B|T,E )= p (stock| NN, S )× p (was| VBD, O )× p (down| RB, O )× p (NUMBER| CD, B ) 
         × p (point  s|NNS, E )× p (yesterday| NN, B )× p (morning| NN, E )× p (.|.,  O ) 
         × p ([ NN ]|ΦΦ)× p ( VBD|Φ,[NN ])× p ( RB|[NN],VBD )× p ([ CD NNS]|VBD,RB ) 
         × p ([ NN NN]|RB,[CD NNS ])× p (.|[ CD NNS],[NN NN])   
         [0080]    The Statistical Parameter Training  
         [0081]    In this work, the training and testing data were derived from the 25 sections of Penn Treebank. We divided the whole Penn Treebank data into two sections, one for training and the other for testing.  
         [0082]    In our statistical model, we calculate the following four probabilities: (1) P(t i |t i−2 ,t i−1 ), (2) P(w i |t i ), (3) P(n i |n i−2 n l−1 ), and (4) P(w i |t i , bm i ). The first and the third parameters are trigrams of T and B respectively. The second and the fourth are lexical generation probabilities. Probabilities (1) and (2) can be calculated from POS tagged data with following formulae:  
               p        (       t   i     |       t       i   -   2     ,            t     i   -   1           )       =       count        (       t     i   -   2       ,       t     i   -   1            t   i         )           ∑   j          count                   (       t     i   -   2            t     i   -   1            t   j       )                   (   13   )                 p        (       w   i     |     t   i       )       =       count                   (       w   i                   with                 tag                   t   i       )         count                   (     t   i     )                 (   14   )                               
 
         [0083]    As each sentence in the training set has both POS tags and baseNP boundary tags, it can be converted to the two sequences as B (a) and Q (b) described in the last section. Using these sequences, parameters (3) and (4) can be calculated with calculation formulas that are similar to equations (13) and (14) respectively.  
         [0084]    Before training trigram model (3), all possible baseNP rules should be extracted from the training corpus. For instance, the following three sequences are among the baseNP rules extracted.  
                                   (1) DT CD CD NNPS           (2) RB JJ NNS NNS           (3) NN NN POS NN          
 
         [0085]    There are more than 6,000 baseNP rules in the Penn Treebank. When training trigram model (3), we treat those baseNP rules in two ways. First, each baseNP rule is assigned a unique identifier (UID). This means that the algorithm considers the corresponding structure of each baseNP rule. Second, all of those rules are assigned to the same identifier (SID). In this case, those rules are grouped into the same class. Nevertheless, the identifiers of baseNP rules are still different from the identifiers assigned to POS tags.  
         [0086]    For parameter smoothing, an approach was used as described in Katz,  Estimation of Probabilities from Sparse Data for Language Model Component of Speech Recognize,  IEEE Transactions on Acoustics, Speech, and Signal Processing, Volume ASSP-35, pp. 400-401, March 1987. A trigram model was built to predict the probabilities of parameter (1) and (3). In the case that unknown words are encountered during baseNP identification, a parameters (2) and (4) are calculated in the following way:  
               p        (         w   i     |     bm   i       ,     t   i       )       =       count                   (       bm   i     ,     t   i       )           max   j            (     count                   (       bm   j     ,     t   i       )       )     2                 (   15   )                 p        (       w   i     |     t   i       )       =       count                   (     t   i     )           max   j            (     count                   (     t   j     )       )     2                 (   16   )                               
 
         [0087]    Here, bm j  indicates all possible baseNP labels attached to t i , and t j  is a POS tag guessed for the unknown word w i .  
         [0088]    [0088]FIG. 5 is a flow diagram that describes steps in a method in accordance with one embodiment. The steps can be implemented in any suitable hardware, software, firmware or combination thereof. In the illustrated example, the steps are implemented in software. One particular embodiment of such software can be found in the above-mentioned cross-language writing wizard  136  which forms part of browser program  132  (FIG. 1). More specifically, the method about to be described can be implemented by a shallow parser such as the one shown and described in FIG. 2.  
         [0089]    Step  500  receives selected text. This step is implemented in connection with a user selecting a portion of text that is to be translated. Typically, a user selects text by using an input device such as a mouse and the like. Step  502  segments words in the selected text. Any suitable segmentation processing can be performed as will be appreciated by those of skill in the art. Step  504  obtains the morphological root of each word. In the illustrated and described embodiment, this step is implemented by a morphological analyzer such as the one shown in FIG. 2. In the illustrated example, the morphological analyzer is configured to process words that are written in English. It is to be appreciated and understood, however, that any suitable language can provide a foundation upon which a morphological analyzer can be built.  
         [0090]    Step  506  characterizes the words using part-of-speech (POS) tagging and base noun phrase identification. Any suitable techniques can be utilized. One exemplary technique is described in detail in the “POS Tagging and BaseNP Identification” section above. Step  508  applies rules-based phrase extension and pattern matching to the characterized words to generate a tree list. In the above example, this step was implemented using a phrase extension module  206  and a pattern or template matching module  208 . Step  510  outputs the tree list for further processing.  
         [0091]    As an example of a tree list, consider FIG. 6. There, the sentence “The Natural Language Computing Group at Microsoft Research China is exploring research in advanced natural language technologies” has been processed as described above. Specifically, the tree list illustrates the individual words of the sentence having been segmented, morphologically processed, and characterized using the POS tagging and baseNP techniques described above. For example, consider element  600 . There, the word “Natural” has been segmented from the sentence and from a parent element “natural language”. Element  600  has also been characterized with the POS tag “JJ”. Other elements in the tree have been similarly processed.  
         [0092]    Exemplary Word Translation Selector  
         [0093]    The word translation selector  142  receives the tree lists and generates all possible translation patterns. The selector  142  translates the parsed translation units using a statistical translation and language models to derive top candidate word translations in the native text. The top candidate translations are output.  
         [0094]    [0094]FIG. 7 is a flow diagram that describes steps in a method in accordance with one embodiment. The method can be implemented in any suitable hardware, software, firmware or combination thereof. In the illustrated and described embodiment, the method is implemented in software. One embodiment of such software can comprise word translation selector  142  (FIG. 1).  
         [0095]    Step  700  receives a tree list that has been produced according to the processing described above. Step  702  generates translation patterns from the tree list. In one embodiment, all possible translation patterns are generated. For example, for English to Chinese translation, the English noun phrase “NP1 of NP2” may have two kinds of possible translations: (1) T(NP1)+T(NP2), and (2) T(NP2)+T(NP1). In the phrase translation, the translated phrase is a syntax tree and, in one embodiment, all possible translation orders are considered. Step  704  translates parsed translation units using a translation model and language model. The translation units can comprise words and phrases. Step  704  then outputs the top N candidate word translations. The top N candidate word translations can be selected using statistical models.  
         [0096]    Exemplary Translation Generator  
         [0097]    The translation generator  144  translates the top N candidate word translations to corresponding phrases in the native language. The native words and phrases are then presented via the UI in proximity to the selected text.  
         [0098]    [0098]FIG. 8 shows translation generator  144  in a little more detail in accordance with one embodiment. To translate the top candidate words, the translation generator can draw upon a number of different resources. For example, the translation generator can include a dictionary module  800  that it uses in the translation process. The dictionary module  800  can include a word dictionary, phrase dictionary, irregular morphology dictionary or any other dictionaries that can typically be used in natural language translation processing, as will be apparent to those of skill in the art. The operation and functions of such dictionaries will be understood by those of skill in the art and, for the sake of brevity, are not described here in additional detail.  
         [0099]    Translation generator  144  can include a template module  802  that contains multiple templates that are used in the translation processing. Any suitable templates can be utilized. For example, so-called large phrase templates can be utilized to assist in the translation process. The operation of templates for use in natural language translation is known and is not described here in additional detail.  
         [0100]    The translation generator  144  can include a rules module  804  that contains multiple rules that are used to facilitate the translation process. Rules can be hand-drafted rules that are drafted by individuals who are skilled in the specific languages that are the subject of the translation. Rules can be drafted to address issues pertaining to statistical errors in translation, parsing, translation patterns. The principles of rules-based translations will be understood by those of skill in the art.  
         [0101]    Translation generator  144  can include one or more statistical models  806  that are used in the translation process. The statistical models that can be used can vary widely, especially given the number of possible non-native and native languages relative to which translation is desired. The statistical models can be based on the above-described POS and baseNP statistical parameters. In a specific implementation where it is desired to translate from English to Chinese, the following models can be used: Chinese Trigram Language Model and the Chinese Mutual Information Model. Other models can, of course, be used.  
         [0102]    The above-described modules and models can be used separately or in various combinations with one another.  
         [0103]    At this point in the processing, a user has selected a portion of non-native language text that is to be translated into a native language. The selected text has been processed as described above. In the discussion that is provided just below, methods and systems are described that present the translated text to the user in a manner that is convenient and efficient for the user.  
         [0104]    Reading Wizard User Interface  
         [0105]    The remaining discussion is directed to features of the user interface  134  when presenting the reading wizard. In particular, the reading wizard user interface  134  permits the user to select text written in a non-native language that the user is unsure how to read and interpret. The selection may be an individual word, phrase, or sentence.  
         [0106]    FIGS.  9 - 13  show exemplary reading wizard user interfaces implemented as graphical UIs (GUIs) that are presented to the user as part of a browser program or other computer-aided reading system. The illustrated examples show a reading system designed to assist a Chinese user when reading English text. The English text is displayed in the window. A user can select portions of the English text. In response to user selection, the reading wizard translates the selection into Chinese text and presents the Chinese text in a pop-up translation window or scrollable box.  
         [0107]    [0107]FIG. 9 shows a user interface  900  that includes a portion of “non-native” text that has been highlighted. The highlighted text is displayed in a first area of the user interface. A second area of the user interface in the form of translation window  902  is configured to display translated portions of at least some of the text in a native language. The highlighted text, in this example, comprises the phrase “research in advanced natural language technologies”. In this example, a user has highlighted the word “advanced” and the reading system has automatically determined the word to comprise part of the phrase that is highlighted. The reading system then automatically shows the best translation of the highlighted phrase in translation window  902 . By automatically determining a phrase that contains a user-selected word and then providing at least one translation for the phrase, the reader is provided with not only a translation of the word, but is provided a translated context in which the word is used. This is advantageous in that it gives the reader more translated information which, in turn, can facilitate their understanding of the material that they are reading.  
         [0108]    Notice that the translation window  902  is located adjacent at least a portion of the highlighted text. By locating the translation window in this manner, the user is not required to divert their attention very far from the highlighted text in order to see the translated text. This is advantageous because it does not slow the user&#39;s reading process down an undesirable amount. Notice also that the translation window contains a drop down arrow  904  that can be used to expose other translated versions of the selected text. As an example, consider FIG. 10. There, translation window  902  has been dropped down to expose all translations of the highlighted phrase.  
         [0109]    [0109]FIG. 11 shows a user interface  1100  having a translation window  1102 . Here, the reading system automatically detects that the word “generated” is not in a phrase and translates only the word “generated.” The reading system can also provide multiple most likely translations in the translation window  1102 . For example, three exemplary likely translations are shown. In the illustrated example, the displayed translations are context sensitive and are sorted according to context. Accordingly, in this example, the reading system can show only the top n translations of the word, rather than all of the possible translations of the word. FIG. 12 shows user interface  1100  where all of the possible translations of the word “generated” are presented to the user in translation window  1102 .  
         [0110]    [0110]FIG. 13 shows a user interface  1300  having a translation window  1302  that illustrates one feature of the described embodiment. Specifically, the user can be given a choice as to whether they desire for an entire phrase containing a selected word to be translated, or whether they desire for only a selected word to be translated. In this example, the user has positioned their mouse in a manner that selects the word “advanced” for translation. Since the word “advanced” comprises part of a longer phrase, the reading system would automatically translate the phrase containing the selected word and then present the choices to the user as described above. In this case, however, the user has indicated to the reading system that they want only the selected word to be translated. They can do this in any suitable way as by, for example, depressing the “Ctrl” key when making a word selection.  
         [0111]    Conclusion  
         [0112]    The embodiments described above help a user read a non-native language and can permit users who are more comfortable communicating in a native language, to extensively read non-native language electronic documents quickly, conveniently, and in a manner that promotes focus and rapid assimilation of the subject matter. User convenience can be enhanced by providing a user interface with a translation window (containing the translated text) closely adjacent the text being translated. By positioning the translation window closely adjacent the translated text, the user&#39;s eyes are not required to move very far to ascertain the translated text. This, in turn, reduces user-perceptible distraction that might otherwise persist if, for example, the user were required to glance a distance away in order to view the translated text. User interaction is further enhanced, in some embodiments, by virtue of a mouse point translation process. A user is able, by positioning a mouse to select a portion of text, to quickly make their selection, whereupon the system automatically performs a translation and presents translated text to the user.  
         [0113]    Although the invention has been described in language specific to structural features and/or methodological steps, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or steps described. Rather, the specific features and steps are disclosed as preferred forms of implementing the claimed invention.