Intelligent translation system
Patent Information
- Application Number
- CN202310210690.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-08-31
- Filing Date
- 2023-03-07
- Publication Date
- 2026-10-30
- Estimated Expiration
- 2043-03-07
Smart Images

Figure CN116894443B_ABST
Abstract
Description
[0001] priority
[0002] This application claims priority to Indian provisional patent application No. 202211021330, filed on April 9, 2022, under 35 USC 119 (a)-(d), the entire disclosure of which is incorporated herein by reference. Background Technology
[0003] Machine translation (MT) is a set of tools that allow users to input content in one language and have an automatic translation engine generate a complete translation of the input in another target language. Machine translation tools provide translation without human editing. The most basic machine translation software operates strictly through word-for-word substitution. Some techniques enable rule-based or statistical modeling translation to achieve greater accuracy. Modern machine learning (ML) includes neural networks that bring MT into a new era. Translations produced by modern neural network-based translation engines are gradually bridging the gap between human and machine translation. This provides machine-enabled translation tools that can improve human productivity. Attached Figure Description
[0004] The features of the invention are illustrated by examples shown in the following figures. In the following figures, the same reference numerals denote the same elements, wherein:
[0005] Figure 1 A block diagram of an intelligent translation system based on the examples disclosed herein is shown.
[0006] Figure 2 A block diagram of an input processor based on an example disclosed herein is shown.
[0007] Figure 3 A block diagram of an application file processor based on the examples disclosed herein is shown.
[0008] Figure 4 A block diagram of a translation content generator based on the examples disclosed herein is shown.
[0009] Figure 5 A flowchart illustrating a method for translating input content based on the examples disclosed herein is shown.
[0010] Figure 6 A flowchart is shown illustrating a method for determining the context of input content based on the examples disclosed herein.
[0011] Figure 7 A flowchart is shown illustrating a method for generating translated email attachments based on the examples disclosed herein.
[0012] Figure 8A flowchart is shown illustrating a method for generating a translated user interface (UI) based on the examples disclosed herein.
[0013] Figure 9A1 and Figure 9A2 The translation of the UI of a software application based on the examples disclosed in this article is shown.
[0014] Figure 9B The translated UI, generated based on various options, is shown according to the examples disclosed in this article.
[0015] Figure 10 The functionality of an intelligent translation system in an email application, based on an example disclosed herein, is shown.
[0016] Figure 11A and Figure 11B The example shown here illustrates a full-page translation generated for a browser-based application.
[0017] Figure 11C The translation of a selected portion of the UI based on the example disclosed in this article is shown.
[0018] Figure 12 A computer system is shown that can be used to implement an intelligent translation system based on the examples disclosed herein. Detailed Implementation
[0019] For simplicity and illustrative purposes, this disclosure is described by reference to examples thereof. Numerous specific details are set forth in the following description to provide a thorough understanding of this disclosure. However, it will be apparent that this disclosure may be practiced without limitation these specific details. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure this disclosure. Throughout this disclosure, the terms “a” and “an” are intended to mean at least one of a particular element. As used herein, the term “include” means including but not limited to, and the term “including” means including but not limited to. The term “based on” means at least partially based on.
[0020] A smart translation system is disclosed that accesses input content to be translated via an application and enables the display of the translated content, ensuring that the translated content maintains the look and feel of the input content when displayed through the application. The smart translation system extracts translation metadata, including the source and target languages of the input content, which is translated from the user's explicit input or implicit input via automatic language detection and inference of user preferences into the target language. Furthermore, the type of application providing the input content is determined. For example, the application providing the input content may include, but is not limited to, email applications, web-based applications, software applications (e.g., desktop / mobile applications), etc.
[0021] First, it is determined whether the translation of the input content exists in the user cache. If the translation of the input content for each translation metadata exists in the user cache, the translation is retrieved from the user cache. Otherwise, if the translation of the input content is not stored in the user cache, the translation is automatically obtained from a translation engine or manually selected from multiple automatic translation engines. In one example, the multiple translation engines may include one or more of external translation engines and local translation engines of the intelligent translation system. The intelligent translation system implements certain processes before automatically selecting a translation engine. These processes include, but are not limited to, determining the domain context and language context (e.g., source language) of the input content. The domain context of the input content can be determined by extracting text content from the input content and further processing the text content through parsing, tokenizing, and tagging using part-of-speech data. The text content processed in this way is fed to a machine learning (ML) classification model for domain context determination. Furthermore, the language context of the input content can be determined based on the target language and also based on a domain-specific and language-specific vocabulary dataset. The processed text content is also checked for sensitive data identification, and any identified sensitive data is masked / redacted before the text content is sent for translation. A translation engine is automatically selected from multiple translation engines, at least based on context. Translated content is generated based on the application type and translation metadata. In addition to generating translations, the intelligent translation system is configured to highlight key parts of the translated content and provide a summary of the translated content in the display.
[0022] To determine if a translation of the input content exists in the user's cache, the intelligent translation system accesses the previously submitted input content for translation, the corresponding translated content stored in the user's cache, and related translation metadata. It calculates the similarity between the input content and the previously submitted content. Translation content from the user's cache is only provided if the similarity between the previously submitted content and the input content exceeds a predetermined content similarity threshold.
[0023] As described above, different translations can be generated for input content, at least based on the application. In an example where the application includes an email program, the input content may include one or more emails and corresponding attachments. The header and footer of the emails are identified from the input content to be translated. In one example, one or more emails selected by the user may include attachments. Therefore, the translated content generated for the user's selection will include not only the translation of the emails but also the translation of the email attachments. One or more translated emails and the original emails can be stored together with the original attachments and the translated attachments.
[0024] In one example, the application may include a web application that runs within a web browser. Similarly, user-selected input content, comprising at least a portion of the content displayed by the web browser, is received for translation. If the translation of the input content is not present in the user's cache, the translation of the input content is obtained from a selected translation engine based on translation metadata. The resulting translation is then displayed within the web browser. In one example, if it is determined that the user-selected portion of the content displayed by the web browser includes an image of text, the text is extracted from the image, and a translation of the extracted text is also obtained.
[0025] In one example, the application may include a software application. A user can select at least a portion of the software application's user interface (UI) for translation. When that portion of the UI is selected, a context menu of default options for the translation metadata can be overlaid on the user's selection, where the context menu provides default options automatically selected for the translation metadata. However, the default options for the translation metadata can be user-editable. First, the values of the original fields included in the labels displayed on the software application's UI portion are extracted, and the translations corresponding to each value are obtained. Labels including the translated content are generated for each original field. The background color of the generated labels is set to match the background of the original field displayed on that portion of the UI. Similarly, the font attributes of the text content can be set to match the original field to the extent possible. The resulting translation labels are then overlaid on the original fields.
[0026] The intelligent translation system disclosed in this paper provides a technical solution to the technical problem of fast and accurate automatic translation of generated text content while maintaining data privacy. Therefore, the intelligent translation system is configured to first check the user cache to determine if the received input content has been previously translated for the given translation metadata. If so, the intelligent translation system retrieves the translation from the user cache instead of accessing the automatic translation engine, thereby saving time and processing resources and preventing data from being sent to external translation resources. Even when the input content is to be sent to the automatic translation engine, the input content is filtered for sensitive data, which can be masked. The intelligent translation system also allows users greater control over the degree of translation, enabling users to select only a portion of the display for translation instead of the entire display, thus achieving faster translation while saving processor resources used for automatic translation. Furthermore, the intelligent translation system is configured to handle the translation of different types of content generated by different applications in an application-tailored manner. For example, in the case of an email application, not only the email itself can be translated, but also the email attachments. Similarly, the UI for presenting the translation of the software application is customized to maintain the look and feel of the software application. The disclosed intelligent translation system can also perform other functions, such as spelling and grammar correction, key part identification, sentiment identification, and summary generation of translated content.
[0027] Figure 1 A block diagram of an intelligent translation system 100 according to the examples disclosed herein is shown. The intelligent translation system 100 receives input content 152 via an application 150 and provides translated content 156 corresponding to the input content 152 via the UI of the application 150 from which the input content 152 is received. In various examples, the intelligent translation system 100 may be integrated into the application 150 as a plug-in, or the intelligent translation system 100 may be executed by a remote system and communicatively coupled to the application 150. In either case, the intelligent translation system 100 may be accessed via UI elements, such as buttons or menu items on the UI of the application 150. A user can trigger the intelligent translation system 100 to generate the input content 152 by selecting an entire portion of the UI of the application 150 and activating the UI element.
[0028] The translated content 156 is provided via application 150 in a manner that substantially maintains the look and feel of application 150. Examples of application 150 may include, but are not limited to, email applications, browser-based applications, and software applications such as desktop applications or mobile applications (“apps”). Different versions of the translated content 156 detailed herein may be generated based on application 150, which receives input content 152 via it. The intelligent translation system 100 includes an input receiver 102, a content translator 104, and a translated content provider 106. The input receiver 102 receives the input content 152 to be translated and translation metadata 154. The translation metadata 154 may include, but is not limited to, the source language of the input content 152, the target language into which the input content 152 is to be translated, the identification metadata of application 150, and other metadata such as the file format associated with one or more files included in the input content 152. In one example, if the source language is the same as the target language, the intelligent translation system 100 is intelligent enough to determine that no translation is needed.
[0029] Input content 152, along with translation metadata 154, is provided to content translator 104, which is capable of generating translated content 156. Content translator 104 includes an input processor 142, an application file processor 144, and a translation generator 146. Input processor 142 accesses input content 152 to determine if the translated content 156 already exists in user cache 148. In one example, a user of the intelligent translation system 100 may have specific space in a cache (e.g., user cache 148, dedicated to storing user-specific data such as user preferences in translation engines, source / target languages, and transcription services (where applicable), as well as frequently requested translations). If translated content 156 is found in user cache 148, it is retrieved from user cache 148 without needing to access external translation services such as multiple translation engines 120-1, 120-2, ..., 120-n. If the translation content 156 cannot be retrieved from the user cache 148, the input content 152 may be further processed by the application file processor 144 and provided to the translation generator 146.
[0030] If the translated content 156 cannot be retrieved from the user cache 148, the input processor 142 can also be configured to determine the context 172 of the input content 152, which includes a domain context and a language context. In one example, the input processor 142 can also be configured to redaction sensitive data before sending the input content 152 to the translation generator 146 for translation. In one example, the intelligent translation system 100 may be communicatively coupled to a data repository 170 that stores information such as the context 172 used in the translation operation. The context 172 of the input content 152 is used by the translation generator 146 to automatically select one of a plurality of translation engines 120-1, 120-2, ..., 120-n (where n is a natural number, n=1, 2, ...). In one example, multiple translation engines 120-1, 120-2, ..., 120-n may include external translation services, such as, but not limited to, Google Translate®, translation services provided by other cloud providers, such as, but not limited to, AWS, Azure®, or even local translation engines stored on the Intelligent Translation® 100. The multiple translation engines 120-1, 120-2, ..., 120-n are operable to provide domain-specific or language-specific translations. In one example, a context menu may be presented to the user via application 150, allowing the user to select a specific translation engine, thus replacing the automatic selection made by the Intelligent Translation system 100. The translation version 162 output by the selected translation engine is further processed by the translation content provider 106 for presentation via application 150.
[0031] In one example, the translation generator 146 may include an engine selector 146-1, configured to automatically select one of a plurality of translation engines 120-1, 120-2, ..., 120-n based at least on domain / language context and translation metadata 154. Furthermore, the engine selector 146-1 may receive user feedback regarding engine selections made for previous translations. In one example, the engine selector 146-1 may implement a model-free reinforcement learning algorithm to predict the optimal engine for each source / target language pair and context 172. This algorithm may use the Bellman equation to compute a Q-value (or quality value). First, a Q-table is constructed for each language pair and context 172 combination, where n rows correspond to the number of the plurality of translation engines 120-1, 120-2, ..., 120-n, and m columns correspond to the number of states associated with the translation engine, where n and m are natural numbers, and n and m are ≥1. Example states may include excellent, good, average, poor, unsupported, etc. First, all values in the Q-table are set to zero, and the engine selector 146-1 randomly selects an engine from multiple translation engines 120-1, 120-2, ..., 120-n. As the number of iterations increases, a more accurate Q-value can be calculated by the engine selector 146-1 based on feedback from the user, thus improving its prediction of the best translation engine for each context 172 and language pair. When a new engine is introduced or during the initial setup, the engine selector 146-1 is expected to be in its training phase. At this time, language experts and domain experts can randomly evaluate the newly added engines and provide accurate feedback before handing the new engines over to the user. Input content 152 with edited sensitive data is sent to the selected translation engine to generate a translation version 162.
[0032] The output from either input processor 142 or translation generator 146 (depending on whether the translated content 156 is retrieved from user cache 148 or whether the translated version 162 is generated by one of multiple translation engines 120-1, 120-2, ..., 120-n) is provided to translation content provider 106, which processes the translated version 162 for display via application 150. The translated version 162 can be further processed for post-translation refinement, including spelling and grammar correction, key part identification, and a summary of the translated content. Furthermore, the translated version 162 may be further modified, based on the language context, to be more suitable for the target language before being provided as translated content 156. The translated content 156 is presented via application 150 in a manner that maintains the look and feel of the input content 152 when displayed via application 150. For example, a translated email corresponding to an input email can be presented / displayed in essentially the same way as an input email received via the same email application from which the input email was received. Similarly, translated web content can be rendered in the same web browser, and the translated UI of the application retains a look and feel that is essentially similar to the original UI of the software application.
[0033] Figure 2 A block diagram of an input processor 142 according to an example disclosed herein is shown. Input processor 142 includes a cache information retrieval unit 202, a context processor 204, and a data redactor 206. When a request for translation of input content 152 is received, the cache information retrieval unit 202 is first activated to determine whether the requested translation has been previously executed and stored in a user cache 148. Whenever the intelligent translation system 100 generates a translation, it is stored in the user cache 148. In one example, user-specific data / content may be stored in the user cache 148 for a predetermined period before expiration / deletion. Therefore, if a translation is frequently requested, it is refreshed, thus preventing the translation from being deleted from the user cache 148. This alleviates the need for the intelligent translation system 100 to access multiple translation engines 120-1, 120-2, ..., 120-n for each translation request.
[0034] In one example, cache information retrieval 202 may include cache accessor 222, similarity calculator 224, and cache information provider 226. Cache accessor 222 receives input content 152 and accesses user cache 148 to determine previous translations of input content 152 based on translation metadata 154, which includes not only the source / target language but also the location / link or other identifying tags of application 150 including input content 152. In one example, the name of the executable file of application 150 may be received by intelligent translation system 100 and is an optional parameter in translation metadata 154. Similarity calculator 224 calculates the similarity between cached content and input content 152 including translation metadata 154. Similarity calculator 224 may employ various similarity measures, such as, but not limited to, cosine similarity, various distance measures, Jaccard similarity, etc. Cache information provider 226 determines whether any content in user cache 148 has a similarity greater than a predetermined content similarity threshold. If so, the cache information provider 226 can return the specific content item as a translated version 162 of the input content 152. If a content item with a similarity greater than a predetermined content similarity threshold cannot be determined from the user cache 148, the input content 152 is provided to the context processor 204 for context identification, which enables the selection of one of a plurality of translation engines 120-1, 120-2, ..., 120-n.
[0035] Context processor 204 includes a content extractor 242, a context identifier 244, and a vocabulary dataset 246. Content extractor 242 can be configured to identify textual and non-textual content in input content 152 and convert non-textual content, such as image files, into textual content. For example, input content 152 may include a selection of a portion of a webpage containing image files. Image files can be processed to determine if they contain text, and if so, the image files can be fed to an optical character recognition (OCR) engine to be converted into text format. The resulting text can be parsed, tagged, and part-of-speech (POS) labeled by content extractor 242 and provided to context identifier 244. Context identifier 244 may include a machine learning (ML) classification model that classifies the textual content received in input content 152 into context 172, which includes one of the multi-domain / language contexts. Vocabulary dataset 246 may include a dataset with terms from different domains of different languages. For example, vocabulary dataset 246 may include specific language terms from languages such as English, Spanish, French, and Japanese, for different domains, such as manufacturing, healthcare, finance, retail, and education. Context identifier 244 can be configured to match word tokens provided by content extractor 242 with terms from various vocabulary datasets 246 from domain context identifiers. The specific language / domain vocabulary dataset with the highest confidence score can be output as the domain / language context of input content 152. The identifier of the domain context accurately interprets certain terms. For example, the term "fine" can mean that everything is fine in the healthcare field, while the same term "fine" means very different in the finance field. In one example, a translation version 162 generated by a selected translation engine can also be provided to context identifier 244 to confirm the context initially determined for input content 152.
[0036] When identifying the domain / language context of input content 152, tags from content extractor 242 can be provided to data editor 206, which is configured to identify and mask sensitive data. Data editor 206 includes various ML classification models 262 for Named Entity Recognition (NER) and entity relation detection from a list of tuples obtained from the POS annotations of content extractor 242. A classification recurrent neural network (RNN) 264 is trained to classify normal words / entities from sensitive entities representing sensitive data that a user / business entity may wish to keep private. Examples of sensitive entities may include, but are not limited to, personal names, addresses, contact information, and identifying information such as Social Security numbers, tax numbers, financial information, account numbers, amounts, etc. Other sensitive identification techniques, such as, but not limited to, n-grams, inference rules, and pointwise mutual information-based methods, can also be implemented by sensitive data labeler 266. An n-gram is a subsequence of n items from a given sequence. n-grams are used in various fields of statistical natural language processing and genetic sequence analysis. Depending on the application, the items in question can be characters, words, or base pairs. For example, the sequence of characters “Hatem” has a ternary grammar of (“Hat”, “ate”, “tem”, “em”, …) and a binary grammar of (“Ha”, “at”, “te”, “em”, …). Fair and robust training based on mutual information involves trusted AI in ML, where fair and robust training is considered not only in the presence of data bias and poisoning, but also in the context of training an accurate model.
[0037] Sensitive data identifier 266 can be configured to identify a specific location in input content 152 with a confidence level higher than a predetermined confidence level, which indicates the presence of sensitive information at that specific location in input content 152. The output from sensitive data identifier 266 may include the type of sensitive data and its location within input content 152. Data masking provider 268 receives the output from sensitive data identifier 266 and masks, edits, or otherwise prevents the identified sensitive data from being transmitted to the translation engine. Data masking provider 268 can implement various data masking techniques, such as, but not limited to, masking by blacking out fields containing sensitive data, pseudo-naming (i.e., replacing sensitive entities with similar data), and anonymization (i.e., replacing sensitive entities with random characters).
[0038] Figure 3A block diagram of an application file processor 144 according to an example disclosed herein is shown. Input content 152 is processed by the application file processor 144 for translation based on the application 150 from which the input content 152 originates. As mentioned herein, translation metadata 154 may include tags such as links or other identifiers that enable the application file processor 144 to determine whether the application 150 is an email application, a web / browser-based application, or other software application. Based on the identified tags, the application file processor 144 may include one of an email processor 302, a web content processor 304, and an application UI processor 306.
[0039] When application 150 is an email application, application file processor 144 includes email processor 302, which allows a user to select one or more emails or portions of emails from an email chain for translation. As described above, the user can identify the input to be translated via selection actions such as mouse clicks, hold, and release. A mouse click event can be triggered indicating the area selected by the user, and the intelligent translation system 100 can be triggered via a pop-up menu, button, or another UI widget. The input 152 received or identified by the user is thus provided to email processor 302 for preprocessing prior to translation. In one example, email processor 302 may include a user selection identifier 322, a header-footer identifier 324, a signature identifier 326, and an attachment extractor 328. User selection identifier 322 can identify the input 152 based on a selection action. The input 152 for an email application may include the current email, a complete email chain of multiple emails, a specific portion of an email / email chain, etc. The header-to-tail identifier 324 implements a classification support vector machine (SVM) algorithm to identify the header and tail portions of an email. The header portion of an email may include information about the sender, recipient, the time / date of sending or receiving the email, the subject of the email, and any attachments that the email may include. The tail portion of an email may include the sender's signature. In cases where an email chain is being processed, the header and tail enable separate identification of each email in the chain. Similarly, the output of word tagging and POS annotation from the content extractor 242 can be used to group features. Features used by the SVM model for header / tail identification may include, but are not limited to, the location of words, images, or data structures in the file containing the input content 152, word count, named entities such as names, addresses, phone numbers, logos, special patterns, broken lines, etc. The signature identifier 326 may also use the aforementioned features to identify email signatures. In some examples, email signatures may not be translated when an email is submitted for translation. The attachment extractor 328 may also include an ML model trained to identify attachments from the email header. In one example, the resulting attachment can be provided as part of the input content 152 submitted for translation. In another example, the translated attachment can be placed back into the original email during a reply or forwarding. Therefore, the translated original email can include two attachments: the original attachment in the source language and the translated attachment in the target language. In one example, the translated email can be stored on an email server along with the original attachment and the translated attachment.
[0040] When application 150 includes a web application or a web browser, application file processor 144 may include web content processor 304, which may further include user selection identifier 342 and web content analyzer 344. The user selection identifier 342 may function similarly to the user selection identifier 322 in an email application, whereby the user selection identifier 342 identifies user-selected portions of content from a web browser. Web content analyzer 344 analyzes input content 152 to determine translation metadata 154, such as automatically detecting the source language of the web page content if it is not readily available in the translation metadata 154.
[0041] The application UI processor 306 also includes a user selection identifier 362, a UI element identifier 364, and a UI element attribute extractor 366. The user selection identifier 362 receives a user-selected UI element or a portion of the UI as input content 152. The UI element identifier 364 identifies UI elements within the user-selected portion of the UI, such as labels, buttons, combo boxes, etc. The UI element attribute extractor 366 extracts the position coordinates of the UI elements and attributes within the UI that receive the input content 152, such as size, background color, foreground / text color, font size, and font type. This UI element position information enables the intelligent translation system 100 to overlay translated labels, names, etc., onto the original label positions, thereby maintaining the look and feel of the application UI.
[0042] Figure 4 A block diagram of a translation content provider 106 according to the examples disclosed herein is shown. The translation content generator includes a grammar / spell checker 402, a language context modifier 404, a content summator 406, a key part identifier 408, a sentiment identifier 414, and a UI generator 412. It is understood that not all components of the translation content provider 106 are required to generate the translated content 156. Rather, one or more components may be used depending on the application 150 for which the translated content is to be generated. For example, if the application 150 is an email program, components including the UI generator 410, grammar / spell checker 402, and language context modifier 404 may be used, while the content summator 406 and key part identifier 408 may not be used. On the other hand, if the application 150 is a web page, the content summator 406 and the part identifier 408 may be used, while the UI generator 410 or the language context modifier 404 may not be used.
[0043] The grammar / spelling checker 402 uses Natural Language Processing (NLP) techniques to detect grammatical and spelling errors in the translated version 162. For example, it can identify and correct tense-based or citation-based grammatical errors. Similarly, the grammar / spelling checker 402 can also correct spelling errors using a language / domain vocabulary. An example of dictionary-based correction can resolve simple spelling errors, where “I acept this proposal” is corrected to “I accept thisproposal”. Context-based spelling errors can also be corrected. For example, the input sentence “I accept this to bedone by 3pm” can be corrected to “I expect this to be done by 3pm”.
[0044] Every language has its own way of representing text when it is spoken or written. For example, polite speech in Japanese requires addressing someone with their name combined with "SAN" (e.g., "John San"). The language context modifier 404 adapts to this linguistic characteristic by extracting the translated version 162 and further adding / replacing translated words / sentences with the language context. Using NLP techniques, words to be modified / replaced are identified, words from a language / domain vocabulary dataset are used, and sentences are generated using Natural Language Generation (NLG) techniques. This can be very useful when translating email communications.
[0045] Content summarizer 406 is configured to read translated version 162 to interpret and summarize data by implementing NLP techniques. For example, if input content 152 is a long contract document, content summarizer 406 can summarize key points such as the parties involved, the contract start date, the important events to be achieved, and the contract termination date. In one example, content summarizer 406 can generate a content summary by extracting and separating key information from pre-existing text and compressing that text into summarized content.
[0046] Key part identifier 408 processes the translated version 162 to highlight key points in the translated content 156. Key part identifier 408 can implement an ML classification model trained to identify key / non-key parts. The ML classification model can distinguish between key and non-key parts using features such as, but not limited to, word position, whether a word is positive or negative, the number of words in a position, names, ending characters, special patterns, and line breaks. The intelligent translation system 100 also includes a sentiment identifier 414 for detecting the sentiment expressed in the input content 152. In one example, a convolutional neural network (CNN) classification model is used to detect emotions or sentiments. A separate CNN model can be built for each language. Sentiments can be distinguished at different levels. For example, the nature of the emotion can be detected, such as whether it is negative or neutral. The intensity of the emotion can also be detected as threat / urgency / high, medium, or low. Similarly, other context associated with the emotion can be identified. For example, based on sentiment, a sentence can be identified as a request, query, or answer.
[0047] UI generator 412 can be used to generate and render translated content 156 through application 150, thereby maintaining the look and feel of application 150. Therefore, when viewed in an email program, the translated email retains the look and feel of the original email. Similarly, the translated UI screen of a software utility or other software program maintains the same look as the original UI screen, even though the content is displayed in the target language rather than the source language. To achieve a substantially similar look and feel, UI generator 412 is configured with output attribute identifier 422, output text generator 424, and output positioning component 426. When the intelligent translation system 100 operates as a plug-in, the display attributes of the UI of application 150 can be accessed by output attribute identifier 422 via application programming interface (API). Display attributes may include, but are not limited to, background color, font type, font, font color, other font attributes, and positioning of specific words on the UI(s), etc. The output text generator 424 uses display properties to generate output text, and the output positioning component 426 places the text modified according to the display properties at a position determined by the position coordinates of the corresponding text in the original UI, extracting the input content 152 from the original UI.
[0048] Figure 5A flowchart 500 is shown, which details a method for translating input content 152 according to the example disclosed herein. The method begins at 502, where input content 152 is received from application 150. As described herein, a user may select all or part of the UI of application 150 for translation, which may be transmitted as input content 152 to intelligent translation system 100. Translation metadata 154 may also be received along with the input content 152. Translation metadata 154 may include at least the source language of the input content 152 and the target language into which the input content 152 is to be translated. At 504, the content type can be identified from the translation metadata 154; that is, it can be determined whether the input content 152 is web content, email, or part of the user interface of a software application. At 506, it is determined whether the translation 156 of the requested input content already exists in user cache 148. For example, if a user frequently requests the same translation for a specific piece of content, such as the same webpage to be translated into the same language, this translation may be stored in a user-specific portion of the cache (i.e., user cache 148). If it is determined at 506 that the requested translation exists in the user cache 148, then the translation is retrieved from the user cache 148 at 508 and served to the user via application 150 at 524.
[0049] At 506, it is determined that the requested translation is not stored in the user cache 148. The method then proceeds to 510 to determine the context of the input content 152. At 512, based at least on the context and translation metadata 154, a translation engine is selected from multiple translation engines 120-1, 120-2, ..., 120-n to generate a translated version 162 of the input content 152. At 514, it is further determined whether the input content 152 includes any sensitive data. If so, the sensitive data is edited / masked at 516, and at 518, the input content 152 with the masked sensitive data is provided to the selected translation engine. At 520, a translated version 162 is obtained from the selected translation engine. At 522, the translated version 162 is further processed for presentation through spelling and grammar checking, language context modification, summarization, key parts and sentiment identification, and / or appropriate UI generation. At 524, the translated content 156 generated from the further processing of the translated version 162 is provided to the user via application 150.
[0050] Figure 6A flowchart 600 is shown, which details a method for determining the context of input content 152 according to the examples disclosed herein. The method begins at 602, where it is determined whether the input content includes non-digital text. For example, input content 152 may include scanned or other types of images, which may include text. If it is determined at 602 that input 152 includes non-digital text, the method proceeds to 604 to digitize the non-digital text, for example, via OCR, and the method proceeds to 606. If it is determined at 602 that input content 152 includes digitized text, the method proceeds directly to 606 to classify input content 152 into a specific domain and language context. Based at least on the determined context and translation metadata 154, a translated version 162 is obtained at 608. At 610, the translated version 162 is processed again for domain and language context determination. At 612, the domain and language context of input content 152 are compared with the domain and language context of translated version 162. Based on the comparison at 612, at 614 it is determined whether there is sufficient overlap between the context of input content 152 and translated version 162. If so, positive feedback is given at 616 for context determination; otherwise, negative feedback is given at 618 for context determination.
[0051] Figure 7 A flowchart 700 detailing a method for generating translated email attachments according to the examples disclosed herein is shown. At 702, the format of the attachment, as well as the source and target languages, are determined. While the source language can be explicitly provided by the user in the translation metadata 154, it can also be automatically determined using a trained ML classification model trained to identify different languages. The file format of the attachment can be determined from the file metadata. Attachments can include files of different formats, such as an image 704 containing text content, digitized text content 706, and a logo / signature 708. At 710, the image with text content 704 is digitized using OCR technology, and at 712 it is translated into the target language. At 712, the digitized text content 706 can be directly translated into the target language. In one example, at 714, the logo / signature 708 is preserved as is in the source language without translation. At 716, the attachment file is regenerated in the target language. In one example, the attachment file can be generated by replacing the content of the original attachment file with the translated content. At point 718, the attachment file is included in one or more of the translated email and the original email, and is stored on the email server hosted by application 150.
[0052] Figure 8A flowchart 800 illustrates a method for generating a translated UI that retains the look and feel of the original UI, based on examples disclosed herein. The method begins at 802, where input 152, including a UI portion selected by the user, is received. At 804, UI elements from the user-selected UI portion are identified. In one example, information about the UI elements can be obtained using the API of application 150. At 806, attributes of the UI elements, such as visible attributes, values, layout, etc., on the UI can also be obtained using the API or by accessing tags, in the case of a web application. At 808, the visible text of the UI elements to be translated is extracted. For example, in the case of a label, the value displayed on the label is extracted. Similarly, for dropdown menus or combo boxes, the user-visible value is extracted. At 810, the extracted values can be filtered for sensitive data and provided to the selected translation engine. At 812, the translated values obtained from the selected translation engine can be formatted according to the visible attributes of the UI elements. Visible attributes may include background color, font attributes such as font type, font size, font style, etc. In 814, the translated UI is generated by overlaying the translated UI element on top of the corresponding original UI element, causing the translated UI element to obscure the original UI element.
[0053] Figure 9A1 and Figure 9A2 The translation of the UI of a software application based on the examples disclosed herein is shown. The source language of the initial UI 902 is German. However, when a portion or the entire UI is selected for translation, a context menu 904 for screen translation pops up, displaying the default options for translation selected by the intelligent translation system 100 and allowing the user to change the default options. The default options may include an automatically detected language 908, a target language 912, a translation engine 914, and an OCR engine 916 used for translation. Upon making a satisfactory selection, the user can click the translation option 916 to initiate the translation of UI 902, as shown in UI 920.
[0054] Figure 9B The image shows a translated UI 950 generated based on the options shown in UI 902, according to the examples disclosed herein. As seen in the translated UI 950, various labels 952, 954 and buttons 956, 958 are translated into English, which is the target language selected at 912. As seen from the translated UI 950, the look and feel of UI 902 are preserved even after translation, so that users do not have to deal with unfamiliar UI post-translation.
[0055] Figure 10The functionality of an intelligent translation system 100 in an email application according to an example disclosed herein is illustrated. An initial email 1002 is in the source language, for example, German with an attachment 1004, which is also in the source language. A translated email 1006 is generated based on user options. However, the translated email has two attachments, the original attachment 1004 and the translated attachment 1008, which is a translation of the original attachment 1004 into the target language. In one example, the initial email 1002 may be stored using both attachments 1004 and 1006, depending on user options.
[0056] Figure 11A and Figure 11B The example disclosed herein illustrates full-page translation of an intelligent translation system 100 when applied to a browser-based application. Specifically, Figure 11A The initial webpage 1110, in Chinese as the source language, is shown, while Figure 11B A translated webpage 1120 in English, the target language, is shown. In one example, the translated webpage 1120 may include suggestions 1122 from the intelligent translation system 100 for specific language dialects encountered during translation.
[0057] Figure 11C The translation of a selected portion of UI 1130 according to the example disclosed herein is shown. The translation 1132 of the selected portion 1134 is shown in overlay 1136 on the UI. In one example, overlay 1136 generated by intelligent translation system 100 may include the selected portion as source text and the translation 1132 as output text. Overlay 1136 also includes various translation options 1138, which may default to system-selected values that the user can override as needed.
[0058] Figure 12 A computer system 1200 is illustrated that can be used to implement an intelligent translation system 100 according to the examples disclosed herein. More specifically, a computer, such as a desktop computer, laptop, smartphone, tablet, or wearable device, which can be used to generate or access data from the intelligent translation system 100, may have the structure of computer system 1200. Computer system 1200 may include additional components not shown, and some of the processing components described may be removed and / or modified. In another example, computer 1200 may reside on an external cloud platform such as Amazon Web Services, Azure® Cloud, or an internal corporate cloud computing cluster or organizational computing resources.
[0059] Computer system 1200 includes processor(s) 1202 (e.g., central processing unit, ASIC, or other type of processing circuitry), input / output (I / O) devices 1212 (e.g., display, mouse, keyboard, etc.), network interface 1204 (e.g., local area network (LAN), wireless 802.11xLAN, 3G, 4G, or 5G mobile WAN, or WiMax WAN), and processor-readable medium 1206. Each of these components is operatively coupled to bus 12012. Processor-readable or computer-readable medium 1206 can be any suitable medium that provides instructions to processor(s) 1202 for execution. For example, processor-readable medium 1206 can be a non-transient or non-volatile medium, such as a disk or solid-state non-volatile memory, or a volatile medium, such as RAM. Instructions or modules stored on processor-readable medium 1206 can include machine-readable instructions 1264 executable by processor(s) 1202, which cause processor(s) 1202 to perform the methods and functions of intelligent translation system 100.
[0060] The intelligent translation system 100 can be implemented as software or machine-readable instructions stored on a non-transient processor-readable medium and executed by one or more processors 1202. For example, the processor-readable medium 1206 may store an operating system 1262 such as MAC OS, MS Windows, UNIX, or Linux, as well as code / instructions 1264 for the intelligent translation system 100. The operating system 1262 may be multi-user, multi-processor, multi-tasking, multi-threaded, real-time, etc. For example, during runtime, the operating system 1262 is running, and the code of the intelligent translation system 100 is executed by the processor(s) 1202(s).
[0061] Computer system 1200 may include data storage device 1210, which may include a non-volatile data storage device. Data storage device 1210 stores any data used by intelligent translation system 100. Data storage device 1210 can be used as a local data storage device for intelligent translation system 100 to store input content 152, translation metadata 154, translation version 162, translation content 156, user-selected options, and other data elements generated and / or used during the operation of intelligent translation system 100.
[0062] Network interface 1204 connects computer system 1200 to an internal system, for example, via a LAN. Furthermore, network interface 1204 can connect computer system 1200 to the Internet. For example, computer system 1200 can connect to a web browser and other external applications and systems via network interface 1204.
[0063] The examples described and illustrated herein are merely illustrations and some variations thereof. The terminology, descriptions, and figures used herein are for illustrative purposes only and are not intended to be limiting. Many variations are possible within the spirit and scope of this subject matter, which is intended to be defined by the appended claims and their equivalents.
Claims
1. An intelligent translation system, comprising: At least one application processor; A non-transient processor-readable medium stores machine-readable instructions that cause the application processor to: Accessing input content via application The input content mentioned above needs to be translated; Extract translation metadata, which includes the source language of the input content and the target language into which the input content is to be translated; Determine whether the translated content corresponding to the input content can be retrieved from the user cache; If the translated content of the input content is in the user cache, then the translated content is obtained from the user cache. Otherwise, if the translated content of the input cannot be retrieved from the user's cache, Determine the type of the application that provides the input content, and The translated content of the input content is obtained from a translation engine, which is automatically selected from multiple automatic translation engines, wherein the translated content is generated based on the type of the application; The display of the translated content of the input content is enabled via the application used to display the input content, wherein, When the translated content is displayed through the application, the visibility attribute of the input content is maintained.
2. The intelligent translation system according to claim 1, wherein, in order to determine whether the translated content of the input content exists in the user cache, the processor is configured to: The user cache stores previously submitted input content for translation, the corresponding translation content, and related translation metadata. Calculate the similarity between the input content and the previously input content; as well as If the similarity between the previous input content and the current input content exceeds a predetermined content similarity threshold, the translated content is provided from the user cache.
3. The intelligent translation system according to claim 1, wherein the application includes at least one of the following: an email program, a web browser, and a software application.
4. The intelligent translation system according to claim 3, wherein the application includes the email program, and the processor is further configured to: Access the input content, which includes at least one email from one or more emails and one or more corresponding attachments; The header and footer of the one or more emails are separated by an identifier; The user selects the input content to be translated; as well as Obtain the translation content selected by the user.
5. The intelligent translation system according to claim 4, wherein the user selection includes one or more corresponding attachments, and in order to obtain the translation content selected by the user, the processor is further configured to: Extract the corresponding one or more attachments from the one or more emails; Determine the associated file format for each of the one or more corresponding attachments; The digital text content that identifies one or more of the corresponding attachments; as well as Generate a translation file for each of the one or more attachments using the associated file format.
6. The intelligent translation system of claim 5, wherein the user selection additionally includes one of the one or more emails, and in order to obtain the translation content selected by the user, the processor is further configured to: Based on the translation metadata, the translation of the digital text content of the one or more emails is obtained. The translation of the digitized text content excludes the separation between the header and the footer of the email; and Generate the translated content comprising one or more translated emails, each of the one or more translated emails corresponding to one of the one or more emails, wherein each of the one or more translated emails is further accompanied by the one or more translated files attached to one or more attachments.
7. The intelligent translation system according to claim 3, wherein the application includes the web browser, and in order to obtain the translated content of the input content, the processor is further configured to: Receive the input content, which includes at least a portion of the content displayed by the web browser and user selections; The translated content of the input content is obtained based on the translation metadata; as well as Enable the display of the translated content of the input content in the web browser.
8. The intelligent translation system according to claim 7, wherein, in order to obtain the translated content of the input content, the processor is further configured to: The portion of the content displayed by the web browser is determined to include an image containing text; Extract the text from the image; and The translation of the text extracted from the image is obtained.
9. The intelligent translation system according to claim 3, wherein the application includes the software application, and the processor is further configured to: Receive at least a portion of the user selections from the user interface of the software application; and A context menu is overlaid on the user selection, showing the default option that is automatically selected for the translated metadata.
10. The intelligent translation system according to claim 9, wherein, in order to obtain the translated content of the input content, the processor is further configured to: Extract the values of the original fields of the labels displayed on the portion of the user interface of the software application; and Obtain the translation content corresponding to each of the values.
11. The intelligent translation system according to claim 1, wherein the default options for the translation metadata are user-editable.
12. The intelligent translation system of claim 11, wherein, in order to enable the display of the translated content of the input content via an application, the processor is configured to: Generate a tag including the translated content for each tag in the tags, wherein the background of the generated tag is set to match the background of the original field displayed on the portion of the user interface; and The generated label is overlaid on the original field.
13. The intelligent translation system according to claim 1, wherein the translation metadata is extracted manually or automatically.
14. The intelligent translation system of claim 13, wherein, in order to manually extract the translation metadata, the processor is configured to: Receive user requests for the translation metadata; and A context menu is provided that allows the user to input at least a portion of the translation metadata.
15. A method for providing AI-based translation, comprising: Receive the input content to be translated; Extract translation metadata, which includes the source language of the input content and the target language into which the input content is to be translated; Determine whether the translated content of the input exists in the user's cache; If the translated content of the input content is in the user cache, then the translated content is obtained from the user cache. Otherwise, if the translated content of the input is not stored in the user cache, Extract the context associated with the input content. Automatically select a translation engine from multiple automatic translation engines based on the context, and The translated content of the input content is obtained from the selected translation engine; The display of the translated content of the input content is enabled via the application used to display the input content. The translated content is displayed by the application using visibility attributes similar to those of the input content.
16. The method of claim 15, wherein receiving the input content to be translated further comprises: Receive user selections that are displayed on the application's user interface (UI).
17. The method of claim 15, wherein extracting the context of the input content further comprises: Extract the text content of the input content; The domain context of the input content is obtained by providing the text content to a machine learning (ML) domain classification model. as well as The language context of the input content is obtained based on the target language.
18. The method of claim 15, wherein obtaining the translated content of the input content from the selected translation engine further comprises: Parse and tag the input content; Sensitive data is identified from the input content based on one or more of the n-gram syntax and inference rules. as well as The sensitive data is masked from the input content before it is provided to the selected translation engine for translation.
19. A non-transient processor-readable storage medium, comprising machine-readable instructions that cause a processor to: Access the input content to be translated via the application; Extract translation metadata, which includes the source language of the input content and the target language into which the input content is to be translated; Determine whether the translated content of the input exists in the user's cache; If the translated content of the input content is in the user cache, then the translated content is obtained from the user cache. Otherwise, if the translated content of the input is not stored in the user cache, Determine the type of the application that provides the input content, and The translated content of the input content is obtained from a translation engine, which is automatically selected from multiple automatic translation engines, wherein the translated content is generated based on the type of the application; as well as The display of the translated content of the input content is enabled via the application used to display the input content, wherein... When the translated content is displayed through the application, at least one visibility attribute of the input content is maintained.
20. The non-transient processor-readable storage medium of claim 19, further comprising additional instructions that cause the processor to: Highlighting key portions of the translated content in the display; and Provide a summary of the translated content.
Citation Information
Patent Citations
Language content translation
CN106537373A
Page display method and device, computer equipment and storage medium
CN113900762A
