기존의 오타 교정 기능은 형태소 내의 오타만 처리가 가능하였기에 형태소 간의 경계에서 발생하는 오타들(예: 사람이 -> 사라미, 없어요 -> 업써요)은 교정하지 못하는 문제가 있었음. 형태소 간 경계에서 발생하는 모든 오타 유형을 다루려면 분석기의 탐색 범위가 너무 넓어져 비효율적이므로, 주로 자주 발생하는 유형인 연철을 우선적으로 처리하면 좋을듯. 이 기능이 구현되면 단순히 오타뿐만 아니라 연철이 널리 쓰이던 근대 이전 한국어 텍스트를 분석하는데에도 꽤 도움이 될것으로 보임.
구현 방법
연철이 발생할 수 있는 모든 형태소 조합을 Form 사전에 등록하는 것은 사실상 불가능하므로 splitByTyie 단계에서 동적으로 처리해야 한다. 다행히 연철이 발생하는 지점은 뒷 형태소의 초성이 ㅇ/ㅎ인 경우와 앞 형태소의 초성이 ㅎ인 경우밖에 존재하지 않기 때문에 동적으로 탐색할 범위가 크게 늘어나지는 않을 것.
사라미가 입력된 경우의 처리 절차
input=사, 분기0=Φ :
(분기0, 일반 탐색) Form 사전에 사가 있으므로, 후보에 사를 추가.
input=라, 분기0=사:
(분기0, 연철 탐색) Form 사전에 사ㄹ가 있으므로 후보에 살을 추가. 분기 1에 아 추가
(분기0, 일반 탐색) Form 사전에 사라가 있으므로 후보에 사라를 추가.
input=미, 분기0=사라, 분기1=아
(분기0, 연철 탐색) Form 사전에 사라ㅁ가 있으므로 후보에 사람을 추가. 분기 2에 이 추가
(분기0, 일반 탐색) Form 사전에 사라미가 없으므로 탐색 중단.
(분기1, 연철 탐색) Form 사전에 아ㅁ가 있으므로 후보에 암을 추가. 분기 2에 이 추가
(분기1, 일반 탐색) Form 사전에 아미가 있으므로 후보에 아미를 추가.
없어요 -> 업서요 / 업써요 처럼 이중 받침에 대해서는 어ㅂㅅ, 어ㅂㅆ이 없에 대응하도록 Form 사전에 어ㅄ의 이형태로 어ㅂㅅ과 어ㅂㅆ를 등록하는 작업이 필요.
기존의 오타 교정 기능은 형태소 내의 오타만 처리가 가능하였기에 형태소 간의 경계에서 발생하는 오타들(예:
사람이
->사라미
,없어요
->업써요
)은 교정하지 못하는 문제가 있었음. 형태소 간 경계에서 발생하는 모든 오타 유형을 다루려면 분석기의 탐색 범위가 너무 넓어져 비효율적이므로, 주로 자주 발생하는 유형인 연철을 우선적으로 처리하면 좋을듯. 이 기능이 구현되면 단순히 오타뿐만 아니라 연철이 널리 쓰이던 근대 이전 한국어 텍스트를 분석하는데에도 꽤 도움이 될것으로 보임.구현 방법
연철이 발생할 수 있는 모든 형태소 조합을
Form
사전에 등록하는 것은 사실상 불가능하므로splitByTyie
단계에서 동적으로 처리해야 한다. 다행히 연철이 발생하는 지점은 뒷 형태소의 초성이 ㅇ/ㅎ인 경우와 앞 형태소의 초성이 ㅎ인 경우밖에 존재하지 않기 때문에 동적으로 탐색할 범위가 크게 늘어나지는 않을 것.사라미
가 입력된 경우의 처리 절차input=사
,분기0=Φ
: (분기0, 일반 탐색) Form 사전에사
가 있으므로, 후보에사
를 추가.input=라
,분기0=사
: (분기0, 연철 탐색) Form 사전에사ㄹ
가 있으므로 후보에살
을 추가. 분기 1에아
추가 (분기0, 일반 탐색) Form 사전에사라
가 있으므로 후보에사라
를 추가.input=미
,분기0=사라
,분기1=아
(분기0, 연철 탐색) Form 사전에사라ㅁ
가 있으므로 후보에사람
을 추가. 분기 2에이
추가 (분기0, 일반 탐색) Form 사전에사라미
가 없으므로 탐색 중단. (분기1, 연철 탐색) Form 사전에아ㅁ
가 있으므로 후보에암
을 추가. 분기 2에이
추가 (분기1, 일반 탐색) Form 사전에아미
가 있으므로 후보에아미
를 추가.없어요
->업서요
/업써요
처럼 이중 받침에 대해서는어ㅂㅅ
,어ㅂㅆ
이없
에 대응하도록 Form 사전에어ㅄ
의 이형태로어ㅂㅅ
과어ㅂㅆ
를 등록하는 작업이 필요.