KR101767625B1 - 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치 및 방법 - Google Patents

동적 계획법 기반 일본어 문장 최소 분할 탐색 장치 및 방법 Download PDF

Info

Publication number
KR101767625B1
KR101767625B1 KR1020160100204A KR20160100204A KR101767625B1 KR 101767625 B1 KR101767625 B1 KR 101767625B1 KR 1020160100204 A KR1020160100204 A KR 1020160100204A KR 20160100204 A KR20160100204 A KR 20160100204A KR 101767625 B1 KR101767625 B1 KR 101767625B1
Authority
KR
South Korea
Prior art keywords
cell
value
column
current cell
cells
Prior art date
Application number
KR1020160100204A
Other languages
English (en)
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 KR1020160100204A priority Critical patent/KR101767625B1/ko
Application granted granted Critical
Publication of KR101767625B1 publication Critical patent/KR101767625B1/ko

Links

Images

Classifications

    • G06F17/2755
    • G06F17/2705

Landscapes

  • Machine Translation (AREA)

Abstract

본 발명은 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치로, 분석하고자 하는 문장의 길이를 행과 열 각각에 대한 인덱스 범위로 하는 테이블을 생성하는 테이블 생성부와, 상기 테이블을 구성하는 셀들 각각의 행 인덱스, 열 인덱스를 기준으로 하는 부분 문자열의 소정 언어 사전 등록 여부를 검사한 결과를 상기 테이블에 반영하는 언어 사전 등록 여부 검사부와, 상기 언어 사전 등록 여부가 반영된 테이블 상에서 어휘간 연결 경로를 검색하는 어휘간 연결부를 포함한다.

Description

동적 계획법 기반 일본어 문장 최소 분할 탐색 장치 및 방법{Apparatus and Method for Searching Minimum Segmentation of Japanese Sentence based on Dynamic programming}
본 발명는 일본어의 형태소 분석 기술에 관한 것으로, 특히 분할 수 최소법을 기반으로 하는 형태소 분석 장치 및 방법에 관한 것이다.
정보 검색 분야에서 문장 내의 유의미한 키워드를 추출하거나, 추출된 키워드를 기반으로 색인 및 비교 검색을 수행하는 대표적인 방법 중 하나로 형태소 분석이라는 기법이 사용된다. 여기서, 형태소란 의미를 가지고 있는 가장 작은 말의 단위로, 문장을 분할할 수 있는 최소 단위를 나타내지만, 그 정의 범위는 명확하지 않다. 사전에 등록된 단어들은 물론이고, 동사나 형용사의 활용형조차 1개 이상의 형태소로 분할될 수 있다. 형태소 분석은 형태소를 탐색하기 위한 언어 사전을 필요로 하며, 언어 특성에 따라 각기 상이한 절차와 방법으로 이루어져야 한다.
그런데, 띄어 쓰기가 존재하지 않는 일본어의 특성상, 문장을 여러 개의 형태소로 분할하기 위한 최적의 방법을 찾는 것은 매우 오래 전부터 계속적으로 연구되어 오고 있는 중요한 이슈이다.
그 중 분할 수 최소법(分割 最小法)은 사전과 일치하는 길이가 길수록 보다 높은 정확성을 갖는다는 경향에 의존한 방법이며, 복잡한 연산 없이 신속하게 탐색이 가능하면서도 일정 수준 이상의 정확도를 보이기 때문에, 오늘날까지도 복합 명사 및 사전 미등록어의 탐색 등에 많이 활용된다. 즉, 문장 내에 존재하는 모든 형태소를 찾아내어 연결 맵을 구성한 뒤, 가장 적은 연결 만으로 문장을 구성할 수 있는 경로(path)를 선택한다. 맵을 완성하기 전까지는 문장 내에 몇 개의 형태소가 존재하는지 알 수 없기 때문에, 맵은 흔히 가변 개수의 노드로 구성된다. 이때, 동일한 분할 및 연결 횟수를 갖는 경로들이 복수 존재할 수 있으며, 이 중 하나의 경로를 선택하거나 차순위 후보군을 재탐색하기 위한 다양한 방법이 고려되고 있다.
본 발명은 동적 계획법(Dynamic programming) 알고리즘을 활용하여 일본어 문장을 가장 적은 수의 형태소들로 분할하는 방법을 신속히 찾아내고, 복수의 후보군을 갖는 문장에 대한 탐색 분기점을 명확하게 지정할 수 있는 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치 및 방법을 제공한다.
또한, 본 발명은 최소 분할 수에 대한 탐색 과정과 그 탐색 분기점을 2차원 테이블에 표현하고 가시화할 수 있는 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치 및 방법을 제공한다.
본 발명은 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치로, 분석하고자 하는 문장의 길이를 행과 열 각각에 대한 인덱스 범위로 하는 테이블을 생성하는 테이블 생성부와, 상기 테이블을 구성하는 셀들 각각의 행 인덱스, 열 인덱스를 기준으로 하는 부분 문자열의 소정 언어 사전 등록 여부를 검사한 결과를 상기 테이블에 반영하는 언어 사전 등록 여부 검사부와, 상기 언어 사전 등록 여부가 반영된 테이블 상에서 어휘간 연결 경로를 검색하는 어휘간 연결부를 포함한다.
본 발명은 동적 계획법 기반 일본어 문장 최소 분할 탐색 방법으로, 분석하고자 하는 문장의 길이를 행과 열 각각에 대한 인덱스 범위로 하는 테이블을 생성하는 단계와, 상기 테이블을 구성하는 셀들 각각의 행 인덱스, 열 인덱스를 기준으로 하는 부분 문자열의 소정 언어 사전 등록 여부를 검사한 결과를 상기 테이블에 반영하는 단계와, 상기 언어 사전 등록 여부가 반영된 테이블 상에서 어휘간 연결 경로를 검색하는 단계를 포함한다.
본 발명에 따라, 고정 사이즈의 2차원 테이블을 사용한 최소 분할 수 탐색을 가능케 하고, 형태소 분석 결과에 대한 차순위 후보군을 쉽게 재탐색할 수 있도록 탐색 분기점을 정의할 수 있다.
도 1은 문장을 구성하는 어휘들간 연결 맵의 일 예를 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치의 블록 구성도이다.
도 3은 본 발명에 따른 부분 문자열의 사전 등록 여부 검사 테이블의 일 예를 도시한 도면이다.
도 4는 본 발명에 따라 동적 계획법으로 계산한 문장의 어휘 간 연결 테이블의 일 예를 도시한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 동적 계획법 기반 일본어 문장 최소 분할 탐색 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시 예에 따른 언어 사전 등록 여부 검사 단계를 설명하기 위한 순서도이다.
도 7은 본 발명의 일 실시 예에 따른 어휘간 연결 단계를 설명하기 위한 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이며, 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램인스트럭션들(실행 엔진)에 의해 수행될 수도 있으며, 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.
그리고 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명되는 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능들을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있으며, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하며, 또한 그 블록들 또는 단계들이 필요에 따라 해당하는 기능의 역순으로 수행되는 것도 가능하다.
이하, 첨부 도면을 참조하여 본 발명의 실시 예를 상세하게 설명한다. 그러나 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다. 본 발명의 실시 예는 당업계에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공된다.
이하, 본 발명을 설명함에 있어 일본어 형태소 분석을 위한 대표적 예문 중 하나인 'くるまでまつ'라는 단문을 예로 들어 후술하기로 한다. 그러나, 이는 본 발명의 이해를 돕기 위한 일 예일 뿐, 본 발명은 이에 한정되지 않는다.
'くるまでまつ'라는 예문에서는 다음의 <표 1>에 기재된 바와 같은 같은 사전적 어휘를 찾아낼 수 있다. <표 1>에 기재된 어휘들을 보다 세부적인 형태소로 분할하면, 예컨대 [まつ]는 [ま(타동사어간]과 [つ(타동사어미)]로 분할도 가능하지만, 사전적 어휘 수준의 분할만으로 충분한 설명이 가능하므로 이러한 설명은 생략하기로 한다.
Figure 112016076392794-pat00001
<표 1>에 기재된 어휘들을 사용하여 최종적으로 도 1과 같은 연결 맵을 얻을 수 있다
도 1은 문장을 구성하는 어휘들간 연결 맵의 일 예를 도시한 도면이다.
도 1을 참조하면, 어휘 간 연결 방법에 따라 크게 2가지의 연결 경로(또는 분할 방법)이 존재한다. 각 경로를 R1, R2라고 할 때, 경로별로 구성되는 문장이 가지는 의미는 다음의 <표 2>와 같이 달라진다.
Figure 112016076392794-pat00002
분할(연결) 수가 모두 '2'로 같기 때문에, 분할 수 최소법에서는 R1과 R2 어느 쪽이든 선택될 수 있으며, 실제로 문맥에 따라 양쪽 모두 정답이 될 수 있다. 그런데, 이러한 결과를 얻기 위해 도 1과 같은 맵을 구성하려면 어휘 수 N 만큼의 노드를 필요로 하며, 각 노드 간의 연결 가능 여부를 검사하기 위해 최대 (N-1)! 만큼의 노드 간 비교가 필요하다.
또한, 이러한 작업을 각 노드마다 돌아가며 처리해줘야 하므로 모든 노드들은 리스트나 벡터와 같은 가변 크기의 자료 구조에 들어있어야 한다. 이 경우 노드의 수에 따라 가변적으로 메모리를 동적 할당해야 하며, 각 노드 간의 연결성을 검사하며 많은 횟수의 비교가 필요하다.
또한, 여러 개의 노드들과 연결되는 노드의 경우, 가장 분할 수가 적은 연결을 제외한 나머지는 제거하기 때문에, 최종적으로 얻어지는 결과 이외의 다른 경로를 재탐색하는 것이 용이하지 않다.
본 발명에서는 이러한 문제를 해결하기 위해, 노드 리스트 대신 동적 계획법 알고리즘과 행과 열의 길이가 동일한 2차원 테이블을 사용하고, 2번의 프로세스를 거쳐 최소 분할 수를 탐색하는 장치 및 방법을 제공한다.
도 2는 본 발명의 일 실시 예에 따른 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치의 블록 구성도이고, 도 3은 본 발명에 따른 부분 문자열의 사전 등록 여부 검사 테이블의 일 예를 도시한 도면이고, 도 4는 본 발명에 따라 동적 계획법으로 계산한 문장의 어휘 간 연결 테이블의 일 예를 도시한 도면이다.
도 2를 참조하면, 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치(이하 '장치'로 기재함)(100)은 테이블 생성부(110), 언어 사전 등록 여부 검사부(120) 및 어휘간 연결부(130)을 포함한다. 부가적으로 언어 사전 DB(140)를 더 포함할 수도 있다. 여기서, 언어 사전 DB(140)는 장치(100) 내에 구비된 형태일 수도 있고, 유/무선 통신을 통해 접속 가능한 형태로 구성될 수도 있다.
테이블 생성부(110)는 분석하고자 하는 문장의 길이를 행과 열 각각에 대한 인덱스 범위로 하는 테이블을 생성한다. 예컨대, 도 3을 참조하면, 문장의 길이를
Figure 112016076392794-pat00003
이라 할 때, 생성되는 테이블의 행 인덱스 범위는
Figure 112016076392794-pat00004
, 열 인덱스의 범위는
Figure 112016076392794-pat00005
이다. 여기서, 생성된 테이블의 i행, j열에 위치한 셀의 값을
Figure 112016076392794-pat00006
이라 한다.
언어 사전 등록 여부 검사부(120)는 테이블을 구성하는 셀들 각각의 행 인덱스, 열 인덱스를 기준으로 하는 부분 문자열에 대해, 언어 사전 DB(140)에 등록되어 있는 어휘인지의 여부를 검사한 결과를 테이블에 반영한다.
여기서, m행, n열에 위치한 셀의 행 인덱스인 m과, 열 인덱스인 n을 기준으로 하는 부분 문자열 Sent(m, n)는 문장의 m번째 문자부터 n번째 문자까지의 부분 문자열로 정의된다. 예컨대, 예문 'くるまでまつ'에 대해 Sent(0, 1)은 'くる'다.
그리고, 테이블의 셀의 값 Table(i, j)은 다음의 <수학식 1>에 따라 결정된다.
Figure 112016076392794-pat00007
즉, 문장을 구성하는 모든 부분 문자열에 대해, 언어 사전에 등록되어 있는 어휘인지의 여부에 따라, 해당 셀의 값을 '1' 또는 '0'으로 결정한다. 예컨대, 도 3을 참조하면, Table(2, 3)(310)은 '1'로 기재되어 있는데, 이는 'くるまでまつ'의 부분 문자열인 'まで'를 언어 사전 등록 여부 검사한 결과로, 상기 <표 1>의 No.3를 참조하면 'まで'는 사전 등록되어 있는 어휘이기 때문이다.
또한, 일 실시 예에 따라, 부분 문자열이 하나의 문자로 이루어진 경우에는 사전 등록 여부와 관계없이 해당 셀의 값을 '1'로 결정한다. 이는 사전에 등록되어 있지 않지만 이미 사용되고 있는 어휘를 처리하기 위함이다. 예컨대, 도 3을 참조하면, Table(0, 0), Table(1, 1), ...., Table(5, 5)(320)는 1개의 문자로 이루어진 부분 문자열에 대한 셀의 값으로 '1'이 기재되어 있다.
어휘간 연결부(130)는 상기 언어 사전 등록 여부가 반영된 테이블 상에서 동적 계획법 알고리즘을 이용하여 어휘간 연결 경로를 검색한다. 일 실시 예에 따라, 열의 인덱스(j)가 '1' 이상이고, Table(i, j)이 '1'인 조건을 만족하는 셀들에서 동적 계획법 알고리즘을 응용하여 연결 수(분할 수)를 계산한다. 예컨대, 도 3을 참조하면, j가 '1' 이상이고, 그 셀의 값이 '1'인 모든 셀들에 대해서 연결 경로를 검색하게 된다.
또한, 어휘간 연결부(130)는 열의 인덱스(j)에 따라 순차적으로 셀들의 연결 경로를 탐색하게 된다. 즉, 어휘간 연결부(130)는 이전 열의 셀값의 연결 경로가 계산된 테이블 상에서 현재 셀의 연결 경로를 계산하게 된다.
어휘간 연결부(130)는 상기 조건을 만족하는 셀에 대해, 좌측 셀의 값이 '1' 이상일 경우, 좌측 셀과 현재 셀을 연결함과 아울러 좌측 셀의 값을 현재 셀의 값으로 결정하여, 현재 셀에 대한 작업을 완료한다. 예컨대, 도 4를 참조하면, 셀(410)의 좌측 셀(420)의 값은 '2'로 '1' 이상이므로, 셀(420)과 셀(410)을 연결함과 아울러, 셀(410)의 값은 셀(420)의 값인 '2'로 결정된다.
반면, 좌측 셀의 값이 '0'일 경우, 어휘간 연결부(130)는 좌측 열 중 현재 셀의 위치보다 이전 행의 검사를 시작한다. 즉, 좌측 열 중 현재 셀의 위치보다 이전 행에 속하는 셀의 값이 '1' 이상일 경우, 해당 셀과 현재 셀을 연결함과 아울러 해당 셀의 값에 '1'을 더하여 현재 셀의 값으로 결정한다. 그런데, 현재 셀의 위치보다 이전 행에 속하는 셀들 중 그 값이 '1' 이상인 셀들이 둘 이상일 수 있다. 이럴 경우, 어휘간 연결부(130)는 최소값을 가지는 셀 값을 선택한다. 예컨대, 도 4를 참조하면, 셀(420)의 좌측 열 중 현재 셀(420)의 위치보다 이전 행에 속하는 셀들 중 그 값이 '1' 이상인 셀들(430, 440)은 두 개이다. 이 중, 최소값인 '1'을 셀 값으로 하는 셀(440)을 선택하여, 셀(440)과 현재 셀(420)을 연결함과 아울러 셀(440) 값에 '1'을 더한 '2'를 현재 셀(420)의 값으로 결정한다.
그런데, 최소값을 가지는 셀들이 둘 이상일 수도 있다. 이럴 경우, 어휘간 연결부(130)는 현재 셀을 분기점으로서 판단하여 둘 이상의 셀들을 모두 현재 셀과 연결함과 아울러, 중요도에 따라 셀들의 값에서 사용자 지정값(X) 만큼 줄이고, 해당 셀에 분기점이라는 의미로 'P'라고 기록한다. 예컨대, 도 4를 참조하면, 셀(450)은 이전 행에 속하는 셀들 중 그 값이 '1' 이상인 셀들(410, 460)이 두 개이고, 그 셀 값이 동일하다. 따라서, 두 개의 셀들(410, 460)과 현재 셀(420)이 연결됨과 아울러 현재 셀(450)의 값은 셀들(410, 460)의 값 '2'를 사용자 지정값(X) 만큼 감한 값인 '2-X'로 결정되고, 분기점을 의미하도록 해당 셀(450)에 P라고 기록된다.
또한, 어휘간 연결부(130)는 경로의 도착점을 결정함에 있어, 최종열의 셀들의 값중 최소값을 가지는 셀을 도착점으로 결정한다. 예컨대, 도 4를 참조하면, '2-X'를 값으로 하는 셀(480)과 '3-X'를 값으로 하는 셀(490) 중 그 셀값이 작은 셀(480)을 경로의 도착점으로서 설정한다. 이때, 좌측에 분기점 P가 표시된 셀(450)이 존재하고, 분기점 이전에 연결된 경로는 2개이므로, 셀(450)로 연결되는 경로는 셀(410)에서 셀(450), 셀(460)에서 셀(450)의 두 개임을 알 수 있다.
도 4를 참조하면, 전술한 바와 같이 본 발명에 따라 문장을 분할 수 최소법으로 분할하였을 때, 도 1에 도시된 R1, R2의 경로와 동일한 2개의 경로를 얻을 수 있음을 알 수 있다.
즉, 본 발명에 따라, 고정 사이즈의 2차원 테이블을 사용한 최소 분할 수 탐색을 가능케 하고, 형태소 분석 결과에 대한 차순위 후보군을 쉽게 재탐색할 수 있도록 탐색 분기점을 정의한다.
도 5는 본 발명의 일 실시 예에 따른 동적 계획법 기반 일본어 문장 최소 분할 탐색 방법을 설명하기 위한 순서도이다.
도 5를 참조하면, 장치(100)는 분석하고자 하는 문장의 길이를 행과 열 각각에 대한 인덱스 범위로 하는 테이블을 생성한다(S510). 예컨대, 도 3을 참조하면, 문장의 길이를
Figure 112016076392794-pat00008
이라 할 때, 생성되는 테이블의 행 인덱스 범위는
Figure 112016076392794-pat00009
, 열 인덱스의 범위는
Figure 112016076392794-pat00010
이다. 여기서, 생성된 테이블의 i행, j열에 위치한 셀의 값을
Figure 112016076392794-pat00011
이라 한다.
장치(100)는 테이블을 구성하는 셀들 각각의 행 인덱스, 열 인덱스를 기준으로 하는 부분 문자열에 대해, 언어 사전에 등록되어 있는 어휘인지의 여부를 검사한 결과를 테이블에 반영한다(S520). 이에 대한 상세한 설명은 도 6을 참조하여 후술하기로 한다.
다음으로, 장치(100)는 상기 언어 사전 등록 여부가 반영된 테이블 상에서 동적 계획법 알고리즘을 이용하여 어휘간 연결 경로를 검색한다(S530). 이에 대한 상세한 설명은 도 7을 참조하여 후술하기로 한다.
도 6은 본 발명의 일 실시 예에 따른 언어 사전 등록 여부 검사 단계를 설명하기 위한 순서도이다.
도 6을 참조하면, 장치(100)는 m행, n열에 위치한 셀의 행 인덱스인 m과, 열 인덱스인 n을 기준으로 하는 부분 문자열 Sent(m, n)는 문장의 m번째 문자부터 n번째 문자까지의 부분 문자열을 추출한다(S610). 예컨대, 예문 'くるまでまつ'에 대해 Sent(0, 1)은 'くる'다.
일 실시 예에 따라, 장치(100)는 부분 문자열이 하나의 문자로 이루어진 경우(S620)에는 S650으로 진행하여 사전 등록 여부와 관계없이 해당 셀의 값을 '1'로 결정한다. 이는 사전에 등록되어 있지 않지만 이미 사용되고 있는 어휘를 처리하기 위함이다. 예컨대, 도 3을 참조하면, Table(0, 0), Table(1, 1),..., Table(5, 5)(320)는 1개의 문자로 이루어진 부분 문자열에 대한 셀의 값으로 '1'이 기재되어 있다.
장치(100)는 언어 사전을 검색(S630)하여, 추출된 부분 문자열에 대한 언어 사전 등록 여부를 판단한다(S640). S640의 판단 결과 부분 문자열이 등록되어 있을 경우, 장치(100)는 Table(i, j)를 '1'로 결정(S650)하고, S640의 판단 결과 부분 문자열이 등록되어 있지 않을 경우, 장치(100)는 Table(i, j)를 '0'으로 결정(S660)한다. 문장을 구성하는 모든 부분 문자열에 대해, 전술한 S610 내지 S660의 단계를 수행하여, 언어 사전에 등록되어 있는 어휘인지의 여부에 따라, 해당 셀의 값을 '1' 또는 '0'으로 결정한다.
도 7은 본 발명의 일 실시 예에 따른 어휘간 연결 단계를 설명하기 위한 순서도이다.
도 7을 참조하면, 장치(100)는 열의 인덱스(j)가 '1' 이상이고, Table(i, j)이 '1'인 조건을 만족하는 셀에 대해, 좌측 셀의 값을 조사(S610)하여, '1' 이상일 경우(S620), 좌측 셀과 현재 셀을 연결함과 아울러 좌측 셀의 값을 현재 셀의 값으로 결정한다(S630).
반면, 좌측 셀의 값이 '0'일 경우(S620), 장치(100)는 좌측 열 중 현재 셀의 위치보다 이전 행에 속하는 셀의 값이 '1' 이상인지를 판단한다(S640). 그런데, S640의 판단 결과 현재 셀의 위치보다 이전 행에 속하는 셀들 중 그 값이 '1' 이상인 셀들이 둘 이상일 수 있으므로 최소값을 가진 셀을 선택하게 되는데, 동일한 최소값을 가지는 셀들이 둘 이상일 수도 있다.
따라서, 장치(100)는 우선 최소값을 가지는 셀들이 둘 이상인지를 판단한다(S650). S650의 판단 결과 최소값을 가지는 셀들이 둘 이상이 아닐 경우, 장치(100)는 최소값을 가지는 셀과 현재 셀을 연결함과 아울러 해당 셀의 값에 '1'을 더하여 현재 셀의 값으로 결정한다(S660).
반면, S650의 판단 결과 최소값을 가지는 셀들이 둘 이상일 경우. 장치(100)는 현재 셀을 분기점으로서 판단하여 둘 이상의 셀들을 모두 현재 셀과 연결함과 아울러, 중요도에 따라 셀들의 값에서 사용자 지정값(X) 만큼 줄이고, 해당 셀에 분기점이라는 의미로 'P'라고 기록한다(S670).
또한, 장치(100)는 열의 인덱스(j)에 따라 순차적으로 S610 내지 S670의 단계를 반복 수행하여, 셀들의 연결 경로를 탐색하게 된다. 즉, 이전 열의 셀 값의 연결 경로가 계산된 테이블 상에서 현재 셀의 연결 경로를 계산하게 된다.
또한, 도면에는 도시되어 있지 않지만, 장치(100)는 경로의 도착점을 결정함에 있어, 최종열의 셀들의 값 중 최소값을 가지는 셀을 도착점으로 결정한다.

Claims (18)

  1. 분석하고자 하는 문장의 길이를 행과 열 각각에 대한 인덱스 범위로 하는 테이블을 생성하는 테이블 생성부와,
    상기 테이블을 구성하는 셀들 각각의 행 인덱스, 열 인덱스를 기준으로 하는 부분 문자열의 소정 언어 사전 등록 여부를 검사한 결과를 상기 테이블에 반영하는 언어 사전 등록 여부 검사부와,
    상기 언어 사전 등록 여부가 반영된 테이블 상에서 어휘간 연결 경로를 검색하는 어휘간 연결부를 포함함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치.
  2. 제1 항에 있어서, 상기 언어 사전 등록 여부 검사부는
    i행, j열에 위치한 셀에 대해 상기 문장의 i번째 문자부터 j번째 문자까지의 부분 문자열의 언어 사전 등록 여부를 검사함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치.
  3. 제1 항에 있어서, 상기 언어 사전 등록 여부 검사부는
    상기 부분 문자열이 언어 사전에 등록되어 있는 어휘인지의 여부에 따라, 해당 셀의 값을 '1' 또는 '0'으로 결정함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치.
  4. 제1 항에 있어서, 상기 언어 사전 등록 여부 검사부는
    상기 부분 문자열이 하나의 문자로 이루어진 경우, 해당 셀의 값을 '1'로 결정함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치.
  5. 제1 항에 있어서, 상기 어휘간 연결부는
    열의 인덱스가 '1' 이상이고, 셀의 값이 '1'인 조건을 만족하는 셀에서 연결 수를 계산함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치.
  6. 제1 항에 있어서, 상기 어휘간 연결부는
    좌측 셀의 값이 '1' 이상일 경우, 좌측 셀과 현재 셀을 연결함과 아울러 좌측 셀의 값을 현재 셀의 값으로 결정하고,
    좌측 셀의 값이 '0'일 경우, 좌측 열 중 현재 셀의 위치보다 이전 행에 속하는 셀의 값이 '1' 이상일 경우, 해당 셀과 현재 셀을 연결함과 아울러 해당 셀의 값에 '1'을 더하여 현재 셀의 값으로 결정함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치.
  7. 제6 항에 있어서, 상기 어휘간 연결부는
    현재 셀의 위치보다 이전 행에 속하는 셀들 중 그 값이 '1' 이상인 셀들이 둘 이상일 경우, 최소값을 가지는 셀 값을 선택함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치.
  8. 제7 항에 있어서, 상기 어휘간 연결부는
    상기 최소값을 가지는 셀들이 둘 이상일 경우, 현재 셀에 분기점을 표시하고, 둘 이상의 셀들을 모두 현재 셀과 연결함과 아울러, 상기 최소값에서 사용자 지정값만큼 줄인 값은 현재 셀의 값으로 결정함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치.
  9. 제7 항에 있어서, 상기 어휘간 연결부는
    경로의 도착점을 결정함에 있어, 최종열의 셀들의 값 중 최소값을 가지는 셀을 도착점으로 결정함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치.
  10. 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치의 테이블 생성부에 의해 수행되는 분석하고자 하는 문장의 길이를 행과 열 각각에 대한 인덱스 범위로 하는 테이블을 생성하는 단계와,
    동적 계획법 기반 일본어 문장 최소 분할 탐색 장치의 언어 사전 등록 여부 검사부에 의해 수행되는 상기 테이블을 구성하는 셀들 각각의 행 인덱스, 열 인덱스를 기준으로 하는 부분 문자열의 소정 언어 사전 등록 여부를 검사한 결과를 상기 테이블에 반영하는 단계와,
    동적 계획법 기반 일본어 문장 최소 분할 탐색 장치의 어휘간 연결부에 의해 수행되는 상기 언어 사전 등록 여부가 반영된 테이블 상에서 어휘간 연결 경로를 검색하는 단계를 포함함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 방법.
  11. 제10 항에 있어서, 상기 반영하는 단계는
    i행, j열에 위치한 셀에 대해 상기 문장의 i번째 문자부터 j번째 문자까지의 부분 문자열의 언어 사전 등록 여부를 검사함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 방법.
  12. 제10 항에 있어서, 상기 반영하는 단계는
    상기 부분 문자열이 언어 사전에 등록되어 있는 어휘인지의 여부에 따라, 해당 셀의 값을 '1' 또는 '0'으로 결정함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 방법.
  13. 제10 항에 있어서, 상기 반영하는 단계는
    상기 부분 문자열이 하나의 문자로 이루어진 경우, 해당 셀의 값을 '1'로 결정함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 방법.
  14. 제10 항에 있어서, 상기 검색하는 단계는
    열의 인덱스가 '1' 이상이고, 셀의 값이 '1'인 조건을 만족하는 셀에서 연결 수를 계산함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 방법.
  15. 제10 항에 있어서, 상기 검색하는 단계는
    좌측 셀의 값이 '1' 이상일 경우, 좌측 셀과 현재 셀을 연결함과 아울러 좌측 셀의 값을 현재 셀의 값으로 결정하는 단계와,
    좌측 셀의 값이 '0'일 경우, 좌측 열 중 현재 셀의 위치보다 이전 행에 속하는 셀의 값이 '1' 이상일 경우, 해당 셀과 현재 셀을 연결함과 아울러 해당 셀의 값에 '1'을 더하여 현재 셀의 값으로 결정하는 단계를 포함함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 방법.
  16. 제15 항에 있어서, 상기 검색하는 단계는
    현재 셀의 위치보다 이전 행에 속하는 셀들 중 그 값이 '1' 이상인 셀들이 둘 이상일 경우, 최소값을 가지는 셀 값을 선택하는 단계를 더 포함함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 방법.
  17. 제16 항에 있어서, 상기 검색하는 단계는
    상기 최소값을 가지는 셀들이 둘 이상일 경우, 현재 셀에 분기점을 표시하고, 둘 이상의 셀들을 모두 현재 셀과 연결함과 아울러, 상기 최소값에서 사용자 지정값만큼 줄인 값은 현재 셀의 값으로 결정하는 단계를 더 포함함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 방법.
  18. 제15 항에 있어서, 상기 검색하는 단계는
    경로의 도착점을 결정함에 있어, 최종열의 셀들의 값중 최소값을 가지는 셀을 도착점으로 결정하는 단계를 포함함을 특징으로 하는 동적 계획법 기반 일본어 문장 최소 분할 탐색 방법.
KR1020160100204A 2016-08-05 2016-08-05 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치 및 방법 KR101767625B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160100204A KR101767625B1 (ko) 2016-08-05 2016-08-05 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160100204A KR101767625B1 (ko) 2016-08-05 2016-08-05 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101767625B1 true KR101767625B1 (ko) 2017-08-14

Family

ID=60142220

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160100204A KR101767625B1 (ko) 2016-08-05 2016-08-05 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101767625B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007087397A (ja) 2005-09-21 2007-04-05 Fujitsu Ltd 形態素解析プログラム、補正プログラム、形態素解析装置、補正装置、形態素解析方法および補正方法
JP2011186765A (ja) 2010-03-08 2011-09-22 Toshiba Corp 形態素解析装置及び形態素解析方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007087397A (ja) 2005-09-21 2007-04-05 Fujitsu Ltd 形態素解析プログラム、補正プログラム、形態素解析装置、補正装置、形態素解析方法および補正方法
JP2011186765A (ja) 2010-03-08 2011-09-22 Toshiba Corp 形態素解析装置及び形態素解析方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Junhyeok Shim, et. al, Integrated multi-strategic Web document pre-processing for sentence and word boundary detection, Information Processing and Management 38,2002 pp 509-527
박수혁외, 기계학습 기법을 이용한 문장경계인식, 제29회 한국정보처리학회 춘계학술발표대회 논문집 제15권 제1호, 2008. 5.

Similar Documents

Publication Publication Date Title
KR101646547B1 (ko) 인터랙티브한 검색 방법 및 장치
JP5362095B2 (ja) インプットメソッドエディタ
US8332205B2 (en) Mining transliterations for out-of-vocabulary query terms
CN106503231B (zh) 基于人工智能的搜索方法和装置
JP2007323671A (ja) 中国語テキストにおける単語分割
JP2006031228A (ja) 形態素解析装置、方法及びプログラム
KR20140021838A (ko) 문법 오류 검출 방법 및 이를 위한 오류검출장치
US20080077397A1 (en) Dictionary creation support system, method and program
US20110320464A1 (en) Retrieval device
JP2020087353A (ja) 要約文生成方法、要約文生成プログラム及び要約文生成装置
US8874428B2 (en) Method and apparatus for fast translation memory search
JP2010157260A (ja) 漢字文における単語区分方法
KR20160143491A (ko) 텍스트 분할 프로그램, 텍스트 분할 장치, 및 텍스트 분할 방법
KR20230009564A (ko) 앙상블 스코어를 이용한 학습 데이터 교정 방법 및 그 장치
US10387543B2 (en) Phoneme-to-grapheme mapping systems and methods
US11567946B2 (en) Document search apparatus and document search method
KR20120052591A (ko) 연속어 음성인식 시스템에서 오류수정 장치 및 방법
KR101767625B1 (ko) 동적 계획법 기반 일본어 문장 최소 분할 탐색 장치 및 방법
KR20170107808A (ko) 원문문장을 번역 소단위들로 분할하고 소번역단위들의 번역어순을 결정하는 번역어순패턴 데이터 구조, 이를 생성하기 위한 명령어들을 저장한 컴퓨터 판독가능한 저장매체 및 이를 가지고 번역을 수행하는 컴퓨터 판독가능한 저장매체에 저장된 번역 프로그램
KR20200003329A (ko) 자연어 처리 기반의 청크 구성 방법 및 장치
JP2004046775A (ja) 固有表現抽出装置及び方法並びに固有表現抽出プログラム
JP5285491B2 (ja) 情報検索システム、方法及びプログラム、索引作成システム、方法及びプログラム、
JP2007317000A (ja) 機械翻訳装置、その方法およびプログラム
CN107203512B (zh) 用于从用户的自然语言输入中提取关键元素的方法
JP2001142877A (ja) アルファベット文字・日本語読み対応付け装置と方法およびアルファベット単語音訳装置と方法ならびにその処理プログラムを記録した記録媒体

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant