WO2020141787A1 - 언어 교정 시스템 및 그 방법과, 그 시스템에서의 언어 교정 모델 학습 방법 - Google Patents
언어 교정 시스템 및 그 방법과, 그 시스템에서의 언어 교정 모델 학습 방법 Download PDFInfo
- Publication number
- WO2020141787A1 WO2020141787A1 PCT/KR2019/018384 KR2019018384W WO2020141787A1 WO 2020141787 A1 WO2020141787 A1 WO 2020141787A1 KR 2019018384 W KR2019018384 W KR 2019018384W WO 2020141787 A1 WO2020141787 A1 WO 2020141787A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- sentence
- correction
- data
- language
- learning
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
- G06N5/047—Pattern matching networks; Rete networks
Definitions
- the present invention relates to a language proofing system and method, and a method for learning a proofreading model in the system.
- Proofreading refers to correcting spelling errors or grammatical errors in various types of languages, for example, sentences written on the Internet or distributed over the Internet, that is, Internet data. This proofreading can include proofreading against spelling or grammar, as well as proofreading sentences that are cleaner and easier to read.
- the above-described language proofreading may be used in language learning, or may be used in areas where text proofreading such as books or newspaper articles maintains a certain level as well as various forms of proofreading.
- the problem to be solved by the present invention is to provide a language correction system and a method capable of providing efficient language correction results by using a machine learning-based correction model, and a method for learning a language correction model in the system.
- a machine learning-based language proofing system As a machine learning-based language proofing system, a machine learning a plurality of data sets consisting of inscription data and error-free front gate data corresponding to the inscription data, and the main gate corresponding to the inscription data of the object to be corrected
- a calibration model learning unit that generates a calibration model for detecting data
- a language correction unit that generates a corresponding correction sentence for the sentence to be corrected using the correction model generated by the correction model learning unit, and displays and outputs the corrected portion together with the generated correction sentence.
- the correction model learning unit the pre-processing unit to perform language filtering on the inscription data, filtering into a single word sentence, data purification and normalization;
- a learning processing unit that performs a supervised learning data labeling operation, a machine learning data expansion operation, and a parallel data construction operation for machine learning on a plurality of data sets filtered by the preprocessing unit;
- a calibration learning unit generating a corresponding calibration model by performing machine learning based on supervised learning on a plurality of data sets processed by the learning processing unit;
- a first post-processing unit that outputs errors and error category information through tag additional information added during the labeling of supervised learning data in the learning processing unit and then removes the corresponding tag additional information.
- the machine learning data expansion operation in the learning processing unit includes a data expansion operation using letters formed of surrounding typos based on the exact position of the keyboard for typing characters included in the inscription data.
- the parallel data construction work for machine learning in the learning processing unit includes constructing parallel data with a parallel corpus that pairs inscription sentences that do not require correction and corresponding front door sentences.
- correction learning unit provides the probability of error occurrence for the learning result in machine learning based on the supervised learning as attention weight information between inscription data and front door data.
- the translation engine further includes a translation engine that performs translation in a preset language for the input sentence, and the preprocessor performs translation through the translation engine on a large amount of inscription data in the plurality of data sets while the translation engine performs Marked with a preset marker for words that are not registered in the dictionary to be used, and after the translation of the large amount of inscription data is completed, the words marked by the preset marker are extracted and corrected collectively as an error-free word Perform pre-calibration.
- the pre-processing unit extracts the words displayed by the preset markers, grasps the frequency, and sorts the words displayed by the preset markers based on the identified frequencies, and then corrects them collectively into words without errors.
- the language correction unit the pre-processing unit for performing a pre-processing of the sentence to be corrected, to perform sentence separation on a sentence-by-sentence basis, and tokenize the separated sentence;
- An error sentence detection unit that distinguishes between error and non-error sentences by using a binary classifier for the sentence to be corrected, which has been pre-processed by the pre-processing unit;
- a spelling correction unit that, when classified as an error sentence by the error sentence detection unit, performs a spelling error correction on the sentence to be corrected;
- a grammar correction unit generating a correction sentence by performing a language correction for grammar correction using the correction model for a sentence corrected for a spelling error by the spell correction unit;
- a post-processing unit that performs post-processing to display the corrected part when the language is corrected by the grammar correcting unit and outputs the corrected sentence together.
- the error sentence detection unit classifies the error sentence and the non-error sentence according to reliability information that is recognized when classifying the sentence to be corrected.
- the spelling correction unit provides a probability value of occurrence of a spelling error when correcting a spelling error as reliability information
- the grammar correction unit provides a probability value through the attention weight of a language correction for the spelling error corrected sentence as reliability information
- the processing unit combines the reliability information provided by the spelling correction unit and the reliability information provided by the grammar correction unit and provides it as the final reliability information of the language correction for the sentence to be corrected.
- the language modeling unit further includes a language modeling unit that performs language modeling using a preset recommendation sentence for a correction sentence generated by the grammar correction unit, and the language modeling unit performs language modeling.
- Reliability information of the proofreading sentence is provided by a combination of perplexity and mutual information (MI) values of a language model
- the post-processing unit provides reliability information provided by the language modeling unit when providing the final reliability. Also combine together.
- a user dictionary including a source word registered by a user and a target word corresponding thereto is further included, wherein the source word and the target word are each at least one word, and the calibration model learning unit sets the plurality of data sets.
- machine learning is performed by replacing the word with a preset user dictionary marker
- the language proofing unit includes a word included in the user dictionary in the sentence to be corrected
- Language correction is performed on the sentence to be corrected by substituting the user dictionary marker
- the user dictionary marker is included in the corrected sentence, the user dictionary marker is corresponding to a corresponding word in the sentence to be corrected Substitute the word registered in the user dictionary.
- supervised learning for a plurality of data sets composed of inscription data and error-free front door data respectively corresponding to the inscription data
- learning processing including a data labeling operation, a machine learning data expansion operation, and a parallel data construction operation for machine learning; And generating a corresponding calibration model by performing machine learning based on supervised learning on a plurality of data sets on which the learning processing has been performed.
- the machine learning data expansion operation includes a data expansion operation using letters formed of surrounding typo characters based on the exact position of the keyboard for typing characters included in the inscription data
- the machine learning parallel data The construction work includes constructing parallel data with a parallel corpus that pairs inscription sentences that do not require correction and corresponding front door sentences.
- Pre-processing may include: performing translation through a translation engine on a large amount of inscription data in the plurality of data sets; Displaying a word that is not registered in a dictionary used by the translation engine using a preset marker; After the translation for the large amount of inscription data is completed, extracting words displayed by the preset marker; And collectively correcting the extracted words with words without errors.
- the step of correcting the batch may include: extracting words displayed by the preset marker; Grasping the frequency of the extracted words; Sorting words displayed by the preset marker based on the identified frequency; And collectively correcting the aligned words with words without errors.
- the language proofing system further includes a user dictionary including a source word registered by the user and a target word corresponding thereto, wherein the source word and the target word are each at least one word, and the correction model
- a machine learning is performed by replacing the word with a preset user dictionary marker to generate the calibration model.
- a method for correcting a language based on machine learning by a language correction system comprising: correcting a spelling error in a sentence to be corrected; And generating a correction sentence by performing grammatical correction using a correction model for a sentence corrected with a spelling error, wherein the correction model includes inscription data and error-free front doors respectively corresponding to the inscription data.
- the sentence to be corrected for the language prior to the step of performing the spelling error correction, the sentence to be corrected for the language, performing sentence separation in units of sentences, and performing preprocessing to tokenize the separated sentences; And using the binary classifier for the sentence of the language correction target for which the pre-processing has been performed, further comprising distinguishing between the error sentence and the non-error sentence, and in the step of distinguishing the error sentence from the non-error sentence.
- a step of performing the spelling error correction is performed.
- the error sentence and the non-error sentence are classified according to reliability information that is recognized when classifying the sentence to be corrected.
- the language correction system further includes a user dictionary including a source word registered by the user and a target word corresponding thereto-the source word and the target word are each at least one word-and corrects the spelling error Determining whether a word included in the user dictionary is included in a sentence to be corrected before performing the step of performing; And when a word included in the user dictionary is included in the sentence to be corrected, replacing the word commonly included in the user dictionary and the sentence to be corrected with a preset user dictionary marker.
- FIG. 1 is a schematic configuration diagram of a language correction system according to an embodiment of the present invention.
- FIG. 2 is a detailed configuration diagram of a calibration model learning unit illustrated in FIG. 1.
- FIG. 3 is a detailed configuration diagram of the language correction unit illustrated in FIG. 1.
- FIG. 4 is a diagram illustrating an example of a result of performing language correction by a language correction system according to an embodiment of the present invention.
- FIG. 5 is a schematic flowchart of a machine learning-based language proofing method according to an embodiment of the present invention.
- FIG. 6 is a schematic flowchart of a method for learning a language correction model according to an embodiment of the present invention.
- FIG. 7 is a detailed configuration diagram of a calibration model learning unit according to another embodiment of the present invention.
- FIG. 8 is a flowchart of a method for mission correction of a calibration model learning sentence according to another embodiment of the present invention.
- FIG. 9 is a diagram illustrating an example of a method for mission correction of a calibration model learning sentence according to another embodiment of the present invention.
- FIG. 10 is a schematic configuration diagram of a language correction system according to another embodiment of the present invention.
- FIG. 11 is a detailed configuration diagram of a calibration model learning unit illustrated in FIG. 10.
- FIG. 12 is a detailed configuration diagram of the language correction unit illustrated in FIG. 10.
- FIG. 13 is a flowchart of a method for learning a language correction model according to another embodiment of the present invention.
- FIG. 14 is a flowchart of a method for correcting language according to another embodiment of the present invention.
- FIG. 1 is a schematic configuration diagram of a language correction system according to an embodiment of the present invention.
- the language correction system 100 includes an input unit 110, a correction model learning unit 120, a correction model storage unit 130, a language correction unit 140, and It includes an output unit 150.
- the language correction system 100 illustrated in FIG. 1 is only one embodiment of the present invention, the present invention is not limitedly interpreted through FIG. 1 and differently from FIG. 1 according to various embodiments of the present invention. It may be configured.
- the input unit 110 receives data used for learning of proofreading or proofreading target data that is targeted for proofreading.
- the data used for the learning of proofreading is a large amount of data on the Internet for supervised learning-based machine learning, which will be described later, and inscription data including correction information and frontal data without errors are paired. As input.
- the calibration model learning unit 120 is a machine for language proofing using a large amount of training data composed of a pair of inscription data and front door data, which is data used for learning of language correction among data input through the input unit 110.
- the learning is performed to generate a proofreading model, which is a learning model for proofreading.
- the calibration model generated by the calibration model learning unit 120 is stored in the calibration model storage unit 130.
- the above machine learning is a field of artificial intelligence, and is a technique for predicting the future by analyzing vast amounts of data, and a technique for solving problems by acquiring information that is not input while the computer goes through the learning process itself.
- deep learning technology that utilizes neural networks such as CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), and Transformer Networks can be used. Since this machine learning technique is well known, a detailed description is omitted here.
- the calibration model storage unit 130 stores a calibration model generated through machine learning by the calibration model learning unit 120.
- the language proofing unit 140 uses the proofreading model stored in the proofreading model storage unit 130 for proofreading data that is proofreading of a large amount of proofreading data, that is, spelling errors or grammatical errors, input through the inputting unit 110. Spelling/grammar correction is performed on the data, and the correction data after the correction is completed is output to the output unit 150.
- the language correction unit 140 may additionally perform a language modeling operation that corrects a sentence into a natural sentence even when correction or grammar correction is completed for the target data to be corrected.
- the output unit 150 receives the correction target data together with the correction data for which the language correction is completed by the language correction unit 140 and outputs it to an external user, for example.
- the output unit 150 may output calibration data corresponding to the calibration target data together with the calibration target data.
- the output unit 150 may additionally display the calibration data so as to know the part where the calibration is performed in the calibration target data. At this time, information on the portion where the calibration is performed is provided from the language calibration unit 140 to the output unit 150.
- the above-described calibration model learning unit 120 and the language calibration unit 140 may be integrated with each other and implemented as one component, or may be implemented as separate devices from each other.
- the calibration model learning apparatus and the input unit 110, the calibration model storage unit 130, and the language calibration unit 140 including only the input unit 110, the calibration model learning unit 120, and the calibration model storage unit 130 )
- an output unit 150 such as a language proofing device.
- FIG. 2 is a detailed configuration diagram of the calibration model learning unit 120 illustrated in FIG. 1.
- the calibration model learning unit 120 includes a pre-processing unit 121, a learning processing unit 122, a calibration learning unit 123, a post-processing unit 124, and a calibration model output unit 125. Includes.
- the machine learning of the calibration model performed in the embodiment of the present invention uses supervised learning, but is not limited thereto.
- supervised learning is learning a mapping between input and output, and is applied when input and output pairs are given as data.
- inscription data which is source data for spelling correction and grammar correction
- front door data which is target data corresponding to the corrected sentence, corresponds to output. Since the machine learning method according to the supervised learning is well known, a detailed description is omitted here.
- the pre-processing unit 121 is composed of a pair of data used for learning of proofreading input through the input unit 110, that is, inscription data (also referred to as “source sentence”) and front door data (also referred to as "target sentence”)
- inscription data also referred to as "source sentence”
- front door data also referred to as "target sentence”
- language identification technology is applied to the inscription and front door data to filter them into a single language sentence. That is, the inscription or the front door data is basically filtered through a single language sentence through language detection so that learning can be performed based on the same language.
- the pre-processor 121 may additionally perform code switching partial filtering when language is detected. This is not filtered and removed through language detection technology for code switching even when different languages are used, for example, when English and Korean are mixed, for example, “Korea seems to be overwhelmed with traditional thinking” To remain within the sentence.
- the pre-processing unit 121 performs purification on the inscription data.
- Such tablets can be applied to a single word corpus or parallel corpus.
- the pre-processing unit 121 checks the presence/absence of duplicate and empty information in the source/target sentence, sets the maximum/minimum number of characters/words, limits the number of characters and word length blanks, limits uppercase numbers, restricts repeated words, and non-graphic characters (Non -graphic/Non-printable Character), Unicode processing error check, foreign language ratio check, encoding validation, etc. can be further performed. Since such work is well known, a detailed description is omitted here.
- the pre-processing unit 121 may further perform normalization of data according to Unicode, punctuation, case, and different spelling by region. At this time, the normalization of the data may be integrated with the purification of the aforementioned data.
- the learning processing unit 122 uses the pair of data pre-processed by the pre-processing unit 121, that is, a pair of inscription data and front door data, to obtain data necessary for machine learning performed by the correction learning unit 123 later. In preparation, it performs supervised learning data labeling, machine learning data augmentation, and parallel data construction for machine learning. These supervised learning data labeling operations, machine learning data expansion jobs, and parallel data construction jobs for machine learning do not need to be executed sequentially, and only some, but not all, jobs can be executed.
- the labeling of supervised learning data is as follows.
- error category information is added.
- the error category information includes spelling errors (errors such as omission, addition, misselection, order), grammatical errors (errors such as parts of speech, matching), and language model errors (sentence constructs, substitutions, idioms, and semantic expressions). Error such as mode expression).
- the following [Table 1] may be referred to as the category information of the exchange error.
- inscription and front door classification information is added in binary form.
- learning data that is, a pair of inscription data and front door data are all classified as a front door that does not require correction. Since it can be classified as the need for correction for the inscription data, data can be expanded through the use of the learning data in the future, and it is possible to quickly check and respond to the need for correction when correcting the language later.
- information on the code switching part performed by the pre-processing unit 121 is labeled. For example, labeling of the Korean-English code switching part is performed.
- tags are added.
- various natural language processing may include sentence separation, token separation, morphological analysis, syntax analysis, object name recognition, semantic domain recognition, cross-referencing, and paraphrase.
- the quality information of the language may be used so that machine learning can be performed by adding detailed error category information required in [Table 1].
- the machine learning data expansion operation refers to a job for increasing the amount of machine learning data to be used when learning in the future correction learning unit 123.
- Machine learning data can be expanded by adding various types of noise to inscription data.
- the noise types may include missing words/spelling, substitution, addition, spacing errors, and addition of foreign languages.
- data expansion may be performed using typos of letters formed of surrounding typo characters based on the exact position of the keyboard for typing the corresponding characters for specific characters of the inscription data. Due to the expansion of data through typos around the keyboard, the language correction in sentences input through a smartphone using a small keyboard keyboard can be performed very efficiently.
- data expansion can be performed by applying algorithms used in unsupervised learning such as VAE (Variational autoencoder) and GAN (Generative Adversarial Networks).
- VAE Variational autoencoder
- GAN Geneative Adversarial Networks
- a parallel data construction operation is performed in which an extended data, that is, a large data pair is constructed as a parallel corpus that pairs a correction sentence containing noise with an inscription sentence that does not need correction, and a correct sentence.
- a parallel data construction operation is performed by constructing a parallel corpus using sentence pairs that do not require correction by using inscription data that does not require correction.
- a parallel data using a parallel corpus that is a pair of sentences that need not be corrected is constructed, if the correction target data is not required to be corrected in the language proofreading unit 140, a job for correcting the corrected target data is not performed. Since it can be processed so as not to be, the processing of the entire calibration operation can be speeded up.
- language modeling can be performed to make sentences natural for data to be corrected that does not require such correction.
- the correction learning unit 123 is a combination of data pairs processed by the learning processing unit 122, that is, a combination of inscription data and parallel data constructed based on front door data, and is applied by applying machine learning based on supervised learning as described above. Create a calibration model.
- the present invention is not limited to supervised learning, and corrective learning may be performed through non-supervised learning-based machine learning. In this case, processing should be carried out so that previous pre-processing or data processing can be applied to unsupervised learning-based machine learning.
- the correction learning unit 123 may provide an error probability value for a machine learning result in machine learning based on supervised learning. At this time, the probability value of the occurrence of the error may be information on the weight of the attention of the inscription and the front door.
- the calibration learning unit 123 may utilize a pre-trained embedding vector based on large-capacity Internet data. That is, it is possible to utilize vastly pre-trained data from the outside.
- the post-processing unit 124 outputs errors and error category information through the tag additional information added during the labeling of the supervised learning data in the learning processing unit 122, and then removes the corresponding tag additional information.
- the calibration model output unit 125 outputs the calibration model generated by the calibration learning unit 123 to the calibration model storage unit 130 for storage.
- FIG. 3 is a detailed configuration diagram of the language correction unit 140 shown in FIG. 1.
- the language correction unit 140 includes a pre-processing unit 141, an error sentence detection unit 142, a spelling correction unit 143, a grammar correction unit 144, a language modeling unit 145, and after It includes a processing unit 146.
- the pre-processing unit 141 performs sentence separation on the target data for correction for language correction input through the input unit 110.
- the sentence separation operation is an operation of recognizing the end unit of sentences included in the data to be corrected and then separating the input unit into sentence units.
- the pre-processing unit 141 tokenizes the separated sentences in various ways.
- tokenization means cutting a sentence into a desired unit, and for example, tokenization may be performed in units of letters, words, subwords, morphemes, and words.
- the pre-processing unit 141 may perform a data normalization operation as performed in the pre-processing unit 121 of the calibration model learning unit 120.
- the error sentence detection unit 142 uses the binary classifier to distinguish between error and non-error sentences through information already tagged in the pre-processing unit 141. This is a method of classifying through input data and machine-learned error sentences or non-error sentence similarity measurement based on the expanded data by adding non-error sentences to the error sentence location in addition to the existing error/non-error sentence pair learning data. At this time, the reliability values corresponding to the error sentence and the non-error sentence are displayed.
- the error sentence detection unit 142 detects an error sentence when the reliability value is greater than or equal to a threshold value, and detects it as a non-error sentence if the reliability value is less than the threshold value.
- data to be corrected is transmitted to the spell correction unit 143 when it is detected as an error sentence, but if it is detected as a non-error sentence, the spell correction unit 143 and grammar teaching It goes directly to the language modeling unit 145 without going through the government 144.
- the spelling correction unit 143 detects and corrects spelling errors in the correction target sentence in the correction target data transmitted from the error sentence detection unit 142. Spelling here is spaces, punctuation marks (period, question mark, exclamation mark, comma, center, double dot, hatch, double quote, single quote, parentheses, braces, square brackets, double and double brackets, single and double arrows, Corrections for spelling errors such as ellipsis, ellipsis, tilde, punctuation and underscore, hidden, omission, ellipsis) may be applicable.
- spelling correction may be performed to generate a corresponding correction model, and spelling correction may be performed using the generated correction model, however, as described above, spelling correction is machine learning. Since it is not an object to be applied, it can be performed using an existing spelling-based standard language dictionary.
- the spelling correction unit 143 may provide a dictionary-based spelling error occurrence probability value as reliability information for spelling correction on data to be corrected.
- the grammar correction unit 144 performs language correction, particularly grammar correction, on the target data that has been spell-corrected by the spell correction unit 143 using the correction model stored in the correction model storage unit 130. That is, the grammar correcting unit 144 may obtain the data corrected for the data to be corrected as a result by applying a correction model to the data to be corrected. At this time, a probability value through the attention weight, that is, reliability information may be provided together with the data corrected by the calibration model.
- the language modeling unit 145 adds the grammar from the data corrected by the grammar correcting unit 144 or the non-error sentence transmitted from the error sentence detecting unit 142 even if it is not necessary to correct the grammar in the meaning/application range. Perform language modeling that corrects with natural sentences.
- the language modeling may also use a method using machine learning like a correction model, but the present invention is not applied, and only the language modeling is performed on the corresponding sentence using various types of recommended sentences.
- the language modeling unit 145 may provide reliability information of the proofreading sentence by a combination of values of the language model's publicity (PPL) and mutual information (MI). .
- PPL language model's publicity
- MI mutual information
- the post-processing unit 146 displays a correction part for the corrected data on which the language modeling has been performed by the language modeling unit 145.
- the display of the correction portion can be performed through visualization of error information in various colors.
- the post-processing unit 146 uses a binary classifier in the error sentence detection unit 142 to provide a reliability value, which is a probability value provided when classifying an error sentence and a non-error sentence, and a spelling correction unit 143 when correcting spelling.
- a reliability value which is a probability value provided when classifying an error sentence and a non-error sentence
- a spelling correction unit 143 when correcting spelling.
- Reliability information which is a probability value of occurrence of a dictionary-based spelling error
- attention weight information provided when a language is corrected by the grammar proofing unit 144, publicity value of a language model provided by the language modeling unit 145, and mutual information (Mutual Information, MI)
- MI Mutual Information
- the post-processing unit 146 may perform N-best sentence processing on one correction target data. That is, while providing a plurality of corrected data candidate groups for one correction target data, reliability of each candidate group can be provided as a ranking, so that it can be selected by the user. Such processing may be performed in cooperation with the output unit 150.
- the output unit 150 receives the correction target data together with the correction data for which the language correction is completed by the language correction unit 140 and outputs it to the outside.
- the output unit 150 may display the data to be calibrated and the calibrated data and the calibration part corresponding thereto. For example, as shown in FIG. 4, the data to be corrected for the data to be corrected, and the data to be corrected by displaying the data to be corrected (Source), the data to be corrected in the middle (Suggestion), and the correction portion to the right together You can make the parts clear.
- FIG. 5 is a schematic flowchart of a machine learning-based language proofing method according to an embodiment of the present invention.
- the machine learning-based language correction method illustrated in FIG. 5 may be performed by the language correction system 100 described with reference to FIGS. 1 to 4.
- a preprocessing operation including a sentence separation operation, a tokenization and normalization operation of the sentence is performed on the inputted correction target sentence ( S110).
- a preprocessing operation including a sentence separation operation, a tokenization and normalization operation of a sentence, and the like for the input sentence to be corrected.
- an error sentence is detected using a binary classifier for the sentence to be corrected in which the pre-processing operation is performed (S120). As described with reference to FIG. 3, at this time, reliability for error sentence detection may be provided together.
- step S120 if the reliability provided in the step S120 is greater than or equal to a preset threshold, language correction is required as an error has been detected, otherwise language correction is not required as a non-error sentence in which no error was detected. .
- the proofreading sentence corresponding to the proofreading sentence is output by performing language proofing, specifically grammar proofing, using a generation model generated in advance through machine learning based on supervised learning for the corrected proofreading sentence. (S150).
- the generation model provides information on the corrected part from the sentence to be corrected to the corrected sentence.
- an attention weight may be provided as reliability information for correction of a sentence to be corrected.
- language modeling is performed on the corrected sentence to correct the grammar into a more natural sentence in a semantic/application range (S160).
- the language modeling is also referred to with reference to FIG. 3.
- post-processing tasks such as providing reliability information for language correction and N-best sentence processing are performed on the language modeled sentences (S170 ).
- S170 language modeled sentences
- step (S130) if the reliability is determined to be a sentence that does not require language correction because it is smaller than a preset threshold, language modeling is immediately performed without performing the above spelling correction step (S140) and grammar correction step (S150).
- the processing step (S160) is performed.
- FIG. 6 is a schematic flowchart of a method for learning a language correction model according to an embodiment of the present invention.
- the method for learning a language correction model illustrated in FIG. 6 may be performed by the language correction system 100 described with reference to FIGS. 1 to 3.
- a machine learning based on supervised learning for a language proofing model when a large amount of learning data composed of a pair of proof learning target data, that is, inscription data and front door data is input (S200 ), a language detection operation is performed. , Pre-processing operations such as data purification operations and normalization operations are performed (S210 ). For a specific pre-processing operation, refer to the portion described with reference to FIG. 2.
- This machine learning processing operation is performed with data necessary for machine learning for the data to be corrected learning to which the preprocessing operation has been completed (S220).
- This machine learning processing operation includes a supervised learning data labeling operation, a machine learning data augmentation operation, a parallel data construction operation for machine learning, and the like, and refer to the description described with reference to FIG.
- the machine learning based on the supervised learning is performed using the data of the calibration learning target for which the machine learning processing operation is completed, and a corresponding calibration model is generated (S230).
- a probability value of an error occurrence for a machine learning result may be provided together with a calibration model.
- the calibration model generated in step S230 is stored in the calibration model storage unit 130 so that it can be used for language correction for the sentence to be corrected later (S250).
- the pre-processing unit 121 is described as only performing pre-processing tasks such as a language detection task, a data refining task, and a normalization task, but the present invention is not limited to this and the more accurate machine Various types of pre-processing tasks may be additionally performed to enable learning-based calibration model learning to be performed.
- errors (or misspellings) of the source sentence which is an inscription sentence used in learning a correction model
- FIG. 7 is a detailed configuration diagram of the calibration model learning unit 220 according to another embodiment of the present invention.
- the calibration model learning unit 220 includes a pre-processing unit 221, a learning processing unit 222, a calibration learning unit 223, a post-processing unit 224, It includes a calibration model output unit 225 and a translation engine 226.
- the learning processing unit 222, the calibration learning unit 223, the post-processing unit 224, and the calibration model output unit 225, the learning processing unit 122 of the calibration model learning unit 120 described with reference to FIG. Since the configuration and functions of the calibration learning unit 123, the post-processing unit 124, and the calibration model output unit 125 are the same, reference is made to FIG. 2.
- the translation engine 226 is an engine that performs translation on an input sentence in a language specified by a user, and may be, for example, a rule based machine translation (RBMT) engine, and in the present invention, only this It is not limited.
- RBMT Rule Based Machine Translation
- RBMT is a method of translation based on a number of language rules and language dictionaries. In simple terms, RBMT can mean a translator where a linguist has entered both textbooks with both English words and grammar.
- the pre-processing unit 221 performs translation through the translation engine 226 on a large amount of source data, which is inscription data in large-capacity data used for learning of proofreading input through the input unit 110, and translates when performing the translation If the word is not registered in the dictionary used by the engine 226, a specific marker is displayed for the word using, for example, “##”, and when the translation is completed, words marked with a specific marker are extracted and correct words In the above, in the case of a language that is the target of learning of the correction model and a language that performs translation, the same language as the target language is used as the starting language.
- the word unit recognized in the pre-processing process for can display unregistered words through a dictionary function and a token separation module, so that it is possible to correct unregistered words with a high error rate.
- the pre-processing unit 221 extracts words marked with a specific marker, grasps the frequencies, sorts them by frequency, and corrects the sorted words into correct words, and then applies them collectively to translate a large amount of source data.
- Engine-based missions can be carried out.
- more accurate calibration model learning can be performed by performing cross-cutting on a large amount of source data to be used for calibration learning before the calibration model learning so that more accurate source data can be used in actual calibration model learning.
- the efficiency of proofreading can be improved.
- FIG. 8 is a flowchart of a method for mission correction of a calibration model learning sentence according to another embodiment of the present invention.
- FIG. 10 is a schematic configuration diagram of a language correction system 300 according to another embodiment of the present invention.
- the language correction system 300 includes an input unit 310, a correction model learning unit 320, a correction model storage unit 330, and a language correction unit 340. , An output unit 350 and a user dictionary 360.
- the input unit 310, the calibration model storage unit 330, and the output unit 350 are the same as the input unit 110, the calibration model storage unit 130, and the output unit 150 described with reference to FIG. The description is omitted, and only the calibration model learning unit 320, the language calibration unit 340, and the user dictionary 360 having different configurations will be described.
- the user dictionary 360 stores values (words) predefined by a user for a specific word. For example, the proper noun, “labor day”-“Labor DAY”, “memorial day”-“Memorial Day”, “african amerian history month”-“African Amerian History Month”
- a user dictionary may be created and used by a user for word(s) that may not be intended intentionally during proofreading.
- word is assumed to mean “word” or “words” for convenience of explanation.
- the calibration model learning unit 320 is a machine for language proofing by using a large amount of training data composed of a pair of inscription data and front door data, which is data used for learning of language correction among data input through the input unit 310.
- the learning is performed to generate a proofreading model, which is a learning model for proofreading.
- the calibration model learning unit 320 finds a word registered in the user dictionary 360 from a large amount of learning data composed of a pair of inscription data and front door data, and displays a user dictionary marker, for example For example, after replacing with “UD_NOUN”, machine learning is performed to generate a calibration model.
- machine learning is performed to generate a calibration model.
- various types of special symbols for example, “ ⁇ ”, “>>, “_”, etc., may be further added to recognize that the user dictionary marker “UD_NOUN” is a user dictionary marker before and after it. Through this machine learning, the location of the user dictionary marker is learned, and specifically context information can be learned.
- the user dictionary markers that are distinguished from each other are replaced with each, and then the position of the user dictionary marker Can perform machine learning differently. For example, if three different words are included in a sentence, and these words are registered in the user dictionary 360, these words are “UD_NOUN#1”, “UD_NOUN#2”, and “UD_NOUN#3, respectively. Can be replaced with.
- the language proofing unit 340 uses the proofreading model stored in the proofreading model storage unit 330 for the proofreading data, which is proofreading of a spelling error or grammatical error, that is a large amount of proofreading data input through the inputting unit 310. Spelling/grammar correction is performed on the data to be corrected, and the correction data after the correction is completed is output to the output unit 350.
- the language proofing unit 340 replaces them with a user dictionary marker and then performs spelling/grammar correction using a correction model. Then, the word correction corresponding to the user dictionary marker included in the result can be replaced with the result value (word) registered in the user dictionary to complete the language correction.
- the user's dictionary markers that are distinguished from each other are used to replace and correct spelling/grammar. After that, the words corresponding to different user dictionary markers may be searched for and replaced in the user dictionary 360 to complete the correction.
- these words are “UD_NOUN#1”, “UD_NOUN#2”, “, respectively.
- UD_NOUN#3 After replacing with UD_NOUN#3, perform calibration, and after calibration is completed, register in the user dictionary 360 for words corresponding to “UD_NOUN#1”, “UD_NOUN#2”, and “UD_NOUN#3”. Correction can be completed by substituting the words.
- correction model learning unit 320 and the language correction unit 340 according to another embodiment of the present invention as described above will be described in detail.
- FIG. 11 is a detailed configuration diagram of the calibration model learning unit 320 illustrated in FIG. 10.
- the calibration model learning unit 320 includes a pre-processing unit 321, a learning processing unit 322, a calibration learning unit 323, a post-processing unit 324, and a calibration model output unit 325. Includes.
- the pre-processing unit 321 performs the functions of the pre-processing unit 121 described with reference to FIG. 2 and, in addition, data used for learning of language correction through the input unit 110, that is, inscription data (source sentences Meaning) and the main data (meaning the target sentence), when the training data is input, it is checked whether the words registered in the user dictionary 360 are included in the training data, and if so, the included words Replace it with a user dictionary marker, for example “ ⁇ UD_NOUN>>”.
- the machine learning is performed through the learning processing unit 322, the calibration learning unit 323, the post processing unit 324, and the calibration model output unit 325 after the pre-processing unit 321, and “ ⁇ UD_NOUN>>” Replaced with the location of the user dictionary marker can be learned.
- FIG. 12 is a detailed configuration diagram of the language correction unit 340 illustrated in FIG. 10.
- the language correction unit 340 includes a pre-processing unit 341, an error sentence detection unit 342, a spelling correction unit 343, a grammar execution unit 344, a language modeling unit 345, and after It includes a processing unit 346.
- the error sentence detection unit 342, the spell correction unit 343, the grammar correction unit 344, and the language modeling unit 346, the error sentence detection unit 142, the spell correction unit 143 described with reference to FIG. Since it is the same as the grammar correcting unit 144 and the language modeling unit 145, a detailed description is omitted here, and only the pre-processing unit 341 and post-processing unit 346 having different configurations will be described.
- the pre-processing unit 341 checks whether words registered in the user dictionary 360 are included in the correction target data for language correction input through the input unit 310, and if they are included, includes the words included in the user dictionary Replace it with a marker, for example “ ⁇ UD_NOUN>>”.
- the post-processing unit 346 includes a source sentence corresponding to the user dictionary marker when a user dictionary marker, for example, “ ⁇ UD_NOUN>>” is included in the corrected data for which language modeling is performed by the language modeling unit 345 That is, the word (word) registered in the user dictionary 360 is replaced with respect to the word in the inscription data.
- a correction based on the user dictionary 360 may be successfully performed on a source sentence including a word registered in the user dictionary 360.
- the method for learning a language correction model may be performed by the language correction system 300 described with reference to FIGS. 10 to 12 described above.
- FIG. 13 is a flowchart of a method for learning a language correction model according to another embodiment of the present invention.
- the method for learning a language correction model according to another embodiment of the present invention illustrated in FIG. 13 may be performed by the language correction system 300 according to another embodiment of the present invention described with reference to FIGS. 10 to 12. .
- a user dictionary 360 storing a predefined value (word) for a specific word is pre-configured.
- words matching the words registered in the user dictionary 360 are replaced with a user dictionary marker (S420). For example, if ⁇ “memorial day”-“Memorial Day”> is registered in the user dictionary 360, and the source sentence input for learning of proofreading is “memorial day is observed on the last Monday”, Since the word “memorial day” in the source sentence is registered in the user dictionary 360, this word is replaced with a user dictionary marker, for example, “ ⁇ UD_NOUN>>”, so that the source sentence is “ ⁇ UD_NOUN>> is observed on the last Monday”.
- the source sentence and the target sentence may be used without change.
- Such a language correction method may be performed by the language correction system 300 described with reference to FIGS. 10 to 12 described above.
- FIG. 14 is a flowchart of a method for correcting language according to another embodiment of the present invention.
- the method for learning a language correction model according to another embodiment of the present invention illustrated in FIG. 14 may be performed by the language correction system 300 according to another embodiment of the present invention described with reference to FIGS. 10 to 12. .
- a user dictionary 360 storing a predefined value (word) for a specific word is pre-configured.
- Language correction data that is, correction target data to be corrected for spelling errors or grammatical errors is input (S500), it is checked whether words registered in the user dictionary 360 are included in the correction target data (S510).
- the word is replaced with a user dictionary marker, for example, “ ⁇ UD_NOUN>>” (S520).
- a user dictionary marker for example, “ ⁇ UD_NOUN>>”
- the user dictionary marker “ ⁇ UD_NOUN>>” is included in the sentence “ ⁇ UD_NOUN>> is observed on the last Monday”, the user dictionary marker “ ⁇ UD_NOUN>> The word corresponding to ”, that is, the word registered in the user dictionary 360 for “memorial day”, that is, “Memorial Day” is replaced, and finally the sentence after correction “Memorial Day is observed on the last Monday” It is completed.
- step S570 of outputting the corrected sentence is performed.
- the embodiment of the present invention described above is not implemented only through an apparatus and method, and may be implemented through a program that realizes a function corresponding to the configuration of the embodiment of the present invention or a recording medium in which the program is recorded.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
Abstract
언어 교정 시스템 및 그 방법과, 그 시스템에서의 언어 교정 모델 학습 방법이 개시된다. 이 시스템은 교정 모델 학습부 및 언어 교정부를 포함한다. 교정 모델 학습부는 비문(非文) 데이터와 상기 비문 데이터에 각각 대응되는 오류가 없는 정문(正文) 데이터로 구성된 복수의 데이터 집합을 기계학습하여 교정 대상의 비문 데이터에 대응되는 정문 데이터를 검출하기 위한 교정 모델을 생성한다. 언어 교정부는 교정 대상의 문장에 대해 상기 교정 모델 학습부에 의해 생성된 교정 모델을 사용하여 대응되는 교정 문장을 생성하고, 생성되는 교정 문장과 함께 교정된 부분을 표시하여 출력한다.
Description
본 발명은 언어 교정 시스템 및 그 방법과, 그 시스템에서의 언어 교정 모델 학습 방법에 관한 것이다.
언어 교정은 다양한 형태의 언어로 작성된 문장, 예를 들면 인터넷에서 작성되거나 인터넷을 통해 배포되는 언어 문장, 즉 인터넷 데이터에 대해 맞춤법 오류나 문법 오류를 교정하는 것을 말한다. 이러한 언어 교정에는 맞춤법이나 문법에 어긋난 표현을 교정하는 것뿐만 아니라 문장을 보다 깔끔하고 읽기 쉽게 다듬는 교정 또한 포함될 수 있다.
상기한 언어 교정은 언어 학습에 사용되거나, 또는 서적이나 신문 기사 등의 텍스트 출판물이 일정 수준을 유지할 수 있도록 하는 작업은 물론 다양한 형태로서 언어 교정이 필요한 영역에서 사용될 수 있다.
특히, 최근 인터넷을 통해서 대용량의 언어 데이터가 유통되거나 사용되는데, 종래의 언어 교정은 통계 모델을 사용함으로써 단순한 형태의 맞춤법이나 문법을 위주로 하는 언어 교정이 수행되어 최근의 대용량의 언어 데이터에 대해 보다 효율적인 언어 교정의 필요성이 대두되고 있다.
본 발명이 해결하고자 하는 과제는 기계학습 기반의 교정 모델을 사용함으로써 효율적인 언어 교정 결과를 제공할 수 있는 언어 교정 시스템 및 그 방법과, 그 시스템에서의 언어 교정 모델 학습 방법을 제공하는 것이다.
본 발명의 하나의 특징에 따른 언어 교정 시스템은,
기계학습 기반의 언어 교정 시스템으로서, 비문(非文) 데이터와 상기 비문 데이터에 각각 대응되는 오류가 없는 정문(正文) 데이터로 구성된 복수의 데이터 집합을 기계학습하여 교정 대상의 비문 데이터에 대응되는 정문 데이터를 검출하기 위한 교정 모델을 생성하는 교정 모델 학습부; 및 교정 대상의 문장에 대해 상기 교정 모델 학습부에 의해 생성된 교정 모델을 사용하여 대응되는 교정 문장을 생성하고, 생성되는 교정 문장과 함께 교정된 부분을 표시하여 출력하는 언어 교정부를 포함한다.
여기서, 상기 교정 모델 학습부는, 상기 비문 데이터에 대해 언어 감지를 수행하여 단일어 문장으로의 필터링 작업, 데이터의 정제 및 정규화 작업을 수행하는 전처리부; 상기 전처리부에 필터링된 복수의 데이터 집합에 대해, 지도 학습 데이터 레이블링 작업, 기계학습 데이터 확장 작업 및 기계학습용 병렬 데이터 구축 작업을 수행하는 학습 가공부; 상기 학습 가공부에 의해 가공된 복수의 데이터 집합에 대해 지도 학습 기반의 기계학습을 수행하여 대응되는 상기 교정 모델을 생성하는 교정 학습부; 및 상기 학습 가공부에서의 지도 학습 데이터 레이블링 작업시 추가된 태그 부가 정보를 통해 오류 및 오류 카테고리 정보를 출력한 후 해당 태그 부가 정보를 제거하는 제1 후처리부를 포함한다.
또한, 상기 학습 가공부에서의 기계학습 데이터 확장 작업은, 상기 비문 데이터에 포함된 문자를 타이핑하기 위한 키보드의 정위치를 기준으로 주변의 오타 문자로 형성되는 글자를 사용한 데이터 확장 작업을 포함한다.
또한, 상기 학습 가공부에서의 기계학습용 병렬 데이터 구축 작업은, 교정이 불필요한 비문 문장과 이에 대응되는 정문 문장을 쌍으로 하는 병렬 코퍼스로 병렬 데이터를 구축하는 작업을 포함한다.
또한, 상기 교정 학습부는 상기 지도 학습 기반의 기계학습시 학습 결과에 대한 오류 출현 확률값을 비문 데이터와 정문 데이터와의 어텐션(attention) 가중치 정보로서 제공한다.
또한, 입력 문장에 대해 미리 설정된 언어로 번역을 수행하는 번역 엔진을 더 포함하고, 상기 전처리부는, 상기 복수의 데이터 집합 내의 다량의 비문 데이터에 대해 상기 번역 엔진을 통한 번역을 수행하면서 상기 번역 엔진이 사용하는 사전에 등록되지 않은 단어에 대해 미리 설정된 마커를 사용하여 표시하고, 상기 다량의 비문 데이터에 대한 번역 완료 후, 상기 미리 설정된 마커에 의해 표시된 단어들을 추출하여 오류가 없는 단어로 일괄적으로 교정하는 선(先)교정을 수행한다.
또한, 상기 전처리부는, 상기 미리 설정된 마커에 의해 표시된 단어들을 추출하면서 빈도수를 파악하고, 파악된 빈도수 기반으로 상기 미리 설정된 마커에 의해 표시된 단어들을 정렬한 후 오류가 없는 단어로 일괄적으로 교정한다.
또한, 상기 언어 교정부는, 교정 대상의 문장에 대해, 문장 단위의 문장 분리를 수행하고, 분리된 문장을 토큰화하는 전처리를 수행하는 전처리부; 상기 전처리부에 의해 전처리가 수행된 교정 대상의 문장에 대해 바이너리 분류기를 사용하여 오류 문장과 비오류 문장을 구분하는 오류 문장 검출부; 상기 오류 문장 검출부에 의해 오류 문장으로 구분되는 경우, 상기 교정 대상의 문장에 대해 철자 오류 교정을 수행하는 맞춤법 교정부; 상기 맞춤법 교정부에 의해 철자 오류 교정된 문장에 대해 상기 교정 모델을 사용하여 문법 교정을 위한 언어 교정을 수행하여 교정 문장을 생성하는 문법 교정부; 및 상기 문법 교정부에 의한 언어 교정시 교정된 부분을 표시하는 후처리를 수행하여 상기 교정 문장과 함께 출력하는 후처리부를 포함한다.
또한, 상기 오류 문장 검출부는 상기 교정 대상의 문장 구분시 파악되는 신뢰도 정보에 따라 상기 오류 문장과 상기 비오류 문장을 구분한다.
또한, 상기 맞춤법 교정부는 철자 오류 교정시 철자 오류 출현 확률값을 신뢰도 정보로서 제공하고, 상기 문법 교정부는 상기 철자 오류 교정된 문장에 대한 언어 교정의 어텐션 가중치를 통한 확률값을 신뢰도 정보로서 제공하며, 상기 후처리부는 상기 맞춤법 교정부에서 제공되는 신뢰도 정보와 상기 문법 교정부에서 제공되는 신뢰도 정보를 조합하여 상기 교정 대상의 문장에 대한 언어 교정의 최종 신뢰도 정보로서 제공한다.
또한, 상기 문법 교정부와 상기 후처리부 사이에, 상기 문법 교정부에서 생성되는 교정 문장에 대해 미리 설정된 추천 문장을 사용하여 언어 모델링을 수행하는 언어 모델링부를 더 포함하고, 상기 언어 모델링부는 언어 모델링시 언어 모델의 퍼플릭시티(perplexity)와 상호 정보(Mutual Information, MI) 값의 조합으로 상기 교정 문장의 신뢰도 정보를 제공하며, 상기 후처리부는 상기 최종 신뢰도 제공시 상기 언어 모델링부에서 제공되는 신뢰도 정보도 함께 조합한다.
또한, 사용자에 의해 등록된 소스 단어와 이에 대응되는 타겟 단어를 포함하는 사용자 사전을 더 포함하고 - 상기 소스 단어와 타겟 단어는 각각 적어도 하나의 단어임 -, 상기 교정 모델 학습부는 상기 복수의 데이터 집합 내에 상기 사용자 사전에 등록된 단어가 포함되어 있는 경우 해당 단어에 대해 미리 설정된 사용자 사전 마커로 대체하여 기계학습을 수행하고, 상기 언어 교정부는 교정 대상의 문장에 상기 사용자 사전에 포함된 단어가 있는 경우 상기 사용자 사전 마커로 대체하여 상기 교정 대상의 문장에 대한 언어 교정을 수행하고, 교정된 문장 내에 상기 사용자 사전 마커가 포함되어 있는 경우 상기 사용자 사전 마커를 상기 교정 대상의 문장에서 대응되는 단어에 대응하여 상기 사용자 사전에 등록되어 있는 단어로 대체한다.
본 발명의 다른 특징에 따른 언어 교정 모델 학습 방법은,
언어 교정 시스템이 기계 학습 기반으로 언어 교정 모델을 학습하는 방법으로서, 비문(非文) 데이터와 상기 비문 데이터에 각각 대응되는 오류가 없는 정문(正文) 데이터로 구성된 복수의 데이터 집합에 대해, 지도 학습 데이터 레이블링 작업, 기계학습 데이터 확장 작업 및 기계학습용 병렬 데이터 구축 작업을 포함하는 학습 가공을 수행하는 단계; 및 상기 학습 가공이 수행된 복수의 데이터 집합에 대해 지도 학습 기반의 기계학습을 수행하여 대응되는 교정 모델을 생성하는 단계를 포함한다.
여기서, 상기 기계학습 데이터 확장 작업은, 상기 비문 데이터에 포함된 문자를 타이핑하기 위한 키보드의 정위치를 기준으로 주변의 오타 문자로 형성되는 글자를 사용한 데이터 확장 작업을 포함하고, 상기 기계학습용 병렬 데이터 구축 작업은, 교정이 불필요한 비문 문장과 이에 대응되는 정문 문장을 쌍으로 하는 병렬 코퍼스로 병렬 데이터를 구축하는 작업을 포함한다.
또한, 상기 학습 가공을 수행하는 단계 전에, 상기 복수의 데이터 집합에 대해 언어 감지를 수행하여 단일어 문장으로의 필터링 작업, 데이터의 정제 및 정규화 작업을 포함하는 전처리를 수행하는 단계를 더 포함하고, 상기 전처리를 수행하는 단계는, 상기 복수의 데이터 집합 내의 다량의 비문 데이터에 대해 번역 엔진을 통한 번역을 수행하는 단계; 상기 번역 엔진이 사용하는 사전에 등록되지 않은 단어에 대해 미리 설정된 마커를 사용하여 표시하는 단계; 상기 다량의 비문 데이터에 대한 번역 완료 후, 상기 미리 설정된 마커에 의해 표시된 단어들을 추출하는 단계; 및 추출된 단어들에 대해 오류가 없는 단어로 일괄적으로 교정하는 단계를 포함한다.
또한, 상기 일괄적으로 교정하는 단계는, 상기 미리 설정된 마커에 의해 표시된 단어들을 추출하는 단계; 추출된 단어들의 빈도수를 파악하는 단계; 파악된 빈도수 기반으로 상기 미리 설정된 마커에 의해 표시된 단어들을 정렬하는 단계; 및 정렬된 단어들에 대해 오류가 없는 단어로 일괄적으로 교정하는 단계를 포함한다.
또한, 상기 언어 교정 시스템이, 사용자에 의해 등록된 소스 단어와 이에 대응되는 타겟 단어를 포함하는 사용자 사전을 더 포함하고 - 상기 소스 단어와 타겟 단어는 각각 적어도 하나의 단어임 -, 상기 교정 모델을 생성하는 단계는, 상기 복수의 데이터 집합 내에 상기 사용자 사전에 등록된 단어가 포함되어 있는 경우 해당 단어에 대해 미리 설정된 사용자 사전 마커로 대체하여 기계학습을 수행하여 상기 교정 모델을 생성한다.
본 발명의 또 다른 특징에 따른 언어 교정 방법은,
언어 교정 시스템이 기계 학습 기반으로 언어 교정하는 방법으로서, 언어 교정 대상의 문장에 대해 철자 오류 교정을 수행하는 단계; 및 철자 오류 교정된 문장에 대해 교정 모델을 사용하여 문법 교정을 수행하여 교정 문장을 생성하는 단계를 포함하고, 상기 교정 모델은 비문(非文) 데이터와 상기 비문 데이터에 각각 대응되는 오류가 없는 정문(正文) 데이터로 구성된 복수의 데이터 집합에 대해 지도 학습 기반의 기계학습을 수행하여 생성된 것이다.
여기서, 상기 철자 오류 교정을 수행하는 단계 전에, 상기 언어 교정 대상의 문장에 대해, 문장 단위의 문장 분리를 수행하고, 분리된 문장을 토큰화하는 전처리를 수행하는 단계; 및 상기 전처리가 수행된 언어 교정 대상의 문장에 대해 바이너리 분류기를 사용하여 오류 문장과 비오류 문장을 구분하는 단계를 더 포함하고, 상기 오류 문장과 비오류 문장을 구분하는 단계에서, 상기 언어 교정 대상의 문장이 오류 문장으로 구분되는 경우 상기 철자 오류 교정을 수행하는 단계가 수행된다.
또한, 상기 오류 문장과 비오류 문장을 구분하는 단계에서, 상기 언어 교정 대상의 문장 구분시 파악되는 신뢰도 정보에 따라 상기 오류 문장과 상기 비오류 문장을 구분한다.
또한, 상기 교정 문장을 생성하는 단계 후에, 상기 교정 문장에 대해 미리 설정된 추천 문장을 사용하여 언어 모델링을 수행하는 단계; 및 상기 교정 문장 생성시 교정된 부분을 표시하는 후처리를 수행하여 상기 교정 문장과 함께 출력하는 단계를 더 포함한다.
또한, 상기 언어 교정 시스템이, 사용자에 의해 등록된 소스 단어와 이에 대응되는 타겟 단어를 포함하는 사용자 사전을 더 포함하고 - 상기 소스 단어와 타겟 단어는 각각 적어도 하나의 단어임 -, 상기 철자 오류 교정을 수행하는 단계 전에, 상기 언어 교정 대상의 문장 내에 상기 사용자 사전에 포함되어 있는 단어가 포함되어 있는지를 판단하는 단계; 및 상기 언어 교정 대상의 문장 내에 상기 사용자 사전에 포함되어 있는 단어가 포함되어 있는 경우, 상기 사용자 사전과 상기 언어 교정 대상의 문장에 공통적으로 포함되어 있는 단어를 미리 설정된 사용자 사전 마커로 대체하는 단계를 더 포함하고, 상기 교정 문장을 생성하는 단계 후에, 생성된 교정 문장 내에 상기 사용자 사전 마커가 포함되어 있는지를 확인하는 단계; 상기 생성된 교정 문장 내에 상기 사용자 사전 마커가 포함되어 있는 경우, 포함된 사용자 사전 마커의 위치에 대응되는 상기 언어 교정 대상의 문장 내 단어에 대응되는 상기 사용자 사전의 단어로 대체하여 최종의 교정 문장을 생성하는 단계를 더 포함한다.
본 발명의 실시예에 따르면, 기계학습 기반의 교정 모델을 사용함으로써 효율적인 언어 교정 결과를 제공할 수 있다.
또한, 언어 교육용 첨삭 지도에 활용하여 온라인 학습 시스템 개발이 가능하다.
또한, 문장 단위의 검색에서 오타/문법 오류를 제거하여 검색 성능을 향상시킬 수 있다.
또한, 각종 오피스 툴에 적용하여 문서 작성에 보조할 수 있다.
또한, 사용자에 의해 미리 정의된 형태의 교정 정보를 변수 형태로 저장하고 이를 런타임에서 처리함으로써, 교정 모델에 별도로 추가하거나 변경하지 않고도 쉽게 언어 교정이 수행될 수 있다.
또한, 교정이 어렵거나 의도적으로 잘 안되는 부분에 대해서도 사용자 사전에 등록하여 처리함으로써 언어 교정의 효율을 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 언어 교정 시스템의 개략적인 구성도이다.
도 2는 도 1에 도시된 교정 모델 학습부의 구체적인 구성도이다.
도 3은 도 1에 도시된 언어 교정부의 구체적인 구성도이다.
도 4는 본 발명의 실시예에 따른 언어 교정 시스템에 의해 언어 교정이 수행된 결과 예를 도시한 도면이다.
도 5는 본 발명의 실시예에 따른 기계학습 기반 언어 교정 방법의 개략적인 흐름도이다.
도 6은 본 발명의 실시예에 따른 언어 교정 모델 학습 방법의 개략적인 흐름도이다.
도 7은 본 발명의 다른 실시예에 따른 교정 모델 학습부의 구체적인 구성도이다.
도 8은 본 발명의 다른 실시예에 따른 교정 모델 학습 문장의 선교정 방법의 흐름도이다.
도 9는 본 발명의 다른 실시예에 따른 교정 모델 학습 문장의 선교정 방법의 예를 도시한 도면이다.
도 10은 본 발명의 다른 실시예에 따른 언어 교정 시스템의 개략적인 구성도이다.
도 11은 도 10에 도시된 교정 모델 학습부의 구체적인 구성도이다.
도 12는 도 10에 도시된 언어 교정부의 구체적인 구성도이다.
도 13은 본 발명의 다른 실시예에 따른 언어 교정 모델 학습 방법의 흐름도이다.
도 14는 본 발명의 다른 실시예에 따른 언어 교정 방법의 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이하, 도면을 참고하여 본 발명의 실시예에 따른 언어 교정 시스템에 대해 설명한다.
도 1은 본 발명의 실시예에 따른 언어 교정 시스템의 개략적인 구성도이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 언어 교정 시스템(100)은 입력부(110), 교정 모델 학습부(120), 교정 모델 저장부(130), 언어 교정부(140) 및 출력부(150)를 포함한다. 여기서, 도 1에 도시된 언어 교정 시스템(100)은 본 발명의 하나의 실시예에 불과하므로 도 1을 통해 본 발명이 한정 해석되는 것은 아니며, 본 발명의 다양한 실시예들에 따라 도 1과 다르게 구성될 수도 있다.
입력부(110)는 언어 교정의 학습을 위해 사용되는 데이터 또는 언어 교정 대상인 교정 대상 데이터를 입력받는다. 여기서, 언어 교정의 학습을 위해 사용되는 데이터로는 추후 설명될 지도 학습 기반의 기계학습을 위해 인터넷 대용량 데이터로서 교정 정보를 포함하는 비문(非文) 데이터와 오류가 없는 정문(正文) 데이터가 쌍으로서 입력된다.
교정 모델 학습부(120)는 입력부(110)를 통해 입력되는 데이터 중에서 언어 교정의 학습을 위해 사용되는 데이터, 즉 비문 데이터와 정문 데이터의 쌍으로 구성된 대량의 학습 데이터를 사용하여 언어 교정을 위한 기계학습을 수행하여 언어 교정용 학습 모델인 교정 모델을 생성한다. 이 때, 교정 모델 학습부(120)에서 생성되는 교정 모델은 교정 모델 저장부(130)에 저장된다. 한편, 상기한 기계학습은 인공지능의 한 분야로서, 방대한 데이터를 분석해서 미래를 예측하는 기술이며, 컴퓨터가 스스로 학습 과정을 거치면서 입력되지 않은 정보를 습득하여 문제를 해결하는 기술이다. 기계학습을 위해 CNN(Convolutional Neural Network), RNN(Recurrent Neural Network), Transformer Networks 등의 신경망을 활용하는 딥러닝 기술이 사용될 수 있다. 이러한 기계학습 기술에 대해서는 이미 잘 알려져 있으므로 여기에서는 구체적인 설명을 생략한다.
교정 모델 저장부(130)는 교정 모델 학습부(120)에 의한 기계학습을 통해 생성되는 교정 모델을 저장한다.
언어 교정부(140)는 입력부(110)를 통해 입력되는 대용량의 언어 교정 데이터, 즉 맞춤법 오류나 문법 오류의 교정 대상인 교정 대상 데이터에 대해 교정 모델 저장부(130)에 저장된 교정 모델을 사용하여 교정 대상 데이터에 대한 맞춤법/문법 교정을 수행하고, 교정이 완료된 교정 데이터를 출력부(150)로 출력한다.
선택적으로 언어 교정부(140)는 교정 대상 데이터에 대한 맞춤법/문법 교정이 완료되어 교정이 불필요한 경우라도 문장을 자연스러운 문장으로 교정해주는 언어 모델링 작업이 추가로 수행될 수 있다.
출력부(150)는 언어 교정부(140)에서 언어 교정이 완료된 교정 데이터와 함께 교정 대상 데이터를 전달받아서 외부, 예를 들어 사용자에게 출력한다.
또한, 출력부(150)는 교정 대상 데이터와 함께 이에 대응되는 교정 데이터를 함께 출력할 수 있다. 선택적으로, 출력부(150)는 교정 데이터에 대해 교정 대상 데이터에서 교정이 수행된 부분을 알 수 있도록 추가로 표시할 수 있다. 이 때, 교정이 수행된 부분에 대한 정보는 언어 교정부(140)에서 출력부(150)로 제공된다.
한편, 상기한 교정 모델 학습부(120)와 언어 교정부(140)는 서로 통합되어 하나의 구성요소로서 구현될 수 있거나, 또는 서로 별개의 장치로서 구현될 수 있다. 예를 들어, 입력부(110), 교정 모델 학습부(120) 및 교정 모델 저장부(130)만을 포함하는 교정 모델 학습 장치와 입력부(110), 교정 모델 저장부(130), 언어 교정부(140) 및 출력부(150)만을 포함하는 언어 교정 장치와 같이 각각의 장치로서 구현될 수도 있다.
이하, 전술한 교정 모델 학습부(120)에 대해 보다 구체적으로 설명한다.
도 2는 도 1에 도시된 교정 모델 학습부(120)의 구체적인 구성도이다.
도 2에 도시된 바와 같이, 교정 모델 학습부(120)는 전처리부(121), 학습 가공부(122), 교정 학습부(123), 후처리부(124) 및 교정 모델 출력부(125)를 포함한다.
설명 전에, 본 발명의 실시예에서 수행되는 교정 모델의 기계학습은 지도 학습(supervised learning)을 사용하지만, 이에 한정되는 것은 아니다. 여기서 지도 학습은 입력과 출력 사이의 매핑을 학습하는 것이며, 입력과 출력 쌍이 데이터로 주어지는 경우에 적용된다. 본 발명의 실시예에 적용하면, 맞춤법 교정 및 문법 교정을 위한 소스 데이터인 비문 데이터가 입력이고, 이에 대응되어 교정된 문장에 해당되는 타겟 데이터인 정문 데이터가 출력에 해당된다. 이러한 지도 학습에 따른 기계학습 방법에 대해서는 이미 잘 알려져 있으므로 여기에서는 구체적인 설명을 생략한다.
전처리부(121)는 입력부(110)를 통해 입력되는 언어 교정의 학습을 위해 사용되는 데이터, 즉 비문 데이터("소스 문장"이라고도 함)와 정문 데이터("타겟 문장"이라고도 함)의 쌍으로 구성된 학습 데이터 중에서 비문 및 정문 데이터에 대해 언어 감지(language identification) 기술을 적용하여 단일어 문장으로 필터링한다. 즉, 비문 혹은 정문 데이터는 기본적으로 동일한 언어 기반으로 학습을 수행할 수 있도록 언어 감지를 통해 단일어 문장으로 필터링을 수행한다.
선택적으로, 전처리부(121)는 언어 감지시 코드 스위칭 부분 필터링을 추가로 수행할 수 있다. 이것은, 예를 들어, “Korea는 굉장히 traditional한 thinking에 사로잡힌 것 같아요”와 같이 영어와 한국어가 섞여 있는 경우와 같이, 서로 다른 언어가 사용되더라도 코드 스위칭을 위한 언어 감지 기술을 통해 필터링되어 제거되지 않고 문장 내에 남아 있도록 하는 것이다.
또한, 전처리부(121)는 비문 데이터에 대한 정제를 수행한다. 이러한 정제는 단일어 코퍼스(corpus) 또는 병렬 코퍼스에 적용될 수 있다.
이외에도, 전처리부(121)는 소스/타켓 문장에서 중복 및 빈 정보 유무 체크, 글자/단어수 최대치/최소값 설정, 글자 및 단어 길이 공백 수 제한, 대문자 숫자 제한, 반복 단어 제한, 비 그래픽 문자(Non-graphic/Non-printable Character), 유니코드 처리 오류 체크, 외국어 비율 체크, 인코딩 유효성 확인 등의 작업을 더 수행할 수 있다. 이러한 작업에 대해서는 잘 알려져 있으므로, 여기에서는 구체적인 설명을 생략한다.
또한, 전처리부(121)는 유니코드, 문장 부호, 대소문자, 지역별 철자가 다른 경우 등에 따라 데이터의 정규화를 추가로 수행할 수 있다. 이 때, 데이터의 정규화는 전술한 데이터의 정제와 통합될 수도 있다.
학습 가공부(122)는 전처리부(121)에 의해 전처리가 수행된 데이터의 쌍, 즉 비문 데이터와 정문 데이터의 쌍을 사용하여 추후 교정 학습부(123)에 의해 수행되는 기계학습에 필요한 데이터를 준비하는 것으로, 지도 학습 데이터 레이블링 작업, 기계학습 데이터 확장(data augmentation) 작업, 기계학습용 병렬 데이터 구축 작업을 수행한다. 이러한 지도 학습 데이터 레이블링 작업, 기계학습 데이터 확장 작업 및 기계학습용 병렬 데이터 구축 작업은 순차적으로 실행될 필요가 없고, 또한 모든 작업이 아닌 일부만이 실행될 수 있다.
먼저, 지도 학습 데이터 레이블링 작업은 다음과 같다.
단어와 문자의 편집 거리를 이용하여 교정 문장에서의 교정 형태(삽입, 치환, 삭제)에 대한 정보를 부가 정보로서 추가한다.
또한, 오류 범주 정보를 추가한다. 여기서, 오류 범주 정보로는 맞춤법 오류(누락, 첨가, 오선택, 순서 등의 오류), 문법 오류(품사, 일치 등의 오류), 언어 모델 오류(문장 구성, 대용어 참조, 관용 표현, 의미 표현, 모드 표현 등의 오류)가 해당된다.
교류 오류의 범주 정보로는 다음의 [표 1]이 참조될 수 있다.
또한, 비문 및 정문 분류 정보를 바이너리 형태로 추가한다. 이러한 비문 및 정문 분류 정보를 통해 학습 데이터, 즉 비문 데이터와 정문 데이터의 쌍이 모두 교정이 필요없는 정문으로 분류되는 경우를 파악할 수 있다. 이것은 비문 데이터에 대해 교정이 필요없는 것으로 분류될 수 있으므로, 추후 이러한 학습 데이터의 사용을 통해 데이터 확장이 가능하고, 또한 추후 언어 교정시 교정이 필요 없음을 빨리 체크하여 응답할 수 있도록 할 수 있다. 여기서, 비문 데이터에 대해 바이너리 분류기를 통해 교정이 필요없는 정문과 교정이 필요한 비문의 분류를 수행하면서 비문 데이터가 비문과 정문에 해당될 확률값을 표시할 수 있다.
또한, 전처리부(121)에서 수행된 코드 스위칭 부분에 대한 정보를 레이블링한다. 예를 들어, 한-영 코드 스위칭 부분의 레이블링을 수행한다.
또한, 다양한 자연어 처리를 수행한 후 태그 정보를 추가한다. 여기서, 다양한 자연어 처리로는 문장 분리, 토큰 분리, 형태소 분석, 구문 분석, 개체명 인식, 의미역 인식, 상호참조, 패러프레이즈(paraphrase) 등이 포함될 수 있다.
또한, [표 1]에서 필요한 세부 오류 범주 정보를 추가하여 기계학습할 수 있도록 언어의 자질 정보가 사용될 수 있다.
다음, 기계학습 데이터 확장 작업은 다음과 같다. 여기서, 기계학습 데이터 확장 작업은 추후 교정 학습부(123)에서 학습시 사용될 기계학습 데이터의 양을 늘리기 위한 작업을 나타낸다.
비문 데이터에 다양한 형태의 노이즈를 추가하여 기계학습 데이터 확장을 수행할 수 있다. 여기서, 노이즈 종류로는 단어/철자 누락, 치환, 첨가, 띄어쓰기 오류, 외국어 추가 등이 포함될 수 있다.
또한, 빈도수가 높은 오타 오류 위주로 데이터 확장을 수행할 수 있다.
또한, 키보드 주변 글자 위주의 오타로 데이터 확장을 수행할 수 있다. 즉, 비문 데이터의 특정 문자에 대해 해당 문자를 타이핑하기 위한 키보드의 정위치를 기준으로 주변의 오타 문자로 형성되는 글자의 오타를 사용하여 데이터 확장을 수행할 수 있다. 이러한 키보드 주변 글자 위주의 오타를 통한 데이터 확장으로 인해 작은 키보드 자판을 사용하는 스마트폰 등을 통해 입력되는 문장들에서의 언어 교정이 매우 효율적으로 수행될 수 있다.
또한, VAE(Variational autoencoder), GAN(Generative Adversarial Networks) 등의 비지도 학습에서 사용되는 알고리즘을 응용하여 데이터 확장을 수행할 수 있다.
다음, 기계학습용 병렬 데이터 구축 작업은 다음과 같다.
상기한 바와 같이 확장된 데이터, 즉 대용량의 데이터 쌍을 노이즈가 포함된 교정 문장인 비문 문장과 교정이 불필요한 정문 문장을 쌍으로 하는 병렬 코퍼스로 구축하는 병렬 데이터 구축 작업을 수행한다.
또한, 전처리부(121)에서 비문 및 정문 분류 정보의 바이너리 형태 추가에 의해, 교정이 필요없는 비문 데이터를 사용하여 교정이 불필요한 문장 쌍으로 하는 병렬 코퍼스로 구축하는 병렬 데이터 구축 작업을 수행한다. 이와 같이, 교정이 불필요한 문장 쌍으로 하는 병렬 코퍼스를 사용한 병렬 데이터 구축으로 인해 추후 언어 교정부(140)에서 교정 대상 데이터에 대해 교정이 필요없는 경우 이러한 교정 대상 데이터에 대해 교정을 위한 작업이 수행되지 않도록 처리될 수 있으므로, 전체적인 교정 작업의 처리가 빨리질 수 있다. 물론 이러한 교정이 필요없는 교정 대상 데이터에 대해서도 문장을 자연스럽게 하기 위한 언어 모델링은 수행될 수 있다.
교정 학습부(123)는 학습 가공부(122)에 의해 가공된 데이터 쌍, 즉 비문 데이터와 정문 데이터 기반으로 구축된 병렬 데이터의 조합으로 전술한 바와 같은 지도 학습 기반의 기계학습을 적용하여 대응되는 교정 모델을 생성한다. 물론 본 발명은 지도 학습으로만 한정되는 것은 아니고, 비지도 학습 기반의 기계학습을 통해서도 교정 학습이 수행될 수도 있다. 이 경우, 이전의 전처리나 데이터 가공 등이 비지도 학습 기반의 기계학습에 적용될 수 있도록 하는 처리가 수반되어야 할 것이다. 여기서, 교정 학습부(123)는 지도 학습 기반의 기계학습시 기계학습 결과에 대한 오류 출현 확률값을 제공할 수 있다. 이 때, 오류 출현 확률값은 비문과 정문과의 어텐션(attention) 가중치 정보일 수 있다.
선택적으로, 교정 학습부(123)는 대용량 인터넷 데이터 기반으로 사전 학습된 임베딩 벡터를 활용할 수 있다. 즉, 외부에서 방대하게 사전 학습된 데이터를 활용할 수 있다.
후처리부(124)는 학습 가공부(122)에서의 지도학습 데이터 레이블링 작업시 추가된 태그 부가 정보를 통해 오류 및 오류 카테고리 정보를 출력한 후, 해당 태그 부가 정보를 제거한다.
교정 모델 출력부(125)는 교정 학습부(123)에 의해 생성되는 교정 모델을 교정 모델 저장부(130)로 출력하여 저장시킨다.
다음, 전술한 언어 교정부(140)에 대해 보다 구체적으로 설명한다.
도 3은 도 1에 도시된 언어 교정부(140)의 구체적인 구성도이다.
도 3에 도시된 바와 같이, 언어 교정부(140)는 전처리부(141), 오류 문장 검출부(142), 맞춤법 교정부(143), 문법 교정부(144), 언어 모델링부(145) 및 후처리부(146)를 포함한다.
전처리부(141)는 입력부(110)를 통해 입력되는 언어 교정을 위한 교정 대상 데이터에 대해 문장 분리 작업을 수행한다. 이러한 문장 분리 작업은 교정 대상 데이터 내에 포함된 문장들의 끝 단위를 인식한 후 입력 단위를 문장 단위로 분리하는 작업이다.
또한, 전처리부(141)는 분리된 문장을 다양하게 토큰화한다. 여기서, 토큰화는 문장을 원하는 단위로 자르는 것을 의미하며, 예를 들어, 글자 단위, 단어, 보조단어(subword), 형태소, 어절 등의 단위로 토큰화가 수행될 수 있다.
또한, 전처리부(141)는 교정 모델 학습부(120)의 전처리부(121)에서 수행된 바와 같은 데이터 정규화 작업을 수행할 수 있다.
다음, 오류 문장 검출부(142)는 바이너리 분류기를 사용하여 전처리부(141)에서 이미 태깅된 정보를 통해서 오류 문장과 비오류 문장을 구분한다. 이것은 기존 오류/비오류 문장쌍의 학습 데이터 외에 오류 문장 위치에 비오류 문장을 추가해서 확장된 데이터를 기반으로 입력 문장과 기계학습된 오류 문장 또는 비오류 문장의 유사도 측정을 통해 분류하는 방식이다. 이때 오류 문장과 비오류 문장 구분시에 대응되는 신뢰도 수치를 표시한다.
오류 문장 검출부(142)는 신뢰도 수치가 임계값 이상이면 오류 문장으로 검출하고, 만약 신뢰도 수치가 임계값보다 작으면 비오류 문장으로 검출한다.
이러한 오류 문장 검출부(142)에서의 오류 문장 검출 결과에 따라, 오류 문장으로 검출되면 맞춤법 교정부(143)로 교정 대상 데이터가 전달되지만, 비오류 문장으로 검출되면 맞춤법 교정부(143)와 문법 교정부(144)를 거치지 않고 바로 언어 모델링부(145)로 전달된다.
맞춤법 교정부(143)는 오류 문장 검출부(142)에서 전달되는 교정 대상 데이터 내의 교정 대상 문장에서 철자 오류를 검출하고 이를 교정한다. 여기서의 철자 교정은 띄어쓰기, 문장 부호(마침표, 물음표, 느낌표, 쉼표, 가운뎃점, 쌍점, 빗금, 큰 따옴표, 작은 따옴표, 소괄호, 중괄호, 대괄호, 겹낫표와 겹화살괄호, 홑낫표와 홑화살괄호, 줄표, 붙임표, 물결표, 드러냄표와 밑줄, 숨김표, 빠짐표, 줄임표) 등의 철자 오류에 대한 교정이 해당될 수 있다. 또한, 이러한 철자 교정에 대해서도 철자 교정을 위한 기계학습을 수행하여 대응되는 교정 모델을 생성하고, 이렇게 생성된 교정 모델을 사용하여 철자 교정을 수행할 수 있으나, 상기한 바와 같이, 철자 교정은 기계학습을 적용할 정도의 대상은 아니므로 기존의 철자 기준 표준어 사전 등을 사용하여 수행될 수 있다.
선택적으로 맞춤법 교정부(143)는 교정 대상 데이터에 대한 철자 교정에 대해 사전 기반 철자 오류 출현 확률값을 신뢰도 정보로서 제공할 수 있다.
문법 교정부(144)는 교정 모델 저장부(130)에 저장된 교정 모델을 사용하여 맞춤법 교정부(143)에서 철자 교정된 교정 대상 데이터에 대한 언어 교정, 특히 문법 교정을 수행한다. 즉, 문법 교정부(144)는 교정 대상 데이터에 대해 교정 모델을 적용함으로써 교정 대상 데이터에 대해 교정된 데이터를 결과물로서 획득할 수 있다. 이 때, 교정 모델에 의해 교정된 데이터와 함께 어텐션 가중치를 통한 확률값, 즉 신뢰도 정보가 제공될 수 있다.
언어 모델링부(145)는 문법 교정부(144)에 의해 교정된 데이터, 또는 오류 문장 검출부(142)에서 전달되는 비오류 문장에 대해 교정이 불필요한 경우라도 문장을 문법 또한 의미/화용적인 범위에서 더 자연스러운 문장으로 교정하는 언어 모델링을 수행한다. 이러한 언어 모델링도 교정 모델과 같이 기계학습을 이용한 방법을 사용할 수도 있지만 본 발명에서는 적용하지 않고 다양한 형태의 추천 문장 등을 사용하여 대응되는 문장에 대해 언어 모델링을 수행하는 것으로만 설명한다.
선택적으로, 언어 모델링부(145)는 언어 모델링을 수행하면서 언어 모델의 퍼플릭시티(perplexity(PPL)) 및 상호 정보(Mutual Information, MI) 값의 조합으로 교정 문장의 신뢰도 정보를 제공할 수 있다.
후처리부(146)는 언어 모델링부(145)에 의해 언어 모델링이 수행된 교정된 데이터에 대해 교정 부분을 표시한다. 이러한 교정 부분의 표시는 다양한 색상으로 오류 정보의 시각화를 통해 수행될 수 있다.
선택적으로, 후처리부(146)는 오류 문장 검출부(142)에서 바이너리 분류기를 사용하여 오류 문장과 비오류 문장으로 구분시 제공되는 확률값인 신뢰도 수치, 맞춤법 교정부(143)에서의 철자 교정시 제공되는 사전 기반 철자 오류 출현 확률값인 신뢰도 정보, 문법 교정부(144)에서 언어 교정시 제공되는 어텐션 가중치 정보, 언어 모델링부(145)에서 제공되는 언어 모델의 퍼플릭시티 값, 상호 정보(Mutual Information, MI) 등 각 구성요소에서 산출되는 신뢰도의 가중합을 휴리스틱(heuristic) 기반으로 조합하여 교정 대상 데이터에 대한 언어 교정의 최종 신뢰도 정보로서 제공할 수 있다.
선택적으로, 후처리부(146)는 하나의 교정 대상 데이터에 대해 N-best 문장 처리를 수행할 수 있다. 즉, 하나의 교정 대상 데이터에 대해 복수의 교정된 데이터 후보군을 제공하면서 각 후보군별 신뢰도를 랭킹(ranking)으로서 제공하여 사용자에 의해 선택될 수 있도록 할 수 있다. 이러한 처리는 출력부(150)와 협력하여 수행될 수 있다.
다음, 출력부(150)는 언어 교정부(140)에서 언어 교정이 완료된 교정 데이터와 함께 교정 대상 데이터를 전달받아서 외부로 출력한다. 이 때, 출력부(150)는 교정 대상 데이터와 이에 대응되는 교정된 데이터 및 교정 부분을 함께 표시할 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 좌측에 교정 대상 데이터(Source), 중간에 교정된 데이터(Suggestion), 우측에 교정 부분을 함께 표시함으로써 교정 대상 데이터에 대해 교정된 데이터, 그리고 교정된 부분을 명확히 알 수 있도록 할 수 있다.
이하, 본 발명의 실시예에 따른 기계학습 기반 언어 교정 방법에 대해 설명한다.
도 5는 본 발명의 실시예에 따른 기계학습 기반 언어 교정 방법의 개략적인 흐름도이다. 도 5에 도시된 기계학습 기반 언어 교정 방법은 도 1 내지 도 4를 참조하여 설명한 언어 교정 시스템(100)에 의해 수행될 수 있다.
도 5를 참조하면, 먼저, 언어 교정을 위한 교정 대상 문장이 입력되면(S100), 입력된 교정 대상 문장에 대해 문장 분리 작업, 문장의 토큰화 및 정규화 작업 등을 포함하는 전처리 작업을 수행한다(S110). 여기서, 입력된 교정 대상 문장에 대해 문장 분리 작업, 문장의 토큰화 및 정규화 작업 등을 포함하는 전처리 작업에 대해서는 도 3을 참조한다.
다음, 전처리 작업이 수행된 교정 대상 문장에 대해 바이너리 분류기를 사용하여 오류 문장을 검출한다(S120). 도 3을 참조하여 설명한 바와 같이, 이 때 오류 문장 검출에 대한 신뢰도가 함께 제공될 수 있다.
따라서, 상기 단계(S120)에서 제공되는 신뢰도가 미리 설정된 임계값 이상이면 오류가 검출된 것으로 언어 교정이 필요하고, 그렇지 않으면 오류가 검출되지 않은 비오류 문장으로 언어 교정이 필요하지 않음을 알 수 있다.
따라서, 신뢰도가 미리 설정된 임계값 이상인지가 판단되고(S130), 만약 신뢰도가 미리 설정된 임계값 이상이면, 언어 교정을 위해 먼저 교정 대상 문장에 대한 철자 교정, 즉 맞춤법 교정이 수행된다(S140). 이러한 맞춤법 교정에 대해서도 구체적인 내용에 대해서는 도 3을 참조하여 설명한 부분을 참조한다.
그 후 맞춤법 교정된 교정 대상 문장에 대해 지도 학습 기반의 기계학습을 통해 미리 생성되어 있는 생성 모델을 사용하여 언어 교정, 구체적으로는 문법 교정을 수행하여 교정 대상 문장에 대응되는 교정된 문장을 출력한다(S150). 이 때, 생성 모델은 교정 대상 문장에서 교정된 문장으로 교정된 부분에 대한 정보를 함께 제공한다. 또한, 교정 대상 문장의 교정에 대한 신뢰도 정보로서 어텐션 가중치가 함께 제공될 수 있다.
계속해서, 교정된 문장에 대해 문법 또한 의미/화용적인 범위에서 더 자연스러운 문장으로 교정하는 언어 모델링이 수행된다(S160). 이러한 언어 모델링에 대해서도 도 3을 참조하여 설명한 부분을 참조한다.
이와 같이, 언어 모델링된 문장에 대해 상기한 바와 같은 언어 교정에 대한 신뢰도 정보 제공, N-best 문장 처리 등의 후처리 작업을 수행한다(S170). 이러한 후처리 작업에 대해서는 구체적인 내용은 도 3을 참조하여 설명한 부분을 참조한다.
그 후, 후처리 작업이 완료된 최종 교정 문장을 교정 대상 문장과 함께 출력하면서, 교정 부분을 함께 표시함으로써 사용자에게 교정 대상 문장에 대해 본 발명의 실시예에 따른 언어 교정된 교정 문장을 제공할 수 있다(S180).
한편, 상기 단계(S130)에서, 신뢰도가 미리 설정된 임계값보다 작아서 언어 교정이 필요 없는 문장인 것으로 판단되는 경우에는 상기한 맞춤법 교정 단계(S140) 및 문법 교정 단계(S150)의 수행 없이 바로 언어 모델링 처리 단계(S160)를 수행하도록 한다.
이하, 상기에서 사용되는 교정 모델을 생성하기 위해 기계학습을 수행하는 방법에 대해 설명한다.
도 6은 본 발명의 실시예에 따른 언어 교정 모델 학습 방법의 개략적인 흐름도이다. 도 6에 도시된 언어 교정 모델 학습 방법은 도 1 내지 도 3을 참조하여 설명한 언어 교정 시스템(100)에 의해 수행될 수 있다.
도 6을 참조하면, 먼저, 언어 교정 모델에 대한 지도 학습 기반의 기계학습을 위해 교정 학습 대상 데이터, 즉 비문 데이터와 정문 데이터의 쌍으로 구성된 대량의 학습 데이터가 입력되면(S200), 언어 감지 작업, 데이터 정제 작업, 정규화 작업 등의 전처리 작업을 수행한다(S210). 구체적인 전처리 작업에 대해서는 도 2를 참조하여 설명한 부분을 참조한다.
다음, 전처리 작업이 완료된 교정 학습 대상 데이터에 대해 기계학습에 필요한 데이터로 기계학습 가공 작업을 수행한다(S220). 이러한 기계학습 가공 작업은 지도 학습 데이터 레이블링 작업, 기계학습 데이터 확장(data augmentation) 작업, 기계학습용 병렬 데이터 구축 작업 등을 포함하며, 구체적인 작업 내용에 대해서는 도 2를 참조하여 설명한 부분을 참조한다.
그 후, 기계학습 가공 작업이 완료된 교정 학습 대상 데이터를 사용하여 지도 학습 기반의 기계학습을 수행한 후 대응되는 교정 모델을 생성한다(S230). 이 때, 교정 모델과 함께 기계학습 결과에 대한 오류 출현 확률값이 제공될 수 있다.
다음, 기계학습 가공시 지도학습 데이터 레이블링 작업에 의해 추가된 태그 부가 정보를 통해 오류 및 오류 카테고리 정보를 출력한 후, 해당 태그 부가 정보를 제거하는 후처리 작업을 수행한다(S240).
마지막으로, 상기 단계(S230)에서 생성된 교정 모델을 교정 모델 저장부(130)에 저장하여, 추후 교정 대상의 문장에 대한 언어 교정시 사용될 수 있도록 한다(S250).
한편, 상기한 지도 학습 기반의 교정 모델 학습시 전처리부(121)가 언어 감지 작업, 데이터 정제 작업, 정규화 작업 등의 전처리 작업을 수행하는 것으로만 설명하였으나, 본 발명은 이에 한정되지 않고 보다 정확한 기계학습 기반의 교정 모델 학습이 수행될 수 있도록 하는 다양한 형태의 전처리 작업이 추가로 수행될 수 있다.
예를 들어, 교정 모델 학습에서 사용되는 비문 문장인 소스 문장의 오류(오탈자)를 교정 모델 학습 전에 사전에 일괄적으로 교정해서 실질적인 교정 모델 학습시 보다 정확한 소스 문장이 사용될 수 있도록 할 수 있다. 특히, 소스 문장에서 사전에 등록되어 있지 않아 식별이 불가능한 단어 등의 선(先)교정이 수행될 수 있도록 할 수 있다.
도 7은 본 발명의 다른 실시예에 따른 교정 모델 학습부(220)의 구체적인 구성도이다.
도 7에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 교정 모델 학습부(220)는 전처리부(221), 학습 가공부(222), 교정 학습부(223), 후처리부(224), 교정 모델 출력부(225) 및 번역 엔진(226)을 포함한다. 여기서, 학습 가공부(222), 교정 학습부(223), 후처리부(224) 및 교정 모델 출력부(225)는 도 2를 참조하여 설명한 교정 모델 학습부(120)의 학습 가공부(122), 교정 학습부(123), 후처리부(124) 및 교정 모델 출력부(125)와 구성 및 기능이 동일하므로 도 2를 참조하여 설명한 부분을 참조한다.
도 7에서, 번역 엔진(226)은 입력 문장에 대해 사용자에 의해 지정되는 언어로 번역을 수행하는 엔진으로, 예를 들어, RBMT(Rule Based Machine Translation) 엔진일 수 있으며, 본 발명에서는 이것으로만 한정되지는 않는다. 여기서, RBMT(Rule Based Machine Translation)는 수많은 언어 규칙과 언어 사전을 기반으로 번역하는 방식이다. 쉽게 설명해, RBMT는 언어학자가 영어 단어와 문법이 집대성된 교과서를 모두 입력한 번역기를 의미할 수 있다.
전처리부(221)는 입력부(110)를 통해 입력되는 언어 교정의 학습을 위해 사용되는 대용량 데이터 내의 비문 데이터인 다량의 소스 데이터에 대해 번역 엔진(226)을 통해 번역을 수행하고, 번역 수행시 번역 엔진(226)에서 사용되는 사전에 등록된 단어가 아닌 경우 해당 단어에 대해 특정 마커, 예를 들어 “##"를 사용하여 표시한 후, 번역이 완료되면 특정 마커로 표시된 단어들을 추출하여 정확한 단어로 일괄적으로 교정한다. 상기에서, 교정 모델의 학습의 대상이 되는 언어와 번역을 수행하는 언어의 경우, 출발어로서 교정 대상의 언어와 같은 언어를 사용한다. 번역 엔진(226)의 출발어에 대한 전처리 과정에서 인식하는 단어 유닛이 사전 기능 및 토큰 분리 모듈을 통해 미등록어를 표시할 수 있도록 하여 오류률이 높은 미등록어에 대한 교정이 가능하도록 한다.
선택적으로, 전처리부(221)는 특정 마커로 표시된 단어들을 추출한 후 빈도수를 파악하여 빈도수대로 정렬하고, 정렬된 단어들에 대해 정확한 단어로 교정한 후 일괄적으로 적용함으로써 다량의 소스 데이터에 대한 번역 엔진 기반의 선교정을 수행할 수 있다.
이와 같이, 교정 모델 학습 전에 교정 학습에 사용될 다량의 소스 데이터들에 대해 선교정을 수행하여 보다 정확한 소스 데이터가 실제 교정 모델 학습에서 사용될 수 있도록 함으로써 보다 정확한 교정 모델 학습이 수행될 수 있고, 이로 인해 언어 교정의 효율성이 향상될 수 있다.
이하, 본 발명의 다른 실시예에 따른 교정 모델 학습 문장의 선교정 방법에 대해 설명한다.
도 8은 본 발명의 다른 실시예에 따른 교정 모델 학습 문장의 선교정 방법의 흐름도이다.
도 8을 참조하면, 먼저 입력부(110)를 통해 언어 교정의 학습을 위해 사용되는 대용량 데이터 내의 비문 데이터인 다량의 소스 데이터가 입력되면(S300), 다량의 소스 데이터 내의 다량의 소스 문장에 대해 RBMT 엔진을 사용하여 번역을 수행한다(S310).
번역 중에 단어가 사전에 등록된 단어인지가 판단되고(S320), 만약 사전에 등록된 단어가 아닌 경우에는 "##"와 같은 마커로 해당 단어의 앞에 미등록 단어로 표시한다(S330).
도 9에 도시된 예를 참조하면, 영어 문장의 교정 모델 학습을 위해 “Sorry I don't anderstand."의 소스 문장이 입력되고(1), 이러한 소스 문장에 대해 한국어로의 RBMT 번역이 수행되는 중에, "anderstand"가 사전에 등록되지 않은 단어로 판단되어 이러한 미등록 단어 "anderstand" 앞에 마커 "##"가 표시되는 것을 알 수 있다(2).
이와 같이, 다량의 소스 문장에 대해 RBMT 번역이 수행되어 사전에 등록되지 않은 단어들에 대해 마커가 표시되면서 번역이 완료되면(S340), 마커가 표시된 단어를 추출하고(S350), 추출된 단어들의 빈도수를 파악한 후(S360), 파악된 빈도수 기반으로 단어들을 정렬한다(S370). 도 9에 도시된 예를 참조하면, 마커 “##"로 표시된 단어들을 추출하고(3), 추출된 단어들의 빈도수를 파악하여 빈도수 기반으로 정렬한다(4). 예를 들어, 내림차순의 빈도수 기반으로 정렬될 수 있다.
그 후, 빈도수 기반으로 정렬된 단어들에 대해 정확한 단어들을 사용하여 다량의 소스 문장에 대해 일괄적으로 교정을 수행(S380)함으로써 교정 모델 학습에 사용될 다량의 소스 문장에서 사전에 등록되지 않은 단어들에 대해 정확한 단어로의 선교정이 이루어질 수 있다.
도 9에 도시된 예를 다시 참조하면, 최대 빈도수의 단어 순으로 “studing", "messaged", "Pratice" 등이 정렬되어 있고, 이들 단어에 대해 정확한 단어인 "studying", "sent a message", "practice" 등으로 일괄 교정이 수행될 수 있다(5).
한편, 고유 명사와 같이 번역이나 교정시 그 의미가 원문의 의미와 다르게 적용되거나 또는 첫 문자를 대문자로 사용하여야 하는 등에 대해서 미리 정의된 형태의 교정 정보를 변수 형태로 저장하고 이를 런타임에서 처리할 수 있도록 하는 사용자 사전의 사용이 가능하다.
이하, 사용자 사전을 만들어 사용자가 필요한 값(단어)를 등록하고, 설정된 값으로 결과물이 도출되도록 하는 내용에 대해 설명한다.
도 10은 본 발명의 다른 실시예에 따른 언어 교정 시스템(300)의 개략적인 구성도이다.
도 10에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 언어 교정 시스템(300)은 입력부(310), 교정 모델 학습부(320), 교정 모델 저장부(330), 언어 교정부(340), 출력부(350) 및 사용자 사전(360)을 포함한다. 여기서, 입력부(310), 교정 모델 저장부(330) 및 출력부(350)는 도 1을 참조하여 설명한 입력부(110), 교정 모델 저장부(130) 및 출력부(150)와 동일하므로 이에 대한 설명은 생략하고, 그 구성이 상이한 교정 모델 학습부(320), 언어 교정부(340) 및 사용자 사전(360)에 대해서만 설명한다.
먼저, 사용자 사전(360)은 사용자가 특정 단어에 대해 미리 정의한 값(단어)을 저장하고 있다. 예를 들어, 고유 명사, “labor day” - “Labor DAY”, “memorial day” - “Memorial Day”, “african amerian history month” - “African Amerian History Month” 등과 같이, 원래의 의미와는 달라 언어 교정시 의도적으로 잘 안될 수 있는 단어(들)에 대해 사용자가 사용자 사전을 생성하여 사용할 수 있다. 이하에서, “단어”는 설명의 편의를 위해 “단어” 또는 “단어들”을 의미하는 것으로 가정한다.
따라서, 본 발명의 다른 실시예에서는 일부 단어에 대해 사용자에 의해 미리 사용자 사전(360)이 생성되어 있는 것으로 가정하여 설명한다.
교정 모델 학습부(320)는 입력부(310)를 통해 입력되는 데이터 중에서 언어 교정의 학습을 위해 사용되는 데이터, 즉 비문 데이터와 정문 데이터의 쌍으로 구성된 대량의 학습 데이터를 사용하여 언어 교정을 위한 기계학습을 수행하여 언어 교정용 학습 모델인 교정 모델을 생성한다.
특히, 본 발명의 다른 실시예에 따른 교정 모델 학습부(320)는 비문 데이터와 정문 데이터의 쌍으로 구성된 대량의 학습 데이터에서 사용자 사전(360)에 등록되어 있는 단어를 찾아서 사용자 사전 마커, 예를 들어 “UD_NOUN”으로 대체한 후, 기계학습을 수행하여 교정 모델을 생성한다. 여기서, 사용자 사전 마커 “UD_NOUN”은 그 전후에 사용자 사전 마커임을 인식할 수 있도록 다양한 형태의 특수 기호, 예를 들어 “<<”, “>>, “_” 등이 더 추가될 수 있다. 이러한 기계학습을 통해 사용자 사전 마커의 위치가 학습되어, 구체적으로는 문맥 정보가 학습될 수 있다. 이 때, 하나의 학습 데이터, 즉 한 문장 내에 포함된 서로 다른 여러 개의 단어가 사용자 사전(360)에 등록되어 있는 경우, 서로 구별이 되는 사용자 사전 마커를 각각 사용하여 대체한 후 사용자 사전 마커의 위치가 다르게 기계학습을 수행할 수 있다. 예를 들면, 한 문장 내에 3개의 서로 다른 단어가 포함되어 있고, 이 단어들이 사용자 사전(360)에 등록되어 있으면, 이 단어들을 각각 “UD_NOUN#1”, “UD_NOUN#2”, “UD_NOUN#3”를 사용하여 대체할 수 있다.
다음, 언어 교정부(340)는 입력부(310)를 통해 입력되는 대용량의 언어 교정 데이터, 즉 맞춤법 오류나 문법 오류의 교정 대상인 교정 대상 데이터에 대해 교정 모델 저장부(330)에 저장된 교정 모델을 사용하여 교정 대상 데이터에 대한 맞춤법/문법 교정을 수행하고, 교정이 완료된 교정 데이터를 출력부(350)로 출력한다.
특히, 본 발명의 다른 실시예에 따른 언어 교정부(340)는 교정 대상 데이터내에 사용자 사전에 등록된 단어가 있는 경우, 이들을 사용자 사전 마커로 대체한 후 교정 모델을 사용하여 맞춤법/문법 교정을 수행하고, 그 후의 결과에 포함되어 있는 사용자 사전 마커에 해당하는 단어에 대해 사용자 사전에 등록되어 있는 결과 값(단어)으로 대체함으로써 언어 교정을 완료할 수 있다. 이 때, 하나의 교정 대상 데이터, 즉 한 문장 내에 포함된 서로 다른 여러 개의 단어가 사용자 사전(360)에 등록되어 있는 경우, 서로 구별이 되는 사용자 사전 마커를 각각 사용하여 대체한 후 맞춤법/문법 교정을 수행하고, 그 후에 서로 다른 사용자 사전 마커에 대응되는 단어들을 사용자 사전(360)에서 찾아서 대체하여 교정을 완료할 수 있다. 예를 들어, 하나의 교정 대상 문장 내에 3개의 서로 다른 단어가 포함되어 있고, 이 단어들이 사용자 사전(360)에 등록되어 있으면, 이 단어들을 각각 “UD_NOUN#1”, “UD_NOUN#2”, “UD_NOUN#3”로 대체한 후, 교정을 수행하고, 교정이 완료된 후에, “UD_NOUN#1”, “UD_NOUN#2”, “UD_NOUN#3”에 대응되는 단어들에 대해 사용자 사전(360)에 등록되어 있는 단어들로 대체함으로써 교정이 완료될 수 있다.
상기한 바와 같은 본 발명의 다른 실시예에 따른 교정 모델 학습부(320) 및 언어 교정부(340)에 대해 구체적으로 설명한다.
도 11은 도 10에 도시된 교정 모델 학습부(320)의 구체적인 구성도이다.
도 11에 도시된 바와 같이, 교정 모델 학습부(320)는 전처리부(321), 학습 가공부(322), 교정 학습부(323), 후처리부(324) 및 교정 모델 출력부(325)를 포함한다. 여기서, 학습 가공부(322), 교정 학습부(323), 후처리부(324) 및 교정 모델 출력부(325)는 도 2를 참조하여 설명한 학습 가공부(122), 교정 학습부(123), 후처리부(124) 및 교정 모델 출력부(125)와 동일하므로 여기에서는 구체적인 설명을 생략하고, 구성이 상이한 전처리부(321)에 대해서만 설명한다.
전처리부(321)는 도 2를 참조하여 설명한 전처리부(121)의 기능을 수행함은 물론, 이에 더하여, 입력부(110)를 통해 언어 교정의 학습을 위해 사용되는 데이터, 즉 비문 데이터(소스 문장을 뜻함)와 정문 데이터(타겟 문장을 뜻함)의 쌍으로 구성된 학습 데이터가 입력되면, 사용자 사전(360)에 등록되어 있는 단어가 학습 데이터에 포함되어 있는지를 확인하고, 만약 포함되어 있으면 포함된 단어를 사용자 사전 마커, 예를 들어 “<<UD_NOUN>>”으로 대체한다.
따라서, 전처리부(321) 이후의 학습 가공부(322), 교정 학습부(323), 후처리부(324) 및 교정 모델 출력부(325)를 통해 기계학습이 수행되어 “<<UD_NOUN>>”으로 대체되어 사용자 사전 마커의 위치가 학습될 수 있다.
도 12는 도 10에 도시된 언어 교정부(340)의 구체적인 구성도이다.
도 12에 도시된 바와 같이, 언어 교정부(340)는 전처리부(341), 오류 문장 검출부(342), 맞춤법 교정부(343), 문법 수행부(344), 언어 모델링부(345) 및 후처리부(346)를 포함한다. 여기서, 오류 문장 검출부(342), 맞춤법 교정부(343), 문법 교정부(344) 및 언어 모델링부(346)는 도 3을 참조하여 설명한 오류 문장 검출부(142), 맞춤법 교정부(143), 문법 교정부(144) 및 언어 모델링부(145)와 동일하므로 여기에서는 구체적인 설명을 생략하고, 구성이 상이한 전처리부(341) 및 후처리부(346)에 대해서만 설명한다.
전처리부(341)는 입력부(310)를 통해 입력되는 언어 교정을 위한 교정 대상 데이터 내에 사용자 사전(360)에 등록되어 있는 단어가 포함되어 있는지를 확인하고, 만약 포함되어 있으면 포함된 단어를 사용자 사전 마커, 예를 들어 “<<UD_NOUN>>”으로 대체한다.
후처리부(346)는 언어 모델링부(345)에 의해 언어 모델링이 수행된 교정된 데이터 내에 사용자 사전 마커, 예를 들어 “<<UD_NOUN>>”가 포함되어 있으면, 사용자 사전 마커에 대응되는 소스 문장, 즉 비문 데이터에서의 단어에 대해 사용자 사전(360)에 등록되어 있는 값(단어)으로 대체한다.
이와 같이, 사용자 사전(360)에 미리 등록되어 있는 단어들에 대해서는 전처리부(341)에서 미리 사용자 사전 마커로 대체되어 있으므로, 사용자 사전 마커에 대한 문맥 정보가 학습되어 있는 교정 모델을 사용하여 언어 교정시, 즉 맞춤법 교정 및 문법 교정시 사용자 사전 마커에 대해서는 어떠한 교정 없이 후처리부(346)로 입력될 수 있으므로, 후처리부(346)에서 사용자 사전(360)을 사용하여 해당 단어들에 대한 대체가 가능해진다.
따라서, 사용자 사전(360)에 등록되어 있는 단어가 포함되어 있는 소스 문장에 대해 사용자 사전(360)을 기반으로 하는 교정이 성공적으로 수행될 수 있다.
이하, 도면을 참조하여 본 발명의 다른 실시예에 따른 언어 교정 모델 학습 방법에 대해 설명한다. 이러한 언어 교정 모델 학습 방법은 전술한 도 10 내지 도 12를 참조하여 설명한 언어 교정 시스템(300)에 의해 수행될 수 있다.
도 13은 본 발명의 다른 실시예에 따른 언어 교정 모델 학습 방법의 흐름도이다. 여기서, 도 13에 도시된 본 발명의 다른 실시예에 따른 언어 교정 모델 학습 방법은 도 10 내지 도 12를 참조하여 설명한 본 발명의 다른 실시예에 따른 언어 교정 시스템(300)에 의해 수행될 수 있다.
설명 전에, 사용자가 특정 단어에 대해 미리 정의한 값(단어)을 저장하고 있는 사용자 사전(360)을 미리 구성하여 놓은 것으로 가정한다.
도 13을 참조하면, 먼저, 언어 교정의 학습을 위해 사용되는 데이터, 즉 비문 데이터(소스 문장을 뜻함)와 정문 데이터(타겟 문장을 뜻함)의 쌍으로 구성된 학습 데이터가 입력되면(S400), 소스 문장 및 타겟 문장 내에 사용자 사전(360)에 등록되어 있는 단어가 포함되어 있는지가 판단된다(S410).
만약 소스 문장 및 타겟 문장 내에 사용자 사전(360)에 등록되어 있는 단어가 포함되어 있는 것으로 판단되면, 사용자 사전(360)에 등록되어 있는 단어와 일치하는 단어를 사용자 사전 마커로 대체한다(S420). 예를 들어, 사용자 사전(360) 내에 <“memorial day” - “Memorial Day”>가 등록되어 있고, 언어 교정의 학습을 위해 입력되는 소스 문장이 “memorial day is observed on the last Monday”인 경우, 소스 문장 내에 있는 단어 “memorial day”가 사용자 사전(360)에 등록되어 있으므로, 이단어가 사용자 사전 마커, 예를 들어 “<<UD_NOUN>>”로 대체되어, 소스 문장이 “<<UD_NOUN>> is observed on the last Monday”와 같이 변경된다.
그러나, 소스 문장 및 타겟 문장 내에 사용자 사전(360)에 등록되어 있는 단어가 포함되어 있지 않으면 소스 문장 및 타겟 문장은 변경되지 않고 입력된 그대로 사용될 수 있다.
그 후, 변경되었거나 또는 변경되지 않은 소스 문장과 타겟 문장인 언어 교정용 학습 데이터에 대해 기계학습을 수행하여 교정 모델을 생성한다(S430). 이러한 기계학습을 통해 사용자 사전 마커의 위치가 학습될 수 있다. 또한, 기계학습을 수행하는 구체적인 내용에 대해서는 도 1 내지 도 9를 참조하여 설명한 실시예를 참조한다.
*다음, 본 발명의 다른 실시예에 따른 언어 교정 방법에 대해 설명한다. 이러한 언어 교정 방법은 전술한 도 10 내지 도 12를 참조하여 설명한 언어 교정 시스템(300)에 의해 수행될 수 있다.
도 14는 본 발명의 다른 실시예에 따른 언어 교정 방법의 흐름도이다. 여기서, 도 14에 도시된 본 발명의 다른 실시예에 따른 언어 교정 모델 학습 방법은 도 10 내지 도 12를 참조하여 설명한 본 발명의 다른 실시예에 따른 언어 교정 시스템(300)에 의해 수행될 수 있다.
설명 전에, 사용자가 특정 단어에 대해 미리 정의한 값(단어)을 저장하고 있는 사용자 사전(360)을 미리 구성하여 놓은 것으로 가정한다.
언어 교정 데이터, 즉 맞춤법 오류나 문법 오류의 교정 대상인 교정 대상 데이터가 입력되면(S500), 교정 대상 데이터 내에 사용자 사전(360)에 등록되어 있는 단어가 포함되어 있는지를 확인한다(S510).
만약 교정 대상 데이터 내에 사용자 사전(360)에 등록되어 있는 단어가 포함되어 있는 것으로 확인되면, 해당 단어를 사용자 사전 마커, 예를 들어 “<<UD_NOUN>>”으로 대체한다(S520). 전술한 도 13에서의 예를 참조하면, 사용자 사전(360) 내에 <“memorial day” - “Memorial Day”>가 등록되어 있고, “memorial day is observed on the last Monday”인 교정 대상 문장이 입력되면, 해당 문장 내에 “memorial day”가 사용자 사전(360)에 등록되어 있는 단어이므로 해당 단어가 사용자 사전 마커, 즉 “<<UD_NOUN>>”로 대체되어, 결과적으로 교정 대상 문장은 “<<UD_NOUN>> is observed on the last Monday”이 된다.
그 후, 도 10 내지 도 13에서 설명한 바와 같은 언어 교정 학습을 통해 생성된 교정 모델을 사용하여 교정 대상 데이터에 대한 맞춤법/문법 교정을 수행하고(S530), 교정된 결과에 대해 언어 모델링을 수행한다(S540).
그 후, 언어 모델링 결과의 문장 내에 사용자 사전 마커, 즉 “<<UD_NOUN>>”가 있는지를 확인하고(S550), 만약 사용자 사전 마커가 있으면 사용자 사전 마커에 대응되는 소스 문장의 단어에 대해 사용자 사전(360)에 등록되어 있는 단어로 대체한다(S560). 상기 예를 참조하면, 언어 모델링 결과 출력되는 문장 “<<UD_NOUN>> is observed on the last Monday” 내에 사용자 사전 마커 “<<UD_NOUN>>”가 포함되어 있으므로, 사용자 사전 마커 “<<UD_NOUN>>”에 해당하는 단어, 즉 “memorial day”에 대해 사용자 사전(360)에 등록되어 있는 단어, 즉 “Memorial Day”가 대체되어, 최종적으로 교정 후의 문장인 “Memorial Day is observed on the last Monday”가 완성된다.
그 후, 교정이 완료된 교정 문장을 출력한다(S570).
한편, 상기 단계(S550)에서 언어 모델링 결과 출력되는 문장 내에 사용자 사전 마커가 포함되어 있지 않으면 바로 교정 문장을 출력하는 단계(S570)를 수행한다.
이와 같이, 본 발명의 실시예에 따르면, 사용자에 의해 미리 정의된 형태의 교정 정보를 변수 형태로 저장하고 이를 런타임에서 처리함으로써, 교정 모델에 별도로 추가하거나 변경하지 않고도 쉽게 언어 교정이 수행될 수 있다.
따라서, 교정이 어렵거나 의도적으로 잘 안되는 부분에 대해서도 사용자 사전에 등록하여 처리함으로써 언어 교정의 효율을 향상시킬 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
Claims (22)
- 기계학습 기반의 언어 교정 시스템으로서,비문(非文) 데이터와 상기 비문 데이터에 각각 대응되는 오류가 없는 정문(正文) 데이터로 구성된 복수의 데이터 집합을 기계학습하여 교정 대상의 비문 데이터에 대응되는 정문 데이터를 검출하기 위한 교정 모델을 생성하는 교정 모델 학습부; 및교정 대상의 문장에 대해 상기 교정 모델 학습부에 의해 생성된 교정 모델을 사용하여 대응되는 교정 문장을 생성하고, 생성되는 교정 문장과 함께 교정된 부분을 표시하여 출력하는 언어 교정부를 포함하는 언어 교정 시스템.
- 제1항에 있어서,상기 교정 모델 학습부는,상기 비문 데이터에 대해 언어 감지를 수행하여 단일어 문장으로의 필터링 작업, 데이터의 정제 및 정규화 작업을 수행하는 전처리부;상기 전처리부에 필터링된 복수의 데이터 집합에 대해, 지도 학습 데이터 레이블링 작업, 기계학습 데이터 확장 작업 및 기계학습용 병렬 데이터 구축 작업을 수행하는 학습 가공부;상기 학습 가공부에 의해 가공된 복수의 데이터 집합에 대해 지도 학습 기반의 기계학습을 수행하여 대응되는 상기 교정 모델을 생성하는 교정 학습부; 및상기 학습 가공부에서의 지도 학습 데이터 레이블링 작업시 추가된 태그 부가 정보를 통해 오류 및 오류 카테고리 정보를 출력한 후 해당 태그 부가 정보를 제거하는 제1 후처리부를 포함하는, 언어 교정 시스템.
- 제2항에 있어서,상기 학습 가공부에서의 기계학습 데이터 확장 작업은,상기 비문 데이터에 포함된 문자를 타이핑하기 위한 키보드의 정위치를 기준으로 주변의 오타 문자로 형성되는 글자를 사용한 데이터 확장 작업을 포함하는, 언어 교정 시스템.
- 제2항에 있어서,상기 학습 가공부에서의 기계학습용 병렬 데이터 구축 작업은,교정이 불필요한 비문 문장과 이에 대응되는 정문 문장을 쌍으로 하는 병렬 코퍼스로 병렬 데이터를 구축하는 작업을 포함하는, 언어 교정 시스템.
- 제2항에 있어서,상기 교정 학습부는 상기 지도 학습 기반의 기계학습시 학습 결과에 대한 오류 출현 확률값을 비문 데이터와 정문 데이터와의 어텐션(attention) 가중치 정보로서 제공하는,언어 교정 시스템.
- 제2항에 있어서,입력 문장에 대해 미리 설정된 언어로 번역을 수행하는 번역 엔진을 더 포함하고,상기 전처리부는,상기 복수의 데이터 집합 내의 다량의 비문 데이터에 대해 상기 번역 엔진을 통한 번역을 수행하면서 상기 번역 엔진이 사용하는 사전에 등록되지 않은 단어에 대해 미리 설정된 마커를 사용하여 표시하고,상기 다량의 비문 데이터에 대한 번역 완료 후, 상기 미리 설정된 마커에 의해 표시된 단어들을 추출하여 오류가 없는 단어로 일괄적으로 교정하는 선(先)교정을 수행하는,언어 교정 시스템.
- 제6항에 있어서,상기 전처리부는,상기 미리 설정된 마커에 의해 표시된 단어들을 추출하면서 빈도수를 파악하고, 파악된 빈도수 기반으로 상기 미리 설정된 마커에 의해 표시된 단어들을 정렬한 후 오류가 없는 단어로 일괄적으로 교정하는,언어 교정 시스템.
- 제1항에 있어서,상기 언어 교정부는,교정 대상의 문장에 대해, 문장 단위의 문장 분리를 수행하고, 분리된 문장을 토큰화하는 전처리를 수행하는 전처리부;상기 전처리부에 의해 전처리가 수행된 교정 대상의 문장에 대해 바이너리 분류기를 사용하여 오류 문장과 비오류 문장을 구분하는 오류 문장 검출부;상기 오류 문장 검출부에 의해 오류 문장으로 구분되는 경우, 상기 교정 대상의 문장에 대해 철자 오류 교정을 수행하는 맞춤법 교정부;상기 맞춤법 교정부에 의해 철자 오류 교정된 문장에 대해 상기 교정 모델을 사용하여 문법 교정을 위한 언어 교정을 수행하여 교정 문장을 생성하는 문법 교정부; 및상기 문법 교정부에 의한 언어 교정시 교정된 부분을 표시하는 후처리를 수행하여 상기 교정 문장과 함께 출력하는 후처리부를 포함하는, 언어 교정 시스템.
- 제8항에 있어서,상기 오류 문장 검출부는 상기 교정 대상의 문장 구분시 파악되는 신뢰도 정보에 따라 상기 오류 문장과 상기 비오류 문장을 구분하는,언어 교정 시스템.
- 제8항에 있어서,상기 맞춤법 교정부는 철자 오류 교정시 철자 오류 출현 확률값을 신뢰도 정보로서 제공하고,상기 문법 교정부는 상기 철자 오류 교정된 문장에 대한 언어 교정의 어텐션 가중치를 통한 확률값을 신뢰도 정보로서 제공하며,상기 후처리부는 상기 맞춤법 교정부에서 제공되는 신뢰도 정보와 상기 문법 교정부에서 제공되는 신뢰도 정보를 조합하여 상기 교정 대상의 문장에 대한 언어 교정의 최종 신뢰도 정보로서 제공하는,언어 교정 시스템.
- 제10항에 있어서,상기 문법 교정부와 상기 후처리부 사이에,상기 문법 교정부에서 생성되는 교정 문장에 대해 미리 설정된 추천 문장을 사용하여 언어 모델링을 수행하는 언어 모델링부를 더 포함하고,상기 언어 모델링부는 언어 모델링시 언어 모델의 퍼플릭시티(perplexity)와 상호 정보(Mutual Information, MI) 값의 조합으로 상기 교정 문장의 신뢰도 정보를 제공하며,상기 후처리부는 상기 최종 신뢰도 제공시 상기 언어 모델링부에서 제공되는 신뢰도 정보도 함께 조합하는,언어 교정 시스템.
- 제1항에 있어서,사용자에 의해 등록된 소스 단어와 이에 대응되는 타겟 단어를 포함하는 사용자 사전을 더 포함하고 - 상기 소스 단어와 타겟 단어는 각각 적어도 하나의 단어임 -,상기 교정 모델 학습부는 상기 복수의 데이터 집합 내에 상기 사용자 사전에 등록된 단어가 포함되어 있는 경우 해당 단어에 대해 미리 설정된 사용자 사전 마커로 대체하여 기계학습을 수행하고,상기 언어 교정부는 교정 대상의 문장에 상기 사용자 사전에 포함된 단어가 있는 경우 상기 사용자 사전 마커로 대체하여 상기 교정 대상의 문장에 대한 언어 교정을 수행하고, 교정된 문장 내에 상기 사용자 사전 마커가 포함되어 있는 경우 상기 사용자 사전 마커를 상기 교정 대상의 문장에서 대응되는 단어에 대응하여 상기 사용자 사전에 등록되어 있는 단어로 대체하는,언어 교정 시스템.
- 언어 교정 시스템이 기계 학습 기반으로 언어 교정 모델을 학습하는 방법으로서,비문(非文) 데이터와 상기 비문 데이터에 각각 대응되는 오류가 없는 정문(正文) 데이터로 구성된 복수의 데이터 집합에 대해, 지도 학습 데이터 레이블링 작업, 기계학습 데이터 확장 작업 및 기계학습용 병렬 데이터 구축 작업을 포함하는 학습 가공을 수행하는 단계; 및상기 학습 가공이 수행된 복수의 데이터 집합에 대해 지도 학습 기반의 기계학습을 수행하여 대응되는 교정 모델을 생성하는 단계를 포함하는 언어 교정 모델 학습 방법.
- 제13항에 있어서,상기 기계학습 데이터 확장 작업은,상기 비문 데이터에 포함된 문자를 타이핑하기 위한 키보드의 정위치를 기준으로 주변의 오타 문자로 형성되는 글자를 사용한 데이터 확장 작업을 포함하고,상기 기계학습용 병렬 데이터 구축 작업은,교정이 불필요한 비문 문장과 이에 대응되는 정문 문장을 쌍으로 하는 병렬 코퍼스로 병렬 데이터를 구축하는 작업을 포함하는, 언어 교정 모델 학습 방법.
- 제13항에 있어서,상기 학습 가공을 수행하는 단계 전에,상기 복수의 데이터 집합에 대해 언어 감지를 수행하여 단일어 문장으로의 필터링 작업, 데이터의 정제 및 정규화 작업을 포함하는 전처리를 수행하는 단계를 더 포함하고,상기 전처리를 수행하는 단계는,상기 복수의 데이터 집합 내의 다량의 비문 데이터에 대해 번역 엔진을 통한 번역을 수행하는 단계;상기 번역 엔진이 사용하는 사전에 등록되지 않은 단어에 대해 미리 설정된 마커를 사용하여 표시하는 단계;상기 다량의 비문 데이터에 대한 번역 완료 후, 상기 미리 설정된 마커에 의해 표시된 단어들을 추출하는 단계; 및추출된 단어들에 대해 오류가 없는 단어로 일괄적으로 교정하는 단계를 포함하는, 언어 교정 모델 학습 방법.
- 제15항에 있어서,상기 일괄적으로 교정하는 단계는,상기 미리 설정된 마커에 의해 표시된 단어들을 추출하는 단계;추출된 단어들의 빈도수를 파악하는 단계;파악된 빈도수 기반으로 상기 미리 설정된 마커에 의해 표시된 단어들을 정렬하는 단계; 및정렬된 단어들에 대해 오류가 없는 단어로 일괄적으로 교정하는 단계를 포함하는, 언어 교정 모델 학습 방법.
- 제13항에 있어서,상기 언어 교정 시스템이,사용자에 의해 등록된 소스 단어와 이에 대응되는 타겟 단어를 포함하는 사용자 사전을 더 포함하고 - 상기 소스 단어와 타겟 단어는 각각 적어도 하나의 단어임 -,상기 교정 모델을 생성하는 단계는,상기 복수의 데이터 집합 내에 상기 사용자 사전에 등록된 단어가 포함되어 있는 경우 해당 단어에 대해 미리 설정된 사용자 사전 마커로 대체하여 기계학습을 수행하여 상기 교정 모델을 생성하는,언어 교정 모델 학습 방법.
- 언어 교정 시스템이 기계 학습 기반으로 언어 교정하는 방법으로서,언어 교정 대상의 문장에 대해 철자 오류 교정을 수행하는 단계; 및철자 오류 교정된 문장에 대해 교정 모델을 사용하여 문법 교정을 수행하여 교정 문장을 생성하는 단계를 포함하고,상기 교정 모델은 비문(非文) 데이터와 상기 비문 데이터에 각각 대응되는 오류가 없는 정문(正文) 데이터로 구성된 복수의 데이터 집합에 대해 지도 학습 기반의 기계학습을 수행하여 생성된 것인,언어 교정 방법.
- 제18항에 있어서,상기 철자 오류 교정을 수행하는 단계 전에,상기 언어 교정 대상의 문장에 대해, 문장 단위의 문장 분리를 수행하고, 분리된 문장을 토큰화하는 전처리를 수행하는 단계; 및상기 전처리가 수행된 언어 교정 대상의 문장에 대해 바이너리 분류기를 사용하여 오류 문장과 비오류 문장을 구분하는 단계를 더 포함하고,상기 오류 문장과 비오류 문장을 구분하는 단계에서, 상기 언어 교정 대상의 문장이 오류 문장으로 구분되는 경우 상기 철자 오류 교정을 수행하는 단계가 수행되는,언어 교정 방법.
- 제19항에 있어서,상기 오류 문장과 비오류 문장을 구분하는 단계에서,상기 언어 교정 대상의 문장 구분시 파악되는 신뢰도 정보에 따라 상기 오류 문장과 상기 비오류 문장을 구분하는,언어 교정 방법.
- 제18항에 있어서,상기 교정 문장을 생성하는 단계 후에,상기 교정 문장에 대해 미리 설정된 추천 문장을 사용하여 언어 모델링을 수행하는 단계; 및상기 교정 문장 생성시 교정된 부분을 표시하는 후처리를 수행하여 상기 교정 문장과 함께 출력하는 단계를 더 포함하는, 언어 교정 방법.
- 제18항에 있어서,상기 언어 교정 시스템이,사용자에 의해 등록된 소스 단어와 이에 대응되는 타겟 단어를 포함하는 사용자 사전을 더 포함하고 - 상기 소스 단어와 타겟 단어는 각각 적어도 하나의 단어임 -,상기 철자 오류 교정을 수행하는 단계 전에,상기 언어 교정 대상의 문장 내에 상기 사용자 사전에 포함되어 있는 단어가 포함되어 있는지를 판단하는 단계; 및상기 언어 교정 대상의 문장 내에 상기 사용자 사전에 포함되어 있는 단어가 포함되어 있는 경우, 상기 사용자 사전과 상기 언어 교정 대상의 문장에 공통적으로 포함되어 있는 단어를 미리 설정된 사용자 사전 마커로 대체하는 단계를 더 포함하고,상기 교정 문장을 생성하는 단계 후에,생성된 교정 문장 내에 상기 사용자 사전 마커가 포함되어 있는지를 확인하는 단계;상기 생성된 교정 문장 내에 상기 사용자 사전 마커가 포함되어 있는 경우, 포함된 사용자 사전 마커의 위치에 대응되는 상기 언어 교정 대상의 문장 내 단어에 대응되는 상기 사용자 사전의 단어로 대체하여 최종의 교정 문장을 생성하는 단계를 더 포함하는, 언어 교정 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG11202106989PA SG11202106989PA (en) | 2018-12-31 | 2019-12-24 | Language correction system, method therefor, and language correction model learning method of system |
US17/311,870 US20220019737A1 (en) | 2018-12-31 | 2019-12-24 | Language correction system, method therefor, and language correction model learning method of system |
CN201980078320.XA CN113168498A (zh) | 2018-12-31 | 2019-12-24 | 语言校正***及其方法以及***中的语言校正模型学习方法 |
US18/418,137 US20240160839A1 (en) | 2018-12-31 | 2024-01-19 | Language correction system, method therefor, and language correction model learning method of system |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180174248 | 2018-12-31 | ||
KR10-2018-0174248 | 2018-12-31 | ||
KR1020190030688A KR102199835B1 (ko) | 2018-12-31 | 2019-03-18 | 언어 교정 시스템 및 그 방법과, 그 시스템에서의 언어 교정 모델 학습 방법 |
KR10-2019-0030688 | 2019-03-18 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/311,870 A-371-Of-International US20220019737A1 (en) | 2018-12-31 | 2019-12-24 | Language correction system, method therefor, and language correction model learning method of system |
US18/418,137 Continuation-In-Part US20240160839A1 (en) | 2018-12-31 | 2024-01-19 | Language correction system, method therefor, and language correction model learning method of system |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020141787A1 true WO2020141787A1 (ko) | 2020-07-09 |
Family
ID=71406629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2019/018384 WO2020141787A1 (ko) | 2018-12-31 | 2019-12-24 | 언어 교정 시스템 및 그 방법과, 그 시스템에서의 언어 교정 모델 학습 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220019737A1 (ko) |
WO (1) | WO2020141787A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836921A (zh) * | 2021-11-24 | 2021-12-24 | 北京嘉和海森健康科技有限公司 | 纸质病例数据电子化方法、装置及电子设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220405490A1 (en) * | 2021-06-16 | 2022-12-22 | Google Llc | Multilingual Grammatical Error Correction |
US20220004701A1 (en) * | 2021-06-22 | 2022-01-06 | Samsung Electronics Co., Ltd. | Electronic device and method for converting sentence based on a newly coined word |
CN114818747A (zh) * | 2022-04-21 | 2022-07-29 | 语联网(武汉)信息技术有限公司 | 语音序列的计算机辅助翻译方法、***与可视化终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956739A (en) * | 1996-06-25 | 1999-09-21 | Mitsubishi Electric Information Technology Center America, Inc. | System for text correction adaptive to the text being corrected |
JP2014194774A (ja) * | 2013-03-28 | 2014-10-09 | Estsoft Corp | 誤打校正システム及び誤打校正方法 |
KR20160015933A (ko) * | 2014-08-01 | 2016-02-15 | 고려대학교 산학협력단 | 소셜 텍스트를 위한 철자 오류 교정 방법 및 장치 |
KR20170014262A (ko) * | 2015-07-29 | 2017-02-08 | 서재택 | 외국어 문장을 올바른 문장으로 보정하는 작문 서비스 방법 및 장치 |
KR101813683B1 (ko) * | 2016-08-17 | 2017-12-29 | 창원대학교 산학협력단 | 커널 rdr을 이용한 태깅 말뭉치 오류 자동수정방법 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5649222A (en) * | 1995-05-08 | 1997-07-15 | Microsoft Corporation | Method for background spell checking a word processing document |
US6047300A (en) * | 1997-05-15 | 2000-04-04 | Microsoft Corporation | System and method for automatically correcting a misspelled word |
US6611802B2 (en) * | 1999-06-11 | 2003-08-26 | International Business Machines Corporation | Method and system for proofreading and correcting dictated text |
WO2002001401A1 (en) * | 2000-06-26 | 2002-01-03 | Onerealm Inc. | Method and apparatus for normalizing and converting structured content |
US7865358B2 (en) * | 2000-06-26 | 2011-01-04 | Oracle International Corporation | Multi-user functionality for converting data from a first form to a second form |
US20080027830A1 (en) * | 2003-11-13 | 2008-01-31 | Eplus Inc. | System and method for creation and maintenance of a rich content or content-centric electronic catalog |
US8321786B2 (en) * | 2004-06-17 | 2012-11-27 | Apple Inc. | Routine and interface for correcting electronic text |
US8170868B2 (en) * | 2006-03-14 | 2012-05-01 | Microsoft Corporation | Extracting lexical features for classifying native and non-native language usage style |
US9304675B2 (en) * | 2006-09-06 | 2016-04-05 | Apple Inc. | Portable electronic device for instant messaging |
US20100275118A1 (en) * | 2008-04-22 | 2010-10-28 | Robert Iakobashvili | Method and system for user-interactive iterative spell checking |
US8489388B2 (en) * | 2008-11-10 | 2013-07-16 | Apple Inc. | Data detection |
US8321843B2 (en) * | 2009-02-09 | 2012-11-27 | Tranxition Corporation | Automatic analysis of an application's run-time settings |
US8290772B1 (en) * | 2011-10-03 | 2012-10-16 | Google Inc. | Interactive text editing |
US8881005B2 (en) * | 2012-04-20 | 2014-11-04 | King Abdulaziz City For Science And Technology | Methods and systems for large-scale statistical misspelling correction |
US9231898B2 (en) * | 2013-02-08 | 2016-01-05 | Machine Zone, Inc. | Systems and methods for multi-user multi-lingual communications |
US9183195B2 (en) * | 2013-03-15 | 2015-11-10 | Disney Enterprises, Inc. | Autocorrecting text for the purpose of matching words from an approved corpus |
US9442917B2 (en) * | 2013-07-11 | 2016-09-13 | University Of Oregon | Detecting semantic errors in text using ontology-based extraction rules |
GB201418402D0 (en) * | 2014-10-16 | 2014-12-03 | Touchtype Ltd | Text prediction integration |
US10115055B2 (en) * | 2015-05-26 | 2018-10-30 | Booking.Com B.V. | Systems methods circuits and associated computer executable code for deep learning based natural language understanding |
US20160350289A1 (en) * | 2015-06-01 | 2016-12-01 | Linkedln Corporation | Mining parallel data from user profiles |
US10002125B2 (en) * | 2015-12-28 | 2018-06-19 | Facebook, Inc. | Language model personalization |
US11727198B2 (en) * | 2016-02-01 | 2023-08-15 | Microsoft Technology Licensing, Llc | Enterprise writing assistance |
US10193833B2 (en) * | 2016-03-03 | 2019-01-29 | Oath Inc. | Electronic message composition support method and apparatus |
US20180032499A1 (en) * | 2016-07-28 | 2018-02-01 | Google Inc. | Automatically Generating Spelling Suggestions and Corrections Based on User Context |
US10180935B2 (en) * | 2016-12-30 | 2019-01-15 | Facebook, Inc. | Identifying multiple languages in a content item |
KR102013616B1 (ko) * | 2017-05-30 | 2019-08-23 | (주)우리랑코리아 | 빅데이터 기반 언어 학습 장치 및 이를 이용한 언어 학습 방법 |
US10789410B1 (en) * | 2017-06-26 | 2020-09-29 | Amazon Technologies, Inc. | Identification of source languages for terms |
US10657327B2 (en) * | 2017-08-01 | 2020-05-19 | International Business Machines Corporation | Dynamic homophone/synonym identification and replacement for natural language processing |
US10839714B2 (en) * | 2017-10-24 | 2020-11-17 | Zoundslike, LLC | System and method for language learning |
US10635863B2 (en) * | 2017-10-30 | 2020-04-28 | Sdl Inc. | Fragment recall and adaptive automated translation |
US10489507B2 (en) * | 2018-01-02 | 2019-11-26 | Facebook, Inc. | Text correction for dyslexic users on an online social network |
CN111971679A (zh) * | 2018-01-26 | 2020-11-20 | 威盖特技术美国有限合伙人公司 | 基于行业语言模型生成自然语言推荐 |
US10540446B2 (en) * | 2018-01-31 | 2020-01-21 | Jungle Disk, L.L.C. | Natural language generation using pinned text and multiple discriminators |
US11386266B2 (en) * | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
-
2019
- 2019-12-24 WO PCT/KR2019/018384 patent/WO2020141787A1/ko active Application Filing
- 2019-12-24 US US17/311,870 patent/US20220019737A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956739A (en) * | 1996-06-25 | 1999-09-21 | Mitsubishi Electric Information Technology Center America, Inc. | System for text correction adaptive to the text being corrected |
JP2014194774A (ja) * | 2013-03-28 | 2014-10-09 | Estsoft Corp | 誤打校正システム及び誤打校正方法 |
KR20160015933A (ko) * | 2014-08-01 | 2016-02-15 | 고려대학교 산학협력단 | 소셜 텍스트를 위한 철자 오류 교정 방법 및 장치 |
KR20170014262A (ko) * | 2015-07-29 | 2017-02-08 | 서재택 | 외국어 문장을 올바른 문장으로 보정하는 작문 서비스 방법 및 장치 |
KR101813683B1 (ko) * | 2016-08-17 | 2017-12-29 | 창원대학교 산학협력단 | 커널 rdr을 이용한 태깅 말뭉치 오류 자동수정방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836921A (zh) * | 2021-11-24 | 2021-12-24 | 北京嘉和海森健康科技有限公司 | 纸质病例数据电子化方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20220019737A1 (en) | 2022-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020141787A1 (ko) | 언어 교정 시스템 및 그 방법과, 그 시스템에서의 언어 교정 모델 학습 방법 | |
KR102199835B1 (ko) | 언어 교정 시스템 및 그 방법과, 그 시스템에서의 언어 교정 모델 학습 방법 | |
WO2010036013A2 (ko) | 웹 문서에서의 의견 추출 및 분석 장치 및 그 방법 | |
WO2012134180A2 (ko) | 문장에 내재한 감정 분석을 위한 감정 분류 방법 및 컨텍스트 정보를 이용한 다중 문장으로부터의 감정 분류 방법 | |
US5587902A (en) | Translating system for processing text with markup signs | |
WO2011019257A2 (ko) | 영어 학습 시스템 | |
WO2018034426A1 (ko) | 커널 rdr을 이용한 태깅 말뭉치 오류 자동수정방법 | |
WO2010050675A2 (ko) | 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법 | |
WO2021071137A1 (ko) | 외국어 문장 빈칸 추론 문제 자동 생성 방법 및 시스템 | |
GB2177525A (en) | Bilingual translation system with self intelligence | |
WO2015023035A1 (ko) | 전치사 교정 방법 및 이를 수행하는 장치 | |
KR840006527A (ko) | 구문에러 수정 방법 및 장치 | |
US5608623A (en) | Special cooccurrence processing method and apparatus | |
WO2017138752A1 (ko) | 성조 컬러표시 장치 및 방법 | |
WO2023195769A1 (ko) | 신경망 모델을 활용한 유사 특허 문헌 추출 방법 및 이를 제공하는 장치 | |
WO2022235073A1 (ko) | 독해와 작문 능력의 향상을 가이드하는 방법 및 그 장치 | |
WO2015088291A1 (ko) | 장문 번역 서비스 장치 및 방법 | |
Sodhar et al. | Exploration of Sindhi Corpus Through Statistical Analysis on the Basis of Reality | |
KS et al. | Automatic error detection and correction in malayalam | |
JP2017068435A (ja) | 文章データ処理装置、文章データ処理方法およびプログラム | |
US20240160839A1 (en) | Language correction system, method therefor, and language correction model learning method of system | |
Annamalai et al. | Algorithms for certain classes of Tamil Spelling correction | |
WO2024117317A1 (ko) | 기계학습, 자연어처리 및 패턴기반 참조 라이브러리 기반 탐색 언어학습 시스템기반 컴파일기능이 구비된 바벨분석기 | |
Asahiah et al. | Diacritic-aware yorùbá spell checker | |
WO2024106689A1 (ko) | 전자 장치 및 기계 번역 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19907377 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19907377 Country of ref document: EP Kind code of ref document: A1 |