콘텐츠로 이동

사용자 사전의 동작 원리

사용자 사전의 동작 원리

회사 이름, 제품명, 도메인 전문 용어처럼 일반 사전에 없는 단어는 분석이 빗나가기 쉽습니다. 바른사용자 사전으로 이런 단어를 직접 등록해, 형태소 분석 결과를 원하는 대로 보정할 수 있게 합니다. 이 글은 사용자 사전이 어떤 종류로 나뉘고, 분석 과정에서 어떻게 동작하는지 설명합니다.

5종의 사용자 사전

사용자 사전은 등록할 단어의 품사에 따라 다섯 가지로 나뉩니다.

사전 품사 용도
np_set NP 고유명사 회사·제품·인명 등 바이칼, 누리호
cp_set CP 복합명사 한 덩어리로 다룰 복합명사 인공지능연구소
cp_caret_set CP^ 복합명사 분리 ^로 분해 지점을 지정 인공지능^연구소
vv_set VV 동사 신규 동사 광클하다의 어간
va_set VA 형용사 신규 형용사 새 형용사 어간

관형사·부사·감탄사 사전

위 5종 외에 관형사(mm_set), 부사(mag_set), 감탄사(ic_set) 사전도 제공합니다. 다루려는 단어의 품사에 맞는 사전을 선택하세요.

분석 과정에서의 후보정

사용자 사전은 형태소 분석 요청 시 custom_dict_names로 지정합니다. 여러 사전을 함께 지정할 수 있으며, 먼저 지정한 사전이 우선합니다.

graph TD
  IN[입력 문장] --> ANA[형태소 분석];
  ANA --> CHECK{custom_dict_names 지정?};
  CHECK -->|예| APPLY[사용자 사전으로 후보정];
  CHECK -->|아니오| BASE[기본 결과];
  APPLY --> OUT[보정된 결과<br/>IN_CUSTOM_DICT 표시];

사용자 사전에서 인식된 형태소에는 out_of_vocab 값이 IN_CUSTOM_DICT로, custom_dict_name에 어느 사전에서 왔는지가 표시됩니다.

내장 사전과의 결합·우선순위

바른은 사용자 사전을 내장 사전·우리말샘·임베딩과 함께 활용합니다. custom_dict_names로 지정한 사용자 사전이 후보정에 먼저 반영되고, 형태소의 출처는 out_of_vocab로 구별되어 나옵니다. 같은 표제어가 여러 사전(NP/CP/CP^/VV/VA)에 동시에 들어 있으면 충돌이 생길 수 있으므로, CheckConflict로 중복·충돌을 미리 점검하세요.

무중단 실시간 갱신

서버를 멈추지 않고 사전을 바꾼다

사용자 사전은 사전 디렉토리의 파일 변경을 실시간으로 감지하고 60초 주기로도 점검합니다. 파일이 추가·수정·삭제되면 서버를 재시작하지 않고 무중단으로 다시 읽어들입니다. 운영 중에 새 단어를 등록해도 곧바로 분석에 반영됩니다.

자주 묻는 질문

Q. 사용자 사전에는 어떤 종류가 있나요?

품사에 따라 고유명사(NP), 복합명사(CP), 복합명사 분리(CP^), 동사(VV), 형용사(VA)의 5종이 기본이며, 관형사·부사·감탄사 사전도 제공됩니다.

Q. 여러 사용자 사전을 함께 쓰면 어떤 게 우선되나요?

형태소 분석 요청의 custom_dict_names에 여러 사전을 지정할 수 있고, 먼저 지정한 사전이 우선 적용됩니다. 같은 표제어가 여러 사전에 동시에 있으면 CheckConflict로 충돌을 점검할 수 있습니다.

Q. 사전을 바꾸면 서버를 재시작해야 하나요?

아니요. 디렉토리의 파일 변경을 감지하고 주기적으로 점검하므로, 사전 파일이 바뀌면 서버를 멈추지 않고 무중단으로 다시 읽어들입니다.

도움이 되었나요?