<표준용어 단어 파싱>

프로젝트/프로젝트 알아보기 2018. 10. 29. 21:30 Posted by meanoflife
반응형

표준용어 단어 파싱



META를 등록하기 위해 가장 기본이 되는 것은 표준단어이다.

표준단어의 조합으로 표준용어를 만들고, 표준용어를 이용하여 물리모델을 설계하고 생성한다.

이 표준용어는 물리모델뿐만 아니라, 전문과 화면 등에서 사용하는 명칭에도 이용된다.


META시스템을 이용해보면 알겠지만,

새로운 표준용어를 등록하려고 하면, 용어에 대한 단어분할을 해준다.


등록하는 용어가 META시스템에 등재되지 않았기 때문에, 등록된 표준단어를 이용하여, 용어를 분할하여 표시해 주는 것이다.

분할된 표준단어의 의미가 용어가 의미하는 바와 같다면, 그 단어들의 조합으로 사용하면 된다.


ex) 가족고객통합등급 : 가족고객 통합 등급


위와 같이 등록된 단어들로 분할의 해주고, 해당 단어의 영문명으로 용어를 만들 수 있다.


이런 META시스템을 상정하여, 대량의 신규용어를 일괄로 처리할 수 있는 방법은 무엇일까?

META시스템이 운영되는 알고리즘도 알지 못하기 때문에 스스로 생각하여 프로젝트 내에서 응용하고 있다.



■ 용어 단어 분할


1. 현재 META에 등록된 단어정보를 이용하여,

2. 단어의 길이가 가장것부터 비교해 나간다.

3. 없으면, (우측) 끝에서 부터 단어를 하나씩 줄여가며 등록된 단어와 비교를 한다.

   있다면, "단어를 저장"하고 남은 단어를 다시 동일하게 반복 비교한다.

4. 마지막 한 자까지 비교한 후 매핑이 완료되지 않은 글자가 남았다면, (좌측) 처음부터 단어를 하나씩 줄여가며 비교한다.

5. 반복해서 마지막 한 자까지 비교하고, 

   매핑이 1회이상 매핑되고, 남은 글자가 있다면, 3번을 반복한다. 

   3번을 반복시 1회이상 매핑되고, 남은 글자가 있다면, 4번을 다시 반복한다.

   이 작업을 반복시 매핑이 없거나, 남은 글자가 없을때까지 한다.


위와 같이 앞/뒤순으로 글자를 가장 긴 (등록된)단어 순으로 매핑을 하는 방식이다.


글로 표현하자니 상당히 어렵다. 3번과 4번의 예시를 들면 다음과 같다.


* 등록된 표준단어 : 가족고객, 등급

* 분할 단어 : 가족고객통합등급     ← "통합" 이라는 단어가 표준단어에 없다.


<3번> 방법

① "가족고객통합등급"으로 등록된 표준단어가 있는지 검색

② 없으므로, (우측)부터 한 자리씩 줄여 "가족고객통합등"으로 검색

③ 없으므로, (우측)부터 한 자리씩 줄여 "가족고객통합"으로 검색

④ "가족고객통" → "가족고객"으로 검색

⑤ "가족고객"이 있음으로, 찾은 문자열에 "가족고객"을 저장하고, 남은 글자로 다시 검색

⑥ "통합등급"으로 검색 → "통합등" → "통합" → "통", 없음으로 <4번> 방법으로 검색


<4번> 방법

① (남은 글자) "통합등급"으로 검색, 없으면 (좌측)부터 한 자리씩 줄여서 검색

② "통합등" → "통합"이 있음으로, 찾는 문자열 끝으로 저장하고, 남을 글자 다시 검색

③ (남은 글자) "통합" → "합" 없으면서, 1회 검색( 등급 )된 정보가 있으니, <3번> 반복


<3번> 방법

① (남은 글자 ) "통합" → "통" 없으면, 검색된 정보가 없으니 종료.


* 결과 : 가족고객 + 통합 + 등급   ※ "통합"은 미매핑 정보임.


※ 주의!! <3번>에서 검색된 단어는 앞쪽부터 매치, <4번>에서 검색된 단어는 뒤쪽부터 매치해야 함.

            ( 남은 글자 기준으로 좌/우를 잘 관리해야 함 )


위의 방식으로 일단 같은 팀원이 구현하여 진행하고 있음.

앞으로 등록할 META에 표준용어에 적용해 볼 예정이며, 결과의 효용성은 Project Story에서 언급될 듯 함.


기회가 되면, META적용 알고리즘도 알아보고 싶은데... 기회가 될지는 모르겠음.


끝.









반응형