아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 실시예에 따른 한국어 형태소 분석 시스템의 구성을 나타낸 도면이다.
본 발명의 실시예에 따른 한국어 형태소 분석 시스템은 사용자 인터페이스(100), 사전 데이터베이스부(200), 형태소 분석부(300), 미등록어 고유명사 결합 부(400) 및 출력부(500)를 포함한다.
사용자 인터페이스(100)는 사용자로부터 분석할 문장을 입력받는 입력 모듈이다.
사전 데이터베이스부(200)는 불규칙 용언 복원을 위한 불규칙 사전(210), 체언과 용언을 저장한 어간 사전(220) 및 어미와 조사를 저장한 어미 사전(230)을 포함한다.
뷸규칙 사전은 'ㅎ불규칙', 'ㅅ불규칙', '르불규칙', 'ㄹ불규칙', 'ㄷ불규칙', '러불규칙', 'ㅂ불규칙', '우불규칙', '으불규칙', '오불규칙'을 포함하여 10 여개의 불규칙에 대한 변형 및 복원을 수행한다. 또한, 불규칙 사전(210)은 'ㅂ불규칙'을 가진 '자랑스러운아들'에서 '자랑스러우'의 원형 '자랑스럽'을 알고리즘 규칙을 통해 복원하지 않고 '자랑스럽'의 불규칙 정보로 '자랑스러우'라는 정보를 추가하여 불필요한 변형 및 복원 알고리즘 규칙을 만들지 않고 어절의 분석 속도를 향상시킬 수 있다.
어간 사전(220)은 체언(조국, 민족, 맹세, 공업체 등), 용언(위하, 있, 좋아하 등), 부사(매우 등), 관형사(옛, 뒷, 제깐 등), 지정사(이, 아니) 등의 품사 정보와 다의어 및 중의성 자질 정보를 포함한다. 또한, 어간 사전(220)은 띄어쓰기가 올바르지 않은 오류문과 최장 일치의 형태소 분석에서 중의성 문제를 해결하기 위해서 한 어절에서 하나의 체언이 검색되더라도 체언의 좌측 음절의 품사, 자질 정보 및 음절수에 따라 다의어 정보를 나타내는 어휘와 중의성 정보를 나타내는 어휘를 부여한다.
예를 들어, '질병치료'를 분석하는 경우 최장 일치 방식에 따라 어간 사전(220)에서 '병치료'라는 명사를 검색하면 '질+병치료'라는 오분석을 하게 된다. 이러한 오류 분석을 방지하기 위해서 형태소 분석부(300)는 '병치료'에 다의어 정보 및 중의성 정보를 가진 명사 '병치료'를 '병+치료'처럼 음절별로 분리한 후 '치료'를 제외한 좌측 음절에 명사가 검색되는지 판단하고 명사 '질병'이 검색되면 '치료'를 명사로 재분석하여 저장한 후 좌측 음절 '질병'을 분석하여 '질병'+'치료'라는 올바른 분석을 수행하게 된다.
어미 사전(230)은 격조사(_은, _는, _을, _를, _까지, _부터 등), 보조사(_도, _만, _조차 등), 어말어미(_다, _ㄴ다, _습니다 등), 연결어미(_고, _ㄹ라고, _ㄴ답시고' 등), 선어말어미(_시, _겠, _옵 등), 전성어미(_ㄹ, _기, _음 등) 등과 같은 조사와 어미를 포함한다. 또한, 어미 사전(230)은 품사 정보 뿐만 아니라 'ㄹ'처럼 불완전한 종성을 가지고 있는 어미와 조사를 나타내기 위해 'BAN'이라는 자질 정보를 형태소 분석에 포함한다. 즉, 어미 사전(230)은 'ㄹ라고'에서 'ㄹ'처럼 불완전한 종성을 가지고 있는 어미와 조사를 나타내는 'BAN'이라는 정보를 가지고 입력 어절로부터 최장 일치로 조사와 어미를 분리한다.
형태소 분석부(300)는 분석할 한국어 입력 어절의 역순에 따라 분석할 음절의 품사를 어간 사전(220) 또는 어미 사전(230)을 통해 검색하고, 검색된 품사를 분석하고 분석한 품사에 결합된 좌측 음절을 어간 사전(220) 또는 어미 사전(230)에서 검색하여 한국어 입력 어절의 역순으로 형태소 분석을 수행한다.
미등록어 고유명사 결합부(400)는 모든 형태소 분석이 이루어진 후 인명과 같은 고유명사를 결합시킨다. 또한, 미등록어 고유명사 결합부(400)는 띄어쓰기가 되지 않은 오류문에서 미등록어 및 고유명사를 추정하여 결합시키기 위해 형태소 분석에서 사용된 '우에서 좌' 점검이 아닌 '좌에서 우' 점검을 통해 영어 문자 결합, 3음절 고유명사 결합, 2음절 고유명사 결합과 같이 문자별 또는 음절별 특정 결합 규칙에 따라 결합시킨다.
출력부(500)는 분석된 형태소를 품사별로 분리하여 형태소, 형태소의 품사, 자질 정보를 출력한다.
도 2는 본 발명의 실시예에 따른 형태소 분석부의 내부 구성을 간략하게 나타낸 블록 구성도이다.
본 발명의 실시예에 따른 형태소 분석부(300)는 부사 분석부(310), 연결어미 분석부(311), 보조사 분석부(312), 격조사 분석부(313), 어말어미 분석부(314), 전성어미 분석부(315), 선어말어미 분석부(316), 지정사 분석부(317), 동사 파생 접미사 분석부(318), 형용사 파생 접미사 분석부(319), 용언 보조용언 분석부(320), 명사형 파생 접미사 분석부(321) 및 체언 미등록어 분석부(322)를 포함한다.
부사 분석부(310)는 부사 분석 모듈(310a) 및 부사 결합 정보 분석 모듈(310b)을 포함한다.
부사 분석 모듈(310a) 및 부사 결합 정보 분석 모듈(310b)은 부사를 사전 데이터베이스부(200)의 어간 사전(220)에서 검색하여 부사를 분리 저장한다.
부사 결합 정보 분석 모듈(310b)은 사전 데이터베이스부(200)의 어간 사전(220)에서 일반 부사, 접속 부사, 부사 파생 접미사를 검색한다.
부사 결합 정보 분석 모듈(310b)은 검색된 부사의 좌측 음절에 위치한 품사 정보를 분석하여 분석 가능한 품사 모듈로 전송한다.
예를 들어, 부사 분석 모듈(310a)은 일반 부사인 '한창나이에'에서 '이에'를 어간 사전(220)에서 부사와 중의성 정보를 검색하고 부사 결합 정보 분석 모듈(310b)은 검색된 중의성 부사 '이에'를 이+에와 같이 음절별로 분리한 후 '에'를 제외한 앞 음절에 명사가 검색되는지 판단한다. 부사 결합 정보 분석 모듈(310b)은 명사 '나이'가 검색되면 '이에'가 부사가 아니라 '에'를 부사격 조사로 분리하여 저장한 후 부사격 조사('에')의 좌측 음절의 품사와 음절수, 자질 정보(자동사와 타동사와 같은 품사의 속성 정보를 나타냄)를 검색하여 중의성 정보를 가진 부사를 재분석한다.
부사 결합 정보 분석 모듈(310b)은 접속 부사인 '그리고'처럼 다의어 정보를 가지고 있는 부사가 검색되는 경우 검색된 부사를 제외한 좌측 음절의 품사 정보와 저장된 품사 정보를 부사로 사용할 지 아니면 다른 품사로 변경할지 결정하게 된다.
예를 들면, '친구를그리고'에서 '그리고'는 접속 부사지만 '그리고'를 제외한 좌측 음절에 '를'이라는 목적격 조사를 검색하여 '그리고'가 접속 부사가 아닌 '그리(용언) + 고(연결어미)로 재분석된다.
부사 결합 정보 분석 모듈(310b)은 부사 파생 접미사인 '게'처럼 부사 파생 접미사의 경우 검색된 부사 파생 접미사 '게'를 제외한 좌측 음절의 품사 및 품사의 자질 정보에 따라 부사를 저장한 후 좌측 음절을 분석 가능한 품사 모듈로 전송 한다.
연결어미 분석부(311)는 연결어미 분석 모듈(311a) 및 연결어미 결합 정보 분석 모듈(311b)을 포함한다.
연결어미 분석 모듈(311a) 및 연결어미 결합 정보 분석 모듈(311b)은 연결어미를 사전 데이터베이스부(200)의 어미 사전(230)에서 검색하여 연결어미를 분리 저장한다.
연결어미 분석 모듈(311a)은 '공부한다만'에서 '_ㄴ다만'처럼 검색된 연결어미가 용언 성질을 가진 연결어미인지, '친구랑'에서 '_랑'처럼 체언 성질을 가진 연결어미인지, '친구고, 공부하고'에서 '_고'처럼 체언 및 용언의 성질을 가진 연결어미인지 어미 사전(230)에서 검색하여 분석한다.
연결어미 분석 모듈(311a)은 연결어미를 분리하고 분리한 연결어미를 포함한 좌측 음절이 어간 사전(220)에서 체언으로 검색되면 연결어미를 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고, 용언으로 검색되면 연결어미를 포함한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석하며, 부사로 검색되면 연결어미를 포함한 좌측 음절을 부사 분석 모듈(310a)로 전송하여 분석한다.
또한, 연결어미 분석 모듈(311a)은 연결어미를 포함한 좌측 음절이 어미 사전(230)에서 보조사로 검색되면 연결어미를 포함한 좌측 음절을 보조사 분석 모듈(312a)로 전송하여 분석하고, 격조사로 검색되면 연결어미를 포함한 좌측 음절을 격조사 분석 모듈(313a)로 전송하여 분석하며, 어말어미로 검색되면 연결어미를 포 함한 좌측 음절을 어말어미 분석 모듈(314a)로 전송하여 분석한다.
연결어미 결합 정보 분석 모듈(311b)은 분리한 연결어미를 저장한 후, 연결어미를 제외한 좌측 음절이 어간 사전(220)에서 체언으로 검색되면 연결어미를 제외한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고, 용언으로 검색되면 연결어미를 제외한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석하며, 부사로 검색되면 연결어미를 제외한 좌측 음절을 부사 분석 모듈(310a)로 전송하여 분석한다.
연결어미 결합 정보 분석 모듈(311b)은 연결어미를 제외한 좌측 음절의 품사 정보와 음절수, 연결어미의 우측에 저장된 품사 정보를 이용하여 띄어쓰기가 되지 않은 오류문을 정확하게 분석할 수 있다.
보조사 분석부(312)는 보조사 분석 모듈(312a) 및 보조사 결합 정보 분석 모듈(312b)을 포함한다.
보조사 분석 모듈(312a) 및 보조사 결합 정보 분석 모듈(312b)은 사전 데이터베이스부(200)의 어미 사전(230)에서 '_ㄴ, _도, _만'과 같은 보조사를 검색하여 분리 저장한다.
보조사 분석 모듈(312a)은 보조사를 포함한 좌측 음절이 어간 사전(220)에서 체언으로 검색되면 보조사를 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고, 용언으로 검색되면 보조사를 포함한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석하며, 부사로 검색되면 보조사를 포함한 좌측 음절을 부사 분석 모듈(310a)로 전송하여 분석한다.
보조사 결합 정보 분석 모듈(312b)은 보조사를 저장하여 분리한 후, 보조사를 제외한 좌측 음절이 어간 사전(220)에서 체언으로 검색되는 경우 보조사를 제외한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고 용언으로 검색되면 보조사를 제외한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석하며, 부사로 검색되면 보조사를 제외한 좌측 음절을 부사 분석 모듈(310a)로 전송하여 분석한다.
보조사 결합 정보 분석 모듈(312b)은 '_ㄴ, _도, _만'과 같은 보조사로 이루어지는 의미를 정확히 파악하기 위하여 보조사를 제외한 좌측 음절의 품사 정보와 음절수, 보조사의 우측 음절에 저장된 품사 정보를 함께 분석하여 어미의 정확성을 향상시킨다.
보조사 결합 정보 분석 모듈(312b)은 '아주잘먹기도'에서 '도'와 같은 띄어쓰기가 되지 않은 오류문 내의 보조사 뿐 아니라 '갈치고'와 '친구치고'처럼 올바른 어절에서 '치고'와 같은 보조사 중의성 음절을 재분석하여 '갈치(체언)+고(연결어미)' 그리고 '친구(체언)+치고(보조사)'처럼 올바르게 분석한다.
격조사 분석부(313)는 격조사 분석 모듈(313a) 및 격조사 결합 정보 분석 모듈(313b)을 포함한다.
격조사 분석 모듈(313a)은 '_가, _는, _이'와 같은 격조사를 처리하는 주격 조사 분석과 '_을, _를'과 같은 격조사를 처리하는 목적격 조사 분석과 '_부터, _에서, _까지'와 같은 격조사를 처리하는 부사격 조사 분석과 '_의'와 같은 격조사를 처리하는 관형격 조사 분석을 수행한다.
격조사 분석 모듈(313a)은 격조사를 포함한 좌측 음절이 어간 사전(220)에서 체언으로 검색되면 격조사를 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고, 용언으로 검색되면 격조사를 포함한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석하며, 부사로 검색되면 격조사를 포함한 좌측 음절을 부사 분석 모듈(310a)로 전송하여 분석한다.
격조사 결합 정보 분석 모듈(313b)은 격조사를 저장하여 분리한 후, 격조사를 제외한 좌측 음절이 어간 사전(220)에서 체언으로 검색되는 경우 격조사를 제외한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고 용언으로 검색되면 격조사를 제외한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석하며, 부사로 검색되면 격조사를 제외한 좌측 음절을 부사 분석 모듈(310a)로 전송하여 분석한다.
격조사 결합 정보 분석 모듈(313b)은 격조사를 제외한 좌측 음절이 어미 사전(230)에서 보조사로 검색되는 경우 격조사를 제외한 좌측 음절을 보조사 분석 모듈(312a)로 전송하여 분석하고 연결어미로 검색되면 격조사를 제외한 좌측 음절을 연결어미 분석 모듈(311a)로 전송하여 분석하며, 어말어미로 검색되면 격조사를 제외한 좌측 음절을 어말어미 분석 모듈(314a)로 전송하여 분석한다.
어말어미 분석부(314)는 어말어미 분석 모듈(314a) 및 어말어미 결합 정보 분석 모듈(314b)을 포함한다.
어말어미 분석 모듈(314a) 및 어말어미 결합 정보 분석 모듈(314b)은 어말어미를 사전 데이터베이스부(200)의 어미 사전(230)에서 검색하여 어말어미를 저장 분리한다.
어말어미 분석 모듈(314a)은 '_는가, _ㄴ가요, _ㄹ거야'와 같이 검색된 어말어미가 용언 성질을 가지고 있으면 용언 성질의 어말어미 분석을 '_만요'와 같이 체언 성질을 가지고 있으면 체언 성질의 어말어미 분석을 '_랄까, _군'과 같이 체언 및 용언 성질을 가지고 있으면 체언과 용언 성질의 어말어미 분석을 수행한다.
어말어미 분석 모듈(314a)은 어말어미를 분리하여 저장한 후 어말어미를 포함한 좌측 음절이 어간 사전(220)에서 체언으로 검색되는 경우 어말어미를 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고 용언으로 검색되면 어말어미를 포함한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석하며, 부사로 검색되면 어말어미를 포함한 좌측 음절을 부사 분석 모듈(310a)로 전송하여 분석한다.
어말어미 결합 정보 분석 모듈(314b)은 어말어미를 저장하여 분리한 후 어말어미를 제외한 좌측 음절이 어간 사전(220)에서 체언으로 검색되는 경우 어말어미를 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고 용언으로 검색되면 어말어미를 포함한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석하며, 부사로 검색되면 어말어미를 포함한 좌측 음절을 부사 분석 모듈(310a)로 전송하여 분석한다.
어말어미 결합 정보 분석 모듈(314b)은 어말어미를 제외한 좌측 음절이 어미 사전(230)에서 선어말어미로 검색되면 어말어미를 제외한 좌측 음절이 선어말어미 분석 모듈(316a)로 전송하여 분석하고 형용사 파생 접미사로 검색되면 어말어미를 제외한 좌측 음절을 형용사 파생 접미사 분석 모듈(319a)로 전송하여 분석한다.
어말어미 결합 정보 분석 모듈(314b)은 어말어미를 제외한 좌측 음절의 품사 정보와 음절수, 어말어미의 우측 음절에 저장된 품사 정보를 함께 분석하여 분석의 정확성을 향상시킨다.
어말어미 결합 정보 분석 모듈(314b)은 '먹은걸'과 같이 어말어미의 축약형 '_은걸'의 음절들을 '먹(용언)+은(관형사형 전성어미)+것(체언)+을'(목적격 조사)과 같이 축약형 '은걸'이 아닌 원형 '_은(관형사형 전성어미)+것(체언)+을(목적격 조사)'로 복원하여 분석한다.
전성어미 분석부(315)는 전성어미 분석 모듈(315a) 및 전성어미 결합 정보 분석 모듈(315b)을 포함한다.
전성어미 분석 모듈(315a)은 '_ㅁ, _음, _기'와 같은 전성어미를 처리하는 명사형 전성어미 분석과 '_ㄹ, _던'과 같은 전성어미를 처리하는 관형사형 전성어미 분석을 수행한다.
전성어미 분석 모듈(315a)은 전성어미를 분리하여 저장한 후 전성어미를 포함한 좌측 음절이 어간 사전(220)에서 체언으로 검색되는 경우 전성어미를 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고 용언으로 검색되면 전성어미를 포함한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석하며, 부사로 검색되면 전성어미를 포함한 좌측 음절을 부사 분석 모듈(310a)로 전송하여 분석한다.
전성어미 결합 정보 분석 모듈(315b)은 전성어미를 분리하여 저장한 후 전성 어미를 제외한 좌측 음절이 어간 사전(220)에서 용언으로 검색되면 전성어미를 제외한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석하며, 지정사로 검색되면 전성어미를 제외한 좌측 음절을 지정사 분석 모듈(317a)로 전송하여 분석한다.
전성어미 결합 정보 분석 모듈(315b)은 전성어미를 제외한 좌측 음절이 어미 사전(230)에서 선어말어미로 검색되면 전성어미를 제외한 좌측 음절이 선어말어미 분석 모듈(316a)로 전송하여 분석하고 형용사 파생 접미사로 검색되면 전성어미를 제외한 좌측 음절이 형용사 파생 접미사 분석 모듈(319a)로 전송하여 분석한다.
전성어미 분석 모듈(315a)은 '맹세+ㄹ'의 축약형 '맹셀'과 같은 어절들에서 관형사형 전성어미 'ㄹ'을 목적격 조사로 변경한다.
전성어미 결합 정보 분석 모듈(315b)은 'ㅁ, 음, 기'의 명사형 전성어미에서 나타나는 의미적 중의성 어절 '선풍기바람'과 '공부하기바람'의 의미 차이를 해결하기 위해 명사형 전성어미를 제외한 좌측 음절의 품사 정보와 음절수, 명사형 전성어미의 우측 음절의 품사 정보를 이용하여 '선풍기바람'에서 '바람'이 영어의 Wind'를 의미하는 체언 '바람'이고 '공부하기바람'에서 '바람'이 영어의 'Wish'를 의미하는 '바람'으로 '바라(용언)+ㅁ(명사형 전성어미)으로 분석한다.
선어말어미 분석부(316)는 선어말어미 분석 모듈(316a) 및 선어말어미 결합 정보 분석 모듈(316b)을 포함한다.
선어말어미 분석 모듈(316a)은 '_옵_'과 같은 선어말어미를 처리하는 공손 선어말어미 분석과 '_겠_'과 같은 선어말어미를 처리하는 추측 선어말어미 분석과 '_았_'과 같은 선어말어미를 처리하는 시간 선어말어미 분석과 '_시_'와 같은 선어말어미를 처리하는 높임 선어말어미 분석을 수행한다.
선어말어미 분석 모듈(316a)은 선어말어미를 분리하여 분리한 선어말어미를 포함한 좌측 음절이 어간 사전(220)에서 체언으로 검색되는 경우 선어말어미를 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고 용언으로 검색되면 선어말어미를 포함한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석한다.
선어말어미 결합 정보 분석 모듈(316b)은 선어말어미를 저장하여 분리한 후 선어말어미를 제외한 좌측 음절이 어간 사전(220)에서 체언으로 검색되는 경우 선어말어미를 제외한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고 용언으로 검색되면 선어말어미를 제외한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석하며, 지정사로 검색되면 선어말어미를 제외한 좌측 음절을 지정사 분석 모듈(317a)로 전송하여 분석한다.
선어말어미 결합 정보 분석 모듈(316b)은 선어말어미를 제외한 좌측 음절이 어미 사전(230)에서 보조사로 검색되면 선어말어미를 제외한 좌측 음절을 보조사 분석 모듈(312a)로 전송하여 분석하고 연결어미로 검색되면 선어말어미를 제외한 좌측 음절을 연결어미 분석 모듈(311a)로 전송하여 분석하며, 형용사 파생 접미사로 검색되면 선어말어미를 제외한 좌측 음절을 형용사 파생 접미사 분석 모듈(319a)로 전송하여 분석한다.
선어말어미 결합 정보 분석 모듈(316b)은 '경주시였다'와 '말씀해주시었다' 와 같이 선어말어미 '시'의 의미를 정확히 파악하기 위해 선어말어미를 제외한 좌측 음절의 품사 정보와 음절수, 선어말어미의 우측 음절의 품사 정보를 이용하여 '경주시(체언)+이(지정사)+었(시간선어말어미)+다(어말어미)', '말씀(체언)+하(동사 파생 접미사)+어(연결어미)+주(용언)+시(높임 선어말어미)+었(시간 선어말어미)+다(어말어미)'와 같이 분석한다.
지정사 분석부(317)는 지정사 분석 모듈(317a) 및 지정사 결합 정보 분석 모듈(317b)을 포함한다.
지정사 분석 모듈(317a)은 '_이'와 같은 지정사를 처리하는 긍정 지정사 분석과 '_아니'와 같은 지정사를 처리하는 부정 지정사 분석을 수행한다.
지정사 분석 모듈(317a)은 지정사를 분리하여 분리한 지정사를 포함한 좌측 음절이 어간 사전(220)에서 체언으로 검색되는 경우 지정사를 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고 용언으로 검색되면 지정사를 포함한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송하여 분석한다.
지정사 결합 정보 분석 모듈(317b)은 지정사를 저장하여 분리한 후 지정사를 제외한 좌측 음절이 어간 사전(220)에서 체언으로 검색되는 경우 지정사를 제외한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석하고 부사로 검색되면 지정사를 제외한 좌측 음절을 부사 분석 모듈(310a)로 전송하여 분석한다.
지정사 결합 정보 분석 모듈(317b)은 지정사를 제외한 좌측 음절이 어미 사전(230)에서 보조사로 검색되면 지정사를 제외한 좌측 음절을 보조사 분석 모듈(312a)로 전송하여 분석한다.
지정사 결합 정보 분석 모듈(317b)은 지정사를 제외한 좌측 음절의 품사 정보와 음절수, 지정사의 우측 음절에 저장된 품사 정보를 함께 분석하여 분석의 정확성을 향상시킨다.
동사 파생 접미사 분석부(318)는 동사 파생 접미사 분석 모듈(318a) 및 동사 파생 접미사 결합 정보 분석 모듈(318b)을 포함한다.
동사 파생 접미사 분석 모듈(318a) 및 동사 파생 접미사 결합 정보 분석 모듈(318b)은 사전 데이터베이스부(200)의 어미 사전(230)에서 동사 파생 접미사를 검색하여 저장 분리한다.
동사 파생 접미사 결합 정보 분석 모듈(318b)은 동사 파생 접미사를 포함한 용언을 검색할 뿐 아니라 동사 파생 접미사에 결합된 좌측 음절의 품사를 분석한다.
형용사 파생 접미사 분석부(319)는 형용사 파생 접미사 분석 모듈(319a) 및 형용사 파생 접미사 결합 정보 분석 모듈(319b)을 포함한다.
형용사 파생 접미사 분석 모듈(319a) 및 형용사 파생 접미사 결합 정보 분석 모듈(319b)은 사전 데이터베이스부(200)의 어미 사전(230)에서 형용사 파생 접미사를 검색하여 저장 분리한다. 또한, 형용사 파생 접미사 분석 모듈(319a) 및 형용사 파생 접미사 결합 정보 분석 모듈(319b)은 변형된 형용사 파생 접미사를 원형 복원을 위한 변형 규칙을 사용하지 않고 사전 데이터베이스부(200)의 불규칙 사전(210)을 이용하여 불규칙에 대한 원형을 복원시킨다.
용언 보조용언 분석부(320)는 용언 보조용언 분석 모듈(320a) 및 용언 보조 용언 결합 정보 분석 모듈(320b)을 포함한다.
용언 보조용언 분석 모듈(320a) 및 용언 보조용언 결합 정보 분석 모듈(320b)은 사전 데이터베이스부(200)의 어간 사전(220)에서 용언을 검색하여 저장 분리한다.
용언 보조용언 분석 모듈(320a) 및 용언 보조용언 결합 정보 분석 모듈(320b)은 원형 복원의 규칙없이 형태소 분석부(300)와 연동된 불규칙 사전(210)을 검색하여 원형을 복원하고 어절의 분석 속도를 최대화한다.
용언 보조용언 분석 모듈(320a)은 '오, 싶, 않'과 같은 용언을 처리하는 보조용언 분석과 '가꾸, 가느다랗'과 같은 용언을 처리하는 용언 분석과 '감싸눌러, 빨가'와 같은 용언을 처리하는 뷸규칙 용언 분석과 '돼, 와'와 같은 용언을 처리하는 용언 축약형 분석을 수행한다.
용언 보조용언 결합 정보 분석 모듈(320b)은 '태어나살다'와 같은 용언과 용언 어절의 결합형 어절들에서 '태어나(용언)+아(연결어미)+살(용언)+다(어말어미) 처럼 용언과 용언 사이에 생략된 연결어미 '아(연결어미)'를 복원하여 분석한다.
용언 보조용언 결합 정보 분석 모듈(320b)은 최장 일치의 용언을 저장하여 분리한 후 용언을 제외한 좌측 음절에 분석할 음절이 없는 경우 형태소 분석을 완료하고 미등록어 고유명사 결합부(400)를 통해 고유명사를 결합시킨다.
명사형 파생 접미사 분석부(321)는 명사형 파생 접미사 분석 모듈(321a) 및 명사형 파생 접미사 결합 정보 분석 모듈(321b)을 포함한다.
명사형 파생 접미사 분석 모듈(321a) 및 명사형 파생 접미사 결합 정보 분석 모듈(321b)은 사전 데이터베이스부(200)의 어미 사전(230)에서 명사 파생 접미사를 검색하여 저장 분리한다. 명사형 파생 접미사 결합 정보 분석 모듈(321b)은 검색된 명사 파생 접미사 좌측 음절에 위치한 품사 정보를 분석하여 분석 가능한 품사 모듈로 전송한다.
체언 미등록어 분석부(322)는 체언 미등록어 분석 모듈(322a) 및 체언 결합 정보 분석 모듈(322b)을 포함한다.
체언 미등록어 분석 모듈(322a) 및 체언 결합 정보 분석 모듈(322b)은 사전 데이터베이스부(200)의 어간 사전(220)에서 최장 일치로 체언을 검색하여 저장 분리한다. 체언 미등록어 분석 모듈(322a) 및 체언 결합 정보 분석 모듈(322b)은 한 어절에서 하나의 체언이 검색되더라도 체언의 좌측 음절의 품사 정보, 음절수 및 자질 정보에 따라 체언의 다의어 정보 및 중의성 정보를 분석할 수 있다.
체언 미등록어 분석 모듈(322a)은 '용/형/적' 등의 특수 음절 분석과 '학교, 조국, 민족' 등의 체언을 처리하는 명사 분석과 '가구, 광년, 달러, 개비' 등의 체언을 처리하는 의존 명사 분석과 '구십, 아홉, 아흔' 등의 체언을 처리하는 수사 분석, 그리고 사전에 등록되지 않은 음절을 처리하는 미등록어 분석을 수행한다.
체언 결합 정보 분석 모듈(322b)은 최장 일치의 체언을 저장하여 분리한 후 체언을 제외한 좌측 음절에 분석할 음절이 없는 경우, 형태소 분석을 완료하고 미등록어 고유명사 결합부(400)를 통해 고유명사를 결합시킨다.
체언 결합 정보 분석 모듈(322b)은 체언을 제외한 좌측 음절이 어간 사전(220)에서 부사로 검색되면 체언을 제외한 좌측 음절을 부사 분석 모듈(310a)로 전송하여 분석하고 체언으로 검색되면 체언을 제외한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송하여 분석한다.
체언 결합 정보 분석 모듈(322b)은 체언을 제외한 좌측 음절이 어미 사전(230)에서 전성어미가 검색되면 체언을 제외한 좌측 음절을 전성어미 분석 모듈(315a)로 전송하여 분석하고 격조사가 검색되면 체언을 제외한 좌측 음절을 격조사 분석 모듈(313a)로 전송하여 분석하고 보조사가 검색되면 체언을 제외한 좌측 음절을 보조사 분석 모듈(312a)로 전송하여 분석하며 연결어미가 검색되면 체언을 제외한 좌측 음절을 연결어미 분석 모듈(311a)로 전송하여 분석한다.
체언 결합 정보 분석 모듈(322b)은 체언을 제외한 좌측 음절의 품사 정보와 음절수, 우측 음절의 품사 정보를 이용하여 복합 명사뿐 아니라 다양한 품사 정보를 분석할 수 있다.
조사와 어미를 분석하는 제1 품사 분석 모듈은 전술한 연결어미 분석 모듈(311a), 보조사 분석 모듈(312a), 격조사 분석 모듈(313a), 어말어미 분석 모듈(314a), 전성어미 분석 모듈(315a), 선어말어미 분석 모듈(316a), 지정사 분석 모듈(317a), 동사 파생 접미사 분석 모듈(318a), 형용사 파생 접미사 분석 모듈(319a), 명사형 파생 접미사 분석 모듈(321a)을 포함한다.
체언과 용언을 분석하는 제2 품사 분석 모듈은 부사 분석 모듈(310a), 용언 보조용언 분석 모듈(320a) 및 체언 미등록어 분석 모듈(322a)을 포함한다. 이와 같이 제1 품사 분석 모듈과 제2 품사 분석 모듈을 합쳐 품사 분석 모듈로 기능한다.
제1 품사 분석 모듈과 제2 품사 분석 모듈에 각각 연결된 결합 정보 분석 모 듈은 통칭하여 품사 결합 정보 분석 모듈로 기능한다.
품사 결합 정보 분석 모듈은 품사 분석 모듈에 의해 분석한 음절에 결합된 좌측 음절을 어미 사전(230) 또는 어간 사전(220)에서 검색하여 검색된 품사를 제1 품사 분석 모듈 또는 제2 품사 분석 모듈을 통해 좌측 음절을 분석한다.
품사 분석 모듈과 품사 결합 정보 분석 모듈은 분석할 음절을 어미 사전(230) 또는 어간 사전(220)에서 검색하여 검색된 품사를 제1 품사 분석 모듈 또는 제2 품사 분석 모듈에서 분석한다.
품사 분석 모듈은 분석할 음절을 포함한 좌측 음절을 어간 사전(220)에서 검색하여 체언, 용언, 부사가 검색되면 해당 품사의 제2 품사 분석 모듈로 전송한다. 또한, 품사 분석 모듈은 분석할 음절을 어미 사전(230)에서 분석할 음절보다 큰 연결어미, 어말어미, 격조사, 보조사, 전성어미를 검색하여 분석할 음절을 좌측 음절을 해당 품사의 제1 품사 분석 모듈로 전송한다.
품사 결합 정보 분석 모듈은 분석할 음절에 결합된 좌측 음절을 어간 사전(220) 또는 어미 사전(230)을 통해 어형 변화가 되지 않는 품사인 경우 좌측 음절을 어형 변화가 되지 않는 품사를 분석하는 모듈에서 분석한 후, 실패할 경우, 어형 변화가 가능한 품사인 경우 좌측 음절을 어형 변화가 가능한 품사를 분석하는 모듈에서 분석한다. 여기서, 어형 변화가 되지 않는 품사는 예를 들어, '그런, 저런' 등과 같은 관형사, '만큼, 만치, 부터'와 같은 보조사, '다니요, 라니요, 으래두' 등과 같은 어말어미, '답시고, 랍시고' 등과 같은 연결어미를 들 수 있다.
도 3은 본 발명의 실시예에 따른 한국어 형태소 분석 시스템을 이용한 형태 소 분석 방법을 나타낸 도면이다.
사용자 인터페이스(100)는 사용자로부터 '홍길동조국민족을위한맹셀하고있다'의 한국어 어절을 입력받는다.
형태소 분석부(300)는 띄어쓰기 오류문인 '홍길동조국민족을위한맹셀하고있다'에서 우측 '다'를 분석하는 경우, 부사 분석 모듈(310a)부터 격조사 분석 모듈(313a)까지 검색에 실패하게 된다. 이어서, 어말어미 분석 모듈(314a)은 사전 데이터베이스부(200)의 어미 사전(230)에서 '다'를 검색하고, '다'가 검색되면 '다'를 포함한 좌측 음절이 명사, 부사 또는 다른 품사인지 검색하여 '다'가 어말어미인지 판단한다.
어말어미 분석 모듈(314a)은 '다'가 어말어미로 판단되면 '다'를 어말어미로 분리하여 저장한다. 어말어미 결합 정보 분석 모듈(314b)은 '다'를 제외한 좌측 음절 '있'을 어간 사전(220)에서 용언으로 검색하고 '있'을 포함한 좌측 음절을 용언 보조용언 분석 모듈(320a)로 전송한다.
용언 보조용언 분석 모듈(320a)은 사전 데이터베이스부(200)의 어간 사전(220)에서 최장 일치의 용언 '있'을 검색하게 된다. 용언 보조용언 분석 모듈(320a)은 검색된 용언 '있'에 보조용언의 자질 정보를 가지고 있는지 어간 사전(220)을 통해 확인한 후 보조용언의 자질이 없으면 '있'을 용언으로 분리하여 저장한다.
용언 보조용언 결합 정보 분석 모듈(320b)은 용언 '있'을 제외한 좌측 음절을 어미 사전(230)에서 연결어미로 검색하고 '고'를 포함한 좌측 음절을 연결어미 분석 모듈(311a)로 전송한다.
연결어미 분석 모듈(311a)은 '고'를 포함한 좌측 음절을 사전 데이터베이스부(200)의 어미 사전(230)에서 최장 일치로 연결어미 '고'를 검색한다. 연결어미 분석 모듈(311a)은 '고'가 연결어미로 검색되면 '고'를 포함한 좌측 음절이 명사, 부사 또는 다른 품사인지 판단한다.
연결어미 분석 모듈(311a)이 '고'를 연결어미로 판단하면 '고'를 연결어미로 분리하여 저장한다.
연결어미 결합 정보 분석 모듈(311b)은 '고'를 제외한 좌측 음절 '하'를 어미 사전(230)에서 동사 파생 접미사로 검색하고 '하'를 포함한 좌측 음절을 동사 파생 접미사 분석 모듈(318a)로 전송한다.
동사 파생 접미사 분석 모듈(318a)은 '하'를 포함한 좌측 음절을 사전 데이터베이스부(200)의 어간 사전(220)에서 '하'를 포함한 좌측 음절이 명사, 용언 또는 다른 품사인지 검색하여 '하'가 동사 파생 접미사인지 판단한다.
동사 파생 접미사 분석 모듈(318a)이 '하'를 동사 파생 접미사로 검색하면 '하'를 동사 파생 접미사로 분리하여 저장한다. 동사 파생 접미사 결합 정보 분석 모듈(318b)은 '하'를 제외한 좌측 음절 'ㄹ'을 어미 사전(230)에서 전성어미로 검색하고 'ㄹ'을 포함한 좌측 음절을 전성어미 분석 모듈(315a)로 전송한다.
전성어미 분석 모듈(315a)은 'ㄹ'이 관형사형 전성어미인지 아니면 목적격 조사인지 판단하고 'ㄹ'이 축약형 목적격 조사로 판단되면 'ㄹ'을 목적격 조사로 분리하여 저장한다.
전성어미 결합 정보 분석 모듈(315b)은 'ㄹ'을 제외한 좌측 음절 '맹세'를 어간 사전(220)에서 명사로 검색하고 '맹세'를 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송한다.
체언 미등록어 분석 모듈(322a)은 '맹세'를 포함한 좌측 음절을 사전 데이터베이스부(200)의 어간 사전(220)에서 최장 일치로 명사 '맹세'를 검색하여 저장한다. 체언 결합 정보 분석 모듈(322b)은 '맹세'를 제외한 좌측 음절 'ㄴ'을 어미 사전(230)에서 보조사로 검색하고 'ㄴ'를 포함한 좌측 음절을 보조사 분석 모듈(312a)로 전송한다.
보조사 분석 모듈(312a)은 'ㄴ'을 포함한 좌측 음절을 사전 데이터베이스부(200)의 어미 사전(230)에서 최장 일치로 보조사 'ㄴ'이 보조사로 검색되면 'ㄴ'를 포함한 좌측 음절이 명사, 부사 또는 다른 품사인지 판단한다.
보조사 분석 모듈(312a)은 'ㄴ'이 보조사로 판단되면 'ㄴ'를 보조사로 분리하여 저장한다. 보조사 결합 정보 분석 모듈(312b)은 'ㄴ'을 제외한 좌측 음절 '하'를 어미 사전(230)에서 동사 파생 접미사로 검색하고 '하'를 포함한 좌측 음절을 동사 파생 접미사 분석 모듈(318a)로 전송한다.
동사 파생 접미사 분석 모듈(318a)은 '하'를 포함한 좌측 음절을 사전 데이터베이스부(200)의 어간 사전(220)에서 '하'를 포함한 좌측 음절이 명사, 용언 또는 다른 품사인지 판단한다.
동사 파생 접미사 분석 모듈(318a)은 '하'가 동사 파생 접미사로 판단되면 '하'를 동사 파생 접미사로 분리하여 저장한다. 동사 파생 접미사 결합 정보 분석 모듈(318b)은 하'를 제외한 좌측 음절 '위'를 어간 사전(220)에서 명사로 검색하고 '위'를 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송한다.
체언 미등록어 분석 모듈(322a)은 '위'을 포함한 좌측 음절을 사전 데이터베이스부(200)의 어간 사전(220)에서 최장 일치로 명사 '위'를 검색하여 저장한다. 체언 결합 정보 분석 모듈(322b)은 '위'를 제외한 좌측 음절 '을'을 체언 결합 정보 분석 모듈(322b)에 따라 어미 사전(230)에서 격조사로 검색하고 '을'을 포함한 좌측 음절을 격조사 분석 모듈(313a)로 전송한다.
격조사 분석 모듈(313a)은 '을'을 포함한 좌측 음절을 사전 데이터베이스부(200)의 어미 사전(230)에서 최장 일치로 격조사 '을'을 격조사 중 목적격 조사로 검색한다.
격조사 분석 모듈(313a)은 '을'을 포함한 좌측 음절이 명사 또는 다른 품사인지 판단하고 '을'이 격조사 중 목적격 조사로 검색되면 '을'을 목적격 조사로 분리하여 저장한다. 격조사 결합 정보 분석 모듈(313b)은 '을'을 제외한 좌측 음절 '민족'을 어간 사전(220)에서 명사로 검색하고 '민족'을 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송한다.
체언 미등록어 분석 모듈(322a)은 '민족'을 포함한 좌측 음절을 사전 데이터베이스부(200)의 어간 사전(220)에서 최장 일치로 명사 '민족'을 검색하여 저장한다. 체언 결합 정보 분석 모듈(322b)은 '민족'을 제외한 좌측 음절 '조국'을 명사 분석에 따라 어간 사전(220)에서 명사로 검색하고 '조국'을 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송한다.
체언 미등록어 분석 모듈(322a)은 '조국'을 포함한 좌측 음절을 사전 데이터베이스부(200)의 어간 사전(220)에서 최장 일치로 명사' 조국'을 검색하여 저장한다. 체언 결합 정보 분석 모듈(322b)은 '조국'을 제외한 좌측 음절 '길동'을 체언 결합 정보 분석 모듈(322b)에 따라 어간 사전(220)에서 최장 일치로 명사 '길동'을 검색하여 저장한다. 체언 결합 정보 분석 모듈(322b)은 '길동'을 제외한 좌측 음절 '홍'을 어간 사전(220)에서 명사로 검색하고 '홍'을 포함한 좌측 음절을 체언 미등록어 분석 모듈(322a)로 전송한다.
체언 미등록어 분석 모듈(322a)은 '홍'을 포함한 좌측 음절을 사전 데이터베이스부(200)의 어간 사전(220)에서 최장 일치로 '홍'을 검색하여 저장한 후 '홍'을 제외한 좌측 음절이 없는 경우 형태소 분석이 완료된다.
미등록어 고유명사 결합부(400)는 형태소 분석이 완료된 후 3음절 고유명사 결합 규칙에 따라 '홍+길동'이 고유명사로 결합하여 '홍길동'이 된다.
이러한 과정을 거쳐 띄어쓰기가 이루어지지 않은 오류문은 도 4에 도시된 바와 같이, 출력부(500)는 '홍길동/조국/민족+을/위+하+ㄴ/맹세+ㄹ/하+고/있+다'처럼 형태소로 분석된 결과를 출력한다.
이상에서 설명한 본 발명의 실시예는 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.