Machine translation locking using sequence-based lock / unlock classification
By using sequence-related locking/unlocking classifiers in the software translation system, automatically identifying and locking word segmentation that should not be translated, the problem of functional interruption in the software translation process in the prior art is solved, and more accurate and efficient translation results are achieved.
Patent Information
- Application Number
- CN201980019445.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-03-22
- Filing Date
- 2019-03-13
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2039-03-13
AI Technical Summary
When prior art translates or localizes software, it is difficult to effectively identify and lock strings or substrings that should not be translated, resulting in interruption of software functions or degradation of user experience.
By receiving the software input string, the trained sequence-dependent lock/unlock classifier is applied after word segmentation, and each participle is classified to decide whether to lock to prevent translation. The locked participle is identified and converted into a converted string, submitted to the machine translation system, and the locked participle is replaced in the result to generate the final translated software string.
It automatically recognizes and locks parts that should not be translated during the software translation process, avoids interruption of software functions, and improves the accuracy and user experience of translation.
Smart Images

Figure CN111886596B_ABST
Abstract
Description
Background Art
[0001] Computing systems are currently widely used. Some computing systems are used between geographical regions with different local languages. Therefore, some computing systems will be translated or localized, wherein parts of the software (such as software resources) are translated or localized.
[0002] A machine translation system is a system that automatically translates an input string provided in a source language into an output string in a target language. However, when software is provided as an input string to a machine translation system for translation or localization, some challenges are encountered. For example, when software resources are to be translated or localized, these resources may include strings or substrings that are not to be translated. These strings or substrings may include, for example, functionally related text, such as placeholders, HTML tags, attribute names, application-specific keywords, etc. If these strings or substrings are translated, it may cause software functionality to be interrupted, which may prohibit users from using certain software features.
[0003] Some current systems use a manual process. People try to manually identify which strings or substrings should be locked from translation (e.g., not translated or localized). Of course, this is very cumbersome, time-consuming, and expensive. It is also relatively error-prone. In addition, if there are any changes to the resources or software to be translated, the manual process must be extended or repeated.
[0004] Another current approach attempts to list all possible problem areas of the software in each knowledge area and use deterministic methods to identify the parts of that knowledge area to target. This also has several problems. It is very difficult to exhaustively list all problems with software, and deterministic methods cannot cover all possible cases for each problem.
[0005] Another current approach is to simply submit the entire software resource to the machine translation system without locking certain parts of it to prevent any attempt at translation. This often results in over-translation, where certain parts of the software that should be locked are actually translated.
[0006] The above discussion is provided for general background information only and is not intended to be used as an aid in determining the scope of the claimed subject matter. Summary of the invention
[0007] A software input string is received and segmented into a sequence of segmented words. The sequence of segmented words is applied to a trained sequence-dependent lock / unlock classifier so that each segmented word is classified as a segmented word that should be locked or kept unlocked for subsequent translation. The software input string is transformed into a converted string, wherein locked segmented words are identified and the converted string is submitted for machine translation. The machine translation result is received and converted so that the locked segmented words are replaced in the machine translation result to obtain a translated software string.
[0008] This Summary is provided to introduce some concepts in a simplified form that are further described in the Detailed Description below. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the Background. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Figure 1 is a block diagram of an example of a translation locking architecture.
[0010] Figure 2 is a block diagram illustrating several different examples of context-dependent (sequence-based) lock / unlock classifiers.
[0011] Figure 3A and 3B (collectively referred to herein as FIG. 3 ) shows a flow chart showing Figure 1 The illustrated architecture is an example of its operation when translating a software input string.
[0012] Figure 3C-3I An example of a segmented character string is shown.
[0013] Figure 4 is a block diagram of an example of a training system architecture for training a context-dependent (sequence-based) lock / unlock classifier.
[0014] Figure 5 It is shown Figure 4 A flowchart of one example of the operation of the illustrated architecture in training a context-dependent (sequence-based) lock / unlock classifier.
[0015] Figure 6 It shows the deployment in cloud computing architecture Figure 1 and 4 A block diagram of an example of the architecture is shown.
[0016] Figure 7 is a block diagram illustrating one example of a computing environment that may be used in the architecture shown in the previous figures. DETAILED DESCRIPTION
[0017] Figure 1 1 is a block diagram illustrating one example of a translation lock architecture 100. The architecture 100 includes a translation lock computing system 102 that receives a software input string 104 for translation or localization. It converts the software input string 104 into a translated string 106 (such as a string with a lock indicator indicating which word segments on the software input string 104 are to be locked) that is provided to a machine translation system 108. The machine translation system 108 translates the translated string given the lock indicator and provides a machine translation result 106. The machine translation result 106 can be processed by the translation lock computing system 102 and output as a translated software string 112.
[0018] exist Figure 1 In the example shown, the translation lock computing system 102 illustratively includes one or more processors or servers 114, a translation lock classification system 116, string conversion logic 118, and it may include other items 120. The translation lock classification system 116 itself illustratively includes word segmentation identification logic 122, context-dependent word segmentation classifier logic 124, a data repository 126, and it may include other items 128. The string conversion logic 118 itself illustratively includes locking logic 130, unlocking logic 132, and a data repository 133 (which may include a string identifier 135 and locked word segmentation data 137 and other items 139). The string conversion logic 118 may also include other items 134. Figure 1 Also shown, in one example, the translation lock classification system 116 generates a classified string 136, which may be a word segment and a classification indicator, the classification indicator indicating whether each word segment should be locked from machine translation or unlocked. Before describing the overall operation of the architecture 100 in more detail, a brief overview of certain items in the architecture 100 and their operation will first be provided.
[0019] exist Figure 1 In the example shown, the translation locking computing system 102 receives a software input string 104. In this example, it will be assumed that the software input string 104 is a software resource, but it can be any software code to be translated or localized. The system 102 then analyzes the string 104 to identify which parts of the string should be locked from translation (i.e., not translated).
[0020] The translation lock classification system 116 receives the string 104 and performs the operations required to identify which parts of the string should be locked. In doing so, the word segmentation identification logic 122 identifies the different word segments in the string 104 and outputs a word segmentation sequence representing the string 104. Word segments can take different forms, such as n-grams, words, characters, etc. The word segmentation classifier logic 124 then performs classification on the word segmentation sequence representing the string 104 to identify which word segments should be locked to prevent translation. It generates a classified string 136, which can include a word segmentation sequence and a classification indicator indicating which of these word segments will be locked. The string conversion logic 118 then converts the classified string 136 so that it is in a form that it can be translated by the machine translation system 108. In one example, the locking logic 130 operates on the word segment to be locked. As described in more detail below for an example, the locking logic 130 generates the converted string 106 by identifying the words to be locked and deleting these words and replacing them with words that will not be translated (such as hashtags or other words). The converted string 106 (such as a string in which the locked words have been deleted and replaced with words that will not be translated) is provided to the machine translation system 108. The string identifier 135 and the word segmentation data 137 identifying the deleted words are stored in the data repository 330. The machine translation system 108 then translates the converted string 106 by translating the unlocked words without translating the locked words (e.g., a hashtag or a series of hashtags or another locked word). The machine translation result 110 is returned to the string conversion logic 118. The unlocking logic 132 then accesses the data repository 133 to obtain the original words deleted from the string, and replaces the untranslated words in the machine translation result 110 with the words deleted by the locking logic 130. Therefore, the machine translation result 110 now includes the non-translated word segments identified by the translation lock classification system 116. The result is the translated string 112, which is output by the system 102.
[0021] Figure 21 is a block diagram showing multiple different examples of context-dependent word segmentation classifier logic 124 in more detail. The context-dependent word segmentation classifier logic 124 illustratively includes a context-dependent (sequence-based) lock / unlock classifier 140, and it may include other items 142. Classifier 140 can be any of a variety of different classifiers, such as a recursive neural network (RNN) 144, a bidirectional recursive neural network (BRNN) 146, a long short-term memory (LSTM) network 148, or a bidirectional long short-term memory (BLSTM) network 150. In this example, various network diagrams 144-150 are shown in dotted lines to indicate that they do not need to all exist. On the contrary, even a single network 144-150 can be used as a context-dependent (sequence-based) lock / unlock classifier 140.
[0022] It should be understood that a bidirectional RNN uses a finite sequence of nodes to predict or label each element in a sequence based on the past and future context of the element. In one example, two different RNNs are connected in series, where one RNN processes the input sequence in a first direction (such as from left to right) and the other RNN processes the input sequence in the opposite direction (e.g., from right to left). Given the right and left contexts of the input sequence, the outputs are combined to predict the label of each element of the input sequence.
[0023] It will also be appreciated that recursive neural networks may not be very effective in processing long sequences due to the vanishing gradient problem, where the error propagated from one layer to another decreases exponentially with the number of layers in the network. An LSTM network is a type of RNN (or a set of RNNs that solve this problem) that solves this problem. It is understood that LSTM networks are better at understanding long data sets relative to RNNs. This is because LSTM networks perform better at learning long-range dependencies in sequences (e.g., one participle in a sequence depends on another participle in the sequence, which separates one or more other participles from the first participle in either direction in the sequence). Therefore, although different types of classifiers work slightly differently, using any one of RNN, BRNN, LSTM, or BLSTM as classifier 140 can achieve significant improvements.
[0024] Figure 3A and 3B (collectively referred to herein as FIG. 3 ) shows a flow chart showing Figure 1 The illustrated architecture 100 is an example of the operation of identifying which words in the software input string 104 are to be locked from translation and in generating the translated string 112. Figure 1 -3.
[0025] First, it is assumed that the context-dependent (sequence-based) lock / unlock classifier 140 has been trained and is operational. This is indicated by block 160 in the flowchart of FIG. 3 . Figure 4 and 5 An example of training a context-dependent (sequence-based) lock / unlock classifier 140 is discussed. In one example, the classifier may be a recurrent neural network 144, a bidirectional recurrent neural network 146, a long short-term memory network (LSTM network) 148, or a bidirectional LSTM network 150.
[0026] Then, the translation classification system 116 receives the software input string 104 for translation (e.g., a resource provided for localization). This is indicated by box 170 in the flowchart of Figure 3. In one example, the software input string 104 may include text segmentations to be translated. This is indicated by box 172. However, the software input string 104 may also include function-related segmentations that will not be translated. This is indicated by box 174. Some examples of these segmentations include placeholders, HTML tags, attribute names, application-specific keywords, etc. The software input string 104 may also include other items 176.
[0027] The word segmentation identification logic 122 then identifies the sequence of word segments in the software input string 104. This is indicated by box 178 in Figure 3. The word segments may include things such as words 180, n-grams (or other word sequences) 182, characters 184, or the word segments may consist of other items 186.
[0028] Once the segmented words are identified, the segmented word sequence is provided or applied to the context-dependent (sequence-based) lock / unlock classifier 140. This is indicated by box 188 in the flowchart of Figure 3. Each segmented word is then classified as locked or unlocked based on its context relative to the other segmented words in the segmented word sequence representing the software input string 104. This is indicated by box 190. That is, based on the segmented word sequence identified in the software input string 104, each segmented word is classified to indicate that it should be locked to prevent machine translation or unlocked so that it can be translated.
[0029] An example may be helpful. First assume that the word segmentation identification logic 122 is configured to identify word segments as individual characters in the input string 104. For example, also assume that the software input string is Figure 3C string shown; and also assume that the characters "{0}" in the input string represent a software placeholder that will not be translated. Therefore, Figure 3CEach box in the input string shown represents one of the tokens identified by the token identification logic 122. Thus, applying this sequence of tokens to the context-sensitive (sequence-based) lock / unlock classifier 140 will identify the software placeholder "{", "0", "}" as the tokens to be locked to prevent classification. The classifier 140 will thus generate classification indicators for these tokens indicating whether they should be locked to prevent translation. Generating classification indicators for each token is indicated by box 192 in the flowchart of FIG. 3.
[0030] It should also be understood that in another example, the token identification logic 122 can identify tokens as words as well as characters. In this case, as an example, the word "hello" can be identified as one token, and then the character sequence "{0}" can be identified as another token. Thus, the token "hello" will be identified as the token to be translated, while the token "{0}" will be identified as the token that will not be translated (or locked to prevent translation).
[0031] In one example, the context-sensitive (sequence-based) lock / unlock classifier 140 is trained to improve the accuracy of analyzing sequence data. Context-sensitive or (sequence-based) means that the classifier 140 classifies whether a token (e.g., a character or word) should be translated or locked to prevent translation taking into account what characters or words (e.g., tokens) exist in the string in the past or future relative to the token being processed. Another example may help illustrate this.
[0032] For example, assume that the software input string 104 is "<table border:none". Additionally, assume that the token identification logic 122 identifies words as well as special characters as individual tokens. In this case, as Figure 3D shown, the software input string 104 will be tokenized using flags T0 - T4, each flag representing an individual token.
[0033] Assume that the software input string 104 is Figure 3D the string shown. The classifier 140 can generate an output indicating that the token T1 "table" is an HTML tag (and thus should be locked to prevent translation) based on the context that the token T0 "<" is a previous event. This context or sequence dependence is by Figure 3E. Arrow 193 in . Arrow 194 indicates that when the currently processed participle is participle T2 "border", the context or the participle sequence before the participle is considered when classifying the participle as locked or unlocked. Arrow 194 shows that participle T0 "<" (i.e., the participle that is two participles earlier in the sequence than the currently processed participle T2 when the sequence is considered from left to right) indirectly affects the participle "border" through the participle "table". Classifier 140 takes into account this long-distance dependency on previous participles.
[0034] However, in one example, the classifier 140 is also bidirectional in that it not only considers the sequence of word segments before the current word segment (the word segment currently being processed), but also considers future word segments, or the sequence of word segments after the current word segment. Thus, in the example where the classifier 140 is a bidirectional classifier, it considers word segment sequences not only in a first direction (e.g., from left to right) but also in the opposite direction (e.g., from right to left). Thus, in Figure 3F In the example shown, the fact that the participle "border" precedes the participle ":" increases the confidence that the participle "border" is identified as an attribute name. Then, as shown by arrow 196, the fact that the participle "border" precedes the participle ":" (which itself precedes the participle "none") further increases the confidence that the participle "border" can be identified as an attribute name (and therefore classified as a participle that is locked to prevent translation).
[0035] Regardless of whether the classifier 140 is a unidirectional classifier or a bidirectional classifier, it illustratively identifies whether each word segment should be locked to prevent translation or unlocked for translation, and it generates a lock / unlock indicator indicating the classification result based on the word segment context (or word segment sequence). In one example, the lock / unlock classifier only identifies the word segment to be locked or the word segment to be unlocked, and assumes that the other word segments belong to the opposite classification. For example, if it generates an indicator that only identifies the word segment to be locked, it is assumed that all word segments without indicators will be unlocked, and vice versa. This is just an example, and indicators can also be generated for each word segment.
[0036] Once the classification indicators are generated for the words in the software input string 104, the classified string and its classification indicator ( Figure 1136 in FIG. 3 ) is provided to the string conversion logic 118, which generates the converted string based on the word segmentation and classification indicator. This is indicated by box 195 in the flowchart of FIG. 3 . In one example, the conversion deletes the locked word segmentation so that they are not even provided to the machine translation system 108. However, the locked word segmentation can provide context for the machine translation system, so that deleting them may reduce the accuracy of the translation. Therefore, in another example, the conversion adds tags around the locked word segmentation to identify it as locked. This is indicated by box 196 in the flowchart of FIG. 3 . Then, data representing the added tags (such as string identifier 135 and word segmentation data 137) (which identifies the tagged word segmentation and where they are tagged in the string) can be stored in the data repository 133. This is indicated by box 199. In another example, this information does not need to be stored. The converted string can also be generated in other ways, and this is indicated by box 200.
[0037] An example may also help to further illustrate this point. Returning again to the case where the input string 104 is Figure 3C As an example of a string shown in FIG. 1 , it is now assumed that the words "hello" and "!" have been classified as words to be translated, and the word "{0}" has been identified as a word (or word sequence) to be locked to prevent translation. In this case, the translated string is generated by tagging the locked word (or word sequence) with a tag indicating that it will not be translated. Such an example is shown in FIG. Figure 3G It is shown in Figure 3G An example of a converted string 106 is shown with a locked word tagged on both sides.
[0038] Once the converted string is generated, it is illustratively sent to the machine translation system 108 where the unlocked word segments are translated. Sending the converted string to the machine translation system 108 is indicated by block 202 in the flowchart of FIG.
[0039] In one example, the translation system may be a remote translation service that performs the translation on the converted string and then returns the translation result. It may also be a local machine translator or other type. Receiving the translation result at the string conversion logic 118 is indicated by block 204 in the flowchart of FIG. Figure 3G An example of a converted string 106 is shown, and an example of a translation result received from a machine translation system 108 is shown in Figure 3H Shown in.
[0040] Once the translation result 110 is received from the machine translation system 108, the unlocking logic 132 in the string conversion logic 118 converts the translation result to a translated string, as shown in box 206. In one example, the unlocking logic 132 locates and deletes the tags used to identify the locked word(s). This is indicated by box 208. This can be done by checking the translation result 110, or accessing the data repository 133 (if the information is stored there) before translation to find the location where the tag was inserted in the string and converting the translation result 110 to a translated string 112 by deleting the tag. Therefore, the final translated string 112 is translated into the target language, but the locked word remains untranslated. Such an example is in Fig. 3I It is shown in Figure 3H The tags in have now been deleted. The conversion can also be done in other ways, and this is indicated by box 212.
[0041] It should also be noted that in one example, the accuracy of the translated string 112 can be checked. The translated string 112 can be tested or otherwise analyzed to identify errors, or to indicate accuracy, precision, and / or recall in the above-mentioned locking process. The results of this analysis can also be fed back to a training system (such as a machine learning system or another training system, see below) for training or improving the classifier 140. Figure 4 and 5 3. The classifier 140 may then be adapted to improve its accuracy. Feeding back any accuracy, precision, or recall results to the training system for continued learning is indicated by block 214 in the flowchart of FIG. 3.
[0042] Figure 4 2 is a block diagram showing one example of a training system architecture 250. The architecture 250 illustratively includes a training data generation system 252 and a model training system 254. The training data generation system 252 illustratively accesses a variety of different types of training data. For example, it can include historical translated source and target data 254. The data 254 can include a set of parallel data with source data and corresponding translated target data that has been translated into a target language. Similarly, in the case of analyzing the accuracy of the translated strings 112, correction data can be generated to correct any errors in the translated strings 112. This type of correction data from the runtime architecture (by Figure 4 ) can also be fed back to the training data generation system 252.
[0043] There may be a variety of other types of locked / unlocked training data as well, and this is indicated by box 258. For example, in one example, different types of build engines may use validation logic to validate that the translated text complies with the provided translation instructions and the source text to be translated. The output of the validation process may be a set of tags for marking the translated text so that errors in the translation process may be identified. This type of information may also be used by the training data generation system 252.
[0044] Based on the received training or other data, the training data generation system 252 generates labeled lock / unlock training data 260. The labeled lock / unlock training data 260 is provided to the model training system 254, which trains the context-dependent (sequence-based) lock / unlock classifier 140 and outputs the trained classifier 140. Before describing the overall operation of the architecture 250 in more detail, a brief description of certain items in the architecture 250 and their operation will first be provided.
[0045] exist Figure 4 In the example shown, the training data generation system includes one or more processors or servers 262, source / target comparison logic 264, and it may include various other items 266. The model training system 254 illustratively includes one or more processors or servers 268, word embedding logic 270, context-dependent (sequence-based) classifier training system 272, which itself may include unidirectional training logic 274, bidirectional training logic 276, and it may include other items 278. The model training system 274 may also include various other logic or items 280.
[0046] The source / target comparison logic 264 in the training data generation system 252 illustratively receives the historical translated source and target data 254 and compares the source string to the translated target string. It can identify which word segments in the two strings are the same (e.g., which word segments have not yet been translated). It can use this information and other information it receives to mark the training data by identifying word segments that will not be translated from the source language to the target language (word segments that will be locked to prevent translation).
[0047] The labeled lock / unlock training data 260 is received by the model training system 254. The word embedding logic 270 illustratively implements language modeling and feature learning techniques, in which words or phrases are encoded so that they can be used by the context-dependent classifier training system 272. In an example using the word embedding logic 270, the words or phrases in the labeled lock / unlock training data 260 are illustratively mapped to real vectors. Conceptually, this involves mathematical embedding from a space with one dimension per word to a continuous vector space with lower dimensions. Word embedding quantifies and classifies semantic similarities between language items based on the distribution characteristics of language items in a large sample of language data. Once encoded using the word embedding logic 270, the data is passed to the context-dependent (sequence-based) classifier training system 272. In one example, the unidirectional training logic 274 trains the RNN or LSTM network to be context-dependent (or sequence-dependent) in one direction (such as from left to right). However, in another example, the bidirectional training logic 276 is used such that the context-dependent (sequence-based) classifier 140 is trained taking into account context in both directions (eg, from left to right and from right to left).
[0048] Figure 5 It is shown Figure 4 A flowchart of an example of the operation of the training system architecture 250 is shown. Figure 4 and 5 .
[0049] The training data generation system 252 first generates the labeled lock / unlock training data 260. Figure 5 This is indicated by box 290 in the flowchart of . As described above, this can be done by comparing historical source / target data to identify untranslated word segments by the source / target comparison logic 264. This is indicated by box 292. This can be done by obtaining tokens (translation lock instructions) from other systems. This is indicated by box 294. This can be done by obtaining correction data from the runtime architecture as described above. This is indicated by box 296. The marked lock / unlock training data 260 can also be generated in other ways, and this is indicated by box 298.
[0050] The tokens (words, characters, etc.) in the labeled lock / unlock training data 260 are then encoded into a sequence of processable units that can be processed in the model training system 254. Figure 5 In one example, the word embedding logic 270 is used to implement word embedding to encode the word using a word embedding technique. This is indicated by box 302. The word segmentation can also be encoded in other ways, and this is indicated by box 304.
[0051] The context-dependent (sequence-based) classifier training system 272 then trains the context-dependent (sequence-based) lock / unlock classifier 140 based on the encoded word segmentation sequence. This is indicated by box 306. The training can be performed by the unidirectional training logic 274 to complete the unidirectional training 308. It can also be performed by the bidirectional training logic 276 to obtain the bidirectional training 310. The training can also be performed in other ways 312.
[0052] Once the classifier 140 is trained, the model training system 254 outputs the trained classifier 140. This is indicated by box 314. As described above, the trained lock / unlock classifier 140 can be an RNN 144, a bidirectional RNN 146, an LSTM network 148, or a bidirectional LSTM network 150. Any or all of these are contemplated herein.
[0053] Thus, this discussion greatly improves the machine translation process by providing a method for identifying strings or substrings in software to be translated or localized and actively protecting them during the machine translation process. The system uses a recursive neural network or LSTM network (or their bidirectional version) to learn from the data without relying on domain knowledge or feature engineering. The classifier then performs sequence-to-sequence learning for binary classification (lock / unlock classification), and a closed-loop feedback system can be provided to continuously improve the performance of the classifier using machine learning. All of this greatly enhances the translation process and thereby greatly improves the performance of the computing system. Because it reduces over-localization (over-translation) of computing system resources, the resulting system performs better and has fewer errors.
[0054] It should be noted that the above discussion has described various systems, components and / or logic. It should be understood that such systems, components and / or logic can be composed of hardware items (such as processors and associated memory or other processing components, some of which are described below) that perform functions associated with these systems, components and / or logic. In addition, as described below, systems, components and / or logic can be composed of software that is loaded into memory and then executed by processors or servers or other computing components. Systems, components and / or logic can also include different combinations of hardware, software, firmware, etc., some examples of which are described below. These are just some examples of different structures that can be used to form the above-mentioned systems, components and / or logic. Other structures can also be used.
[0055] This discussion refers to processors and servers. In one embodiment, processors and servers include computer processors with associated memory and timing circuitry not shown separately. They are functional parts of the systems or devices to which they belong and are activated by other components or items in those systems and support their functions.
[0056] In addition, many user interface displays have been discussed. They can take a variety of different forms, and a variety of different user-actuated input mechanisms can be provided thereon. For example, the user-actuated input mechanism can be a text box, a check box, an icon, a link, a drop-down menu, a search box, etc. They can also be actuated in a variety of different ways. For example, a click device (such as a trackball or a mouse) can be used to be actuated. They can be actuated using hardware buttons, switches, joysticks or keyboards, thumb switches or thumb pads, etc. They can also be actuated using virtual keyboards or other virtual actuators. In addition, in the case where the screen displaying them is a touch-sensitive screen, they can be actuated using touch gestures. In addition, in the case where the device displaying them has a voice recognition component, they can be actuated using voice commands.
[0057] A number of data repositories are also discussed. It should be noted that each of them can be divided into multiple data repositories. All can be local to the system accessing them, all can be remote, or some can be local and others can be remote. All of these configurations are considered in this article.
[0058] In addition, these figures show multiple blocks with functionality attributed to each block. It should be noted that fewer blocks can be used, so the functionality is performed by fewer components. Likewise, more blocks can be used with functionality distributed between more components.
[0059] Figure 6 yes Figure 1 and 4 The block diagrams of the architectures 100 and 250 shown are different in that the elements are arranged in the cloud computing architecture 500. Cloud computing provides computing, software, data access and storage services that do not require end users to understand the physical location or configuration of the system that provides the service. In various embodiments, cloud computing uses appropriate protocols to provide services on wide area networks such as the Internet. For example, cloud computing providers provide applications through wide area networks and can access them through web browsers or any other computing components. The software or components of architecture 100 and corresponding data can be stored on servers at remote locations. The computing resources in a cloud computing environment can be integrated at a remote data center location, or they can also be dispersed. Cloud computing infrastructure can provide services through a shared data center, even if they are only an access point for users. Therefore, the components and functions described herein can be provided from a service provider at a remote location using a cloud computing architecture. Alternatively, they can be provided from a conventional server, or they can also be installed directly or otherwise on a client device.
[0060] This description is intended to include both public and private cloud computing.Cloud computing (public and private) provides a substantially seamless pool of resources and reduces the need to manage and configure the underlying hardware infrastructure.
[0061] Public clouds are managed by the vendor and typically use the same infrastructure to support multiple consumers. Also, in contrast to private clouds, public clouds free the end user from the burden of managing hardware. Private clouds can be managed by the organization itself, and the infrastructure is typically not shared with other organizations. The organization still maintains the hardware to some extent, such as installation and repairs.
[0062] exist Figure 6 In the example shown, some items are similar to Figure 1 and 4 These are shown, and they are similarly numbered. Figure 6 Specifically shown are systems 100, 102, 252, and 254 that can be located in a cloud 502 (which can be public, private, or a combination where some are public and other parts are private). Thus, a user 508 can access these systems through the cloud 502 using a user device 504 (e.g., such as to initiate translation or localization of software 512 stored in a data repository 510, or to initiate training of a classifier 140 using systems 252 and 254).
[0063] Figure 6 Another example of a cloud architecture is also depicted. Figure 6 It is also contemplated that certain elements or systems may be arranged in the cloud 502, while others may not. For example, the data repositories 126, 133, 510 may be located outside the cloud 502 and may be accessed through the cloud 502. In another example, the system 102 (or other items) may be external to the cloud 502. Regardless of where they are located, they may be directly accessed by the device 504 over a network (wide area network or local area network), may be hosted at a remote site by a service, or may also be provided as a service through the cloud, or accessed by a connection service residing in the cloud. All of these architectures are contemplated herein.
[0064] It should also be noted that the architecture 100 and / or 250 or portions thereof can be disposed on a variety of different devices. Some of these devices include servers, desktop computers, laptop computers, tablet computers or other mobile devices such as palmtop computers, cellular phones, smart phones, multimedia players, personal digital assistants, etc.
[0065] Figure 7 is an example of a computing environment in which architecture 100 and / or 250, or portions thereof, may be deployed. Figure 7, an example system for implementing some embodiments includes a general purpose computing device in the form of a computer 810. Components of the computer 810 may include, but are not limited to, a processing unit 820 (which may include a processor or server from the previous figures), a system memory 830, and a system bus 821 that couples various system components including the system memory to the processing unit 820. The system bus 821 may be any of several types of bus structures using any of a variety of bus architectures, including a memory bus or memory controller, a peripheral bus, and a local bus. By way of example and not limitation, such architectures include the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, the Enhanced ISA (EISA) bus, the Video Electronics Standards Association (VESA) local bus, and the Peripheral Component Interconnect (PCI) bus (also known as a mezzanine bus). Reference Figure 1 and 4 The memory and programs described can be deployed in Figure 7 in the corresponding part of .
[0066] Computer 810 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computer 810, and includes volatile and non-volatile media, removable and non-removable media. As an example and not limitation, computer-readable media may include computer storage media and communication media. Computer storage media is different from (but not including) modulated data signals or carrier waves. It includes hardware storage media, including volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules or other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, cassettes, tapes, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and can be accessed by computer 810. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a transmission mechanism, and includes any information delivery media. The term "modulated data signal" refers to a signal whose one or more characteristics are set or changed in a manner that can encode information into a signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
[0067] The system memory 830 includes computer storage media in the form of volatile and / or nonvolatile memory, such as read-only memory (ROM) 831 and random access memory (RAM) 832. A basic input / output system 833 (BIOS), containing the basic routines that help transfer information between elements within the computer 810, such as during startup, is typically stored in ROM 831. RAM 832 typically contains data and / or program modules that are immediately accessible and / or currently being operated on by the processing unit 820. By way of example and not limitation, Figure 7 Operating system 834 , application programs 835 , other program modules 836 , and program data 837 are shown.
[0068] The computer 810 may also include other removable / non-removable volatile / non-volatile computer storage media. For example only, Figure 7 A hard disk drive 841 that reads or writes to non-removable non-volatile magnetic media, and an optical disk drive 855 that reads or writes to a removable non-volatile optical disk 856 (such as a CD ROM or other optical media) are shown. Other removable / non-removable volatile / non-volatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tapes, solid-state RAM, solid-state ROM, etc. The hard disk drive 841 is typically connected to the system bus 821 via a non-removable memory interface such as interface 840, and the optical disk drive 855 is typically connected to the system bus 821 via a removable memory interface such as interface 850.
[0069] Alternatively or additionally, the functions described herein may be performed at least in part by one or more hardware logic components. For example, and not limitation, illustrative types of hardware logic components that may be used include field programmable gate arrays (FPGAs), program-specific integrated circuits (ASICs), program-specific standard products (ASSPs), system-on-chip systems (SOCs), complex programmable logic devices (CPLDs), and the like.
[0070] The above discussion and Figure 7 The drives and their associated computer storage media shown in FIG. 8 provide storage of computer readable instructions, data structures, program modules and other data for the computer 810. Figure 7 844, application programs 845, other program modules 846, and program data 847. Note that these components may be the same as or different from operating system 834, application programs 835, other program modules 836, and program data 837. Operating system 844, application programs 845, other program modules 846, and program data 847 are given different numbers here to illustrate that they are at least different copies.
[0071] A user may enter commands and information into the computer 810 through input devices such as a keyboard 862, a microphone 863, and a pointing device 861 (such as a mouse, trackball, or touch pad). Other input devices (not shown) may include a joystick, a game controller, a satellite dish, a scanner, or the like. These and other input devices are typically connected to the processing unit 820 through a user input interface 860 coupled to the system bus, but may be connected through other interfaces and bus structures such as a parallel port, a game port, or a universal serial bus (USB). A visual display 891 or other type of display device is also connected to the system bus 821 via an interface such as a video interface 890. In addition to the display, the computer may also include other peripheral output devices such as speakers 897 and a printer 896 that may be connected through an output peripheral interface 895.
[0072] The computer 810 operates in a networked environment using logical connections to one or more remote computers, such as a remote computer 880. The remote computer 880 may be a personal computer, a handheld device, a server, a router, a network personal computer, a peer device, or other public network node, and typically includes many or all of the elements described above with respect to the computer 810. Figure 7 The logical connections shown include a local area network (LAN) 871 and a wide area network (WAN) 873, but other networks may also be included. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
[0073] When used in a LAN networking environment, the computer 810 is connected to the LAN 871 through a network interface or adapter 870. When used in a WAN networking environment, the computer 810 typically includes a modem 872 or other means for establishing communications over the WAN 873, such as the Internet. The modem 872, which may be internal or external, may be connected to the system bus 821 via the user input interface 860 or other appropriate mechanism. In a networking environment, program modules depicted with respect to the computer 810 or portions thereof may be stored in the remote memory storage device. By way of example and not limitation, Figure 7 Remote application programs 885 are shown residing on remote computer 880. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
[0074] It should also be noted that the different embodiments described herein can be combined in different ways. That is, parts of one or more embodiments can be combined with parts of one or more other embodiments. All of these are considered herein.
[0075] Example 1 is a computing system comprising:
[0076] context-sensitive word segment locking classifier logic that receives a representation of a software input string to be translated and classifies words in the representation of the software input string to identify words to be locked from translation, and generates a classified string with a classification indicator based on the representation of the software input string, the classification indicator indicating that the identified words are to be locked from translation;
[0077] string conversion logic that converts the classified string into a converted string in which the identified word segment is identified so that the identified word segment is locked to prevent translation based on the classification indicator, and sends the converted string to a machine translation system;
[0078] The unlocking logic receives the machine translation results from the machine translation system and generates a translated software string in which the identified word segment is not translated based on the machine translation results.
[0079] Example 2 is a computing system according to any or all of the preceding examples, and further comprising:
[0080] The word segmentation identification logic receives a software input string and is configured to generate a sequence of word segments in the software input string in which word segments in the software input string are identified as a representation of the software input string.
[0081] Example 3 is a computing system according to any or all of the preceding examples, wherein the context-dependent word segmentation locking classifier logic includes:
[0082] A sequence-based lock / unlock classifier is configured to classify each word in a word sequence as a word to be locked or a word to be translated based on at least one other word in the word sequence, and generate a classification indicator identifying the word classified as a word to be locked.
[0083] Example 4 is a computing system according to any or all of the preceding examples, wherein the sequence-based lock / unlock classifier comprises:
[0084] Recurrent Neural Networks.
[0085] Example 5 is a computing system according to any or all of the preceding examples, wherein the sequence-based lock / unlock classifier comprises:
[0086] Bidirectional recurrent neural network.
[0087] Example 6 is a computing system according to any or all of the preceding examples, wherein the sequence-based lock / unlock classifier comprises:
[0088] Long Short-Term Memory (LSTM) Networks.
[0089] Example 7 is a computing system according to any or all of the preceding examples, wherein the sequence-based lock / unlock classifier comprises:
[0090] Bidirectional Long Short-Term Memory (BLSTM) network.
[0091] Example 8 is a computing system according to any or all of the preceding examples, wherein the string conversion logic comprises:
[0092] A locking logic is configured to generate a transformed string by tagging the identified word segments in the classified string with predefined tags.
[0093] Example 9 is a computing system according to any or all of the preceding examples, wherein the machine translation result includes a translated version of the converted string in which the identified word segment is not translated and tagged with a predefined tag, and wherein the unlocking logic is configured to generate the translated software string by removing the predefined tag in the translated version of the converted string.
[0094] Example 10 is a computer-implemented method comprising:
[0095] receiving a representation of a software input string to be translated;
[0096] classifying word segments in a representation of a software input string to identify word segments to be locked from translation;
[0097] generating a classified string with a classification indicator based on a representation of the software input string, the classification indicator indicating that the identified word segments are to be locked to prevent translation;
[0098] converting the classified string based on the classification indicator into a converted string in which the identified word segments are tagged such that the identified word segments are locked to prevent translation;
[0099] Send the translated string to the machine translation system;
[0100] receiving machine translation results from a machine translation system; and
[0101] A translated software string in which the identified word segment is not translated is generated based on the machine translation result.
[0102] Example 11 is a computer-implemented method according to any or all of the preceding examples, and also includes:
[0103] receiving a software input string; and
[0104] A sequence of word segments in the software input string in which the word segments in the software input string are identified is generated as a representation of the software input string.
[0105] Example 12 is a computer-implemented method according to any or all of the preceding examples, wherein classifying the word segments comprises:
[0106] Classifying each segmentation in the segmentation sequence as a segmentation to be locked or a segmentation to be translated based on at least one other segmentation in the segmentation sequence; and
[0107] A classification indicator is generated that identifies a word that is classified as a word to be locked.
[0108] Example 13 is a computer-implemented method according to any or all of the preceding examples, wherein classifying each word segment comprises:
[0109] A recurrent neural network (RNN) classifier is used to classify each token based on at least one other token in the sequence of tokens.
[0110] Example 14 is a computer-implemented method according to any or all of the preceding examples, wherein classifying each word segment comprises:
[0111] A bidirectional recurrent neural network (BRNN) classifier is used to classify each token based on at least one other token in the token sequence.
[0112] Example 15 is a computer-implemented method according to any or all of the preceding examples, wherein classifying each word segment comprises:
[0113] A long short-term memory (LSTM) network classifier is used to classify each token based on at least one other token in the token sequence.
[0114] Example 16 is a computer-implemented method according to any or all of the preceding examples, wherein classifying each word segment comprises:
[0115] A bidirectional long short-term memory (BLSTM) network classifier is used to classify each word based on at least one other word in the word sequence.
[0116] Example 17 is a computer-implemented method according to any or all of the preceding examples, wherein converting the classified string into a converted string comprises:
[0117] A transformed string is generated by labeling the identified tokens in the classified string with predefined labels.
[0118] Example 18 is a computer-implemented method according to any or all of the preceding examples, wherein the machine translation result includes a translated version of the converted string in which the identified word segment is not translated and tagged with a predefined tag, and wherein generating the translated software string includes deleting the predefined tag in the translated version of the converted string.
[0119] Example 19 is a computing system comprising:
[0120] a training data generation system that compares a source language computer software string with a target language computer software string translated from the source language to the target language to identify word segment sequences in the source language computer software string and untranslated word segments in the target language computer software string, and generates labeled training data indicating the word segment sequences in the source language computer software string, the target language computer software string, and the identified untranslated word segments;
[0121] word embedding logic, which encodes the labeled training data;
[0122] A recursive neural network (RNN) classifier training system that trains a recursive neural network classifier to classify words in a source language computer software string as locked from translation or unlocked for translation based on word sequence in encoded labeled training data.
[0123] Example 20 is a computing system according to any or all of the preceding examples, wherein the RNN classifier training system comprises:
[0124] Bidirectional training logic configured to train a bidirectional long short-term memory (LSTM) network classifier to classify words in a source language computer software string as locked from translation or unlocked for translation based on bidirectional word dependencies in word sequences in labeled training data.
[0125] Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
Claims
1. A computing system comprising: at least one processor; as well as a memory storing instructions executable by the at least one processor, wherein the instructions, when executed, provide: The context-sensitive word segmentation locks the classifier logic and is configured as: receiving a software input string having an input word segmentation sequence; and Apply a machine learning word segmentation classifier, the machine learning word segmentation classifier: Based on the relative positions of the second word in the input word sequence and the first word and the second word, classifying the first word in the input word sequence as a word to be locked to prevent translation or a word to be translated; Based on the relative positions of at least one other word in the input word sequence and the second word and the at least one other word, classifying the second word in the input word sequence as a word to be locked to prevent translation or a word to be translated; generating a classification indicator that identifies words in the input word segment sequence that are classified as words to be locked to prevent translation; as well as generating a classified string based on the software input string, the classified string including the classification indicator identifying the word segment to be locked from translation; The string conversion logic is configured as follows: converting the classified string into a converted string in which the identified word segment is identified so that the identified word segment is locked to prevent translation based on the classification indicator, and Sending the converted character string to a machine translation system; as well as Unlock logic is configured as: receiving a machine translation result from the machine translation system, and A translated software string is generated based on the machine translation result, wherein the identified word segments in the translated software string remain untranslated from the software input string.
2. The computing system of claim 1 , wherein the instructions, when executed, provide: The training data generation system is configured as follows: comparing a source language computer software string and a target language computer software string to identify word segmentation sequences in the source language computer software string and untranslated word segments in the target language computer software string, the target language computer software string being translated from a source language into a target language; generating labeled training data, the labeled training data indicating the source language computer software string, the target language computer software string, and the sequence of word segments in the identified untranslated word segments; as well as The machine learning word segmentation classifier is trained based on the labeled training data.
3. The computing system of claim 1 , wherein the instructions, when executed, provide: A training system is configured to train the machine learning word segmentation classifier based on the machine translation results from the machine translation system.
4. The computing system of claim 1 , wherein the sequence-based lock / unlock classifier comprises: Recurrent Neural Networks.
5. The computing system of claim 4, wherein the sequence-based lock / unlock classifier comprises: Bidirectional recurrent neural network.
6. The computing system of claim 3, wherein the sequence-based lock / unlock classifier comprises: Long Short-Term Memory (LSTM) Networks.
7. The computing system of claim 6, wherein the sequence-based lock / unlock classifier comprises: Bidirectional Long Short-Term Memory (BLSTM) network.
8. The computing system of claim 3, wherein The string conversion logic includes: a locking logic configured to generate the converted string by tagging the identified word segments in the classified string with a predefined tag, The machine translation result includes a translated version of the converted string in which the identified word segment is not translated and tagged with the predefined tag, and The unlocking logic is configured to generate the translated software string by removing the predefined tag in the translated version of the converted string.
9. The computing system of claim 8, wherein the context-dependent word segmentation lock classifier logic comprises word segmentation identification logic configured to identify the input word segmentation sequence by word segmenting the software input string.
10. A computer-implemented method comprising: receiving a software input string having an input word segmentation sequence; Apply machine learning word classifiers to: Based on the relative positions of the second participle in the participle sequence and the first participle and the second participle, classifying the first participle in the participle sequence as a participle to be locked to prevent translation or a participle to be translated; Based on the relative positions of at least one other word in the input word sequence and the second word and the at least one other word, classifying the second word in the input word sequence as a word to be locked to prevent translation or a word to be translated; generating a classification indicator that identifies words in the input word segment sequence that are classified as words to be locked to prevent translation; as well as generating a classified string based on a representation of the software input string, the classified string including the classification indicator identifying the word segment to be locked from translation; converting the classified string based on the classification indicator into a converted string in which the identified word segment is tagged so that the identified word segment is locked to prevent translation, Sending the converted character string to a machine translation system; receiving a machine translation result from the machine translation system; as well as A translated software string is generated based on the machine translation result, the identified word segments in the translated software string remain untranslated from the software input string.
11. The computer-implemented method of claim 10, further comprising: comparing a source language computer software string and a target language computer software string to identify word segmentation sequences in the source language computer software string and untranslated word segments in the target language computer software string, the target language computer software string being translated from a source language into a target language; generating labeled training data, the labeled training data indicating the source language computer software string, the target language computer software string, and the sequence of word segments in the identified untranslated word segments; as well as The machine learning word segmentation classifier is trained based on the labeled training data.
12. The computer-implemented method of claim 10, further comprising: The machine learning word segmentation classifier is trained based on the machine translation results from the machine translation system.
13. The computer-implemented method of claim 10, wherein classifying each word segment comprises: Each word segment is classified using a recursive neural network (RNN) classifier based on the at least one other word segment in the sequence of word segments.
14. The computer-implemented method of claim 13, wherein classifying each word segment comprises: Each word segment is classified based on the at least one other word segment in the sequence of word segments using a bidirectional recurrent neural network (BRNN) classifier.
15. The computer-implemented method of claim 12, wherein classifying each word segment comprises: Each word segment is classified based on the at least one other word segment in the word segment sequence using a long short-term memory (LSTM) network classifier.
16. The computer-implemented method of claim 15, wherein classifying each word segment comprises: Each word segment is classified based on the at least one other word segment in the word segment sequence using a bidirectional long short-term memory (BLSTM) network classifier.
17. The computer-implemented method of claim 12, wherein converting the classified string into a converted string comprises: generating the converted string by labeling the identified word segments in the classified string with predefined labels, The machine translation result includes a translated version of the converted string in which the identified word segments are tagged with the predefined tag without being translated, and further includes generating the translated software string by deleting the predefined tag in the translated version of the converted string.
18. The computer-implemented method of claim 17, wherein receiving the software input string comprises tokenizing the software input string.
19. A computing system comprising: at least one processor; as well as a memory storing instructions executable by the at least one processor, wherein the instructions, when executed, cause the computing system to: receiving a software input string having an input word segmentation sequence, wherein the software input string corresponds to a portion of a software code; Apply a machine learning word segmentation classifier, the machine learning word segmentation classifier: Based on the relative positions of the second word in the input word sequence and the first word and the second word, classifying the first word in the input word sequence as a word to be locked to prevent translation or a word to be translated; Based on the relative positions of at least one other word in the input word sequence and the second word and the at least one other word, classifying the second word in the input word sequence as a word to be locked to prevent translation or a word to be translated; generating a classification indicator identifying a word segment classified as a word segment to be locked from translation; as well as generating a classified string based on a representation of the software input string, the classified string including the classification indicator identifying the word segment to be locked from translation; converting the classified string based on the classification indicator into a converted string in which the identified word segment is identified so that the identified word segment is locked to prevent translation, Sending the converted character string to a machine translation system; receiving a machine translation result from the machine translation system; as well as A translated software string is generated based on the machine translation result, wherein the identified word segments in the translated software string remain untranslated from the software input string.
20. The computing system of claim 19, wherein the machine learning classifier comprises a neural network trained with training data.
Citation Information
Patent Citations
Method and system for deep nerve translation based on character encoding
CN106126507A
Unilingual translator
CN1573740A