KR102552811B1 - 클라우드 기반 문법 교정 서비스 제공 시스템 - Google Patents
클라우드 기반 문법 교정 서비스 제공 시스템 Download PDFInfo
- Publication number
- KR102552811B1 KR102552811B1 KR1020200174868A KR20200174868A KR102552811B1 KR 102552811 B1 KR102552811 B1 KR 102552811B1 KR 1020200174868 A KR1020200174868 A KR 1020200174868A KR 20200174868 A KR20200174868 A KR 20200174868A KR 102552811 B1 KR102552811 B1 KR 102552811B1
- Authority
- KR
- South Korea
- Prior art keywords
- text
- user terminal
- grammar
- correction
- service providing
- 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/232—Orthographic correction, e.g. spell checking or vowelisation
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Machine Translation (AREA)
Abstract
클라우드 기반 문법 교정 서비스 제공 시스템이 제공되며, 적어도 하나의 종류의 매체를 통하여 텍스트를 입력한 후 맞춤법, 문법 및 띄어쓰기를 교정받은 결과 화면을 출력하는 사용자 단말 및 사용자 단말에서 적어도 하나의 종류의 매체를 통하여 텍스트를 입력하는 이벤트를 감지하는 모니터링부, 텍스트가 이루는 단어 및 문장에서 맞춤법, 문법 및 띄어쓰기를 교정하는 교정부, 교정한 텍스트가 포함된 결과 화면을 사용자 단말로 전송하는 전송부를 포함하는 문법 교정 서비스 제공 서버를 포함한다.
Description
본 발명은 클라우드 기반 문법 교정 서비스 제공 시스템에 관한 것으로, 다양한 매체를 통하여 입력되는 텍스트 내 단어 및 문장을 분석하여 문법적 오류를 교정할 수 있는 플랫폼을 제공한다.
문법 오류 교정(Grammatical Error Correction, GEC)은 주어진 문장 속에서 나타나는 문법 오류를 발견하고 올바르게 교정하는 작업이다. 문법 오류는 교정 대상 언어의 형태론, 통사론, 의미론 단계까지 폭넓은 범위에서 나타날 수 있다. 언어를 구사하는 사람의 능력에 따라 교정에 필요한 분석 단계는 다양해질 수 있으며, 문법 오류들이 복잡한 조합 형태로 나타나기도 한다. 이전에는 문법 오류들을 교정하기 위하여, 세밀한 규칙을 사용하는 교정 모델, 기계 학습 분류기를 활용하는 교정 모델 등 여러 기법들이 제안되었다. 하지만 규칙 기반 교정 모델은 간단한 문법 오류는 쉽게 처리할 수 있으나, 분석 단계가 심화될수록 구현 복잡도가 급격하게 상승한다는 단점이 존재한다. 기계 학습 분류기를 사용하는 교정 모델은 주어진 문장에서 문법 오류를 탐지해낼 때, 탐지 대상 단어의 주위 문맥이 올바르다고 가정해버리는 구조적인 약점이 존재한다.
이때, 문장 습관을 분석하고 대안 문장을 제시하고, 작문 평가를 통하여 오류를 검출하는 방법이 연구 및 개발되었는데, 이와 관련하여, 선행기술인 한국등록특허 제10-2008145호(2019년08월07일 공고) 및 한국등록특허 제10-1475284호(2014년12월23일 공고)에는, 복수의 문장이 입력되면, 형태소, 단어, 어절, 문장 및 문단 단위로 분리하며 품사를 인식하고, 기 설정된 분석 항목에 따라 사용자의 문장습관을 분석하고, 문장 습관에 대한 분석 결과에 따라 분석 항목별로 대안 문장을 제시하는 구성과, 입력 문장을 N-Gram을 이용한 품사열을 이용하여 인접한 품사 간 연결관계에 따라 기 설정된 규칙인 Shallow Parsing을 기반으로 파싱함으로써 단순한 문법적 오류와 함께 구문 분석의 오류를 검출하고 교정안을 제시하는 구성이 각각 개시되어 있다.
다만, 규칙 기반 교정 모델이나 기계 학습 분류기 기반 교정 모델과는 달리, 특정 문법 오류 종류를 지정하지 않고 학습이 암시적으로 이루어지기 때문에, 상대적으로 다양한 문법 오류들을 한꺼번에 처리할 수 있고, 오류 탐지와 교정을 동시에 진행하면서, 기계 학습 분류기 기반 교정 모델의 약점도 방지할 수 있지만, 처리 가능한 문법 오류 종류가 다양해지고 암시적으로 이에 대한 교정을 학습하는 만큼, 다른 기법들에 비해 대용량의 병렬 말뭉치가 학습에 사용되어야만 한다. 또 한국어 문법 오류 교정 분야에서는 공식적으로 접근할 수 있는 인간 주해 데이터(Human-annotated data)가 존재하지 않으며, 웹에서 확보할 수 있는 병렬 말뭉치도 기계 번역 기반 교정 모델의 학습에는 충분하지 않다. 따라서, 클라우드 기반으로 문법을 교정해주면서 정확성, 명확성, 연관성 및 가독성을 판단해줄 수 있는 플랫폼의 연구 및 개발이 요구된다.
본 발명의 일 실시예는, 클라우드 기반으로 적어도 하나의 종류의 매체를 통하여 입력되는 텍스트를 감지하고, 텍스트로 이루어진 단어 및 문장의 문법적인 오류를 교정해주는 것을 디폴트로, 문장의 복잡도에 기초하여 가독성을 평가하고, 문법적인 오류가 몇 퍼센트나 존재하는지, 이에 따라 얼마나 정확하고 명확한 문장인지를 평가하며, 주제와 내용 간의 연관도에 기반하여 얼마나 문장이 논리적으로 진행되는지에 대응하는 연관도를 평가함으로써 단순히 문법적인 오류만을 지적해주는 것이 아닌 글의 내용까지 평가하는 플랫폼을 제공하고, 문법적인 오류가 발생했다면 그 이유는 무엇인지에 대한 개념을 제시해줌으로써 이후 사용자가 동일한 실수를 반복하지 않도록 하며, 문서편집 프로그램 뿐만 아니라, 블로그, SNS 및 카페와 같은 소셜미디어나 이메일 플랫폼에서도 구동가능하도록 확장기능을 제공함으로써 언제 어디서나 명확하고 간결하며 가독성이 좋은 글을 쓸 수 있도록 도와주는, 클라우드 기반 문법 교정 서비스 제공 방법을 제공할 수 있다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는, 적어도 하나의 종류의 매체를 통하여 텍스트를 입력한 후 맞춤법, 문법 및 띄어쓰기를 교정받은 결과 화면을 출력하는 사용자 단말 및 사용자 단말에서 적어도 하나의 종류의 매체를 통하여 텍스트를 입력하는 이벤트를 감지하는 모니터링부, 텍스트가 이루는 단어 및 문장에서 맞춤법, 문법 및 띄어쓰기를 교정하는 교정부, 교정한 텍스트가 포함된 결과 화면을 사용자 단말로 전송하는 전송부를 포함하는 문법 교정 서비스 제공 서버를 포함한다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 클라우드 기반으로 적어도 하나의 종류의 매체를 통하여 입력되는 텍스트를 감지하고, 텍스트로 이루어진 단어 및 문장의 문법적인 오류를 교정해주는 것을 디폴트로, 문장의 복잡도에 기초하여 가독성을 평가하고, 문법적인 오류가 몇 퍼센트나 존재하는지, 이에 따라 얼마나 정확하고 명확한 문장인지를 평가하며, 주제와 내용 간의 연관도에 기반하여 얼마나 문장이 논리적으로 진행되는지에 대응하는 연관도를 평가함으로써 단순히 문법적인 오류만을 지적해주는 것이 아닌 글의 내용까지 평가하는 플랫폼을 제공하고, 문법적인 오류가 발생했다면 그 이유는 무엇인지에 대한 개념을 제시해줌으로써 이후 사용자가 동일한 실수를 반복하지 않도록 하며, 문서편집 프로그램 뿐만 아니라, 블로그, SNS 및 카페와 같은 소셜미디어나 이메일 플랫폼에서도 구동가능하도록 확장기능을 제공함으로써 언제 어디서나 명확하고 간결하며 가독성이 좋은 글을 쓸 수 있도록 도와줄 수 있다.
도 1은 본 발명의 일 실시예에 따른 클라우드 기반 문법 교정 서비스 제공 시스템을 설명하기 위한 도면이다.
도 2는 도 1의 시스템에 포함된 문법 교정 서비스 제공 서버를 설명하기 위한 블록 구성도이다.
도 3 및 도 4는 본 발명의 일 실시예에 따른 클라우드 기반 문법 교정 서비스가 구현된 일 실시예를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 클라우드 기반 문법 교정 서비스 제공 방법을 설명하기 위한 동작 흐름도이다.
도 2는 도 1의 시스템에 포함된 문법 교정 서비스 제공 서버를 설명하기 위한 블록 구성도이다.
도 3 및 도 4는 본 발명의 일 실시예에 따른 클라우드 기반 문법 교정 서비스가 구현된 일 실시예를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 클라우드 기반 문법 교정 서비스 제공 방법을 설명하기 위한 동작 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
명세서 전체에서 사용되는 정도의 용어 "약", "실질적으로" 등은 언급된 의미에 고유한 제조 및 물질 허용오차가 제시될 때 그 수치에서 또는 그 수치에 근접한 의미로 사용되고, 본 발명의 이해를 돕기 위해 정확하거나 절대적인 수치가 언급된 개시 내용을 비양심적인 침해자가 부당하게 이용하는 것을 방지하기 위해 사용된다. 본 발명의 명세서 전체에서 사용되는 정도의 용어 "~(하는) 단계" 또는 "~의 단계"는 "~ 를 위한 단계"를 의미하지 않는다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체 지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
본 명세서에 있어서 단말, 장치 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말, 장치 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말, 장치 또는 디바이스에서 수행될 수도 있다.
본 명세서에서 있어서, 단말과 매핑(Mapping) 또는 매칭(Matching)으로 기술된 동작이나 기능 중 일부는, 단말의 식별 정보(Identifying Data)인 단말기의 고유번호나 개인의 식별정보를 매핑 또는 매칭한다는 의미로 해석될 수 있다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 클라우드 기반 문법 교정 서비스 제공 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 클라우드 기반 문법 교정 서비스 제공 시스템(1)은, 적어도 하나의 사용자 단말(100), 문법 교정 서비스 제공 서버(300)를 포함할 수 있다. 다만, 이러한 도 1의 클라우드 기반 문법 교정 서비스 제공 시스템(1)은, 본 발명의 일 실시예에 불과하므로, 도 1을 통하여 본 발명이 한정 해석되는 것은 아니다.
이때, 도 1의 각 구성요소들은 일반적으로 네트워크(Network, 200)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 적어도 하나의 사용자 단말(100)은 네트워크(200)를 통하여 문법 교정 서비스 제공 서버(300)와 연결될 수 있다. 그리고, 문법 교정 서비스 제공 서버(300)는, 네트워크(200)를 통하여 적어도 하나의 사용자 단말(100)과 연결될 수 있다.
여기서, 네트워크는, 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷(WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), 5GPP(5th Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), RF(Radio Frequency), 블루투스(Bluetooth) 네트워크, NFC(Near-Field Communication) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.
하기에서, 적어도 하나의 라는 용어는 단수 및 복수를 포함하는 용어로 정의되고, 적어도 하나의 라는 용어가 존재하지 않더라도 각 구성요소가 단수 또는 복수로 존재할 수 있고, 단수 또는 복수를 의미할 수 있음은 자명하다 할 것이다. 또한, 각 구성요소가 단수 또는 복수로 구비되는 것은, 실시예에 따라 변경가능하다 할 것이다.
적어도 하나의 사용자 단말(100)은, 클라우드 기반 문법 교정 서비스 관련 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 이용하여 문법 교정을 받는 사용자의 단말일 수 있다. 이때, 사용자 단말(100)이 적어도 하나의 이동 단말 및 고정 단말로 이루어진 경우, 어느 하나의 단말에서 작성 및 교정된 문서는 다른 단말에서 동기화되어 출력될 수 있다.
여기서, 적어도 하나의 사용자 단말(100)은, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다. 이때, 적어도 하나의 사용자 단말(100)은, 네트워크를 통해 원격지의 서버나 단말에 접속할 수 있는 단말로 구현될 수 있다. 적어도 하나의 사용자 단말(100)은, 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(Smartphone), 스마트 패드(Smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
문법 교정 서비스 제공 서버(300)는, 클라우드 기반 문법 교정 서비스 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 제공하는 서버일 수 있다. 그리고, 문법 교정 서비스 제공 서버(300)는 사용자 단말(100)에서 입력되는 텍스트 내 단어 및 문장을 분석하여 문법적인 오류를 정정하고 그 근거를 제시하여 사용자 단말(100)로 출력시키는 서버일 수 있다. 또한, 문법 교정 서비스 제공 서버(300)는 문법적 오류 뿐만 아니라 내용을 분석하여 이에 맞는 문서 포맷, 템플릿, 디자인 등을 추천해주고, 제목과 내용 간 연관성은 있는지, 가독성은 좋은지, 문법적으로 명확하고 정확한지 등을 판단하여 퍼센테이지로 점수를 표시하는 서버일 수 있다. 그리고, 문법 교정 서비스 제공 서버(300)는 사용자 단말(100)에서 입력한 텍스트를 적어도 하나의 다른 단말과 연동되도록 클라우드 기반으로 동기화시키는 서버일 수 있다.
여기서, 문법 교정 서비스 제공 서버(300)는, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다.
도 2는 도 1의 시스템에 포함된 문법 교정 서비스 제공 서버를 설명하기 위한 블록 구성도이고, 도 3은 본 발명의 일 실시예에 따른 클라우드 기반 문법 교정 서비스가 구현된 일 실시예를 설명하기 위한 도면이다.
도 2를 참조하면, 문법 교정 서비스 제공 서버(300)는, 모니터링부(310), 교정부(320), 전송부(330), 동기화부(340), 교정DB부(350), 판단부(360), 템플릿추천부(370) 및 하이라이트부(380)를 포함할 수 있다.
본 발명의 일 실시예에 따른 문법 교정 서비스 제공 서버(300)나 연동되어 동작하는 다른 서버(미도시)가 적어도 하나의 사용자 단말(100)로 클라우드 기반 문법 교정 서비스 애플리케이션, 프로그램, 앱 페이지, 웹 페이지 등을 전송하는 경우, 적어도 하나의 사용자 단말(100)은, 클라우드 기반 문법 교정 서비스 애플리케이션, 프로그램, 앱 페이지, 웹 페이지 등을 설치하거나 열 수 있다. 또한, 웹 브라우저에서 실행되는 스크립트를 이용하여 서비스 프로그램이 적어도 하나의 사용자 단말(100)에서 구동될 수도 있다. 여기서, 웹 브라우저는 웹(WWW: World Wide Web) 서비스를 이용할 수 있게 하는 프로그램으로 HTML(Hyper Text Mark-up Language)로 서술된 하이퍼 텍스트를 받아서 보여주는 프로그램을 의미하며, 예를 들어 넷스케이프(Netscape), 익스플로러(Explorer), 크롬(Chrome) 등을 포함한다. 또한, 애플리케이션은 단말 상의 응용 프로그램(Application)을 의미하며, 예를 들어, 모바일 단말(스마트폰)에서 실행되는 앱(App)을 포함한다.
도 2를 참조하면, 모니터링부(310)는, 사용자 단말(100)에서 적어도 하나의 종류의 매체를 통하여 텍스트를 입력하는 이벤트를 감지할 수 있다. 사용자 단말(100)은, 적어도 하나의 종류의 매체를 통하여 텍스트를 입력할 수 있다. 이때, 적어도 하나의 종류의 매체는 문서편집, 이메일, 블로그 및 소셜미디어를 구동하는 웹페이지, 앱페이지, 프로그램 및 애플리케이션을 포함할 수 있다.
교정부(320)는, 텍스트가 이루는 단어 및 문장에서 맞춤법, 문법 및 띄어쓰기를 교정할 수 있다. 이때, 문법적으로 잘못된 부분을 추정할 수 있는 교정 지표를 언어 모델로 계산하고, 이를 기계 번역 기반 교정 모델의 Encoder에 적용하여, 틀린 부분에 대해서만 교정이 이루어져야 하는 문법 오류 교정 분야의 특성을 반영하도록 한다.
문법 오류 교정 분야는 상이한 두 언어 간 의미 전달에 초점을 두는 것이 아니라, 문법 오류가 나타난 문장을 올바르게 교정해주는 것에 중점을 둔다. 시 언어로 입력되는 문장에서 문법 오류가 발견될 수 있기 때문에, Decoder에서 문장을 생성하는 것과 비슷하게, Encoder도 불완전한 문장을 처리하게 된다. 어 모델로부터 계산된 조건부 확률을 기반으로, 문법적으로 잘못된 부분을 추정한 후, Encoder에서 이러한 부분들에 대하여 교정이 필요하다는 지시 정보를 반영한다면, 추정된 지시 정보를 토대로, Decoder에서 올바른 음절들은 복사하고 틀린 음절들에 대해서 집중적으로 교정할 수 있다.
<경망 언어 모델>
단일 말뭉치(Corpus)를 학습시킬 언어 모델은 순환 신경망을 이용하여 구현할 수 있다. 순환 신경망으로 구현된 언어 모델은 문장의 처음부터 지정된 위치까지의 전역적인 문맥을 반영할 수 있으며, 음절이나 형태소, 어절에 대한 조건부 확률을 계산하기에 용이하다. 기본적인 순환 신경망 구조에서는 기울기 소멸 또는 폭증 문제가 발생할 수 있으므로, LSTM(Long Short Term Memory) 셀(Cell)로 방지한다.
입력 문장의 t-1번째 음절인 wt-1 가 xt ∈ R200으로 임베딩되며, 신경망 언어 모델의 t 번째 은닉 층이 ht ∈ R250 이고, 입력 문장과 출력 문장이 동일할 때, t 번째 음절인 wt 의 등장 조건부 확률은 이하 수학식 1 및 수학식 2로 계산한다.
은닉 층 ht 의 정보를 토대로, 가중치 행렬 Wy 과 편향값 by로 출력 층을 계산하고, softmax로 출력 층 수치를 정규화하여, t 번째 음절의 조건부 확률을 계산한다.
<NMT 기반 교정 모델>
Encoder-Decoder 구조로 구현된 NMT 모델(NMTneural machine translation)인 Open-NMT에 단일 말뭉치로 학습시킨 신경망 언어 모델을 도입한다. 언어 모델로 입력 문장의 각 음절에 대한 조건부 확률을 계산하고 나서, 이를 Encoder의 음절 임베딩에 추가 정보로 입력하여, 문법 오류가 발현된 부분을 추정할 수 있도록 돕는다. 입력 방법은 직접적으로 확률을 임베딩에 이어붙여 활용하는 방법과 별도의 교정 지표를 정의하여 활용하는 방법으로, 크게 두 가지로 경우를 나누어 구현할 수 있다.
문법 오류가 내포된 문장의 i 번째 음절인 si 가 xs i ∈ R200으로 임베딩되고, Encoder의 i 번째 은닉 층이 hs i∈ R250일 때, 언어 모델로부터 획득한 조건부 확률은 아래 수식을 따라 음절 임베딩인 xs i과 함께 은닉 층 계산에 적용된다.
si LM 는 신경망 언어 모델로부터 계산된 조건부 확률이며, hi ->s는 정방향 은닉 층을 뜻하고, hi <-s은 역방향 은닉 층을 의미한다. LSTM 셀은 신경망 언어 모델 구현에 사용된 LSTM 구조와 같은 구조로 구현되어 있으며, hi s는 입력 문장에 나타난 문맥을 양방향으로 고려할 수 있도록 hi ->s 와 hi <-s를 더하여 계산한다.
직접적으로 언어 모델의 조건부 확률을 사용하지 않고 추가 교정 지표를 생성한 후, 이를 임베딩하여 은닉층 hi s를 계산하는 방식은 기존 수식에서 hi ->s와 hi <-s만 이하 수학식 7 내지 수학식 9와 같이 변경하여 구한다.
신경망 언어 모델로부터 계산한 조건부 확률 값이 0에서 1사이로 계산되는 특징을 이용하여, 해당 음절에 음절 교정 지표인 si class를 부여한다. si class은 xi class ∈ R50으로 임베딩되어 음절 임베딩인 xi s에 이어붙여져 은닉 층 계산에 사용된다.
Decoder에서는 OpenNMT에 구현되어 있는 기법인 주의(Attention) 기법과 입력 피딩(Input feeding) 기법을 적용한다. 주의 기법은 Encoder에서 계산한 은닉 층 정보를 Decoder에서 반영할 수 있는 기법으로, 음절 임베딩에 이어붙여진 조건부 확률 정보를 Decoder에 전달한다. 입력 피딩 기법은 음절 생성에 사용된 문맥 벡터를 다음 입력 층에 전달하는 기법으로, 현재 시점의 교정 결과에 대한 피드백을 다음 시점의 교정 결과 출력에 적용한다.
전송부(330)는, 교정한 텍스트가 포함된 결과 화면을 사용자 단말(100)로 전송할 수 있다. 결과 화면은, 사용자 단말(100)로부터 입력된 텍스트의 문법적 정확성 및 명확성, 사용자 단말(100)에서 입력한 텍스트 내 제목 및 내용 간 연관도에 기반한 연관성 및 사용자 단말(100)에서 입력한 텍스트가 이루는 적어도 하나의 문장의 복잡도에 기반한 가독성을 평가한 결과를 포함할 수 있다. 이때, 정확성과 명확성에 대한 퍼센테이지는 상술한 오류 교정 기법과 후술할 교정DB(350)의 문맥기반 교정으로부터 도출된 오류 문법의 수와 전체 문장의 수 또는 단어 수의 비율에 기반할 수 있다. 또한, 가독성에 대한 점수는 후술할 판단부(360)에서 도출된 결과를 이용할 수 있다.
연관성은, 문장 임베딩 기반으로 텍스트 랭크를 이용한 문서 요약본과, 주제(Topic)나 제목(Title), 또는 태그 등의 연관도를 측정함으로써 점수를 부여할 수 있다. 예를 들어, 제목은 A가 키워드이나, 문장 요약본의 키워드는 B이고, 이 둘 사이의 유사도가 낮을수록 연관도는 낮아지는 방식으로 점수를 부과할 수 있다.
이때, 문서 요약(Document Summarization)은 원본 문서가 가진 주요 내용을 유지하는 축약된 크기의 문서를 만들어내는 것이다. 문서 요약은 빅데이터에서 사용자가 원하는 정보를 빠르게 습득하기 위해 중요한 기술이며, 문서가 가진 핵심 정보들을 파악해야 하므로 문서 이해를 위해서도 필수적으로 연구되어야 하는 과정이다. 문서 요약의 방법은 원문에 있는 내용을 그대로 활용하여 요약하는 추출 요약(Extractive Summarization)과 원문에 없는 새로운 단어 및 문장을 생성하여 요약하는 추상 요약(Abstractive Summarization)으로 나눌 수 있다.
그 중 추출 요약은 원문에서 많은 양의 텍스트를 복사하면 요약 결과가 문법 및 정확성의 기본 수준을 보장받을 수 있다는 장점으로 인해 활발히 연구되어 왔다. 추출 요약을 위한 대표적인 기술에는 텍스트랭크(Text-Rank)가 있다. 텍스트랭크는 단어, 문장 간의 중요도를 계산하는 그래프 기반 순위화 알고리즘이며, 이를 이용해 중요도가 높은 일부 문장을 선택하는 것으로 문서를 요약할 수 있다. 그러나 기존 텍스트랭크는 문장 내 단어를 통해 그래프의 간선을 계산하므로 문장 전체의 의미를 고려하지는 못한다.
이에 따라, 본 발명의 일 실시예에서는, 문장을 임베딩(Embedding)하고 임베
딩 벡터 간의 코사인 유사도를 이용하여 그래프의 간선을 계산함으로써 보다 문장의 의미를 잘 반영하는 텍스트랭크를 이용할 수 있다. 마찬가지로 주제(제목)과 문장 요약본 간의 유사도를 계산하는 방법도 동일할 수 있다.
이때, 페이지랭크(PageRank)는 웹 페이지 간의 상대적 중요도를 계산하는 그래프 기반 순위화 알고리즘이다. 각 페이지를 그래프의 정점(Node)으로, 페이지 간의 하이퍼링크를 간선(Edge)으로 하여 웹 페이지의 중요도를 계산한다. 텍스트랭크는 페이지랭크를 텍스트에 적용한 것이며, 텍스트랭크를 이용한 키워드 추출, 중요 문장 추출 등의 방법이 존재한다. 이 밖에도 문서 요약에서 각 문장이 가지는 돌출된 정보를 포착하기 위한 다양한 그래프 기반 방법을 이용할 수 있다. 예를 들어, 문장들 간의 코사인 유사도 그래프에서 고유 벡터 중심성을 통해 문장 중요도를 계산하는 LexRank 알고리즘이나, 다중 문서 요약을 위한 시스템인 G-FLOW를 이용할 수 있다. G-FLOW는 동사 파생 명사, 상호 참조 등의 지표를 이용하여 문장 간의 담화 관계를 근사하는 그래프를 생성하며, 이 그래프를 통해 요약의 일관성을 추정한다.
임베딩이란 문장이나 단어를 특정 차원의 벡터 공간으로 사상시켜 추상화된 정보를 표현하도록 단어, 문장과 같은 특정 단위의 텍스트를 벡터로 표현하는 것이다. 임베딩이 미등록어에 취약하다는 문제를 해결하기 위해 문자(Character) 단위 합성곱 신경망(Convolutional Neural Network)을 사용해 단어 임베딩을 보완한 언어 모델일 이용할 수도 있고, 문자 단위 합성곱 신경망 정보를 순환 신경망(Recurrent Neural Network)의 입력으로 사용하여 문맥 정보를 반영한 단어 임베딩을 이용할 수도 있다.
이때, 본 발명의 일 실시예에서는, 문서 요약을 위해 요약의 단위가 되는 문장을 임베딩한다. 문장 임베딩은 오토인코더(Autoencoder) 형식의 순환 신경망을 통해 이루어지며, 문장 내 각 단어의 임베딩은 공개기술을 이용할 수 있다. 예를 들어, 품사가 고유 명사, 외국어, 숫자 등과 같이 미등록어로 자주 나타나는 품사인 경우 음절 단위 합성곱 신경망을 통해 임베딩하고, 그 외의 품사인 경우에는 임의의 벡터로 임베딩한다. 그 뒤, 형태소 임베딩을 양방향 LSTM 인코더에 입력하고 각 방향 LSTM의 마지막 벡터를 결합(Concatenation)한 것을 문장의 인코딩 결과로 사용한다. 인코딩된 문장 벡터는 입력과 최대한 같은 출력을 디코딩하기 위해 다음의 손실(Loss)을 최소화하도록 문장 임베딩 모델을 학습한다. 이때, 손실은 정답 단어 분포와 예측 단어 분포의 크로스 엔트로피(Cross-Entropy)이다. 학습이 완료되면 중간 벡터를 문장의 임베딩 결과로 사용한다. 문장 임베딩을 통해 유사한 의미를 가진 문장이 임베딩 공간에서 가까운 곳에 위치하게 된다.
그 다음은 문장 임베딩 기반 텍스트랭크를 이용해야 하는데, 일반적인 텍스트랭크는 문장을 대표하는 일부 중요 단어의 TF-IDF를 통해 문장 간의 연관성(Correlation)을 계산한다. 이때, TF-IDF는, 문장-단어 행렬과 그 전치행렬을 곱하는 것으로 문장 간의 연관성을 나타내는 행렬을 구할 수 있다. 계산된 행렬을 그래프의 인접 행렬로 가정하면 정점(Node) 및 간선(Edge)의 그래프를 얻을 수 있다. 그 뒤, 각 정점에 대해 텍스트랭크를 적용하여 문장의 중요도를 구한다.
다만, 이러한 텍스트랭크 방법은 단어의 TF-IDF를 통해 간선 가중치를 계산하므로 문장 전체의 의미를 고려하지는 못한다. 이러한 단점을 해소하기 위해 문장 임베딩을 통해 문장을 임베딩 공간으로 사상하고, 임베딩 공간에서의 유사도를 통해 문장의 중요 순위를 계산하는 방법을 이용할 수 있다. 이때, 코사인 유사도를 구하는 공식은 공지기술이므로 설명을 생략한다.
모든 임베딩 벡터에 대해 다른 임베딩 벡터와의 코사인 유사도를 계산하면 각 문장들 간의 유사도를 나타내는 행렬을 얻는다. 이 행렬을 그래프의 인접 행렬로 가정한 뒤, 일반적인 텍스트랭크 방법과 동일하게 적용한다. 문장 임베딩을 통해 유사한 의미의 문장들이 임베딩 공간에서 가까이에 위치할 것이라 가정하므로, 문장의 의미를 고려하는 텍스트랭크를 구할 수 있다. 이렇게 구해진 텍스트랭크와 주제 또는 제목 간의 유사도를 다시 구하는 경우 연관도 점수를 얻을 수 있게 된다.
동기화부(340)는, 적어도 하나의 이동 단말 및 고정 단말 중 어느 하나의 단말에서 문서를 작성하는 경우 어느 하나의 단말을 제외한 다른 단말에서도 문서를 출력하도록 동기화할 수 있다. 이때, 사용자 단말(100)은 클라우드로 연동된 적어도 하나의 이동 단말 및 고정 단말을 포함할 수 있다.
교정DB부(350)는, 맞춤법, 문법 및 띄어쓰기를 교정한 경우, 교정한 이유에 대한 문법 개념 데이터를 포함한 결과 화면을 제시하도록 교정 데이터베이스를 구축할 수 있다. 이때, 철자오류는 크게 두 종류로 단순 철자오류(Non-Word Spelling Error)와 문맥의존 철자오류(Context Sensitive Spelling Error)로 나뉜다. 단순 철자오류는 문맥의존 철자오류에 비해서 쉽게 교정할 수 있는데 사전(Dictionary)에 교정 대상 단어가 포함되어 있는지 아닌지를 비교하여 오류어를 판단한다. 반면 문맥의존 철자오류의 경우 교정 난도가 상당히 올라가게 되며, 예를 들어 “주의를 살피다”와 “주위를 살피다”라는 문장에서 “주의”가 오류어가 되는데 “주의”와 “주위”는 사전에 존재하는 단어이므로 단순 철자오류를 교정하는 방식으로는 해결이 어렵다. 따라서, 주변 문맥의 정보를 파악하여 해결하여야 한다. 예에서는 “주의”가 오류어지만 문맥에 따라서 “주위”가 오류어가 될 수도 있다.
그리고 문서를 작성하는 사용자의 관점에서도 오류를 범하는 방식을 나눌 수 가 있는데 대표적으로 언어 사용에 있어 무지하여 생성되는 오류와 키보드를 통해 타이핑 과정에서의 오류가 있다. 앞서 말한 철자오류의 범주는 문제에 관해 목적성을 부여하며, 사용자가 생성하는 오류의 범주는 문제를 어떻게 해결할지에 관해 연관성이 있다. 본 발명의 일 실시예에 따른 문맥의존 철자오류 교정은 단순 교정 및 문맥의존 교정을 모두 실시할 수 있다.
먼저 교정 실험 데이터를 생성하는 3 단계가 있는데 정확도가 높은 데이터를 입력으로 오류어를 생성하며, 오류어를 원문 문서에 삽입하여 이후 교정 실험에 입력으로 사용한다. 예를 들어, “뒷돈”이라는 단어에 대해서 편집거리(Edit Distance)를 고려하여 사전에 포함된 단어를 대상으로 “뒷동”, “윗돈”이라는 오류 후보어(Error Candidate)를 생성할 수 있고, 최종적으로 “윗돈”을 오류어로 결정할 수 있다. 참고로 오류어 생성의 대상은 입력 문서 내의 모든 단어를 대상으로 한다.
다음으로는 실제 교정을 하는 4 단계로 나뉜다. 앞에서 생성된 오류 문서를 입력으로 넣게 되면 모든 어절을 대상으로 철자오류를 교정한다. 먼저 교정 대상 단어에 대해서 편집거리를 고려하여 사전 검색을 통해 교정 후보어(Correction Candidate)를 생성한다. 예에서는 “윗돈”이라는 교정 대상 단어에 “윗동”, “뒷돈”, “윗돌”, “뒷돌”과 같은 후보가 생성될 수 있다. 다음 으로는 생성된 후보어와 주변 문맥과의 연관성을 파악하여 교정 유무를 판단한다.
본 발명의 일 실시예에 따른 임베딩 기법은 교정 대상 단어 및 후보어들 중 문맥과 얼마나 연관성이 있는지를 비교하기 위해서 사용할 수 있다. 문맥의존 철자오류 교정에서는 문맥의 정보를 잘 파악할수록 좋은 성능을 보인다. 그렇기 때문에 임베딩 기법들을 사용할 때 미등록어의 처리나 문맥의 정보를 더욱 잘 파악할수록 좋은 교정 성능 결과가 나올 수 있다.
문맥의존 철자오류 교정은 두 방향으로 나누어질 수 있는데, 교정 후보어를 생성하는 방법과, 생성된 후보어와 문맥과의 관계를 파악해서 최적의 교정 후보를 찾는 방법이다. 후보어 생성은 교정 후보와의 편집거리를 계산하여 사전에 포함된 단어를 중심으로 교정을 할 수 있고, 이를 발전 시켜 키보드 입력 환경을 고려해서 편집거리 및 키보드 상에서의 해당 음소(Alphabet)와의 거리를 고려하여 후보 생성에 제약을 주는 방식으로 적용될 수 있다. 이때, 본 발명의 일 실시예의 오류 및 교정 후보어 생성에 사용할 수 있다.
이후에는 후보어 생성 방식이 교정 단어와의 편집거리에 의한 단적인 연관성에 의해 생성되었던 점을 극복하기 위해서 문맥의 정보를 이용하여 생성하는 방법이 있는데, 문맥의 정보를 이용한 후보어 생성 방식은 3-gram을 이용하는 방식으로 복수의 어절에서 추출한 영어 말뭉치의 정보를 이용하여 양질의 다양한 후보를 생성한다. 이때, 본 발명의 일 실시예에서도 다량의 신문기사를 이용하여 한글에서의 문맥 정보를 기반으로 후보어 생성할 수 있다.
다음으로는 교정 후보어와 문맥과의 관계를 파악하여 최적의 교정 후보를 찾는 방법이 있는데, 이는 교정 모형(Correction Model)을 만들거나 선택하는 것이다. 문맥의존 철자오류 교정에서 사용되는 교정 모형은 통계적인 방법에서부터 다양한 연구가 진행되었는데, 대표적으로 노이지 채널 모형(Noisy Channel Model)이나 N-Gram 기반의 언어 모형 등이다. 노이지 채널 모형 기반에서의 평탄화(Smoothing), 보간(Interpolation), N-Gram 검색 구조 향상(Default Search) 등의 방법도 이용될 수 있다.
이에 더하여, 딥러닝(Deep Learning)을 이용하여 문맥의존 철자오류 교정을 수행할 수도 있는데, RNN(Recurrent Neural Metwork) 또는 CNN(Convolutional Neural Network) 기반의 모형을 이용하여 교정 및 단어 임베딩을 이용한 교정을 수행할 수도 있다. 문맥의존 철자오류 교정은 광범위한 문서에서 나타나는 다양한 단어를 대상으로 교정을 시행한다. 교정 모형으로 임베딩 기법을 사용하는 이유는 광범위한 모든 단어에 대해서 철자오류의 정답지를 제시하기에는 어려움이 있으므로 비지도 학습(Unsupervised Learning)을 기반으로 하는 임베딩 기법을 선택할 수 있다. 문맥정보를 유연하게 반영한 임베딩을 이용한 교정을 할 수 있는데, 그 이유는 단어 기반 임베딩의 경우 문맥에 따라서 고정되어 있는 벡터를 갖지만 문맥정보를 반영하여 벡터를 얻는다면 더욱 유연하게 교정의 문제를 해결할 수 있기 때문이다.
판단부(360)는, 문장의 가독성을 평가하기 위하여 텍스트 내 포함된 단어의 수가 많을수록, 텍스트 내 포함된 단어의 수준이 높을수록, 텍스트 내 포함된 문장의 구조가 복문이거나 단어의 꾸밈구조가 깊을수록 복잡도(Complexity)가 증가하고 가독성은 낮아지는 것으로 판단할 수 있다. 문장의 가독성은 매우 주관적이고 주위 상황(읽는 사람의 수준, 문화, 편집 기술)에 따라서 변화하는 지표로서 이것을 객관적으로 정의하기 어렵다. 문장의 가독성을 짐작할 수 있는 문장의 복잡도(complexity)를 정의하고 제시한 복잡도가 실제 일상에서 사용하는 문서의 난이도와 수준을 반영하고 있다는 것을 이용할 수 있다.
즉 일반적으로 복잡하고 이해하기 어려운 판결문이나 보험약관이 외국인을 위한 한국어 교재에 있는 문장보다 훨씬 더 높은 복잡도를 보인다. 일반적으로 잘 알려진 문장의 복잡도를 높이는 요인은 첫 번째, 사용한 단어가 많을수록, 두 번째 사용된 단어의 수준이 높을수록, 세 번째, 문장의 구조가 복잡할수록, 즉 복문이나 단어의 꾸밈구조가 깊을수록 문장의 복잡도는 증가한다.
이러한 세 가지 특성을 반영하기 위하여 문장의 파싱트리(Parsing Tree)의 구조와 사용된 단어의 난이도를 고려한 복잡도 측정 방법을 이용하기로 한다. 그리고 이 방법으로 다양한 종류의 문장의 복잡도를 측정해볼 수 있다. 예를 들어, 임의의 문장을 세종 말뭉치(Corupus)로 파싱해보면, 문장이 복잡할수록 여러 개의 문장이 연결된 복문의 구조이거나 어떤 명사를 꾸미는 절이 붙어 있기 때문에 파싱 트리의 깊이가 더 깊게 내려감을 알 수 있었다. 일단 문장의 복잡도를 파싱 트리의 복잡성으로 계산할 수 있다고 생각했다.
문장 S의 파싱 나무 Ts 일 때 S의 구조적 복잡성은 문장을 구성하는 모든 단어, 즉 단말노드 wi가 트리 Ts에서 가지는 깊이, 즉 root에서의 거리 depthts(wi)의 총합으로 정의한다. 예를 들어, 세종 말뭉치에 제시된 "비좁은 암흑 상자 속에서 사람들은 공포에 떨고 있다"라는 문장의 구조적 복잡도 값은 3+3+2+2+1+2+3+3=19로 계산된다. 만일 위 문장을 간 “상자 속에서 공포에 떨고 있다.”로 간략하게 만들면 구조적 복잡도는 2+2+2+2=8로 계산되어 문장 복잡도는 줄어들어 원래 문장의 19에서 8로 된다.
그런데 문장의 복잡도 구문구조의 복잡한 정도에도 영향을 받지만 사용된 단어의 난이도에도 영향을 받는다. 법원의 판결문이나 현대 철학 논문의 어렵게 느껴지는 것은 이들이 흔히 일상에서 사용하는 단어가 아니기 때문이다. 따라서 파싱 트리에 나타난 단말노드의 각 단어 wi의 의미 난이도(Difficulty) diff(wi)를 문장의 전체 복잡도 평가에 반영해야 한다.
구조의 복잡성과 사용한 각 단어의 난이도를 종합적으로 결합하여 문장 S의 복잡도를 각 단말 노드의 난이도 diff(wi)와 이 노드의 트리에서의 깊이 depthts(wi)와 결합하여 결정한다. 어떤 문장의 파싱결과가 나무구조 Ts로 표현되었을 때 문장 S의 전체 복잡도는 이하 수학식 10과 같이 정의될 수 있다.
그런데 단어의 난이도를 결정하는 것은 읽는 사람의 수준까지 고려해야하기 때문에 매우 어려운 일이다. 이때, 단어의 난이도는 국립국어원에서 공개한 한국 기초어 사전에서 정한 등급 {초급, 중급, 고급} 구분과 외국인을 위한 어휘 목록 사전에서 구분한 등급을 통합하여 10,631 단어의 새로운 난이도 사전을 이용할 수 있다. 이 사전에 나오지 않는 단어는 “등외 고급”단어로 분류하기로 한다. 단 복잡도 분석에서 단어 난이도는 명사와 동사에 대하여만 적용하는데, 왜냐하면 조사, 형용사, 부사 등은 의미에 큰 영향을 주지 않을 뿐만 아니라 그 어근을 찾아내기 어렵기 때문이다. 특정 단어가 명사인지 또는 동사인지, 동사라면 그 원형이 무엇인지를 구분하고 추출하는 일은 한글처리 도구인 KoNLPy를 이용할 수 있고, 동사 원형을 찾아내는 일은 Twitter 분석기의 Stemming 기능을 이용할 수 있다.
앞 예제 문장의 트리에서 단어의 난이도를 추가한 트리는, 명사와 동사, 즉 {암흑, 상자, 속, 사람, 공포, 떨다} 단어만 고려하는 것과 같다. 초중고급 단어의 가중치는 각각 다르게 설정할 수 있으나 고급단어로 갈 수록 그 가중치는 높아질 수 있다.
템플릿추천부(370)는, 적어도 하나의 카테고리에 적어도 하나의 문서 템플릿을 저장하고, 사용자 단말(100)에서 입력한 텍스트의 내용 분석을 통하여 키워드를 추출하고, 키워드와 기 매핑되어 저장된 어느 하나의 카테고리를 추출하며, 추출된 어느 하나의 카테고리에 매핑된 적어도 하나의 문서 템플릿을 사용자 단말(100)로 추천할 수 있다. 이때, 템플릿은 문서 서식, 디자인, 글씨체 등을 모두 포함할 수 있다. 여기서, 내용 분석은 각 상술한 키워드를 이용하여 정치, 사회, 경제 등의 분야별 카테고리로 나누고, 각 분야에서 자주 쓰이는 포맷을 템플릿화하여 적용해주는 것이다. 예를 들어, "law firm document templates"로 검색하는 경우 로펌에서 주로 사용하는 글씨체, 자간, 장평, 폰트 크기, 토픽이나 주소 위치 등 다양한 정보를 어디에 넣어야 하는지, 어떠한 글씨체를 써야하는지 등을 알 수 있다. 웹크롤링으로 수집하여 정형화하는 것도 가능하고 각 분야의 디자이너로부터 저작권 라이센싱을 맺어 판매를 하는 것도 가능하다.
하이라이트부(380)는, 사용자 단말(100)에서 입력한 텍스트의 내용 분석을 통하여 키워드를 추출하고, 키워드를 강조하기 위한 적어도 하나의 디자인을 추천할 수 있다. 이때, 키워드를 추출하는 방법은 상술한 텍스트랭크 또는 TF-IDF를 이용할 수 있다.
한편, 사용자 단말(100)은 문법 교정 서비스 제공 서버와 연결되지 않은 오프라인 상태인 경우, 사용자 단말(100)에 설치된 애플리케이션이 사용자 단말(100)의 OS(Operating System)에 문법 교정 등록을 하고, 사용자 단말(100)에서 텍스트가 입력되는 텍스트 입력 이벤트가 발생될 때마다 애플리케이션이 텍스트를 모니터링하여 교정대상 텍스트를 수집한 후 결과 화면을 출력할 수 있다.
이하, 상술한 도 2의 문법 교정 서비스 제공 서버의 구성에 따른 동작 과정을 도 3을 예로 들어 상세히 설명하기로 한다. 다만, 실시예는 본 발명의 다양한 실시예 중 어느 하나일 뿐, 이에 한정되지 않음은 자명하다 할 것이다.
도 3a는 본 발명의 일 실시예에 따른 플랫폼 명칭 및 로고인데 이에 한정되지는 않는다. 도 3b를 참조하면 본 발명의 일 실시예에 따른 서비스 요약이 되어 있고, 도 4a 내지 도 4h는 각각의 예시화면을 도시한다.
도 4a를 참조하면, 사용자 단말(100)에서 문서작성을 시작하면, 문법, 맞춤법 및 띄어쓰기에 대한 오류가 자동으로 화면에 나타게 되고, 도 4b와 같이 틀린 단어 또는 틀린 문장을 클릭하면, 우측에 맞게 수정된 문장과 왜 틀린 단어 또는 문장으로 교정이 되었는지에 대한 이유가 나타난다. 도 4c를 참조하면, 단어나 문장이 수정된 화면을 도시하고, 도 4d 내지 도 4g는 영문으로 문서작성을 하고 문법 교정 서비스를 제공한 화면을 도시한다.
도 4h는 모바일 버전으로도 구현된 것을 볼 수 있으며, 도 4i 내지 도 4k와 같이 크롬 확장 기능으로 이메일을 쓰거나 소셜미디어, 또 블로그 등에 글을 쓸 때 문장과 단어 그리고 띄어쓰기를 교정해줄 수도 있다.
이와 같은 도 2 내지 도 4의 클라우드 기반 문법 교정 서비스 제공 방법에 대해서 설명되지 아니한 사항은 앞서 도 1을 통해 클라우드 기반 문법 교정 서비스 제공 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다.
도 5는 본 발명의 일 실시예에 따른 도 1의 클라우드 기반 문법 교정 서비스 제공 시스템에 포함된 각 구성들 상호 간에 데이터가 송수신되는 과정을 나타낸 도면이다. 이하, 도 5를 통해 각 구성들 상호간에 데이터가 송수신되는 과정의 일 예를 설명할 것이나, 이와 같은 실시예로 본원이 한정 해석되는 것은 아니며, 앞서 설명한 다양한 실시예들에 따라 도 5에 도시된 데이터가 송수신되는 과정이 변경될 수 있음은 기술분야에 속하는 당업자에게 자명하다.
도 5를 참조하면, 문법 교정 서비스 제공 서버는, 사용자 단말에서 적어도 하나의 종류의 매체를 통하여 텍스트를 입력하는 이벤트를 감지한다(S5100).
그리고, 문법 교정 서비스 제공 서버는, 텍스트가 이루는 단어 및 문장에서 맞춤법, 문법 및 띄어쓰기를 교정하고(S5200), 교정한 텍스트가 포함된 결과 화면을 사용자 단말로 전송한다(S5300).
상술한 단계들(S5100~S5300)간의 순서는 예시일 뿐, 이에 한정되지 않는다. 즉, 상술한 단계들(S5100~S5300)간의 순서는 상호 변동될 수 있으며, 이중 일부 단계들은 동시에 실행되거나 삭제될 수도 있다.
이와 같은 도 5의 클라우드 기반 문법 교정 서비스 제공 방법에 대해서 설명되지 아니한 사항은 앞서 도 1 내지 도 4를 통해 클라우드 기반 문법 교정 서비스 제공 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다.
도 5를 통해 설명된 일 실시예에 따른 클라우드 기반 문법 교정 서비스 제공 방법은, 컴퓨터에 의해 실행되는 애플리케이션이나 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 일 실시예에 따른 클라우드 기반 문법 교정 서비스 제공 방법은, 단말기에 기본적으로 설치된 애플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼이나 운영체제 등에 포함된 프로그램을 포함할 수 있음)에 의해 실행될 수 있고, 사용자가 애플리케이션 스토어 서버, 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버를 통해 마스터 단말기에 직접 설치한 애플리케이션(즉, 프로그램)에 의해 실행될 수도 있다. 이러한 의미에서, 전술한 본 발명의 일 실시예에 따른 클라우드 기반 문법 교정 서비스 제공 방법은 단말기에 기본적으로 설치되거나 사용자에 의해 직접 설치된 애플리케이션(즉, 프로그램)으로 구현되고 단말기에 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
Claims (10)
- 적어도 하나의 종류의 매체를 통하여 텍스트를 입력한 후 맞춤법, 문법 및 띄어쓰기를 교정받은 결과 화면을 출력하는 사용자 단말; 및
상기 사용자 단말에서 상기 적어도 하나의 종류의 매체를 통하여 텍스트를 입력하는 이벤트를 감지하는 모니터링부, 상기 텍스트가 이루는 단어 및 문장에서 맞춤법, 문법 및 띄어쓰기를 교정하는 교정부, 교정한 텍스트가 포함된 결과 화면을 상기 사용자 단말로 전송하는 전송부를 포함하는 문법 교정 서비스 제공 서버;를 포함하며,
상기 결과 화면은,
상기 사용자 단말로부터 입력된 텍스트의 문법적 정확성 및 명확성;
상기 사용자 단말에서 입력한 텍스트 내 제목 및 내용 간 연관도에 기반한 연관성; 및
상기 사용자 단말에서 입력한 텍스트가 이루는 적어도 하나의 문장의 복잡도에 기반한 가독성을 평가한 결과를 포함하며,
상기 문법적 정확성 및 명확성에 대한 퍼센테이지는,
오류 교정 기법과 문맥 기반 교정으로부터 도출된 오류 문법의 수와 문장의 또는 단어 수의 비율에 기반하여 산출하며,
상기 연관성은,
문장 임베딩 기반으로 텍스트 랭크를 이용한 문서 요약본과 주제나 제목이나 태그의 연관도를 측정하여 점수를 부여하는 것을 특징으로 하는 클라우드 기반 문법 교정 서비스 제공 시스템.
- 제 1 항에 있어서,
상기 사용자 단말은 클라우드로 연동된 적어도 하나의 이동 단말 및 고정 단말을 포함하는 것을 특징으로 하는 클라우드 기반 문법 교정 서비스 제공 시스템.
- 제 2 항에 있어서,
상기 문법 교정 서비스 제공 서버는,
상기 적어도 하나의 이동 단말 및 고정 단말 중 어느 하나의 단말에서 문서를 작성하는 경우 상기 어느 하나의 단말을 제외한 다른 단말에서도 상기 문서를 출력하도록 동기화하는 동기화부;
를 더 포함하는 것을 특징으로 하는 클라우드 기반 문법 교정 서비스 제공 시스템.
- 제 1 항에 있어서,
상기 적어도 하나의 종류의 매체는 문서편집, 이메일, 블로그 및 소셜미디어를 구동하는 웹페이지, 앱페이지, 프로그램 및 애플리케이션을 포함하는 것을 특징으로 하는 클라우드 기반 문법 교정 서비스 제공 시스템.
- 제 1 항에 있어서,
상기 문법 교정 서비스 제공 서버는,
상기 맞춤법, 문법 및 띄어쓰기를 교정한 경우, 교정한 이유에 대한 문법 개념 데이터를 포함한 결과 화면을 제시하도록 교정 데이터베이스를 구축하는 교정DB부;
를 더 포함하는 것을 특징으로 하는 클라우드 기반 문법 교정 서비스 제공 시스템.
- 삭제
- 제 1 항에 있어서,
상기 문법 교정 서비스 제공 서버는,
상기 문장의 가독성을 평가하기 위하여 상기 텍스트 내 포함된 단어의 수가 많을수록, 상기 텍스트 내 포함된 단어의 수준이 높을수록, 상기 텍스트 내 포함된 문장의 구조가 복문이거나 단어의 꾸밈구조가 깊을수록 복잡도(Complexity)가 증가하고 가독성은 낮아지는 것으로 판단하는 판단부;
를 더 포함하는 것을 특징으로 하는 클라우드 기반 문법 교정 서비스 제공 시스템.
- 제 1 항에 있어서,
상기 문법 교정 서비스 제공 서버는,
적어도 하나의 카테고리에 적어도 하나의 문서 템플릿을 저장하고, 상기 사용자 단말에서 입력한 텍스트의 내용 분석을 통하여 키워드를 추출하고, 상기 키워드와 기 매핑되어 저장된 어느 하나의 카테고리를 추출하며, 상기 추출된 어느 하나의 카테고리에 매핑된 적어도 하나의 문서 템플릿을 상기 사용자 단말로 추천하는 템플릿추천부;
를 더 포함하는 것을 특징으로 하는 클라우드 기반 문법 교정 서비스 제공 시스템.
- 제 1 항에 있어서,
상기 문법 교정 서비스 제공 서버는,
상기 사용자 단말에서 입력한 텍스트의 내용 분석을 통하여 키워드를 추출하고, 상기 키워드를 강조하기 위한 적어도 하나의 디자인을 추천하는 하이라이트부;
를 더 포함하는 것을 특징으로 하는 클라우드 기반 문법 교정 서비스 제공 시스템.
- 제 1 항에 있어서,
상기 사용자 단말은 상기 문법 교정 서비스 제공 서버와 연결되지 않은 오프라인 상태인 경우, 상기 사용자 단말에 설치된 애플리케이션이 상기 사용자 단말의 OS(Operating System)에 문법 교정 등록을 하고, 상기 사용자 단말에서 텍스트가 입력되는 텍스트 입력 이벤트가 발생될 때마다 상기 애플리케이션이 상기 텍스트를 모니터링하여 교정대상 텍스트를 수집한 후 결과 화면을 출력하는 것을 특징으로 하는 클라우드 기반 문법 교정 서비스 제공 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200174868A KR102552811B1 (ko) | 2020-12-14 | 2020-12-14 | 클라우드 기반 문법 교정 서비스 제공 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200174868A KR102552811B1 (ko) | 2020-12-14 | 2020-12-14 | 클라우드 기반 문법 교정 서비스 제공 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220084915A KR20220084915A (ko) | 2022-06-21 |
KR102552811B1 true KR102552811B1 (ko) | 2023-07-06 |
Family
ID=82221236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200174868A KR102552811B1 (ko) | 2020-12-14 | 2020-12-14 | 클라우드 기반 문법 교정 서비스 제공 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102552811B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102700904B1 (ko) * | 2023-11-03 | 2024-08-30 | 주식회사 북엔드 | 한국어 문장 교정 서비스 제공 시스템 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102507925B1 (ko) * | 2022-06-28 | 2023-03-10 | 주식회사 보인정보기술 | 한국어 교정 서비스 제공 방법 및 이러한 방법을 수행하는 장치 |
KR102707684B1 (ko) * | 2023-09-08 | 2024-09-19 | 주식회사 스톡폴리오 | 다국어 텍스트를 이용한 영상 컨텐츠 자동 생성 시스템 및 이를 이용한 영상 컨텐츠 자동 생성 방법 |
KR102703427B1 (ko) * | 2023-11-22 | 2024-09-06 | 오케스트로 주식회사 | 거대 언어모델을 이용한 클라우드 문서 제공 시스템 및 문서 제공 방법 |
CN117875313B (zh) * | 2024-03-12 | 2024-07-02 | 长沙市智为信息技术有限公司 | 一种中文语法纠错方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102019207B1 (ko) * | 2018-11-12 | 2019-09-06 | 주식회사 와이즈넛 | 텍스트 분석을 위한 데이터 품질 평가 장치 및 방법 |
KR102117895B1 (ko) * | 2018-11-28 | 2020-06-02 | 주식회사 이르테크 | Stand-off 주석을 이용한 언어학습용 작문오류 교정장치 및 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130016867A (ko) * | 2011-08-09 | 2013-02-19 | 주식회사 케이티 | 민감한 단어를 표시할 수 있는 사용자 단말,및 사용자 단말의 민감한 단어 표시 방법 |
KR20140132951A (ko) * | 2013-05-09 | 2014-11-19 | (주)스마트이엑스이 | 통신망을 이용한 쌍방향 스마트 학습 시스템 |
KR102087263B1 (ko) * | 2018-07-16 | 2020-03-10 | 주식회사 한글과컴퓨터 | 전자 문서에 템플릿을 적용하는 전자 장치 및 그의 동작 방법 |
-
2020
- 2020-12-14 KR KR1020200174868A patent/KR102552811B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102019207B1 (ko) * | 2018-11-12 | 2019-09-06 | 주식회사 와이즈넛 | 텍스트 분석을 위한 데이터 품질 평가 장치 및 방법 |
KR102117895B1 (ko) * | 2018-11-28 | 2020-06-02 | 주식회사 이르테크 | Stand-off 주석을 이용한 언어학습용 작문오류 교정장치 및 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102700904B1 (ko) * | 2023-11-03 | 2024-08-30 | 주식회사 북엔드 | 한국어 문장 교정 서비스 제공 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR20220084915A (ko) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102552811B1 (ko) | 클라우드 기반 문법 교정 서비스 제공 시스템 | |
US11188711B2 (en) | Unknown word predictor and content-integrated translator | |
US11308278B2 (en) | Predicting style breaches within textual content | |
Derczynski et al. | Microblog-genre noise and impact on semantic annotation accuracy | |
JP4960461B2 (ja) | ウェブベースのコロケーション誤りの校正 | |
JP5362353B2 (ja) | 文書中のコロケーション誤りを処理すること | |
US9965458B2 (en) | Intelligent system that dynamically improves its knowledge and code-base for natural language understanding | |
US9098488B2 (en) | Translation of multilingual embedded phrases | |
US8554537B2 (en) | Method and device for transliteration | |
US8386240B2 (en) | Domain dictionary creation by detection of new topic words using divergence value comparison | |
US20140163963A2 (en) | Methods and Systems for Automated Text Correction | |
Faili et al. | Vafa spell-checker for detecting spelling, grammatical, and real-word errors of Persian language | |
JP2011008784A (ja) | ローマ字変換を用いる日本語自動推薦システムおよび方法 | |
KR102251554B1 (ko) | 지문의 난이도 조정을 통하여 교육용 외국어 지문을 생성하는 방법 | |
Melero et al. | Holaaa!! writin like u talk is kewl but kinda hard 4 NLP | |
US8977538B2 (en) | Constructing and analyzing a word graph | |
JP2004240859A (ja) | 言い換えシステム | |
Shekhar et al. | Computational linguistic retrieval framework using negative bootstrapping for retrieving transliteration variants | |
Li | Research on Automatic Identification of Machine English Translation Errors Based on Improved GLR Algorithm | |
Bergsma | Large-scale semi-supervised learning for natural language processing | |
Mirzababaei et al. | Discriminative reranking for context-sensitive spell–checker | |
Rajnikant | Effective Stemmers using Trie Data Structure for Enhanced Processing of Gujarati Text | |
Arman et al. | Design and Development of a NLP-Based Assistive Platform to Facilitate Smooth Transition from Bengali Regional to Colloquial Language | |
JP2016053782A (ja) | 質問応答装置、質問応答方法、プログラム | |
Özbal et al. | Automatized memory techniques for vocabulary acquisition in a second 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 |