Similar documents
Naver.NLP.Workshop.SRL.Sogang_Alzzam

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

PowerPoint 프레젠테이션

RNN & NLP Application

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

(JBE Vol. 24, No. 1, January 2019) (Special Paper) 24 1, (JBE Vol. 24, No. 1, January 2019) ISSN 2287-

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft Word - src.doc

Microsoft Word - PLC제어응용-2차시.doc

게시판 스팸 실시간 차단 시스템

딥러닝 첫걸음

OCW_C언어 기초

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap01-C언어개요.pptx

DIY 챗봇 - LangCon

Studuino소프트웨어 설치

KCC2011 우수발표논문 휴먼오피니언자동분류시스템구현을위한비결정오피니언형용사구문에대한연구 1) Study on Domain-dependent Keywords Co-occurring with the Adjectives of Non-deterministic Opinion

국어 순화의 역사와 전망

PowerPoint 프레젠테이션

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

슬라이드 1

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

Install stm32cubemx and st-link utility

4S 1차년도 평가 발표자료

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Artificial Intelligence: Assignment 6 Seung-Hoon Na December 15, Sarsa와 Q-learning Windy Gridworld Windy Gridworld의 원문은 다음 Sutton 교재의 연습문제

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Windows 8에서 BioStar 1 설치하기

Windows Server 2012

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

슬라이드 1

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Report Designer V3.0 사용설명서 2장

자연언어처리

Web Scraper in 30 Minutes 강철

Adobe Flash 취약점 분석 (CVE )

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

PowerPoint 프레젠테이션

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

슬라이드 1

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - e pptx

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

Observational Determinism for Concurrent Program Security

tiawPlot ac 사용방법

리눅스 프로세스 관리

Microsoft PowerPoint - 30.ppt [호환 모드]

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.


지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

EndNote X2 초급 분당차병원도서실사서최근영 ( )

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

슬라이드 1

Microsoft PowerPoint 자동설치시스템검증-V05-Baul.pptx

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint 프레젠테이션

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

PowerPoint Template

MySQL-.. 1

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

Microsoft PowerPoint UNIX Shell.ppt

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

쉽게 풀어쓴 C 프로그래밍

작성자 : 기술지원부 김 삼 수

Microsoft PowerPoint 통신 및 압축 명령어.ppt

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Microsoft PowerPoint - chap04-연산자.pptx

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

슬라이드 1

PowerPoint Template

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

슬라이드 1

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

SBR-100S User Manual

문서의 제목 나눔고딕B, 54pt

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

PowerPoint 프레젠테이션

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

2 / 27 목차 1. M-plus 소개 2. 중다회귀 3. 경로모형 4. 확인적요인분석 5. 구조방정식모형 6. 잠재성장모형 7. 교차지연자기회귀모형

PowerPoint 프레젠테이션

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract

Transcription:

국립국어원 2016-01-05 2016 국어 정보 처리 시스템 경진 대회 발표 자료집 일자 장소 주관 주최 주최 2016. 10. 7. (금) 동아대학교 부민캠퍼스 국제관 4층 세미나실 한국정보과학회 언어공학연구회 국립국어원 주관

대회일정 등 록 13:00 ~ 13:30 등록및방명록작성, 명찰및발표자료집배부 개회식 사회 차정원교수 개회사박혁로교수 13:30 ~ 13:40 개회식정호성어문연구과장환영사 ( 국립국어원 ) 발표 1부최정도학예연구사좌장 ( 지정분야 : 개체명인식시스템 ) ( 국립국어원 ) 13:40 ~ 14:00 서강알짬개체명인식기이건철, 임지수, 최호정, 권순재, 허윤석, 서정연 ( 서강대학교 ) 14:00 ~ 14:20 단추 (DANCHU) : NER 유홍연, 이호경, 김민철, 고영중 ( 동아대학교 ) 14:20 ~ 14:40 Annie 임재수 14:40 ~ 15:00 KAISER 함영균, 최동호, 최기선 ( 한국과학기술원 ) 15:00 ~ 15:20 WordAngler 김보겸, 강명윤, 민태홍, 이재성 ( 충북대학교 ) 15:20 ~ 15:40 코너 (KoNER) 신유현, 이상구 ( 서울대학교 ) 시연및 BREAK TIME 15:40 ~ 16:00 12 팀시스템시연및 BREAK TIME 발표 2 부 ( 일반분야 ) 16:00 ~ 16:05 16:05 ~ 16:10 16:10 ~ 16:15 16:15 ~ 16:20 16:20 ~ 16:25 16:25 ~ 16:30 심사회의 16:30 ~ 18:00 심사회의 시상식및폐회식 좌장 차정원교수 단추 (DANCHU) 안재현, 윤정민, 김혜민, 박용신, 배경만, 고영중 ( 동아대학교 ) 한국어세줄요약기 summ4riz3 설진석 ( 연세대학교 ) 지도표시및음성녹음 / 재생기능을가진지역어수집및검색 APP 김푸름, 박소현, 심용석, 오승록, 이상호, 이재람, 안동언 ( 전북대학교 ) 문맥기반실시간한국어문장교정시스템박영근, 최재성, 김재민, 이성동, 이현아 ( 금오공과대학교 ) ESPRESSO TOOL 2016 신창욱, 박태호, 박성재, 박다솔, 신영태, 차정원 ( 창원대학교 ) KOMORAN 3.0 신준수, 이승원 (SHINEWARE) 18:00 ~ 18:30 시상식및폐회식 상기일정은일부변동될수도있음. 사회시상심사평 - 지정분야 / 일반분야팀이경진대회당일불참하면일정조정이됨. 차정원교수정호성과장강승식교수 - 3 -

2016 국어정보처리시스템경진대회 발표자료집 목차 1. 서강알짬개체명인식기 2. 단추 (DANCHU) : NER 3. Annie 4. KAISER 5. WordAngler 6. 코너 (KoNER) 7. 단추 (DANCHU) 8. 한국어세줄요약기 _ summ4riz3. 지도표시및음성녹음 / 재생기능을가진지역어수집및검색 APP' 뭐꼬!?' 10. 문맥기반실시간한국어문장교정시스템 11. ESPRESSO TOOL 2016 12. KOMORAN 3.0 7 1 37 51 57 75 8 10 117 133 141 14-5 -

서강알짬개체명인식기 국립국어원 Ⅰ 서강 알짬 개체명 인식기 이건철, 임지수, 최호정, 권순재, 허윤석, 서정연 서강대학교 - 7 -

서강알짬개체명인식기 례 제 1 장소프트웨어소개 10 1.1 소프트웨어명칭 10 1.2 소프트웨어사용환경 10 1.3 소프트웨어특징 10 제 2 장소프트웨어설치및실행 12 2.1 소프트웨어설치방법 12 2.2 소프트웨어파일구조 12 2.2.1 주요파일설명 12 2.2.2 전체구조 13 2.3 소프트웨어실행방법 13 제 3 장소프트웨어기능 14 3.1 프로그램기능 14 3.2 프로그램기능제약 16 제 4 장기타 18 - -

2016 국어정보처리시스템경진대회 소 소개 1.1 소프트웨어명칭 서강알짬개체명인식기 : 알짬이란여럿가운데가장중요한내용이라는뜻의순우리말로, 문장내에서가장중요한내용을분석하여알려준다는의미를담고있다. 1.2 소프트웨어사용환경 - linux ubuntu 12.04.5 실시간가용 RAM 64Gbyte 이상 - Python 2.7.3 - UTF-8 1.3 소프트웨어특징 서강알짬개체명인식기 는서강대학교자연어처리연구실여름방학인턴쉽프로젝트로서강대학교컴퓨터공학과학부생과석사생이개발한개체명인식기이다. 개체명인식기는어떤문장에서인명, 지명, 기관명같은고유명사개체명을분석하여자동으로찾아주는시스템이다. 개체명은문장에서주어목적어와같이텍스트의의도와관련이깊어, 이를추출하는것은자연어이해에서매우중요한역할을수행한다. 하지만개체명은신조어, 축약어, 방언 ( 사회, 지역 ) 과같은미등록어가많고같은어휘가문맥에따라다른태그로분류되기때문에개체명을학습하기힘들다. 본시스템은다양한자질과알고리즘으로학습한여러학습기를앙상블러닝으로결합하여새로운분류기를구성하였다. 본시스템은 8가지자질과 5가지알고리즘으로 10개의다른분류기를구성하였다. 그리고 MOO 기반의유전자알고리즘으로각분류기의가중치를학습하여, 모델들의가중합으로최종분류기를구축하였다. 이런앙상블러닝을사용하여, 각학습기들은상대적으로분류성능이떨어지는태그를상호보완하게되어전체성능이향상되었다. - 10 -

- 11 - 서강알짬개체명인식기

2016 국어정보처리시스템경진대회 실행 2.1 소프트웨어설치방법 1. cqasys_alzzam.tar.gz 파일압축을해제한다. 2. module.sh 을실행하여필요한라이브러리를설치한다. 2.2 소프트웨어파일구조 2.2.1 주요파일설명 1 실행파일 cqasys_alzzam.py --- 소프트웨어실행파일 2 데이터파일 - /DNER/deep_ner.py --- LSTM-CRF 태거클래스파일 - /CRF/CRF.py --- CRF 태거클래스파일 - /STRUCTURED/STRUCTURED.py --- Structured Perceptron 태거클래스 파일 - /SSVM/SSVM.py --- MMMN 태거클래스파일 - */DATA/*.dat --- 학습된모델 object파일 3 사전파일 - */gazettee.txt --- 개체명사전 - */thres3.txt --- 기분석사전 - tained_weight --- 학습된가중치정보 - 12 -

서강알짬개체명인식기 2.2.2 전체구조 final/ 모음 cqasys_alzzam.py... 실행스크립트 final_classfier.py... 전체분석기코드 DNER/... LSTM-CRF 태거관련소스및모델 CRF/... CRF 태거관련소스및모델모음 STRUCTURED/... Structed Perceptron 태거및모델모음 SSVM/... MMMN 태거및모델모음 DATA/... DBSCAN 클러스터결과및모델모음 2.3 소프트웨어실행 1. cqasys_alzzam.py 스크립트를실행한다. (cqasys_alzzam.py i [ 파일명 ]) 2. result.json 의결과를확인한다. - 13 -

2016 국어정보처리시스템경진대회 기능 3.1 프로그램기능 본시스템은입력에대해분석한내용을토대로 8개의자질과 4개의알고리즘으로구성된 8개된하이브리드모델로서, 개체명을분석하며사용한자질은아래와같다. 1. 어휘자질가. 헝태소어휘정보형태소의어휘정보이다. 해당어휘와앞 뒤어휘 (-2 ~ +2) 를선택적으로자질로사용한다. 나. 형태소길이다. 형태소 prefix, postfix 정보해당형태소의접미음절과접두음절정보이다. 2. 통사자질가. 형태소품사정보형태소의품사정보이다. 해당형태소의앞 뒤품사 (-2 ~ +2) 를선택적으로자질로사용한다. - 14 -

서강알짬개체명인식기 3. 의미자질가. 개체명사전정보대회측에서제공한개체명사전정보나. 기분석사전정보학습데이터에서 3회이상같은태그가부착되는개체집합다. 워드임베딩대회측에서제공한워드임베딩수행결과라. 워드임베딩클러스터워드임베딩데이터를 DBSCAN 알고리즘으로클러스터링한결과 본시스템에서는아래 4가지알고리즘을기반으로다른자질및파라미터로학습한분류기 6개를사용한다. 1. Conditional Random Fields 1 2. Structured Perceptron 2 3. Max Marginal Markov Networks 3 5. Long Short-Term Memory with Conditional Random Fields 4 또한, 위의 8개의분류기들을 NSGA-Ⅱ 알고리즘을사용하여 Recall과 Precision을 Performance Index로 Multi Objective Optimize하여각분류기의가중치를계산한다. 마지막으로, 계산한가중치를사용하여각모델의결과의가중합으로개체명을인식한다. 1 https://python-crfsuite.readthedocs.io/en/latest/ 2 https://github.com/larsmans/seqlearn 3 https://pystruct.github.io/index.html 4 https://github.com/glample/tagger - 15 -

2016 국어정보처리시스템경진대회 3.2 프로그램기능제약 - UTF-8 인코딩환경에서정상적인동작을보장함 - 입 출력양식은주최측에서제공한형식 { "id" : 1, "text" : " 맥스웰방정식 (Maxwell 方程式, ) 은전기와자기의발생, 전기장과자기장, 전하밀도와전류밀도의형성을나타내는 4개의편미분방정식이다.", "morp" : [ {"id" : 0, "lemma" : " 맥스웰 ", "type" : "NNG", "position" : 20}, {"id" : 1, "lemma" : " 방정 ", "type" : "NNG", "position" : 30}, {"id" : 2, "lemma" : " 식 ", "type" : "NNG", "position" : 36}, {"id" : 3, "lemma" : "(", "type" : "SS", "position" : 3}, {"id" : 4, "lemma" : "Maxwell", "type" : "SL", "position" : 40}, {"id" : 5, "lemma" : " 方程式 ", "type" : "SH", "position" : 47}, {"id" : 6, "lemma" : ",", "type" : "SP", "position" : 56}, {"id" : 7, "lemma" : ")", "type" : "SS", "position" : 58}, {"id" : 8, "lemma" : " 은 ", "type" : "JX", "position" : 5}, {"id" :, "lemma" : " 전기 ", "type" : "NNG", "position" : 63}, {"id" : 10, "lemma" : " 와 ", "type" : "JC", "position" : 6}, {"id" : 11, "lemma" : " 자기 ", "type" : "NP", "position" : 73}, {"id" : 12, "lemma" : " 의 ", "type" : "JKG", "position" : 7}, {"id" : 13, "lemma" : " 발생 ", "type" : "NNG", "position" : 83}, {"id" : 14, "lemma" : ",", "type" : "SP", "position" : 8}, {"id" : 15, "lemma" : " 전기 ", "type" : "NNG", "position" : 1}, {"id" : 16, "lemma" : " 장 ", "type" : "XSN", "position" : 7}, {"id" : 17, "lemma" : " 과 ", "type" : "JC", "position" : 100}, {"id" : 18, "lemma" : " 자기 ", "type" : "NNG", "position" : 104}, {"id" : 1, "lemma" : " 장 ", "type" : "XSN", "position" : 110}, {"id" : 20, "lemma" : ",", "type" : "SP", "position" : 113}, {"id" : 21, "lemma" : " 전하 ", "type" : "NNG", "position" : 115}, {"id" : 22, "lemma" : " 밀도 ", "type" : "NNG", "position" : 122}, {"id" : 23, "lemma" : " 와 ", "type" : "JC", "position" : 128}, {"id" : 24, "lemma" : " 전류 ", "type" : "NNG", "position" : 132}, {"id" : 25, "lemma" : " 밀도 ", "type" : "NNG", "position" : 13}, {"id" : 26, "lemma" : " 의 ", "type" : "JKG", "position" : 145}, {"id" : 27, "lemma" : " 형성 ", "type" : "NNG", "position" : 14}, {"id" : 28, "lemma" : " 을 ", "type" : "JKO", "position" : 155}, {"id" : 2, "lemma" : " 나타내 ", "type" : "VV", "position" : 15}, {"id" : 30, "lemma" : " 는 ", "type" : "ETM", "position" : 168}, {"id" : 31, "lemma" : "4", "type" : "SN", "position" : 172}, {"id" : 32, "lemma" : " 개 ", "type" : "NNB", "position" : 173}, {"id" : 33, "lemma" : " 의 ", "type" : "JKG", "position" : 176}, {"id" : 34, "lemma" : " 편미분 ", "type" : "NNG", "position" : 180}, {"id" : 35, "lemma" : " 방정 ", "type" : "NNG", "position" : 10}, {"id" : 36, "lemma" : " 식 ", "type" : "NNG", "position" : 16}, {"id" : 37, "lemma" : " 이 ", "type" : "VCP", "position" : 1}, {"id" : 38, "lemma" : " 다 ", "type" : "EF", "position" : 202}, {"id" : 3, "lemma" : ".", "type" : "SF", "position" : 205} ], - 16 -

서강알짬개체명인식기 }, "word" : [ ], "NE" : [ ], {"id" : 0, "text" : " 맥스웰 ", "type" : "", "begin" : 0, "end" : 0}, {"id" : 1, "text" : " 방정식 (Maxwell 方程式,", "type" : "", "begin" : 1, "end" : 6}, {"id" : 2, "text" : ") 은 ", "type" : "", "begin" : 7, "end" : 8}, {"id" : 3, "text" : " 전기와 ", "type" : "", "begin" :, "end" : 10}, {"id" : 4, "text" : " 자기의 ", "type" : "", "begin" : 11, "end" : 12}, {"id" : 5, "text" : " 발생,", "type" : "", "begin" : 13, "end" : 14}, {"id" : 6, "text" : " 전기장과 ", "type" : "", "begin" : 15, "end" : 17}, {"id" : 7, "text" : " 자기장,", "type" : "", "begin" : 18, "end" : 20}, {"id" : 8, "text" : " 전하 ", "type" : "", "begin" : 21, "end" : 21}, {"id" :, "text" : " 밀도와 ", "type" : "", "begin" : 22, "end" : 23}, {"id" : 10, "text" : " 전류 ", "type" : "", "begin" : 24, "end" : 24}, {"id" : 11, "text" : " 밀도의 ", "type" : "", "begin" : 25, "end" : 26}, {"id" : 12, "text" : " 형성을 ", "type" : "", "begin" : 27, "end" : 28}, {"id" : 13, "text" : " 나타내는 ", "type" : "", "begin" : 2, "end" : 30}, {"id" : 14, "text" : "4개의", "type" : "", "begin" : 31, "end" : 33}, {"id" : 15, "text" : " 편미분 ", "type" : "", "begin" : 34, "end" : 34}, {"id" : 16, "text" : " 방정식이다.", "type" : "", "begin" : 35, "end" : 3} {"id" : 0, "text" : " 맥스웰 ", "type" : "PS_NAME", "begin" : 0, "end" : 0,}, {"id" : 1, "text" : "Maxwell 方程式 ", "type" : "OGG_BUSINESS", "begin" : 4, "end" : 5}, {"id" : 2, "text" : "4개", "type" : "QT_COUNT", "begin" : 31, "end" : 32} - 17 -

2016 국어정보처리시스템경진대회 기타 학습기의성능및결과는아래와같다 (Dev set기준 ). 각학습기의성능에비해단순 Voting으로도성능이상당히향상되는것을볼수있다. 또한 Weighted Voting 결과는 ~ 로이전보다매우높은성능을보이는것을볼수있다. 다만, 이는 dev set에서의결과이므로 training set에서실험을진행할것이다. 모델 성능 LSTM-CRFs_1 82.53 LSTM-CRFs_2 82.01 CRFs_1 82.11 MMMN_1 83.71 MMMN_2 81.7 Structed_Perceptron_1 83.42 Voting 85.6 Weighted Voting 88.xx - 18 -

단추 (DANCHU) : NER 국립국어원 Ⅰ 단추 (DANCHU) : NER 유홍연, 이호경, 김민철, 고영중 동아대학교 - 1 -

단추 (DANCHU) : NER 례 제 1 장소프트웨어소개 22 1.1 소프트웨어명칭 22 1.2 소프트웨어사용환경 22 1.3 소프트웨어특징 22 제 2 장소프트웨어설치및실행 24 2.1 소프트웨어설치방법 24 2.2 소프트웨어파일구조 25 2.2.1 주요파일설명 25 2.2.2 전체구조 26 2.3 소프트웨어실행방법 26 제 3 장소프트웨어기능 27 3.1 bi-lstm-crfs 모델 27 3.1.1 Recurrent Neural Networks(RNN) 27 3.1.2 Long Short-term Memory(LSTM) 28 3.1.3 bidirectional LSTM CRFs(bi-LSTM-CRFs) 2 3.2 단어표상확장 2 3.2.1 단어임베딩벡터 2 3.2.2 품사자질벡터 30 3.2.3 음절기반단어임베딩벡터 30 3.2.4 개체명사전자질벡터 32 3.3 전체구성도 33 제 4 장실험 34 4.1 실험환경 34 4.2 단어임베딩벡터실험 34 4.3 품사자질벡터실험 34 4.4 음절기반단어임베딩벡터실험 35 4.5 개체명사전자질벡터실험 35 4.6 최종실험결과비교 36 제 5 장참고문헌 36-21 -

2016 국어정보처리시스템경진대회 소 소개 1.1 소프트웨어명칭 Ÿ 단추 (DANCHU) : NER 동아대학교지능형시스템실험실의한국어언어분석기통합시스템인단추 (DANCHU) 의두번째모델인개체명인식기를말한다. 1.2 소프트웨어사용환경 Ÿ 운영체제 : Ubuntu 16.04 LTS 64bit Ÿ CPU : i5-460 3.50GHz Ÿ 메모리 : 8GB Ÿ 사용언어 : python 2.7.12 Ÿ 라이브러리 : TensorFlow 0.1.rc0 이상 ( TensorFlow 0.1 rc0 이하의버전에서는본시스템이동작하지않을수있습니다.) Ÿ 실행환경 : 터미널 Ÿ 텍스트인코딩 : UTF-8 1.3 소프트웨어특징 개체명 (Named Entity) 이란문서내에서인명, 기관명, 지명, 시간, 날짜등고유한의미를가지는단어를말한다. 이러한개체명을문서로부터추출하여개체명의종류를결정하는것이개체명인식 (Named Entity Recognition) 이다. 최근개체명인식연구에서는순차레이블링 (Sequence Labeling) 에특화된 Long Short-Term Memory(LSTM) 기반의 bidirectional LSTM Conditional Random Fields(bi-LSTM-CRFs) 모델이가장우수한성능을보이고있다. LSTM 기반의모델은각단어를잘표현하는단어임베딩벡터 (word embedding vector) 를입력으로받기때문에, 단어표상 (word representation) 에의존적이다. 따라서이러한단어표상을잘만들기위한많은연구들이진행되고있다. 대표적인방법으로는대량의말뭉치를이용하여사전학습된 (pretrained) 단어임베딩벡터를활용하거나, 단어를구성하고있는문자들의임베딩벡터로부터단어임베딩벡터를유도해내는방법들이연구되고있다. - 22 -

단추 (DANCHU) : NER 본시스템에서는한국어개체명인식을위하여 bi-lstm-crfs를이용하고, 그입력으로사용되는단어표상을확장하기위해사전학습된단어임베딩벡터, 품사자질벡터, 개체명사전자질벡터, 그리고음절기반에서확장된단어임베딩벡터를사용한다. 음절단위에서단어로확장하기위한음절임베딩벡터입력으로는학습데이터에서나온개체명분포정보를벡터로만들어사용하였다. - 23 -

2016 국어정보처리시스템경진대회 실행 2.1 소프트웨어설치방법 Ÿ TensorFlow 설치 (CPU 사용버전 ) - pip Installation - 우분투터미널창에서아래와같은명령어수행 - sudo apt-get install python-pip python-dev 예 ) - TensorFlow URL 확인 ( 버전확인필수 ) 예 ) - sudo pip install --upgrade $URL 예 ) - 동작확인 - python 을통해서확인 - import tensorflow as tf 을통해서확인 예 ) - TensorFlow 업그레이드 ( 기존의 TensorFlow가 0.7.1 이상인경우 ) - sudo pip install upgrade $URL - 24 -

단추 (DANCHU) : NER ( 기존의버전이 0.7.1 미만인경우에는 pip uninstall tensorflow 를통해 삭제후원하는버전의 TesorFlow 재설치 ) 예 ) 2.2 소프트웨어파일구조 2.2.1 주요파일설명 1 실행파일 - 실행파일 : klp2016_islab/bi_lstm_crf/test.pyc 2 데이터파일 - 워드임베딩 : klp2016_islab/word_embeddings/wikicorpus_word2vector.hr - 음절임베딩 : klp2016_islab/word_embeddings/wikicorpus_word2vector_uni_avg.hr - 음절분포임베딩 : klp2016_islab/word_embeddings/bi_ne_norm_not_soft.txt 3 사전파일 - 개체명사전폴더 : klp2016_islab/distribution2016/gazet/ 4 결과파일 - 결과 json 파일 : klp2016_islab/result/result.json - 25 -

2016 국어정보처리시스템경진대회 2.2.2 전체구조 klp2016_islab/... 시스템폴더 bi_lstm_crf/... 소스파일폴더 cqasys_test.pyc... 시스템실행파일 corpus/... 말뭉치폴더 distribution2016/... json관련폴더 ( 경진대회배포 ) result/... 최종결과폴더 (result.json) word_embeddings/... 워드임베딩관련폴더 2.3 소프트웨어실행 Ÿ 터미널에서 /klp2016_islab/bi_lstm_crf로이동 Ÿ python cqasys_test.pyc --test test.json_path 명령어로실행 python test.pyc로시스템동작 -- test 옵션, 테스트데이터 json의경로 test.json_path 경진대회에서제공하는테스트데이터 json의경로 Ÿ /klp2016_islab/bi-lstm-crf/result/result.json 으로결과확인 - 26 -

단추 (DANCHU) : NER 기능 이장에서는한국어개체명인식을위해본시스템에서사용한학습모델과단어표상확장방법에대해자세히설명하고, 그에따른타당성을입증하기위해제 4 장에서실험결과를보인다. 3.1 bi-lstm-crfs 모델 3.1.1 Recurrent Neural Networks(RNN) 그림 18. Recurrent Neural Networks 모델 그림 1 에서보이는것처럼 RNN 은단어열 을입력계층에서 입력으로받고, 그입력은은닉계층 을거쳐입력을잘표현하는 벡터 로 출력계층에서출력된다. RNN 구조를아래와같은 식으로정의할수있고, 아래식에서 는각계층의 weight 행렬이다. RNN은위의수식과그림 1에서알수있듯이이전상태를다음상태로계속전달하는모델이다. 따라서이론상으로는이전상태를기억하여장기의존성 (long-range dependencies) 을다룰수있다. 하지만실제적으로위치상멀리있는정보를많이잃어버리는문제인그래디언트소멸문제 (Vanishing gradient problem) 가존재하기때문에장기의존성을유지할수없는문제점이있다. - 27 -

2016 국어정보처리시스템경진대회 3.1.2 Long Short-term Memory(LSTM) LSTM은 RNN의그래디언트소멸문제를해결하여장기의존성을잘학습할수있는특별한모델이다. 이문제를해결하기위하여 LSTM에서는 RNN의은닉계층노드에 3개의 gate(input, output, forget) 와 1개의 memory cell을이용한다. LSTM의 memory cell은전체적인상태를기억하여다음상태로전달하는역할을한다. forget gate를이용하여 cell의상태에서어떤정보를제거할지결정하고, input gate로 cell에서어떤정보를갱신할지결정한다. 마지막으로 output gate를이용하여 cell의어떤정보를전달할지결정하여장기의존성을유지한다. 본시스템에서는 forget gate를사용하지않았다. LSTM 구조의전체적인수식은다음과같다. 위식에서 는각각 input gate, memory cell, output gate, hidden state 이다. 그리고 는 element-wise product 이며, 는 weight 행렬을 는 bias 를나타낸다. - 28 -

단추 (DANCHU) : NER 3.1.3 bidirectional LSTM CRFs(bi-LSTM-CRFs) 그림 1. bidirectional LSTM CRFs 모델 bi-lstm-crfs는그림 2에서보이는것과같이 LSTM에입력문자열을양방향으로받아서각단어별로은닉계층의결과를얻고, 그결과간의의존성을추가한모델이다. 본시스템에서는 bi-lstm-crfs를이용하여한국어개체명인식을한다. 3.2 단어표상확장 LSTM 기반의모델은각단어의임베딩벡터를입력으로받기때문에단어표상에의존적이다. 따라서그림 3과같이사전학습된단어임베딩벡터, 품사자질벡터, 음절기반단어임베딩벡터, 개체명사전자질벡터를사용하여단어표상을확장한다. 그림 20. 확장된단어표상 - 2 -

2016 국어정보처리시스템경진대회 3.2.1 단어임베딩벡터 대부분의개체명은미등록어이기때문에학습데이터에나오지않은개체명을잘분류하는것은한계가있다. 따라서개체명인식에서는대량의말뭉치에서사전학습된단어임베딩벡터를활용하여단어의집합을확장하는것이중요하다. 본시스템에서는대회주최측에서제공한사전학습된단어임베딩벡터를사용하였다. 제공된사전학습된단어임베딩벡터의차원은 50이며, 단어의단위는형태소와품사태그가결합된형태이다. 예를들면아래와같다. Ÿ 단어 : 타자, 는, 이대호 Ÿ 임베딩단위 : 타자 /NNG, 는 /JX, 이대호 /NNP 3.2.2 품사자질벡터 개체명인식에서는품사정보또한중요한역할을하기때문에품사자질을활용하는것이중요하다. 본시스템에서는현재품사정보를표현하기위하여 46차원으로이루어진 one-hot 벡터를사용하여단어표상을확장하였다. 현재품사가 NNP 일때 one-hot 벡터의예를들면표 1과같다. 표 1. 품사 NNP 에대한 one-hot 벡터 NNG NNP NNB VV... JKS JKO JKB SN 0 1 0 0... 0 0 0 0 3.2.3 음절기반단어임베딩벡터 음절기반단어임베딩벡터란각단어를표현하기위해음절단위의임베딩벡터를기반으로단어단위의임베딩벡터로확장한벡터를말한다. 단어는음절의시퀀스이기때문에음절단위임베딩벡터의확장은단어를표현하기에적합하다. 본시스템에서는단어를확장하기위하여그림 4에서보이는것과같이 bidirectional LSTM을이용하고, forward의마지막상태와 backward의마지막상태를결합하여단어단위임베딩벡터로사용하였다. - 30 -

단추 (DANCHU) : NER 그림 21. 음절기반단어임베딩벡터를위한 bi-lstm 입력되는음절임베딩벡터로는음절별로각개체명태그별분포를벡터로만들어서사용하였다. 그결과로만들어진벡터는 11차원을가진다 ( 개체명태그 5개 * BI정보 2개 + O 태그 1개 = 11). 예를들어 타자 /O 는 /O 단연 /O 이대호 /B-PS 문장에서각음절에대응되는음절임베딩벡터는표 4과같다. 표 4의값들은지면상반올림하여표기하였다. 타 자 는 단 연 0.1 0 이 0.1 4 대 호 0.1 1 표 4. 음절단위개체명분포벡터 B I PS OG LC DT TI PS OG LC DT TI 0.1 1 8 8 8 0.1 1 0.1 0 0.1 0 0.1 0 8 O 0.10 0.1 0 8 8-31 -

2016 국어정보처리시스템경진대회 3.2.4 개체명사전자질벡터본시스템에서는개체명사전정보를자질로사용하여단어표상을확장한다. 단어표상을확장하기위한개체명사전은대회주최측으로부터전달받은사전을사용하였고, 학습데이터에서출현한개체명들을추가로사용하여개체명사전을확장하였다. 또한개체명사전자질벡터의차원으로는개체명카테고리수인 5차원을사용하였다. 개체명사전정보를자질벡터로표현하기위하여현재단어가개체명사전에있으면 1 없으면 0으로각카테고리별로표현하였다. 개체명사전이표 5와같을때, 단어 이대호 의개체명사전자질벡터의예는표 6과같다. 표 5. 개체명사전예 개체명이민호이대호... 6개월 6년간... 개체명태그 PS PS... DT DT... 표 6. 이대호 의사전자질벡터 PS LC OG TI DT 1 0 0 0 0-32 -

단추 (DANCHU) : NER 3.3 전체구성도 본시스템에서제안하는한국어개체명인식에사용되는 bi-lstm-crfs 의 전체구성도는그림 5 와같다. 그림 22. 확장된단어표상을이용한전체구성도 - 33 -

2016 국어정보처리시스템경진대회 실험 4.1 실험환경 한국어개체명인식에서단어표상확장방법의성능평가를위해 bi-lstm-crfs를 TensorFlow로구현하여사용하였다. 또한개체명인식모델학습을위해국어경진대회주최측에서배포한학습데이터 3,555 문장과개발데이터 501 문장을사용하였다. 4.2 단어임베딩벡터실험 단어임베딩벡터실험에서는단어의차원을 50으로하였고, 제공된사전학습된단어임베딩벡터를사용하였다. 단어임베딩벡터를랜덤으로초기화한실험보다사전학습된임베딩벡터를사용한실험의성능이 5% 높았다. 표 7. 단어임베딩벡터실험결과 (F1) Dev random 71.0 pretrain 76.0 4.3 품사자질벡터실험 품사자질벡터실험에서는품사자질벡터를 one-hot 벡터로추가하는것이좋은자질이될수있음을보인다. 사전학습된단어임베딩벡터를단독으로사용한실험대비품사자질벡터를추가한실험이 2.3% 증가하였다. 표 8. 품사자질벡터실험결과 (F1) Dev pretrain 76.0 pretrain + pos 7.02-34 -

단추 (DANCHU) : NER 4.4 음절기반단어임베딩벡터실험 음절기반단어임베딩벡터실험에서는음절입력을랜덤벡터, 사전학습된음절임베딩벡터, 그리고사전학습된음절임베딩벡터와음절단위개체명분포임베딩벡터를결합한벡터로실험을진행하였다. 랜덤벡터와사전학습된음절임베딩벡터는 50차원을사용하였고, 음절단위개체명분포임베딩벡터는 11차원을사용하였다. 사전학습된음절임베딩벡터로는대회주최측으로부터제공받은사전학습된형태소단위단어임베딩벡터중 1음절인경우를음절단위임베딩벡터로보고매칭하여사용하였다. 그결과랜덤으로입력한것보다사전학습된음절임베딩벡터와음절단위개체명분포벡터를결합한성능이 0.82% 향상하였고, 사전학습임베딩벡터와품사자질벡터만사용한실험보다 0.7% 증가하였다. 표. 음절기반단어임베딩벡터실험결과 (F1) Dev pretrain + pos 7.02 pretrain + pos + charlstm(random) 7.17 pretrain + pos + charlstm(pretrain) 7.44 pretrain + pos + charlstm(pretrain + distribution) 7. 4.5 개체명사전자질벡터실험개체명사전자질벡터실험에서는개체명사전의정보를활용하여자질벡터로추가하는것이좋은자질임을보인다. 개체명사전자질벡터를추가한결과음절기반단어임베딩벡터실험보다 2.76% 증가한 82.75% 로가장높은성능을보였다. 표 10. 개체명사전자질벡터실험결과 (F1) Dev pretrain + pos + charlstm(pretrain + distribution) 7. pretrain + pos + charlstm(pretrain + distribution) + NE 82.75 dictionary - 35 -

2016 국어정보처리시스템경진대회 4.6 최종실험결과비교최종실험결과로는총네종류의실험중가장높은성능을모아서비교한다. 결과적으로사전학습된단어임베딩벡터만을사용한실험대비품사자질벡터와음절기반단어임베딩벡터, 그리고개체명사전자질벡터를추가한실험의성능이 6.66% 증가하였다. 표 11. 최종실험결과비교 (F1) Dev pretrain 76.0 pretrain + pos 7.02 pretrain + pos + charlstm(pretrain + distribution) 7. pretrain + pos + charlstm(pretrain + distribution) + NE dictionary 82.75 참고문헌 1. 유홍연, 고영중, 품사임베딩과음절단위개체명분포기반의 Bidirectional LSTM CRFs 를이용한개체명인식, 2016 HCLT 심사발표예정 - 36 -

Annie 국립국어원 Ⅰ Annie 임재수 개인참가 - 37 -

Annie 례 제 1 장소프트웨어소개 40 1.1 소프트웨어명칭 40 1.2 소프트웨어사용환경 40 1.3 소프트웨어특징 41 제 2 장소프트웨어설치및실행 42 2.1 소프트웨어설치방법 42 2.1.1 다운로드에의한방법 42 2.1.2 git clone에의한방법 42 2.2 소프트웨어파일구조 42 2.2.1 주요파일설명 42 2.2.2 전체구조 43 2.3 소프트웨어실행방법 44 제 3 장소프트웨어기능 46 3.1 프로그램기능 46 3.1.1 성능평가 46 3.1.2 모델학습 46 3.2 프로그램기능제약 47 제 4 장기타 48 4.1 CRF 자질 48 4.2 SVM 자질 48 4.3 성능평가 48-3 -

2016 국어정보처리시스템경진대회 소 소개 1.1 소프트웨어명칭 Ÿ Annie 는개체명을뜻하는 Named Entity, 줄여서 NE라고부르는발음유사성을이용한일종의유희적이름입니다. Ÿ ( 제옆자리에앉아있는사람의이름이라고절대밝힐수없습니다.) Ÿ 본소프트웨어를개발하게된동기는오픈소스시대에걸맞게기존의소프트웨어를조합하여빠르게아이디어를실현하는것이가능한지를실험해보는것이었습니다. 1.2 소프트웨어사용환경 Ÿ 지원 OS: Linux, Mac OS Ÿ 권장메모리 : 4GB 이상 Ÿ 사용언어 : Python Ÿ 실행환경 : Python 2.6 혹은 2.7 Ÿ 텍스트인코딩 : UTF-8 Ÿ 의존패키지 - CRFsuite author: Naoaki Okazaki title: CRFsuite: a fast implementation of Conditional Random Fields (CRFs) year: 2007 url: http://www.chokkan.org/software/crfsuite/ - libsvm author: Chang, Chih-Chung and Lin, Chih-Jen title: LIBSVM: A library for support vector machines journal: ACM Transactions on Intelligent Systems and Technology volume: 2 issue: 3 pages: 27:1--27:27 year: 2011 url: http://www.csie.ntu.edu.tw/~cjlin/libsvm - scikit-learn title: Machine Learning in Python url: http://scikit-learn.org - 40 -

Annie 1.3 소프트웨어특징 Ÿ 본소프트웨어는순수하게 Python 언어로구현되어있어구현이간단하고이해하기쉬워수정이용이합니다. Ÿ Python 프로그램의소스코드는 PEP8 1 스타일가이드를준수합니다. Ÿ 또한처음개발을시작할때부터 GitHub에소스및개발과정 ( 이슈 ) 이공개되어누구나재현해볼수있습니다. 1 https://www.python.org/dev/peps/pep-0008/ - 41 -

2016 국어정보처리시스템경진대회 실행 2.1 소프트웨어설치방법 2.1.1 다운로드에의한방법 Ÿ 배포페이지 1 에서원하는버전을다운로드받습니다. $ wget https://github.com/krikit/annie/archive/0.5.tar.gz Ÿ 압축을풀면 annie-$version 디렉토리가생성됩니다. ( 문서를작성하는 시점의최신버전은 0.5 입니다.) $ tar -xzf 0.5.tar.gz 2.1.2 git clone 에의한방법 Ÿ 최신소스코드를설치하고자한다면다음과같이 `git clone` 명령을수행 합니다. $ git clone https://github.com/krikit/annie.git 2.2 소프트웨어파일구조 2.2.1 주요파일설명 Ÿ JSON 포맷의입력파일을받아들여역시 JSON 포맷으로개체명을인식하는일련의과정을한번에진행하는스크립트와, 이스크립트의실행에필요한디렉토리는다음과같습니다. - cqasys_annie.bash: 일괄실행스크립트 - bin/: 각종단계별실행스크립트 / 바이너리프로그램 json2feat.py: JSON 포맷으로부터 CRF 자질을추출하는프로그램 crfsuite.linux: CRFsuite 태깅및학습을위한실행바이너리 1 https://github.com/krikit/annie/releases - 42 -

Annie iob2json.py: IBO2 태깅된결과로부터 JSON 포맷을생성하는프로그램 tag_ps.py: 3 음절인명을추가적으로태깅하는프로그램 - env/: Python 의존패키지 venv_annie.tar.gz: Python virtualenv 환경 (Cent OS 6.6 x64) - lib/: 실행스크립트가참조하는라이브러리 - rsc/: 실행에필요한리소스 crf.model.gz: CRF 모델 최초실행시 crf.model 파일로압축해제 gazette.annie: train 코퍼스와기배포된 gazette 를병합해구축한개체명사전 nusvc_model.pkl: SVM 모델파일 word2vec.pkl.gz: 기배포된 wikicorpus_word2vector.hr 파일을가공한파일 최초실행시 word2vec.pkl 파일로압축해제 2.2.2 전체구조 annie/ bin/ baseline.py build_gazette.py crfsuite.darwin crfsuite.linux eval.py index_word2vec.py iob2json.py json2feat.py tag_ps.py env/ requirements.txt venv_annie.tar.gz lib/ feature.py gazette.py getopts.py - 43 -

2016 국어정보처리시스템경진대회 sentence.py word2vec.py notebook/ NNP+NNG_2+3.ipynb README.md ps_classifier.ipynb ps_histogram.ipynb rsc/ crf.model.gz gazette.annie nusvc_model.pkl word2vec.pkl.gz README.md cqasys_annie.bash user_manual.md 2.3 소프트웨어실행방법 Ÿ 아래와같이스크립트를실행합니다. $./cqasys_annie.bash -i dev.json 0) setting environments 1) convert JSON input to CRF feature 2) tag with CRF model 3) convert IOB2 to JSON WARNING:root:I- category is different from B- WARNING:root:I- category is different from B- WARNING:root:I- category is different from B- 4) tag PS NEs - 44 -

Annie Ÿ 출력파일을따로지정하지않으면 `result.json` 파일이출력됩니다. Ÿ `cqasys_annie.bash` 스크립트의사용법은아래와같습니다. $./cqasys_annie.bash --help Usage: cqasys_annie.bash [options] Options: -h, --help show this help message and exit -i FILE input file --rsc-dir=dir resource dir <default:./rsc> --output=file output file <default: result.json> Ÿ 스크립트내부적으로다음절차에따라진행됩니다. 1. python 의존패키지 ( 가상환경 ) 를 `/tmp/venv_annie` 에압축을풉니다. ( 최초에한번만수행됩니다.) 2. JSON 입력파일로부터 CRF 자질을추출합니다. 3. CRFsuite 실행파일과 CRF 모델을이용하여개체명인식을수행합니다. 4. 개체명을태깅한 IOB2 출력과입력 JSON 파일을이용해출력형태를 JSON 포맷으로만듭니다. 5. scikit-learn 패키지와 SVM 모델을이용해 3 음절인명을추가로태깅합니다. - 45 -

기능 3.1 프로그램기능 Ÿ 이하 Python 프로그램을개별적으로실행하려면먼저다음과같이환경 변수를지정해라이브러리의위치를설정해줍니다. $ export PYTHONPATH=`pwd`/lib 3.1.1 성능평가 Ÿ 시스템에의해자동으로태깅한 JSON 파일과정답 JSON 파일을비교하여 다음과같이 precision/recall 을측정할수있습니다. $ bin/eval.py -g dev.json --input=result.json 3.1.2 모델학습 Ÿ 기배포된 `gazzete` 파일과 `train.json` 파일을병합해새로운사전파일을 생성합니다. $ bin/build_gazette.py -g gazette -c train.json --output=./rsc/gazette.annie Ÿ `train.json` 파일을이용해 CRF 모델학습을위한자질포맷으로출력합니다. $ bin/json2feat.py -g./rsc/gazzete.annie --input=train.json --output=train.crffeat Ÿ 자질로표현된파일을이용해 CRF 모델을학습합니다. $ bin/crfsuite.`uname` learn -m./rsc/crf.model train.crffeat - 46 -

Annie Ÿ 기배포된 word2vec 파일 `wikicorpus_word2vector.hr` 를인덱싱합니다. $ bin/index_word2vec.py -o./rsc/wod2vec.pkl --input=wikicorpus_word2vector.hr Ÿ scikit-learn 사용을위해아래패키지를설치합니다. scikit-learn: v0.17.1 numpy: v1.6.1 scipy: v0..0 Ÿ Python 패키지설치프로그램인 `pip`를이용해아래와같이한번에설치합니다. $ pip install -r env/requirements.txt Ÿ 혹은 `virtualenv` 가설치되어있는 Cent OS 6.6 x86 리눅스시스템에서는 아래와같이압축을풀고가상환경에진입합니다. $ tar -C /tmp -xzf /path/to/annie/env/venv_annie.tar.gz $ source /tmp/venv_annie/bin/activate Ÿ scikit-learn 패키지가설치되었다면, 마지막으로 `notebook/ps_classifier.ipynb` 파일을 Jupyter Notebook 1 을이용해실행합니다. `rsc/` 디렉토리아래 SVM 모델파일 `nusvc_model.pkl` 이생성됩니다. 3.2 프로그램기능제약 Ÿ 본프로그램은 Cent OS 6.6 x64 리눅스환경에맞춰져있습니다. 1 http://jupyter.org/ - 47 -

2016 국어정보처리시스템경진대회 기타 4.1 CRF 자질 Ÿ CRF 학습을위해 -2 ~ +2 위치의 5개형태소를기반으로아래의자질을사용했습니다. - lemma, lemma bigram - pos tag, tag bigram, tag trigran - gazzete 사전매칭 IOB2 태그및그 bigram, trigram - 1, 2음절 prefix/suffix - 형태소의길이는단독이아니라아래의조합만사용했습니다. gazette 사전매칭 + 길이 1, 2음절 prefix/suffix + 길이 - lexical form(pattern) 한글 -> ' 가 ', 한자 -> ' 漢 ', 영문 -> 'A', 숫자 -> '0', 기호 -> '.' - begin/end of sentence - begin/middle/end of word( 어절 ) - 이전어절의마지막형태소, 다음어절의첫형태소및그결합 4.2 SVM 자질 Ÿ CRF 학습후인명의재현율이다소떨어지는데착안하여 3음절 NNP 품사를갖는단일형태소에대해별도의인명분류기를학습했습니다. Ÿ SVM 학습을위해 -2 ~ +2 위치의기배포된형태소 embedding 벡터 (50 x 5 = 250차원 ) 를사용했습니다. 4.3 성능평가 Ÿ `train.json` 파일을이용해학습한후 `dev.json` 파일에측정한최종성능은 아래와같습니다. ======== DT ======== # of NEs in gold standard: 316 # of NEs in test file : 304 # of NEs in both(matched): 276 Precision: 7 Recall: 0.8734 F1-score: 0.803-48 -

Annie ======== LC ======== # of NEs in gold standard: 238 # of NEs in test file : 285 # of NEs in both(matched): 216 Precision: 0.757 Recall: 76 F1-score: 0.8260 ======== OG ======== # of NEs in gold standard: 412 # of NEs in test file : 327 # of NEs in both(matched): 285 Precision: 0.8716 Recall: 0.617 F1-score: 0.7713 ======== PS ======== # of NEs in gold standard: 581 # of NEs in test file : 502 # of NEs in both(matched): 463 Precision: 0.223 Recall: 0.76 F1-score: 0.8550 ======== TI ======== # of NEs in gold standard: 42 # of NEs in test file : 42 # of NEs in both(matched): 38 Precision: 48 Recall: 48 F1-score: 48 ======== TOTAL ======== # of NEs in gold standard: 158 # of NEs in test file : 1460 # of NEs in both(matched): 1278 Precision: 0.8753 Recall: 0.8043 F1-score: 0.8383-4 -

KAISER 국립국어원 Ⅰ KAISER 함영균, 최동호, 최기선 한국과학기술원 - 51 -

KAISER 례 제 1 장소프트웨어소개 54 1.1 소프트웨어명칭 54 1.2 소프트웨어사용환경 54 1.3 소프트웨어특징 54 제 2 장소프트웨어설치및실행 55 2.1 소프트웨어설치방법 55 2.2 소프트웨어파일구조 55 2.2.1 주요파일설명 55 2.2.2 전체구조 55 2.3 소프트웨어실행방법 56 제 3 장소프트웨어기능 56 3.1 프로그램기능 56 3.2 프로그램기능제약 56-53 -

2016 국어정보처리시스템경진대회 소 소개 1.1 소프트웨어명칭 KAISER (KAIST Sensitive NER tagger) 1.2 소프트웨어사용환경 - Ubuntu 14.04 이상 - 2GB ram - Python - 실행환경 : 리눅스서버환경 - 텍스트인코딩 : utf-8 1.3 소프트웨어특징 현존하는개체명인식시스템들은전문가들의수작업특질과지식에의해어노테이션으로구축된작은규모의지도학습데이터를학습데이터로사용한다. 이러한개체명인식기의성능은학습데이터의양, 언어적특질, 그리고개체명사전에의해서결정되는것으로알려져있다. 영어의경우에는오랜시간다양한학술대회등을통하여양질의학습데이터가공개되어있으며, 또한영어의언어적특질 ( 대문자로시작, 관사등 ) 및개체명사전에의해상당히많은성능향상이이루어지고있다. 한국어의경우에는영어와다른언어적특질을갖고있어위와같은방법론을적용하기어려우며, 다른언어권에비해공개되어있는학습데이터및개체명사전이부족한것이사실이다. 본 KAISER 시스템은이러한문제를해결하기위해다음과같은방법을사용하였다. 첫째, 개체명학습데이터에부착된개체명태그이외에도, 유의어들에대한동일한개념태그를부착하였다. 이를위해, 한국어워드임베딩단어들을클러스터링하여, 유의어의경우동일한아이디값을갖도록하였고, 이를기계학습의특질로사용하였다. 둘째, 개체명사전에대한문자열매칭이아닌, 워드임베딩벡터간의유사도계산을통해개체명사전의적용범위를확장시켰다. 이를통해, 적은리소스를사용하는한국어개체명인식시스템의성능을전반적으로향상시킬수있을것으로기대한다. - 54 -

KAISER 실행 2.1 소프트웨어설치방법 1. KAISER.tar.gz 파일의압축을푼다. 2. 폴더내에있는 CRF++-0.58.tar.gz 파일의압축을푼다. 경로를지정하는경우, 문제가생길수있다. 3. 압축을풀고생긴 CRF++-0.58폴더로이동해서다음을입력한다 : a. %./configure b. % make c. % su d. # make install 2.2 소프트웨어파일구조 2.2.1 주요파일설명 1 실행파일 KAISER.sh --- shell script based 실행파일. 사용법 :./KAISER.sh./training_data/dev.txt./output.txt 와같이./KAISER.sh [ 인풋 ] [ 아웃풋 ] 의형식으로사용가능. 2 데이터파일./lib/ --- 클러스터변환파일, 학습모델, word2vector 데이터등. 3 사전파일 /lib/gazette --- 주어진사전파일 2.2.2 전체구조 KAISER/ word2vec/... src/... lib/... training_data/... CRF++-0.58.tar.gz... word2vec 파일폴더소스파일폴더 resources 폴더 sample files(optional) CRF++ 프로그램압축파일 - 55 -

2016 국어정보처리시스템경진대회 2.3 소프트웨어실행 KAISER.sh --- shell script based 실행파일. 사용법 :./KAISER.sh./training_data/dev.txt./output.txt 위와같이./KAISER.sh [ 인풋 ] [ 아웃풋 ] 의형식으로사용가능. 기능 3.1 프로그램기능 Ÿ 개체명클러스터링기능본시스템은 nominal-feature CRF 기계학습을사용하였기에, 단어의워드임베딩의실제벡터값을입력으로사용하지않았다. 그러나유의어들에대해동일한 nominal-feature를제공하기위해워드임베딩데이터를클러스터링하여고유값을태깅하였고, 해당모듈은소프트웨어에포함되어있다. Ÿ 개체명유의어탐색기능본시스템은사용하는개체명사전의양이적다는점에착안, 개체명사전에대한문자열매칭방법이아닌, 단어와개체명사전단어와의워드임베딩의코사인유사도방식을적용하였다. 3.2 프로그램기능제약 - 입력형식 : [word] [tag] - 개체명사전의형식 : [word] [tag] - 56 -

WordAngler 국립국어원 Ⅰ WordAngler 김보겸, 강명윤, 민태홍, 이재성 충북대학교 - 57 -

WordAngler 례 제 1 장소프트웨어소개 60 1.1 소프트웨어명칭 60 1.2 소프트웨어사용환경 60 1.3 소프트웨어특징 60 제 2 장소프트웨어설치및실행 62 2.1 소프트웨어설치방법 60 2.2 소프트웨어파일구조 60 2.2.1 주요파일설명 60 2.2.2 전체구조 63 2.3 소프트웨어실행방법 64 제 3 장소프트웨어기능 65 3.1 프로그램기능 65 3.2 프로그램기능제약 67 제 4 장기타 68 4.1 시스템성능 68 4.2 프로그램수행과정 6-5 -

2016 국어정보처리시스템경진대회 소 소개 1.1 소프트웨어명칭 본소프트웨어는 2016 국어정보처리시스템경진대회 의지정분야인 개체명인식시스템 개발에참가하는소프트웨어로, 기계학습모델인 Conditional Random Fields (CRFs) 를사용하여개체명을자동으로추출하는프로그램이다. 프로그램명인 WordAngler 는단어를의미하는 word 와낚시꾼을의미하는단어인 angler 의합성어로, 주어진문장에서적절한개체명단어들을찾아낚아올리는프로그램 이라는의미로사용하였다. 1.2 소프트웨어사용환경 지원 OS 권장메모리 사용언어 Windows(7, 8, 10), Linux ubuntu 1GB C, C++ 실행환경 g++ 4.8.1, visual studio 2012, 2013 텍스트인코딩 UTF-8 open library jsoncpp 4.8, CRFsuite 0.12 < 표 1> 소프트웨어사용환경 1.3 소프트웨어특징 본소프트웨어는 CRFsuite 오픈소스라이브러리를사용하여구축된기계학습기반의개체명인식 / 추출프로그램이다. C++ 클래스기반으로작성하여, 프로그램의확장이매우용이하며, 현재는경진대회의시스템제약사항으로인해사용하고있지는않지만, 사용자사전을활용할수있도록구조를설계하여, 향후모듈의성능을쉽게개선할수있도록하였다. 학습데이터로사용가능한자질값은형태소어휘및품사, 어절정보와 word2vec을사용한단어벡터로매우제한이되어있어, 기계학습을활용하기가쉽지않지만, 본프로그램에서는 word2vec의단 - 60 -

WordAngler 어벡터를 n개의클래스로분류하여자질로사용하거나, 단어벡터의유사도점수를활용하여, 유사어휘정보를자질로사용하는등, 모듈의성능을높일수있는유용한자질값을새롭게개발하여사용하였다. 만약의존구문분석, WordNet 등의어휘자원을활용한다면더욱성능을높일수있을것으로기대한다. 자세한기능및수행과정은 3장과 4장에서단계별로설명한다. - 61 -

2016 국어정보처리시스템경진대회 실행 2.1 소프트웨어설치방법 1) klpexpo_lake.tar.gz 파일압축해제 > tar zxvf klpexpo_lake.tar.gz 2) klpexpo_lake/compile/ 폴더에서 make 수행 ( 실행파일컴파일 ) 3) klpexpo_lake/test/ 폴더에서 Test.sh 수행 ( 실행 ) 2.2 소프트웨어파일구조 2.2.1 주요파일설명 1 실행파일 klpexpo_lake/test/bin/ - LearnData2CoNLL.run: 학습데이터 (train.json) 를 CoNLL 포맷으로변경 - CoNLL2CRFsuite.run: 생성된 CoNLL 데이터와 CRF에서사용할자질값설정파일 (FeatureTemplate.txt) 을읽어, CRFsuite의학습데이터생성 - crfsuite: CRFsuite 학습을위한프로그램 - Kmeans4WordVectors.run: 배포된 word2vec 데이터파일 (wikicorpus_word2vector.hr) 을 k-means 알고리즘을사용하여 n개의 class로분류하는프로그램 - cqasys_wordangler.run : 수행파일 (dev.json) 을입력받아개체명을찾은후출력하는메인프로그램 2 데이터파일 klpexpo_lake/test/learndata - FeatureTemplate.txt: CRFsuite에서사용할자질값설정파일 - train.300.crfsuite.model: 미리학습된 CRFsuite 모델 - wikicorpus_word2vector.300.class: 배포된 word2vec 파일을 300개의클래스로분류한파일 3 사전파일 klpexpo_lake/test/data - gazette: 배포된사전파일 4 라이브러리 klpexpo_lake/compile/ - libjson_linux-gcc-4.8_libmt.a: jsoncpp 오픈라이브러리 - libcrfsuite.a, liblbfgs.a, libcqdb.a: CRFsuite 오픈라이브러리와학습및 - 62 -

WordAngler 수행에필요한오픈알고리즘 2.2.2 전체구조 Ÿ 실행프로그램컴파일 klpexpo_lake/compile/ Common/... 입출력구조체헤더및 jsoncpp, crfsuite 오픈라이브러리헤더 * jsoncpp/... jsoncpp 라이브러리헤더 * CRFsuite/... crfsuite 라이브러리헤더 DataConstructor/.. CoNLL 및 CRFsuite 학습데이터생성클래스 DataLoader/... 입력자료및학습데이터로딩클래스 DataExtractor/... 사전검색및 WordAngler 및 crfsuite 메인클래스 * WordAngler.h/cpp... 프로그램메인클래스 * WordAngler_DicSearch.h/cpp... 사전검색클래스 * CRFsuiteMain.h/cpp... CRFsuite 메인클래스 * libjson_linux-gcc-4.8_libmt.a: jsoncpp 오픈라이브러리 * libcqdb.a, libcrfsuite.a liblbfgs.a: crfsuite 및학습 / 수행에필요한오픈라이브러리 * cqasys_wordangler.cpp 프로그램메인 wrapper Ÿ 프로그램실행 klpexpo_lake/test/ bin/... 학습및수행프로그램 Data/... 배포된학습및수행데이터, 사전파일 LearnData/... 모델학습데이터 execute/... 프로그램수행이이루어질공간 * Learn.sh... 학습프로그램실행쉘 * Test.sh... 수행프로그램실행쉘 - 63 -

2016 국어정보처리시스템경진대회 2.3 소프트웨어실행 Ÿ cqasys_wordangler.run ( 프로그램옵션 ) -i 분석 _ 대상 _ 입력 _ 파일명 -o 분석 _ 결과 _ 출력 _ 파일명 -rsc 학습 _ 데이터 _ 경로 -crf CRFsuite_ 학습 _ 모델 _ 파일명 -w2v word2vec를 _n개_ 클래스로 _ 분류한 _ 파일명 -dic 사전사용여부 ( 0: 사용안함, 1: 사용 (default) ) Ÿ 수행예제 > cqssys_wordangler.run i dev.json o result.json rsc./ -crf train.300.crfsuite.model w2v wikicorpus_word2vector.300.class dic 1 참고 : -crf, -w2v, -dic 옵션은 default 설정이되어있음. - 64 -

WordAngler 기능 3.1 프로그램기능 본프로그램은오픈소스로공개된기계학습모델중사용이쉽고간편하며, 성능적으로우수함이검증된 CRF(Conditional Random Fields) 모델을사용하였다. CRF는자연어처리뿐만아니라다양한분야에서활용이되고있는대표적인모델로서, 레이블부착확률을여러자질들의조건에의해확률을계산하기때문에필요한모든자질을사용하여구현이가능하며, 수정및변경이매우용이하다는장점이있다. CRF를지원하는오픈소스로는 MALLET, SCARF, CRF++, CRFsuite 등이있으며, 이중 CRFsuite는여러 CRF 기반오픈소스중속도가가장빠름이증명되었으며, 사용이쉽고, 자질조건의수정이편리하며, 다양한학습알고리즘을지원하고있어, 본프로그램은이를사용하였다. 이외에도본대회에서제공된개체명사전인 gazetteer 사전과, word2vec를사용한단어벡터를 k-means 알고리즘을사용하여 n개의클래스로분류한뒤자질값으로사용하고, 단어벡터간의유사도점수를계산하여, 각각의형태소들의유사어휘사전을새롭게구축하여사용하는등, 다양한방법을적용하였다. 전체시스템의구성은다음과같다. < 그림 1> WordAngler 시스템개요도 CRF 모델에서사용하는자질값 (Feature) 은다음과같다. - 65 -

2016 국어정보처리시스템경진대회 자질값 (Feature) 범위 (scope) 형태소어휘 (lemma) [-2,2] 형태소태그 (tag) [-2,2] 형태소어휘 / 형태소품사 [-2,2] 어절띄어쓰기 (word-delimiter) [-1,1] word vector clustering number [-2,2] 형태소유사어휘 (lemma) [-1,1] 형태소태그유사어휘 (tag) [-1,1] < 표 2> 개체명인식에사용한자질값목록및어휘범위 자질값목록중 word vector clustering number 는학습데이터로제공된형태소들의 word vector(wikicorpus_word2vector.hr) 를 k-means 알고리즘을사용하여, n개의클래스로분류한뒤사용한클래스번호이다 ( 예를들어, 대한민국 /NNP 형태소벡터의클래스번호는 265 이다 ). 자질로사용한유의어사전은학습데이터로제공된 word2vec 데이터에포함된각각의형태소들간의유사도점수를 (cosign similarity) 모두계산하여, 각형태소별가장유사한형태소를하나의 pair 쌍으로묶어생성하였다. 이렇게생성된유의어사전은학습데이터의부족문제를일부해결할수있는가능성을제공한다. 예를들면, 학습데이터에 전남드래곤즈 /OG 가없는경우, 생성된유의어사전을보면 전남 은 포항 으로, 드래곤즈 는 스틸러스 로가장유사한어휘가생성되어있어, 포항스틸러스 정보를사용하여개체명을추출할수있다. CRF 모델의수행이끝나고나면, 학습데이터로제공된사전 ( gazette ) 을사용하여사전에등록되어있는개체명을추출한다. 개체명사전을검색하는방법은형태소단위로총 4개의형태소를최대개체명단위로보고, 문장의시작형태소위치부터, 1~4개의형태소를차례로합치면서사전을검색하고, 사전에서찾은개체명은긴이름우선순위로추출하였다. 사전검색알고리즘은다음과같다. - 66 -

WordAngler cnt_morp = count(morphemes in sentence) for i = 0 to cnt_morp-1 word.clear(); for j = i to i+4 && j < cnt_morp word += morphemes[j]->lemma if (search in dictionary(word)) then ne_candidate = (word, ne_tag) if (!ne_candidate.empty()) then result <- ne_candidate < 표 3> 개체명사전검색알고리즘 사전검색은해시테이블알고리즘을사용하였으며, 사용자사전을사용할수있도록프로그램구조를구성하였으나, 현재에는제공된시스템사전만을사용하여정보를추출한다. CRF와사전검색이끝나고나면, 두개의출력결과중어휘의범위가서로교차혹은일치하는결과가존재한다. 이러한경우에는개체명의길이가보다긴이름우선순위로정답을출력하며, 어휘의범위가같을경우에는사전등록개체명우선순위로정답을출력하였다. 본프로그램의결과를살펴보면, 아직해결해야할문제들이몇가지존재한다. 예를들면, 동일한어휘에대한중의성태그문제 ( 예 > 서울 지명으로사용되었을경우 LC( 장소 ), 축구팀이름으로사용되었을경우 OG( 기관명 )), 미등록어에의한추출오류 ( 예 > 존웨인 의경우 PS( 사람이름 ) 으로태깅되어야하나, 이름인 웨인 만태깅하는경우 ), 복합명사의인식오류 ( 예 > LA 애인절스 /OG 를 LA/LC + 애인절스 /OG 로분석하는경우 ) 등이다. 현재는이와관련된문제를해결하기위해학습데이터로제공된단어벡터의유사도를사용하여해결하는모듈을개발하고있으나, 아직모델이추가되지는못하였다. 이는추후시스템을개선해나가며기능을추가할예정이다. 3.2 프로그램기능제약 - 입출력양식 : 경진대회에서배포한형태소분석이완료된 JSON 형식의파일 - 필수라이브러리 : jsoncpp, crfsuite - 입출력파일인코딩 : UTF-8-67 -

2016 국어정보처리시스템경진대회 기타 4.1 시스템성능 시스템의성능측정은테스트용으로제공된자료인 dev.json 파일을대상으로수행하였으며, 학습데이터는제공된자료중 train.json 과 wikicorpus_word2vector.hr 를사용하였다. 정답의일치여부는어휘범위 (boundary) 의완전일치와정답개체명태그의일치, 두가지조건을모두만족하는경우를정답으로평가하였으며, 평가지수로는재현율 (recall) 과정확률 (precision) 과 F1-score로계산하였다. 평가모델은 CRF 모델만사용한 모델 1 과 CRF와사전을함께사용한 모델 2 이다. 정답과일치하는결과 재현율 정답개체명 식 (1) 정답과일치하는결과 정확률 시스템출력결과 식 (2) 식 (3) 모델 1 모델 2 recall 0.726 0.82 precision 0.76 0.734 F1-score 0.75 0.778 < 표 4> 시스템평가결과 사전을함께사용한 모델 2 가 CRF만사용한 모델 1 보다 F1-score 기준으로약 2%point 성능이높았다. 이는학습데이터에존재하지않는개체명이사전에등록된경우가많기때문에, 전체적인재현율을약 10% point 높일수있었다. 단, 정확률은약 6%point의성능이떨어진다. 이는 LA 애인절스 /OG 와같이복합명사로구성된경우, 각형태소를하나의개체명을인식할수있기때문으로보인다 ( 예를들면, LA/LC, 애인절스 /OG ). 자세한세부오류의유형은 4.2절에정리하였으며, 현재는각오류유형별해결을위한모듈개발을진행중에있다. - 68 -

WordAngler 4.2 프로그램수행과정 4.2.1 학습프로그램수행과정 (Learn.sh) (1) Kmeans4WordVectors.run - word2vec 학습자료 ( wikicorpus_word2vector.hr ) Clustering - CRFsuite 모델의자질값으로사용할단어벡터의클러스터번호생성. 30, 50, 100, 150, 300, 500 개의클러스터로실험한결과, 가장성능이좋았던 300개의클러스터생성 - 학습에사용할자료로미리생성해놓음 - 출력결과 < 그림 2> 단어벡터의클러스터링결과 - 6 -

2016 국어정보처리시스템경진대회 (2) LearnData2CoNLL.run - 학습데이터 ( train.json ) 과 word vector clustering 자료를사용하여 CoNLL 출력포맷으로변경 - 출력예 그림 3. 학습데이터로사용할 CoNLL 형식데이터 - 70 -

WordAngler (3) CoNLL2CRFsuite.run - 생성된 CoNLL 학습데이터를미리작성한자질값설정파일 ( FeatureTemplate.txt ) 을사용하여 CRFsuite의학습데이터생성 - 자질값설정파일및출력예 그림 5. CRFsuite 학습자료 그림 4. 자질값설정파일 - 71 -

2016 국어정보처리시스템경진대회 (4) crfsuite learn - 오픈소스인 crfsuite 를사용하여 CRFsuite 모델생성 - 생성된모델파일은 binary 파일이다. - crfsuite 수행과정 그림 6. CRFsuite 학습수행과정 - 72 -

WordAngler 4.2.2 실행프로그램수행 (Test.sh) - cqasys_wordangler.run - 테스트대상자료인 dev.json 과학습프로그램의결과들을읽은후최종결과출력 - 결과출력폼은제공된입력자료인 dev.json 과동일하며, 개체명결과인 NE 의내용만모듈의출력결과로바뀌어출력된다. - 최종출력폼 ( result.json ) 그림 7. WordAngler 최종출력결과예 - 73 -

코너 (KoNER) 국립국어원 Ⅰ 코너 (KoNER) 신유현, 이상구 서울대학교 - 75 -

코너 (KoNER) 례 제 1 장소프트웨어소개 78 1.1 소프트웨어명칭 78 1.2 소프트웨어사용환경 78 1.3 소프트웨어특징 7 제 2 장소프트웨어설치및실행 81 2.1 소프트웨어설치방법 81 2.2 소프트웨어파일구조 81 2.2.1 주요파일설명 81 2.2.2 전체구조 81 2.3 소프트웨어실행방법 81 제 3 장소프트웨어기능 83 3.1 프로그램기능 83 3.2 프로그램기능제약 85 제 4 장기타 86-77 -

2016 국어정보처리시스템경진대회 소 소개 1.1 소프트웨어명칭 1.1.1 명칭의미및설명코너 (KoNER) 는 Korean Named Entity Recognition의약자이다. 영어단어코너 (Corner) 와의발음상의유사성을고려한명칭이다. 영어단어코너 (Corner) 는 1) 특별한목적을위해구성하기위한한정된일부장소및 2) 모퉁이, 구석 이라는뜻을지닌다. 코너 (KoNER) 는한국어개체명인식이라는특별한목적을위해구현된프로그램이라는뜻이있다. 또한, 모퉁이 ( 코너 ) 를돌면새로운행운이기다리고있을거야 라는구절이있듯이, 코너 (KoNER) 를통해서, 한국어개체명인식의성능향상에도움이되고자하는뜻을담고있다. 1.1.2 이유및개발동기 개체명인식은질의응답시스템, 정보검색시스템, 기계번역시스템등다양한분야에서사용되는기술이다. 하지만한국어개체명인식의경우, 다른연구가활발한언어와비교하였을때공개된말뭉치가부족하다는문제점이있다. 그리하여개체명인식문제해결에어떻게접근해야할까고민하고있는와중에경진대회소식을접하게되었다. 이러한말뭉치를기반으로한국어개체명인식이라는분야에조금의도움이되고싶어개발하게되었다. 한국어개체명인식이라는특정도메인에서의높은정확도는것이목적이다. 1.2 소프트웨어사용환경 Ÿ 지원 OS : Linux (Ubuntu 14.04.4 LTS) Ÿ 권장메모리 : RAM 32GB 이상 Ÿ 사용언어 : python Ÿ 실행환경 : python 2.7.x Ÿ 필요라이브러리 : Numpy, Theano Ÿ 텍스트인코딩 : utf-8-78 -

코너 (KoNER) 1.3 소프트웨어특징 1.3.1 특징 1 딥러닝기법을이용하여사전지식의최소화딥러닝의경우, 워드임베딩을입력값으로사용하여문제를해결한다. 이때워드임베딩을만드는과정에서원본텍스트 (raw text) 만을이용하므로, 사전지식의영향력이줄어들수있다. 또한딥러닝구조중하나인 RNN (Recurrent Neural Network) 를이용하여, 사전지식없이도높은정확도를낼수있다. 2 사람이글을읽는방법모사딥러닝모델중하나인 Bidirectional LSTM을이용하여, 전향 (forward) 시에는왼쪽에서오른쪽으로글을읽는사람의모습을모사할수있다. 후향 (backward) 시에는사람이왼쪽에서오른쪽으로글을읽으면서, 다음에읽은단어 ( 오른쪽단어 ) 가이전에읽은단어 ( 왼쪽단어 ) 의판단에영향을미치는것을고려할수있다. 따라서, 결국에는왼쪽에서오른쪽으로글을읽으며이전정보들을저장하고있고새롭게접하는단어를이용하여전체적인맥락을파악하는것을양방향 LSTM(Bi-directional LSTM) 을이용하여모사하였다. 3 단어의형태적 (morphological) 특징을고려입력값으로형태소및형태소의자음, 모음을이용 (ex. ㅎ, ㅕ, ㅇ, ㅌ, ㅐ, ㅅ, ㅗ ) 한다. 따라서새로운단어가등장하더라고형태적유사함을토대로기존단어와의연관을지을수있다. 또한, 복수형여부, 접두사, 접미사등을이용하여단어를의미적, 문법적으로이해할수있게된다. 4 문법적특징을고려알고리즘의입력값에품사 (Part-of-speech) 를이용하여, Bi-directional LSTM을학습한다. Bi-directional LSTM이각품사간의의존 (dependency) 관계를학습할수있게되므로, 이를통해단어의문법적역할을동시에학습할수있다. 예를들어, 명사와명사가연속되서나올경우에는개체명일확률이높다는것을학습하게된다. - 7 -

2016 국어정보처리시스템경진대회 5 기구축사전의활용방안극대화기구축사전의값을 BIOES 인코딩방법을이용하여입력값으로사용한다. 예를들어, LA 라는단어는독립적으로존재할경우에는지명 (LC) 를의미하지만, LA 레이커스 의경우에는기관명 (OG) 을의미하게된다. 이렇게사전에존재하는 LA에대한정보를 S-LC, B-OG 로나타내어문장의문맥에따라서다른의미를지니는단어임을학습하도록한다. cf) BIOES 인코딩 : B(Begin), I(Inside), O(outside), E(End), S(Single) 의 5가지태그를이용하여인코딩하는방법으로, BIO 인코딩의확장판이다. 1.3.2 장점 1 RNN의한종류인 Bidirectional LSTM을사용함으로써, 텍스트및특징 (feature) 간의의존 (dependency) 정보를충분히반영할수있다. 각의존관계학습시에형태소, 자음 / 모음, 품사, 기구축정보 (lexicon) 이동시에고려된다. 2 형태적특징을이용함으로써, 새로운단어가들어와도이전단어와의연관성을극대화시킬수있다. 또한 어제 와 어저께 처럼유사한단어가들어오는경우에도두단어의연관성을고려할수있다. 3 사람이개체명을인식하는방법을학습시킬수있다. 왼쪽에서오른쪽으로읽어나가며이해하는것을모사한다. 이때형태소단위의입력값을받음으로써최소한의의미로부터뜻을파악한다. 해당형태소의다른형태소와의형태적유사성을이용하여해당단어가무엇인지유추할수있다. 4 특징추출 (feature engineering) 을최소화할수있다. 경진대회에서제공한것외에다른사전지식 (prior knowledge) 없이학습하였다. 1.3.3 기대효과기구축사전 (lexicon) 이완벽하지않더라도미등록어에대한대응이가능하고, 기존도메인에대한선수지식을이용한특징추출 (feature engineering) 과정을줄일수있다. 이는신조어및다양한문법적지식을요구하는한국어에특히나적합한방법일것으로기대된다. 선수지식 (prior knowledge) 이부족한경우에도구축된말뭉치와형태소임베딩만을이용하여한국어개체명인식의정확도향상을할수있을것으로기대된다. 사람의개입및노력을최소화하였음에도높은성능을보일것으로기대된다. - 80 -

코너 (KoNER) 실행 2.1 소프트웨어설치방법 1. KoNER.tar 파일압축해제 >> tar -xvf KoNER.tar >> cd KoNER 2. 라이브러리설치 >> pip install numpy >> pip install theano 3. chmod 777 cqasys_koner.sh 2.2 소프트웨어파일구조 2.2.1 주요파일설명 1 실행파일 tagger.py --- 실행파일 2 데이터파일 data/[input_name] --- 입력파일 data/[output_name] --- 출력파일 3 사전파일 data/gazette --- 기구축사전 (lexicon) 파일 data/wikicorpus_word2vector.hr --- 워드임베딩파일 2.2.2 전체구조 KoNER/ data/... 입력파일, 출력파일, 워드임베딩, 사전 (lexicon) 폴더 model/... 학습된모델폴더 cqasys_koner.sh... 실행스크립트 tagger.py... 실행파일 - 81 -

2016 국어정보처리시스템경진대회 json2base_type.py... json을세로형식으로바꿔주는파일 json2base.py... 경진대회제공 json을세로형식으로바꿔주는파일 base2json.py... 세로형식의파일을 json으로바꿔주는파일 *.pyc... tagger.py에서사용하는파일들 2.3 소프트웨어실행 소프트웨어실행을위해서는아래와같은터미널에아래와같은명령어를입력한다. >>./cqasys_koner.sh [input_file] [output_file] ex)./cqasys_koner.sh "./data/dev.json" "./data/result.json" 해당프로그램은총 3가지입력값을받는다. - input_file : 입력데이터파일이존재하는경로및이름 ex) "./data/dev.json" - output_file : 원하는출력데이터파일의경로및이름 ex) "./data/result.json [cqasys_koner.sh 내부실행명령어 ] #!/bin/bash if [ $# -eq 0 ]; then echo "./cqasys_koner [input_file] [output_file]" exit 1; fi python./json2base_type.py $1 > $1.txt python./tagger.py --input $1.txt --output $2.txt python./base2json.py --input $1 --output $2 tags $2.txt - 82 -

코너 (KoNER) 기능 3.1 프로그램기능 제출한프로그램의기능 : 한국어개체명인식해당프로그램에서의개체명은총 5가지로기관명 (OG), 인명 (PS), 지명 (LC), 숫자 (DT), 시간 (TI) 을의미한다. 해당프로그램은 json 형식의입력파일로부터, 형태소및품사태깅을추출한다. 형태소와품사를이용하여해당형태소의개체명여부를판별하는프로그램이다. 임의의문장에대한형태소와품사를입력값으로받아하나의의미단위를이루는형태소들의시퀀스를찾아해당시퀀스의개체명카테고리를분류해주는프로그램이다. 주요방법론 : 해당프로그램은입력값으로 json 형식의파일을받는다. json 형식의파일은아래그림 1과같이변환되어입력값으로사용된다. 그림 35 json 형식의입력파일 ( 왼쪽 ) 의형식변환 - 83 -

2016 국어정보처리시스템경진대회 그림 36 개체명인식알고리즘의전체구조 그림 37 품사및사전의벡터표현예시먼저, 알고리즘의입력값과출력값을살펴보겠다. 그림 2에서는변환된입력파일의첫번째열인형태소와두번째열인품사를입력값으로사용하고, 세번째열인개체명태그를출력값으로이용하여학습한다. 즉, 입력값은 첫 /MM, 타자 /NNG, 박용택 /NNP, 을 /JKO,... 이고, 출력값은 O, O, B-PS, O,... 이다. ( 이때, 출력값에사용되는인코딩 (encoding) 기법에는 - 84 -

코너 (KoNER) BIOES 방법을사용하여학습하였다.) 그림 2와같이알고리즘에서는해당입력값 (ex. 첫 /MM, 타자 /NNG) 에대해 4가지관점으로벡터표현을생성한다. 첫번째는형태소임베딩을이용하여입력값을표현하는것이다. 이는 pre-train된워드임베딩값을 lookup table에서가져온다. 두번째는자음 / 모음특징을추출하여입력값을표현하는것이다. 이러한자음 / 모음특징추출에는 Bidirectional LSTM이사용된다. 즉, 첫 /MM 의경우에는, ㅊ, ㅓ, ㅅ 을입력값으로하는 Bidirectional LSTM layer를추가하였다. 세번째는품사를이용하여입력값을표현하는것이다. 그림 3의왼쪽과같이품사전체개수를길이로하는원핫 (one-hot) 벡터를이용하였다. 네번째는사전 (lexicon) 을이용하여입력값을표현하는것이다. ( 이때사전은제공된 gazette를이용하였다.) 그림 3의오른쪽과같이사전내에서해당단어가어떻게쓰였는지에따라정해진레이블에 0 또는 1의값을갖는다. 예를들어, 박용택 PS, LA 레이커스 OG, LA LC 세가지경우가있다고하자. 이경우에 박용택 은 박용택 PS 에서만쓰였으므로 S-PS 에대응된다. LA 의경우에는 B-OG, S-LC 에대응되며, 레이커스 는 E-OG 에대응된다. 3.2 프로그램기능제약 입출력양식제한 : 프로그램의입출력양식은해당경진대회제공 json 파일양식을따른다. json2base_type.py 파일을이용하여, json을세로형식으로바꿔알고리즘의입력값으로사용하였다. 해당파일은 [input_file].txt (ex. input_file이 dev.json인경우 dev.json.txt) 으로저장된다. 알고리즘의출력파일또한세로형식으로출력된다. 해당파일은 [output_file].txt (ex. output파일이 result.json인경우, result.json.txt) 으로저장된다. 따라서 base2json.py를이용하여세로형식을 json 형식으로변환한다. 해당 base2json.py는 train.json, dev.json을입력값으로받은경우에는 result.json 형식을오류없이만든다. 제공된두파일 (train.json, dev.json) 에대해서는잘작동하나, 새로운파일에대해서세로형식의파일을 json으로변환하는과정에서오류가생길수있다. - 85 -

2016 국어정보처리시스템경진대회 입력파일 (json 형식 ) : dev.json 출력파일 (json 형식 ) : result.json 알고리즘입력파일 ( 세로형식 ) : dev.json.txt 알고리즘출력파일 ( 세로형식 ) : result.json.txt 기타 train.json으로학습한모델을이용하여구한 dev.json에대한 F-Score 결과이다. 학습은총 50번의에폭 (epoch) 을통해이루어졌다. 501개의문장으로이루어진 dev.json의경우에는개체명태깅에평균적으로 0초내외가소요되었다. 성능측정에는 conll 평가스크립트를이용하였다. 즉, B-PS, [B-PS, I] 등의개체청크 (chunk) 단위로성능을측정하였다. 특징 (Feature) F-Score 1 형태소임베딩 7.6 2 형태소임베딩 + 자음 / 모음특징 80.66 3 형태소임베딩 + 자음 / 모음특징 + 품사 83.0 4 형태소임베딩 + 자음 / 모음특징 + 품사 + 사전 85.71 표 45 특징에따른 F-Score 값표 1에서볼수있듯이가장성능이좋은모델은 F-Score 85.71로 4가지벡터표현방법을모두사용한모델이었다. 표 2는가장좋은성능을보인 4번째모델에대한각카테고리별성능을나타내고있다. 5가지의개체명중사람 (PS) 에해당하는 F-Score가 0.8로제일높고, 기관 (OG) 에해당하는 F-Score가 0.77로제일낮다. 정밀도 (Precision) 재현율 (Recall) F-Score DT 0.84 0.880 0.887 LC 0.73 0.853 0.822 OG 0.824 0.772 0.77 PS 0.15 0.885 0.8 TI 0.872 0.810 0.840 표 46 4 번째모델의각개체명카테고리별정밀도, 재현율, F-Score - 86 -

코너 (KoNER) 실행커맨드모음 : >> tar -xvf KoNER.tar >> cd KoNER >> pip install numpy >> pip install theano >> chmod 777 cqasys_koner.sh >>./cqasys_koner.sh "./data/dev.json" "./data/result.json 결과파일경로 :./data/result.json 그림 38 세로형식의알고리즘결과파일 ( 왼쪽 ), json 형식의결과파일 ( 오른쪽 ) - 87 -

단추 (DANCHU) 국립국어원 Ⅰ 단추 (DANCHU) 안재현, 윤정민, 김혜민, 박용신, 배경만, 고영중 동아대학교 - 8 -

단추 (DANCHU) 례 제 1 장소프트웨어소개 2 1.1 단추 (DANCHU) 2 1.2 소프트웨어사용환경 3 1.3 소프트웨어특징 3 1.3.1 언어분석을위한학습모델 3 1.3.2 음절임베딩벡터 5 1.3.3 웹페이지와디자인 7 제 2 장소프트웨어설치및실행 8 2.1 소프트웨어설치방법 8 2.2 소프트웨어실행방법 8 2.3 단추언어분석통합시스템 제 3 장소프트웨어기능 102 3.1 프로그램기능 102 3.1.1 단추형태소분석기 102 3.1.2 단추개체명인식기 103 3.1.3 단추의존구문분석기 104 3.1.4 단추의미역결정기 105 3.2 프로그램기능제약 106 제 4 장기타 106 4.1 시스템성능 106 4.2 참고문헌 108-1 -

2016 국어정보처리시스템경진대회 소 소개 1.1 단추 (DANCHU) 자연어처리는인간이발화하는언어현상을기계적으로분석하여기계가이해할수있는형태로만드는것을의미한다. 자연어처리에는언어분석과대화모델등많은연구분야가있으며, 언어분석은자연어에대한형태소분석 (Part Of Speech), 개체명인식 (Named Entity Recognition), 의존구문분석 (Dependency Parser), 의미역결정 (Semantic Role Labeling) 등자연어처리의기초가되는연구를말한다. 본대회에제안하는단추 (DANCHU : Dong-A Natural language analysis tools for Communication with HUman) 는동아대학교지능형시스템연구실에서구현한언어분석통합시스템이다. 단추 (DANCHU) 라는이름은우리나라옛말의 첫단추를잘꿰어야한다. 라는말에서착안한이름이다. 첫단추가잘꿰어져야다음단추가잘꿰어지듯자연어응용분야에서언어분석은첫단추와같고, 정확한언어분석은많은자연어응용분야에서좋은토대가된다. 언어분석의기존연구에서는규칙기반과통계기반, 사전기반을많이사용하여연구를했다. 그러나규칙과사전을생성하기위해서는사람이수작업으로생성하기때문에많은노력과비용이필요하며, 언어가점차확장됨에따라사전과규칙이많아지는문제점이있다. 최근에는기계학습 (Machine Learning) 과심층학습 / 딥러닝 (Deep Learning) 을이용하여이와같은문제점을개선하였다. 본시스템은순차레이블링 (Sequential Labeling) 에높은성능을보이고있는 Bidirectional Long Short Term Memory Conditional Random Fields(bi-LSTM-CRFs) 과단어표상 (word embedding), 음절기반임베딩벡터를이용하여높은성능을기록하였다. 본시스템은웹페이지로제작되었으며, 문장을입력하면언어분석을진행하며형태소분석기, 개체명인식기, 의존구문분석기, 의미역결정모델을순차적으로실행하여 4가지의결과를사용자에게보여준다. - 2 -

단추 (DANCHU) 1.2 소프트웨어사용환경 - 운영체제 : Ubuntu 15.10 x64 - 사용언어 : Python, C++, Java, JSP, Java Script, HTML 라이브러리 : Tensorflow 1, Numpy 2 1.3 소프트웨어특징 1.3.1 언어분석을위한학습모델단추 (DANCHU) 통합시스템은언어분석통합시스템으로써입력된문장의형태소분석, 개체명인식, 의존구문구조분석, 의미역결정등을실행한다. 각언어분석시스템은모두시퀀스레이블링의문제로기존의 CRFs, Structure-SVM 보다성능면에서개선된 bi-lstm-crfs를사용하여학습하였다. bi-lstm-crfs는동아대학교지능형시스템연구실에서자체개발된소스로 Tensor Flow로구현하였다. 아래 (1) ~ (3) 은 RNN, LSTM, bi-lstm-crfs에대한설명이다. (1) Recurrent Neural Networks(RNN) 그림 40. Recurrent Neural Networks 모델그림 1에서보이는것처럼 RNN은단어열 을입력계층에서입력으로받고, 그입력은은닉계층 을거쳐입력을잘표현하는벡터 가출력계층으로출력된다. RNN 구조를아래와같은식으로정의할수있고, 아래식에서 는각계층의 weight행렬이다. 1 https://www.tensorflow.org/ 2 http://www.numpy.org/ - 3 -

2016 국어정보처리시스템경진대회 RNN 은위의수식과그림 1 에서알수있듯이이전상태를다음상태로 계속전달하는모델이다. 따라서이론상으로는이전상태를기억하여장기 의존성 (long-range dependencies) 을다룰수있다. 하지만실제적으로 위치상멀리있는정보를많이잃어버리는그래디언트소멸문제 (Vanishing gradient problem) 가존재하기때문에장기의존성을유지할수없는 문제점이있다. (2) Long Short-term Memory(LSTM) LSTM은 RNN의그래디언트소멸문제를해결하여장기의존성을잘학습할수있는특별한모델이다. 이문제를해결하기위하여 LSTM에서는 RNN의은닉계층노드에 3개의 gate(input, output, forget) 와 1개의 memory cell을이용한다. LSTM의 memory cell은전체적인상태를기억하여다음상태로전달하는역할을한다. forget gate를이용하여 cell의상태에서어떤정보를제거할지결정하고, input gate로 cell에서어떤정보를갱신할지결정한다. 마지막으로 output gate를이용하여 cell의어떤정보를전달할지결정하여장기의존성을유지한다. LSTM 구조의전체적인수식은다음과같다. 위식에서 는각각 input gate, memory cell, output gate, hidden state 이다. 그리고 는 element-wise product 이며, 는 weight 행렬을 는 bias 를나타낸다. - 4 -

단추 (DANCHU) (3) bidirectional LSTM CRFs(bi-LSTM-CRFs) 그림 41. bidirectional LSTM CRFs 모델 bi-lstm-crfs는그림 2에서보이는것과같이 LSTM에입력문자열을양방향으로받아서각단어별로은닉계층의결과를얻고, 그결과간의의존성을추가한모델이다. 1.3.2 음절임베딩벡터 bi-lstm-crfs를사용하여학습하기위해선어절혹은음절, 형태소단위의단어표상 (word embedding) 이필요하다. 단어표상이란말뭉치의단어를벡터로표현한것으로벡터의값은말뭉치에서단어가가지는의미나역할을잘표현해주는값이어야한다. 이와같이단어의의미와맥락을고려하여단어를벡터로표현한것을단어표상이라고한다. 본시스템에서사용한기본적인단어표상은아래표 1 과같다. 표 4 사용한기본적인단어표상 모듈형태소분석기개체명인식기의존구문분석기의미역결정 사용한임베딩음절임베딩벡터형태소임베딩벡터어절임베딩벡터어절임베딩벡터 본시스템에서는표 1과같이기본적인단어표상을사용하였고개체명인식과의존구문분석, 의미역결정모듈에서는음절기반임베딩벡터를추가로사용하였다. 음절기반단어임베딩이란각단어를표현하기위해음절단위의임베딩벡터를기반으로하여단어단위의임베딩벡터로확장한벡터를말한다. 단어는음절의시퀀스이기때문에음절단위의임베딩벡터의확장은 - 5 -

2016 국어정보처리시스템경진대회 단어를표현하기에적합하다. 그림 3 에서보이는것과같이 bidirectional LSTM 을이용하고, forward 의마지막상태와 backward 의마지막상태를 결합하여단어단위임베딩벡터로사용하였다. 그림 42. 음절기반단어임베딩벡터를위한 bi-lstm 예를들어개체명인식에음절기반단어임베딩벡터를적용하기위해서입력되는음절임베딩벡터로는음절별로각개체명태그별분포를벡터로만들어서사용하였다. 그결과로만들어진벡터는 11차원을가진다 ( 개체명태그 5개 * BI정보 2개 + O 태그 1개 = 11). 최종적으로모델에입력될때는분포벡터에 softmax를이용하여확률로변환후사용한다. 예를들어 타자 /O 는 /O 단연 /O 이대호 /B-PS 문장에서각음절에대응되는음절임베딩벡터는표 2와같다. 표 2의값들은지면상반올림하여표기하였다. 표 50. 음절단위개체명분포벡터 타 자 는 단 연 0.1 0 이 0.1 4 대 호 0.1 1 B I PS OG LC DT TI PS OG LC DT TI 0.1 1 8 8 8 0.1 1 0.1 0 0.1 0 0.1 0 8 O 0.10 0.1 0 8 8-6 -

단추 (DANCHU) 1.3.3 웹사이트디자인과기능 (1) 웹디자인 본단추언어분석통합시스템은동아대학교웹서버에서언어분석을실행한다. 그리하여어떠한환경에서도웹에접근을할수있다면어디에서든언어분석의결과를볼수있다. 아래그림 4는단추언어분석통합시스템에접속한사진이다. 그림 43 단추언어분석통합시스템메인화면 POS( 형태소분석 ) 버튼과 NER( 개체명인식 ) 버튼, DP( 의존구문분석 ) 버튼, SRL( 의미역결정 ) 버튼, ALL( 모든언어분석을수행 ) 버튼으로구성되어있다. 기능적인면에서각각의언어분석은높은성능을보이고있으며, 사용자가보기편한디자인으로, 누구나쉽게언어분석을수행할수있도록구성하였다. 간단한조작을통해사용자에게편리성을제공하며, 높은성능을통하여사용자에게신뢰성을높일수있다. - 7 -

2016 국어정보처리시스템경진대회 실행 2.1 소프트웨어설치방법 본단추언어분석통합시스템은동아대학교지능형시스템연구실에있는웹서버에구축되어있어특별한설치없이소프트웨어를실행할수있습니다. 단추언어분석통합시스템에접속하기위해선인터넷웹페이지에아래의 URL을입력하면본시스템의웹서버에접속할수있다. 표 51 단추언어분석통합시스템웹서버 URL 단추언어분석통합시스템 URL http://168.115.11.125:8086/danchu/index.jsp 2.2 소프트웨어실행방법 본단추언어분석통합시스템은웹페이지로구축되어웹페이지 IP을이용하여접속하면된다. 입력창에분석을하고싶은문장을입력하고분석버튼 (POS, NER, DP, SRL, ALL) 을누르면해당모듈이돌아분석결과를출력하게된다. 2.2.1 웹브라우저접속단추 (DANCHU) 언어분석통합시스템은웹페이지로제작되었다. 따라서어디에서든웹브라우저로단추언어분석통합시스템에접근할수있다. 먼저아래그림 4와같이크롬웹브라우저를실행한다. 그림 44 웹브라우저실행 - 8 -

단추 (DANCHU) 2.2.2 IP 접속 동아대학교지능형시스템연구실에서제공하는 IP 주소를주소창에입력하여 접속한다. 그림 45 IP 주소 2.3 단추언어분석통합시스템 2.3.1 메인페이지 - -

2016 국어정보처리시스템경진대회 2.3.2 입력창 2.3.3 형태소분석결과 2.3.4 개체명인식결과 - 100 -

단추 (DANCHU) 2.3.5 의존구문분석결과 2.3.6 의미역결정결과 - 101 -

2016 국어정보처리시스템경진대회 기능 3.1 프로그램기능 단추 (DANCHU) 언어분석통합시스템은입력된한국어문장을형태소분석, 개체명인식, 의존구문분석, 의미역결정등 4가지의분석결과를제공한다. 4가지모듈모두 bi-lstm-crfs와음절기반임베딩벡터를사용하여성능면에서개선되었다. 각모듈에대한설명은아래와같다. 3.1.1 형태소분석형태소분석기는음절단위로품사를부착하는모델을제안한다. 품사부착을위해 bi-lstm-crfs와음절기반임베딩벡터를사용하였다. 먼저 bi-lstm-crfs은 forward 단계에서현재입력에대한상태층의정보가뒤의상태에영향을주며, backward 단계에서뒤에상태가앞의상태에영향을주어학습이되기때문에다른순차레이블링을위한기계학습과달리작은수의자질만으로도좋은결과를얻을수있다. bi-lstm-crfs은음절단위로입력이결정되며, 각음절에대한음절표상을나타내는벡터를구성하여입력으로사용된다. 시스템에서는이를위해대용량원시말뭉치를기반으로음절표상을나타내는 64차원의벡터를생성하여입력으로사용하였다. bi-lstm-crfs의성능을향상시키기위해시스템에서는각음절이전체학습말뭉치에서출현한품사태그의분포를벡터로구성하여 bi-lstm-crfs의입력을확장하였다. 각음절은학습말뭉치에서여러형태소에포함이될수있으며, 여러형태소는다양한품사를가질수있다. 학습말뭉치에서음절이포함된형태소의품사빈도수를계산한후 softmax를통해서확률을각차원의값으로사용하였다. 시스템에서제안하는음절단위형태소분석기는 bi-lstm-crfs으로음절단위품사태그를결정한후기존의방법과같이기분석사전과원형복원사전을적용하여최종적으로형태소분석된결과를보여준다. - 102 -

단추 (DANCHU) 3.1.2 개체명인식한국어개체명인식을위해 bi-lstm-crfs를이용하고, 입력으로사용되는단어표상을확장하기위해사전학습된단어임베딩벡터, 품사임베딩벡터, 그리고음절기반에서확장된단어임베딩벡터를사용한다. 단어표상확장을위해첫번째로사전학습된단어임베딩벡터가사용된다. 대부분의개체명은미등록어이기때문에학습데이터에나오지않은개체명을잘분류하는것에는한계가있다. 따라서대량의말뭉치를이용하여단어임베딩벡터를사전학습하고, 단어집합을확장시킨다. 두번째로는사전학습된품사임베딩벡터를사용하여단어표상을확장한다. 개체명인식에서는품사의시퀀스또한중요하기때문에품사를잘표현하는임베딩벡터가중요하다. 품사임베딩벡터를사전학습하기위해대량의말뭉치를형태소분석을하고, 단어를삭제한뒤품사만학습하여사용한다. 세번째는음절기반임베딩벡터로부터단어기반임베딩벡터로유도하여단어표상을확장하는방법이다. 임베딩벡터확장을위한입력인음절임베딩벡터로는각음절별로학습코퍼스에나온개체명의분포를벡터로만들어사용하였다. 아래그림 4는개체명인식과정을그림으로도식화한것이다. 그림 53. 단어, 품사, 음절임베딩결합한전체구성도 - 103 -

2016 국어정보처리시스템경진대회 3.1.3 의존구문분석국내에서한국어의존구문분석에관한연구가활발히진행되고있지만의존관계만을결과로제시하고의존관계명을제공하지않는경우가많았다. 제안하는의존구문분석기는의존파서와의존관계명을부착하는모델을제안한다. 의존파서는전이기반방식을사용하였으며신경망을통해학습하여의존관계의유무를판단하였다. 의존관계명부착은의존경로 (Dependency Path) 와음절의의존관계명분포를반영하는음절임베딩을이용한의존관계명부착모델을제안한다. 아래그림 5와같이의존경로를추출할수있다. 그림 54 의존경로예시문장에서나올수있는최적의입력열인의존경로 (Dependency Path) 를순차레이블링에서좋은성능을나타내고있는 bi-lstm-crfs의입력값으로사용하여의존관계명을결정한다. 의존경로의경우원래문장으로부터의존관계를중복하여추출하기때문에원래문장으로복구하는작업이필요하며, 성능평가는복구를한문장으로부터성능을측정하였다. 제안된기법은의존경로에따라어절및음절단어표상 (word embedding) 만을사용하여최적의입력열을이용하여순차적으로부착하였으며, 음절분포임베딩을사용하여성능면에서개선하였다. - 104 -

단추 (DANCHU) 3.1.4 의미역결정최근의미역결정연구는의미역말뭉치와기계학습알고리즘을이용한연구가주를이루고있다. 시스템에서는순차적레이블링영역에서좋은성능을보이고있는딥러닝기반의 Bidirectional LSTM-CRFs 기반으로음절의의미역태그분포를고려한의미역결정모델을제안한다. bi-lstm-crfs는어절단위로입력이결정되며, 각어절에대한어절표상을나타내는벡터를구성하여입력으로사용된다. 시스템에서는이를위해대용량원시말뭉치를기반으로어절표상을나타내는 64차원의벡터를생성하고, 여기에어절에포함된형태소의품사와현재어절과의미적으로연관된서술어에대한정보가반영된벡터를결합하여입력으로사용한다. bi-lstm-crfs의성능을향상시키기위해시스템에서는각어절에포함된음절이전체학습말뭉치에서출현한의미역태그의분포를반영하여어절의벡터를구성하여 bi-lstm-crfs의입력을확장하였다. 각음절은학습말뭉치에서여러서술어의의미역에포함이될수있으며, 여러의미역을나타내는다양한품사를가질수있다. 학습말뭉치에서음절이포함된의미역의의미역태그빈도수를계산한후 softmax를통해서확률을각차원의값으로사용하였다. 각음절별로생성된의미역태그의분포벡터는 bi-lstm 기반의음절의미역태그분포가반영된어절벡터를생성하는모델의입력으로사용되며, 어절에포함된모든음절에대해 forward와 backward 단계를거처생성된벡터를생성하는데이용된다. 생성된음절의의미역분포정보가반영된어절에대한벡터는어절단위로 SRL을진행하는 bi-lstm-crfs 모델의입력벡터에결합하여확장함으로써개선된의미역결정모델을제안한다. 아래그림 6은단추의미역결정모델을그림으로도식화한것이다. 그림 55. bi-lstm-crfs - 105 -

2016 국어정보처리시스템경진대회 3.2 프로그램기능제약 Ÿ 입력문서 - 한행이하나의문장인형식의말뭉치 - 특수문자에대한분석은아스키코드표에존재하는특수기호만사용 기타 4.1 시스템성능 4.1.1 형태소분석성능 [1] 에서제안한음절의품사분포벡터를이용한 bi-lstm-crfs 기반의음절품사태깅방법을적용하였을때표 4와같이 CRF 기반의방법에비해 7.65% 향상된 2.3% 의음절단위품사태깅성능을보였으며, 표 5에서기분석사전, 불규칙변환사전을적용한후원형복원했을때 CRF보다 3.01% 향상된 7.0% 의성능을보였다. 표 52 bi-lstm-crfs 를이용한음절단위품사태깅성능 (%) Model 40 만어절 CRF ( 음절 + 어절자질 ) 85.28 bi-lstm-crfs ( 랜덤 + 음절의품사태그분포 ) 2.3 (+7.65) 표 53 기분석사전과원형복원을적용한성능비교 (%) Model 40 만어절 CRF( 음절 + 어절자질 )+ 기분석사전 + 원형복원 4.08 bi-lstm-crfs ( 랜덤 + 음절의품사태그분포 )+ 기분석사전 + 원형복원 7.0 (+3.01) - 106 -

단추 (DANCHU) 4.1.2 개체명인식 [2] 에서제안한한국어개체명인식을위해 bi-lstm-crfs에입력으로들어가는단어표상을확장하는방법을이용하였다. 단어표상을확장하기위하여사전학습된단어임베딩벡터, 사전학습된품사임베딩벡터, 그리고음절기반단위임베딩벡터를사용하였다. 그결과품사임베딩벡터와음절기반단어임베딩벡터를추가한모델이사전학습된단어임베딩벡터만을사용한모델에비해 4.3% 증가한높은성능을얻을수있었다. 표 54 bi-lstm-crfs 를이용한개체명인식성능 (%) Model Micro-F1 형태소단어임베딩 74.5 형태소단어임베딩 + 형태소품사임베딩 77.58(+2.) 형태소단어임베딩 + 형태소품사임베딩 + 음절의개채명태그분포 7.52(+4.3) 4.1.3 의존구문분석 [3] 에서제안한음절기반임베딩벡터와 bi-lstm-crfs를이용하여의존관계명을부착하였고의존구조파싱은전이기반방식과퍼셉트론을이용하여의존구조를분석하였다. 표 55 전이기반과퍼셉트론을이용한의존파싱실험성능 (%) Model Micro-F1 전이기반의존구조파싱 85.61 표 56 bi-lstm-crfs 를이용한의존경로를적용한의존관계명부착모델 Model bi-lstm-crfs ( 어절임베딩 + 품사빈도벡터 ) bi-lstm-crfs ( 어절임베딩 + 품사빈도벡터 + 음절임베딩벡터 ) Micro-F1 5.16% 6.01% 4.1.4 의미역결정 - 107 -

2016 국어정보처리시스템경진대회 [4] 에서제안한음절의의미역분포벡터를이용한 bi-lstm-crfs 기반의의미역결정방법을적용하였을때표5와같이기존모델에비해 2.41% 향상된 66.13% 의의미역결정성능을보였다. 표 57 음절의의미역태그분포를이용한실험결과 (%) Model Micro-F1 bi-lstm-crfs 모델 + 서술어앞의어절만의미역결정 63.72 bi-lstm-crfs 모델 + 서술어앞의어절만의미역결정 + 음절의의미역태그분포 66.13(+2.41) 4.2 참고문헌 [1] 김혜민, 윤정민, 안재현, 배경만, 고영중, 품사분포와 Bidirectional LSTM-CRFs를이용한음절단위형태소분석기, 2016 HCLT 심사발표예정 [2] 유홍연, 고영중, 품사임베딩과음절단위개체명분포기반의 Bidirectional LSTM CRFs를이용한개체명인식, 2016 HCLT 심사발표예정 [3] 안재현, 이호경, 고영중, 의존경로와음절단위의존관계명분포기반의 Bidirectional LSTM CRFs를이용한한국어의존관계명레이블링, 2016 HCLT 심사발표예정 [4] 윤정민, 배경만, 고영중, 음절의의미역태그분포를이용한 Bidirectional LSTM-CRFs 기반의한국어의미역결정, 2016 HCLT 심사발표예정 - 108 -

한국어세줄요약기 _ summ4riz3 Ⅰ 국립국어원 한국어 세 줄 요약기 summ4riz3 설진석 연세대학교 - 10 -

한국어세줄요약기 _ summ4riz3 례 제 1 장소프트웨어소개 112 1.1 소프트웨어명칭 112 1.2 소프트웨어사용환경 112 1.3 소프트웨어특징 112 제 2 장소프트웨어설치및실행 113 2.1 소프트웨어설치방법 113 2.2 소프트웨어파일구조 113 2.2.1 주요파일설명 113 2.2.2 전체구조 114 2.3 소프트웨어실행방법 114 제 3 장소프트웨어기능 115 3.1 프로그램기능 115 3.2 프로그램기능제약 115 제 4 장기타 116-111 -

2016 국어정보처리시스템경진대회 소 소개 1.1 소프트웨어명칭 한국어세줄요약기 (summ4riz3) 는한국어로된문서를자동으로세줄요약해주는프로그램입니다. 자동으로문서를요약해서정리해주는프로그램이있다면편리할것이라생각했고, 직접적으로만들게된계기는한국인터넷뉴스의제목이내용을적절하게표현하고있지못하다고판단해서요약본을보는것이괜찮지않을까싶었기때문입니다. 1.2 소프트웨어사용환경 - 지원 OS: 파이선 2.7.x를지원하는모든 OS - 권장메모리 : 0.5GB 이상 - 사용언어 : 파이썬 2.7 - 실행환경 : 파이썬을사용할수있는모든환경 - 텍스트인코딩 : UTF-8 별도로파이썬웹프레임워크 django를활용하여온라인서비스화할수있는버전도만들었으나데모페이지를게시할서버가없었고, 이에대해선 django로웹사이트화했다는부분외에는추가되는점이없어서별도로기술하진않겠습니다. 1.3 소프트웨어특징 본소프트웨어는주어진문서에서가장중요하다고여겨지는문장을선정하여보여줍니다. 문서를자동으로요약해준다는것은시간이부족한현대인에게있어서유용한프로그램이될것이며, 기사, 위키피디아문서부터논문까지모든종류의문서에적용될수있다는장점이있습니다. - 112 -

한국어세줄요약기 _ summ4riz3 실행 2.1 소프트웨어설치방법 본소프트웨어에서사용중인외부파이썬라이브러리가있기때문에 virtualenv와같은가상환경위에서사용하는것이적절합니다. 필요한라이브러리는 requirements.txt 에기술되어있습니다. 리눅스로예를들면 0. 제출한파일중 standalone.zip 의압축해제된디렉토리를기준으로 1. pip install virtualenv 2. virtualenv venv 3. source venv/bin/activate 4. pip install r requirements.txt 5. python example.py 로 example.txt 내에있는문서를요약할수있습니다. 2.2 소프트웨어파일구조 2.2.1 주요파일설명 standalone 버전기준으로작성합니다. 1 실행파일 summ4riz3.py 라이브러리로써패키지되어있는파일 example.py 위패키지를사용하는예제 2 데이터파일 example.txt example.py에서예제로써이용될문서파일 3 사전파일 model/word3vec Word2Vec 알고리즘으로학습된한국어단어임베딩모델파일 model/word3vec.syn0.npy 위 word3vec 파일의부가데이터파일 model/word3vec.syn1neg.npy 위 word3vec 파일의부가데이터파일 - 113 -

2016 국어정보처리시스템경진대회 2.2.2 전체구조 standalone/ model/... Word2Vec 단어임베딩모델 example.txt... 사용예제에사용되는예시문서 example.py... 사용예제 summ4riz3.py... 본소프트웨어 2.3 소프트웨어실행 파이썬프롬프트혹은 IDLE에서 import summ4riz3 를한후에, 만약변수 text에문서가스트링형식으로저장되어있다고하면 summ4riz3.summarize (text) 가가장중요하다고판단되는문장 3개를출현순으로, 리스트식으로반환합니다. 다른방식으로, from summ4riz3 import TextRank TextRank(text).summarize(count=4) 와같이요약할문장의수를조절할수도있습니다. 실제로사용되는파이썬코드에서도비슷한방식으로사용할수있습니다. 그사용예시는 example.py와같으며, 이는터미널에서 python example.py 로실행해볼수있습니다. - 114 -

한국어세줄요약기 _ summ4riz3 기능 3.1 프로그램기능 본프로그램은주어진문서를문장단위로나누고, 문장들을 TextRank 알고리즘을통해서랭킹을결정해서상위 n개를뽑아내는방식으로문서를요약합니다. TextRank 알고리즘은 PageRank 알고리즘의변형이며, 여기선각노드 ( 이경우엔문장 ) 간주고받는어떤값이중요하게작용합니다. 본소프트웨어는그 어떤값 을한국어에잘맞도록새로운알고리즘을사용하였습니다. 구체적으로는주어진두문장의명사와동사가얼마나겹치는지를 jaccard coefficient로계산하고, 각문장을구성하는명사와동사들의 Word2Vec 단어임베딩벡터들의합을구해서 cosine similarity를계산하는방식으로이뤄집니다. 각각으로 PageRank를적용해서중요도를구하고, 두중요도를섞어서최종순위를매기게됩니다. 명사와동사구분에는한국어형태소분석기라이브러리를사용하여명사는어근만, 동사는원형을사용하도록했습니다. Word2Vec은나무위키 (http://namu.wiki) 와몇달간크롤링을통해수집한인터넷뉴스기사들을사용하여학습했고 ( 약 25만종류의단어 ), 학습에필요한파라미터는다양한실험을거쳐서최적의값으로사용되었습니다. 3.2 프로그램기능제약 Word2Vec 학습모델이상대적으로크기가크기때문에메모리를많이소모하며, 만약이부분을제거하고 jaccard 모델만사용하게되면메모리문제를해결할수있습니다. Word2Vec 학습모델은 out-of-vocabulary 단어를처리할수없으며, 따라서본소프트웨어는한국어만을대상으로요약해줍니다. 다만이역시도해당부분을제거하고외국어의품사태깅함수 ( 예 : nltk) 를추가하면어떤언어에서도작동하는보편적인알고리즘이됩니다. - 115 -

2016 국어정보처리시스템경진대회 기타 본소프트웨어의프로토타입인 summariz3는온라인데모가존재합니다. https://summariz3.herokuapp.com 이는본소프트웨어보다성능이떨어지지만잠시인터넷커뮤니티사이트들에서인기를조금얻어서언론에서소개된적이있습니다. http://sports.khan.co.kr/news/sk_index.html?art_id=201606221136003&sec_id =56201 http://www.insight.co.kr/newsread.php?artno=65634-116 -

지도표시및음성녹음 / 재생기능을가진지역어수집및검색 APP ' 뭐꼬!?' 국립국어원 Ⅰ 지도 표시 및 음성 녹음 / 재생 기능을 가진 지역어 수집 및 검색 APP ' 뭐꼬!?' 김푸름, 박소현, 심용석, 오승록, 이상호, 이재람, 안동언 전북대학교 - 117 -

지도표시및음성녹음 / 재생기능을가진지역어수집및검색 APP ' 뭐꼬!?' 례 제 1 장소프트웨어소개 120 1.1 소프트웨어명칭 120 1.2 소프트웨어사용환경 120 1.3 소프트웨어특징 121 제 2 장소프트웨어설치및실행 123 2.1 소프트웨어설치방법 123 2.2 소프트웨어파일구조 125 2.2.1 주요파일설명 125 2.2.2 전체구조 125 2.3 소프트웨어실행방법 126 2.3.1 소프트웨어실행 126 2.3.2 검색기능 127 2.3.3 지역어지도보기기능 ( 지도 ) 128 2.3.4 지역어정보입력기능 ( 녹음 ) 12 제 3 장소프트웨어기능 130 3.1 프로그램기능 130 3.2.1 지역어수집 ( 기능 1) 130 3.2.2 지역어검색 ( 기능 2) 130 3.2.1 지역어지도표시 ( 기능 3) 130 3.2.1 음성녹음및재생 ( 기능 4) 130 3.2 프로그램기능제약 130 제 4 장기타 131 4.1 추후방향 131 4.2 유지보수 131-11 -

2016 국어정보처리시스템경진대회 소 소개 1.1 소프트웨어명칭 1.1.1 명칭지도표시및음성녹음 / 재생기능을가진지역어수집및검색APP 뭐꼬!? 이다. 기존텍스트형식에머물러있던국어학연구범위를음성자료및위치정보까지도병행하여사용자가편리하게사용할수있는단계로확대하여누구나쉽게접근할수있는 APP이다. 1.1.2 설명이소프트웨어는연구자와학생들이현재까지수집한대규모지역어데이터를충분히활용한다. 기존의지역어수집 APP은해당지역어의정보만을얻을수있으나 뭐꼬!? 는정보와위치기반서비스, 녹음기능을탑재하여실시간으로지역어에대한정보를입력할수있으며, 원하는지역어를검색하여지도에표시하여보여줄수있다. 이러한지역어지도는기존의 APP들과차별화된기능으로써해당지역어가사용되는위치를정확하게알수있으며, 더나아가여러개의지역어에대한구분까지할수있는기능이다. 1.1.3 개발동기지역어는현재뉴스, 드라마, 영화등다양한대중매체에서공개적으로사용되고있다. 많은사람들의지역어에대한관심이늘어나고있다. 이에 뭐꼬!? 는한국인들에게올바른지역어의사용과명맥을이어나갈수있도록도움을주고자한다. 또한지역어에대한데이터관리, 지역어변화에대한정보등전문가들도사용하기에용이한 APP을만들고자하였다. 1.2 소프트웨어사용환경 - 지원os : Android 4.0.3 플랫폼이상스마트폰 - 권장메모리 : 16MB 이상 - 사용언어 : JAVA, PHP - 개발환경 : 서버 : APM(Apache, PHP, Mysql), JSON( 통신 ) 클라이언트 : Android Studio, JDK(1.8.x), 안드로이드기반스마트폰 - 텍스트인코딩 : UTF-8-120 -

지도표시및음성녹음 / 재생기능을가진지역어수집및검색 APP ' 뭐꼬!?' 1.3 소프트웨어특징 1.3.1 특징 1 지역어수집 1) 국립국어원에서배포한지역어자료 CD의데이터를기반으로제작 2) 해당지역어의녹음파일이없거나추가를원할시에사용자나관리자가직접녹음파일을저장하고수정할수있다. 2 지역어검색 1) 사용자가지역어를검색시, 해당지역어를서버에서찾고불러옴 2) 검색할때음성파일유무와지역어가통용되는위치정보를확인할수있다. 3 지역어지도표시 1) 사용자의현재위치정보를지역어와함께저장이가능하다. 2) 지역어와함께저장된위치정보를지도에표시할수있다. ( 마커 ) 4 음성녹음및재생 1) 국어정보원에서배포한지역어자료 CD에저장되어있는기존음성파일을불러온다. 2) 현재제공된 APP으로지역어녹음, 재생, 저장및수정이가능하고, 해당지역어의위치를표시할수있다. 1.3.2 장점 1 전문가 1) 기존에지역어를수집하는방식에서스마트폰을이용하여쉽게데이터를수집및검색할수있다. 2) 단어별로구분할수있는기능을활용하여지역어가어떠한환경요건으로인해다르게사용되었는지를쉽게구분하여볼수있다. 3) 연구중알지못했던다양한지역어를사용자가입력함으로써직접답사를하지않아도연구를할수있다. - 121 -

2016 국어정보처리시스템경진대회 2 학생 1) 국어책에서쉽게접할수없는지역어와거주지역이아닌지역에대한언어를쉽게접하며언어영역에대한지식의폭이넓어질수있다. 2) 관련학과의학생들은이어플리케이션을통해자료조사를보다쉽게할수있다. 3 일반인 1) 타지역에여행을가는경우, 지역어에대한부담감없이여행할수있다. 1.3.3 기대효과 1) 다양한기능과사용자편의성을가진스마트폰 APP 언어지도시스템을보급한다. 2) 전국적규모의언어정보를시각적으로이해할수있도록제시한다. 3) 언어연구등각계전문가가다양한조사자료를활용할수있는기반을마련한다. 4) 학생, 일반인들도쉽게지역어에접근할수있는기반을마련한다. 5) 국립국어원의조사자료활용도를높이고, 앞으로있을자료조사에효율적으로대비하는도구로사용한다. 6) 스마트폰만있으면언제어디서나지역어를확인할수있다. 7) 기존에조사된각종언어자료를통합할수있는도구를제공한다. 8) 구어와방언자료를교육에활용할수있도록시청각매체를제공한다. ) 다양한계층에서한국어의실상을잘파악할수있도록한다. 10) 무형의자산인언어자료를보존하고활용하는데기초자료로이용한다. - 122 -

지도표시및음성녹음 / 재생기능을가진지역어수집및검색 APP ' 뭐꼬!?' 실행 2.1 소프트웨어설치방법 Ÿ 현재는 APK 파일을다운받아서직접핸드폰에넣어야하지만추후 Google play store 에등록하여쉽게다운및설치가능하게변경예정 1. app-debug.apk 파일을안드로이드핸드폰에옮긴다. 2. 핸드폰의파일관리자로들어가 app-debug.apk 파일을실행시킨다. 그림 2.1) 파일관리자열기 그림 2.2) app-debug.apk 파일실행 - 123 -

2016 국어정보처리시스템경진대회 그림 2.3) 설치파일실행화면 그림 2.4) 설치완료화면 3. 알수없는출처의 APP으로인해설치가차단되었을때방법 - 설치가차단되었을경우는스마트폰기본설정에서 Play store에서다운받지않은 APP에대해서설치가불가능하게설정되어있는경우다. 이때그림 3.1) 과같이바로설정창으로넘어갈수있는화면이제공된다면설정버튼을클릭해서수정해주면된다. 그림 3.1) 핸드폰설정 APP 으로이동 그림 2.4) 알수없는출처체크 - 124 -

지도표시및음성녹음 / 재생기능을가진지역어수집및검색 APP ' 뭐꼬!?' 2.2 소프트웨어파일구조 2.2.1 주요파일설명 1 실행파일 1. app-debug.apk 파일 2 데이터파일 1. 모든데이터는서버및데이터베이스에저장된다. 2. 서버 ( 녹음파일저장 ) - record 폴더 : 사용자가녹음한파일이.mp4파일로저장되어진다. 3. 데이터베이스 ( 지역어정보저장 ) - record 테이블 : 지역어에대한정보 ( 표준어, 주소, 녹음파일위치등 ) 가저장된다. 2.2.2 전체구조 Project/ src/... 소스파일리소스파일폴더 main/... 소스파일폴더 res/... 레이아웃파일폴더 drawble/... APP이미지파일폴더 string/... 언어리소스폴더 AndroidManufest.mxl....APP권한설정파일 - 125 -

2016 국어정보처리시스템경진대회 2.3 소프트웨어실행 Ÿ 어플리케이션다운로드방법은 2.1 방식과동일하다. 2.3.1 소프트웨어실행 ( 인트로화면및메인화면 ) 그림 2.1) 인트로화면 그림 2.2) 메인화면 - 126 -

지도표시및음성녹음 / 재생기능을가진지역어수집및검색 APP ' 뭐꼬!?' 2.3.2 검색기능검색기능초기화면 ( 그림 3.1) 을기준으로사용자가검색하고싶은표준어를입력 ( 그림3.2) 하고검색버튼을누른다. 해당표준어에대응하는지역어리스트가화면에출력된다. 이때오른쪽에색상이표시가되는데이색상은지역어지도에보여질색상이다. 초기색상은모두동일하게설정되어있으며 ( 그림 3.3), 색상랜덤버튼을클릭하였을경우색상이변경되어보여진다 ( 그림 3.4) 그림 3.1) 검색하기초기화면 그림 3.2) 부추검색 그림 3.3) 검색완료화면 그림 3.4) 부추검색 - 127 -

2016 국어정보처리시스템경진대회 2.3.3 지역어지도보기기능 ( 지도 ) 검색된지역어가어느지역에서사용되어지는지간략하게확인하고싶으면검색된리스트를클릭하면사용되는지역을확인할수있다.( 그림 4.1) 만약사용되는지역을좀더세부적으로지도화면으로보고싶다면지도에보여질지역어를체크한다.( 그림 4.2) 그후색상통일버튼좌측에있는마커버튼을클릭하게되면체크되어진지역어가지도에보여지게된다.( 그림 4.3) 또한지도에표시된지역어에대해서세부적인정보및음성파일을듣고싶다면표시된마커를클릭하면세부정보화면이뜨게된다.( 그림 4.4) 여기서마이크표시의버튼을클릭하면음성파일을들을수있다. 그림 4.1) 중복된지역어확인 그림 4.2) 지도에보여질지역어체크 그림 4.3) 지역어지도보기 그림 4.3) 지도에표시된지역어세부정보확인 - 128 -

지도표시및음성녹음 / 재생기능을가진지역어수집및검색 APP ' 뭐꼬!?' 2.3.4 지역어정보입력기능 ( 녹음 ) 메인화면 ( 그림 5.1) 에서녹음하기기능으로들어가면녹음화면 ( 그림 5.2) 으로넘어가게된다. 이화면에서는지역어에대한녹음파일을생성할수있다. 가운데녹음버튼을클릭하게되었을시녹음중이라는표시로버튼이빨간색으로변하게된다.( 그림 5.3) 녹음중현재녹음파일의시간이가운데표시가되며, 녹음을완료하기위해서는맨우측네모버튼을클릭하면녹음이중지된다. 녹음한파일을재생하여이상이없는지확인하기위해서는맨좌측재생버튼을클릭하면녹음한파일을들어볼수있다. 녹음이완료되었다면다음버튼을클릭하여녹음파일에대한지역어정보를입력할수있는화면 ( 그림 5.4) 으로넘어간다. 이화면에서는현재나의위치가자동으로검색되어지도에표시되며해당주소가가운데보여진다. 그리고녹음파일에대한표준어및지역어를입력하고등록버튼을누르면지역어에대해녹음파일, 표준어, 지역어, 상세주소등이데이터베이스에저장된다. 그림 5.1) 메인화면 그림 5.2) 녹음초기화면 그림 5.3) 녹음중화면 그림 5.4) 녹음파일의표준어, 지역어및위치정보등록 - 12 -

2016 국어정보처리시스템경진대회 기능 3.1 프로그램기능 3.1.1 지역어수집 ( 기능1) 1) 스마트폰의녹음기능을이용하여지역어를녹음한다. 2) 스마트폰의 GPS기능을이용하여지역어를사용하는위치정보를입력한다. 3) 지역어에상대적인표준어를함께입력한다. 4) 지역어를제공한사람에대한정보를입력할수있다. 3.1.2 지역어검색 ( 기능2) 1) 정보를얻고자하는지역어또는표준어를입력하여검색한다. 2) 검색된단어와같은의미를가진모든지역어가리스트로나타난다. 3) 해당단어리스트에서단어별색상을선택해분류할수있다. 3.1.3 지역어지도표시 ( 기능3) 1) 우리나라지도에데이터가분류된색상으로나타난다.( 마커 ) ( 이때, 선택되지않은데이터는기본색으로제공한다.) 2) 지도상에서데이터 ( 마커 ) 를클릭했을때, 상세정보를볼수있는화면이제공된다. 3.1.4 음성녹음및재생 ( 기능4) 1) 지역어수집시음성녹음및녹음된음성을확인할수있다. 2) 지역어지도의상세정보화면에서데이터음성파일을재생할수있다. 3.2 프로그램기능제약 1) 현 APP은안드로이드 OS에서만가능하다. 2) 스마트폰종류에따라화면구성이달라질수있다. 3) 사용자가녹음, 위치정보에대한권한을 APP에주지않으면사용불가하다. ( 안드로이드버전 6.0( 마쉬멜로우 ) 이상에만해당 ) - 130 -

지도표시및음성녹음 / 재생기능을가진지역어수집및검색 APP ' 뭐꼬!?' 기타 4.1 추후방향 - 사용자들의의견을반영하여 UI/UX 개선 - 외국인에게도이용가능한외국어지원 - 아이폰 (IOS) 에서도사용가능한 APP 개발 - 지역어지도의세분화개발 ( 기호표시 ) 4.2 유지보수 - 관리자는출시후정기적으로사용자들의의견을수렴하여만족도높은 APP으로개선시킨다. - 지역어연구원들과의교류를통해더나은서비스로발전시킨다. - 불필요하거나중복된정보를주기적으로확인하여제거한다. - 131 -

문맥기반실시간한국어문장교정시스템 Ⅰ 국립국어원 문맥 기반 실시간 한국어 문장 교정 시스템 박영근, 최재성, 김재민, 이성동, 이현아 금오공과대학교 - 133 -

문맥기반실시간한국어문장교정시스템 례 제 1 장소프트웨어소개 136 1.1 소프트웨어명칭 136 1.2 소프트웨어사용환경 136 1.3 소프트웨어특징 136 제 2 장소프트웨어설치및실행 137 2.1 소프트웨어설치방법 137 2.2 소프트웨어파일구조 137 2.2.1 주요파일설명 137 2.2.2 전체구조 138 2.3 소프트웨어실행방법 138 제 3 장소프트웨어기능 140 3.1 프로그램기능 140 3.2 프로그램기능제약 140 제 4 장기타 140-135 -

문맥기반실시간한국어문장교정시스템 실행 2.1 소프트웨어설치방법 압축파일을원하는위치에압축해제함 2.2 소프트웨어파일구조 2.2.1 주요파일설명 1 실행파일 SentenceAnalysor.exe --- 소프트웨어실행파일 2 모듈파일 dll/imechecker.exe --- 한영변환여부를확인하고연동 dll/vcruntime.dll --- IMEChecker.exe 를구동하기위함 dll/ucrtbased.dll--- IMEChecker.exe 를구동하기위함 dll/mfc140ud.dll --- IMEChecker.exe 를구동하기위함 3 인터페이스파일 img/ --- 프로그램내인터페이스에사용할이미지파일 - 137 -

2016 국어정보처리시스템경진대회 2.2.2 전체구조 < 프로그램전체구조 > 2.3 소프트웨어실행 SentenceAnalysor.exe 파일을실행한다. 다른프로그램, 예를들어메모장, 한글, 인터넷브라우저등글을입력할수있는환경에서한글입력을시작한다. 프로그램은타프로세스의사용자입력과연동되어사용자의입력을 출력한다. 2 어절이생길경우, 즉공백이두번발생할경우분석결과를 출력한다. < 기본출력화면 > 기본출력화면에서는최종교정문구를보여주며, 다른추천어절은 보여주지않는다. 또한위의슬라이드바로투명도를조절할수있다. + 를 - 138 -