KR102490752B1 - Deep context-based grammatical error correction using artificial neural networks - Google Patents
Deep context-based grammatical error correction using artificial neural networks Download PDFInfo
- Publication number
- KR102490752B1 KR102490752B1 KR1020207005087A KR20207005087A KR102490752B1 KR 102490752 B1 KR102490752 B1 KR 102490752B1 KR 1020207005087 A KR1020207005087 A KR 1020207005087A KR 20207005087 A KR20207005087 A KR 20207005087A KR 102490752 B1 KR102490752 B1 KR 102490752B1
- Authority
- KR
- South Korea
- Prior art keywords
- word
- target word
- neural network
- target
- sentence
- 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/237—Lexical tools
-
- 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/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- 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
Abstract
문법 오류 검출을 위한 방법 및 시스템이 본 명세서에 개시된다. 일례에서, 문장이 수신된다. 문장 내의 적어도 하나의 목표 단어(target word)는 하나 이상의 문법 오류 유형에 적어도 부분적으로 기초하여 식별된다. 하나 이상의 목표 단어의 각각은 하나 이상의 문법 오류 유형의 적어도 하나에 대응한다. 하나 이상의 목표 단어의 적어도 하나에 대하여, 대응하는 문법 오류 유형에 대한 목표 단어의 분류가 문법 오류 유형에 대하여 훈련된 인공 신경망(artificial neural network) 모델을 이용하여 추정된다. 문장에서의 문법 오류가 목표 단어 및 목표 단어의 추정된 분류에 적어도 부분적으로 기초하여 검출된다.Methods and systems for grammatical error detection are disclosed herein. In one example, a sentence is received. At least one target word in the sentence is identified based at least in part on one or more types of grammatical errors. Each of the one or more target words corresponds to at least one of the one or more grammatical error types. For at least one of the one or more target words, a classification of the target word for the corresponding grammatical error type is estimated using an artificial neural network model trained for the grammatical error type. A grammatical error in the sentence is detected based at least in part on the target word and the estimated classification of the target word.
Description
본 개시 내용은 일반적으로 인공 지능에 관한 것으로, 더욱 상세하게는, 인공 신경망(artificial neural network)을 이용한 문법 오류 정정에 관한 것이다.The present disclosure relates generally to artificial intelligence and, more particularly, to grammatical error correction using artificial neural networks.
자동화된 문법 오류 정정(grammatical error correction(GEC))은 제2 언어로서 영어를 학습하는 수백만의 사람들을 위한 필수적이고 유용한 도구이다. 작가들은 표준 교정 도구로는 해결되지 않는 다양한 문법 및 어법 실수를 범한다. 문법 오류 검출 및/또는 정정을 위하여 높은 정밀도(precision)와 리콜(recall) 기능을 갖는 자동화된 시스템을 개발하는 것이 자연어 프로세스(natural language process(NLP))에서 빠르게 성장하는 영역이 된다.Automated grammatical error correction (GEC) is an essential and useful tool for millions of people learning English as a second language. Writers make a variety of grammatical and grammatical mistakes that cannot be corrected by standard proofreading tools. Developing automated systems with high precision and recall capabilities for grammatical error detection and/or correction is a rapidly growing area in natural language processing (NLP).
이러한 자동화된 시스템에 대한 많은 가능성이 있지만, 알려진 시스템은 다양한 문법적 오류 패턴의 제한된 커버리지 및 정교한 언어적 특징 엔지니어링 또는 인간-주석 훈련 샘플의 요구와 같은 문제에 직면하였다.Although there are many possibilities for such automated systems, known systems face challenges such as limited coverage of various grammatical error patterns and the need for sophisticated linguistic feature engineering or human-annotation training samples.
본 개시 내용은 일반적으로 인공 지능에 관한 것으로, 더욱 상세하게는, 인공 신경망(artificial neural network)을 이용한 문법 오류 정정에 관한 것이다.The present disclosure relates generally to artificial intelligence and, more particularly, to grammatical error correction using artificial neural networks.
일례에서, 문법 오류 검출 방법이 개시된다. 문장이 수신된다. 문장 내의 하나 이상의 목표 단어(target word)가 하나 이상의 문법 오류 유형에 적어도 부분적으로 기초하여 식별된다. 하나 이상의 목표 단어의 각각은 하나 이상의 문법 오류 유형의 적어도 하나에 대응한다. 하나 이상의 목표 단어의 적어도 하나에 대하여, 대응하는 문법 오류 유형에 대한 목표 단어의 분류가 문법 오류 유형에 대하여 훈련된 인공 신경망 모델을 이용하여 추정된다. 모델은 문장 내의 목표 단어 전의 적어도 하나의 단어와 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 목표 단어의 문맥 벡터(context vector)를 출력하도록 구성된 2개의 순환 신경망(recurrent neural network)을 포함한다. 모델은 목표 단어의 문맥 벡터에 적어도 부분적으로 기초하여 문법 오류 유형에 대한 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망(feedforward neural network)을 더 포함한다. 문장 내의 문법 오류가 목표 단어 및 목표 단어의 추정된 분류에 적어도 부분적으로 기초하여 검출된다.In one example, a method for detecting grammatical errors is disclosed. sentence is received. One or more target words within the sentence are identified based at least in part on the one or more grammatical error types. Each of the one or more target words corresponds to at least one of the one or more grammatical error types. For at least one of the one or more target words, a classification of the target word for the corresponding grammatical error type is estimated using an artificial neural network model trained for the grammatical error type. The model includes two recurrent neural networks configured to output a context vector of a target word based at least in part on at least one word before the target word and at least one word after the target word in the sentence. . The model further includes a feedforward neural network configured to output classification values of the target word for types of grammatical errors based at least in part on the context vector of the target word. A grammatical error within the sentence is detected based at least in part on the target word and the estimated classification of the target word.
다른 예에서, 인공 신경망 모델 훈련 방법이 제공된다. 문법 오류 유형에 대하여 문장 내의 목표 단어의 분류를 추정하기 위한 인공 신경망 모델이 제공된다. 모델은 문장 내의 목표 단어 전의 적어도 하나의 단어와 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 목표 단어의 문맥 벡터를 출력하도록 구성된 2개의 순환 신경망을 포함한다. 모델은 목표 단어의 문맥 벡터에 적어도 부분적으로 기초하여 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망을 더 포함한다. 훈련 샘플 세트가 획득된다. 훈련 샘플 세트 내의 각각의 훈련 샘플은 문법 오류 유형에 대한 목표 단어를 포함하는 문장과 문법 오류 유형에 대한 목표 단어의 실제 분류를 포함한다. 순환 신경망과 연관된 제1 파라미터 세트 및 피드포워드 신경망과 연관된 제2 파라미터 세트가 각각의 훈련 샘플에서의 목표 단어의 실제 분류 및 추정된 분류 사이의 차이에 적어도 부분적으로 기초하여 공동으로(jointly) 훈련된다.In another example, a method for training an artificial neural network model is provided. An artificial neural network model for estimating the classification of a target word in a sentence with respect to the type of grammatical error is provided. The model includes two recurrent neural networks configured to output a context vector of a target word based at least in part on at least one word before and after the target word in a sentence. The model further includes a feedforward neural network configured to output a classification value of the target word based at least in part on the context vector of the target word. A set of training samples is obtained. Each training sample in the set of training samples includes a sentence containing the target word for the grammatical error type and an actual classification of the target word for the grammatical error type. A first set of parameters associated with the recurrent neural network and a second set of parameters associated with the feedforward neural network are jointly trained based at least in part on the difference between the actual and estimated classification of the target word in each training sample. .
다른 예에서, 문법 오류 검출 시스템은 메모리 및 메모리에 결합된 적어도 하나의 프로세서를 포함한다. 적어도 하나의 프로세서는, 문장을 수신하고, 하나 이상의 문법 오류 유형에 적어도 부분적으로 기초하여 하나 이상의 목표 단어를 식별하도록 구성된다. 하나 이상의 목표 단어의 각각은 하나 이상의 문법 오류 유형의 적어도 하나에 대응한다. 적어도 하나의 프로세서는, 하나 이상의 목표 단어의 적어도 하나에 대하여, 문법 오류 유형에 대하여 훈련된 인공 신경망 모델을 이용하여 대응하는 문법 오류 유형에 대한 목표 단어의 분류를 추정하도록 더 구성된다. 모델은 문장 내의 목표 단어 전의 적어도 하나의 단어와 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 목표 단어의 문맥 벡터를 생성하도록 구성된 2개의 순환 신경망을 포함한다. 모델은 목표 단어의 문맥 벡터에 적어도 부분적으로 기초하여 문법 오류 유형에 대한 목표 단어의 분류값을 생성하도록 구성된 피드포워드 신경망을 더 포함한다. 적어도 하나의 프로세서는, 목표 단어 및 목표 단어의 추정된 분류에 적어도 부분적으로 기초하여 문장 내의 문법 오류를 검출하도록 더 구성된다.In another example, a grammatical error detection system includes a memory and at least one processor coupled to the memory. The at least one processor is configured to receive the sentence and identify one or more target words based at least in part on the one or more grammatical error types. Each of the one or more target words corresponds to at least one of the one or more grammatical error types. The at least one processor is further configured to estimate, for at least one of the one or more target words, a classification of the target word for the corresponding grammatical error type using an artificial neural network model trained for the grammatical error type. The model includes two recurrent neural networks configured to generate a context vector of a target word based at least in part on at least one word before and after the target word in a sentence. The model further includes a feedforward neural network configured to generate classification values of the target word for types of grammatical errors based at least in part on the context vector of the target word. The at least one processor is further configured to detect grammatical errors in the sentence based at least in part on the target word and the estimated classification of the target word.
다른 예에서, 문법 오류 검출 시스템은 메모리 및 메모리에 결합된 적어도 하나의 프로세서를 포함한다. 적어도 하나의 프로세서는, 문법 오류 유형에 대하여 문장 내의 목표 단어의 분류를 추정하기 위한 인공 신경망 모델을 제공하도록 구성된다. 모델은 문장 내의 목표 단어 전의 적어도 하나의 단어와 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 목표 단어의 문맥 벡터를 출력하도록 구성된 2개의 순환 신경망을 포함한다. 모델은 목표 단어의 문맥 벡터에 적어도 부분적으로 기초하여 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망을 더 포함한다. 적어도 하나의 프로세서는, 훈련 샘플 세트를 획득하도록 더 구성된다. 훈련 샘플 세트 내의 각각의 훈련 샘플은 문법 오류 유형에 대한 목표 단어를 포함하는 문장과 문법 오류 유형에 대한 목표 단어의 실제 분류를 포함한다. 적어도 하나의 프로세서는, 각각의 훈련 샘플에서의 목표 단어의 실제 분류 및 추정된 분류 사이의 차이에 적어도 부분적으로 기초하여 순환 신경망과 연관된 제1 파라미터 세트 및 피드포워드 신경망과 연관된 제2 파라미터 세트를 공동으로 조정하도록 더 구성된다.In another example, a grammatical error detection system includes a memory and at least one processor coupled to the memory. At least one processor is configured to provide an artificial neural network model for estimating a classification of a target word in a sentence with respect to the type of grammatical error. The model includes two recurrent neural networks configured to output a context vector of a target word based at least in part on at least one word before and after the target word in a sentence. The model further includes a feedforward neural network configured to output a classification value of the target word based at least in part on the context vector of the target word. The at least one processor is further configured to obtain a set of training samples. Each training sample in the set of training samples includes a sentence containing the target word for the grammatical error type and an actual classification of the target word for the grammatical error type. The at least one processor jointly determines a first set of parameters associated with the recurrent neural network and a second set of parameters associated with the feedforward neural network based at least in part on the difference between the actual classification and the estimated classification of the target word in each training sample. It is further configured to adjust to
다른 개념은 문법 오류 검출 및 인공 신경망 모델 훈련을 위한 소프트웨어에 관한 것이다. 이 개념에 따라, 소프트웨어 제품은 적어도 하나의 컴퓨터 판독 가능하고 비일시적인 장치 및 장치가 반송하는 정보를 포함한다. 장치가 반송하는 정보는 요청 또는 동작 파라미터와 연관하는 파라미터에 관한 실행 가능한 명령어일 수 있다.Another concept relates to software for grammatical error detection and training of artificial neural network models. In accordance with this concept, a software product includes at least one computer-readable, non-transitory device and information carried by the device. The information returned by the device may be executable instructions relating to parameters associated with requests or operational parameters.
일례에서, 유형의(tangible) 컴퓨터 판독 가능하고 비일시적인(non-transitory) 장치는 문법 오류 검출을 위하여 기록된 명령어를 가지며, 명령어는 컴퓨터에 의해 실행될 때 컴퓨터가 일련의 동작을 수행하게 한다. 문장이 수신된다. 문장 내의 하나 이상의 목표 단어는 하나 이상의 문법 오류 유형에 적어도 부분적으로 기초하여 식별된다. 하나 이상의 목표 단어의 각각은 하나 이상의 문법 오류 유형의 적어도 하나에 대응한다. 하나 이상의 목표 단어의 적어도 하나에 대하여, 대응하는 문법 오류 유형에 대한 목표 단어의 분류가 문법 오류 유형에 대하여 훈련된 인공 신경망 모델을 이용하여 추정된다. 모델은, 문장 내의 목표 단어 전의 적어도 하나의 단어와 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 목표 단어의 문맥 벡터를 출력하도록 구성된 2개의 순환 신경망을 포함한다. 모델은 목표 단어의 문맥 벡터에 적어도 부분적으로 기초하여 문법 오류 유형에 대한 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망을 더 포함한다. 문장 내의 문법 오류가 목표 단어 및 목표 단어의 추정된 분류에 적어도 부분적으로 기초하여 검출된다.In one example, a tangible computer readable, non-transitory device has instructions recorded thereon for grammatical error detection, which when executed by a computer cause the computer to perform a series of actions. sentence is received. One or more target words in the sentence are identified based at least in part on the one or more grammatical error types. Each of the one or more target words corresponds to at least one of the one or more grammatical error types. For at least one of the one or more target words, a classification of the target word for the corresponding grammatical error type is estimated using an artificial neural network model trained for the grammatical error type. The model includes two recurrent neural networks configured to output a context vector of a target word based at least in part on at least one word before and after the target word in a sentence. The model further includes a feedforward neural network configured to output classification values of the target word for types of grammatical errors based at least in part on the context vector of the target word. A grammatical error within the sentence is detected based at least in part on the target word and the estimated classification of the target word.
다른 예에서, 유형의 컴퓨터 판독 가능하고 비일시적인 장치는 인공 신경망 모델 훈련을 위하여 기록된 명령어를 가지며, 명령어는 컴퓨터에 의해 실행될 때 컴퓨터가 일련의 동작을 수행하게 한다. 문법 오류 유형에 대하여 문장 내의 목표 단어의 분류를 추정하기 위한 인공 신경망 모델이 제공된다. 모델은 문장 내의 목표 단어 전의 적어도 하나의 단어와 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 목표 단어의 문맥 벡터를 출력하도록 구성된 2개의 순환 신경망을 포함한다. 모델은 목표 단어의 문맥 벡터에 적어도 부분적으로 기초하여 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망을 더 포함한다. 훈련 샘플 세트가 획득된다. 훈련 샘플 세트 내의 각각의 훈련 샘플은 문법 오류 유형에 대한 목표 단어를 포함하는 문장과 문법 오류 유형에 대한 목표 단어의 실제 분류를 포함한다. 순환 신경망과 연관된 제1 파라미터 세트 및 피드포워드 신경망과 연관된 제2 파라미터 세트가 각각의 훈련 샘플에서의 목표 단어의 실제 분류 및 추정된 분류 사이의 차이에 적어도 부분적으로 기초하여 공동으로 훈련된다.In another example, a tangible computer-readable, non-transitory device has instructions recorded thereon for training an artificial neural network model, which when executed by a computer cause the computer to perform a series of actions. An artificial neural network model for estimating the classification of a target word in a sentence with respect to the type of grammatical error is provided. The model includes two recurrent neural networks configured to output a context vector of a target word based at least in part on at least one word before and after the target word in a sentence. The model further includes a feedforward neural network configured to output a classification value of the target word based at least in part on the context vector of the target word. A set of training samples is obtained. Each training sample in the set of training samples includes a sentence containing the target word for the grammatical error type and an actual classification of the target word for the grammatical error type. A first set of parameters associated with the recurrent neural network and a second set of parameters associated with the feedforward neural network are jointly trained based at least in part on differences between the actual and estimated classifications of the target word in each training sample.
본 [발명의 내용]은 단지 본 명세서에 설명된 내용에 대한 이해를 제공하기 위하여 일부 실시예들을 예시하는 목적으로만 제공된다. 따라서, 전술한 특징들은 단지 예일 뿐이며, 본 개시 내용에서의 내용의 범위나 사상을 좁히는 것으로 고려되어서는 안 된다. 본 개시 내용의 다른 특징들, 양태들 및 이점들은 이어지는 [발명을 실시하기 위한 구체적인 내용], [도면] 및 [청구범위]로부터 명백하게 될 것이다.This [Summary of the Invention] is provided solely for the purpose of illustrating some embodiments in order to provide an understanding of the subject matter described herein. Accordingly, the foregoing features are merely examples and should not be considered to narrow the scope or spirit of the subject matter in this disclosure. Other features, aspects and advantages of the present disclosure will become apparent from the [Details for Carrying Out the Invention], [Drawings] and [Claims] that follow.
본 명세서에 포함되어 명세서의 일부를 형성하는 첨부된 도면은 본 개시 내용을 도시하며, 설명과 함께, 본 개시 내용의 원리를 설명하고 관련 기술 분야에서의 통상의 기술자가 본 개시 내용을 실시 및 사용할 수 있게 하는 역할을 한다.
도 1은 일 실시예에 따른 문법 오류 정정(GEC) 시스템을 도시하는 블록도이다;
도 2는 도 1의 시스템에 의해 수행되는 자동화된 문법 오류 정정의 일례에 대한 도면이다;
도 3은 일 실시예에 따른 문법 오류 정정 방법의 일례를 도시하는 순서도이다;
도 4는 일 실시예에 따른 도 1의 시스템의 분류 기반 GEC 모듈의 일례를 도시하는 블록도이다;
도 5는 일 실시예에 따른 도 1의 시스템을 이용하여 문장 내의 목표 단어의 ]분류를 제공하는 일례에 대한 도면이다;
도 6은 일 실시예에 따른 문법 오류 정정을 위한 인공 신경망(artificial neural network(ANN)) 모델의 일례를 도시하는 개략도이다;
도 7은 일 실시예에 따른 문법 오류 정정을 위한 ANN 모델의 다른 예를 도시하는 개략도이다;
도 8은 일 실시예에 따른 도 6의 ANN 모델의 일례를 도시하는 상세 개략도이다;
도 9는 일 실시예에 따른 문장의 문법 오류 정정 방법의 일례를 도시하는 순서도이다;
도 10은 일 실시예에 따른 문법 오류 유형에 대하여 목표 단어를 분류하는 방법의 일례를 도시하는 순서도이다;
도 11은 일 실시예에 따른 문법 오류 유형에 대하여 목표 단어를 분류하는 방법의 다른 예를 도시하는 순서도이다;
도 12는 일 실시예에 따른 문법 점수를 제공하는 방법의 일례를 도시하는 순서도이다;
도 13은 일 실시예에 따른 ANN 모델 훈련 시스템을 도시하는 블록도이다;
도 14는 도 13의 시스템에 의해 사용되는 훈련 샘플의 일례에 대한 도면이다;
도 15는 일 실시예에 따른 문법 오류 정정을 위한 ANN 모델 훈련 방법의 일례를 도시하는 순서도이다;
도 16은 일 실시예에 따른 문법 오류 정정을 위하여 ANN 모델을 훈련시키는 일례를 도시하는 개략도이다; 그리고,
도 17은 본 개시 내용에서 설명된 다양한 실시예를 구현하는데 유용한 컴퓨터 시스템이 일례를 도시하는 블록도이다.
본 개시 내용은 첨부된 도면을 참조하여 설명된다. 도면에서, 일반적으로, 유사한 참조 번호는 동일하거나 기능적으로 유사한 요소를 나타낸다. 또한, 일반적으로, 참조 번호의 가장 왼쪽의 숫자(들)는 참조 번호가 처음 나타나는 도면을 식별한다.The accompanying drawings, which are incorporated in and form a part of this specification, illustrate the present disclosure and, together with the description, explain the principles of the present disclosure and enable those skilled in the art to practice and use the disclosure. plays a role in enabling
1 is a block diagram illustrating a grammatical error correction (GEC) system according to one embodiment;
Figure 2 is a diagram of an example of automated grammatical error correction performed by the system of Figure 1;
3 is a flowchart illustrating an example of a method for correcting grammatical errors according to an embodiment;
4 is a block diagram illustrating an example of a classification-based GEC module of the system of FIG. 1 according to one embodiment;
5 is a diagram of an example of providing a ]class of a target word in a sentence using the system of FIG. 1 according to one embodiment;
Fig. 6 is a schematic diagram illustrating an example of an artificial neural network (ANN) model for grammatical error correction according to an embodiment;
Fig. 7 is a schematic diagram illustrating another example of an ANN model for grammatical error correction according to an embodiment;
Fig. 8 is a detailed schematic diagram illustrating an example of the ANN model of Fig. 6 according to an embodiment;
9 is a flowchart illustrating an example of a method for correcting grammatical errors in sentences according to an embodiment;
10 is a flowchart illustrating an example of a method of classifying target words with respect to grammatical error types according to an embodiment;
11 is a flowchart illustrating another example of a method of classifying target words with respect to grammatical error types according to an exemplary embodiment;
12 is a flow chart illustrating an example of a method for providing grammar scores, according to one embodiment;
Figure 13 is a block diagram illustrating an ANN model training system according to one embodiment;
Figure 14 is a diagram of an example of a training sample used by the system of Figure 13;
15 is a flowchart illustrating an example of a method for training an ANN model for grammatical error correction according to an embodiment;
Fig. 16 is a schematic diagram illustrating an example of training an ANN model for grammatical error correction according to an embodiment; And,
17 is a block diagram illustrating an example of a computer system useful for implementing various embodiments described in this disclosure.
The present disclosure is described with reference to the accompanying drawings. In the drawings, like reference numbers generally indicate identical or functionally similar elements. Also, in general, the leftmost digit(s) of a reference number identifies the drawing in which the reference number first appears.
다음의 상세한 설명에서, 관련 개시 내용의 완전한 이해를 제공하기 위하여 다양한 특정 상세가 예로서 설명된다. 그러나, 본 개시 내용이 이러한 상세 없이 실시될 수 있다는 것이 본 기술 분야에서의 통상의 기술자에게 명백하여야 한다. 다른 경우에, 본 개시 내용의 양태들을 불필요하게 흐리게 하는 것을 방지하기 위하여, 잘 알려진 방법, 절차, 시스템, 컴포넌트 및/또는 회로는 상세 내용 없이 상대적으로 고수준(high-level)으로 설명되었다.In the detailed description that follows, by way of example, numerous specific details are set forth in order to provide a thorough understanding of the related disclosure. However, it should be apparent to one skilled in the art that the present disclosure may be practiced without these details. In other instances, well-known methods, procedures, systems, components, and/or circuits have been described at relatively high-level without detail in order to avoid unnecessarily obscuring aspects of the present disclosure.
명세서 및 청구범위 전체에 걸쳐, 용어들은 명시적으로 언급된 의미를 넘어 문맥에서 제안되거나 암시되는 미묘한 의미를 가질 수 있다. 유사하게, 본 명세서에 사용되는 "일 실시예/일례에서"라는 어구는 반드시 동일한 실시예를 지칭하지는 않으며, 본 명세서에 사용되는 "다른 실시예/다른 예에서"라는 어구는 반드시 상이한 실시예를 지칭하지는 않는다. 예를 들어, 청구된 대상이 전부 또는 일부의 예시적인 실시예들의 조합을 포함하는 것이 의도된다.Throughout the specification and claims, terms may have nuanced meanings suggested or implied in context beyond the meanings explicitly stated. Similarly, the phrases "in one embodiment/in one example" as used herein do not necessarily refer to the same embodiment, and the phrases "in another embodiment/in another example" as used herein do not necessarily refer to different embodiments. does not refer For example, it is intended that claimed subject matter include combinations of all or some of the illustrative embodiments.
일반적으로, 용어는 적어도 부분적으로 문맥에서의 사용으로부터 이해될 수 있다. 예를 들어, 본 명세서에서 사용되는 "및", "또는" 또는 "및/또는"과 같은 용어는 적어도 부분적으로 이러한 용어들이 사용되는 문맥에 의존할 수 있는 다양한 의미를 포함할 수 있다. 통상적으로, A, B 또는 C와 같은 목록과 연관되도록 사용되는 경우의 "또는"은 본 명세서에서 베타적 의미로 사용되는 A, B 또는 C뿐만 아니라, 본 명세서에서 포함적 의미로 사용되는 A, B 및 C를 의미하도록 의도된다. 또한, 본 명세서에서 사용되는 "하나 이상의"라는 용어는, 적어도 부분적으로 문맥에 따라, 단수 의미로의 임의의 특징, 구조 또는 특성의 조합을 설명하는데 사용될 수 있거나, 또는 복수 의미로의 특징들, 구조들 또는 특성들의 조합을 설명하는데 사용될 수 있다. 유사하게, "a", "an" 또는 "the"와 같은 단수 용어, 적어도 부분적으로 문맥에 따라, 단수 사용을 시사하거나 복수 사용을 시사하도록 이해될 수 있다. 또한, "~ 기초하여"라는 용어는 반드시 인자들의 배타적 집합을 시사하도록 의도되지는 않는 것으로 이해될 수 있고, 대신에, 또한, 적어도 부분적으로 문맥에 따라, 반드시 명시적으로 설명될 필요가 없는 추가 인자들의 존재를 허용할 수 있다.In general, terms can be understood at least in part from their use in context. For example, terms such as "and", "or" or "and/or" as used herein may include a variety of meanings that may depend, at least in part, on the context in which these terms are used. Typically, “or” when used in connection with a list such as A, B, or C is used herein in an exclusive sense, as well as A, B, or C, used herein in an inclusive sense; It is intended to mean B and C. Also, the term “one or more” as used herein may be used to describe any feature, structure, or combination of characteristics in the singular sense, or features in the plural sense, depending at least in part on context. can be used to describe a combination of structures or properties. Similarly, singular terms such as “a”, “an” or “the” may be construed to imply singular use or to imply plural usage, at least in part depending on the context. Further, it may be understood that the term "based on" is not necessarily intended to imply an exclusive set of factors, but instead, also, at least in part depending on the context, additional additions that do not necessarily need to be explicitly stated. The presence of arguments can be allowed.
아래에서 상세히 개시되는 바와 같이, 다른 신규한 특징들 중에서, 본 명세서에 개시된 자동화된 GEC 시스템 및 방법은 원시 텍스트(native text) 데이터로부터 훈련될 수 있는 심층 문맥 모델(deep context model)을 이용하여 문법 오류를 효과적이고 효율적으로 검출 및 정정하는 능력을 제공한다. 일부 실시예에서, 특정 문법 오류 유형에 대하여, 오류 정정 작업은 문법 문맥 표현이 주로 사용 가능한 원시 텍스트 데이터로부터 학습될 수 있는 분류 문제로서 취급될 수 있다. 전통적인 분류기 방법과 비교하여, 본 명세서에 개시된 시스템 및 방법은 일반적으로 언어적 지식을 필요로 하지만 모든 문맥 패턴을 커버하지 않을 수 있는 정교한 특징 엔지니어링을 필요로 하지 않는다. 일부 실시예에서, 피상적인 특징을 이용하는 대신에, 본 명세서에 개시된 시스템 및 방법은 문맥을 표현하기 위한 순환 신경망(recurrent neural network)과 같은 심층 특징을 직접 이용할 수 있다. 일부 실시예에서, 대량의 감독 데이터가 일반적으로 필요하지만 제한적인 크기로 사용 가능한 전통적인 NLP 작업과는 달리, 본 명세서에 개시된 시스템 및 방법은 풍부한 원시 평문 코퍼스(native plain text corpus)를 활용하고 문법 오류를 효율적으로 정정하기 위하여 문맥 표현 및 분류를 종단간(end-to-end) 방식으로 공동으로(jointly) 학습할 수 있다.As described in detail below, among other novel features, the automated GEC system and method disclosed herein utilizes a deep context model that can be trained from native text data to generate a grammar using a deep context model. It provides the ability to detect and correct errors effectively and efficiently. In some embodiments, for a particular type of grammatical error, the error correction task can be treated as a classification problem in which the grammatical context representation can be learned primarily from available raw text data. Compared to traditional classifier methods, the systems and methods disclosed herein generally require linguistic knowledge but do not require sophisticated feature engineering that may not cover all contextual patterns. In some embodiments, instead of using superficial features, the systems and methods disclosed herein may directly use deep features, such as recurrent neural networks, to represent context. In some embodiments, unlike traditional NLP tasks where large amounts of supervised data are generally needed but available in limited size, the systems and methods disclosed herein utilize a rich native plain text corpus and avoid grammatical errors. Context representations and classifications can be jointly learned in an end-to-end manner to efficiently correct .
추가적인 신규한 특징들은 이어지는 설명에서 부분적으로 설명될 것이며, 부분적으로는 다음에 언급되는 것 및 첨부된 도면을 검토함에 따라 당해 기술 분야에서의 통상의 기술자에게 명백하게 될 것이거나 또는 예들의 생산 또는 동작에 의해 학습될 수 있다. 본 개시 내용의 신규한 특징들은 아래에서 논의되는 상세한 예들에서 설명되는 방법, 수단 및 조합의 다양한 양태들의 결과 또는 사용에 의해 실현되고 획득될 수 있다.Additional novel features will be set forth in part in the description that follows, and in part will become apparent to those skilled in the art upon review of the following references and accompanying drawings or in the making or operation of the examples. can be learned by The novel features of the present disclosure may be realized and obtained by use of or as a result of various aspects of the methods, means and combinations set forth in the detailed examples discussed below.
도 1은 일 실시예에 따른 문법 GEC 시스템(100)을 도시하는 블록도이다. GEC 시스템(100)은 입력 전처리 모듈(102), 파싱(parsing) 모듈(104), 목표 단어 디스패칭(dispatching) 모듈(106) 및 각각이 심층 문맥(deep context)를 이용하여 분류 기반 문법 오류 검출 및 정정을 수행하도록 구성된 복수의 분류 기반 GEC 모듈(108)을 포함한다. 일부 실시예에서, GEC 시스템(100)은 GEC 시스템(100)의 수행을 더 개선하도록 기계 번역 및 사전 정의 규칙 기반 방법과 같은 다른 GEC 방법을 분류 기반 방법과 결합하기 위하여 파이프라인 아키텍처를 이용하여 구현될 수 있다. 도 1에 도시된 바와 같이, GEC 시스템(100)은 기계 번역 기반 GEC 모듈(110), 규칙 기반 GEC 모듈(112) 및 채점(scoring)/정정 모듈(114)을 더 포함할 수 있다.1 is a block diagram illustrating a
입력 전처리 모듈(102)은 입력 텍스트(116)를 수신하고 입력 텍스트(116)를 전처리하도록 구성된다. 입력 텍스트(116)는 적어도 하나의 영어 문장, 예를 들어, 단일 문장, 문단, 글(article) 또는 임의의 텍스트 코퍼스(text corpus)를 포함할 수 있다. 입력 텍스트(116)는 손글씨(hand writing), 타이핑 또는 복사/붙여넣기를 통해 직접 수신될 수 있다. 입력 텍스트(116)는, 예를 들어, 음성 인식 또는 화상 인식을 통해, 간접적으로도 수신될 수 있다. 예를 들어, 임의의 적합한 음성 인식 기술이 음성 입력을 입력 텍스트(116)로 변환하는데 사용될 수 있다. 다른 예에서, 임의의 적합한 광학 문자 인식(optical character recognition(OCR)) 기술이 화상 내에 포함된 텍스트를 입력 텍스트(116)로 변환하는데 사용될 수 있다.
입력 전처리 모듈(102)은 다양한 방식으로 입력 텍스트(116)를 전처리할 수 있다. 일부 실시예에서, 문법 오류가 일반적으로 특정 문장의 문맥과 연계하여 분석되기 때문에, 입력 전처리 모듈(102)은 각각의 문장이 후속 과정을 위한 단위로서 취급될 수 있도록 입력 텍스트(116)를 문장으로 분할할 수 있다. 입력 텍스트(116)를 문장으로 분할하는 것은 문장의 시작 및/또는 끝을 인식함으로써 수행될 수 있다. 예를 들어, 입력 전처리 모듈(102)은 문장의 끝의 표시자로서 마침표, 세미 콜론, 물음표 또는 느낌표와 같은 소정의 구두점 기호를 검색할 수 있다. 또한, 입력 전처리 모듈(102)은 문장의 시작에 대한 표시자로서 첫 글자가 대문자로 표시된 단어를 검색할 수 있다. 일부 실시예에서, 입력 전처리 모듈(102)은, 예를 들어, 입력 텍스트(116) 내의 임의의 대문자를 소문자로 변환함으로써, 후속 과정을 용이하게 하기 위하여 입력 텍스트(116)를 소문자화로 바꿀 수 있다. 또한, 일부 실시예에서, 입력 전처리 모듈(102)은 어휘 데이터베이스(118)에 있지 않은 임의의 토큰(token)을 판단하기 위하여 어휘 데이터베이스(118)에 대하여 입력 텍스트(116) 내의 토큰(단어, 구(phrase) 또는 문자열(text string))을 검사할 수 있다. 일치하지 않은 토큰은 특수 토큰, 예를 들어, 단일 unk 토큰(알려지지 않은 토큰(unknown token))으로서 취급될 수 있다. 어휘 데이터베이스(118)는 GEC 시스템(100)에 의해 처리될 수 있는 모든 단어를 포함한다. 어휘 데이터베이스(118)에 있지 않은 임의의 단어 또는 다른 토큰은 GEC 시스템(100)에 의해 무시되거나 다르게 취급될 수 있다.
파싱 모듈(104)은 입력 텍스트(116)의 각각의 문장에서 하나 이상의 목표 단어를 식별하기 위하여 입력 텍스트(116)를 파싱하도록 구성된다. 통일된 모든 문법 오류를 고려하고 부정확한 텍스트를 정확한 텍스트로 변환하려고 시도하는 알려진 시스템과는 다르게, GEC 시스템(100)은 아래에서 상세히 설명되는 바와 같이 각각의 특정 문법 오류 유형에 대하여 훈련된 모델을 이용한다. 따라서, 일부 실시예에서, 파싱 모듈(104)은 각각의 목표 단어가 적어도 하나의 문법 오류 유형에 대응하도록 미리 정의된 문법 오류 유형에 기초하여 각각의 문장에서 텍스트 토큰으로부터 목표 단어를 식별할 수 있다. 문법 오류 유형은, 관사 오류, 주격 관련 일치(subjective agreement) 오류, 동사 형태 오류, 전치사 오류 및 명사 수 오류를 포함하지만 이에 한정되지 않는다. 문법 오류 유형이 전술한 예들에 한정되지 않으며 임의의 다른 유형을 포함할 수 있다는 것이 이해되어야 한다. 일부 실시예에서, 파싱 모듈(104)은 각각의 문장을 토큰화하고, GEC 시스템(100)에 알려진 어휘 정보 및 지식을 포함하는 어휘 데이터베이스(118)와 관련하여 토큰으로부터 목표 단어를 식별할 수 있다.The
예를 들어, 주격 관련 일치 오류에 대하여, 파싱 모듈(104)은 비3인칭 단수 현재형 단어 및 3인칭 단수 현재형 단어 맵 관계를 미리 추출할 수 있다. 그 다음, 파싱 모듈(104)은 목표 단어로서 동사의 위치를 찾을 수 있다. 관사 오류에 대하여, 파싱 모듈(104)은 목표 단어로서 명사 및 명사구(명사 단어와 형용사 단어의 조합)의 위치를 찾을 수 있다. 동사 형태 오류에 대하여, 파싱 모듈(104)은 목표 단어로서 기본형, 동명사 또는 현재 분사, 또는 과거 분사로 있는 동사의 위치를 찾을 수 있다. 전치사 오류에 대하여, 파싱 모듈(104)은 목표 단어로서 전치사의 위치를 찾을 수 있다. 명사 수 오류에 대하여, 파싱 모듈(104)은 목표 단어로서 명사의 위치를 찾을 수 있다. 하나의 단어가 다수의 문법 오류 유형에 대응하는 것으로 파싱 모듈(104)에 의해 식별될 수 있다는 것이 이해되어야 한다. 예를 들어, 동사는 주격 관련 일치 오류 및 동사 형태 오류에 대하여 목표 단어로서 식별될 수 있고, 명사 또는 명사구는 관사 오류 및 명사 수 오류에 대하여 목표 단어로서 식별될 수 있다. 또한, 목표 단어가 명사구와 같은 다수의 단어의 조합인 구를 포함할 수 있다는 것이 이해되어야 한다.For example, for a nominative-related matching error, the
일부 실시예에서, 각각의 문법 오류 유형에 대하여, 파싱 모듈(104)은 각각의 목표 단어의 실제 분류를 결정하도록 구성될 수 있다. 파싱 모듈(104)은 목표 단어의 실제 분류값으로서 대응하는 문법 오류 유형에 대하여 각각의 목표 단어에 원 라벨(original label)을 할당할 수 있다. 예를 들어, 주격 관련 일치 오류에 대하여, 동사의 실제 분류는 3인칭 단수 현재형 또는 기본형이다. 파싱 모듈(104)은 목표 단어에 원 라벨, 예를 들어, 목표 단어가 3인칭 단수 현재형인 경우에 "1" 또는 목표 단어가 기본형인 경우에 "0"을 목표 단어에 할당할 수 있다. 관사 오류에 대하여, 목표 단어의 실제 분류는 "a/an", "the" 또는 "관사 없음"일 수 있다. 파싱 모듈(104)은 각각의 목표 단어의 실제 분류를 결정하기 위하여 목표 단어(명사 단어 또는 명사구)의 앞에 있는 관사를 검사할 수 있다. 동사 형태 오류에 관하여, 목표 단어(예를 들어, 동사)의 실제 분류는 "기본형", "동명사 또는 현재 분사" 또는 "과거 분사"일 수 있다. 전치사 오류에 대하여, 가장 자주 사용되는 전치사가 실제 분류로서 파싱 모듈(104)에 의해 사용될 수 있다. 일부 실시예에서, 실제 분류는 다음의 11개의 원 라벨을 포함한다: "about", "at", "by", "for", "from", "in", "of", "on", "to", "until", "with" 및 "against". 명사 수 오류에 관하여, 목표 단어(예를 들어, 명사)의 실제 분류는 단수형 또는 복수형일 수 있다. 일부 실시예에서, 파싱 모듈(104)은 어휘 데이터베이스(118)와 관련된 음성 부분(part of speech(PoS)) 태그에 기초하여 대응하는 문법 오류 유형에 대하여 각각의 목표 단어의 원 라벨을 결정할 수 있다.In some embodiments, for each type of grammatical error, parsing
목표 단어 디스패칭 모듈(106)은 대응하는 문법 오류 유형에 대하여 각각의 목표 단어를 분류 기반 GEC 모듈(108)에 디스패치하도록 구성된다. 일부 실시예에서, 각각의 문법 오류 유형에 대하여, ANN 모델(120)은 대응하는 분류 기반 GEC 모듈(108)에 의해 독립적으로 훈련되어 사용된다. 따라서, 각각의 분류 기반 GEC 모듈(108)은 특정 문법 오류 유형과 연관되고, 동일한 문법 오류 유형에 대하여 목표 단어를 다루도록 구성된다. 예를 들어, (전치사 오류 유형에 대하여) 전치사인 목표 단어에 대하여, 목표 단어는 전치사 오류를 다루는 분류 기반 GEC 모듈(108)에 전치사를 전송할 수 있다. 하나의 단어가 다수의 문법 오류 유형에 대한 목표 단어로서 결정될 수 있기 때문에, 목표 단어 디스패칭 모듈(106)은 동일한 목표 단어를 다수의 분류 기반 GEC 모듈(108)로 전송할 수 있다는 것이 이해되어야 한다. 또한, 일부 실시예에서, GEC 시스템(100)에 의해 각각의 분류 기반 GEC 모듈(108)에 할당된 리소스는 동일하지 않을 수 있다는 것도 이해되어야 한다. 예를 들어, 소정의 사용자 집단(cohort) 내에서 또는 특정 사용자에 대하여 각각의 문법 오류 유형이 발생한 빈도에 따라, 목표 단어 디스패칭 모듈(106)은 가장 빈번하게 발생된 문법 오류 유형에 대한 목표 단어를 가장 높은 우선 순위로 디스패치할 수 있다. 큰 크기, 예를 들어, 많은 수의 문장 및/또는 각각의 문장 내의 많은 수의 목표 단어를 갖는 입력 텍스트(116)에 대하여, 목표 단어 디스패칭 모듈(106)은 대기 시간(latency)을 감소시키기 위하여 각각의 분류 기반 GEC 모듈(108)의 작업 부하의 관점에서 최적 방식으로 각각의 문장 내의 각각의 목표 단어의 처리를 스케줄링할 수 있다.The target
각각의 분류 기반 GEC 모듈(108)은 대응하는 문법 오류 유형에 대하여 훈련된 대응하는 ANN 모델(120)을 포함한다. 분류 기반 GEC 모듈(108)은 대응하는 ANN 모델(120)을 이용하여 대응하는 문법 오류 유형에 대하여 목표 단어의 분류를 추정하도록 구성된다. 아래에서 상세하게 설명되는 바와 같이, 일부 실시예에서, ANN 모델(120)은 문장 내의 목표 단어 전의 적어도 하나의 단어 및 목표 단어 후의 적어도 하나에 기초하여 목표 단어의 문맥 벡터(context vector)를 출력하도록 구성된 2개의 순환 신경망(recurrent neural network)을 포함한다. ANN 모델(120)은 목표 단어의 문맥 벡터에 기초하여 문법 오류 유형에 대한 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망(feedforward neural network)을 더 포함한다.Each classification-based
분류 기반 GEC 모듈(108)은 목표 단어 및 목표 단어의 추정된 분류에 기초하여 문장에서의 문법 오류를 검출하도록 더 구성된다. 위에서 설명된 바와 같이, 일부 실시예에서, 각각의 목표 단어의 실제 분류는 파싱 모듈(104)에 의해 결정될 수 있다. 그 다음, 분류 기반 GEC 모듈(108)은 목표 단어의 추정된 분류를 목표 단어의 실제 분류와 비교하고, 실제 분류가 목표 단어의 추정된 분류와 일치하지 않을 때 문장 내의 문법 오류를 검출할 수 있다. 예를 들어, 소정의 문법 오류 유형에 대하여, 대응하는 ANN 모델(120)은 목표 단어를 둘러싸는 가변 길이 문맥의 임베딩(embedding) 함수를 학습할 수 있으며, 대응하는 분류 기반 GEC 모듈(108)은 문맥 임베딩을 이용하여 목표 단어의 분류를 예측할 수 있다. 예측된 분류 라벨이 목표 단어의 원 라벨과 상이하다면, 목표 단어는 오류로서 표시될 수 있고, 예측은 정정으로서 사용될 수 있다.The classification-based
도 1에 도시된 바와 같이, 일부 실시예에서, 다양한 문법 오류 유형에 대한 문법 오류를 동시에 검출하기 위하여 다수의 분류 기반 GEC 모듈(108)이 GEC 시스템(100)에서 병렬로 적용될 수 있다. 위에서 설명된 바와 같이, GEC 시스템(100)의 리소스는 각각의 문법 오류 유형의 발생 빈도에 기초하여 상이한 문법 오류 유형에 할당될 수 있다. 예를 들어, 다른 것보다 더 자주 발생하는 문법 오류 유형을 다루기 위하여 더 많은 계산 리소스가 GEC 시스템(100)에 의해 할당될 수 있다. 리소스의 할당은 각각의 분류 기반 GEC 모듈(108)의 작업 부하 및/또는 빈도 변화의 관점에서 동적으로 조정될 수 있다.As shown in FIG. 1 , in some embodiments, multiple classification-based
기계 번역 기반 GEC 모듈(110)은 구문 기반 기계 번역, 신경망 기반 기계 번역 등과 같은 통계적 기계 번역에 기초하여 각각의 문장에서 하나 이상의 문법 오류를 검출하도록 구성된다. 일부 실시예에서, 기계 번역 기반 GEC 모듈(110)은 문장에 대하여 확률을 할당하는 언어 서브 모듈과 조건부 확률을 할당하는 번역 서브 모듈을 갖는 모듈을 포함한다. 언어 서브 모듈은 목표 언어에 설정된 단일 언어(monolingual) 훈련 데이터를 이용하여 훈련될 수 있다. 번역 서브 모듈의 파라미터들은 병렬 훈련 데이터 세트, 즉 외국어 문장들과 목표 언어로의 이들의 대응하는 번역의 세트로부터 추정될 수 있다. GEC 시스템(100)의 파이프라인 아키텍처에서, 기계 번역 기반 GEC 모듈(110)이 분류 기반 GEC 모듈(108)의 출력에 적용될 수 있거나, 분류 기반 GEC 모듈(108)이 기계 번역 기반 GEC 모듈(110)에 적용될 수 있다는 것이 이해되어야 한다. 또한, 일부 실시예에서, 기계 번역 기반 GEC 모듈(110)을 파이프라인에 추가함으로써, 기계 번역 기반 GEC 모듈(110)이 능가할 수 있는 소정의 분류 기반 GEC 모듈(108)은 파이프라인에 포함되지 않을 수 있다.Machine translation-based
규칙 기반 GEC 모듈(112)은 미리 정의된 규칙에 기초하여 각각의 문장에서 하나 이상의 문법 오류를 검출하도록 구성된다. 파이프라인에서의 규칙 기반 GEC 모듈(112)의 위치가 도 1에 도시된 마지막으로 한정되지 않고 제1 검출 모듈로서 파이프라인의 시작에 또는 분류 기반 GEC 모듈(108) 및 기계 번역 기반 GEC 모듈(110) 사이 있을 수 있다는 것이 이해되어야 한다. 또한, 일부 실시예에서, 구두점, 철자 및 대소문자 오류와 같은 다른 기계적 오류가 규칙 기반 GEC 모듈(112)에 의해 미리 정해진 규칙을 이용하여 검출되고 정정될 수 있다.The rule-based
채점/정정 모듈(114)은 파이프라인으로부터 수신된 문법 오류 결과에 기초하여 입력 텍스트(116)의 정정된 텍스트 및/또는 문법 점수(122)를 제공하도록 구성된다. 분류 기반 GEC 모듈(108)을 예로 들면, 추정된 분류가 실제 분류와 일치하지 않아 문법 오류를 갖는 것으로 검출된 각각의 목표 단어에 대하여, 목표 단어의 문법 오류 정정은 목표 단어의 추정된 분류에 기초하여 채점/정정 모듈(114)에 의해 제공될 수 있다. 입력 텍스트(116)를 평가하기 위하여, 채점/정정 모듈(114)은 또한 채점 기능을 이용하여 파이프라인으로부터 수신된 문법 오류 결과에 기초하여 문법 점수(122)를 제공할 수 있다. 일부 실시예에서, 채점 기능은 상이한 유형의 문법 오류가 문법 점수(122)에 대하여 상이한 레벨의 영향을 가질 수 있도록 각각의 문법 오류 유형에 가중치를 할당할 수 있다. 가중치는 문법 오류 결과를 평가하는데 있어서 가중치가 주어진 인자로서 정밀도(precision) 및 리콜(recall)에 할당될 수 있다. 일부 실시예에서, 입력 텍스트(116)를 제공하는 사용자도 채점 기능에 의해 고려될 수 있다. 예를 들어, 가중치는 상이한 사용자에게 대하여 상이할 수 있거나, 또는 사용자의 정보(예를 들어, 모국어, 거주지, 교육 수준, 과거의 점수, 나이 등)가 채점 기능에 고려될 수 있다.The scoring/
도 2는 도 1의 GEC 시스템(100)에 의해 수행되는 자동화된 문법 오류 정정의 일례에 대한 도면이다. 도 2에 도시된 바와 같이, 입력 텍스트(202)는 복수의 문장을 포함하고 사용자 ID(1234)의 의해 식별되는 사용자로부터 수신된다. 각각이 대응하는 문법 오류 유형에 대하여 개별적으로 훈련되는 복수의 ANN 모델(120)을 갖는 GEC 시스템(100)을 통과한 후에, 문법 점수를 갖는 정정된 텍스트(204)가 사용자에게 제공된다. 예를 들어, 입력 텍스트(202)에서의 문장 "it will just adding on their misery"에서, 동사 "adding"이 GEC 시스템(100)에 의해 동사 형태 오류에 대한 목표 단어로서 식별된다. 목표 단어 "adding"의 실제 분류는 동명사 또는 현재 분사이다. GEC 시스템(100)은 동사 형태 오류에 대하여 훈련된 ANN 모델(120)을 적용하고 목표 단어 "adding"의 분류가 기본형 "add"라고 추정한다. 추정된 분류가 목표 단어 "adding"의 실제 분류와 일치하지 않기 때문에, 동사 형태 문법 오류가 GEC 시스템(100)에 의해 검출되고, 이는 사용자의 개인 정보 및/또는 동사 형태 오류 유형에 적용된 가중치의 관점에서 문법 점수에 영향을 미친다. 또한, 목표 단어 "adding"의 추정된 분류는 정정된 텍스트(204)에서 "adding"을 교체하도록 정정 "add"를 제공하기 위하여 GEC 시스템(100)에 의해 사용된다. 동사 형태 오류에 대한 동일한 ANN 모델(120)이 입력 텍스트(202)에서 "dishearten"과 같은 다른 동사 형태 오류를 검출하고 "disheartening"과 같이 정정하기 위하여 GEC 시스템(100)에 의해 사용된다. 다른 문법 오류 유형에 대한 ANN 모델(120)이 다른 유형의 문법 오류를 검출하기 위하여 GEC 시스템(100)에 의해 사용된다. 예를 들어, 전치사 오류에 대한 ANN 모델(120)이 입력 텍스트(202)에서 "for" 및 "to"와 같은 전치사 오류를 검출하고 "in" 및 "on"과 같이 정정하기 위하여 GEC 시스템(100)에 의해 사용된다.FIG. 2 is a diagram of an example of automated grammatical error correction performed by the
도 3은 일 실시예에 따른 문법 오류 정정 방법(300)의 일례를 도시하는 순서도이다. 방법(300)은 하드웨어(예를 들어, 회로, 전용 로직, 프로그래머블 로직, 마이크로 코드 등), 소프트웨어(예를 들어, 처리 장치 상에서 실행되는 명령어) 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 수행될 수 있다. 모든 단계들이 본 명세서에 제공된 개시 내용을 수행하는데 필요하지 않을 수 있다는 것이 이해되어야 한다. 또한, 당해 업계의 통상의 기술자에 의해 이해되는 바와 같이, 단계들의 일부는 동시에 수행되거나, 또는 도 3에 도시된 것과 다른 순서로 수행될 수 있다.3 is a flowchart illustrating an example of a grammatical
방법(300)은 도 1을 참조하여 설명될 것이다. 그러나, 방법(300)은 그 예시적인 실시예에 한정되지 않는다. 302에서, 입력 텍스트가 수신된다. 입력 텍스트는 적어도 하나의 문장을 포함한다. 입력 텍스트는, 예를 들어, 손글씨, 타이핑 또는 복사/붙여넣기를 통해 직접적으로, 또는, 예를 들어, 음성 인식 또는 화상 인식으로부터 간접적으로 수신될 수 있다. 304에서, 수신된 입력 텍스트는, 문장들로 분할되는 것과 같이 전처리, 즉 텍스트 토큰화될 수 있다. 일부 실시예에서, 전처리는 입력 테스트가 소문자로 되도록 대문자를 소문자로 변환하는 것으로 포함할 수 있다. 일부 실시예에서, 전처리는 어휘 데이터베이스(118)에 있지 않은 입력 텍스트 내의 임의의 토큰을 식별하고 특수 토큰으로서 이를 나타내는 것을 포함할 수 있다. 302 및 304는 GEC 시스템(100)의 입력 전처리 모듈(102)에 의해 수행될 수 있다.
306에서, 전처리된 입력 텍스트는 각각의 문장 내의 하나 이상의 목표 단어를 식별하기 위하여 파싱된다. 목표 단어는 각각의 목표 단어가 적어도 하나의 문법 오류 유형에 대응하도록 문법 오류 유형에 기초하여 텍스트 토큰으로부터 식별될 수 있다. 문법 오류 유형은 관사 오류, 주격 관련 일치 오류, 동사 형태 오류, 전치사 오류 및 명사 수 오류를 포함하지만 이에 한정되지 않는다. 일부 실시예에서, 대응하는 문법 오류 유형에 대한 각각의 목표 단어의 실제 분류가 결정된다. 결정은, 예를 들어, PoS 태그 및 문장 내의 텍스트 토큰에 기초하여, 자동으로 이루어질 수 있다. 일부 실시예에서, 목표 단어 식별 및 실제 분류 결정은 Stanford corenlp 툴과 같은 NLP 툴에 의해 수행될 수 있다. 306은 GEC 시스템(100)의 파싱 모듈(104)에 의해 수행될 수 있다.At 306, the preprocessed input text is parsed to identify one or more target words within each sentence. Target words may be identified from the text tokens based on grammatical error types such that each target word corresponds to at least one grammatical error type. Types of grammatical errors include, but are not limited to, article errors, nominative agreement errors, verb morphological errors, preposition errors, and noun number errors. In some embodiments, the actual classification of each target word for the corresponding grammatical error type is determined. Decisions can be made automatically, for example based on PoS tags and text tokens in sentences. In some embodiments, target word identification and actual classification determination may be performed by an NLP tool such as the Stanford corenlp tool. 306 may be performed by the
308에서, 각각의 목표 단어는 대응하는 분류 기반 GEC 모듈(108)에 디스패치된다. 각각의 분류 기반 GEC 모듈(108)은, 예를 들어, 원시 훈련 샘플(native training sample)에 관하여 대응하는 문법 오류 유형에 대하여 훈련된 ANN 모델(120)을 포함한다. 308은 GEC 시스템(100)의 목표 단어 디스패칭 모듈(106)에 의해 수행될 수 있다. 310에서, 각각의 문장 내의 하나 이상의 문법 오류가 ANN 모델(120)을 이용하여 검출된다. 일부 실시예에서, 각각의 목표 단어에 대하여, 대응하는 문법 오류 유형에 대한 목표 단어의 분류는 대응하는 ANN 모델(120)을 이용하여 추정될 수 있다. 그 다음, 문법 오류는 목표 단어와 목표 단어의 추정된 분류에 기초하여 검출될 수 있다. 예를 들어, 추정이 원 라벨과 상이하고 확률이 미리 정의된 임계값보다 더 크다면, 문법 오류가 발견될 것으로 여겨진다. 310은 GEC 시스템(100)의 분류 기반 GEC 모듈(108)에 의해 수행될 수 있다.At 308, each target word is dispatched to the corresponding classification-based
312에서, 각각의 문장에서의 하나 이상의 문법 오류가 기계 번역을 이용하여 검출될 수 있다. 312는 GEC 시스템(100)의 기계 번역 기반 GEC 모듈(110)에 의해 수행될 수 있다. 314에서, 각각의 문장에서의 하나 이상의 문법 오류가 미리 정의된 규칙에 의하여 검출될 수 있다. 314는 GEC 시스템(100)의 규칙 기반 GEC 모듈(112)에 의해 수행될 수 있다. 일부 실시예에서, GEC 시스템(100)의 수행을 더 개선하기 위하여 파이프라인 아키텍처가 임의의 적합한 기계 번역 및/또는 사전 정의 규칙 기반 방법을 본 명세서에 설명된 분류 기반 방법과 결합하는데 사용될 수 있다.At 312, one or more grammatical errors in each sentence may be detected using machine translation. 312 may be performed by the machine translation-based
316에서, 검출된 문법 오류에 대한 정정 및/또는 입력 텍스트의 문법 점수가 제공된다. 일부 실시예에서, 대응하는 문법 오류 유형에 기초하여 가중치가 목표 단어의 각각의 문법 오류 결과에 적용될 수 있다. 각각의 문장의 문법 점수는 각각의 문법 오류 결과에 적용된 가중치뿐만 아니라 문법 오류 결과 및 문장 내의 목표 단어에 기초하여 결정된다. 또한, 일부 실시예에서, 문법 점수는 문장이 수신되는 사용자와 연관된 정보에 기초하여 제공될 수 있다. 검출된 문법 오류에 대한 정정에 관하여, 일부 실시예에서, 대응하는 문법 오류 유형에 대한 목표 단어의 추정된 분류가 정정을 생성하는데 사용될 수 있다. 정정 및 문법 점수가 반드시 함께 제공될 필요가 없다는 것이 이해되어야 한다. 316은 GEC 시스템(100)의 채점/정정 모듈(114)에 의해 수행될 수 있다.At 316, corrections for detected grammatical errors and/or grammar scores of the input text are provided. In some embodiments, a weight may be applied to each grammatical error result in the target word based on the corresponding grammatical error type. The grammatical score of each sentence is determined based on the grammatical error result and the target word in the sentence, as well as the weight applied to each grammatical error result. Additionally, in some embodiments, a grammar score may be provided based on information associated with the user from whom the sentence is received. Regarding corrections to detected grammatical errors, in some embodiments, an estimated classification of the target word for the corresponding type of grammatical error may be used to generate the correction. It should be understood that correction and grammar scores do not necessarily have to be provided together. 316 may be performed by the scoring/
도 4는 일 실시예에 따른 도 1의 GEC 시스템(100)의 분류 기반 GEC 모듈(108)의 일례를 도시하는 블록도이다. 위에서 설명된 바와 같이, 분류 기반 GEC 모듈(108)은 문장(402) 내의 목표 단어를 수신하고 목표 단어의 대응하는 문법 오류 유형에 대한 ANN 모델(120)을 이용하여 목표 단어의 분류를 추정하도록 구성된다. 또한, 문장(402) 내의 목표 단어는 목표 단어 라벨링 유닛(404)(예를 들어, 파싱 모듈(104) 내)에 의해 수신된다. 목표 단어 라벨링 유닛(404)은, 예를 들어, PoS 태그 또는 문장(402) 내의 텍스트 토큰에 기초하여 목표 단어의 실제 분류(예를 들어, 원 라벨)을 결정하도록 구성된다. 분류 기반 GEC 모듈(108)은 목표 단어의 추정된 분류 및 실제 분류에 기초하여 문법 오류 결과를 제공하도록 더 구성된다. 도 4에 도시된 바와 같이, 분류 기반 GEC 모듈(108)은 초기 문맥 생성 유닛(406), 심층 문맥 표현 유닛(408), 분류 유닛(410), 어텐션(attention) 유닛(412) 및 분류 비교 유닛(414)을 포함한다.4 is a block diagram illustrating an example of a classification-based
초기 문맥 생성 유닛(406)은 문장(402) 내의 목표 단어(문맥 단어)를 둘러싸는 단어들에 기초하여 목표 단어의 복수의 초기 문맥 벡터(초기 문맥 매트릭스) 세트를 생성하도록 구성된다. 일부 실시예에서, 초기 문맥 벡터 세트는 문장(402) 내의 목표 단어 전의 적어도 하나의 단어(포워드 문맥 단어)에 기초하여 생성된 포워드 초기 문맥 벡터(포워드 초기 문맥 매트릭스) 세트 및 문장(402) 내의 목표 단어 후의 적어도 하나의 단어(백워드 문맥 단어)에 기초하여 생성된 백워드 초기 문맥 벡터(백워드 초기 문맥 매트릭스) 세트를 포함한다. 각각의 초기 문맥 벡터는 문장 내의 하나의 문맥 단어를 나타낸다. 일부 실시예에서, 초기 문맥 벡터는 원-핫(one-hot) 벡터의 크기(디멘전(dimension))가 어휘 크기(예를 들어, 어휘 데이터베이스(118)에서의)와 동일하도록 원-핫 인코딩에 기초하여 단어를 표현하는 원-핫 벡터일 수 있다. 일부 실시예에서, 초기 문맥 벡터는 문맥 단어의 단어 임베딩 벡터(word embedding vector)와 같은 어휘 크기보다 작은 디멘전을 갖는 저디멘전 벡터일 수 있다. 예를 들어, 단어 임베딩 벡터는 word2vec 또는 Glove와 같지만 이에 한정되지 않는 임의의 적합한 포괄적 단어 임베딩 접근 방식에 의해 생성될 수 있다. 일부 실시예에서, 초기 문맥 생성 유닛(406)은 하나 이상의 초기 문맥 벡터 세트를 출력하도록 구성된 하나 이상의 순환 신경망을 사용할 수 있다. 초기 문맥 생성 유닛(406)에 의해 사용되는 순환 신경망(들)은 ANN 모델(120)의 일부일 수 있다.The initial
포워드 또는 백워드 초기 문맥 벡터 세트를 생성하기 위하여 사용되는 문맥 단어의 수는 제한되지 않는다는 것이 이해되어야 한다. 일부 실시예에서, 포워드 초기 문맥 벡터 세트는 문장(402) 내의 목표 단어) 전의 모든 단어에 기초하여 생성되고, 백워드 초기 문맥 벡터 세트는 문장(402) 내의 목표 단어 후의 모든 단어에 기초하여 생성된다. 각각의 분류 기반 GEC 모듈(108) 및 대응하는 ANN 모델(120)이 특정 문법 오류 유형을 다루고, 상이한 유형의 문법 오류의 정정이 상이한 단어 거리로부터의 종속성을 필요로 하기 때문에(예를 들어, 전치사는 목표 단어 근처의 단어에 의해 결정되는 반면, 동사의 상태에는 동사로부터 멀리 있는 주어가 영향을 미칠 수 있다), 일부 실시예에서, 포워드 또는 백워드 초기 문맥 벡터 세트를 생성하는데 사용되는 문맥 단어의 수(즉, 윈도우 크기)는 분류 기반 GEC 모듈(108) 및 대응하는 ANN 모델(120)과 연관된 문법 오류 유형에 기초하여 결정될 수 있다.It should be understood that the number of context words used to create either the forward or backward initial context vector set is not limited. In some embodiments, a set of forward initial context vectors is generated based on all words before the target word in
일부 실시예에서, 초기 문맥 벡터는 목표 단어 자체의 단어 기본형(lemma)에 기초하여 생성될 수 있다. 단어 기본형은 단어의 기본 형태이다(예를 들어, "walk", "walks", "walked", "walking"인 단어들은 모두 동일한 단어 기본형 "walk"를 가진다). 예를 들어, 문맥 단어(즉, 문장(402) 내의 목표 단어를 둘러싸는 단어들)에 더하여 명사 수 오류와 연관되는 분류 기반 GEC 모듈(108) 및 대응하는 ANN 모델(120)에 대하여, 목표 단어가 단수 형태인지 또는 복수 형태인지의 여부가 그 자체에 밀접하게 관련되기 때문에, 목표 명사 단어의 단어 기본형 형태가 추출 문맥 정보로서 초기 단어 기본형 문맥 벡터의 형태로 도입될 수 있다. 일부 실시예에서, 목표 단어의 단어 기본형의 초기 문맥 벡터는 포워드 초기 문맥 벡터 세트의 일부 또는 백워드 초기 문맥 벡터 세트의 일부일 수 있다.In some embodiments, an initial context vector may be created based on the word lemma of the target word itself. A word base form is a base form of a word (eg, the words "walk", "walks", "walked", and "walking" all have the same word base form "walk"). For example, for classification-based
일부 알려진 GEC 시스템에서, 언어의 복잡성 때문에 모든 상황을 커버하기 어려운 특징 벡터(feature vector)를 생성하기 위하여 의미 특징(semantic feature)이 설계되어 문장으로부터 수동으로 추출될 필요가 있으며, 이는 언어의 복잡성 때문에 모든 상황을 커버하기는 어렵다. 대조적으로, 문장(402) 내의 목표 단어의 문맥 단어가 초기 문맥 정보(예를 들어, 초기 문맥 벡터 형태)로서 직접 사용되기 때문에, 복잡한 특징 엔지니어링이 본 명세서에 개시된 분류 기반 GEC 모듈(108)에 의해 요구되지 않으며, 아래에서 상세히 설명되는 바와 같이, 심층 문맥 특징 표현이 종단간 방식으로 분류와 공동으로 학습될 수 있다.In some known GEC systems, semantic features need to be designed and extracted manually from sentences in order to generate feature vectors that are difficult to cover all situations because of the complexity of the language. It is difficult to cover all situations. In contrast, since the context words of target words in
도 5를 참조하면, 본 예에서, 문장은 목표 단어 i를 포함하는 n개의 단어 1 내지 n으로 이루어진다. 목표 단어 i 전의 각각의 단어, 즉 단어 1, 단어 2, ... 또는 단어 i-1에 대하여, 대응하는 초기 문맥 벡터 1, 2 또는 i-1이 생성된다. 초기 문맥 벡터 1, 2, ... 및 i-1은 이들이 목표 단어 i 전의 단어로부터 생성되고 순방향으로(즉, 문장의 시작, 즉 맨 처음의 단어 1로부터) 이후 스테이지로 공급되기 때문에 "포워드" 벡터이다. 목표 단어 i 후의 각각의 단어, 즉 단어 i+1, 단어 i+2, ... 또는 단어 n에 대하여, 대응하는 초기 문맥 벡터 i+1, i+2 또는 n이 생성된다. 초기 문맥 벡터 n, ..., i+2 및 i+1은 이들이 목표 단어 i 후의 단어로부터 생성되고 역방향으로(즉, 문장의 마지막, 즉 마지막 단어 n으로부터) 이후 스테이지로 공급되기 때문에 "백워드" 벡터이다.Referring to FIG. 5 , in this example, a sentence consists of
본 예에서, 포워드 초기 문맥 벡터 세트는 단어 임베딩의 디멘전과 동일한 개수의 열(column) 과 목표 단어 i 전의 단어 수와 동일한 개수의 행(row)을 갖는 포워드 초기 문맥 매트릭스로서 표현될 수 있다. 포워드 초기 문맥 매트릭스에서의 첫 번째 행은 첫 번째 단어 1의 단어 임베딩 벡터일 수 있고, 포워드 초기 문맥 매트릭스에서의 마지막 행은 목표 단어 i 바로 전의 단어 i-1의 단어 임베딩 벡터일 수 있다. 백워드 초기 문맥 벡터 세트는 단어 임베딩 디멘전과 동일한 개수의 열과 목표 단어 i 후의 단어 수와 동일한 개수의 행을 갖는 백워드 초기 문맥 매트릭스로서 표현될 수 있다. 백워드 초기 문맥 매트릭스에서의 첫 번째 행은 마지막 단어 n의 단어 임베딩 벡터일 수 있고, 백워드 초기 문맥 매트릭스에서의 마지막 행은 목표 단어 i 바로 후의 단어 i+1의 단어 임베딩 벡터일 수 있다. 각각의 단어 임베딩 벡터의 디멘전의 수는 적어도 100, 예를 들어, 300일 수 있다. 또한, 본 예에서, 단어 기본형 초기 문맥 벡터(lem)(예를 들어, 단어 임베딩 벡터)는 목표 단어 i의 단어 기본형에 기초하여 생성될 수 있다.In this example, the set of forward initial context vectors can be represented as a forward initial context matrix with a number of columns equal to the dimension of the word embedding and a number of rows equal to the number of words before target word i. The first row of the forward initial context matrix may be the word embedding vector of the
도 4를 다시 참조하면, 심층 문맥 표현 유닛(408)은, ANN 모델(120)을 이용하여, 문장(402) 내의 문맥 단어, 예를 들어, 초기 문맥 생성 유닛(406)에 의해 생성된 포워드 및 백워드 초기 문맥 벡터 세트에 기초하여 목표 단어의 문맥 벡터를 제공하도록 구성된다. 분류 유닛(410)은, ANN 모델(120)을 이용하여, 문장(402) 내의 목표 단어의 심층 문맥 표현, 예를 들어, 심층 문맥 표현 유닛(408)에 의해 생성된 문맥 벡터에 기초하여 문법 오류 유형에 대한 목표 단어의 분류값을 제공하도록 구성된다.Referring back to FIG. 4 , the deep
도 6을 참조하면, ANN 모델(120)의 일례의 개략도가 일 실시예에 따라 도시된다. 본 예에서, ANN 모델(120)은 심층 문맥 표현 유닛(408)에 의해 사용될 수 있는 심층 문맥 표현 서브 모델(602)과 분류 유닛(410)에 의해 사용될 수 있는 분류 서브 모델(604)을 포함한다. 심층 문맥 표현 서브 모델(602)과 분류 서브 모델(604)은 종단간 방식으로 공동으로 훈련될 수 있다. 심층 문맥 표현 서브 모델(602)은 포워드 순환 신경망(606)과 백워드 순환 신경망(608)인 2개의 순환 신경망을 포함한다. 각각의 순환 신경망(606 또는 608)은 LSTM(long short-term memory) 신경망, 게이트 순환 유닛(gated recurrent unit(GRU)) 신경망 또는 은닉(hidden) 유닛 사이의 연결이 방향성 사이클(directed cycle)을 형성하는 임의의 다른 적합한 순환 신경망일 수 있다.Referring to FIG. 6 , a schematic diagram of an example of an
순환 신경망(606, 608)은 문장(402) 내의 목표 단어의 문맥 단어로부터 생성된 초기 문맥 벡터에 기초하여 목표 단어의 문맥 벡터를 출력하도록 구성된다, 일부 실시예에서, 포워드 순환 신경망(606)은 포워드 초기 문맥 벡터 세트를 수신하고 포워드 초기 문맥 벡터 세트에 기초하여 목표 단어의 포워드 문맥 벡터를 제공하도록 구성된다. 포워드 순환 신경망(606)은 순방향으로 포워드 초기 문맥 벡터 세트를 공급받을 수 있다. 백워드 순환 신경망(608)은 백워드 초기 문맥 벡터 세트를 수신하고 백워드 초기 문맥 벡터 세트에 기초하여 목표 단어의 백워드 문맥 벡터를 제공하도록 구성된다. 백워드 순환 신경망(608)은 역방향으로 백워드 초기 문맥 벡터 세트를 공급받을 수 있다. 일부 실시예에서, 포워드 및 백워드 초기 문맥 벡터 세트는 위에서 설명된 바와 같은 단어 임베딩 벡터일 수 있다. 일부 실시예에서, 목표 단어의 단어 기본형 초기 문맥 벡터가 포워드 순환 신경망(606) 및/또는 백워드 순환 신경망(608)으로 공급되어 포워드 문맥 벡터 및/또는 백워드 문맥 벡터를 생성할 수 있다는 것이 이해되어야 한다.Recurrent
이제 도 5를 참조하면, 본 예에서, 포워드 순환 신경망은 순방향으로 포워드 초기 문맥 벡터 세트(예를 들어, 포워드 초기 문맥 매트릭스의 형태)를 공급받아 포워드 문맥 벡터 for를 생성한다. 백워드 순환 신경망은 역방향으로 백워드 초기 문맥 벡터 세트(예를 들어, 백워드 초기 문맥 매트릭스의 형태)를 공급받아 백워드 문맥 벡터 back을 생성한다. 일부 실시예에서, 단어 기본형 초기 문맥 벡터 lem이 포워드 순환 신경망 및/또는 백워드 순환 신경망으로 공급될 수 있다는 것이 이해되어야 한다. 포워드 및 백워드 순환 신경망의 각각 내의 은닉 유닛의 개수는 적어도 300개, 예를 들어 600개이다. 본 예에서, 그 다음, 목표 단어 i의 심층 문맥 벡터 i가 포워드 문맥 벡터 for 및 백워드 문맥 벡터 back을 연결(concatenating)하여 생성된다. 심층 문맥 벡터 i는 목표 단어 i를 둘러싸는 문맥 단어 i 내지 i-1 및 문맥 단어 i+1 내지n(그리고 일부 실시예에서는 목표 단어 i의 단어 기본형)에 기초하여 목표 단어 i의 심층 문맥 정보를 표현한다. 다른 말로 하면, 심층 문맥 벡터 i는 목표 단어 i 주위의 연합 문장 문맥(joint sentential context)의 임베딩으로서 고려될 수 있다. 위에서 설명된 바와 같이, 심층 문맥 벡터 i는 목표 단어 i의 문맥을 표현하기 위한 의미 특징을 수동으로 설계하고 추출하는데 복잡한 특징 엔지니어링이 필요 없기 때문에 다양한 상황을 다룰 수 있는 포괄적인 표현이다.Referring now to FIG. 5 , in this example, the forward recurrent neural network is fed a set of forward initial context vectors (e.g., in the form of a forward initial context matrix) in the forward direction and generates a forward context vector for. A backward recurrent neural network is fed a set of backward initial context vectors (e.g., in the form of a backward initial context matrix) in the backward direction and produces a backward context vector back. It should be appreciated that in some embodiments, the word base-type initial context vector lem may be fed into a forward recurrent neural network and/or a backward recurrent neural network. The number of hidden units in each of the forward and backward recurrent neural networks is at least 300, for example 600. In this example, the deep context vector i of target word i is then generated by concatenating the forward context vector for and the backward context vector back. The deep context vector i is the deep contextual information of target word i based on the context words i to i−1 and context words i+1 to n (and in some embodiments the word lemma of target word i) surrounding target word i. express In other words, the deep context vector i can be considered as an embedding of the joint sentential context around the target word i. As described above, the deep context vector i is a comprehensive expression that can handle a variety of situations because it does not require complex feature engineering to manually design and extract semantic features to express the context of target word i.
도 6을 다시 참조하면, 분류 서브 모델(604)은 목표 단어의 문맥 벡터에 기초하여 문법 오류 유형에 대한 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망(610)을 포함한다. 피드포워드 신경망(610)은 다층 퍼셉트론(multi-layer perceptron(MLP)) 신경망 또는 은닉 유닛 사이의 연결이 사이클을 형성하지 않는 임의의 다른 적합한 피드포워드 신경망을 포함할 수 있다. 예를 들어, 도 5에 도시된 바와 같이, 심층 문맥 벡터 i가 피드포워드 신경망에 공급되어 목표 단어 i의 분류값(y)을 생성한다. 다른 문법 오류 유형에 대하여, 분류값(y)은 표 1에 보여진 바와 같이 다른 방식으로 정의될 수 있다. 문법 오류 유형이 표 1에서의 5개의 예에 한정되지 않고, 분류값(y)의 정의가 표 1에 보여진 예에 의해 한정되지 않는다는 것이 이해되어야 한다. 또한, 일부 실시예에서, 분류값(y)이 문법 오류 유형과 연관된 클래스(라벨)에 대한 목표 단어의 확률 분포로서 표현될 수 있다는 것이 이해되어야 한다.Referring back to FIG. 6 , the
일부 실시예에서, 피드포워드 신경망(610)은 문맥 벡터에서의 완전 연결 선형 연산(fully connected linear operation)의 제1 활성화 함수(activation function)를 갖는 제1 층을 포함할 수 있다. 제1 층에서의 제1 활성화 함수는, 예를 들어, 정류 선형 유닛(rectified linear unit) 활성화 함수 또는 이전 층(들)으로부터의 1배(one fold) 출력의 함수인 임의의 다른 적합한 활성화 함수일 수 있다. 또한, 피드포워드 신경망(610)은 제1 층에 연결되고 분류값을 생성하기 위한 제2 활성화 함수를 갖는 제2 층을 포함할 수 있다. 제2 층에서의 제2 활성화 함수는, 예를 들어, 소프트맥스(softmax) 함수 또는 다계층(multiclass) 분류를 위하여 사용되는 임의의 다른 적합한 활성화 함수일 수 있다.도 4를 다시 참조하면, 일부 실시예에서, 어텐션 유닛(412)은, ANN 모델(120)을 사용하여, 문장(402) 내의 목표 단어 전의 적어도 하나의 단어 및 목표 단어 후의 적어도 하나의 단어에 기초하여 목표 단어의 문맥 가중치 벡터(context weight vector)를 제공하도록 구성된다. 도 7은 일 실시예에 따른 문법 오류 정정을 위한 ANN 모델(120)의 다른 예를 도시하는 개략도이다. 도 6에 도시된 예와 비교하여, 도 7의 ANN 모델(120)은 어텐션 유닛(412)에 의해 사용될 수 있는 어텐션 메커니즘 서브 모델(702)을 더 포함한다. 그 다음, 문맥 가중치 벡터를 문맥 벡터에 적용함으로써 가중치가 주어진 문맥 벡터가 계산된다. 심층 문맥 표현 서브 모델(602), 분류 서브 모델(604) 및 어텐션 메커니즘 서브 모델(702)은 종단간 방식으로 공동으로 훈련될 수 있다. 일부 실시예에서, 어텐션 메커니즘 서브 모델(702)은 목표 단어의 문맥 단어에 기초하여 목표 단어의 문맥 가중치 벡터를 생성하도록 구성된 피드포워드 신경망(704)을 포함한다. 피드포워드 신경망(704)은 문장 내의 목표 단어까지의 각각의 문맥 단어 사이의 거리에 기초하여 훈련될 수 있다. 일부 실시예에서, 문맥 가중치 벡터가 목표 단어까지의 상이한 거리에 따라 문맥 단어의 가중치를 조정할 수 있기 때문에, 초기 문맥 벡터 세트는 문장 내의 모든 둘러싸는 단어에 기초하여 생성될 수 있고, 문맥 가중치 벡터는 문법적 용례에 영향을 미치는 문맥 단어에 초점을 맞추도록 가중치가 주어진 문맥 벡터를 튜닝할 수 있다.In some embodiments, feedforward
도 4를 다시 참조하면, 분류 비교 유닛(414)은 분류 유닛(410)에 의해 제공된 추정된 분류값을 목표 단어 라벨링 유닛(404)에 의해 제공된 실제 분류값과 비교하여 문법 오류 유형의 임의의 오류의 존재를 검출한다. 실제 분류값이 추정된 분류값과 동일하다면, 문법 오류 유형의 오류가 목표 단어에 대하여 검출되지 않는다. 그렇지 않으면, 문법 오류 유형의 오류가 검출되고, 추정된 분류값이 정정을 제공하기 위하여 사용된다. 예를 들어, 도 2에 관하여 위에서 설명된 예에서, 동사 형태 오류에 대한 목표 단어 "adding"의 추정된 분류값은 "0"(기본형)인 반면, 목표 단어 "adding"의 실제 분류값은 "1"(동명사 또는 현재 분사)이다. 따라서, 동사 형태 오류가 검출되고, 정정은 목표 단어 "adding"의 기본형이다.Referring again to FIG. 4 , the
도 8은 일 실시예에 따른 도 6의 ANN 모델(120)의 일례를 도시하는 상세 개략도이다. 본 예에서, ANN 모델(120)은 공동으로 훈련되는 포워드 GRU 신경망, 백워드 GRU 신경망 및 MLP 신경망을 포함한다. 문장 "I go to school everyday"에서의 목표 단어 "go"에 대하여, 전방 문맥 단어 "I"는 왼쪽에서 오른쪽으로(순방향으로) 포워드 GRU 신경망에 공급되고, 후방 문맥 단어들 "to school everyday"는 오른쪽에서 왼쪽으로(역방향으로) 백워드 GRU 신경망으로 공급된다. 문맥 w1:n을 고려하면, 목표 단어 wi에 대한 문맥 벡터는 수학식 1로서 정의될 수 있다:8 is a detailed schematic diagram illustrating an example of the
여기에서, lGRU는 주어진 문맥에서 왼쪽에서 오른쪽(순방향)으로 단어들을 읽는 GRU이고, rGRU는 주어진 문맥에서 오른쪽에서 왼쪽(역방향)으로 단어들을 읽는 정반대U이다. l/f는 문맥 단어의 별개의 왼쪽에서 오른쪽/오른쪽에서 왼쪽 단어 임베딩을 나타낸다. 그 후, 양측의 상호 종속성을 캡처하기 위하여, 연결된(concatenated) 벡터가 MLP 신경망에 공급된다. MLP 신경망에서의 제2 층에서, 소프트맥스 층이 목표 단어의 분류(예를 들어, 목표 단어 또는 목표 단어의 상태, 예를 들어, 단수 또는 복수)를 예측하기 위하여 사용될 수 있다:Here, lGRU is a GRU that reads words from left to right (forward) in a given context, and rGRU is the opposite U that reads words from right to left (backward) in a given context. l/f denotes distinct left-to-right/right-to-left word embeddings of context words. The concatenated vectors are then fed into the MLP neural network to capture the mutual dependencies of both sides. In the second layer in the MLP neural network, a softmax layer can be used to predict the target word's class (e.g., the target word or its state, e.g., singular or plural):
여기에서, ReLU는 정류 선형 유닛 활성화 함수이고, ReLU(x) = max(0, x)이며, L(x) = W(x)+b는 완전 연결 선형 연산이다. 본 예에서의 ANN 모델(120)의 최종 출력은 다음과 같다:where ReLU is the rectifying linear unit activation function, ReLU(x) = max(0, x), and L(x) = W(x)+b is a fully connected linear operation. The final output of the
여기에서, y는 위에서 설명된 바와 같은 분류값이다.Here, y is a classification value as described above.
도 9는 일 실시예에 따른 문장의 문법 오류 정정 방법(900)의 일례를 도시하는 순서도이다. 방법(900)은 하드웨어(예를 들어, 회로, 전용 로직, 프로그래머블 로직, 마이크로 코드 등), 소프트웨어(예를 들어, 처리 장치 상에서 실행되는 명령어) 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 수행될 수 있다. 모든 단계들이 본 명세서에 제공된 개시 내용을 수행하는데 필요하지 않을 수 있다는 것이 이해되어야 한다. 또한, 당해 업계의 통상의 기술자에 의해 이해되는 바와 같이, 단계들의 일부는 동시에 수행되거나, 또는 도 9에 도시된 것과 다른 순서로 수행될 수 있다.9 is a flowchart illustrating an example of a
방법(900)은 도 1 및 4를 참조하여 설명될 것이다. 그러나, 방법(900)은 그 예시적인 실시예에 한정되지 않는다. 902에서, 문장이 수신된다. 문장은 입력 텍스트의 일부일 수 있다. 902는 GEC 시스템(100)의 입력 전처리 모듈(102)에 의해 수행될 수 있다. 904에서, 문장 내의 하나 이상의 목표 단어가 하나 이상의 문법 오류 유형에 기초하여 식별된다. 각각의 목표 단어는 하나 이상의 문법 오류 유형에 대응한다. 904는 GEC 시스템(100)의 파싱 모듈(104)에 의해 수행될 수 있다. 906에서, 대응하는 문법 오류 유형에 대한 하나의 목표 단어의 분류가 문법 오류 유형에 대하여 훈련된 ANN 모델(120)을 이용하여 추정된다. 908에서, 목표 단어 및 목표 단어의 추정된 분류에 기초하여 문법 오류가 검출된다. 검출은 목표 단어의 실제 분류를 목표 단어의 추정된 분류와 비교함으로써 이루어질 수 있다. 906 및 908은 GEC 시스템(100)의 분류 기반 GEC 모듈(108)에 의해 수행될 수 있다.
910에서, 문장에서 아직 처리되지 않은 더 많은 목표 단어가 있는지 판단된다. 결과가 '예'이면, 방법(900)은 문장 내의 다음 목표 단어를 처리하기 위하여 904로 다시 이동한다. 문장 내의 모든 목표 단어가 처리되면, 912에서, 문장에 대한 문법 오류 정정이 문법 오류 결과에 기초하여 제공된다. 각각의 목표 단어의 추정된 분류는 문법 오류 정정을 생성하기 위하여 사용될 수 있다. 또한, 문법 점수가 문법 오류 결과에 기초하여 제공될 수 있다. 912는 GEC 시스템(100)의 채점/정정 모듈(114)에 의해 수행될 수 있다.At 910, it is determined if there are more target words in the sentence that have not yet been processed. If the result is 'yes', the
도 10은 일 실시예에 따른 문법 오류 유형에 대하여 목표 단어를 분류하는 방법(1000)의 일례를 도시하는 순서도이다. 방법(1000)은 하드웨어(예를 들어, 회로, 전용 로직, 프로그래머블 로직, 마이크로 코드 등), 소프트웨어(예를 들어, 처리 장치 상에서 실행되는 명령어) 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 수행될 수 있다. 모든 단계들이 본 명세서에 제공된 개시 내용을 수행하는데 필요하지 않을 수 있다는 것이 이해되어야 한다. 또한, 당해 업계의 통상의 기술자에 의해 이해되는 바와 같이, 단계들의 일부는 동시에 수행되거나, 또는 도 10에 도시된 것과 다른 순서로 수행될 수 있다.10 is a flow chart illustrating an example of a
방법(1000)은 도 1 및 4를 참조하여 설명될 것이다. 그러나, 방법(1000)은 그 예시적인 실시예에 한정되지 않는다. 1002에서, 목표 단어의 문맥 벡터가 문장 내의 문맥 단어에 기초하여 제공된다. 문맥 단어는 문장 내에서 목표 단어를 둘러싸는 임의의 개수의 단어일 수 있다. 일부 실시예에서, 문맥 단어는 목표 단어를 제외한 문장 내의 모든 단어를 포함한다. 일부 실시예에서, 문맥 단어는 또한 목표 단어의 단어 기본형을 포함한다. 문맥 벡터는 문장으로부터 추출된 의미 특징을 포함하지 않는다. 1002는 분류 기반 GEC 모듈(108)의 심층 문맥 표현 유닛(408)에 의해 수행될 수 있다.
1004에서, 문맥 가중치 벡터가 문장 내의 문맥 단어에 기초하여 제공된다. 1006에서, 문맥 가중치 벡터가 문맥 벡터에 적용되어 가중치가 주어진 문맥 벡터를 생성한다. 문맥 가중치 벡터는 목표 단어까지의 문맥 단어의 거리에 기초하여 해당하는 가중치를 문장 내의 각각의 문맥 단어에 적용할 수 있다. 1004 및 1006은 분류 기반 GEC 모듈(108)의 어텐션 유닛(412)에 의해 수행될 수 있다.At 1004, a context weight vector is provided based on the context words within the sentence. At 1006, a context weight vector is applied to the context vector to generate a weighted context vector. The context weight vector may apply a corresponding weight to each context word in the sentence based on the distance of the context word to the target word. 1004 and 1006 may be performed by the
1008에서, 문법 오류 유형에 대한 목표 단어의 분류값이 목표 단어의 가중치가 주어진 문맥 벡터에 기초하여 제공된다. 분류값은 문법 오류 유형과 연관된 다수의 클래스 중 하나를 나타낸다. 분류값은 문법 오류 유형과 연관된 클래스에 대한 목표 단어의 확률 분포일 수 있다. 1008은 분류 기반 GEC 모듈(108)의 분류 유닛(410)에 의해 수행될 수 있다.At 1008, a classification value of the target word for grammatical error type is provided based on the weighted context vector of the target word. The classification value represents one of a number of classes associated with the type of grammatical error. The classification value may be a probability distribution of target words for classes associated with grammatical error types. 1008 may be performed by the
도 11은 일 실시예에 따른 문법 오류 유형에 대하여 목표 단어를 분류하는 방법(1100)의 다른 예를 도시하는 순서도이다. 방법(1100)은 하드웨어(예를 들어, 회로, 전용 로직, 프로그래머블 로직, 마이크로 코드 등), 소프트웨어(예를 들어, 처리 장치 상에서 실행되는 명령어) 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 수행될 수 있다. 모든 단계들이 본 명세서에 제공된 개시 내용을 수행하는데 필요하지 않을 수 있다는 것이 이해되어야 한다. 또한, 당해 업계의 통상의 기술자에 의해 이해되는 바와 같이, 단계들의 일부는 동시에 수행되거나, 또는 도 11에 도시된 것과 다른 순서로 수행될 수 있다.11 is a flowchart illustrating another example of a
방법(1100)은 도 1 및 4를 참조하여 설명될 것이다. 그러나, 방법(1100)은 그 예시적인 실시예에 한정되지 않는다. 1102에서, 목표 단어의 문법 오류 유형이, 예를 들어, 미리 정의된 복수의 문법 오류 유형으로부터 결정된다. 1104에서, 문맥 단어의 윈도우 크기가 문법 오류 유형에 기초하여 결정된다. 윈도우 크기는 문맥 단어로서 고려될 문장 내의 목표 단어 전의 최대 개수의 단어와 목표 단어 전의 최대 개수의 단어를 나타낸다. 윈도우 크기는 상이한 문법 오류 유형에 대하여 다를 수 있다. 예를 들어, 주격 관련 일치 오류 및 동사 형태 오류에 대하여, 이러한 2개의 오류 유형이 일반적으로 목표 단어로부터 멀리 있는 문맥 단어로부터의 종속성을 필요로 하기 때문에, 전체 문장이 문맥으로서 고려될 수 있다. 관사 오류, 전치사 오류 및 명사 수 오류에 대하여, 윈도우 크기는, 관사 오류에 대한 3, 5 또는 10, 전치사 오류에 대한 3, 5 또는 10, 및 명사 수 오류에 대한 10, 15 또는 20과 같이, 전체 문장보다 더 작을 수 있다.
1106에서, 포워드 단어 임베딩 벡터 세트가 목표 단어 전의 문맥 단어들에 기초하여 생성된다. 각각의 포워드 단어 임베딩 벡터의 디멘전의 수는 적어도 100, 예를 들어 300일 수 있다. 포워드 단어 임베딩 벡터 세트가 생성되는 순서는 윈도우 크기 내의 첫 번째 단어로부터 목표 단어 바로 전까지(순방향)일 수 있다. 1108에서, 병렬로, 백워드 단어 임베딩 벡터 세트가 목표 단어 후의 문맥 단어들에 기초하여 생성된다. 각각의 백워드 단어 임베딩 벡터의 디멘전의 수는은 적어도 100, 예를 들어 300일 수 있다. 백워드 단어 임베딩 벡터 세트가 생성되는 순서는 윈도우 크기 내의 마지막 단어로부터 목표 단어 바로 다음까지(역방향)일 수 있다. 1102, 1104, 1106 및 1108은 분류 기반 GEC 모듈(108)의 초기 문맥 생성 유닛(406)에 의해 수행될 수 있다.At 1106, a set of forward word embedding vectors is generated based on the context words preceding the target word. The number of dimensions of each forward word embedding vector may be at least 100, for example 300. The order in which the set of forward word embedding vectors are generated may be from the first word within the window size to just before the target word (forward direction). At 1108, in parallel, a set of backward word embedding vectors is generated based on the context words following the target word. The number of dimensions of each backward word embedding vector may be at least 100, for example 300. The order in which the sets of backward word embedding vectors are generated may be from the last word within the window size to immediately following the target word (reverse direction). 1102, 1104, 1106 and 1108 may be performed by the initial
1110에서, 포워드 문맥 벡터가 포워드 단어 임베딩 벡터 세트에 기초하여 제공된다. 포워드 단어 임베딩 벡터 세트는 원도우 크기 내의 첫 번째 단어의 포워드 단어 임베딩 벡터로부터 목표 단어 바로 전의 단어의 포워드 단어 임베딩 벡터까지(순방향)의 순서에 따라 순환 신경망에 공급될 수 있다. 1112에서, 병렬로, 백워드 문맥 벡터가 백워드 단어 임베딩 벡터 세트에 기초하여 제공된다. 백워드 단어 임베딩 벡터 세트는 원도우 크기 내의 마지막 단어의 백워드 단어 임베딩 벡터로부터 목표 단어 바로 다음의 단어의 백워드 단어 임베딩 벡터까지(역방향)의 순서에 따라 다른 순환 신경망에 공급될 수 있다. 1114에서, 문맥 벡터가 포워드 문맥 벡터 및 백워드 문맥 벡터를 연결하여 제공된다. 1110, 1112 및 1114는 분류 기반 GEC 모듈(108)의 심층 문맥 표현 유닛(408)에 의해 수행될 수 있다.At 1110, forward context vectors are provided based on the set of forward word embedding vectors. The set of forward word embedding vectors may be fed to the recurrent neural network in order from the forward word embedding vector of the first word within the window size to the forward word embedding vector of the word immediately before the target word (forward direction). At 1112, in parallel, a backward context vector is provided based on the set of backward word embedding vectors. The set of backward word embedding vectors may be fed to another recurrent neural network in order from the backward word embedding vector of the last word within the window size to the backward word embedding vector of the word immediately following the target word (backward). At 1114, a context vector is provided by concatenating the forward context vector and the backward context vector. 1110, 1112 and 1114 may be performed by the deep
1116에서, 완전 연결 선형 연산이 문맥 벡터에 적용된다. 1118에서, 제1 층의 활성화 함수, 예를 들어, MLP 신경망의 제1 층의 활성화 함수가 완전 연결 선형 연산의 출력에 적용된다. 활성화 함수는 정류 선형 유닛 활성화 함수일 수 있다. 1120에서, 제2 층의 다른 활성화 함수, 예를 들어, MLP 신경망의 제2 층의 다른 활성화 함수가 제1 층의 활성화 함수의 출력에 적용되어 문법 오류 유형에 대한 목표 단어의 분류값을 생성한다. 문법 오류 유형에 대한 목표 단어의 다계층 분류가 1116, 1118 및 1120에서 MLP 신경망에 의해 문맥 벡터에 기초하여 수행될 수 있다. 1116, 1118 및 1120는 분류 기반 GEC 모듈(108)의 분류 유닛(410)에 의해 수행될 수 있다.At 1116, a fully connected linear operation is applied to the context vector. At 1118, the activation function of the first layer, eg, the activation function of the first layer of the MLP neural network, is applied to the output of the fully connected linear operation. The activation function may be a commutative linear unit activation function. At 1120, another activation function of the second layer, eg, another activation function of the second layer of the MLP neural network, is applied to the output of the activation function of the first layer to generate a classification of the target word for the type of grammatical error. . Multi-level classification of target words for grammatical error types may be performed at 1116, 1118 and 1120 based on the context vectors by the MLP neural network. 1116, 1118 and 1120 may be performed by the
도 12는 일 실시예에 따른 문법 점수를 제공하는 방법(1200)의 일례를 도시하는 순서도이다. 방법(1200)은 하드웨어(예를 들어, 회로, 전용 로직, 프로그래머블 로직, 마이크로 코드 등), 소프트웨어(예를 들어, 처리 장치 상에서 실행되는 명령어) 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 수행될 수 있다. 모든 단계들이 본 명세서에 제공된 개시 내용을 수행하는데 필요하지 않을 수 있다는 것이 이해되어야 한다. 또한, 당해 업계의 통상의 기술자에 의해 이해되는 바와 같이, 단계들의 일부는 동시에 수행되거나, 또는 도 12에 도시된 것과 다른 순서로 수행될 수 있다.12 is a flow chart illustrating an example of a
방법(1200)은 도 1 및 4를 참조하여 설명될 것이다. 그러나, 방법(1200)은 그 예시적인 실시예에 한정되지 않는다. 1202에서, 사용자 인자(user factor)가 사용자의 정보에 기초하여 결정된다. 정보는, 예를 들어, 모국어, 거주지, 교육 수준, 나이, 과거의 점수 등을 포함한다. 1204에서, 정밀도 및 리콜의 가중치가 결정된다. 정밀도와 리콜은 GEC를 위한 주요 평가 기준으로서 조합하여 일반적으로 사용된다. 정밀도(P)와 리콜(R)은 다음과 같이 정의된다:
여기에서, g는 특정 문법 오류 유형에 대한 2개의 인간 주석의 골드 스탠다드(gold standard)이고, e는 대응하는 시스템 편집이다. 많은 다른 문법 오류 유형과 동사 형태 오류 유형 사이에 중첩이 있을 수 있고, 따라서, 동사 형태 오류 성능을 계산할 때 g는 모든 문법 오류 유형의 주석에 기초할 수 있다. 정밀도와 리콜 사이의 가중치는 이들을 평가 기준으로서 함께 조합할 때 조정될 수 있다. 예를 들어, 수학식 5에서 정의되는 F0.5는 정밀도와 리콜을 함께 조합하는 반면, 정확한 피드백이 일부 실시예에서 커버리지보다 더 중요할 때 정밀도에 2배의 가중치를 할당한다:where g is the gold standard of two human annotations for a particular type of grammatical error, and e is the corresponding system edit. There may be overlap between many different grammatical error types and verb morphological error types, so when calculating verb morphological error performance, g can be based on annotations of all grammatical error types. The weighting between precision and recall can be adjusted when combining them together as evaluation criteria. For example, F 0.5 defined in Equation 5 combines precision and recall together, while assigning a double weight to precision when accurate feedback is more important than coverage in some embodiments:
n이 0 내지 1 사이인 Fn이 다른 예에 적용될 수 있다는 것이 이해되어야 한다. 또한, 일부 실시예에서, 상이한 문법 오류 유형에 대하여 가중치는 다를 수 있다.It should be understood that F n where n is between 0 and 1 may apply to other examples. Also, in some embodiments, weights may be different for different grammatical error types.
1206에서, 채점 함수가 사용자 인자 및 가중치에 기초하여 획득된다. 채점 함수는 파라미터로서 사용자 인자 및 가중치(상이한 문법 오류 유형에 대하여 동일하거나 상이함)를 사용할 수 있다. 1208에서, 문장 내의 각각의 목표 단어의 문법 오류 결과가 수신된다. 1210에서, 문법 점수가 문법 오류 결과 및 채점 함수에 기초하여 제공된다. 문법 오류 결과는 채점 함수의 변수일 수 있고, 사용자 인자 및 가중치는 채점 함수의 파라미터일 수 있다. 1202, 1204, 1206, 1208 및 1210은 GEC 시스템(100)의 채점/정정 모듈(114)에 의해 수행될 수 있다.At 1206, a scoring function is obtained based on user factors and weights. The scoring function may use user factors and weights (same or different for different grammatical error types) as parameters. At 1208, results of grammatical errors for each target word in the sentence are received. At 1210, a grammar score is provided based on the grammatical error result and the scoring function. The grammatical error result may be a variable of the scoring function, and the user factors and weights may be parameters of the scoring function. 1202, 1204, 1206, 1208 and 1210 may be performed by scoring/
도 13은 일 실시예에 따른 ANN 모델 훈련 시스템(1300)을 도시하는 블록도이다. ANN 모델 훈련 시스템(1300)은 훈련 알고리즘(1308)을 이용하여 목적 함수(objective function)(1306)에 기초하여 훈련 샘플(1304) 세트에 걸쳐 특정 문법 오류 유형에 대하여 각각의 ANN 모델(120)을 훈련시키도록 구성된 모델 훈련 모듈(1302)을 포함한다. 일부 실시예에서, 각각의 훈련 샘플(1304)은 원시(native) 훈련 샘플일 수 있다. 본 명세서에서 개시된 원시 훈련 샘플은, 하나 이상의 문법 오류를 갖는 문장을 포함하는 학습자 훈련 샘플에 반대로, 문법 오류가 없는 문장을 포함한다. 맞춤형 훈련을 필요로 하는, 즉 감독되는 훈련 데이터의 크기 및 능력에 의해 제한되는 훈련 샘플(예를 들어, 학습자 훈련 샘플)로서 감독되는 데이터를 이용하는 일부 알려진 GEC 시스템에 비하여, ANN 모델 훈련 시스템(1300)은 ANN 모델(120)을 더욱 효과적이고 효율적으로 훈련시키기 위하여 훈련 샘플(1304)로서 풍부한 원시 평문 코퍼스를 활용할 수 있다. 예를 들어, 훈련 샘플(1304)은 위키 덤프(wiki dump)로부터 획득될 수 있다. ANN 모델 훈련 시스템(1300)을 위한 훈련 샘플(1304)이 원시 훈련 샘플에 한정되지 않는다는 것이 이해되어야 한다. 일부 실시예에서, 소정의 문법 오류 유형에 대하여, ANN 모델 훈련 시스템(1300)은 학습자 훈련 샘플을 이용하여 또는 원시 훈련 샘플과 학습자 훈련 샘플의 조합을 이용하여 ANN 모델(120)을 훈련시킬 수 있다.13 is a block diagram illustrating an ANN
도 14는 도 13의 ANN 모델 훈련 시스템(1300)에 의해 사용되는 훈련 샘플(1304)의 일례에 대한 도면이다. 훈련 샘플은 하나 이상의 문법 오류 유형 1, ..., n과 연관된 문장을 포함한다. 훈련 샘플이 문법 오류가 없는 원시 훈련 샘플일 수 있더라도, 전술한 바와 같이 특정 단어가 예를 들어 이의 PoS 태그에 기초하여 하나 이상의 문법 오류 유형과 연관되기 때문에, 문장은 여전히 문법 오류 유형과 연관될 수 있다. 예를 들어, 문장이 동사를 포함하는 한, 문장은, 예를 들어, 동사 형태 오류 및 주격 관련 일치 오류와 연관될 수 있다. 하나 이상의 목표 단어 1, ..., m이 각각의 문법 오류 유형과 연관될 수 있다. 예를 들어, 문장 내의 모든 동사가 훈련 샘플에서 동사 형태 오류 또는 주격 관련 일치 오류에 대한 목표 단어이다. 각각의 목표 단어에 대하여, 이는 다음의 2개의 정보와 더 연관된다: 단어 임베딩 벡터 세트(매트릭스)(x) 및 실제 분류값(y). 단어 임베딩 벡터 세트(x)는 문장 내의 목표 단어의 문맥 단어에 기초하여 생성될 수 있다. 일부 실시예에서, 단어 임베딩 벡터 세트(x)가 원-핫 벡터 세트와 같은 임의의 다른 초기 문맥 벡터 세트일 수 있다는 것이 이해되어야 한다. 위에서 설명된 바와 같이, 실제 분류값(y)은 명사 수 오류에 대하여 단수에 대한 "0" 및 복수에 대한 "1"과 같은 특정 문법 오류 유형에 대한 클래스 라벨 중 하나일 수 있다. 따라서, 훈련 샘플은 단어 임베딩 벡터 세트(x) 및 실제 분류값(y) 쌍을 포함하며, 그 각각은 문장 내의 문법 오류 유형에 대한 목표 단어에 대응한다.FIG. 14 is a diagram of an example of a
도 13을 다시 참조하면, ANN 모델(120)은 훈련 샘플(1304)을 공급받을 때 모델 훈련 모듈(1302)에 의해 공동으로 조정될 수 있는 복수의 파라미터를 포함한다. 모델 훈련 모듈(1302)은 훈련 알고리즘(1308)을 이용하여 훈련 샘플(1304)에 걸쳐 목적 함수(1306)를 최소화하기 위하여 ANN 모델(120)의 파라미터들을 공동으로 조정한다. 도 8에 대하여 위에서 설명된 예에서, ANN 모델(120)을 훈련시키기 위한 목적 함수는 다음과 같다:Referring back to FIG. 13 , the
여기서, n은 훈련 샘플(1304)의 개수이다. 훈련 알고리즘(1308)은, 경사 하강(gradient descent) 알고리즘(예를 들어, 스토캐스틱(stochastic) 경사 하강 알고리즘)을 포함하는, 목적 함수(1306)의 최소를 찾기 위한 임의의 적합한 반복 최적화 알고리즘일 수 있다.where n is the number of
도 15는 일 실시예에 따른 문법 오류 정정을 위한 ANN 모델 훈련 방법(1500)의 일례를 도시하는 순서도이다. 방법(1500)은 하드웨어(예를 들어, 회로, 전용 로직, 프로그래머블 로직, 마이크로 코드 등), 소프트웨어(예를 들어, 처리 장치 상에서 실행되는 명령어) 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 수행될 수 있다. 모든 단계들이 본 명세서에 제공된 개시 내용을 수행하는데 필요하지 않을 수 있다는 것이 이해되어야 한다. 또한, 당해 업계의 통상의 기술자에 의해 이해되는 바와 같이, 단계들의 일부는 동시에 수행되거나, 또는 도 15에 도시된 것과 다른 순서로 수행될 수 있다.15 is a flowchart illustrating an example of a
방법(1500)은 도 13을 참조하여 설명될 것이다. 그러나, 방법(1500)은 그 예시적인 실시예에 한정되지 않는다. 1502에서, 문법 오류 유형에 대한 ANN 모델이 제공된다. ANN 모델은 문법 오류 유형에 대하여 문장 내의 목표 단어의 분류를 추정하기 위한 것이다. ANN 모델은, 예를 들어, 도 6 및 7에 도시된 것과 같은, 본 명세서에 개시된 임의의 ANN 모델일 수 있다. 일부 실시예에서, ANN 모델은 문장 내의 목표 단어 전의 적어도 하나의 단어 및 문장 내의 목표 단어 후의 적어도 하나의 단어에 기초하여 목표 단어의 문맥 벡터를 출력하도록 구성된 2개의 순환 신경망을 포함할 수 있다. 일부 실시예에서, 문맥 벡터는 훈련 샘플에서 문장의 의미 특징을 포함하지 않는다. 위에서 설명된 바와 같이, ANN 모델은 포워드 순환 신경망(606) 및 백워드 순환 신경망(608)으로서 파라미터화될 수 있는 심층 문맥 표현 서브 모델(602)을 포함할 수 있다. 또한, ANN 모델은 목표 단어의 문맥 벡터에 기초하여 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망을 포함할 수 있다. 위에서 설명된 바와 같이, ANN 모델은 피드포워드 신경망(610)으로서 파라미터화될 수 있는 분류 서브 모델(604)을 포함할 수 있다.
1504에서, 훈련 샘플이 획득된다. 각각의 훈련 샘플은 목표 단어를 갖는 문장과 문법 오류 유형에 대한 목표 단어의 실제 분류를 포함한다. 일부 실시예에서, 훈련 샘플은 포워드 단어 임베딩 벡터 세트와 백워드 단어 임베딩 벡터 세트를 포함하는 목표 단어의 단어 임베딩 매트릭스를 포함할 수 있다. 각각의 포워드 단어 임베딩 벡터는 목표 단어 전의 해당하는 문맥 단어에 기초하여 생성되고, 각각의 백워드 단어 임베딩 벡터는 목표 단어 후의 해당하는 문맥 단어에 기초하여 생성된다. 각각의 단어 임베딩 벡터의 디멘전의 수는 적어도 100, 예를 들어 300일 수 있다.At 1504, training samples are obtained. Each training sample includes a sentence with the target word and an actual classification of the target word for the type of grammatical error. In some embodiments, the training samples may include a word embedding matrix of target words comprising a set of forward word embedding vectors and a set of backward word embedding vectors. Each forward word embedding vector is generated based on the corresponding context word before the target word, and each backward word embedding vector is generated based on the corresponding context word after the target word. The number of dimensions of each word embedding vector may be at least 100, for example 300.
1506에서, ANN 모델의 파라미터들이, 예를 들어, 종단간 방식으로, 공동으로 조정된다. 일부 실시예에서, 순환 신경망(606, 608)과 연관된 심층 문맥 표현 서브 모델(602)의 제1 파라미터 세트가 각각의 훈련 샘플에서 목표 단어의 실제 분류 및 추정된 분류 사이의 차이에 기초하여 피드포워드 신경망(610)과 연관된 분류 서브 모델(604)의 제2 파라미터 세트와 함께 공동으로 조정된다. 일부 실시예에서, 포워드 순환 신경망(606)과 연관된 파라미터는 백워드 순환 신경망(608)과 연관된 파라미터와 분리된다. 또한, 일부 실시예에서, ANN 모델은 피드포워드 신경망(610)으로서 파라미터화될 수 있는 어텐션 메커니즘 서브 모델(702)을 포함할 수 있다. 피드포워드 신경망(610)과 연관된 어텐션 메커니즘 서브 모델(702)의 파라미터들도 또한 ANN 모델의 다른 파라미터와 함께 공동으로 조정될 수 있다. 일부 실시예에서, ANN 모델의 파라미터들은 훈련 알고리즘(1308)을 이용하여 목적 함수(1306)로부터 각각의 훈련 샘플 내의 목표 단어의 실제 분류와 추정된 분류 사이의 차이를 최소화하도록 공동으로 조정된다. 1502, 1504 및 1506은 ANN 모델 훈련 시스템(1300)의 모델 훈련 모듈(1302)에 의해 수행될 수 있다.At 1506, the parameters of the ANN model are tuned jointly, eg, in an end-to-end manner. In some embodiments, the first set of parameters of the deep
도 16은 일 실시예에 따른 문법 오류 정정을 위하여 ANN 모델(120)을 훈련시키는 일례를 도시하는 개략도이다. 본 예에서, ANN 모델(120)은 특정 문법 오류 유형에 대하여 훈련 샘플(1304)에 걸쳐 훈련된다. 훈련 샘플(1304)은 원시 텍스트로부터 유래하고 도 1에 대하여 위에서 설명된 바와 같이 전처리 및 파싱될 수 있다. 각각의 훈련 샘플(1304)은 문법 오류 유형에 대한 목표 단어를 갖는 문장과 문법 오류 유형에 대한 목표 단어의 실제 분류를 포함한다. 일부 실시예에서, 목표 단어의 단어 임베딩 매트릭스(x)와 목표 단어의 실제 분류값(y)을 포함하는 쌍이 각각의 훈련 샘플(1304)로부터 획득될 수 있다. 단어 임베딩 매트릭스(x)는 목표 단어 전의 문맥 단어에 기초하여 생성된 포워드 단어 임베딩 벡터 세트 및 목표 단어 후의 문맥 단어에 기초하여 생성된 백워드 단어 임베딩 벡터 세트를 포함할 수 있다. 따라서, 훈련 샘플(1304)은 복수의 (x, y) 쌍을 포함할 수 있다.16 is a schematic diagram illustrating an example of training an
일부 실시예에서, ANN 모델(120)은 복수의 순환 신경망 1 내지 n(1602)과 복수의 피드포워드 신경망 1 내지 m(1604)을 포함할 수 있다. 신경망(1602, 1604)의 각각은 훈련 알고리즘(1308)을 이용하여 목적 함수(1306)에 기초하여 훈련 샘플(1304)에 걸쳐 훈련될 파라미터 세트와 연관된다. 순환 신경망(1602)은 목표 단어의 문맥 단어에 기초하여 목표 단어의 문맥 벡터를 출력하도록 구성된 포워드 순환 신경망 및 백워드 순환 신경망을 포함할 수 있다. 일부 실시예에서, 순환 신경망(1602)은 목표 단어의 문맥 단어에 기초하여 목표 단어의 단어 임베딩 매트릭스를 생성하도록 구성된 다른 하나 이상의 순환 신경망을 더 포함할 수 있다. 피드포워드 신경망(1604)은 목표 단어의 문맥 벡터에 기초하여 목표 단어의 분류값(y')을 출력하도록 구성된 피드포워드 신경망을 포함할 수 있다. 또한, 일부 실시예에서, 피드포워드 신경망(1604)은 문맥 벡터에 적용될 문맥 가중치 벡터를 출력하도록 구성된 다른 피드포워드 신경망을 포함할 수 있다. 신경망(1602, 1604)은 이들이 종단간 방식으로 공동으로 훈련될 수 있도록 연결될 수 있다. 일부 실시예에서, 문맥 벡터는 훈련 샘플(1304) 내의 문장의 의미 특징을 포함하지 않는다.In some embodiments,
일부 실시예에서, 각각의 반복에 대하여, 대응하는 훈련 샘플(1304)에서의 목표 단어의 단어 임베딩 매트릭스(x)는 ANN 모델(120)로 공급되어 신경망(1602, 1604)을 통과할 수 있다. 추정된 분류값(y')은 ANN 모델(120)의 출력층(예를 들어, 피드포워드 신경망(1604)의 일부)으로부터 출력될 수 있다. 대응하는 훈련 샘플(1304)에서의 목표 단어의 추정된 분류값(y')과 실제 분류값(y)은 목적 함수(1306)로 전송될 수 있고, 추정된 분류값(y')과 실제 분류값(y) 사이의 차이는 훈련 알고리즘(1308)을 이용하여 목적 함수(1306)에 의해 사용되어 ANN 모델(120) 내의 각각의 신경망(1602, 1604)과 연관된 각각의 파라미터 세트를 공동으로 조정할 수 있다. 각각의 훈련 샘플(1304)에 걸쳐 ANN 모델(120)에서 각각의 신경망(1602, 1604)과 연관된 각각의 파라미터 세트를 반복적으로 그리고 공동으로 조정함으로써, 추정된 분류값(y')과 실제 분류값(y) 사이의 차이는 점점 더 작아지고, 목적 함수(1306)는 최적화된다.In some embodiments, for each iteration, the word embedding matrix (x) of the target word in the
다양한 실시예들은, 예를 들어, 도 17에 도시된 컴퓨터 시스템(1700)과 같은 하나 이상의 컴퓨터 시스템을 이용하여 구현될 수 있다. 하나 이상의 컴퓨터 시스템(1700)은, 예를 들어, 도 3의 방법(300), 도 9의 방법(900), 도 10의 방법(1000), 도 11의 방법(1100), 도 12의 방법(1200) 및 도 15의 방법(1500)을 구현하도록 사용될 수 있다. 예를 들어, 컴퓨터 시스템(1700)은, 다양한 실시예들에 따라, 문법 오류를 검출하여 정정하고 그리고/또는 문법 오류를 검출하여 정정하기 위한 인공 신경망(artificial neural network) 모델을 훈련시킬 수 있다. 컴퓨터 시스템(1700)은 본 명세서에 설명된 기능을 수행할 수 있는 임의의 컴퓨터일 수 있다.Various embodiments may be implemented using one or more computer systems, such as, for example, computer system 1700 shown in FIG. 17 . One or more computer systems 1700 may be used, for example,
컴퓨터 시스템(1700)은 본 명세서에 설명된 기능을 수행할 수 있는 임의의 잘 알려진 컴퓨터일 수 있다. 컴퓨터 시스템(1700)은 프로세서(1704)와 같은 하나 이상의 프로세서(중앙 처리 유닛 또는 CPU라고도 함)를 포함한다. 프로세서(1704)는 통신 인프라스트럭처 또는 버스(1706)에 연결된다. 하나 이상의 프로세서(1704)는 각각 그래픽 처리 유닛(graphics processing unit(GPU))일 수 있다. 일 실시예에서, GPU는 수학적으로 집중적인 애플리케이션을 처리하도록 설계된 전문화된 전자 회로인 프로세서이다. GPU는 컴퓨터 그래픽 애플리케이션, 이미지, 비디오 등에 공통인 수학적으로 집중적인 데이터와 같은 대형 데이터 블록의 병렬 처리에 효율적인 병렬 구조를 가질 수 있다.Computer system 1700 may be any well-known computer capable of performing the functions described herein. Computer system 1700 includes one or more processors (also referred to as central processing units or CPUs), such as processor 1704. Processor 1704 is coupled to a communications infrastructure or bus 1706. Each of the one or more processors 1704 may be a graphics processing unit (GPU). In one embodiment, a GPU is a processor, a specialized electronic circuit designed to handle mathematically intensive applications. A GPU may have a parallel structure that is efficient for parallel processing of large blocks of data, such as mathematically intensive data common to computer graphics applications, images, video, and the like.
또한, 컴퓨터 시스템(1700)은 사용자 입/출력 인터페이스(들)(1702)를 통해 통신 인프라스트럭처(1706)와 통신하는 모니터, 키보드, 포인팅 장치 등과 같은 사용자 입/출력 장치(1703)를 포함한다.Computer system 1700 also includes user input/output devices 1703, such as monitors, keyboards, pointing devices, etc., that communicate with communications infrastructure 1706 via user input/output interface(s) 1702.
또한, 컴퓨터 시스템(1700)은 랜덤 액세스 메모리(random access memory(RAM))와 같은 주 또는 주요 메모리(1708)를 포함한다. 주 메모리(1708)는 하나 이상의 레벨의 캐시를 포함할 수 있다. 주 메모리(1708)는 그 안에 저장된 제어 로직(즉, 컴퓨터 소프트웨어) 및/또는 데이터를 가진다. 또한, 컴퓨터 시스템(1700)은 하나 이상의 보조 저장 장치 또는 메모리(1710)를 포함할 수 있다. 보조 메모리(1710)는, 예를 들어, 하드 디스크 드라이브(1712) 및/또는 리무버블(removable) 저장 장치 또는 드라이브(1714)를 포함할 수 있다. 리무버블 저장 드라이브(1714)는 플로피 디스크 드라이브, 자기 테이프 드라이브, 컴팩트 디스크 드라이브, 광 저장 장치, 테이프 백업 장치 및/또는 임의의 다른 저장 장치/드라이브일 수 있다. 리무버블 저장 드라이브(1714)는 리무버블 저장 유닛(1718)과 상호 작용할 수 있다. 리무버블 저장 유닛(1718)은 그 상에 저장된 컴퓨터 소프트웨어(제어 로직) 및/또는 데이터를 갖는 컴퓨터 사용 가능하거나 또는 판독 가능한 저장 장치를 포함한다. 리무버블 저장 유닛(1718)은 플로피 디스크, 자기 테이프, 컴팩트 디스크, DVD, 광 저장 디스크 및/또는 임의의 다른 컴퓨터 저장 장치일 수 있다. 리무버블 저장 드라이브(1714)는 잘 알려진 방식으로 리무버블 저장 유닛(1718)으로부터 판독하고 그리고/또는 리무버블 저장 유닛(1718)으로 기록한다.The computer system 1700 also includes a main or primary memory 1708, such as random access memory (RAM). Main memory 1708 may include one or more levels of cache. Main memory 1708 has control logic (ie, computer software) and/or data stored therein. In addition, computer system 1700 may include one or more secondary storage devices or memories 1710 . Secondary memory 1710 may include, for example, a hard disk drive 1712 and/or a removable storage device or drive 1714 . Removable storage drive 1714 may be a floppy disk drive, magnetic tape drive, compact disk drive, optical storage device, tape backup device, and/or any other storage device/drive. A removable storage drive 1714 can interact with a removable storage unit 1718 . Removable storage unit 1718 includes a computer usable or readable storage device having computer software (control logic) and/or data stored thereon. Removable storage unit 1718 may be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/or any other computer storage device. Removable storage drive 1714 reads from and/or writes to removable storage unit 1718 in a well known manner.
예시적인 실시예에 따라, 보조 메모리(1710)는 컴퓨터 프로그램 및/또는 다른 명령어 및/또는 데이터가 컴퓨터 시스템(1700)에 의해 액세스될 수 있게 하도록 다른 수단, 방편 또는 다른 접근 방식을 포함할 수 있다. 이러한 수단, 방편 또는 다른 접근 방식은, 예를 들어, 리무버블 저장 유닛(1722) 및 인터페이스(1720)를 포함할 수 있다. 리무버블 저장 유닛(1722) 및 인터페이스(1720)의 예는, 프로그램 카트리지 및 카트리지 인터페이스(예를 들어, 비디오 게임 장치에서 찾아볼 수 있는 것), 리무버블 메모리 칩(예를 들어, EPROM 또는 PROM) 및 연관된 소켓, 메모리 스틱 및 USB 포트, 메모리 카드 및 연관된 메모리 카드 슬롯 그리고/또는 임의의 다른 리무버블 저장 유닛 및 연관된 인터페이스를 포함할 수 있다.According to an exemplary embodiment, secondary memory 1710 may include other means, measures, or other approaches to enable computer programs and/or other instructions and/or data to be accessed by computer system 1700. . Such means, expedients or other approaches may include, for example, a removable storage unit 1722 and an interface 1720 . Examples of removable storage unit 1722 and interface 1720 are program cartridges and cartridge interfaces (eg, those found in video game devices), removable memory chips (eg, EPROM or PROM). and associated sockets, memory stick and USB ports, memory cards and associated memory card slots and/or any other removable storage units and associated interfaces.
컴퓨터 시스템(1700)은 통신 또는 네트워크 인터페이스(1724)를 더 포함할 수 있다. 통신 인터페이스(1724)는 컴퓨터 시스템(1700)으로 하여금 원격 장치, 원격 네트워크, 원격 엔티티 등(개별적으로 그리고 집합적으로 참조 번호 1728로 참조됨)의 임의의 조합과 통신하고 상호 작용할 수 있게 한다. 예를 들어, 통신 인터페이스(1724)는 컴퓨터 시스템(1700)이 유선 및/또는 무선일 수 있고 LAN, WAN, 인터넷 등의 임의의 조합을 포함할 수 있는 통신 경로(1726)를 통해 원격 장치(1728)와 통신할 수 있게 한다. 제어 로직 및/또는 데이터는 통신 경로(1726)를 통해 컴퓨터 시스템(1700)으로 그리고 컴퓨터 시스템(1700)으로부터 전송될 수 있다.Computer system 1700 may further include a communications or
또한, 일 실시예에서, 그 상에 저장된 제어 로직(소프트웨어)을 갖는 유형의(tangible) 컴퓨터 사용 가능하거나 또는 판독 가능한 매체를 포함하는 유형의 제조 장치 또는 물품은 본 명세서에서 컴퓨터 프로그램 제품 또는 프로그램 저장 장치라 한다. 이것은, 컴퓨터 시스템(1700), 메인 메모리(1708), 보조 메모리(1710) 및 리무버블 저장 유닛(1718, 18722)과, 전술한 것의 임의의 조합을 구체화하는 유형의 제조 물품을 포함하지만 이에 한정되지 않는다. 이러한 제어 로직은, 하나 이상의 데이터 처리 장치(예를 들어, 컴퓨터 시스템(1700))에 의해 실행될 때, 이러한 데이터 처리 장치가 본 명세서에 설명된 바와 같이 동작하게 한다.Further, in one embodiment, a tangible manufacturing apparatus or article comprising a tangible computer usable or readable medium having control logic (software) stored thereon is herein referred to as a computer program product or program storage called a device This includes, but is not limited to, articles of manufacture of a tangible form embodying computer system 1700, main memory 1708, secondary memory 1710, and removable storage units 1718, 18722, and any combination of the foregoing. don't This control logic, when executed by one or more data processing devices (eg, computer system 1700), causes such data processing devices to operate as described herein.
본 개시 내용에 포함된 교시 내용에 기초하여, 도 17에 도시된 것과 다른 데이터 처리 장치, 컴퓨터 시스템 및/또는 컴퓨터 아키텍처를 이용하여 본 개시 내용의 실시예들을 형성하고 사용하는 방법은 관련 기술 분야(들)에서의 통상의 기술자에게 명백할 것이다. 특히, 실시예들은 본 명세서에서 설명된 것이 아닌 소프트웨어, 하드웨어 및/또는 운영 체제 구현예로 동작할 수 있다.Based on the teachings contained in this disclosure, how to make and use embodiments of the present disclosure using a data processing device, computer system, and/or computer architecture other than that shown in FIG. 17 is in the related art ( s) will be clear to those skilled in the art. In particular, embodiments may operate with software, hardware, and/or operating system implementations other than those described herein.
[발명의 내용] 및 [요약서] 부분이 아닌 [발명을 실시하기 위한 구체적인 내용] 부분이 청구범위를 해석하는데 사용되도록 의도된다. [발명의 내용] 및 [요약서] 부분은 발명자(들)에 의해 고려되는 본 개시 내용의 하나 이상의 예시적인 실시예를 설명하지만 모든 예시적인 실시예를 설명하지는 않을 수 있고, 따라서, 어떠한 방식으로도 본 개시 내용 또는 첨부된 청구범위를 제한하려고 의도되지 않는다.It is intended that the [Specific Contents for Carrying Out the Invention] section, not the [Contents of the Invention] and [Abstract] sections, be used to interpret the claims. The [Summary] and [Abstract] sections describe one or more illustrative embodiments of the present disclosure contemplated by the inventor(s), but may not describe all illustrative embodiments, and thus, in no way It is not intended to limit the disclosure or the appended claims.
본 개시 내용이 예시적인 분야 및 애플리케이션을 위한 예시적인 실시예를 참조하여 본 명세서에서 설명되었지만, 본 개시 내용이 그에 한정되지 않는다는 것이 이해되어야 한다. 그에 대한 다른 실시예 및 수정이 가능하며, 본 개시 내용의 범위 및 사상 내에 있다. 예를 들어, 그리고 본 문단의 일반성을 제한하지 않으면서, 실시예들은 도면에 도시되거나 본 명세서에서 설명된 소프트웨어, 하드웨어, 펌웨어 및/또는 엔티티에 제한되지 않는다. 또한, 실시예들은(본 명세서에 명시적으로 설명되는지 여부에 관계 없이) 본 명세서에 설명된 예들을 넘는 분야 및 애플리케이션에 대하여 상당히 활용될 수 있다.Although the present disclosure has been described herein with reference to exemplary embodiments for exemplary fields and applications, it should be understood that the present disclosure is not limited thereto. Other embodiments and modifications thereof are possible and within the scope and spirit of this disclosure. For example, and without limiting the generality of this paragraph, the embodiments are not limited to the software, hardware, firmware and/or entities shown in the drawings or described herein. Further, the embodiments (regardless of whether explicitly described herein or not) may be utilized significantly for fields and applications beyond the examples described herein.
실시예들은 본 명세서에서 특정된 기능들의 구현과 이들의 관계를 나타내는 기능 구성 블록들의 도움으로 설명되었다. 이 기능 구성 블록들의 경계는 설명의 편의를 위하여 본 명세서에서 임의로 정의되었다. 특정된 기능과 관계(또는 이들의 균등물)가 적합하게 수행되는 한 대안적인 경계가 정의될 수 있다. 또한, 대안적인 실시예는 본 명세서에 설명된 것과 다른 순서로 기능 블록, 단계, 동작, 방법 등을 수행할 수 있다.Embodiments have been described with the aid of functional building blocks that represent the implementation of the functions specified herein and their relationship. The boundaries of these functional building blocks are arbitrarily defined in this specification for convenience of description. Alternative boundaries may be defined as long as the specified functions and relationships (or equivalents thereof) are performed suitably. Also, alternative embodiments may perform functional blocks, steps, acts, methods, etc. in an order different from that described herein.
본 개시 내용의 폭과 범위는 어떠한 전술한 예시적인 실시예들에 의해서도 제한되어서는 안 되며, 이어지는 청구범위 및 이의 균등물에 따라서만 정의되어야 한다.The breadth and scope of this disclosure should not be limited by any of the foregoing exemplary embodiments, but should be defined only in accordance with the following claims and equivalents thereto.
Claims (70)
상기 적어도 하나의 프로세서에 의해, 하나 이상의 문법 오류 유형에 적어도 부분적으로 기초하여 상기 문장 내의 하나 이상의 목표 단어(target word)를 식별하는 단계 - 상기 하나 이상의 목표 단어의 각각은 상기 하나 이상의 문법 오류 유형의 적어도 하나에 대응함 -;
상기 하나 이상의 목표 단어의 적어도 하나에 대하여, 상기 적어도 하나의 프로세서에 의해, 상기 문법 오류 유형에 대하여 훈련된 인공 신경망(artificial neural network) 모델을 이용하여 대응하는 상기 문법 오류 유형에 대하여 상기 목표 단어의 분류를 추정하는 단계 - 상기 모델은, (i) 상기 문장 내의 상기 목표 단어 전의 적어도 하나의 단어와 상기 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 상기 목표 단어의 문맥 벡터(context vector)를 출력하도록 구성된 2개의 순환 신경망(recurrent neural network) 및 (ii) 상기 목표 단어의 상기 문맥 벡터에 적어도 부분적으로 기초하여 상기 문법 오류 유형에 대한 상기 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망(feedforward neural network)을 포함함 -; 및
상기 적어도 하나의 프로세서에 의해, 상기 목표 단어 및 상기 목표 단어의 추정된 상기 분류에 적어도 부분적으로 기초하여 상기 문장에서 문법 오류를 검출하는 단계
를 포함하는, 문법 오류 검출 방법.receiving, by at least one processor, a sentence;
identifying, by the at least one processor, one or more target words in the sentence based at least in part on one or more types of grammatical errors, each of the one or more target words being one of the one or more types of grammatical errors; corresponds to at least one -;
With respect to at least one of the one or more target words, an artificial neural network model trained for the grammatical error type is used by the at least one processor to determine the corresponding grammatical error type of the target word. estimating a classification, the model comprising: (i) determining a context vector of the target word based at least in part on at least one word before and after the target word in the sentence; two recurrent neural networks configured to output and (ii) a feedforward neural network configured to output a classification value of the target word for the grammatical error type based at least in part on the context vector of the target word. neural network) -; and
detecting, by the at least one processor, a grammatical error in the sentence based at least in part on the target word and the estimated classification of the target word;
Including, grammatical error detection method.
상기 추정하는 단계는,
상기 2개의 순환 신경망을 이용하여 상기 문장 내의 상기 목표 단어 전의 적어도 하나의 단어와 상기 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 상기 목표 단어의 상기 문맥 벡터를 제공하는 단계; 및
상기 피드포워드 신경망을 이용하여 상기 목표 단어의 상기 문맥 벡터에 적어도 부분적으로 기초하여 상기 문법 오류 유형에 대한 상기 목표 단어의 상기 분류값을 제공하는 단계
를 더 포함하는, 문법 오류 검출 방법.According to claim 1,
The estimating step is
providing the context vector of the target word based at least in part on at least one word before and after the target word in the sentence using the two recurrent neural networks; and
providing the classification value of the target word for the type of grammatical error based at least in part on the context vector of the target word using the feedforward neural network;
Further comprising a grammatical error detection method.
상기 목표 단어의 상기 문맥 벡터는 상기 목표 단어의 단어 기본형(lemma)에 적어도 부분적으로 기초하여 제공되는, 문법 오류 검출 방법.According to claim 2,
wherein the context vector of the target word is provided based at least in part on a word lemma of the target word.
상기 추정하는 단계는,
제1 단어 임베딩 벡터(word embedding vector) 세트를 생성하는 단계 - 상기 제1 단어 임베딩 벡터 세트 내의 각각의 단어 임베딩 벡터는 상기 문장 내의 상기 목표 단어 전의 적어도 하나의 단어 중 해당하는 단어에 기초하여 생성됨 -; 및
제2 단어 임베딩 벡터 세트를 생성하는 단계 - 상기 제2 단어 임베딩 벡터 세트 내의 각각의 단어 임베딩 벡터는 상기 문장 내의 상기 목표 단어 후의 적어도 하나의 단어 중 해당하는 단어에 기초하여 생성됨 -
를 더 포함하는, 문법 오류 검출 방법.According to claim 2,
The estimating step is
Generating a first word embedding vector set, wherein each word embedding vector in the first word embedding vector set is generated based on a corresponding word among at least one word before the target word in the sentence; ; and
generating a second word embedding vector set, wherein each word embedding vector in the second word embedding vector set is generated based on a corresponding word among at least one word after the target word in the sentence;
Further comprising a grammatical error detection method.
각각의 단어 임베딩 벡터의 디멘전(dimension)의 수는 적어도 100인, 문법 오류 검출 방법.According to claim 4,
A method for detecting grammatical errors, wherein the number of dimensions of each word embedding vector is at least 100.
상기 목표 단어 전의 적어도 하나의 단어는 상기 문장 내의 상기 목표 단어 전의 모든 단어를 포함하고; 그리고
상기 목표 단어 후의 적어도 하나의 단어는 상기 문장 내의 상기 목표 단어 후의 모든 단어를 포함하는, 문법 오류 검출 방법.According to claim 1,
the at least one word before the target word includes all words before the target word in the sentence; And
Wherein the at least one word after the target word includes all words after the target word in the sentence.
상기 목표 단어 전의 적어도 하나의 단어의 개수 및/또는 상기 목표 단어 후의 적어도 하나의 단어의 개수는 상기 문법 오류 유형에 적어도 부분적으로 기초하여 결정되는, 문법 오류 검출 방법.According to claim 1,
wherein the number of at least one word before the target word and/or the number of at least one word after the target word is determined based at least in part on the type of grammatical error.
상기 추정하는 단계는,
상기 문장 내의 상기 목표 단어 전의 적어도 하나의 단어 및 상기 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 상기 목표 단어의 문맥 가중치 벡터(context weight vector)를 제공하는 단계; 및
상기 문맥 가중치 벡터를 상기 문맥 벡터에 적용하는 단계
를 더 포함하는, 문법 오류 검출 방법.According to claim 2,
The estimating step is
providing a context weight vector of the target word based at least in part on at least one word before the target word and at least one word after the target word in the sentence; and
applying the context weight vector to the context vector;
Further comprising a grammatical error detection method.
상기 문맥 벡터를 제공하는 단계는,
상기 2개의 순환 신경망 중 제1 순환 신경망을 이용하여 상기 제1 단어 임베딩 벡터 세트에 적어도 부분적으로 기초하여 상기 목표 단어의 제1 문맥 벡터를 제공하는 단계;
상기 2개의 순환 신경망 중 제2 순환 신경망을 이용하여 상기 제2 단어 임베딩 벡터 세트에 적어도 부분적으로 기초하여 상기 목표 단어의 제2 문맥 벡터를 제공하는 단계; 및
상기 제1 및 제2 문맥 벡터를 연결(concatenating)하여 상기 문맥 벡터를 제공하는 단계
를 더 포함하는, 문법 오류 검출 방법.According to claim 4,
Providing the context vector,
providing a first context vector of the target word based at least in part on the first set of word embedding vectors using a first one of the two recurrent neural networks;
providing a second context vector of the target word based at least in part on the second set of word embedding vectors using a second one of the two recurrent neural networks; and
concatenating the first and second context vectors to provide the context vector;
Further comprising a grammatical error detection method.
상기 제1 단어 임베딩 벡터 세트는 상기 문장의 시작에 있는 단어의 단어 임베딩 벡터로부터 시작하여 상기 제1 순환 신경망에 제공되고; 그리고
상기 제2 단어 임베딩 벡터 세트는 상기 문장의 마지막에 있는 단어의 단어 임베딩 벡터로부터 시작하여 상기 제2 순환 신경망에 제공되는, 문법 오류 검출 방법.According to claim 9,
the first set of word embedding vectors is provided to the first recurrent neural network starting from the word embedding vector of the word at the beginning of the sentence; And
wherein the second set of word embedding vectors is provided to the second recurrent neural network starting from a word embedding vector of a word at the end of the sentence.
상기 2개의 순환 신경망의 각각에서의 은닉(hidden) 유닛의 개수는 적어도 300인, 문법 오류 검출 방법.According to claim 1,
Wherein the number of hidden units in each of the two recurrent neural networks is at least 300.
상기 피드포워드 신경망은,
상기 문맥 벡터에 대한 완전 연결 선형 연산(fully connected linear operation)의 제1 활성화 함수(activation function)를 갖는 제1 층; 및
상기 제1 층에 연결되고, 상기 분류값을 생성하기 위한 제2 활성화 함수를 갖는 제2 층
을 포함하는, 문법 오류 검출 방법.According to claim 1,
The feedforward neural network,
a first layer having a first activation function of a fully connected linear operation on the context vector; and
A second layer connected to the first layer and having a second activation function for generating the classification value.
Including, grammatical error detection method.
상기 분류값은 상기 문법 오류 유형과 연관된 복수의 클래스에 대한 상기 목표 단어의 확률 분포인, 문법 오류 검출 방법.According to claim 1,
Wherein the classification value is a probability distribution of the target word for a plurality of classes associated with the grammatical error type.
상기 검출하는 단계는,
음성 부분(part of speech(PoS)) 태그 및 상기 문장의 텍스트 토큰에 기초하여 상기 목표 단어의 실제 분류를 결정하는 단계;
상기 목표 단어의 추정된 분류를 상기 목표 단어의 상기 실제 분류와 비교하는 단계; 및
상기 실제 분류가 상기 목표 단어의 추정된 분류와 일치하지 않을 때 상기 문장에서 상기 문법 오류를 검출하는 단계
를 더 포함하는, 문법 오류 검출 방법.According to claim 1,
The detection step is
determining an actual classification of the target word based on a part of speech (PoS) tag and a text token of the sentence;
comparing the estimated classification of the target word with the actual classification of the target word; and
detecting the grammatical error in the sentence when the actual classification does not match the estimated classification of the target word;
Further comprising a grammatical error detection method.
상기 문장에서 상기 문법 오류를 검출하는 것에 응답하여, 상기 목표 단어의 추정된 분류를 사용하여 상기 문법 오류를 정정하는 단계를 더 포함하는, 문법 오류 검출 방법.According to claim 1,
In response to detecting the grammatical error in the sentence, correcting the grammatical error using the estimated classification of the target word.
상기 하나 이상의 목표 단어의 각각에 대하여, 상기 문법 오류 유형에 대하여 훈련된 해당하는 인공 신경망 모델을 이용하여 대응하는 상기 문법 오류 유형에 대하여 상기 목표 단어의 해당하는 분류를 추정하고, 상기 목표 단어의 추정된 분류를 상기 목표 단어의 실제 분류와 비교하여 상기 목표 단어의 문법 오류 결과를 생성하는 단계;
대응하는 상기 문법 오류 유형에 적어도 부분적으로 기초하여 상기 하나 이상의 목표 단어의 상기 문법 오류 결과의 각각에 가중치를 적용하는 단계; 및
상기 하나 이상의 목표 단어의 상기 문법 오류 결과 및 상기 가중치에 기초하여 상기 문장의 문법 점수를 제공하는 단계
를 더 포함하는, 문법 오류 검출 방법.According to claim 1,
For each of the one or more target words, a corresponding classification of the target word is estimated for the corresponding grammatical error type using a corresponding artificial neural network model trained for the grammatical error type, and the target word is estimated. generating a grammatical error result of the target word by comparing the classified classification with an actual classification of the target word;
applying a weight to each of the grammatical error results of the one or more target words based at least in part on the corresponding grammatical error type; and
providing a grammar score of the sentence based on the grammatical error result of the one or more target words and the weights;
Further comprising a grammatical error detection method.
상기 문법 점수는 상기 문장이 수신되는 사용자와 연관된 정보에 적어도 부분적으로 기초하여 제공되는, 문법 오류 검출 방법.According to claim 16,
wherein the grammar score is provided based at least in part on information associated with a user from whom the sentence is received.
상기 모델은 원시(native) 훈련 샘플에 의해 훈련되는, 문법 오류 검출 방법.According to claim 1,
Wherein the model is trained by native training samples.
상기 2개의 순환 신경망 및 상기 피드포워드 신경망은 공동으로(jointly) 훈련되는, 문법 오류 검출 방법.According to claim 1,
Wherein the two recurrent neural networks and the feedforward neural network are jointly trained.
상기 모델은,
상기 문맥 벡터를 생성하기 위하여 상기 2개의 순환 신경망에 입력될 초기 문맥 벡터 세트를 출력하도록 구성된 다른 순환 신경망; 및
상기 문맥 벡터에 적용될 문맥 가중치 벡터를 출력하도록 구성된 다른 피드포워드 신경망
을 더 포함하는, 문법 오류 검출 방법.According to claim 1,
The model is
another recurrent neural network configured to output a set of initial context vectors to be input to the two recurrent neural networks to generate the context vectors; and
Another feedforward neural network configured to output a context weight vector to be applied to the context vector.
Further comprising a grammatical error detection method.
모든 상기 순환 신경망 및 피드포워드 신경망은 원시 훈련 샘플에 의해 공동으로 훈련되는, 문법 오류 검출 방법.According to claim 20,
wherein all the recurrent neural networks and feedforward neural networks are jointly trained by raw training samples.
상기 메모리에 결합된 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
문장을 수신하고;
하나 이상의 문법 오류 유형에 적어도 부분적으로 기초하여 상기 문장 내의 하나 이상의 목표 단어(target word)를 식별하고 - 상기 하나 이상의 목표 단어의 각각은 상기 하나 이상의 문법 오류 유형의 적어도 하나에 대응함 -;
상기 하나 이상의 목표 단어의 적어도 하나에 대하여, 상기 문법 오류 유형에 대하여 훈련된 인공 신경망(artificial neural network) 모델을 이용하여 대응하는 상기 문법 오류 유형에 대하여 상기 목표 단어의 분류를 추정하고 - 상기 모델은, (i) 상기 문장 내의 상기 목표 단어 전의 적어도 하나의 단어와 상기 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 상기 목표 단어의 문맥 벡터(context vector)를 생성하도록 구성된 2개의 순환 신경망(recurrent neural network) 및 (ii) 상기 목표 단어의 상기 문맥 벡터에 적어도 부분적으로 기초하여 상기 문법 오류 유형에 대한 상기 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망(feedforward neural network)을 포함함 -; 그리고
상기 목표 단어 및 상기 목표 단어의 추정된 상기 분류에 적어도 부분적으로 기초하여 상기 문장에서 문법 오류를 검출하도록
구성되는, 문법 오류 검출 시스템.Memory; and
at least one processor coupled to the memory
including,
The at least one processor,
receive a sentence;
identify one or more target words in the sentence based at least in part on one or more types of grammatical errors, each of the one or more target words corresponding to at least one of the one or more types of grammatical errors;
For at least one of the one or more target words, estimate a classification of the target word for the corresponding grammatical error type using an artificial neural network model trained for the grammatical error type, the model comprising: , (i) two recurrent neural networks configured to generate a context vector of the target word based at least in part on at least one word before the target word and at least one word after the target word in the sentence. neural network and (ii) a feedforward neural network configured to output a classification value of the target word for the type of grammatical error based at least in part on the context vector of the target word; And
detect a grammatical error in the sentence based at least in part on the target word and the estimated classification of the target word;
configured, a grammatical error detection system.
상기 목표 단어의 분류를 추정하기 위하여, 상기 적어도 하나의 프로세서는,
상기 2개의 순환 신경망을 이용하여 상기 문장 내의 상기 목표 단어 전의 적어도 하나의 단어와 상기 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 상기 목표 단어의 상기 문맥 벡터를 제공하고; 그리고
상기 피드포워드 신경망을 이용하여 상기 목표 단어의 상기 문맥 벡터에 적어도 부분적으로 기초하여 상기 문법 오류 유형에 대한 상기 목표 단어의 상기 분류값을 제공하도록
구성되는, 문법 오류 검출 시스템.The method of claim 22,
In order to estimate the classification of the target word, the at least one processor,
providing the context vector of the target word based at least in part on at least one word before and after the target word in the sentence using the two recurrent neural networks; And
provide the classification value of the target word for the type of grammatical error based at least in part on the context vector of the target word using the feedforward neural network;
configured, a grammatical error detection system.
상기 목표 단어의 상기 문맥 벡터는 상기 목표 단어의 단어 기본형(lemma)에 적어도 부분적으로 기초하여 제공되는, 문법 오류 검출 시스템.According to claim 23,
wherein the context vector of the target word is provided based at least in part on a word lemma of the target word.
상기 목표 단어의 분류를 추정하기 위하여, 상기 적어도 하나의 프로세서는,
제1 단어 임베딩 벡터(word embedding vector) 세트를 생성하고 - 상기 제1 단어 임베딩 벡터 세트 내의 각각의 단어 임베딩 벡터는 상기 문장 내의 상기 목표 단어 전의 적어도 하나의 단어 중 해당하는 단어에 기초하여 생성됨 -; 그리고
제2 단어 임베딩 벡터 세트를 생성하도록 - 상기 제2 단어 임베딩 벡터 세트 내의 각각의 단어 임베딩 벡터는 상기 문장 내의 상기 목표 단어 후의 적어도 하나의 단어 중 해당하는 단어에 기초하여 생성됨 -
구성되는, 문법 오류 검출 시스템.According to claim 23,
In order to estimate the classification of the target word, the at least one processor,
generating a set of first word embedding vectors, each word embedding vector in the set of first word embedding vectors being generated based on a corresponding word of at least one word before the target word in the sentence; And
generate a second set of word embedding vectors, wherein each word embedding vector in the set of second word embedding vectors is generated based on a corresponding word of at least one word after the target word in the sentence;
configured, a grammatical error detection system.
각각의 단어 임베딩 벡터의 디멘전(dimension)의 수는 적어도 100인, 문법 오류 검출 시스템.According to claim 25,
A grammar error detection system, wherein the number of dimensions of each word embedding vector is at least 100.
상기 목표 단어 전의 적어도 하나의 단어는 상기 문장 내의 상기 목표 단어 전의 모든 단어를 포함하고; 그리고
상기 목표 단어 후의 적어도 하나의 단어는 상기 문장 내의 상기 목표 단어 후의 모든 단어를 포함하는, 문법 오류 검출 시스템.The method of claim 22,
the at least one word before the target word includes all words before the target word in the sentence; And
The grammatical error detection system of claim 1 , wherein the at least one word after the target word includes all words after the target word in the sentence.
상기 목표 단어 전의 적어도 하나의 단어의 개수 및/또는 상기 목표 단어 후의 적어도 하나의 단어의 개수는 상기 문법 오류 유형에 적어도 부분적으로 기초하여 결정되는, 문법 오류 검출 시스템.The method of claim 22,
wherein the number of at least one word before the target word and/or the number of at least one word after the target word is determined based at least in part on the type of grammatical error.
상기 목표 단어의 분류를 추정하기 위하여, 상기 적어도 하나의 프로세서는,
상기 문장 내의 상기 목표 단어 전의 적어도 하나의 단어 및 상기 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 상기 목표 단어의 문맥 가중치 벡터(context weight vector)를 제공하고; 그리고
상기 문맥 가중치 벡터를 상기 문맥 벡터에 적용하도록
구성되는, 문법 오류 검출 시스템.According to claim 23,
In order to estimate the classification of the target word, the at least one processor,
provide a context weight vector of the target word based at least in part on at least one word before the target word and at least one word after the target word in the sentence; And
to apply the context weight vector to the context vector;
configured, a grammatical error detection system.
상기 목표 단어의 상기 문맥 벡터를 제공하기 위하여, 상기 적어도 하나의 프로세서는,
상기 2개의 순환 신경망 중 제1 순환 신경망을 이용하여 상기 제1 단어 임베딩 벡터 세트에 적어도 부분적으로 기초하여 상기 목표 단어의 제1 문맥 벡터를 제공하고;
상기 2개의 순환 신경망 중 제2 순환 신경망을 이용하여 상기 제2 단어 임베딩 벡터 세트에 적어도 부분적으로 기초하여 상기 목표 단어의 제2 문맥 벡터를 제공하고; 그리고
상기 제1 및 제2 문맥 벡터를 연결(concatenating)하여 상기 문맥 벡터를 제공하도록
구성되는, 문법 오류 검출 시스템.According to claim 25,
To provide the context vector of the target word, the at least one processor:
providing a first context vector of the target word based at least in part on the first set of word embedding vectors using a first one of the two recurrent neural networks;
providing a second context vector of the target word based at least in part on the second set of word embedding vectors using a second one of the two recurrent neural networks; And
Concatenating the first and second context vectors to provide the context vector
configured, a grammatical error detection system.
상기 제1 단어 임베딩 벡터 세트는 상기 문장의 시작에 있는 단어의 단어 임베딩 벡터로부터 시작하여 상기 제1 순환 신경망에 제공되고; 그리고
상기 제2 단어 임베딩 벡터 세트는 상기 문장의 마지막에 있는 단어의 단어 임베딩 벡터로부터 시작하여 상기 제2 순환 신경망에 제공되는, 문법 오류 검출 시스템.31. The method of claim 30,
the first set of word embedding vectors is provided to the first recurrent neural network starting from the word embedding vector of the word at the beginning of the sentence; And
wherein the second set of word embedding vectors is provided to the second recurrent neural network starting from a word embedding vector of a word at the end of the sentence.
상기 2개의 순환 신경망의 각각에서의 은닉(hidden) 유닛의 개수는 적어도 300인, 문법 오류 검출 시스템.The method of claim 22,
The grammar error detection system of claim 1 , wherein the number of hidden units in each of the two recurrent neural networks is at least 300.
상기 피드포워드 신경망은,
상기 문맥 벡터에 대한 완전 연결 선형 연산(fully connected linear operation)의 제1 활성화 함수(activation function)를 갖는 제1 층; 및
상기 제1 층에 연결되고, 상기 분류값을 생성하기 위한 제2 활성화 함수를 갖는 제2 층
을 포함하는, 문법 오류 검출 시스템.The method of claim 22,
The feedforward neural network,
a first layer having a first activation function of a fully connected linear operation on the context vector; and
A second layer connected to the first layer and having a second activation function for generating the classification value.
Including, grammatical error detection system.
상기 분류값은 상기 문법 오류 유형과 연관된 복수의 클래스에 대한 상기 목표 단어의 확률 분포인, 문법 오류 검출 시스템.The method of claim 22,
Wherein the classification value is a probability distribution of the target word for a plurality of classes associated with the grammatical error type.
문법 오류를 검출하기 위하여, 상기 적어도 하나의 프로세서는,
음성 부분(part of speech(PoS)) 태그 및 상기 문장의 텍스트 토큰에 기초하여 상기 목표 단어의 실제 분류를 결정하고;
상기 목표 단어의 추정된 분류를 상기 목표 단어의 상기 실제 분류와 비교하고; 그리고
상기 실제 분류가 상기 목표 단어의 추정된 분류와 일치하지 않을 때 상기 문장에서 상기 문법 오류를 검출하도록
구성되는, 문법 오류 검출 시스템.The method of claim 22,
To detect grammatical errors, the at least one processor:
determine an actual classification of the target word based on a part of speech (PoS) tag and a text token of the sentence;
compare the estimated classification of the target word with the actual classification of the target word; And
detect the grammatical error in the sentence when the actual classification does not match the estimated classification of the target word;
configured, a grammatical error detection system.
상기 적어도 하나의 프로세서는,
상기 문장에서 상기 문법 오류를 검출하는 것에 응답하여, 상기 목표 단어의 추정된 분류를 사용하여 상기 문법 오류를 정정하도록 더 구성되는, 문법 오류 검출 시스템.The method of claim 22,
The at least one processor,
and in response to detecting the grammatical error in the sentence, correct the grammatical error using the estimated classification of the target word.
상기 적어도 하나의 프로세서는,
상기 하나 이상의 목표 단어의 각각에 대하여, 상기 문법 오류 유형에 대하여 훈련된 해당하는 인공 신경망 모델을 이용하여 대응하는 상기 문법 오류 유형에 대하여 상기 목표 단어의 해당하는 분류를 추정하고, 상기 목표 단어의 추정된 분류를 상기 목표 단어의 실제 분류와 비교하여 상기 목표 단어의 문법 오류 결과를 생성하고;
대응하는 상기 문법 오류 유형에 적어도 부분적으로 기초하여 상기 하나 이상의 목표 단어의 상기 문법 오류 결과의 각각에 가중치를 적용하고; 그리고
상기 하나 이상의 목표 단어의 상기 문법 오류 결과 및 상기 가중치에 기초하여 상기 문장의 문법 점수를 제공하도록
더 구성되는, 문법 오류 검출 시스템.The method of claim 22,
The at least one processor,
For each of the one or more target words, a corresponding classification of the target word is estimated for the corresponding grammatical error type using a corresponding artificial neural network model trained for the grammatical error type, and the target word is estimated. compare the classified classification with an actual classification of the target word to generate a grammatical error result of the target word;
apply a weight to each of the grammatical error results of the one or more target words based at least in part on the corresponding grammatical error type; And
To provide a grammar score of the sentence based on the grammatical error result of the one or more target words and the weight.
Further configured, a grammatical error detection system.
상기 문법 점수는 상기 문장이 수신되는 사용자와 연관된 정보에 적어도 부분적으로 기초하여 제공되는, 문법 오류 검출 시스템.38. The method of claim 37,
wherein the grammar score is provided based at least in part on information associated with a user from whom the sentence is received.
상기 모델은 원시(native) 훈련 샘플에 의해 훈련되는, 문법 오류 검출 시스템.The method of claim 22,
wherein the model is trained by native training samples.
상기 2개의 순환 신경망 및 상기 피드포워드 신경망은 공동으로(jointly) 훈련되는, 문법 오류 검출 시스템.The method of claim 22,
Wherein the two recurrent neural networks and the feedforward neural network are jointly trained.
상기 모델은,
상기 문맥 벡터를 생성하기 위하여 상기 2개의 순환 신경망에 입력될 초기 문맥 벡터 세트를 출력하도록 구성된 다른 순환 신경망; 및
상기 문맥 벡터에 적용될 문맥 가중치 벡터를 출력하도록 구성된 다른 피드포워드 신경망
을 더 포함하는, 문법 오류 검출 시스템.The method of claim 22,
The model is
another recurrent neural network configured to output a set of initial context vectors to be input to the two recurrent neural networks to generate the context vectors; and
Another feedforward neural network configured to output a context weight vector to be applied to the context vector.
Further comprising a grammatical error detection system.
모든 상기 순환 신경망 및 피드포워드 신경망은 원시 훈련 샘플에 의해 공동으로 훈련되는, 문법 오류 검출 시스템.The method of claim 41 ,
wherein all the recurrent neural networks and feedforward neural networks are jointly trained by raw training samples.
문장을 수신하는 동작;
하나 이상의 문법 오류 유형에 적어도 부분적으로 기초하여 상기 문장 내의 하나 이상의 목표 단어(target word)를 식별하는 동작 - 상기 하나 이상의 목표 단어의 각각은 상기 하나 이상의 문법 오류 유형의 적어도 하나에 대응함 -;
상기 하나 이상의 목표 단어에 대하여, 상기 문법 오류 유형에 대하여 훈련된 인공 신경망(artificial neural network) 모델을 이용하여 대응하는 상기 문법 오류 유형에 대하여 상기 목표 단어의 분류를 추정하는 동작 - 상기 모델은, (i) 상기 문장 내의 상기 목표 단어 전의 적어도 하나의 단어와 상기 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 상기 목표 단어의 문맥 벡터(context vector)를 출력하도록 구성된 2개의 순환 신경망(recurrent neural network) 및 (ii) 상기 목표 단어의 상기 문맥 벡터에 적어도 부분적으로 기초하여 상기 문법 오류 유형에 대한 상기 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망(feedforward neural network)을 포함함 -; 및
상기 목표 단어 및 상기 목표 단어의 추정된 상기 분류에 적어도 부분적으로 기초하여 상기 문장에서 문법 오류를 검출하는 동작
을 포함하는 동작들을 수행하게 하는 명령어가 저장된 유형의(tangible) 컴퓨터 판독 가능한 장치.When executed by at least one computing device, the at least one computing device comprises:
receiving the sentence;
identifying one or more target words in the sentence based at least in part on one or more types of grammatical errors, each of the one or more target words corresponding to at least one of the one or more types of grammatical errors;
An operation of estimating a classification of the target word for the corresponding grammatical error type using an artificial neural network model trained for the grammatical error type, with respect to the one or more target words, the model comprising: ( i) two recurrent neural networks configured to output a context vector of the target word based at least in part on at least one word before the target word and at least one word after the target word in the sentence. ) and (ii) a feedforward neural network configured to output a classification value of the target word for the type of grammatical error based at least in part on the context vector of the target word; and
Detecting grammatical errors in the sentence based at least in part on the target word and the estimated classification of the target word.
A tangible computer readable device having stored thereon instructions for performing operations comprising:
상기 적어도 하나의 프로세서에 의해, 훈련 샘플 세트를 획득하는 단계 - 상기 훈련 샘플 세트 내의 각각의 훈련 샘플은 상기 문법 오류 유형에 대한 목표 단어를 포함하는 문장과 상기 문법 오류 유형에 대한 상기 목표 단어의 실제 분류를 포함함 -; 및
상기 적어도 하나의 프로세서에 의해, 각각의 훈련 샘플에서의 상기 목표 단어의 상기 실제 분류 및 추정된 분류 사이의 차이에 적어도 부분적으로 기초하여 상기 순환 신경망과 연관된 제1 파라미터 세트 및 상기 피드포워드 신경망과 연관된 제2 파라미터 세트를 공동으로(jointly) 조정하는 단계
를 포함하는, 인공 신경망 모델 훈련 방법.providing, by at least one processor, an artificial neural network model for estimating a classification of a target word in a sentence with respect to a type of grammatical error, the model comprising: (i) the two recurrent neural networks configured to output a context vector of the target word based at least in part on at least one word before the target word and at least one word after the target word; and (ii) the a feedforward neural network configured to output a classification value of the target word based at least in part on the context vector of the target word;
obtaining, by the at least one processor, a set of training samples, each training sample in the set of training samples being a sentence containing a target word for the grammatical error type and an actual word of the target word for the grammatical error type. contains classification -; and
By the at least one processor, a first parameter set associated with the recurrent neural network and a first set of parameters associated with the feedforward neural network based, at least in part, on the difference between the actual and estimated classification of the target word in each training sample. jointly adjusting a second set of parameters;
Including, artificial neural network model training method.
각각의 훈련 샘플은 문법 오류가 없는 원시(native) 훈련 샘플인, 인공 신경망 모델 훈련 방법.45. The method of claim 44,
An artificial neural network model training method, wherein each training sample is a native training sample without grammatical errors.
상기 순환 신경망은 게이트 순환 유닛(gated recurrent unit(GRU)) 신경망이고, 상기 피드포워드 신경망은 다층 퍼셉트론(multi-layer perceptron(MLP)) 신경망인, 인공 신경망 모델 훈련 방법.45. The method of claim 44,
The recurrent neural network is a gated recurrent unit (GRU) neural network, and the feedforward neural network is a multi-layer perceptron (MLP) neural network.
상기 모델은,
상기 문맥 벡터에 적용될 문맥 가중치 벡터(context weight vector)를 출력하도록 구성된 다른 피드포워드 신경망
을 더 포함하는, 인공 신경망 모델 훈련 방법.45. The method of claim 44,
The model is
Another feedforward neural network configured to output a context weight vector to be applied to the context vector.
Further comprising, artificial neural network model training method.
상기 공동으로 조정하는 단계는,
각각의 훈련 샘플에서의 상기 목표 단어의 상기 실제 분류 및 추정된 분류 사이의 차이에 적어도 부분적으로 기초하여 상기 제1 및 제2 파라미터 세트 및 상기 다른 피드포워드 신경망과 연관된 제3 파라미터 세트를 공동으로 조정하는 단계
를 포함하는, 인공 신경망 모델 훈련 방법.The method of claim 47,
The step of jointly coordinating,
Jointly adjust the first and second parameter sets and a third parameter set associated with the different feedforward neural networks based at least in part on the difference between the actual and estimated classification of the target word in each training sample. step to do
Including, artificial neural network model training method.
각각의 훈련 샘플에 대하여,
제1 단어 임베딩 벡터(word embedding vector) 세트를 생성하는 단계 - 상기 제1 단어 임베딩 벡터 세트에서의 각각의 단어 임베딩 벡터는 상기 훈련 샘플에서의 상기 목표 단어 전의 적어도 하나의 단어 중 해당하는 단어에 적어도 부분적으로 기초하여 생성됨 -; 및
제2 단어 임베딩 벡터 세트를 생성하는 단계 - 상기 제2 단어 임베딩 벡터 세트에서의 각각의 단어 임베딩 벡터는 상기 훈련 샘플에서의 상기 목표 단어 후의 적어도 하나의 단어 중 해당하는 단어에 적어도 부분적으로 기초하여 생성됨 -
를 더 포함하는, 인공 신경망 모델 훈련 방법.45. The method of claim 44,
For each training sample,
generating a first set of word embedding vectors, wherein each word embedding vector in the first set of word embedding vectors corresponds to at least one corresponding word of at least one word before the target word in the training sample; Partially created based on -; and
generating a second set of word embedding vectors, wherein each word embedding vector in the second set of word embedding vectors is generated based at least in part on a corresponding one of at least one word after the target word in the training sample; -
Further comprising, artificial neural network model training method.
각각의 단어 임베딩 벡터의 디멘전(dimension)의 수는 적어도 100인, 인공 신경망 모델 훈련 방법.The method of claim 49,
An artificial neural network model training method, wherein the number of dimensions of each word embedding vector is at least 100.
상기 목표 단어 전의 적어도 하나의 단어는 상기 문장 내의 상기 목표 단어 전의 모든 단어를 포함하고; 그리고
상기 목표 단어 후의 적어도 하나의 단어는 상기 문장 내의 상기 목표 단어 후의 모든 단어를 포함하는, 인공 신경망 모델 훈련 방법.The method of claim 49,
the at least one word before the target word includes all words before the target word in the sentence; And
The method of training an artificial neural network model, wherein the at least one word after the target word includes all words after the target word in the sentence.
각각의 훈련 샘플에 대하여,
상기 2개의 순환 신경망 중 제1 순환 신경망을 이용하여 상기 제1 단어 임베딩 벡터 세트에 적어도 부분적으로 기초하여 상기 목표 단어의 제1 문맥 벡터를 제공하는 단계;
상기 2개의 순환 신경망 중 제2 순환 신경망을 이용하여 상기 제2 단어 임베딩 벡터 세트에 적어도 부분적으로 기초하여 상기 목표 단어의 제2 문맥 벡터를 제공하는 단계; 및
상기 제1 및 제2 문맥 벡터를 연결(concatenating)하여 상기 문맥 벡터를 제공하는 단계
를 더 포함하는, 인공 신경망 모델 훈련 방법.The method of claim 49,
For each training sample,
providing a first context vector of the target word based at least in part on the first set of word embedding vectors using a first one of the two recurrent neural networks;
providing a second context vector of the target word based at least in part on the second set of word embedding vectors using a second one of the two recurrent neural networks; and
concatenating the first and second context vectors to provide the context vector;
Further comprising, artificial neural network model training method.
상기 제1 단어 임베딩 벡터 세트는 상기 문장의 시작에 있는 단어의 단어 임베딩 벡터로부터 시작하여 상기 제1 순환 신경망에 제공되고; 그리고
상기 제2 단어 임베딩 벡터 세트는 상기 문장의 마지막에 있는 단어의 단어 임베딩 벡터로부터 시작하여 상기 제2 순환 신경망에 제공되는, 인공 신경망 모델 훈련 방법.52. The method of claim 52,
the first set of word embedding vectors is provided to the first recurrent neural network starting from the word embedding vector of the word at the beginning of the sentence; And
wherein the second set of word embedding vectors is provided to the second recurrent neural network starting from a word embedding vector of a word at the end of the sentence.
상기 제1 및 제2 문맥 벡터는 상기 훈련 샘플에서 상기 문장의 의미 특징(semantic feature)을 포함하지 않는, 인공 신경망 모델 훈련 방법.52. The method of claim 52,
Wherein the first and second context vectors do not include semantic features of the sentence in the training sample.
상기 2개의 순환 신경망의 각각에서의 은닉(hidden) 유닛의 개수는 적어도 300인, 인공 신경망 모델 훈련 방법.45. The method of claim 44,
The artificial neural network model training method, wherein the number of hidden units in each of the two recurrent neural networks is at least 300.
상기 피드포워드 신경망은,
상기 문맥 벡터에 대한 완전 연결 선형 연산(fully connected linear operation)의 제1 활성화 함수(activation function)를 갖는 제1 층; 및
상기 제1 층에 연결되고, 상기 분류값을 생성하기 위한 제2 활성화 함수를 갖는 제2 층
을 포함하는, 인공 신경망 모델 훈련 방법.45. The method of claim 44,
The feedforward neural network,
a first layer having a first activation function of a fully connected linear operation on the context vector; and
A second layer connected to the first layer and having a second activation function for generating the classification value.
Including, artificial neural network model training method.
상기 메모리에 결합된 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
문법 오류 유형에 대하여 문장 내의 목표 단어(target word)의 분류를 추정하기 위하여 인공 신경망(artificial neural network) 모델을 제공하고 - 상기 모델은, (i) 상기 문장 내의 상기 목표 단어 전의 적어도 하나의 단어와 상기 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 상기 목표 단어의 문맥 벡터(context vector)를 출력하도록 구성된 2개의 순환 신경망(recurrent neural network) 및 (ii) 상기 목표 단어의 상기 문맥 벡터에 적어도 부분적으로 기초하여 상기 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망(feedforward neural network)을 포함함 -;
훈련 샘플 세트를 획득하고 - 상기 훈련 샘플 세트 내의 각각의 훈련 샘플은 상기 문법 오류 유형에 대한 목표 단어를 포함하는 문장과 상기 문법 오류 유형에 대한 상기 목표 단어의 실제 분류를 포함함 -; 및
각각의 훈련 샘플에서의 상기 목표 단어의 상기 실제 분류 및 추정된 분류 사이의 차이에 적어도 부분적으로 기초하여 상기 순환 신경망과 연관된 제1 파라미터 세트 및 상기 피드포워드 신경망과 연관된 제2 파라미터 세트를 공동으로(jointly) 조정하도록
구성되는, 인공 신경망 모델 훈련 시스템.Memory; and
at least one processor coupled to the memory
including,
The at least one processor,
Provide an artificial neural network model to estimate a classification of a target word in a sentence for a type of grammatical error, the model comprising: (i) at least one word before the target word in the sentence and two recurrent neural networks configured to output a context vector of the target word based at least in part on the at least one word after the target word, and (ii) the context vector of the target word at least a feedforward neural network configured to output a classification value of the target word based in part;
obtaining a set of training samples, each training sample in the set of training samples comprising a sentence containing a target word for the grammatical error type and an actual classification of the target word for the grammatical error type; and
A first set of parameters associated with the recurrent neural network and a second set of parameters associated with the feedforward neural network are jointly based at least in part on the difference between the actual classification and the estimated classification of the target word in each training sample ( to adjust jointly
An artificial neural network model training system, comprising:
각각의 훈련 샘플은 문법 오류가 없는 원시(native) 훈련 샘플인, 인공 신경망 모델 훈련 시스템.58. The method of claim 57,
An artificial neural network model training system, wherein each training sample is a native training sample without grammatical errors.
상기 순환 신경망은 GRU 신경망이고, 상기 피드포워드 신경망은 MLP 신경망인, 인공 신경망 모델 훈련 시스템.58. The method of claim 57,
The artificial neural network model training system, wherein the recurrent neural network is a GRU neural network and the feedforward neural network is an MLP neural network.
상기 모델은,
상기 문맥 벡터에 적용될 문맥 가중치 벡터(context weight vector)를 출력하도록 구성된 다른 피드포워드 신경망
을 더 포함하는, 인공 신경망 모델 훈련 시스템.58. The method of claim 57,
The model is
Another feedforward neural network configured to output a context weight vector to be applied to the context vector.
Further comprising, artificial neural network model training system.
제1 파라미터 세트 및 제2 파라미터 세트를 공동으로 조정하기 위하여, 상기 적어도 하나의 프로세서는,
각각의 훈련 샘플에서의 상기 목표 단어의 상기 실제 분류 및 추정된 분류 사이의 차이에 적어도 부분적으로 기초하여 상기 제1 및 제2 파라미터 세트 및 상기 다른 피드포워드 신경망과 연관된 제3 파라미터 세트를 공동으로 조정하도록
구성되는, 인공 신경망 모델 훈련 시스템.61. The method of claim 60,
To jointly adjust the first parameter set and the second parameter set, the at least one processor comprises:
Jointly adjust the first and second parameter sets and a third parameter set associated with the different feedforward neural networks based at least in part on the difference between the actual and estimated classification of the target word in each training sample. so
An artificial neural network model training system, comprising:
상기 적어도 하나의 프로세서는, 각각의 훈련 샘플에 대하여,
제1 단어 임베딩 벡터(word embedding vector) 세트를 생성하고 - 상기 제1 단어 임베딩 벡터 세트에서의 각각의 단어 임베딩 벡터는 상기 훈련 샘플에서의 상기 목표 단어 전의 적어도 하나의 단어 중 해당하는 단어에 적어도 부분적으로 기초하여 생성됨 -; 및
제2 단어 임베딩 벡터 세트를 생성하도록 - 상기 제2 단어 임베딩 벡터 세트에서의 각각의 단어 임베딩 벡터는 상기 훈련 샘플에서의 상기 목표 단어 후의 적어도 하나의 단어 중 해당하는 단어에 적어도 부분적으로 기초하여 생성됨 -
더 구성되는, 인공 신경망 모델 훈련 시스템.58. The method of claim 57,
The at least one processor, for each training sample,
generating a first set of word embedding vectors, each word embedding vector in the first set of word embedding vectors at least partially corresponding to a corresponding one of the at least one word preceding the target word in the training sample; Created based on -; and
generate a second set of word embedding vectors, each word embedding vector in the second set of word embedding vectors being generated based at least in part on a corresponding one of the at least one word after the target word in the training sample;
Further comprising, an artificial neural network model training system.
각각의 단어 임베딩 벡터의 디멘전(dimension)의 수는 적어도 100인, 인공 신경망 모델 훈련 시스템.63. The method of claim 62,
The artificial neural network model training system, wherein the number of dimensions of each word embedding vector is at least 100.
상기 목표 단어 전의 적어도 하나의 단어는 상기 문장 내의 상기 목표 단어 전의 모든 단어를 포함하고; 그리고
상기 목표 단어 후의 적어도 하나의 단어는 상기 문장 내의 상기 목표 단어 후의 모든 단어를 포함하는, 인공 신경망 모델 훈련 시스템.63. The method of claim 62,
the at least one word before the target word includes all words before the target word in the sentence; And
The artificial neural network model training system, wherein the at least one word after the target word includes all words after the target word in the sentence.
상기 적어도 하나의 프로세서는, 각각의 훈련 샘플에 대하여,
상기 2개의 순환 신경망 중 제1 순환 신경망을 이용하여 상기 제1 단어 임베딩 벡터 세트에 적어도 부분적으로 기초하여 상기 목표 단어의 제1 문맥 벡터를 제공하고;
상기 2개의 순환 신경망 중 제2 순환 신경망을 이용하여 상기 제2 단어 임베딩 벡터 세트에 적어도 부분적으로 기초하여 상기 목표 단어의 제2 문맥 벡터를 제공하고; 그리고
상기 제1 및 제2 문맥 벡터를 연결(concatenating)하여 상기 문맥 벡터를 제공하도록
더 구성되는, 인공 신경망 모델 훈련 시스템.63. The method of claim 62,
The at least one processor, for each training sample,
providing a first context vector of the target word based at least in part on the first set of word embedding vectors using a first one of the two recurrent neural networks;
providing a second context vector of the target word based at least in part on the second set of word embedding vectors using a second one of the two recurrent neural networks; And
Concatenating the first and second context vectors to provide the context vector
Further comprising, an artificial neural network model training system.
상기 제1 단어 임베딩 벡터 세트는 상기 문장의 시작에 있는 단어의 단어 임베딩 벡터로부터 시작하여 상기 제1 순환 신경망에 제공되고; 그리고
상기 제2 단어 임베딩 벡터 세트는 상기 문장의 마지막에 있는 단어의 단어 임베딩 벡터로부터 시작하여 상기 제2 순환 신경망에 제공되는, 인공 신경망 모델 훈련 시스템.66. The method of claim 65,
the first set of word embedding vectors is provided to the first recurrent neural network starting from the word embedding vector of the word at the beginning of the sentence; And
wherein the second set of word embedding vectors is provided to the second recurrent neural network starting from a word embedding vector of a word at the end of the sentence.
상기 제1 및 제2 문맥 벡터는 상기 훈련 샘플에서 상기 문장의 의미 특징(semantic feature)을 포함하지 않는, 인공 신경망 모델 훈련 시스템.66. The method of claim 65,
The artificial neural network model training system of claim 1 , wherein the first and second context vectors do not include semantic features of the sentences in the training samples.
상기 2개의 순환 신경망의 각각에서의 은닉(hidden) 유닛의 개수는 적어도 300인, 인공 신경망 모델 훈련 시스템.58. The method of claim 57,
The artificial neural network model training system, wherein the number of hidden units in each of the two recurrent neural networks is at least 300.
상기 피드포워드 신경망은,
상기 문맥 벡터에 대한 완전 연결 선형 연산(fully connected linear operation)의 제1 활성화 함수(activation function)를 갖는 제1 층; 및
상기 제1 층에 연결되고, 상기 분류값을 생성하기 위한 제2 활성화 함수를 갖는 제2 층
을 포함하는, 인공 신경망 모델 훈련 시스템.58. The method of claim 57,
The feedforward neural network,
a first layer having a first activation function of a fully connected linear operation on the context vector; and
A second layer connected to the first layer and having a second activation function for generating the classification value.
Including, artificial neural network model training system.
문법 오류 유형에 대하여 문장 내의 목표 단어(target word)의 분류를 추정하기 위하여 인공 신경망(artificial neural network) 모델을 제공하는 동작 - 상기 모델은, (i) 상기 문장 내의 상기 목표 단어 전의 적어도 하나의 단어와 상기 목표 단어 후의 적어도 하나의 단어에 적어도 부분적으로 기초하여 상기 목표 단어의 문맥 벡터(context vector)를 출력하도록 구성된 2개의 순환 신경망(recurrent neural network) 및 (ii) 상기 목표 단어의 상기 문맥 벡터에 적어도 부분적으로 기초하여 상기 목표 단어의 분류값을 출력하도록 구성된 피드포워드 신경망(feedforward neural network)을 포함함 -;
훈련 샘플 세트를 획득하는 동작 - 상기 훈련 샘플 세트 내의 각각의 훈련 샘플은 상기 문법 오류 유형에 대한 목표 단어를 포함하는 문장과 상기 문법 오류 유형에 대한 상기 목표 단어의 실제 분류를 포함함 -; 및
각각의 훈련 샘플에서의 상기 목표 단어의 상기 실제 분류 및 추정된 분류 사이의 차이에 적어도 부분적으로 기초하여 상기 순환 신경망과 연관된 제1 파라미터 세트 및 상기 피드포워드 신경망과 연관된 제2 파라미터 세트를 공동으로(jointly) 조정하는 동작
을 포함하는 동작들을 수행하게 하는 명령어가 저장된 유형의(tangible) 컴퓨터 판독 가능한 장치.When executed by at least one computing device, the at least one computing device comprises:
providing an artificial neural network model to estimate a classification of a target word in a sentence for a type of grammatical error, the model comprising: (i) at least one word before the target word in the sentence and (ii) two recurrent neural networks configured to output a context vector of the target word based at least in part on the at least one word after the target word, and (ii) the context vector of the target word. a feedforward neural network configured to output a classification value of the target word based at least in part on the basis;
obtaining a set of training samples, each training sample in the set of training samples comprising a sentence containing a target word for the grammatical error type and an actual classification of the target word for the grammatical error type; and
A first set of parameters associated with the recurrent neural network and a second set of parameters associated with the feedforward neural network are jointly based at least in part on the difference between the actual classification and the estimated classification of the target word in each training sample ( jointly coordinating action
A tangible computer readable device having stored thereon instructions for performing operations comprising:
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/095841 WO2019024050A1 (en) | 2017-08-03 | 2017-08-03 | Deep context-based grammatical error correction using artificial neural networks |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200031154A KR20200031154A (en) | 2020-03-23 |
KR102490752B1 true KR102490752B1 (en) | 2023-01-20 |
Family
ID=65233230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207005087A KR102490752B1 (en) | 2017-08-03 | 2017-08-03 | Deep context-based grammatical error correction using artificial neural networks |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP7031101B2 (en) |
KR (1) | KR102490752B1 (en) |
CN (1) | CN111226222B (en) |
MX (1) | MX2020001279A (en) |
WO (1) | WO2019024050A1 (en) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11176321B2 (en) | 2019-05-02 | 2021-11-16 | International Business Machines Corporation | Automated feedback in online language exercises |
CN111914540A (en) * | 2019-05-10 | 2020-11-10 | 阿里巴巴集团控股有限公司 | Statement identification method and device, storage medium and processor |
CN110399607B (en) * | 2019-06-04 | 2023-04-07 | 深思考人工智能机器人科技(北京)有限公司 | Pinyin-based dialog system text error correction system and method |
CN110309512A (en) * | 2019-07-05 | 2019-10-08 | 北京邮电大学 | A kind of Chinese grammer error correction method thereof based on generation confrontation network |
CN110472243B (en) * | 2019-08-08 | 2023-04-07 | 河南大学 | Chinese spelling checking method |
CN110797010A (en) * | 2019-10-31 | 2020-02-14 | 腾讯科技(深圳)有限公司 | Question-answer scoring method, device, equipment and storage medium based on artificial intelligence |
CN110889284B (en) * | 2019-12-04 | 2023-04-07 | 成都中科云集信息技术有限公司 | Multi-task learning Chinese language sickness diagnosis method based on bidirectional long-time and short-time memory network |
EP4080399A4 (en) * | 2019-12-18 | 2022-11-23 | Fujitsu Limited | Information processing program, information processing method, and information processing device |
US11886812B2 (en) * | 2020-03-02 | 2024-01-30 | Grammarly, Inc. | Proficiency and native language-adapted grammatical error correction |
CN111310447B (en) * | 2020-03-18 | 2024-02-02 | 河北省讯飞人工智能研究院 | Grammar error correction method, grammar error correction device, electronic equipment and storage medium |
CN112749553B (en) * | 2020-06-05 | 2023-07-25 | 腾讯科技(深圳)有限公司 | Text information processing method and device for video file and server |
CN111950292B (en) * | 2020-06-22 | 2023-06-27 | 北京百度网讯科技有限公司 | Training method of text error correction model, text error correction processing method and device |
US11593557B2 (en) | 2020-06-22 | 2023-02-28 | Crimson AI LLP | Domain-specific grammar correction system, server and method for academic text |
KR102517971B1 (en) * | 2020-08-14 | 2023-04-05 | 부산대학교 산학협력단 | Context sensitive spelling error correction system or method using Autoregressive language model |
CN112016603B (en) * | 2020-08-18 | 2021-04-30 | 上海松鼠课堂人工智能科技有限公司 | Error cause analysis method based on graph neural network |
KR102379660B1 (en) * | 2020-11-30 | 2022-03-29 | 주식회사 티맥스에이아이 | Method for utilizing deep learning based semantic role analysis |
CN112380883B (en) * | 2020-12-04 | 2023-07-25 | 北京有竹居网络技术有限公司 | Model training method, machine translation method, device, equipment and storage medium |
CN112597754B (en) * | 2020-12-23 | 2023-11-21 | 北京百度网讯科技有限公司 | Text error correction method, apparatus, electronic device and readable storage medium |
KR20220106331A (en) * | 2021-01-22 | 2022-07-29 | 삼성전자주식회사 | Electronic apparatus and method for controlling thereof |
CN114372441B (en) * | 2022-03-23 | 2022-06-03 | 中电云数智科技有限公司 | Automatic error correction method and device for Chinese text |
CN115544259B (en) * | 2022-11-29 | 2023-02-17 | 城云科技(中国)有限公司 | Long text classification preprocessing model and construction method, device and application thereof |
CN116306598B (en) * | 2023-05-22 | 2023-09-08 | 上海蜜度信息技术有限公司 | Customized error correction method, system, equipment and medium for words in different fields |
CN117350283A (en) * | 2023-10-11 | 2024-01-05 | 西安栗子互娱网络科技有限公司 | Text defect detection method, device, equipment and storage medium |
CN117574860A (en) * | 2024-01-16 | 2024-02-20 | 北京蜜度信息技术有限公司 | Method and equipment for text color rendering |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365838A (en) | 2013-07-24 | 2013-10-23 | 桂林电子科技大学 | Method for automatically correcting syntax errors in English composition based on multivariate features |
US20130325442A1 (en) | 2010-09-24 | 2013-12-05 | National University Of Singapore | Methods and Systems for Automated Text Correction |
US20150309982A1 (en) | 2012-12-13 | 2015-10-29 | Postech Academy-Industry Foundation | Grammatical error correcting system and grammatical error correcting method using the same |
CN106610930A (en) | 2015-10-22 | 2017-05-03 | 科大讯飞股份有限公司 | Foreign language writing automatic error correction method and system |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6964023B2 (en) * | 2001-02-05 | 2005-11-08 | International Business Machines Corporation | System and method for multi-modal focus detection, referential ambiguity resolution and mood classification using multi-modal input |
CN101739870B (en) * | 2009-12-03 | 2012-07-04 | 深圳先进技术研究院 | Interactive language learning system and method |
US8775341B1 (en) * | 2010-10-26 | 2014-07-08 | Michael Lamport Commons | Intelligent control with hierarchical stacked neural networks |
US10339920B2 (en) * | 2014-03-04 | 2019-07-02 | Amazon Technologies, Inc. | Predicting pronunciation in speech recognition |
KR102199445B1 (en) * | 2014-07-30 | 2021-01-06 | 에스케이텔레콤 주식회사 | Method and apparatus for discriminative training acoustic model based on class, and speech recognition apparatus using the same |
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 |
US9595002B2 (en) * | 2015-05-29 | 2017-03-14 | Sas Institute Inc. | Normalizing electronic communications using a vector having a repeating substring as input for a neural network |
US9552547B2 (en) * | 2015-05-29 | 2017-01-24 | Sas Institute Inc. | Normalizing electronic communications using a neural-network normalizer and a neural-network flagger |
WO2017051425A1 (en) * | 2015-09-23 | 2017-03-30 | Devanathan Giridhari | A computer-implemented method and system for analyzing and evaluating user reviews |
CN105845134B (en) * | 2016-06-14 | 2020-02-07 | 科大讯飞股份有限公司 | Spoken language evaluation method and system for freely reading question types |
-
2017
- 2017-08-03 MX MX2020001279A patent/MX2020001279A/en unknown
- 2017-08-03 WO PCT/CN2017/095841 patent/WO2019024050A1/en active Application Filing
- 2017-08-03 JP JP2020505241A patent/JP7031101B2/en active Active
- 2017-08-03 KR KR1020207005087A patent/KR102490752B1/en active IP Right Grant
- 2017-08-03 CN CN201780094942.2A patent/CN111226222B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130325442A1 (en) | 2010-09-24 | 2013-12-05 | National University Of Singapore | Methods and Systems for Automated Text Correction |
US20150309982A1 (en) | 2012-12-13 | 2015-10-29 | Postech Academy-Industry Foundation | Grammatical error correcting system and grammatical error correcting method using the same |
CN103365838A (en) | 2013-07-24 | 2013-10-23 | 桂林电子科技大学 | Method for automatically correcting syntax errors in English composition based on multivariate features |
CN106610930A (en) | 2015-10-22 | 2017-05-03 | 科大讯飞股份有限公司 | Foreign language writing automatic error correction method and system |
Also Published As
Publication number | Publication date |
---|---|
JP7031101B2 (en) | 2022-03-08 |
JP2020529666A (en) | 2020-10-08 |
CN111226222A (en) | 2020-06-02 |
CN111226222B (en) | 2023-07-07 |
KR20200031154A (en) | 2020-03-23 |
MX2020001279A (en) | 2020-08-20 |
WO2019024050A1 (en) | 2019-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102490752B1 (en) | Deep context-based grammatical error correction using artificial neural networks | |
KR102329127B1 (en) | Apparatus and method for converting dialect into standard language | |
Kim et al. | Two-stage multi-intent detection for spoken language understanding | |
Yu et al. | Learning composition models for phrase embeddings | |
US20140163951A1 (en) | Hybrid adaptation of named entity recognition | |
CN107870901B (en) | Method, recording medium, apparatus and system for generating similar text from translation source text | |
EP1959357A2 (en) | Sequence classification for machine translation | |
EP1939758A2 (en) | Discriminative training of models for sequence classification | |
CN111401084A (en) | Method and device for machine translation and computer readable storage medium | |
Woodsend et al. | Text rewriting improves semantic role labeling | |
CN112668319A (en) | Vietnamese news event detection method based on Chinese information and Vietnamese statement method guidance | |
US20050171759A1 (en) | Text generation method and text generation device | |
CN109815497B (en) | Character attribute extraction method based on syntactic dependency | |
Almanea | Automatic methods and neural networks in Arabic texts diacritization: a comprehensive survey | |
US11893344B2 (en) | Morpheme analysis learning device, morpheme analysis device, method, and program | |
Siddique et al. | Bilingual word embeddings for cross-lingual personality recognition using convolutional neural nets | |
Alkhatlan et al. | Attention-based sequence learning model for Arabic diacritic restoration | |
CN116483314A (en) | Automatic intelligent activity diagram generation method | |
CN115510230A (en) | Mongolian emotion analysis method based on multi-dimensional feature fusion and comparative reinforcement learning mechanism | |
Tkachenko et al. | Neural Morphological Tagging for Estonian. | |
CN114925698A (en) | Abbreviation disambiguation method, apparatus, computer device and storage medium | |
Angle et al. | Automated error correction and validation for POS tagging of Hindi | |
Shekhar et al. | Computational intelligence for temporal expression retrieval in code-mixed text | |
Pan et al. | Efficient grammatical error correction with hierarchical error detections and correction | |
Sardarov | Development and Design of Deep Learning-based Parts-of-Speech Tagging System for Azerbaijani language |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |