The present disclosure relates to techniques for machine translation and, more particularly, to techniques for providing definitions and translations of text based on the text context.
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
The rapid growth and ease of accessibility of the Internet and web has enabled users to search for information conveniently, from any location, and using a variety of electronics or communication devices. When presented with content in an unfamiliar language, users often desire to obtain an automated translation of the content into a language they are familiar with or which they can understand.
Some words or phrases have a single meaning. However, in many cases, a word or phrase may have a range of possible meanings. Additionally, a single word can have more than one part-of-speech. For example, a single word like “brush” can have both a noun form and a verb form. As a result, translating by merely substituting words in one language with corresponding words in another language may not be sufficient because the correct translation may depend on the context in which the word is used.
In accordance with the present disclosure, computerized systems and methods are provided for providing context based definitions and translations of text or phrase blocks. Embodiments of the present disclosure relate to systems and methods for presenting the meaning of words and translations of the words in a variety of contexts, together with examples showing how the word may be used in the different contexts.
In accordance with certain embodiments, systems and methods are provided for identifying the parts-of-speech corresponding to a word or phrase, determining the most dominant parts-of-speech, and providing definitions and usage examples for the word or phrase for the dominant parts-of-speech. As disclosed herein, embodiments of the present disclosure may also present translations of the word or phrase in a second language identified by the user. Additionally, embodiments of the present disclosure may provide an indication of the frequency with which a particular word or phrase may be used in a particular context, for example, in a particular part-of-speech. Still further, embodiments of the present disclosure relate to systems and methods for presenting the definitions and translations to a user by leveraging the user's personal translation history and context of use. Still further embodiments of the present disclosure provide systems and methods for presenting the definitions and translations to the user in an organized and easy to read manner, for example, in the form of a summary, which may be expandable to provide more information about the word or phrase.
In accordance with one exemplary embodiment, a server system is provided for translating a phrase block. By way of example, the server comprises a memory device that stores a set of instructions; and one or more processors that execute the instructions to: receive a request for translation, the request comprising a phrase block; identify parts-of-speech of the phrase block; determine definitions of the phrase block, corresponding to the identified parts-of-speech, in the source language; determine usage examples for the phrase block, corresponding to the definitions, in the source language; translate, the phrase block from the source language to translated text in the target language, the translated text comprising one or more translations of the phrase block; rank the parts-of-speech in a first rank order based on usage of the parts-of-speech in the source language; generate display groups, each group including a part-of-speech selected from the parts-of-speech, one or more definition corresponding to the part-of-speech, and one or more usage examples corresponding to the definitions; determine the order for the display groups based on the first rank order; and transmit information sufficient for a device to render the display groups in the order and the translated text.
In accordance with another exemplary embodiment, a computer-implemented method is provided for translating a phrase block. By way of example, the method comprises the following operations performed by one or more processors, including: receiving, from a client device, a phrase block for translation from a source language to a target language; identifying a part-of-speech for the phrase block; determining a definition of the phrase block in the source language, the definition corresponding to the part-of-speech; determining a usage example for the phrase block in the source language, the usage example corresponding to the definition; translating the phrase block from the source language to translated text in the target language, the translated text corresponding to the part-of-speech; and generating a display of the phrase, the part-of-speech, the definition, the usage example, and the translated text.
In accordance with another exemplary embodiment, a computer-implemented method is provided for translating a phrase block. By way of example, the method comprises the following operations performed by one or more processors, including: receiving a phrase block for translation from a source language to a target language; identifying parts-of-speech corresponding to the phrase block; determining definitions of the word in the source language corresponding to the parts-of-speech; determining usage examples for the word in the source language corresponding to the definitions; translating the phrase block from the source language to translated text, corresponding to the parts-of-speech, in the target language; ranking the parts-of-speech in a first rank order based on usage of the parts-of-speech in the source language; generating display groups, each display group including: a part-of-speech selected from the parts-of-speech; definitions corresponding to the part-of-speech; usage examples corresponding to the definitions; and presenting, on a display device, the phrase block, and the display groups based on the first rank order.
In accordance with another exemplary embodiment, a computer program product is provided. By way of example the computer program product includes executable instructions tangibly embodied in a non-transitory computer-readable medium, which when executed by one or more processors, cause the one or more processors to perform a method including: receiving a phrase block for translation from a source language to a target language; identifying parts-of-speech corresponding to the phrase block; determining definitions of the word in the source language corresponding to the parts-of-speech; determining usage examples for the word in the source language corresponding to the definitions; translating the phrase block from the source language to translated text in the target language, corresponding to the parts-of-speech; ranking the parts-of-speech in a first rank order based on usage of the parts-of-speech in the source language; generating display groups, each display group including: a part-of-speech selected from the parts-of-speech; definitions corresponding to the part-of-speech; usage examples corresponding to the definitions; and presenting, on a display device, the phrase block, and the display groups based on the first rank order.
In accordance with one exemplary embodiment, a client is provided for translating a phrase block. By way of example, the client comprises a memory device that stores a set of instructions; and one or more processors that execute the instructions to: receive a request for translation, the request comprising a phrase block; identify parts-of-speech of the phrase block; determine definitions of the phrase block, corresponding to the identified parts-of-speech, in the source language; determine usage examples for the phrase block, corresponding to the definitions, in the source language; translate, the phrase block from the source language to translated text in the target language, the translated text comprising one or more translations of the phrase block; rank the parts-of-speech in a first rank order based on usage of the parts-of-speech in the source language; generate display groups, each group including a part-of-speech selected from the parts-of-speech, one or more definition corresponding to the part-of-speech, and one or more usage examples corresponding to the definitions; determine the order for the display groups based on the first rank order; and transmit information sufficient for a device to render the display groups in the order and the translated text.
Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the disclosure.
The present disclosure will become more fully understood from the detailed description and the accompanying drawings, wherein:
Reference will now be made in detail to the present exemplary embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
As shown in
In certain embodiments, network 130 may include any combination of communications networks. For example, network 130 may include the Internet and/or any type of wide area network, an intranet, a metropolitan area network, a local area network (LAN), a wireless network, a cellular communications network, etc. In some embodiments, clients 110, 120 may be configured to transmit requests (e.g., requests based on input provided by users 112, 122) through network 130 to an appropriate server, such as, for example, server 140. In some embodiments, clients 110, 120 may also be configured to receive information, in response to the requests, from server 140 through network 130.
Server 140 may include one or more servers configured to communicate and interact with clients 110, 120, network 130, and/or database 150. In some embodiments, server 140 may implement or provide one or more search engines, dictionary services, translation services, dictionary engines, and/or translation engines. Server 140 may be a general-purpose computer, a mainframe computer, or any combination of these components. In certain embodiments, server 140 may be standalone computing system or apparatus, or it may be part of a subsystem, which may be part of a larger system. For example, server 140 may represent distributed servers that are remotely located and communicate over a communications medium (e.g., network 130) or over a dedicated network, for example, a LAN. Server 140 may be implemented as a server, a server system comprising a plurality of servers, or a server farm comprising a load balancing system and a plurality of servers.
Database 150 may include one or more logically and/or physically separate databases configured to store data. The data stored in database 150 may be received from servers 140, from clients 110, 120 and/or may be provided as input using conventional methods (e.g., data entry, data transfer, data uploading, etc.). The data stored in the database 150 may take or represent various forms including, but not limited to, documents, presentations, textual content, mapping and geographic information, rating and review information, pricing information, news, audio files, video files, and a variety of other electronic data, or any combination thereof. Database 150 may also include, for example, dictionary databases for one or more languages, and/or a corpus of content including documents, search logs, web pages, and/or social network content, etc.
In some embodiments, database 150 may be implemented using a single computer-readable storage medium. In other embodiments, database 150 may be maintained in a network attached storage device, in a storage area network, or combinations thereof, etc. Furthermore, database 150 may be maintained and queried using numerous types of database software and programming languages, for example, SQL, MySQL, IBM DB2®, Microsoft Access®, PERL, C/C++, Java®, etc. Although
As shown in
As further illustrated in
System 200 may also include one or more displays 250 for displaying data and information. Display 250 may be implemented using devices or technology, such as a cathode ray tube (CRT) display, a liquid crystal display (LCD), a plasma display, a light emitting diode (LED) display, a touch screen type display, and/or any other type of display known in the art.
System 200 may also include one or more communications interfaces 260. Communications interface 260 may allow software and data to be transferred between system 200, network 130, clients 110, 120, and/or other components. Examples of communications interface 260 may include a modem, a network interface (e.g., an Ethernet card), a communications port, a PCMCIA slot and card, etc. Communications interface 260 may transfer software and data in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 260. These signals may be provided to communications interface 260 via a communications path (not shown), which may be implemented using wire, cable, fiber optics, radio frequency (“RF”) link, and/or other communications channels.
The disclosed embodiments are not limited to separate programs or computers configured to perform dedicated tasks. For example, server 140 may include main memory 230 that stores a single program or multiple programs. Additionally, server 140 may execute one or more programs located remotely from server 140. For example, server 140 may access one or more remote programs stored in main memory 230 included within a component, for example, clients 110, 120 that, when executed, perform operations consistent with the disclosed embodiments. In some exemplary embodiments, server 140 may be capable of accessing separate web server(s) or computing devices that generate, maintain, and provide web site(s), dictionary services, and/or translation services. Clients 110, 120 may function in a manner similar to server 140 and vice-versa.
As used in this disclosure, a phrase block may include a single word, a phrase, and/or an inflected form. Generally, a phrase is between two and five words in length. By way of example, a single word, such as, “apple,” “run,” or “weave” may represent a phrase block. Further, by way of example, a phrase such as “good morning,” “bad weather,” etc., may represent a phrase block. Further still, for example, the sentence fragment “my hair is black,” may include two phrase blocks, namely “my hair” and “is black.”
As shown in
As part of step 302, an indication of source and target languages may be received as input. The source language is a language from which a user may want to translate a phrase block. The target language is a language to which the user may want to translate the phrase block. By way of example, when a user wishes to translate a phrase block from “English” to “Spanish,” the source language is “English” and the target language is “Spanish.” Receiving indication of the source and target languages in step 302 may include receiving inputs of the source and target languages from a user 112, 122, who may use one or more of the I/O devices 220 or from clients 110, 120, or server 140. In one exemplary embodiment, a user interface may be provided with pull-down menus or drop-down boxes for selection of the source and/or target languages from a list of supported languages provided in the pull-down menus or drop-down boxes. Receiving an indication may include a user making a selection (e.g. using a computer mouse or other I/O devices 220). In another exemplary embodiment, a pull-down menu or drop-down box may provide a list of supported source language-target language pairs. By way of example, a source language-target language pair, such as, “English-to-German” or “Spanish-to-English” may be displayed on the user interface. Receiving an indication may include a user selecting one such pair (e.g., using a computer mouse or other I/O device 220). In another exemplary embodiment, receiving indication of the source and target languages may include accessing the source and target languages or source language-target language pairs stored in database 150 or in another database associated with system 100. In another exemplary embodiment, receiving indication of the source and target languages may include accessing the source and target languages or source language-target language pairs stored in one or more main memories 230 or storage mediums 240.
In some exemplary embodiments, the target language may be determined, for example, from a browser setting, information about a user, location information etc. Further, in some exemplary embodiments, the source language may be determined based on the dictionary database in which the phrase block may be found or by matching to language models associated with the dictionary database.
As further shown in
Process 300 may also include a step 306 of determining one or more definitions of the phrase block in the source language, corresponding to the part-of-speech determined, for example, in step 304. Determining definitions of a phrase block may also include accessing definitions for the phrase block from a dictionary database or using a dictionary engine in a manner similar to that discussed above with respect to step 304. Determining the definitions of a phrase block may include identifying definitions of words or phrases related to the phrase block. For example, determining definitions for the word “apple” may include retrieving definitions for the word “apple” and the word “apple-tree.” Words or phrases related to the phrase block may be determined by examining how the phrase block is used in a corpus associated with the source language. As used in this disclosure a corpus may include, for example, documents, search logs, web pages, social network content, etc. By way of example, a first definition for the word apple may be provided as “the round fruit of a tree of the rose family, which typically has thin red or green skin and crisp flesh.” Further, by way of example, a second definition for the word “apple,” based on the meaning of the related word “apple-tree” may be provided as “a tree which bears apples.”
Determining the definitions of a phrase block may include determining the definitions for all parts-of-speech for that phrase block. For example, a phrase block may have a noun form, a verb form, an adjective form, an adverb form, etc. Determining the definitions in step 306 may include determining definitions corresponding to each part-of-speech of the phrase block. By way of example, the phrase block “run” has both a noun form and a verb form. Determining the definitions of “run” according to step 306 may include determining a first definition for a verb form as “move at a speed faster than walk,” and a second definition for a noun form as “an act or spell of running.” Although, only one definition for each part-of-speech is described above, determining the definitions in step 306 may include determining more than one definition, for each part-of-speech of the phrase block.
As part of step 306, usage examples may be determined for each of the determined definitions. Determining usage examples for each definition may include accessing the usage examples from a dictionary database or using a dictionary engine to retrieve usage examples from a database associated with the dictionary engine. Further, determining usage examples for each definition may include examining a corpus associated with the source language to retrieve sentences showing usage of the phrase block.
As shown in
Process 300 may also include a step 310 of ranking definitions in a first rank order. Ranking a definition may include determining a frequency of use of the phrase block corresponding to that definition. In some exemplary embodiments, ranking may include determining the number of times a phrase block is used in the corpus corresponding to each definition of the phrase block. Different definitions of the phrase block may then be ranked based on the frequency of use of the phrase block corresponding to each definition. In one exemplary embodiment, a definition may have a higher rank if more instances of use of the phrase block corresponding to that definition are identified in the corpus. By way of example, more frequent use of the word “apple” to mean a fruit in the corpus may result in that definition of “apple” having a higher rank compared to the definition as “a tree which bears apples.”
In one exemplary embodiment, ranking the definitions may include examining information related to the user, for example, location of the user at the time the user requests a translation. Location of the user may be determined in many ways. In one exemplary embodiment, location of the user may be determined by triangulating a distance of clients 110, 120 or other devices being used by the user from locations of cellular or wireless transmission sites associated with network 130. In another exemplary embodiment, location of the user may be determined based on information from global positioning signals transmitted or received by clients 110, 120 or other devices being used by the user. In another exemplary embodiment, an internet protocol (IP) address of clients 110, 120, server 140, and/or other components or devices being used by users 112, 122 may be used to determine the location of the user. In yet another exemplary embodiment, the location of the user may be determined from information provided by clients 110, 120, user 112, 122 via one or more I/O devices 220 associated with clients 110, 120, or server 130, or via other devices being used by the user.
Definitions corresponding to a user's geographical location at the time the user requests translation may be used to rank the definitions of a phrase block. By way of example, when a user is in a painting class, a definition of the word “brush” as “a device for painting” may receive a higher rank compared to a definition of “brush” as a “shrubbery” or vegetation. By way of another example, when a user requests translation of the word “train” while being located in a train station, a definition related to railroads may receive a higher rank compared to a definition of “train” related to pointing or aiming something, such as, a gun or camera at someone.
In some exemplary embodiments, ranking may include an examination of the local, colloquial, or slang usage of a phrase block in the geographical area in which the user may be located. For example, a definition may receive a higher ranking if an examination of the corpus indicates higher frequency of usage of that definition at or near the location of the user.
In other exemplary embodiments, ranking the definitions may include examining a user's personal translation history. For example, ranking may include examining recent translation requests made by the user. By way of example, if a user has recently searched for information associated with cooking, a subsequent search for “chicken” may rank definitions of the word chicken associated with “poultry” higher than definitions related to, for example, “being scared.”
In yet another exemplary embodiment, ranking the definitions may include examining content stored by the user on clients 110, 120 or server 140, for example, in a personal phrase book. By way of example, the word “run” may have a first definition as “moving at a speed faster than a walk” and a second definition as “manage or direct.” Initially, the more common usage as exemplified by the first definition may receive a higher rank. The ranking may, however, change based on content stored in the user's phrasebook. For example, if the user has saved phrases, such as, “the president appears to run the country,” the second definition of run as “manage or direct” may receive a higher ranking compared to the first definition as “moving at a speed faster than a walk.” Thus, ranking of the definitions of a phrase block may be based on frequency of usage, or on contextual information such as the user's location, the user's translation history, or the user's preferences as determined by content stored by user 112 or 122.
Process 300 may also include a step 312 of ranking items in the translated text in a second rank order. Ranking items in the translated text may include determining a frequency of use of an item corresponding to a definition using processes similar to those described above with respect to step 310. In one exemplary embodiment, ranking an item in the translated text may include examining information related to the user, for example, location of the user at the time the user requests a translation using processes similar to those described above with respect to step 310. In another exemplary embodiment, ranking items in translated text may be based on a user's personal translation history. In yet another exemplary embodiment, ranking items in the translated text may be based on a corpus in the target language or may be based on textual content stored by the user in, for example, a phrasebook. Ranking items in the translated text based on a corpus, based on the user's translation history, or based on saved textual content may be performed using processes similar to those described above with respect to step 310.
Referring again to
Displaying definitions (step 316) may include displaying one or more usage examples associated with each definition. In one exemplary embodiment, a definition and a usage example associated with the definition may be displayed as a group adjacent to each other. In another exemplary embodiment, a display group may be generated. Each display group may include a definition selected from among the definitions of the phrase block. In addition, the display group may include one or more usage examples corresponding to the selected definition. In some exemplary embodiments, only one usage example may be provided for each definition. The display groups may be displayed in an order based on the first rank order of the definitions. For example, a first display group may be displayed above a second display group when the first display group includes a first definition with a higher rank compared to a second definition included in the second display group. In some exemplary embodiments, an arrow, button, a link, etc., may be provided on a user interface to allow the user to iteratively unfold (i.e. display) more than one display group for a phrase block.
Process 300 may also include a step 318 of displaying translations of the phrase block. Displaying translations may include displaying the translations according to the second rank order determined, for example, in step 312. For example, translations having a higher rank in the second rank order may be displayed near an upper portion of a display 250 and translations having a lower rank may be displayed below translations having a higher rank in the second rank order. Further, only a selected few translations may be displayed on display 250. In one exemplary embodiment, only the first five translations having the five highest ranks in the second rank order may be displayed on display 250. In some exemplary embodiments, an arrow, button, a link, etc., may be provided on a user interface displayed on display 250 to allow a user to iteratively unfold (i.e. display) more translations.
User interface 400 may also include windows 406, 408, 410, and/or 412. Window 406 may be a source window and may be displayed adjacent an upper left corner of display 250. Window 406 may be displayed below display portion 402. Window 406 may display a phrase block received as input in step 302. Window 406 may display the phrase block in the source language selected by the user. For example, as shown in
Window 408 may be a target window and may be displayed adjacent window 406 near an upper right corner of display 250. Window 408 may be displayed below display portion 404. Window 408 may display translated text, for example, a translation of the phrase block in a target language selected by the user. For example, as shown in
User interface 400 may also include a window 410 for showing definitions and usage examples of a phrase block in the source language. Window 410 may be displayed below window 406 adjacent a lower left corner of display 250. Window 410 may display the part-of speech for the phrase block. Window 410 may also display definitions of the phrase block, in the source language, according to the first rank order determined, for example, in step 310 of process 300. In some exemplary embodiments, icons denoting, for example, a map may be placed next to a definition to indicate that the definition received a higher rank based on a location of client 110, 120 or user 112, 122. In other exemplary embodiments, icons to denote ranks based on a user's translation history or personal phrasebook may be displayed next to the definitions. For example, as shown in
User interface 400 may also include window 412 for displaying translated text corresponding to a phrase block. Window 412 may be displayed below window 408 adjacent a lower right corner of display 250. Window 412 may display the translated text, in the target language, according to the second rank order determined, for example, in step 316 of process 300. Window 412 may also group items in the translated text based on parts-of-speech. Further, window 412 may display both the masculine and feminine forms in the translated text. For example, as shown in
Windows 410 and 412 may also include graphical arrows 416. Clicking on graphical arrow 416 may allow a user to display additional definitions and usage examples in window 410 and additional translated text in window 412. It is to be understood that the arrangement of various portions of user interface 400, as described above, is exemplary and that these portions may be displayed in any order and may have a variety of shapes and sizes. Further, it is to be understood that user interface 400 is not limited to the display portions, windows, and graphics described above and may include more or less display portions, windows, graphical arrows, graphics, or other user interface elements.
As shown in
Process 500 may also include a step 504 of determining a first part-of-speech (1st POS) and a second part-of-speech (2nd POS) for the phrase block and determining definitions and usage examples for the 1st and 2nd POS. Determining the 1st and 2nd POS in step 504 may include processes similar to those described above with respect to step 304 of process 300. Further, determining definitions for each of the 1st POS and 2nd POS may include processes similar to those described above with respect to step 306 of step 300. Further still, determining usage examples corresponding to the definitions for each of the 1st POS and 2nd POS may include processes similar to those described above with respect to step 306 of process 300.
Process 500 may also include a step 506 of translating the phrase block received in step 502. Translating the phrase block in step 506 may include determining translated text corresponding to the phrase block for each of the 1st POS and the 2nd POS. Further, translating the phrase block for each of 1st POS and 2nd POS in step 506 may include processes similar to those described above with respect to step 308 of process 300.
Process 500 may also include a step 508 of determining whether the 1st POS is dominant as compared to the 2nd POS. Determining whether the 1st POS is dominant may include determining a frequency of use of a phrase block corresponding to the 1st POS in a corpus, translation history of the user, or textual content stored by the user. In one exemplary embodiment, 1st POS may be determined to be dominant compared to 2nd POS when the relative number of times the phrase block appears in the corpus with a meaning corresponding to the 1st POS exceeds the number of time the phrase block appears with a meaning corresponding to the 2nd POS. Determining whether 1st POS is dominant may also include determining whether 1st POS may be more frequently used at or near the location of user 112, 122 or client 120, 130. Determining whether 1st POS is more dominant may include processes similar to those disclosed for ranking definitions with respect to step 310 of process 300.
When it is determined that 1st POS is dominant (Step 508: YES), process 500 may proceed to step 510 of determining whether 1st POS has more than n definitions. When it is determined in step 510 that 1st POS has more than n definitions (Step 510: YES), process 500 may proceed to step 512 of generating a 1st display group having m definitions (m>n) for the 1st POS. Generating the 1st display group may include ranking the definitions for the 1st POS in a first rank order. Ranking the definitions for the 1st POS in a first rank order may include processes similar to those described above with respect to step 310 of process 300. Generating the 1st display group may also include selecting definitions having a higher rank in the first rank order. In one exemplary embodiment (n=1, m=2), generating the 1st display group may include selecting two definitions including a first definition having the highest rank in the first rank order and a second definition having a second highest rank in the first rank order. Generating the 1st display group may also include selecting one or more usage examples corresponding to each selected definition. Further, generating the 1st display group may include ordering the selected definitions and usage examples such that the usage examples corresponding to a definition are displayed immediately below the definition. Ordering the definitions may also include arranging the definitions based on an ascending or descending order of their rank in the first rank order.
As shown in
Process 500 may also include a step 516 of displaying the 1st and 2nd display groups on a display. In one exemplary embodiment, displaying the 1st and 2nd display groups may include displaying the 1st display group above the 2nd display group on a display for presentation to the user.
Returning to step 510, when it is determined that n definitions exist for the 1st POS (Step 510: NO), process 500 may proceed to step 518 of determining whether 2nd POS has more than n definitions. When it is determined that 2nd POS has more than n definitions (Step 518: YES), process 500 may proceed to a step 520 of generating a 1st display group with n definitions for the 1st POS. Generating the 1st display group in step 520 may include ranking the definitions for 1st POS in a first rank order. In one exemplary embodiment, generating the 1st display group may include selecting n definitions having the highest ranks in the first rank order and selecting one or more usage examples corresponding to each of the n definitions for the 1st POS.
Process 500 may also include a step 522 of generating a second display group with m definitions selected from the definitions determined for the 2nd POS. Generating the 2nd display group in step 522 may include ranking the definitions for the 2nd POS in a second rank order. In one exemplary embodiment (n=1, m=2), generating the 2nd display group may include selecting two definitions including a first definition having the highest rank in the second rank order and a second definition having a second highest rank in the second rank order. Generating the 2nd display group may also include including one or more usage examples corresponding to each selected definition. Further, generating the 2nd display group may include ordering the selected definitions and usage examples such that the usage examples corresponding to a definition are displayed immediately below the definition. Further, the definitions may be arranged in an ascending or descending order of their rank in the first rank order. Process 500 may then proceed to step 516 of displaying the 1st display group and the second display group.
Returning to step 518, when it is determined that the 2nd POS has n definitions (Step 518: NO), process 500 may proceed to step 514 of generating the 2nd display group with n definitions for the 2nd POS. Process 500 may then proceed to step 516 of displaying the 1st display group and the 2nd display group.
Returning to step 508, when it is determined that 1st POS is not dominant (Step 508: NO), process 500 may proceed to step 524 of determining whether 2nd POS has more than n definitions. When it is determined in step 524 that 2nd POS has more than n definitions (Step 524: YES), process 500 may proceed to step 526 of generating a 1st display group including m definitions (m>n) for the 2nd POS. Generating the 1st display group may include ranking the definitions for the 2nd POS in a first rank order. Ranking the definitions for the 2nd POS in a first rank order may include processes similar to those described above with respect to step 310 of process 300. Generating the 1st display group may also include selecting m definitions for the 2nd POS having a higher rank in the first rank order. In one exemplary embodiment (n=1, m=2), generating the 1st display group may include selecting two definitions for the 2nd POS, including a first definition having the highest rank in the first rank order and a second definition having a second highest rank in the first rank order. Generating the 1st display group may also include including one or more usage examples corresponding to each selected definition. Further, generating the 1st display group may include ordering the selected definitions and usage examples such that the usage examples corresponding to a definition are displayed immediately below the definition. Further the definitions may be arranged based on an ascending or descending order of their rank in the first rank order.
As shown in
Process 500 may also include a step 516 of displaying the 1st and 2nd display groups on a display. Displaying the 1st and 2nd display groups may include displaying the 1st display group above the 2nd display group on a display for presentation to the user.
Returning to step 524, when it is determined that 2nd POS has n definitions (Step 524: NO), process 500 may proceed to step 530 of determining whether 1st POS has more than n definitions. When it is determined that 1st POS has more than n definitions (Step 530: YES), process 500 may proceed to a step 532 of generating a 1st display group with n definition for the 2nd POS. Generating the 1st display group in step 532 may include ranking the definitions for the 2nd POS in a first rank order. In one exemplary embodiment, generating the 1st display group may include selecting in definitions having the highest ranks in the first rank order and selecting one or more usage examples corresponding to each of the n definitions for the 2nd POS.
Process 500 may also include a step 534 of generating a second display group with m definitions (m>n) selected from the definitions determined for the 1st POS. Generating the 2nd display group in step 534 may include ranking the definitions for the 1st POS in a second rank order. In one exemplary embodiment (n=1, m=2), generating the 2nd display group may include selecting two definitions including a first definition having the highest rank in the second rank order and a second definition having a second highest rank in the second rank order. Generating the 2nd display group may also include including one or more usage examples corresponding to each selected definition. Further, generating the 2nd display group may include ordering the selected definitions and usage examples such that the usage examples for a definition are displayed immediately below the definition. Further the definitions may be arranged based on an ascending or descending order of their ranks in the first rank order. Process 500 may then proceed to step 516 of displaying the 1st display group and the 2nd display group.
Returning to step 530, when it is determined that 1st POS has n definitions (Step 530: NO), process 500 may proceed to step 528 of generating the 2nd display group with n definitions for the 1st POS. Process 500 may then proceed to step 516 of displaying the 1st display group and the 2nd display group.
In the above description, the number of definitions n and m may take any value so long as m is larger than n. In one exemplary embodiment, n may be 1, m may be 2, and only one usage example may be provided for each selected definition.
Step 516 of process 500 may also include displaying the translations for the phrase block grouped by each part-of-speech. Further, the translations corresponding to each part-of-speech may be ordered using processes similar to those described above with respect to step 308 of process 300. For example, a 1st translation display group may include translated text corresponding to the 1st POS and a 2nd translation display group may include translated text corresponding to the 2nd POS. The 1st and 2nd translation display groups may be displayed in any order on the display. In one exemplary embodiment, the 1st and 2nd translation display groups may be displayed in an order based on whether the 1st POS or the 2nd POS is dominant. For example, if the 1st POS is dominant compared to the 2nd POS, the 1st translation display group may be displayed above the 2nd translation display group.
For example, as illustrated in
For example, as illustrated in
As shown in
Process 800 may also include a step 804 of determining the parts-of-speech for the phrase block and determining definitions and usage examples for all the parts-of-speech. Determining the parts-of-speech in step 804 may include processes similar to those described above with respect to step 304 of process 300. Process 800 may also include a step 806 of determining the number of parts-of-speech (i.e. how many parts-of-speech?) for the phrase block.
Process 800 may also include a step 808 of determining definitions and usage examples for the parts-of-speech. Determining definitions for the parts-of-speech may include processes similar to those described above with respect to step 306 of step 300. Further, determining usage examples corresponding to the definitions for the parts-of-speech may include processes similar to those described above with respect to step 306 of process 300.
Process 800 may also include a step 810 of translating the phrase block received in step 802. Translating the phrase block in step 810 may include determining translated text corresponding to the phrase block for each of the parts-of-speech determined, for example, in step 804. Further, translating the phrase block in step 810 may include processes similar to those described above with respect to step 308 of process 300.
Process 800 may also include a step 812 of determining whether the number of parts-of-speech exceeds 1 (one). When it is determined in step 812 that the number of parts-of-speech for the phrase block does not exceed 1 (Step 812: NO), process 800 may proceed to step 316 of process 300 and continue through steps 318 and 320 of process 300. When it is determined in step 812 that the number of parts-of-speech for the phrase block exceeds 1 (Step 812: YES), process 800 may proceed to step 814 of determining whether the number of parts-of-speech for the phrase block exceeds 2 (two).
When it is determined in step 814 that the number of parts-of-speech for the phrase block does not exceed 2 (Step 814: NO), process 800 may proceed to step 508 of process 500, and continue through the remaining steps in process 500. When it is determined in step 814 that the number of parts-of-speech for the phrase block exceeds 2 (Step 814: YES), process 800 may proceed to step 816 of ranking the parts-of-speech in a first rank order. Ranking the parts-of-speech (POS) in step 816 may include processes similar to those described above for step 508 of process 500.
Process 800 may include a step 818 of selecting parts-of-speech based on the rank order determined in step 816. Selecting parts-of-speech may include selecting parts-of-speech having a higher rank. In one exemplary embodiment, step 818 may include selecting three parts-of-speech including a first part-of-speech having the highest rank, a second part-of-speech having the second highest rank, and a third part-of-speech having a third highest rank. In another exemplary embodiment, any number of parts-of-speech may be selected in an ascending or descending order of their rank in the first rank order.
Process 800 may include a step 820 of displaying the selected parts-of-speech with definitions and usage examples. Displaying the parts-of-speech and usage examples may include showing a first part-of-speech having the highest rank on top. One or more definitions corresponding to the first part-of-speech may be displayed below the first part-of speech. One or more usage examples corresponding to each displayed definition may be displayed below each corresponding definition. Further, a second part-of-speech having a next lower rank may be displayed below the last usage example for the first part-of-speech. Additionally, one or more definitions corresponding to the second part-of-speech may be displayed below the second part-of speech. Further, one or more usage examples corresponding to each displayed definition may be displayed below the corresponding definition. Additional parts-of-speech and usage examples may be displayed in a similar manner below the last usage example for the second part-of-speech according to a descending order of rank of the parts-of-speech. The definitions corresponding to each displayed part-of-speech may be ordered using processes similar to those described above with respect to steps 512, 522, 526, and 534 of process 500. In one exemplary embodiment, only three parts-of-speech having the highest three ranks, with one most dominant (i.e. highest ranked) definition for each of the three parts-of-speech, and one usage example for each definition may be displayed.
Process 800 may also include a step 822 of displaying translated text for the parts-of-speech selected for display in step 820. The items in the translated text may be ordered and displayed using processes similar to those described above with respect to step 516 of process 500.
For example, as illustrated in
Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the embodiments disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the invention and exemplary embodiments being indicated by the following claims.
Example embodiments are provided so that this disclosure will be thorough, and will fully convey the scope to those who are skilled in the art. Numerous specific details are set forth such as examples of specific components, devices, and methods, to provide a thorough understanding of embodiments of the present disclosure. It will be apparent to those skilled in the art that specific details need not be employed, that example embodiments may be embodied in many different forms and that neither should be construed to limit the scope of the disclosure. In some example embodiments, well-known procedures, well-known device structures, and well-known technologies are not described in detail.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a,” “an,” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. The term “and/or” includes any and all combinations of one or more of the associated listed items. The terms “comprises,” “comprising,” “including,” and “having,” are inclusive and therefore specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. The method steps, processes, and operations described herein are not to be construed as necessarily requiring their performance in the particular order discussed or illustrated, unless specifically identified as an order of performance. It is also to be understood that additional or alternative steps may be employed.
Although the terms first, second, third, etc. may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms may be only used to distinguish one element, component, region, layer or section from another region, layer or section. Terms such as “first,” “second,” and other numerical terms when used herein do not imply a sequence or order unless clearly indicated by the context. Thus, a first element, component, region, layer or section discussed below could be termed a second element, component, region, layer or section without departing from the teachings of the example embodiments.
As used herein, the term module may refer to, be part of, or include: an Application Specific Integrated Circuit (ASIC); an electronic circuit; a combinational logic circuit; a field programmable gate array (FPGA); a processor or a distributed network of processors (shared, dedicated, or grouped) and storage in networked clusters or datacenters that executes code or a process; other suitable components that provide the described functionality; or a combination of some or all of the above, such as in a system-on-chip. The term module may also include memory (shared, dedicated, or grouped) that stores code executed by the one or more processors.
The term code, as used above, may include software, firmware, byte-code and/or microcode, and may refer to programs, routines, functions, classes, and/or objects. The term shared, as used above, means that some or all code from multiple modules may be executed using a single (shared) processor. In addition, some or all code from multiple modules may be stored by a single (shared) memory. The term group, as used above, means that some or all code from a single module may be executed using a group of processors. In addition, some or all code from a single module may be stored using a group of memories.
The techniques described herein may be implemented by one or more computer programs executed by one or more processors. The computer programs include processor-executable instructions that are stored on a non-transitory tangible computer readable medium. The computer programs may also include stored data. Non-limiting examples of the non-transitory tangible computer readable medium are nonvolatile memory, magnetic storage, and optical storage.
Some portions of the above description present the techniques described herein in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. These operations, while described functionally or logically, are understood to be implemented by computer programs. Furthermore, it has also proven convenient at times to refer to these arrangements of operations as modules or by functional names, without loss of generality.
Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Certain aspects of the described techniques include process steps and instructions described herein in the form of an algorithm. It should be noted that the described process steps and instructions could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems.
The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer. Such a computer program may be stored in a tangible computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
The algorithms and operations presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatuses to perform the required method steps. The required structure for a variety of these systems will be apparent to those of skill in the art, along with equivalent variations. In addition, the present disclosure is not described with reference to any particular programming language. It is appreciated that a variety of programming languages may be used to implement the teachings of the present disclosure as described herein, and any references to specific languages are provided for disclosure of enablement and best mode of the present disclosure.
The present disclosure is well suited to a wide variety of computer network systems over numerous topologies. Within this field, the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet.
The foregoing description of the embodiments has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure. Individual elements or features of a particular embodiment are generally not limited to that particular embodiment, but, where applicable, are interchangeable and can be used in a selected embodiment, even if not specifically shown or described. The same may also be varied in many ways. Such variations are not to be regarded as a departure from the disclosure, and all such modifications are intended to be included within the scope of the disclosure.
This application claims the benefit of U.S. Provisional Application No. 61/913,532, filed on Dec. 9, 2013. The disclosure of the above application is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61913532 | Dec 2013 | US |