seunjeon 사용자사전 등록 관련.

235 views
Skip to first unread message

Dae yun Kim

unread,
Sep 14, 2018, 6:12:49 AM9/14/18
to 은전한닢 프로젝트
안녕하십니까 seunjeon을 활용하고 있는 개발자 입니다. 
먼저, 훌륭한 프로젝트를 오픈해주신대 대해 감사드립니다.

현재 복합명사분해와 관련한 튜닝이 필요한 건이 있어, cost를 조정해 가며 사전을 튜닝해 가고 있습니다. 

공개해주신것과 같이 seunjeon에 사용자사전을 등록하는 방법에는 2가지가 있는 것으로 알고 있는데요

첫번째, seunjeon 사전 포맷
- 등록어,cost 형태의 포맷입니다.

두번째, mecab 형태의 포맷
- 등록어, 좌문맥ID, 우문맥ID,Features로 구성된 포맷입니다.

현재 저는 개체명인식기의 일부 기능을, seunjeon을 통해 해결하고자 합니다.
따라서, mecab 포맷형태로 복합명사분해의 Feature들을 등록해 주고 있습니다.

한양대역,1786,3546,-100,NNP,지명,T,한양대역,Compound,*,*,한양/NNP/지명+대/NNG/*+역/NNG/*
한양,-50 //일반명사 한양.
대역,-30 //한양대역과 무관한, 지명에 따른 신규등록어

이때, 제가 명시적으로 Cost를 낮게 부여한, 한양대+역 으로 분절이 될것으로 기대했으나, "한양"과 "대역" 으로 분절되는 현상이 발생하였습니다.
이를 해결하고자, 매우 낮은 Cost인 -2500정도로 Cost를 등록해야 의도한바 대로 분절이 되었습니다.

이러한 현상을 코드를 통해 분석해 본 결과,
seunjeon 사전 포맷을 통했을때는 좌문맥/우문맥 ID가, NngUtil.nngLeftId, NngUtil.nngRightId 에 의해 자동으로 부여 되는 것으로 판단되었고, 

한양대역,1750,3237,-100,NNP,지명,T,한양대역,Compound,*,*,한양/NNP/지명+대/NNG/*+역/NNG/*
위 사전에 NngUtil에 의해 부여된 좌문맥/우문맥 ID를 확인하여 사전에 명시적으로 삽입시, 의도한바대로 -100정도의 COST에도 원하는 바 대로 분절이 되는 것을 확인하였습니다.

따라서, 현재는 만드신 seunjeon의 loadFromIterator 부분을 수정하여, 좌문맥/우문맥 ID가 없는 사용자사전 포맷이 들어올때, NngUtil을 통해 ID를 자동으로 부여하는 방법을 사용하고자 합니다. 
ex) 한양대역,-100,NNP,지명,T,한양대역,Compound,*,*,한양/NNP/지명+대/NNG/*+역/NNG/*

해당 방법이, 의도하신 방향성에 맞는 방법인지 또는 문제가 될 여지가 있는지 궁금하여 문의 남깁니다.
감사합니다. 주말잘보내세요~

Dae yun Kim

unread,
Sep 14, 2018, 7:11:04 AM9/14/18
to 은전한닢 프로젝트
좌우문맥 기본값이, 1784,3535 네요 위 예제는 오타 입니다. 

Reply all
Reply to author
Forward
0 new messages