말뭉치 기반 형태소 및 의미 태깅 시스템 발표자 : 신준철 UTagger 2013 말뭉치 기반 형태소 및 의미 태깅 시스템 발표자 : 신준철 안녕하세요 UTagger 태깅 시스템을 발표하게될 신준철입니다.
차례 아이디어 및 알고리즘 전체 시스템 시연
기분석 사전 Full Word Morpheme Dictionary(FWD) 전체 어절의 형태소 분석 결과 저장
부분 어절 기분석 사전 Partial Word Morpheme Dictionary(PWD) 입력 : 사람인가 분리 검색 : 사람 검색 : 인가 말뭉치 내용 사람+은 명물+이+ㄴ가 사람+이+ㄴ가
PWD 복합명사 고급한자인가 고급한 자인가 고급하+ㄴ+자+이+ㄴ가 점수 계산 -> 점수가 낮음 3개로 분리 시도
# 예외 사항 : 우측이 VCP이면 J류로 취급한다. PWD간의 형태소 전이 한자 인가 느린 옵션 : 말뭉치 내용 활용 한자이다. 한자다. “한자__02/NNG+이/VCP” 4x4 테이블 conWeight[0][0] = 0.0055370515; //NN conWeight[0][1] = 0.0004759921; //NV conWeight[0][2] = 2.2857142857; //NJ conWeight[0][3] = 0.0000000000; //NE …. # 예외 사항 : 우측이 VCP이면 J류로 취급한다. 빠른 옵션 : 문법 유효성 체크
말뭉치 학습형 PWD 설계의 난점 목표 : 음절 단위로 검색하여 형태소 정보를 얻음 필요한 것 : 음절-형태소 맵핑 Key=음절, Value=형태소 예) 사람=key, 사람/NNG=Value 필요한 것 : 음절-형태소 맵핑 난점 : 맵핑이 모호한 경우도 존재. 난점2: 저장을 위해 추가정보가 필요할 때가 있음 달린다면서 Key Value 달린다면서 달리+ㄴ다면서 달린 ??? ㄴ다면서 달리+ㄴ다면서 ~달린 자동차~ 달리+ㄴ
UTagger PWD 실제 구축 예 사 람 인 가 사람 이 ㄴ가 멀리가 멀리 가 아 Key Value 사람인가 사람+이+ㄴ가 사람인* 사람+이 사람 인가 이+ㄴ가 *인가 ㄴ가 사 람 인 가 사람 이 ㄴ가 Key Value 멀리가 멀리+가+아 멀리가* 멀리+가 멀리 가 가+아 *가 아 멀리가 빨간 줄 긋는 부분이 비교적 힘든 부분. 표층형과 원형의 음절단위 연결 멀리 가 아
PWD 교차 검색 입력 : 달린다면서 분리 검색 : 달린* 검색 : *린다면서 달리+ㄴ다 걸리+ㄴ다면서 달리+ㄴ다면서 교차 검색 시에는 별표를 줘서 검색합니다. 별표에 의미는 린 음절이 2개의 형태소와 연결된다는 것입니다. 달리+ㄴ다면서
전체 시스템 입력 세종 말뭉치 학습 데이터 학습 FWD 검색 PWD 검색-조합 사용자 학습 학습 데이터 HMM or BIS 태깅 실시간 사용자 사전 출력
성능 PWD의 정답 재현율 99.05% 의미번호 포함, 어절단위 정확률 “한국어 품사 및 동형이의어 태깅을 위한 단계별 전이모델”, 정보과학회논문지 : 소프트웨어 및 응용, VOLUME 39, NUMBER 11, NOVEMBER 2012, pp.889-901 “기분석 부분 어절 사전을 활용한 한국어 형태소 분석기”, 정보과학회논문지 : 소프트웨어 및 응용, VOLUM 39, NUMBER 5, MAY 2012, pp.415-424. 설정 초당 처리 어절 수 정확률 느리게 (HMM, light 0) 25,431 96.5997% 빠르게(BIS, light 2) 41,480 96.4944% 멀티스레드, 멀티프로세싱 지원
옵션 화면
다양한 옵션 제공 서술형 명사 용언 분석 동형이의어 분별정보 복합어 분해 속도, 정확률, 메모리 조절 어간형 : 수영하__01/VV+었/EP+다/EF 어근형 : 수영__02/NNG+하/XSV+었/EP+다/EF 동형이의어 분별정보 수영하__01[粹{운동오락}_물속을_헤엄치는_일]/VV+었/EP+다/EF 복합어 분해 사전기반 분해 미술관/NNG -> 미술/NNG+관__19/XSN, 강제적/NNG -> 강제__01/NNG+적__18/XSN 알고리즘으로 강제 분해 한국전자통신연구원/NNP 한국__05/NNP+전자__06/NNG+통신__01/NNG+연구__03/NNG+원__01/NNB 속도, 정확률, 메모리 조절 일부 알고리즘 변경 가능 – 느리고 정확하게 변환 가능 사전 로딩 메모리 조절 가능
시연 : 기본 기능 http://nlplab.ulsan.ac.kr UTaggerWR.exe 입력 예문 고마웠겠지만 수영했습니다. 멀리가버린 누군가아파서. 배를 먹고 배를 타서 배가 아팠다. 배를 타고 배를 먹었더니 배가 아팠다. 배가 아파서 배를 먹고 배를 탔다. 등 등… 입력 -> 고마웠겠지만. 수영했습니다. 멀리가버린. 누군가아파서. 배를 먹고 배를 타서 배가 아팠다. 결과 -> 고맙__01/VA+었/EP+겠/EP+지만/EF+./SF 수영하__01/VV+었/EP+습니다/EF+./SF 멀리__01/MAG+가__01/VV+아/EC+버리__01/VX+ㄴ/ETM+./SF 누구/NP+이/VCP+아프/VA+아서/EF+./SF 배__03/NNG+를/JKO 먹__02/VV+고/EC 배__02/NNG+를/JKO 타__02/VV+아서/EC 배__01/NNG+가/JKS 아프/VA+았/EP+다/EF+./SF
시연 : 사용자 사전 간단하면서 강력하다. 예문 미등록어 수영했을런가 학습 : 사랑했을런가 테스트 : ~~했을런가 갤럭시탭 사랑하/VV+었/EP+을런가/EF 테스트 : ~~했을런가 축구했을런가 감사했을런가 미등록어 갤럭시탭 아이패드 뮤비
다양한 플랫폼과 병렬처리 유닉스, 리눅스 지원 JAVA는 JNI 기술로 지원(윈도우, 유닉스, 리눅스) 다양한 서버 CPU와 전용 컴파일러 지원 추가 라이브러리(Boost 등) 없이 단독적으로 컴파일 가능 JAVA는 JNI 기술로 지원(윈도우, 유닉스, 리눅스) C#, 파이썬(Windows) 지원 멀티스레드와 멀티프로세싱 지원 모든 환경에서 공유메모리(멀티프로세싱) 기능 지원 웹서비스 함수 호출 가능 다른 컴퓨터에서 서버컴의 UTagger를 호출하는 기능 예) 데모용 웹페이지, 한자 브라우저 DLL 무료공개(연구용에 한함)