190 likes | 893 Views
U Tagger 2013. 말뭉치 기반 형태소 및 의미 태깅 시스템 발표자 : 신준철. 차례. 아이디어 및 알고리즘 전체 시스템 시 연. 기분석 사전. Full Word Morpheme Dictionary(FWD) 전체 어절의 형태소 분석 결과 저장 모든 입력 어절을 FWD 에 의존할 수는 없음. 부분 어절 기분석 사전. Partial Word Morpheme Dictionary(PWD ). 입력 : 사람인가. 분 리. 검색 : 인가. 검색 : 사람. 말뭉치 내용.
E N D
UTagger2013 말뭉치 기반 형태소 및 의미 태깅 시스템 발표자 : 신준철
차례 • 아이디어 및 알고리즘 • 전체 시스템 • 시연
기분석 사전 • Full Word Morpheme Dictionary(FWD) • 전체 어절의 형태소 분석 결과 저장 • 모든 입력 어절을 FWD에 의존할 수는 없음.
부분 어절 기분석 사전 • Partial Word Morpheme Dictionary(PWD) 입력 : 사람인가 분리 검색 : 인가 검색 : 사람 말뭉치 내용 사람+은 명물+이+ㄴ가 사람+이+ㄴ가
PWD 복합명사 고급한자인가 고급한 자인가 고급하+ㄴ+자+이+ㄴ가 점수 계산 -> 점수가 낮음 3개로 분리 시도 고급한자인가 고급한자 인가 고급 한자
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: 저장을 위해 추가정보가 필요할 때가 있음 달린다면서 달리+ㄴ다면서 ~달린 자동차~ 달리+ㄴ
UTagger PWD 실제 구축 예 사 람 인 가 이 사람 ㄴ가 멀리가 가 멀리 아
PWD 교차 검색 입력 : 달린다면서 분리 검색 : 달린* 검색 : *린다면서 달리+ㄴ다 걸리+ㄴ다면서 달리+ㄴ다면서
전체 시스템 입력 세종 말뭉치 학습 데이터 학습 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. 멀티스레드, 멀티프로세싱 지원
다양한 옵션 제공 • 서술형 명사 용언 분석 • 어간형: 수영하__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 • 테스트 : ~~했을런가 • 축구했을런가 • 감사했을런가 • 미등록어 • 갤럭시탭 • 아이패드 • 뮤비
다양한 플랫폼과 병렬처리 • 유닉스, 리눅스 지원 • 다양한 서버 CPU와 전용 컴파일러 지원 • 추가 라이브러리(Boost 등) 없이 단독적으로 컴파일 가능 • JAVA는 JNI 기술로 지원(윈도우, 유닉스, 리눅스) • C#, 파이썬(Windows) 지원 • 멀티스레드와멀티프로세싱 지원 • 모든 환경에서 공유메모리(멀티프로세싱)기능 지원 • 웹서비스 함수 호출 가능 • 다른 컴퓨터에서 서버컴의UTagger를 호출하는 기능 • 예) 데모용 웹페이지, 한자 브라우저 • DLL 무료공개(연구용에 한함)