2018년 12월 7일 금요일

Mecab-ko-dic 사전관리 방법


mecab-ko-dic 사전관리

Mecab-ko-dic 사전은 아주 간편한 몇가지 규칙으로 관리된다.
비전문가라 하여도 다른 형태소분석기에 비해, 간단하게 배우고 관리할 수 있다는 장점이 있다.
(사전 설치/추가 방법은 본 포스트 하단참고)


레코드 구조
단어, left-ID, right-ID, Weight, 품사, 의미분류, 종성유무, 읽기, 타입, 첫번째품사, 마지막품사, 표현, 색인표현
  • 진한 청색글자 부분이 핵심, 나머지는 mecab-ko 사전 엔진이 일아서 처리해주는 부분이거나 작성치 않아도 문제가 되지 않는부분. 

Excel형식을 예로들어 설명하도록 하겠다. (어이쿠; 엄청 쪼마나네; '클릭확대로 볼것')


단어

  • 새로이 추가될 단어를 써넣는 부분.

Left & Right ID

  • 사용자 사전 관리시 ID는 빈칸으로 두어도 무방하다. 컴파일 할때 알아서 처리해 준다.

가중치(Weight)

  • 값은 낮을수록 가중치가 올라간다. 즉, 값이 0 이면 (왠만하면) 무조건적인 단어분리를 한다. (마이너스 값도 가능하긴 하다.)
  • 사용자관리시 보통 빈값 내지는 0을 주는경우가 많다. 하지만 너무 낮은 값은 다른 결과에도 영향을 미칠 가능성이 크기에 확실한 키워드가 아닌이상 10이하 적용은 지양한다.

품사 (사용자 사전의 경우엔 일반적으로 NNG or NNP)

  • 품사를 작성하는 부분이다. (참고: 품사 태그 사전 (MeCap) )
  • 보통 추가하는 키워드의 타입이 일반명사나 복합명사일 것이고 사용자사전일 것이기에, NNG(일반명사), NNP(고유명사)외에는 거의 쓰지않을 것이다. 
  • (상식적으로, 부사나 동사같은 단어가 신조어로 등장할 가능성은 제로에 가까울 것이다.)

의미분류

  • 인명, 혹은 지명 (아니면 *), 
  • (인명/지명 외에는 사용할 가능성이 거의 없다.ㅎㅎ)
  • "인명"의 경우에는 반드시 품사를 "NNP"로 해 준다. "지명"의 경우는 되도록 "NNP"로 해 준다.

종성유무

  • 글자 마지막 종성이 존재하면 T(True) 아니면 F(False)를 준다. "김탁"는 종성이 없어서 F, "용주"은 종성이 있어서 T 이다.

읽기

  • '단어'와 동일하게 적어주면 쉽다

타입

  • Inflected, Compound, Preanalysis. (아니면 *)
※ 타입별 각 쓰임새
  • Inflected: 품사분석시 변형이 일어나는 경우
    • 예☞ 가까와졌으나,1804,3,-573,VA+EC+VX+EP+EC,*,F,가까와졌으나,Inflect,VA,EC,가깝/VA/*+어/EC/*+지/VX/*+었/EP/*+으나/EC/* ☞ "가깝어지었으나"
    • ※ 조금 비약해서 설명하자면, 원래의 단어는 "식사하셨사옵니까?" 였으나 실제 단어는 "식사해쪄요?"와 같이 
    • 단어의 모습이 단축되거나 늘어나거나 변경되는 경우, Inflected를 사용한다고 생각하면 쉽게 이해할 수 있을 것이다.ㅎㅎ
  • Compound: 복합명사의 경우 적용해 준다. (가장 흔함)
    • 예☞ 가곡선,1786,3546,3123,NNP,*,T,가곡선,Compound,*,*,가곡/NNG/*+선/NNG/*
  • Preanalysis: 기분석처리? 이렇게 말하면 이해가 어려울거 같아 쉽게 말하자면, 인터파크 같은 경우 "인터+파크"가 아니기에 이경우 "인터파크"로 명시되게 하기위해 Preanalysis를 적용한다.
    • 예☞ 월드와이드웹,1780,3534,2953,NNP,*,T,월드와이드웹,Preanalysis,NNG,NNG,월드/NNG/*+와이드/NNG/*+/NNG/*
    • "월드와이드웹"은 하나의 단어로 의미를 지니나 월드, 와이드, 웹이 제각각 존재해서는 그 의미를 상실함.
※ Compound, Preanalysis 의 차이점

  • "충전케이블"처럼 "충전+케이블"로서 각 단어요소('충전'과 '케이블')가 나뉘어 존재해도 그 의미를 잃지않는 경우는 복합명사(Compound)로서 정의한다.
  • "인터파크"처럼 "인터+파크"로 나뉘어지기는 하지만, (각 단어의 구성요소 의미와는 달리 새로이 만들어진 단어이기에) 각 단어요소('인터'와 '파크')가 나뉘어지면 원래의 의미를 상실하는 경우, 즉 '인터'와 '파크'가 반드시 붙어 "인터파크"로 되어야만 의미를 지니는 경우는 기분석(Preanalysis)로서 정의한다.

첫번째품사 & 마지막품사: 무시해도됨

  • 표현 부분의 품사구조 중 첫번째와 마지막을 각각 입력해준다. (아니면 *)
  • ※ 하지만 실제 작성시에는 그냥 *만 찍어도(무시해도) 알아서 처리된다.

표현


  • 단어의 형태소 구조를 임의로 정의할때 사용한다. (없으면 *)
  • 예를들어, "대학생선교회"의 경우, Type을 Compound로 해준 후 여기에 "대학생/NNG/*+선교회/NNG/*"로 작성해주면 "대학/NNG/*+생선/NNG/*+교회/NNG/*"와 같은 오분석을 피할 수 있다.

색인표현(DEFECTED): 2.x버전 이후 사용되지않음. 무시해도됨.

색인될때의 키워드를 입력하는데 * 이면 단일단어로 색인한다. (없으면 *)
"인터파크"는 "인터+파크"로 색인될 이유가 없으니 "인터파크"로만 색인되도 되지만, "우육포"의 경우 "우육+육포+우육포"와 같이 색인되어야 할 것이다.
따라서 "우/NNG/*/1/1+우육/NNG/*/0/2+육/NNG/*/1/1+육포/NNG/*/0/2+포/NNG/*/1/1"와 같이 기입해준다.


작성팁 요약
  • 관리자 입장에서 기초적인 신조어를 입력할 경우엔 파란색 요소(단어, 가중치, 품사, 읽기, 타입, 표현)만 알아두면 된다.
  • 특히 단일키워드의 경우엔 단어, 가중치, 품사, 읽기만 알아도 된다. (나머지는 모두 *)




댓글 없음:

댓글 쓰기