KR101491581B1 - 철자 오류 보정 시스템 및 방법 - Google Patents

철자 오류 보정 시스템 및 방법 Download PDF

Info

Publication number
KR101491581B1
KR101491581B1 KR20080032349A KR20080032349A KR101491581B1 KR 101491581 B1 KR101491581 B1 KR 101491581B1 KR 20080032349 A KR20080032349 A KR 20080032349A KR 20080032349 A KR20080032349 A KR 20080032349A KR 101491581 B1 KR101491581 B1 KR 101491581B1
Authority
KR
South Korea
Prior art keywords
string
character string
correction
error
dictionary
Prior art date
Application number
KR20080032349A
Other languages
English (en)
Other versions
KR20090106937A (ko
Inventor
송희준
박영희
심현식
함종규
김학수
이주호
이세희
Original Assignee
삼성전자주식회사
강원대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 강원대학교산학협력단 filed Critical 삼성전자주식회사
Priority to KR20080032349A priority Critical patent/KR101491581B1/ko
Priority to US12/419,509 priority patent/US8365070B2/en
Publication of KR20090106937A publication Critical patent/KR20090106937A/ko
Application granted granted Critical
Publication of KR101491581B1 publication Critical patent/KR101491581B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

본 발명은 철자 오류 보정 기술에 관한 것으로, 특히 컴퓨팅 파워가 낮은 휴대 단말기에서 입력된 문장의 철자 오류를 자동으로 인식하여 보정할 수 있는 철자오류 보정 시스템 및 방법에 관한 것이다.
이를 위해 본 발명은 공인된 말뭉치로부터 철자 오류 보정 사전을 구축하고, 철자 오류 보정 사전에 등록된 문자열들 중 확인 대상 문자열을 선정하며, 확인 대상 문자열에 대응하여 문맥 정보를 획득하여 저장하는 학습 과정과, 사용자 입력 문장이 수신되면 철자 오류 보정 사전을 통해 보정 대상 문자열을 추출하고, 보정 대상 문자열이 상기 확인 대상 문자열이면, 대응하는 상기 문맥 정보를 이용하여 사용자 입력 문장을 보정하는 적용 과정을 포함하는 철자 오류 보정 방법과 그 시스템을 제공한다.
이에, 본 핸드폰이나 PDA와 같이 일반적인 PC에 비해 컴퓨팅 파워가 떨어지는 휴대 단말기 등에서 효과적으로 작동되는 경량화된 철자 오류 보정 시스템 및 방법을 구현할 수 있다
철자 오류, 확률 값, 말뭉치, 휴대 단말기, 트라이 구조, 문맥 정보

Description

철자 오류 보정 시스템 및 방법{Correction System for spelling error and method thereof}
본 발명은 철자 오류 보정 기술에 관한 것으로, 보다 상세하게는 컴퓨팅 파워가 낮은 휴대 단말기에서 입력된 문장의 철자 오류를 자동으로 인식하여 보정할 수 있는 철자오류 보정 시스템 및 방법에 관한 것이다.
일반적으로 휴대 단말기란, 개인 이동통신 단말기(Personal Mobile Communication Services Terminal), 개인용 디지털 단말기(Personal Digital Assistants: PDA), 스마트 폰(Smart Phone), 차세대 이동통신 단말기(International Mobile Telecommunication 2000: IMT-2000), 및 무선 랜 단말기 등과 같이 개인이 휴대하면서 무선 통신 및 각종 응용 프로그램들을 이용한 다양한 기능을 이용할 수 있는 단말기를 지칭한다.
휴대 단말기는 꾸준한 발전으로 소형화 및 경량화를 이루었을 뿐만 아니라 mp3, 디지털 카메라, 네비게이션, 및 인터넷 브라우징 등의 다양한 기능을 겸비함에 따라 복합 통신 단말기로 거듭나고 있으며, 이미 현대인의 필수품으로 자리잡고 있다.
이처럼 휴대 단말기가 다양한 방면으로 활용하게 됨에 따라 사용자들은 휴대 단말기에 다양한 문자 또는 문장을 입력하고 있다. 휴대 단말기에 문자를 입력하는 방법으로는 일반적으로 키패드를 통해 입력하는 방법이 이용되고 있다.
그런데, 이처럼 키패드를 이용하는 방법은 일반적인 키보드에 비해 불편하기 때문에, 문자 입력 시 많은 철자 오류가 발생된다는 문제가 있다. 따라서, 휴대 단말기에서 자동으로 철자 오류를 보정할 수 있는 방안이 요구되고 있다.
기존의 철자 오류 보정 방법들은 크게 단어 기반 보정 모델과 자소 기반 보정 모델로 나누어진다. 단어 기반 보정 모델은 기 구축된 보정사전을 n-gram이나 편집거리(edit-distance)를 이용하여 탐색함으로써 보정 대상 후보 단어를 선택하고, 문맥 통계를 이용하여 사전에 등록되어 있는 새로운 단어로 교체하는 방법이다. 이러한 단어 기반 보정 모델은 구어체 문장에서 자주 나타나는 신조어나 축약어 등을 모두 사전에 등록을 해야 하기 때문에 단어 사전의 크기가 매우 커지게 된다. 즉, 큰 용량의 메모리가 필요하다는 단점이 있다.
이러한 문제를 해결하기 위해서 자소 기반 보정 모델들이 연구되고 있다. 자소 단위 보정 모델은 단어를 자소 단위로 해체한 후, 대용량의 학습데이터로부터 추출된 자소 변환 통계에 기반하여 자소를 삭제 또는 삽입하거나 새로운 자소로 교체하는 방법이다. 자소 단위 보정 모델은 단어 사전을 필요로 하지 않지만 대용량의 학습데이터와 그것으로부터 추출된 통계정보를 저장하기 위한 많은 메모리 공간이 필요하다는 단점이 있다.
이처럼 종래의 철자 오류 보정 방법은 모두 휴대 단말기와 같이 작은 용량의 메모리와 연산 능력이 약한 즉, 컴퓨팅 파워가 낮은 장치에서 이용하기에 무리가 있다. 따라서, 컴퓨팅 파워가 낮은 기기에서도 자동으로 철자 오류를 보정할 수 있는 방안이 요구되고 있다.
따라서, 본 발명의 목적은 휴대 단말기와 같이 컴퓨팅 파워가 낮은 장치에서 유용하게 사용될 수 있는 철자 오류 보정 시스템 및 방법을 제공하는 데에 있다.
상기 목적을 달성하기 위한 본 발명에 따른 철자 오류 보정 방법은 공인된 말뭉치를 기반으로 하여 철자 오류 보정 사전을 구축하는 사전 구축 단계와, 상기 철자 오류 보정 사전에 등록된 문자열들 중 문맥에 따라 다르게 사용될 수 있는 문자열들(이하, 확인 대상 문자열)을 선정하고, 상기 확인 대상 문자열에 대응하여 문맥 정보를 획득하여 저장하는 정보 저장 단계를 포함하는 학습 과정과, 사용자가 입력한 문장(이하 사용자 입력 문장)이 수신되면, 상기 철자 오류 보정 사전을 통해 보정 대상 문자열을 추출하는 추출 단계와, 상기 보정 대상 문자열이 상기 확인 대상 문자열이면, 대응하는 상기 문맥 정보를 이용하여 상기 사용자 입력 문장을 보정하는 보정 단계를 포함하는 적용 과정을 포함하여 구성되는 것을 특징으로 한다.
또한, 본 발명에 따른 철자 오류 보정 시스템은 공인된 말뭉치를 기반으로 하여 철자 오류 보정 사전을 구축하는 사전 구축부, 상기 철자 오류 보정 사전에 등록된 문자열들 중 문맥에 따라 다르게 사용될 수 있는 문자열들(이하, 확인 대상 문자열)을 추출하고, 상기 확인 대상 문자열의 문맥 정보를 추출하여 저장하는 정보 추출부를 포함하여 구성되는 학습부 및 사용자가 입력한 문장(이하 사용자 입력 문장)에 대응하여 상기 철자 오류 보정 사전을 통해 보정 대상 문자열을 추출하고, 상기 보정 대상 문자열이 상기 확인 대상 문자열이면, 대응하는 상기 문맥 정보를 이용하여 상기 사용자 입력 문장을 보정하는 문자열 보정부, 상기 문자열 보정부를 통해 보정된 상기 사용자 입력 문장에서 보정된 문자열에 대응하여 조사를 보정하는 조사 보정부를 포함하여 구성되는 적용부를 포함하는 것을 특징으로 한다.
본 발명에 따른 철자 오류 보정 시스템 및 방법은 철자 오류 보정 사전을 트라이(TRIE) 형태로 구성함으로써 메모리 사용량과 탐색 시간을 최소화한다. 그리고 사용자가 입력한 문장에서 철자 오류 보정 사전에 등록되어 있는 문자열이 나타나면 문맥 통계를 이용하여 해당 문자열을 보정 문자열로 교체할 것인지를 효율적으로 판단한다.
이에 따라 높은 컴퓨팅 파워(CPU 및 메모리 용량)를 필요로 하는 기존의 방법을 개선하여 작은 용량의 메모리와 단순 연산만을 이용하면서도 높은 철자 오류 보정 효과를 얻을 수 있다. 따라서 일반적인 PC와 같이 높은 컴퓨팅 파워에서만 수행이 가능하던 종래 기술에 비하여 핸드폰이나 PDA와 같이 낮은 컴퓨팅 파워에서도 용이하게 적용될 수 있다. 더하여, 모바일 기기에서 문장을 입력하고 처리하는 자연어 인터페이스 개발의 기틀을 마련할 수 있다.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
또한, 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 또한, 실질적으로 동일한 구성과 기능을 가진 구성 요소들에 대해서는 상세한 설명을 생략하도록 한다.
마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다.
이하, 본 발명의 실시예를 첨부된 도면에 의거하여 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 철자 오류 보정 시스템을 개략적으로 나타내는 블록도이다.
도 1을 참조하면, 본 발명에 따른 철자 오류 보정 시스템은 학습부(120), 적용부(140), 저장부(130), 입력부(150), 및 출력부(160)를 포함한다. 본 발명에 따른 철자 오류 보정 시스템(100)은 학습부(120)에서 학습을 통해 획득한 정보(즉, 문맥 정보)를 저장부(130)에 저장하고, 적용부(140)에서 이를 이용하여 사용자가 입력하는 문장(이하, 사용자 입력 문장)에 적용하며 사용자 입력 문장(M4)의 철자 오류를 보정한다.
학습부(120)는 철자 오류 보정 사전(132)을 구축하고, 철자 오류 보정 사전(132)에 등록된 문자열들 중 문맥에 따라 다르게 사용될 수 있는 문자열들을 추출하며, 추출된 문자열의 문맥 정보를 획득한다.
이를 위해 본 실시예에 따른 학습부(120)는 사전 구축부(122)와 정보 추출부(124)를 포함한다.
사전 구축부(122)는 공인된 말뭉치(M1)들과 철자 오류가 포함되어 있는 말뭉치(M2; 이하, 오류 말뭉치)들을 기반으로 하여 철자 오류 보정 사전(132)을 구축한다. 본 실시예에 따른 공인된 말뭉치(M1)는 기 발간된 어휘집, 단어집, 및 사전 등 바른 철자가 기재되어 있는 모든 말뭉치들을 포함할 수 있다. 또한 오류 말뭉치(M2)는 철자에 오류가 있는 문자열과, 신세대들이 인터넷 상이나 문자 메시지 등에 이용하는 신조어(즉, 바른 철자나 맞춤법에 따라 표현되지 않은 문자열)들을 포함하는 말뭉치이다. 이러한 오류 말뭉치(M2)는 인터넷 웹 사이트 등에 게시되어 있는 글들로부터 획득할 수 있다. 사전 구축부(122)는 공인된 말뭉치(M1)와 오류 말뭉치(M2)를 획득하고, 사용자의 입력에 따라 오류 문자열과 바른 문자열을 분류하며 철자 오류 보정 사전(132)을 구축한다.
본 실시예에 따른 철자 오류 보정 사전(132)은 잘못 사용된 문자열에 대해 바른 문자열을 제공하기 위한 데이터베이스로, 후술되는 저장부(130)에 저장된다. 또한, 철자 오류 보정 사전(132)은 오류 문자열 필드, 보정 문자열 필드, 및 품사 필드를 포함하여 구성된다.
도 2는 본 발명의 실시예에 따른 철자 오류 보정 사전을 개략적으로 나타내는 도면으로, 이를 참조하면 오류 문자열 필드는 오류 문자열로 확인되는 문자열이 등록된다. 도 2를 살펴보면 본 실시예에 따른 오류 문자열 필드에는 사용자의 입력 오류에 의해 발생되는 오류 문자열(예컨대, 가튀, 가티 등)과, 젊은 세대들이 이용하는 신조어(예컨대, 남친, 시로 등)가 모두 포함된다.
보정 문자열 필드는 오류 문자열을 보정한 보정 문자열 즉, 오류 문자열에 대한 바른 표기의 문자열이 등록된다. 그리고 품사 필드는 오류 문자열(또는 보정 문자열)에 대응하는 품사가 등록된다.
한편, 본 실시예에 따른 사전 구축부(122)는 구축된 철자 오류 보정 사전(132)을 트라이(TRIE) 구조로 구성하여 메모리에 적재한다. 이는 메모리 사용량과 탐색 시간을 최소화하기 위한 것으로, 후술되는 철자 오류 보정 방법에 대한 설명에서 상세히 설명하기로 한다.
정보 추출부(124)는 구축된 철자 오류 보정 사전(132)에 등록된 문자열들 중 문맥에 따라 다르게 사용될 수 있는 문자열들(이하, 확인 대상 문자열)을 추출한다. 이때, 정보 추출부(124)는 대용량의 학습 말뭉치(M3)와 철자 오류 보정 사전(132)을 비교하며 확인 대상 문자열을 선정한다. 여기서 학습 말뭉치(M3)는 일반적으로 사용되며 철자 오류가 없는 말뭉치로서, 확인 대상 문자열로 추정되는 문자열이 일반적으로 사용되는 문자열인지 아닌지를 확인하기 위해 이용된다.
본 실시예에 따른 정보 추출부(124)는 학습 말뭉치(M3)를 검색하여 철자 오 류 보정 사전(132)의 오류 문자열 필드에 등록된 모든 문자열들 중 학습 말뭉치(M3)에 1회 이상 포함되는 문자열이 있는 경우, 해당 오류 문자열을 확인 대상 문자열로 선정한다. 예를 들어, 학습 말뭉치(M3)에 ‘시로’라는 문자열이 존재하는 경우, 정보 추출부(124)는 해당 문자열인 ‘시로’를 확인 대상 문자열로 선정한다. 그러나, 1회에 한정되는 것은 아니며 보다 세분화된 조건(예컨대, 품사별로 횟수를 다르게 지정)에 따라 선정하는 것도 가능하다.
또한 정보 추출부(124)는 확인 대상 문자열로 선정된 문자열에 대응하여 문맥 정보를 획득하여 저장한다. 이를 위해 정보 추출부(124)는 학습 말뭉치(M3)에서 확인 대상 문자열을 확인하고, 그에 대응하는 문맥 정보를 추출하여 저장한다. 이때, 정보 추출부(124)는 확인 대상 문자열에 대응하는 오류 문자열과 보정 문자열의 문맥 정보를 모두 추출한다. 즉, 확인 대상 문자열이 ‘시로’인 경우, 정보 추출부(124)는 도 2의 철자 오류 보정 사전(132)을 기반으로 하여 오류 문자열인 ‘시로’와, 보정 문자열인 ‘싫어’에 대한 문맥 정보를 모두 추출한다.
본 실시예에 따른 문맥 정보는 해당 문자열(즉, 오류 문자열 및 보정 문자열)을 기반으로 하여 추출되며, 이에 대해 상세하게 설명하면 다음과 같다.
본 발명에 따른 문맥 정보는 오류 문자열(W before )과 보정 문자열(W after ), 그리고, 해당 문자열의 앞과 뒤의 음절 등을 이용하여 추출되는 빈도수로 생성된다.
즉, 학습말뭉치에서 문자열 W before 가 출현한 빈도수 f(W before ), w -1 W all w + 1라는 문자열이 출현한 빈도수 f(w -1,W all ,w +1), w -1 W all 이라는 문자열이 출현한 빈도수 f(w -1, W all ), W all w +1이라는 문자열이 출현한 빈도수 f(W all ,w +1), c -1c +1 이라는 범주 사이에 W all 이 출현한 빈도수 f(c -1,W all ,c +1), c -1이라는 범주 다음에 W all 이 출현한 빈도수 f(c -1,W all ), c +1이라는 범주 이전에 W all 이 출현한 빈도수 f(W all ,c +1) 등이 문맥 정보로 추출된다.
여기서, W all 은 확인 대상 문자열의 오류 문자열 W before 와, 그의 보정 문자열 W after 를 의미한다. 그리고 오류 문자열(W before )은 그에 대응되는 보정 문자열(W after )이 다수 개일 수 있다. 예컨대, ‘즐’이라는 문자열이 문맥에 따라 ‘그만’이나 ‘즐겨’로 보정될 수 있으며, 이에 따라 보정 문자열은 ‘그만’과 ‘즐겨’가 모두 포함된다.
f(w -1,W all ,w +1) 또한, w -1W all 바로 이전의 음절을, w +1W all 바로 다음의 음절을 나타낸다. 또한, c -1W all 바로 이전 문자열이 속한 범주를 나타내며, c +1W all 바로 다음 문자열이 속한 범주를 나타낸다.
또한, 본 실시예에 따른 범주는 해당 문자열이 아닌, 해당 문자열의 앞(즉, c -1)이나, 해당 문자열의 뒤(즉, c +1)에 기재된 문자열에 대해 적용된다. 즉, ‘9시로 하자’라는 문장의 경우, ‘시로’가 오류 문자(W before )로 선정되면, c -1은 앞 문자열인 ‘9’의 범주를 나타내며, c +1은 뒤 문자열인 ‘하자’의 범주를 나타낸다.
도 3은 본 발명의 실시예에 따른 범주 구분 테이블을 개략적으로 나타내는 도면으로, 이를 참조하면, 본 실시예에 따른 범주는 언어의 종류(예컨대, 영어 등), 숫자, 특수 문자, 보조용언, 접미사, 어미, 및 기타로 구분된다. 그러나, 이에 한정되지 않으며 보다 다양하거나 보다 단순하게 구분될 수도 있다. 한편, 범주 구분 테이블은 사전 구축부(122) 내부적으로 저장되는 것이 바람직하나, 후술되는 저장부(132)에 저장되는 것도 가능하다.
정보 추출부(124)를 통해 생성된 문맥 정보는 저장부(130)의 문맥 정보 데이터베이스(134)에 저장된다. 이에, 후술되는 적용부(140)에서 저장된 문맥 정보를 용이하게 이용할 수 있다.
한편, 문맥 정보 및 문맥 정보를 추출하는 방법에 대해서는 후술되는 철자 오류 보정 방법에서 보다 상세하게 설명하기로 한다. 또한, 본 발명에 따른 문맥 정보는 상기한 구성으로 한정되지 않으며, 문맥을 파악할 수 있는 정보라면 보다 다양하게 이용될 수 있다.
적용부(140)는 사용자가 입력한 문장(M4; 이하, 사용자 입력 문장)에 확인 대상 문자열이 포함되어 있으면, 해당 확인 대상 문자열의 문맥 점수를 산출한다. 그리고, 산출된 문맥 점수를 기반으로 하여 사용자 입력 문장(M4)을 보정한다. 또한, 보정된 사용자 입력 문장(M4)에서 보정된 문자열의 조사를 보정한다.
이를 위해 적용부(140)는 문자열 보정부(142), 및 조사 보정부(144)를 포함한다.
문자열 보정부(142)는 학습부(120)에서 선정한 확인 대상 문자열이 사용자 입력 문장(M4)에 포함되어 있는 지 확인하고, 포함되어 있으면 저장된 해당 확인 대상 문자열의 문맥 정보로부터 확인 대상 문자열의 문맥 점수를 산출한다. 이때, 문자열 보정부(142)는 문맥 통계에 의한 확률 값을 계산하여 문맥 점수를 산출한다. 따라서 낮은 컴퓨팅 파워에서도 용이하게 연산을 수행할 수 있다.
또한, 문자열 보정부(142)는 산출된 문맥 점수를 기반으로 하여 사용자 입력 문장(M4)을 보정한다. 문맥 점수를 산출하는 과정에 대해서는 후술되는 철자 오류 보정 방법에서 상세히 설명하기로 한다.
조사 보정부(144)는 문자열 보정부(142)에 의해 보정된 보정된 문자열이 체언인지 확인하고, 체언이면 해당 문자열에 대응하는 오류 문자열과 보정 문자열의 마지막 음절의 종성을 확인하여 확인 결과에 따라 보정된 문자열의 조사를 보정한다. 또한, 조사 보정부(144)는 조사에 대한 문맥 정보를 이용하여 조사의 보정 여부를 결정한다. 이에 대해서는 후술되는 조사 보정 과정에서 상세히 설명하기로 한다.
저장부(130)는 본 실시예에 따른 기능 동작에 필요한 응용 프로그램을 비롯하여, 사용자에 의해 생성되는 사용자 데이터 등을 저장한다. 저장부(130)는 프로그램 영역 및 데이터 영역을 포함할 수 있다.
프로그램 영역은 휴대 단말기를 부팅(booting)시키는 운영체제(OS, Operating System), 휴대 단말기의 기타 기능 수행에 필요한 응용 프로그램 등이 저장된다.
데이터 영역은 휴대 단말기 사용에 따른 사용자 데이터가 저장되는 영역으로서, 전술한 철자 오류 보정 사전(132)과 문맥 정보 데이터베이스(134), 및 조사 접 속 테이블(136)이 저장된다.
본 실시예에 따른 문맥 정보 데이터베이스(134)는 문자열 문맥 정보와 조사 문맥 정보를 포함하여 구성되며, 정보 추출부(124)에 의해 생성된 문맥 정보가 저장된다. 이러한 문맥 정보 데이터베이스(134)에는 문자열(오류 문자열 및 보정 문자열)과, 해당 문자열의 문맥 정보가 함께 저장된다. 또한, 조사 및 해당 조사의 문맥 정보가 함께 저장된다.
도 4는 본 발명의 실시예에 따른 문자열 문맥 정보 데이터베이스의 구조를 개략적으로 나타내는 도면으로, 이를 참조하면 이름 필드에는 오류 문자열인 ‘시로’와, 이에 대응하는 보정 문자열인 ‘싫어’가 함께 저장되어 있음을 알 수 있다. 그리고 문자열 마지막 음절의 종성 유무에 따라 변경되는 조사들(예컨대, ‘이’ 와 ‘가’ 등)이 함께 저장되어 있음을 알 수 있다.
구분 필드는 해당 레코드가 문자열에 대한 문맥 정보인지 조사에 대한 문맥 정보를 구분하기 위한 정보가 입력된다.
문맥 정보 필드에는 각 문자열(또는 조사)들에 대응하는 문맥 정보들이 저장된다. 여기서 각각의 값들은 후술되는 학습 말뭉치(M3) 내에서 획득되는 정보이다. 전술하였듯이, 본 실시예에 따른 문맥 정보는 학습말뭉치에서 해당 정보의 출현 빈도수를 이용한다. f(W before )는 문자열 W before 가 출현한 빈도수이고, f(w -1,W all ,w +1)는 w -1 W all w +1이라는 문자열이 출현한 빈도수이며, f(w -1,W all )는 w -1 W all 이라는 문자열이 출현한 빈도수이고, f(W all ,w +1)는 W all w +1이라는 문자열이 출현한 빈도수이다.
또한, f(c -1,W all ,c +1)는 c -1c +1 이라는 범주 사이에 W all 이 출현한 빈도수이고, f(c -1,W all )는 c -1이라는 범주 다음에 W all 이 출현한 빈도수이며, f(W all ,c +1)는 c +1이라는 범주 이전에 W all 이 출현한 빈도수이다. 이러한 문맥 정보에 대해서는 후술되는 철자 오류 보정 방법에서 보다 상세히 살펴보기로 한다.
조사 접속 테이블(136)은 조사에 대한 정보가 저장되며, 조사 보정부(144)의 요청에 따라 해당 정보를 제공한다. 도 5는 본 발명의 실시예에 따른 조사 접속 테이블(136)을 개략적으로 나타내는 도면으로, 이를 참조하면 조사 접속 테이블(136)은 앞 음절에 종성이 있을 때의 조사를 나타내는 ‘종성 있음’ 필드와 앞 음절에 종성이 없을 때의 조사를 의미하는 ‘종성 없음’ 필드를 포함하여 구성된다.
입력부(150)는 휴대 단말기를 제어하기 위한 사용자의 조작신호를 입력받아 적용부(140)로 전달한다. 즉, 사용자 입력 문장(M4)을 입력받고 이를 적용부(140)의 문자열 보정부(142)로 전송한다. 이를 위해 본 실시예에 따른 입력부(150)는 동작 제어를 위한 제어 키(도시되지 않음) 및 문자와 숫자를 입력하기 위한 다수의 숫자 키(도시되지 않음)들을 구비한다.
출력부(160)는 조사 보정부(144)에서 출력되는 보정 완료된 사용자 입력 문장(M4)을 외부로 출력한다. 본 실시예에서는 출력부(160)로 다양한 정보를 시각적으로 제공하는 디스플레이 유닛(예컨대 액정표시장치(LCD, Liquid Crystal Display) 등)가 이용된다. 그러나 이에 한정되지 않으며 문장을 음성으로 출력하는 경우 스피커 등이 출력부(160)로 이용될 수 있다.
이와 같이 구성되는 본 실시예에 따른 철자 오류 보정 시스템(100)은 휴대 단말기 등의 소형 컴퓨팅 장치에 장착되어 이용될 수 있다.
이어서, 본 발명의 실시예에 따른 철자 오류 보정 방법에 대하여 실시예를 통하여 자세히 설명한다. 철자 오류 보정 방법에 대한 이하의 설명으로부터 전술한 철자 오류 보정 시스템(100)의 구성 또한 보다 명확해질 것이다.
본 발명에 따른 철자 오류 보정 방법은 철자 오류 보정 사전(132)을 구축하고 이로부터 확인 대상 문자열 및 그의 문맥 정보를 획득하는 학습 과정과, 학습 과정을 통해 획득한 문맥 정보를 이용하여 사용자 입력 문장(M4)의 철자 오류를 보정하는 적용 과정을 포함하여 구성된다.
먼저 학습 과정을 설명하면 다음과 같다.
도 6은 본 발명의 실시예에 따른 철자 오류 보정 방법의 학습 과정을 개략적으로 나타내는 흐름도이다.
도 1 내지 도 6을 참조하면, 먼저 공인된 말뭉치(M1)와 오류 말뭉치(M2)를 획득하는 S10 단계가 수행된다. 말뭉치를 획득하는 단계는 인터넷이나 PC등을 접속하여 획득할 수 있으며, 사용자가 수동으로 직접 말뭉치를 입력하는 등의 방법이 이용될 수 있다.
이어서, 획득한 공인된 말뭉치(M1)와 오류 말뭉치(M2)로부터 철자 오류 보정 사전(132)을 구축하는 S11 단계가 수행된다. 사용자는 획득한 공인된 말뭉치(M1)와 오류 말뭉치(M2)를 비교하며 오류 문자열과 바른 문자열, 및 그의 품사를 분류한다. 그리고 사전 구축부(122)는 사용자에 의해 분류된 문자열들을 이용하여 철자 오류 보정 사전(132)을 구축한다. 즉, 사전 구축부(122)는 오류 문자열로 추출된 문자열을 오류 문자열 필드에 등록하고, 그에 대응하는 바른 문자열을 보정 문자열 필드에 등록한다. 그리고 해당 문자열의 품사를 품사 필드에 등록한다.
본 실시예에서는 사용자에 의해 수동으로 해당 문자열들을 추출한 후, 철자 오류 보정 사전(132)을 구축하는 방법을 이용한다. 그러나, 이에 한정되지 않는다. 즉, 공인된 말뭉치(M1)와 오류 말뭉치(M2)를 동일한 문장으로 구성하고 오류 말뭉치(M2)에서 특정 문자열들을 오류 문자열로 변경한 후, 두 말뭉치를 비교하여 자동으로 오류 문자열과 보정 문자열을 추출하는 등 다양한 방법이 이용될 수 있다.
한편, 이러한 철자 오류 보정 사전(132)을 구축하는 단계는 획득한 말뭉치의 모든 문자열에 걸쳐 수행된다. 그리고, 새로운 단어가 생기거나 소멸함에 따라 수시로 추가 및 삭제가 수행될 수 있다. 또한, 보다 방대한 철자 오류 보정 사전(132)을 구축하기 원하는 경우, 다양한 내용을 갖는 말뭉치들에 대해 S10 단계와 S11 단계를 반복적으로 수행할 수 있다.
S12 단계에서 철자 오류 보정 사전(132)이 구축되면, 사전 구축부(122)는 철자 오류 보정 사전(132)을 메모리(예컨대, 저장부의 프로그램 영역)에 적재한다. 이때, 본 실시예에 따른 사전 구축부(122)는 트라이 구조(TRIE Structure)를 이용하여 철자 오류 보정 사전(132)을 적재한다. 즉, 음절 트라이(또는 자소 트라이)의 형태로 철자 오류 보정 사전(132)을 메모리에 적재한다
도 7은 본 발명의 실시예에 따른 음절 트라이 구조를 개략적으로 설명하기 위한 도면이다.
트라이(TRIE) 구조란, 키의 공통접두사를 하나로 압축한 트리 구조로서, 검색은 TRIE의 가지에 주어지는 음절 단위로 하여 임의의 입력 문자계열에 대해 키의 최장 일치 검색 또는 접두사만이 일치하는 검색에서 용이하다는 장점이 있다. 도 7은 도 3에 도시된 철자 오류 보정 사전(132)의 오류 문자열 집합{가취, 가??, 가튀, 가티, 강추, 강퇴, 갠, 갠적, 남친, 시로}에 대한 대표적 트라이 구조를 나타내고 있다.
이처럼 철자 오류 보정 사전(132)을 트라이 구조로 변환하여 메모리에 적재하게 되면, 해쉬 구조(Hash Structure)나 B-트리 구조(B- tree Structure)에 비해 중복된 음절이나 자소에 할당되는 메모리가 줄어든다. 따라서 메모리를 보다 효율적으로 사용할 수 있다. 또한 탐색 시간이 문자열의 길이에 비례하므로 매우 빠른 탐색이 가능하다. 그러나, 이에 한정되지 않으며 메모리를 효율적으로 사용할 수 있고, 빠른 탐색이 가능한 구조라면 다양하게 이용될 수 있다.
한편, 이러한 철자 오류 보정 사전(132)만을 이용하여 철자 오류를 보정하게 되면, 오히려 많은 오류가 발생될 수 있다. 이에 대해 예를 들어 설명하면 다음과 같다.
사용자가 입력한 문장에 철자 오류 보정 사전(132)을 적용하여 철자 오류를 보정하는 경우에 있어서, 철자 오류 보정 사전(132)에 도 2와 같이 ‘시로’(보정 문자열은 ‘싫어’)’라는 오류 문자열이 등록되어 있는 상태에서 사용자가 ‘약속 시간은 9시로 하자’ 라는 문자열을 입력한다면, 해당 문장은 ‘약속 시간은 9싫어 하자’로 보정된다. 즉, 보정이 아닌 오류를 유발시키게 된다.
따라서, 본 발명에 따른 학습 과정은 철자 오류 보정 사전(132)을 구축할 뿐만 아니라, 대용량의 학습 말뭉치(M3)를 이용하여 철자 오류 보정 사전(132)에 등록된 오류 문자열이 실제적으로 사용되는 문자열인지 여부를 검사한다. 그리고 실제적으로 사용되는 문자열일 가능성이 있는 경우, 해당 문자열의 문맥 정보를 파악하여 철자 오류 여부를 판단하는 과정을 수행한다. 이에 대해 보다 상세히 설명하면 다음과 같다.
정보 추출부(124)는 먼저 대량의 학습 말뭉치(M3)를 획득하는 S13 단계를 수행한다. 학습 말뭉치(M3)는 전술하였듯이 일반적으로 사용되며 철자 오류가 없는 표준어 말뭉치이다. 이러한 학습 말뭉치(M3)는 사용자에 의해 입력될 수 있으며, 인터넷이나 무선 통신 등 다양한 경로를 통해 획득될 수 있다.
학습 말뭉치(M3)를 획득한 정보 추출부(124)는 철자 오류 보정 사전(132)의 오류 문자열 필드에서 오류 문자열을 추출하는 S14 단계를 수행한다. 예를 들어 정보 추출부(124)가 오류 문자열 필드에서 ‘시로’라는 문자열을 추출하게 되면, 이어서 추출한 오류 문자열이 학습 말뭉치(M3)에 포함되는지 여부를 확인하는 S15 단계를 수행한다.
정보 추출부(124)는 학습 말뭉치(M3) 전체를 검색하며 추출된 오류 문자열(즉, 시로)과 동일한 문자열이 학습 말뭉치(M3)에 존재하는 지 확인한다. 해당 오류 문자열들 중 학습 말뭉치(M3)에 1회 이상 포함되면, 정보 추출부(124)는 해당 문자열인 ‘시로’를 확인 대상 문자열로 선정하는 S16 단계를 수행한다.
S16 단계에서 해당 문자열이 확인 대상 문자열로 선정되면, 이어서 학습 말 뭉치(M3)를 기반으로 하여 선정된 확인 대상 문자열에 대응하는 문맥 정보를 획득하는 S17 단계가 수행된다. 이 단계에서 정보 추출부(124)는 확인 대상 문자열인 오류 문자열뿐만 아니라, 오류 문자열과 대응하는 보정 문자열의 문맥 정보도 함께 추출한다. 즉, 도 2를 참조하면, 오류 문자열이 ‘시로’인 경우 ‘시로’의 보정 문자열은 ‘싫어’이다. 따라서 S17 단계에서 정보 추출부(124)는 ‘시로’와 ‘싫어’에 대한 문맥 정보를 모두 추출한다. 한편, 오류 문자열이 ‘즐’인 경우 ‘즐’의 보정 문자열은 ‘그만’과 ‘즐겨’의 두 개가 존재한다. 이 경우, S17 단계에서 정보 추출부(124)는 ‘즐’, ‘그만’, ‘즐겨’에 대한 문맥 정보를 모두 추출한다.
문맥 정보를 추출하는 과정을 살펴보면, 먼저 정보 추출부(124)는 학습 말뭉치(M3)에서 해당 문자열(즉, 오류 문자열과 보정 문자열)들이 포함되는 문장을 추출한다. 그리고 추출한 문장들의 띄어쓰기를 모두 제거한다.
이어서 정보 추출부(124)는 띄어쓰기가 제거된 문장에서 문맥 정보를 추출한다. 정보 추출부(124)는 전술하였듯이 문맥 정보로 f(W before ), f(w -1,W all ,w +1), f(w -1,W all ), f(W all ,w +1), f(c -1,W all ,c +1), f(c -1,W all ), 및 f(W all ,c +1)를 추출한다.
예를 들어, 확인 대상 문자열이 ‘시로’인 경우, 정보 추출부(124)는 학습 말뭉치(M3)에서 ‘시로’가 포함된 문장과, ‘시로’의 보정 문자열인 ‘싫어’가 포함된 문장을 모두 추출한다. 이하에서는 ‘시로’가 포함된 문장으로 ‘9시로 예정되었다’와 ‘수시로 예산을 변경해’가 추출되고, ‘싫어’가 포함된 문장이 ‘ 정말 싫어하다’와 ‘너를 싫어하지 않아’가 학습 말뭉치(M3)로부터 추출된 경우를 가정하여 설명하기로 한다.
상기한 문장들의 경우, 정보 추출부(124)는 ‘시로’와 ‘싫어’에 대해서 다음과 같은 문맥 정보를 추출하게 된다. ‘시로’에 대해서는 f(W before )로 2, f(w -1,W all ,w +1)로 9시로예 : 1, 수시로예 : 1, f(w -1,W all )로 9 : 1, 수 : 1, f(W all ,w +1)로 예 : 2, f(c- 1,W all ,c +1)로 숫자/기타 : 1, 기타/기타: 1, f(c -1,W all )로 숫자 : 1, 기타 : 1, f(W all ,c +1)로 기타 : 2가 추출된다. 그리고 ‘싫어’의 경우도 이와 동일한 방법으로 추출된다.
이와 같이 문맥 정보를 추출한 정보 추출부(124)는 추출된 모든 문맥 정보들을 문맥 정보 DB(134)에 저장하는 S18 단계를 수행한다. 상기한 예의 경우, ‘시로’에 대한 문맥 정보와 ‘싫어’에 대한 문맥 정보가 모두 저장되며, 이에 된다. 문맥 정보 DB(134)는 도 4와 같이 형성될 수 있다.
이어서 S19 단계에서, 정보 추출부(124)는 철자 오류 보정 사전(132)의 모든 오류 문자열에 대해 S14 단계 내지 S18 단계를 수행하여 확인 대상 문자열 여부를 확인하였는지 판단한다. 확인되지 않은 오류 문자열이 있으면, 정보 추출부(124)는 S14 단계로 진입하여 해당 오류 문자열에 대해 전술한 과정을 반복적으로 수행하게 된다.
한편, S19 단계에서 철자 오류 보정 사전(132)의 모든 오류 문자열에 대해 확인이 완료되면, 정보 추출부(124)는 학습 말뭉치(M3)에서 조사들의 문맥 정보를 추출하고 저장하는 S20 단계를 수행한다. 여기서, 본 실시예에 따른 S20 단계의 경우, 전술한 문자열들에 대한 문맥 정보 추출 과정이 완료된 후에만 수행되어야 할 필요는 없다. 즉, 문자열들에 대한 문맥 정보를 추출하기 이전 즉, S14 단계 이전에 수행되는 것도 가능하며, 문자열들에 대한 문맥 정보를 추출하는 과정에서 함께 수행될 수도 있다.
S20 단계는 정보 추출부(124)가 조사 접속 테이블(136)에 등록되어 있는 모든 조사들에 대해 문맥 정보를 추출하는 단계이다. 따라서, 정보 추출부(124)는 조사 접속 테이블(136)에 등록된 각 조사들(예컨대, 이, 가, 와 등)을 대상으로 하여 전술한 문자열과 동일한 방법으로 문맥 정보를 추출한다. 그리고 추출된 문맥 정보를 문맥 정보 DB(134)에 저장한다.
한편, 본 실시예에 따른 학습 과정은 일회 수행됨으로써 완료되지 않으며, 다양한 말뭉치에 대해 다수 회 반복적으로 수행되는 것이 바람직하다. 이에 다양한 문자열에 대한 철자 오류 보정 사전(132)과 확인 대상 문자열 및 그에 따른 문맥 정보를 확보할 수 있게 된다.
다음으로 본 발명의 실시예에 따른 적용 과정을 설명하면 다음과 같다.
도 8은 본 발명의 실시예에 따른 철자 오류 보정 방법의 적용 과정을 개략적으로 나타내는 흐름도이다.
도 1 내지 도 8을 참조하면, 먼저 사용자로부터 사용자 입력 문장(M4)이 입력되는 S31 단계가 수행된다. 이하에서는 사용자 입력 문장(M4)으로 ‘남친과의 약 속 내일 9시로 변경 핸펀으로 연락 요망’이라는 문장이 입력된 경우를 예로 들어 설명하기로 한다. 이러한 사용자 입력 문장(M4)은 입력부(150)를 통해 입력되며, 입력부(150)는 이를 문자열 보정부(142)로 전송한다.
다음으로 문자열 보정부(142)가 사용자 입력 문장(M4)과 철자 오류 보정 사전(132)을 비교하는 S32 단계가 수행된다. 문자열 보정부(142)는 사용자 입력 문장(M4)의 각 문자열을 철자 오류 보정 사전(132)의 오류 문자열 필드에 등록되어 있는 모든 문자열들과 비교한다. 이 단계를 통해 문자열 보정부(142)는 먼저 오류 문자열 필드의 ‘남친’이 현재 사용자 입력 문장(M4)에 포함되어 있음을 인지하게 된다. 이 외에도 ‘시로’와 ‘핸펀’등의 문자열이 더 포함되지만, 이에 대한 설명은 후술하기로 한다.
이처럼 오류 문자열 필드에 있는 문자열과 동일한 문자열이 사용자 입력 문장(M4)에 존재하는 경우(S33), 문자열 보정부(142)는 해당 문자열이 문맥 정보 DB(134)에 존재하는 지 확인하는 S34 단계를 수행한다. 이 단계에서, 해당 문자열이 철자 오류 보정 사전(132)에 등록되어 있지만 문맥 정보 DB(134)에는 존재하지 않는 것으로 확인되면, 문자열 보정부(142)는 후술되는 S37 단계로 진입하여 해당 문자열을 철자 오류 보정 사전(132)의 보정 문자열로 보정한다.
즉, 문자열 보정부(142)는 S34 단계에서 ‘남친’이 문맥 정보 DB(134)에 존재하는 지 여부를 확인한다. 도 4를 참조하면, ‘남친’은 문맥 정보 DB(134)에 등록되어 있지 않은 문자열이다. 따라서, 문자열 보정부(142)는 철자 오류 보정 사전(132)의 보정 문자열 필드에 등록된 ‘남자친구’로 해당 문자열을 보정한 다(S37). 그리고 S38 단계로 진입하여 보정된 문자열의 조사를 보정하는 단계가 수행된다. 여기서, S38 단계는 후술하기로 한다.
‘남친’에 대해 문자열과 조사의 보정이 모두 완료되면 사용자 입력 문장(M4)에 포함된 모든 문자열에 대한 철자 오류 확인이 완료되었는지 확인하는 S39 단계가 진행된다. 완료되지 않은 경우, 다시 S32 단계로 진입하게 되며, 이에 문자열 보정부(142)는 다음의 문자열(예컨대, 전화번호 등)을 대상으로 철자 오류 보정 사전(132)의 오류 문자열과 비교한다. 이상의 과정은 ‘핸펀’의 문자열에 대해서도 동일하게 수행된다. 이에 따라 ‘핸펀’은 ‘핸드폰’으로 보정된다.
한편, S32 단계에서 문자열 보정부(142)가 사용자 입력 문장(M4)에서 ‘시로’의 문자열을 확인하게 되면 문자열 보정부(142)는 S33 단계를 거쳐, ‘시로’가 문맥 정보 DB(134)에 존재하는지 확인하는 S34 단계를 수행한다. 도 4에 도시된 바와 같이, ‘시로’는 문맥 정보 DB(134)에 존재한다. 따라서, 문자열 보정부(142)는 해당 문자열(즉, 시로)의 문맥 정보(문맥 정보 DB에 저장되어 있는 문맥 정보)를 이용하여 해당 문자열에 대응하는 문맥 점수를 산출하는 S35 단계를 수행한다. 여기서, 문자열 보정부(142)는 사용자 입력 문장(M4)에 기재되어 있던 문자열(즉, 시로)과, 철자 오류 보정 사전(132)에 등록되어 있는 해당 문자열의 보정 문자열(즉, 싫어)을 대상으로 하여 문맥 점수를 각각 산출한다. 여기서, 전술한 ‘즐’과 같이 다수 개의 보정 문자열이 존재하는 경우, 문자열 보정부(142)는 대응하는 모든 보정 문자열에 대해 문맥 점수를 산출한다.
또한, 본 실시예에 따른 문자열 보정부(142)는 확인 대상 문자열의 문맥 정 보를 기반으로 확률 값을 계산하여 문맥 점수를 산출한다. 이에 대해 보다 상세히 설명하면 다음과 같다.
사용자가 입력한 문장S에서 문맥 점수 산출대상 문자열인 W before 가 나올 확률P(W before | S)은 다음의 수학식 1과 같이 근사화하여 구할 수 있다.
Figure 112008025097319-pat00001
전술한 바와 같이, 수학식1에서 w -1W before 바로 이전의 음절이고, w + 1W before 의 바로 다음 음절을 의미한다. 그리고, W all W before 와 그의 보정 문자열인 W after 를 의미한다. 따라서, 수학식1은 W before 와, W after 주위에 출현한 w -1, w +1W before 와 함께 출현할 확률을 의미한다. 즉, 현재 문맥에서 W before 를 보정하지 않고 유지할 확률을 의미한다.
P(W before | S)를 수학식1 과 같이 근사화한 이유는, 전체 문장을 W before 의 문맥으로 고려할 경우에 데이터 희소성 문제로 인하여 확률 값을 계산할 수 없기 때문이다. 그러나 P(W before | S)를 수학식1 과 같이 근사화했을지라도 데이터 희소성 문제는 여전히 존재한다. 이러한 문제를 해결하기 위하여 본 발명에서는 수학식1 을 수학식2 와 같이 근사화한다.
Figure 112008025097319-pat00002
여기서 f(W before ), f(w -1,W all ,w +1), f(w -1,W all ), f(W all ,w +1), f(c -1,W all ,c +1), f(c -1,W all ), 및 f(W all ,c +1)는 문맥 정보로 추출된 정보들이다. 또한 α, β, γ, δ는 각 확률 요소들의 중요도에 따라 가중치를 부여하기 위한 인자로써 합은 1.0이다. 이러한 인자들은 일반적으로α > β > γ > δ 순으로 실험에 의해 결정된다. 본 발명에서는 α, β, γ, δ 값을 각각 0.5, 0.3, 0.15, 0.05의 값을 부여하여 이용한다. 그러나 이에 한정되지 않는다.
본 실시예에서는 사용자 입력 문장(M4)으로 ‘남친과의 약속 내일 9시로 변경 핸펀으로 연락 요망’이 입력된 경우를 예로 들고 있다. 이를 통해 설명하면, 사용자 입력 문장(M4)에서 ‘시로’의 경우, 문자열 앞 1음절이 ‘9’이고 뒤 음절이 ‘변경’이다. 도 4를 참조하여 이에 대응하는 문맥 정보를 확인하면, f(W before ) 는 2, f(w -1,W all ,w +1)는 ‘9시로변’ 이므로 0, f(w -1,W all )는 ‘9’이므로 1, f(W all ,w +1)는 ‘변’이므로 0, f(c -1,W all ,c +1)는 ‘숫자/기타’이므로 1, f(c -1,W all )는 ‘숫자’이므로 1, f(W all ,c +1)는 ‘기타’이므로 2가 추출된다. 여기서 f(W before ), f(w -1,W all ,w +1), f(w -1,W all ), f(W all ,w +1), f(c -1,W all ,c +1), f(c -1,W all ), 및 f(W all ,c +1)
이에 따라 ‘시로’에 대한 문맥 점수는 0.5(2/0) + 0.3(2/1) + 0.15(2/1) + 0.05(2/3)로 계산되어 ‘0.93’이 산출된다.
마찬가지로 ‘시로’ 의 보정 문자열인 ‘싫어’의 문맥 점수를 산출해보면, f(W before )는 2, f(w -1,W all ,w +1)는 ‘9싫어변’ 이므로 0, f(w -1,W all )는 ‘9’이므로 0, f(W all ,w +1)는 ‘변’이므로 0, f(c -1,W all ,c +1)는 ‘숫자/기타’이므로 0, f(c -1,W all )는 ‘숫자’이므로 0, f(W all ,c +1)는 ‘기타’이므로 2가 추출된다.
이에 따라 ‘싫어’에 대한 문맥 점수는 0.5(2/0) + 0.3(2/0) + 0.15(2/0) + 0.05(2/2)로 계산되어 ‘0.05’가 산출된다.
이와 같은 과정을 통해 문맥 점수가 산출되면, 문자열 보정부(142)는 산출된 문맥 점수를 비교하는 S36 단계를 수행한다. 즉, 오류 문자열(즉, 시로)에 의해 산출된 문맥 정보와, 보정 문자열(즉, 싫어)의 문맥 점수를 비교한다. 그리고 비교 결과 보다 큰 문맥 점수를 갖는 문자열을 선택하여 사용자 입력 문장(M4)을 보정하는 S37 단계를 수행한다
만일 S36 단계에서 보정 문자열인 ‘싫어’의 문맥 점수가 큰 경우, 문자열 보정부(142)는 S37 단계로 진입하여 사용자 입력 문장(M4)의 해당 문자열을 보정 문자열인 ‘싫어’로 보정한다. 반면에 상기한 예처럼 오류 문자열인 ‘시로’의 문맥 점수가 더 큰 경우, 문자열 보정부(142)는 S39 단계로 진입하게 되며, 사용자 입력 문장(M4)의 해당 문자열은 오류 문자열인 ‘시로’가 그대로 유지된다. 또한, 대응하는 보정 문자열이 다수개인 경우에도 가장 문맥 점수가 큰 문자열을 선택하여 보정하게 된다.
한편 S36 단계에서, 오류 문자열과 보정 문자열의 문맥 점수가 동일한 경우가 발생될 수 있다. 이러한 경우는 미리 설정된 기준에 따라 선택될 수 있다. 예를 들어 사용자(또는 엔지니어 등)가 오류 문자열을 우선적으로 선택하도록 설정한 경우, 문자열 보정부(142)는 오류 문자열과 보정 문자열의 문맥 점수가 동일하면 오류 문자열을 선택하여 보정하게 된다.
전술한 과정과 같이 철자 오류 보정 사전(132)과 문맥 점수를 이용하면 오류 문자열을 보정 문자열로 변환할 수 있지만, 변환된 오류 문자열이 체언인 경우에 뒤따르는 조사가 변환된 보정 문자열과 맞지 않는 조사 접속 문제가 발생할 수 있다. 따라서, 본 발명에서는 S37 단계에서 문자열 보정부(142)가 사용자 입력 문장(M4)의 해당 문자열을 보정 문자열로 보정한 경우, 이어서 보정된 문자열의 조사를 보정하는 S38 단계가 수행된다.
조사 접속 문제는 체언인 오류 문자열이 보정 문자열로 교체될 때, 기존의 뒤따르는 조사가 적합하지 않아 발생되는 문제이다. 예를 들어 ‘남친과의 약속’이라는 문장에서 오류 문자열인 ‘남친’을 보정 문자열인 ‘남자친구’로 보정하 게 되면 ‘남친’뒤의 조사 ‘과의’도 ‘와의’로 바뀌어야 올바른 문장이 된다. 이러한 문제를 해결하기 위하여 본 발명에서는 도 5와 같은 조사 접속 테이블(136)과 문맥 정보 DB(134)를 이용한다.
조사 접속 테이블(136)은 사용자에 의해 미리 설정될 수 있으며, 말뭉치 등을 이용하여 자동으로 생성할 수도 있다. 또한, 조사 보정부(144)는 문맥 정보 DB(134) 중, 조사 문맥 정보(구분 필드가 ‘조사’로 한정되어 있는 문맥 정보들)를 이용하여 해당 조사의 보정 수행 여부를 판단한다.
도 9는 본 발명의 실시예에 따른 조사 보정 과정을 개략적으로 나타내는 흐름도로, 이를 참조하여 조사를 보정하는 과정을 설명하면 다음과 같다.
조사 보정부(144)는 먼저 보정된 문자열이 체언인지 여부를 판단하는 S381 단계를 수행한다. 이에 조사 보정부(144)는 보정된 문자열 중 ‘남자친구’, ‘핸드폰’의 경우 체언으로 판단하게 된다. 그러나 ‘시로’의 경우 체언이 아니므로 조사 보정 과정은 생략된다..
‘남자친구’, ‘핸드폰’과 같이 보정된 문자열이 체언이면, 조사 보정부(144)는 보정 전의 문자열(즉, 오류 문자열)과 보정 문자열의 마지막 음절에 종성이 있는지를 확인하는 S382 단계를 수행한다. ‘남친’과 남자친구’는 마지막 음절이 ‘친’과 ‘구’이다. 즉, 보정된 문자열은 종성이 없다. 이에 조사 보정부(144)는 S383 단계로 진입하여 해당 문자열의 조사를 추출한다. 이를 ‘남친이순신이다’라는 문장을 예로 들어 설명하면 다음과 같다.
상기한 문장의 경우, ‘남친 이순신이다’의 의미인지 ‘남친이 순신이다’ 의 의미인지 파악이 어렵다. 그리고 이에 따라 어느 부분까지가 조사인지도 확인하기 어렵다.
따라서, 조사 보정부(144)는 ‘남친’ 이후의 문자들 중 어떠한 문자열까지가 조사인지 인지하기 위해 조사 접속 테이블(136)을 이용한다. 즉, 조사 접속 테이블(136)에 등록되어 있는 모든 조사들을 대상으로 하여 오류 문자열 이후의 문자들과 비교하고, 최장 일치하는 조사를 추출하여, 이를 해당 문자열의 조사로 판단한다.
상기한 ‘남친이순신이다’의 경우, ‘이순’이라는 조사는 존재하지 않으므로, S383단계에서 조사 보정부(144)는 ‘이’만을 조사라고 판단한다.
이어서 조사 보정부(144)는 조사 접속 테이블(136)로부터 S383 단계에서 판단한 조사에 대응하는 후보 조사를 추출하는 S384 단계를 수행한다. 즉, 조사 보정부(144)는 ‘이’에 대응하는 조사인 ‘가’를 추출한다.
이어서, 두 조사에 대한 문맥 점수를 산출하는 S385 단계를 수행한다. 조사 보정부(144)는 ‘이’에 대한 문맥 점수와 ‘가’에 대한 문맥 점수를 산출한다.
여기서 문맥 점수를 산출하는 방법은 전술한 문자열의 문맥 점수를 산출하는 방법과 동일하게 수행된다. 즉, 수학식 2에 각 문맥 정보를 대입하여 문맥 점수를 산출하게 된다.
‘이’와 ‘가’에 대한 문맥 점수가 산출되면, 조사 보정부(144)는 S386 단계로 진입하여 두 조사의 문맥 점수를 비교한다. 그리고 비교 결과에 따라 원래의 조사인 ‘이’의 문맥 점수가 높으면 S388 단계로 진입하여 원래의 조사를 그대 로 유지한다. 이 경우, 해당 문장은 ‘남자친구이순신이다’가 된다.
반면에, 비교 결과 후보 조사인 ‘가’의 문맥 점수가 높으면, 조사 보정부(144)는 S387 단계로 진입하여 해당 문자열의 조사를 후보 조사로 보정한다. 이 경우, 해당 문장은 ‘남자친구가순신이다’로 보정된다.
한편, S382 단계에서 ‘핸펀’과 ‘핸드폰’의 마지막 음절은 ‘펀’과 ‘폰’으로 모두 종성을 갖는다. 이처럼 종성의 유무가 동일하면 조사 보정부(144)는 해당 문자열의 조사를 보정하지 않고 그대로 이용한다. 즉, 이러한 경우 조사를 보정하는 과정은 생략된다.
이와 같은 과정을 통해 조사를 보정하는 과정이 완료되면, 문자열 보정부(142)는 사용자 입력 문장(M4)에 포함된 모든 문자열에 대해 보정이 완료되었는지 확인하는 S39 단계를 수행한다. 보정되지 않은 문자열이 존재하는 경우, 문자열 보정부(142)는 S32 단계로 진입하여 전술한 S32 단계 내지 S39 단계를 반복적으로 수행한다.
반면에, S39 단계에서 확인 결과 모든 문자열에 대해 보정이 완료되면, 적용부(140)는 보정이 완료된 사용자 입력 문장(M4)을 출력부(160)로 출력하는 S40 단계를 수행한다.
출력부(160)에 출력되는 철자 오류가 보정된 사용자 입력 문장(M4)을 통해, 사용자는 자신이 입력한 문장의 철자가 자동으로 보정되어 표시되는 것을 확인하게 된다.
이상에서 설명한 본 발명은 높은 컴퓨팅 파워(CPU 및 메모리 사용량)를 필요 로 하는 기존의 방법을 개선하여 적은 양의 메모리와 단순한 연산만을 사용하면서도 높은 철자 오류 보정 효과를 얻을 수 있다. 이에 일반적인 PC와 같이 높은 컴퓨팅 파워를 요구하던 종래 기술에 비하여 핸드폰이나 PDA와 같이 낮은 컴퓨팅 파워에서도 용이하게 적용될 수 있다. 더하여, 모바일 기기에서 문장을 입력하고 처리하는 자연어 인터페이스 개발의 기틀을 마련할 수 있다.
한편, 본 발명에 따른 철자 오류 보정 시스템 및 방법은 실시예에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이 가능하다.
예를 들어, 본 실시예에서는 한글 문장을 기준으로 하여 철자 오류 보정 방법과 시스템을 설명하였다. 그러나, 본 발명에서 제안하는 시스템 및 방법은 문자열 기반의 매칭 방법들을 사용하기 때문에 특정 언어에 의존적이지 않다. 그러므로 본 발명을 다른 언어에 적용하고자 한다면 한국어 문자열을 해당하는 언어의 문자열로 대체함으로써 적용될 수 있다. 즉, 본원발명은 한국어에 한정되지 않으며, 다른 외국어들에도 다양하게 적용될 수 있다.
영어 문장을 예로 들면, 영어의 경우에는 영어로 이루어지는 철자 오류 보정 사전을 전술한 예와 동일한 방법으로 구축하여 이용할 수 있다. 또한, 영어와 같이 음절을 구성하지 않는 언어들은 자소(영어의 알파벳 1개에 해당) 트라이 사전을 구축하면 특정 언어에 의존적이지 않은 사전 구축이 가능하다.
범주의 경우, 문자열의 범주는 언어 종속적이므로 영어와 같은 언어의 경우에는 해당 언어의 특성에 따른 폐쇄 품사(영어의 경우에 관사, 전치사와 같이 개수 가 한정된 품사들이 폐쇄 품사에 해당) 범주를 할당하는 것이 바람직하다.
또한, 문맥 정보 추출 시 영어와 같이 음절을 구성하지 않는 언어에 대해서는, 음절을 알파벳으로 대체하여 문맥정보를 추출할 수 있다. 즉, 해당 문자열 앞 1번째 알파벳의 출현 빈도수, 해당 문자열 뒤 1번째 알파벳의 출현 빈도수, 해당 문자열이 속한 범주의 출현 빈도수, 해당 문자열의 출현 빈도수를 추출하여 문맥 정보로 이용할 수 있다.
또한, 본 실시예에 따른 조사 변환 과정은 한국어와 같이 기능어들이 어근에 붙어 문법적 기능을 수행하는 교착어일 경우에 필요한 것으로, 영어와 같이 단어의 위치에 의해서 문법적 기능이 결정되는 언어에서는 불필요하다 따라서, 영어 문장에 본 발명이 적용되는 경우, 조사에 대한 문맥 정보를 추출하거나 조사를 보정하는 과정은 생략된다. 그러나, 그러나 일어나 터키어와 같이 조사를 가지고 있는 언어에 대해서는 본 실시예와 동일하게 적용될 수 있다.
더하여 본 실시예에서는 휴대 단말기 등에서 철자 오류를 보정하는 방법을 수행하는 경우를 예로 들었으나, 이에 한정되지 않으며, 문장의 입력이 가능한 컴퓨팅 기기라면 다양하게 적용될 수 있다.
도 1은 본 발명의 실시예에 따른 철자 오류 보정 시스템을 개략적으로 나타내는 블록도.
도 2는 본 발명의 실시예에 따른 철자 오류 보정 사전을 개략적으로 나타내는 도면.
도 3은 본 발명의 실시예에 따른 범주 구분 테이블을 개략적으로 나타내는 도면.
도 4는 본 발명의 실시예에 따른 문맥 정보 데이터베이스의 구조를 개략적으로 나타내는 도면.
도 5는 본 발명의 실시예에 따른 조사 접속 테이블을 개략적으로 나타내는 도면.
도 6은 본 발명의 실시예에 따른 철자 오류 보정 방법의 학습 과정을 개략적으로 나타내는 흐름도.
도 7은 본 발명의 실시예에 따른 음절 트라이 구조를 개략적으로 설명하기 위한 도면.
도 8은 본 발명의 실시예에 따른 철자 오류 보정 방법의 적용 과정을 개략적으로 나타내는 흐름도.
도 9는 본 발명의 실시예에 따른 조사 보정 과정을 개략적으로 나타내는 흐름도.

Claims (25)

  1. 공인된 말뭉치를 기반으로 하여 철자 오류 보정 사전을 구축하는 사전 구축 단계와, 상기 철자 오류 보정 사전에 등록된 문자열들 중 문맥에 따라 다르게 사용될 수 있는 문자열들(이하, 확인 대상 문자열)을 선정하고, 상기 확인 대상 문자열에 대응하여 문맥 정보를 획득하여 저장하는 정보 저장 단계를 포함하는 학습 과정과,
    사용자가 입력한 문장(이하 사용자 입력 문장)이 수신되면, 상기 철자 오류 보정 사전을 통해 보정 대상 문자열을 추출하는 추출 단계와, 상기 보정 대상 문자열이 상기 확인 대상 문자열이면, 대응하는 상기 문맥 정보를 이용하여 상기 사용자 입력 문장을 보정하는 보정 단계를 포함하는 적용 과정을 포함하고,
    상기 문맥 정보는, 문자열의 전 또는 후 중 적어도 하나에 위치한 글자의 출현 빈도수를 이용하여 생성되는 것을 특징으로 하는 철자 오류 보정 방법.
  2. 제 1 항에 있어서, 상기 적용 과정은,
    상기 사용자 입력 문장을 보정한 후, 보정된 문자열에 대응하여 조사를 보정하는 조사 보정 단계를 더 포함하는 것을 특징으로 하는 철자 오류 보정 방법.
  3. 제 2 항에 있어서, 상기 공인된 말뭉치는,
    기 발간된 어휘집, 단어집, 및 사전을 포함하는 것을 특징으로 하는 철자 오류 보정 방법.
  4. 제 2 항에 있어서, 상기 철자 오류 보정 사전은,
    오류 문자열이 등록되는 오류 문자열 필드와, 상기 오류 문자열을 보정한 보정 문자열이 등록되는 보정 문자열 필드, 및 상기 오류 문자열 또는 상기 보정 문자열의 품사가 등록되는 품사 필드를 포함하여 구성되는 것을 특징으로 하는 철자 오류 보정 방법.
  5. 제 4 항에 있어서, 상기 사전 구축 단계는,
    구축된 상기 철자 오류 보정 사전을 음절 트라이(TRIE) 또는 자소 트라이 형태로 변환하여 메모리에 적재하는 단계를 더 포함하는 것을 특징으로 하는 철자 오류 보정 방법.
  6. 제 5 항에 있어서, 상기 정보 저장 단계는,
    학습 말뭉치와 상기 철자 오류 보정 사전을 비교하며 상기 확인 대상 문자열을 선정하는 문자열 선정 단계와,
    상기 학습 말뭉치에서 상기 확인 대상 문자열에 대응하는 문맥 정보를 획득하여 저장하는 정보 획득 단계를 포함하는 것을 특징으로 하는 철자 오류 보정 방법.
  7. 제 6 항에 있어서, 상기 문자열 선정 단계는,
    상기 오류 문자열 필드에 등록된 문자열이 상기 학습 말뭉치에 1회 이상 포함된 경우, 해당 오류 문자열을 상기 확인 대상 문자열로 선정하는 단계인 것을 특징으로 하는 철자 오류 보정 방법.
  8. 제 6 항에 있어서, 상기 정보 획득 단계는,
    상기 확인 대상 문자열에 대응하는 상기 오류 문자열과 상기 보정 문자열의 문맥 정보를 모두 추출하는 단계인 것을 특징으로 하는 철자 오류 보정 방법.
  9. 제 8 항에 있어서, 상기 문맥 정보는 상기 학습말뭉치 내에서,
    상기 확인 대상 문자열 W before 가 출현한 빈도수 f(W before ), w -1 W all w +1라는 문자열이 출현한 빈도수 f(w -1,W all ,w +1), w -1 W all 이라는 문자열이 출현한 빈도수 f(w -1,W all ), W all w +1이라는 문자열이 출현한 빈도수 f(W all ,w +1), c -1c +1 이라는 범주 사이에 W all 이 출현한 빈도수 f(c -1,W all ,c +1), c -1이라는 범주 다음에 W all 이 출현한 빈도수 f(c -1,W all ), c +1이라는 범주 이전에 W all 이 출현한 빈도수 f(W all ,c +1)를 포함하여 구성되며,
    상기 W all 은 상기 확인 대상 문자열의 오류 문자열 W before 와, 그의 보정 문자열 W after 를 의미하고, 상기 w -1은 상기 W all 바로 이전의 음절을, 상기 w +1은 상기 W all 바로 다음의 음절을, 상기 c -1은 상기 W all 바로 이전 문자열이 속한 범주를, 상기 c +1은 상기 W all 바로 다음 문자열이 속한 범주를 나타내는 것을 특징으로 하는 철자 오류 보정 방법.
  10. 제 9 항에 있어서, 상기 범주는,
    언어의 종류, 숫자, 특수 문자, 보조용언, 접미사, 어미, 및 기타를 포함하여 구성되는 것을 특징으로 하는 철자 오류 보정 방법.
  11. 제 9 항에 있어서, 상기 보정 단계는,
    상기 보정 대상 문자열이 상기 확인 대상 문자열에 포함되면, 상기 확인 대상 문자열에 대응하는 문맥 정보를 이용하여 상기 확인 대상 문자열의 문맥 점수를 산출하는 점수 산출 단계, 및
    산출된 상기 문맥 점수에 따라 문자열을 선택하여 상기 보정 대상 문자열을 보정하는 문장 보정 단계를 포함하는 것을 특징으로 하는 철자 오류 보정 방법.
  12. 제 11 항에 있어서, 상기 점수 산출 단계는,
    다음의 수학식을 통해 상기 확인 대상 문자열에 대응하는 상기 오류 문자열과 상기 보정 문자열의 문맥 점수 P(W before | w -1, W all, w +1)를 각각 산출하는 단계인 것을 특징으로 하는 철자 오류 보정 방법.
    Figure 112008025097319-pat00003
    α, β, γ, δ : 각 확률 요소들의 가중치를 부여하기 위한 인자.
  13. 제 2 항에 있어서, 상기 조사 보정 단계는,
    상기 문장 보정 단계에서 보정된 문자열이 체언인지 확인하는 1 단계와,
    체언이면, 해당 문자열에 대응하는 상기 오류 문자열과 상기 보정 문자열의 마지막 음절의 종성을 확인하는 2 단계, 및
    확인 결과에 대응하여 상기 보정된 문자열의 조사를 보정하는 3 단계를 포함하는 것을 특징으로 하는 철자 오류 보정 방법.
  14. 제 13 항에 있어서, 상기 3 단계는,
    상기 보정된 문자열에 대응하는 조사를 선정하는 단계,
    상기 선정된 조사에 대응하는 후보 조사를 추출하는 단계,
    상기 선정된 조사와 상기 후보 조사의 문맥 점수를 산출하는 단계, 및
    상기 문맥 점수에 대응하여 상기 선정된 조사와 상기 후보 조사 중 어느 하나를 선택하여 상기 보정된 문자열에 적용하는 단계를 포함하는 것을 특징으로 하는 철자 오류 보정 방법.
  15. 공인된 말뭉치를 기반으로 하여 철자 오류 보정 사전을 구축하는 사전 구축부,
    상기 철자 오류 보정 사전에 등록된 문자열들 중 문맥에 따라 다르게 사용될 수 있는 문자열들(이하, 확인 대상 문자열)을 추출하고, 상기 확인 대상 문자열의 문맥 정보를 추출하여 저장하는 정보 추출부를 포함하여 구성되는 학습부; 및
    사용자가 입력한 문장(이하 사용자 입력 문장)에 대응하여 상기 철자 오류 보정 사전을 통해 보정 대상 문자열을 추출하고, 상기 보정 대상 문자열이 상기 확인 대상 문자열이면, 대응하는 상기 문맥 정보를 이용하여 상기 사용자 입력 문장을 보정하는 문자열 보정부,
    상기 문자열 보정부를 통해 보정된 상기 사용자 입력 문장에서 보정된 문자열에 대응하여 조사를 보정하는 조사 보정부를 포함하여 구성되는 적용부;를 포함하고,
    상기 문맥 정보는, 상기 보정 대상 문자열의 전 또는 후 중 적어도 하나에 위치한 글자의 출현 빈도수를 이용하여 생성되는 것을 특징으로 하는 철자 오류 보정 시스템.
  16. 제 15 항에 있어서, 상기 철자 오류 보정 사전은,
    오류 문자열이 등록되는 오류 문자열 필드와, 상기 오류 문자열을 보정한 보정 문자열이 등록되는 보정 문자열 필드, 및 상기 오류 문자열 또는 상기 보정 문 자열의 품사가 등록되는 품사 필드를 포함하여 구성되는 것을 특징으로 하는 철자 오류 보정 시스템.
  17. 제 16 항에 있어서, 상기 사전 구축부는,
    구축된 상기 철자 오류 보정 사전을 음절 트라이(TRIE) 또는 자소 트라이 형태로 변환하여 메모리에 적재하는 것을 특징으로 하는 철자 오류 보정 시스템.
  18. 제 16 항에 있어서, 상기 정보 추출부는,
    학습 말뭉치와 상기 철자 오류 보정 사전을 비교하며 상기 확인 대상 문자열을 추출하는 것을 특징으로 하는 철자 오류 보정 시스템.
  19. 제 18 항에 있어서, 상기 정보 추출부는,
    상기 오류 문자열 필드에 등록된 문자열이 상기 학습 말뭉치에 1회 이상 포함된 경우, 해당 오류 문자열을 상기 확인 대상 문자열로 추출하는 것을 특징으로 하는 철자 오류 보정 시스템.
  20. 제 18 항에 있어서, 상기 정보 추출부는,
    상기 확인 대상 문자열에 대응하는 상기 오류 문자열과 상기 보정 문자열의 문맥 정보를 모두 추출하는 것을 특징으로 하는 철자 오류 보정 시스템.
  21. 제 20 항에 있어서, 상기 문자열 보정부는,
    상기 사용자 입력 문장 내에 상기 확인 대상 문자열이 포함되어 있으면, 해당하는 상기 확인 대상 문자열 및 대응하는 보정 문자열의 문맥 정보를 이용하여 문맥 점수를 산출하고, 산출된 상기 문맥 점수에 따라 문자열을 선택하여 상기 보정 대상 문자열을 보정하는 것을 특징으로 하는 철자 오류 보정 시스템.
  22. 제 21 항에 있어서, 상기 문맥 정보는 상기 학습말뭉치 내에서,
    상기 확인 대상 문자열 W before 가 출현한 빈도수 f(W before ), w -1 W all w +1라는 문자열이 출현한 빈도수 f(w -1,W all ,w +1), w -1 W all 이라는 문자열이 출현한 빈도수 f(w -1,W all ), W all w +1이라는 문자열이 출현한 빈도수 f(W all ,w +1), c -1c +1 이라는 범주 사이에 W all 이 출현한 빈도수 f(c -1,W all ,c +1), c -1이라는 범주 다음에 W all 이 출현한 빈도수 f(c -1,W all ), c +1이라는 범주 이전에 W all 이 출현한 빈도수 f(W all ,c +1)를 포함하여 구성되며,
    상기 W all 은 상기 확인 대상 문자열의 오류 문자열 W before 와, 그의 보정 문자열 W after 를 의미하고, 상기 w -1은 상기 W all 바로 이전의 음절을, 상기 w +1은 상기 W all 바로 다음의 음절을, 상기 c -1은 상기 W all 바로 이전 문자열이 속한 범주를, 상기 c +1은 상기 W all 바로 다음 문자열이 속한 범주를 나타내는 것을 특징으로 하는 철자 오류 보정 시스템.
  23. 제 22 항에 있어서, 상기 문자열 보정부는,
    다음의 수학식을 통해 상기 문맥 점수 P(W before | w -1, W all, w +1)를 산출하는 것을 특징으로 하는 철자 오류 보정 시스템.
    Figure 112008025097319-pat00004
    α, β, γ, δ : 각 확률 요소들의 가중치를 부여하기 위한 인자.
  24. 제 15 항에 있어서, 상기 조사 보정부는,
    상기 보정된 문자열이 체언이면 조사의 보정 여부를 확인하고, 확인 결과에 대응하여 상기 보정된 문자열에 따른 조사를 선정하여 상기 선정된 조사에 대응하는 후보 조사를 추출하며, 상기 선정된 조사와 상기 후보 조사의 문맥 점수를 산출하여 산출된 상기 문맥 점수에 따라 상기 선정된 조사와 상기 후보 조사 중 어느 하나로 상기 보정된 문자열을 보정하는 것을 특징으로 하는 철자 오류 보정 시스템.
  25. 제 21 항에 있어서,
    상기 철자 오류 보정 사전 및 상기 문맥 정보들이 저장되는 저장부를 더 포함하는 것을 특징으로 하는 철자 오류 보정 시스템.
KR20080032349A 2008-04-07 2008-04-07 철자 오류 보정 시스템 및 방법 KR101491581B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20080032349A KR101491581B1 (ko) 2008-04-07 2008-04-07 철자 오류 보정 시스템 및 방법
US12/419,509 US8365070B2 (en) 2008-04-07 2009-04-07 Spelling correction system and method for misspelled input

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20080032349A KR101491581B1 (ko) 2008-04-07 2008-04-07 철자 오류 보정 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20090106937A KR20090106937A (ko) 2009-10-12
KR101491581B1 true KR101491581B1 (ko) 2015-02-24

Family

ID=41134367

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20080032349A KR101491581B1 (ko) 2008-04-07 2008-04-07 철자 오류 보정 시스템 및 방법

Country Status (2)

Country Link
US (1) US8365070B2 (ko)
KR (1) KR101491581B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11074406B2 (en) 2016-11-10 2021-07-27 Changwon National University Industry University Cooperation Foundation Device for automatically detecting morpheme part of speech tagging corpus error by using rough sets, and method therefor

Families Citing this family (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7562811B2 (en) 2007-01-18 2009-07-21 Varcode Ltd. System and method for improved quality management in a product logistic chain
JP2009537038A (ja) 2006-05-07 2009-10-22 バーコード リミティド 製品ロジスティックチェーンにおける品質管理を改善するためのシステムおよび方法
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
EP2156369B1 (en) 2007-05-06 2015-09-02 Varcode Ltd. A system and method for quality management utilizing barcode indicators
EP2183685A4 (en) * 2007-08-01 2012-08-08 Ginger Software Inc AUTOMATIC CONTEXT-RELATED LANGUAGE CORRECTION AND EXPANSION USING AN INTERNET CORP
WO2009063464A2 (en) 2007-11-14 2009-05-22 Varcode Ltd. A system and method for quality management utilizing barcode indicators
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US11704526B2 (en) 2008-06-10 2023-07-18 Varcode Ltd. Barcoded indicators for quality management
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
WO2011092691A1 (en) * 2010-02-01 2011-08-04 Ginger Software, Inc. Automatic context sensitive language correction using an internet corpus particularly for small keyboard devices
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
KR101105652B1 (ko) * 2010-02-26 2012-01-18 인하대학교 산학협력단 금지문자열 불포함 결정을 위한 방향 그래프 생성 방법
US10762293B2 (en) * 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US20120246133A1 (en) * 2011-03-23 2012-09-27 Microsoft Corporation Online spelling correction/phrase completion system
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US20130124194A1 (en) * 2011-11-10 2013-05-16 Inventive, Inc. Systems and methods for manipulating data using natural language commands
US9158758B2 (en) 2012-01-09 2015-10-13 Microsoft Technology Licensing, Llc Retrieval of prefix completions by way of walking nodes of a trie data structure
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US20130339001A1 (en) * 2012-06-19 2013-12-19 Microsoft Corporation Spelling candidate generation
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US8807422B2 (en) 2012-10-22 2014-08-19 Varcode Ltd. Tamper-proof quality management barcode indicators
EP3809407A1 (en) 2013-02-07 2021-04-21 Apple Inc. Voice trigger for a digital assistant
KR101332757B1 (ko) * 2013-05-16 2013-11-25 주식회사 큐키 삭제키 입력 없이 단어 또는 문자열을 수정하는 방법 및 이를 구현한 장치
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
KR101922663B1 (ko) 2013-06-09 2018-11-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
KR102204395B1 (ko) * 2013-12-06 2021-01-19 주식회사 케이티 개체명 인식을 이용한 음성인식 띄어쓰기 보정 방법 및 시스템
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US20160062979A1 (en) * 2014-08-27 2016-03-03 Google Inc. Word classification based on phonetic features
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10402471B2 (en) * 2014-09-26 2019-09-03 Guy Le Henaff Method for obfuscating the display of text
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
CA2985160C (en) 2015-05-18 2023-09-05 Varcode Ltd. Thermochromic ink indicia for activatable quality labels
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10697837B2 (en) 2015-07-07 2020-06-30 Varcode Ltd. Electronic quality indicator
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
US11017167B1 (en) * 2018-06-29 2021-05-25 Intuit Inc. Misspelling correction based on deep learning architecture
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
US11301626B2 (en) 2019-11-11 2022-04-12 International Business Machines Corporation Artificial intelligence based context dependent spellchecking

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877173A (ja) * 1994-09-01 1996-03-22 Fujitsu Ltd 文字列修正システムとその方法
KR20000033464A (ko) * 1998-11-24 2000-06-15 정선종 한국어 개념분류체계 구축방법과, 수정방법 및 구축장치
KR100798752B1 (ko) 2007-06-26 2008-01-28 (주)나라인포테크 한국어 맞춤법 검사기 및 검사방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907839A (en) * 1996-07-03 1999-05-25 Yeda Reseach And Development, Co., Ltd. Algorithm for context sensitive spelling correction
US7194684B1 (en) * 2002-04-09 2007-03-20 Google Inc. Method of spell-checking search queries
GB0413743D0 (en) * 2004-06-19 2004-07-21 Ibm Method and system for approximate string matching
US7587308B2 (en) * 2005-11-21 2009-09-08 Hewlett-Packard Development Company, L.P. Word recognition using ontologies
US7831911B2 (en) * 2006-03-08 2010-11-09 Microsoft Corporation Spell checking system including a phonetic speller
US8176419B2 (en) * 2007-12-19 2012-05-08 Microsoft Corporation Self learning contextual spell corrector
US8775441B2 (en) * 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877173A (ja) * 1994-09-01 1996-03-22 Fujitsu Ltd 文字列修正システムとその方法
KR20000033464A (ko) * 1998-11-24 2000-06-15 정선종 한국어 개념분류체계 구축방법과, 수정방법 및 구축장치
KR100798752B1 (ko) 2007-06-26 2008-01-28 (주)나라인포테크 한국어 맞춤법 검사기 및 검사방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
강승식 외 1명, ‘SMS 변형된 문자열의 자동 오류 교정 시스템’, 한국 컴퓨터종합학술대회 논문집 vol.34, No.1, pp. 59-60, 2007
강승식 외 1명, 'SMS 변형된 문자열의 자동 오류 교정 시스템', 한국 컴퓨터종합학술대회 논문집 vol.34, No.1, pp. 59-60, 2007 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11074406B2 (en) 2016-11-10 2021-07-27 Changwon National University Industry University Cooperation Foundation Device for automatically detecting morpheme part of speech tagging corpus error by using rough sets, and method therefor

Also Published As

Publication number Publication date
US8365070B2 (en) 2013-01-29
US20090254819A1 (en) 2009-10-08
KR20090106937A (ko) 2009-10-12

Similar Documents

Publication Publication Date Title
KR101491581B1 (ko) 철자 오류 보정 시스템 및 방법
US9886432B2 (en) Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9899019B2 (en) Systems and methods for structured stem and suffix language models
Fowler et al. Effects of language modeling and its personalization on touchscreen typing performance
KR102268875B1 (ko) 전자 장치에 텍스트를 입력하는 시스템 및 방법
JP6484236B2 (ja) オンライン音声翻訳方法及び装置
US7797629B2 (en) Handheld electronic device and method for performing optimized spell checking during text entry by providing a sequentially ordered series of spell-check algorithms
US7777717B2 (en) Handheld electronic device and method for performing spell checking during text entry and for integrating the output from such spell checking into the output from disambiguation
KR101496885B1 (ko) 문장 띄어쓰기 시스템 및 방법
KR101590724B1 (ko) 음성 인식 오류 수정 방법 및 이를 수행하는 장치
US20120166942A1 (en) Using parts-of-speech tagging and named entity recognition for spelling correction
US20110258539A1 (en) Handheld electronic device and method for performing spell checking during text entry and for providing a spell-check learning feature
KR20130018205A (ko) 언어 변환에 있어서 다중 리딩 모호성 해결을 위한 방법
CN110678868B (zh) 翻译支持系统、装置和方法以及计算机可读介质
KR20140119763A (ko) 사용자 데이터 입력 예측
WO2020001329A1 (zh) 一种输入预测方法及装置
Kumar et al. Design and development of a stemmer for Punjabi
CN112684913A (zh) 信息修正方法、装置及电子设备
US20040243394A1 (en) Natural language processing apparatus, natural language processing method, and natural language processing program
CN107861937B (zh) 对译语料库的更新方法、更新装置以及记录介质
Soumya et al. Development of a POS tagger for Malayalam-an experience
KR101854278B1 (ko) 말뭉치의 통계적 기반 분석을 통한 패턴 기반 영어 단어 추천 장치 및 방법
Shaaban Automatic Diacritics Restoration for Arabic Text
Aliprandi et al. An inflected-sensitive letter and word prediction system
CN112560493B (zh) 命名实体纠错方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180130

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200203

Year of fee payment: 6