한국어 NLP2RDF 프레임워크 원유성 한국과학기술원, Semantic Web Research Center {styner0305, jiwoo35, prismriver, hahmyg, kschoi@kaist.ac.kr Korean NLP2RDF Framework Yousung Won O, Jiwoo Seo, Jeonguk Kim, YoungGyun Hahm, Key-sun Choi KAIST, Semantic Web Research Center 요약 본논문은 LOD2 커뮤니티과제중하나인 NLP2RDF 1) 를한국어에적용하면서고안한프레임워크에대해제시하고있다. 이프레임워크를통해, 한국어 NLP2RDF 는다양한한국어자연언어처리도구들로부터의결과물및다양한한국어언어자원에대한활용도높은이용방법에대한제시및국제적상호운용성을위해 NIF(NLP Interchange Format)[1] 규격을준수한 RDF(Resource Description Framework) 2) 를생성하기위한방법론을소개한다. 또한 NIF(NLP Interchange Format) 를통한포맷통일화과정에서발생하는 NIF 온톨로지 3) 의불완전성에대한개선방향에대해서도갼략하게제시한다. 1. 서론 주제어 : 자연언어처리, NIF, NLP2RDF 전세계적으로많은언어가존재하는만큼다양한자연언어처리도구가이용되고있고이러한자연언어처리도구로부터수많은형태의결과물들이생성되고있다. 이는다양한형태로존재하는결과물들을상호운용가능한형태로의변환을통해개방된데이터로써, 접근성을높일수있는자원이풍부해짐을의미한다. 따라서국제적으로다양하게사용되는자연언어처리결과물들을통합할필요성이있고, 이를위해서는자연언어처리결과물들을설명할수있는온톨로지와특정포맷으로단일화할수있는도구가필요하다 [2]. 본논문에서는다양한형태로존재하고있는한국어자연언어처리결과물및한국어언어자원을활용하여데이터가공및교환이용이한중간생성물로변환하고이를최종적으로 NIF(NLP Interchange Format) 를적용한 RDF(Resource Description Framework) 로추출해내는과정을담고있다. 이로부터한국어 NLP2RDF 프레임워크는, 앞서언급한일련의과정의당위성과함께한국어자연언어처리자원을위한하나의프레임워크를제시하고있다. 2 장에서는 NLP2RDF 에참여했던국외의연구사례에대한간략한소개와, 더불어 3 장에서는앞서언급한프레임워크에대한전체적인개요및각부분의역할에대하여소개한다. 4 장에서는본격적으로한국어자연언어처리결과물및한국어코퍼스에대한소개와이를입력데이터로이용하여중간생성물을생성하는 Wrapper 에대한소개, 그리고 5 장에서는중간생성물 (Wrapper 의출 http://aksw.org/projects/nlp2rdf.html http://www.w3.org/rdf/ 3) http://persistence.uni-leipzig.org/nlp2rdf /ontologies/nif-core/nif-core.html#d4e952 력 ) 을이용하여최종결과물인 RDF 로변환하는 Converter( 변환기 ) 에대하여소개한다. 마지막으로 6 장에서는한국어 NLP2RDF 프레임워크에대한성과및향후과제에대하여논의한다. 2. 관련연구 자연언어처리결과물을 RDF 로표현하는도구중에서영어문장용으로 Stanford Core-NLP 4) 가많이쓰인다. Stanford Core-NLP 는형태소분석, 개체명인식, 의존구문분석등다양한자연언어처리도구를통합하여쉽고빠르게언어학적주석 (Annotation) 을하는데그의의가있다. NLP2RDF 팀에서는, 개발한소프트웨어를이용하여이러한언어학적주석을 NIF(NLP Interchange Format) 로통일성있는변환을하였다 [3]. 한국어의경우에서도다양한자연언어처리도구및신뢰성있는언어자원이있지만아직까지는이렇게다양한형태의주석데이터를표준화하는노력은충분하지않은상황이다. 따라서여기서는이러한다양한언어자원을통합할수있는프레임워크를제안하고현재까지의성과물을공유하고자한다. 3. 한국어 NLP2RDF 플랫폼 한국어자연언어처리를위한프레임워크를구축하기위해서는다음과같이크게세가지의요소가필요하다. 첫번째로한국어텍스트에대한자연언어처리도구와이에대한결과물또는양질의한국어언어자원, 두번 http://nlp.stanford.edu/software/corenlp.shtml
째로는자연언어처리결과물을데이터가공이용이한 JSON 포맷으로변환하는 Wrapper, 세번째로는 Wrapper 의생성물로부터최종산출물인 NIF 를적용한 RDF 를생성해내는부분이다. 다음에서볼수있는그림 1 은이러한한국어 NLP2RDF 의설계를간단하게도식화한것이다. Converter 에대한구체적인소개를한다. 3. 한국어자연언어처리결과물및한국어코퍼스 한국어 NLP2RDF 프레임워크는다양한한국어자원에대응하는데그중에는한국어자연어리처리도구로부터의결과물과사람의직접적인주석작업을통해만들어진양질의한국어코퍼스등이있다. 그림 1. 한국어 NLP2RDF 구조설계 본논문에서는양질의한국어코퍼스인세종트리뱅크 [4], 그리고한국어자연언어처리도구인 ETRI 언어분석기와 KNP Parser로부터의결과물을리소스로활용하였고추가적으로한국어 FrameNet 언어자원 5) [5] 를한국어 NLP2RDF에적용하였다. 한국어 NLP2RDF는앞서언급한한국어언어자원을 Wrapper를통해특정한 JSON 포맷으로변환하고변환된 JSON 포맷의데이터로부터 Converter를통해최종산출물인 RDF로변환된다. Wrapper는한국어자연언어처리결과물과양질의한국어언어자원을특정 JSON 포맷으로변환한다. 그특정 JSON 포맷은 Pubannotation JSON에기반한다. Pubannotation 6) 은 DBCLS(Database Center for Life Science) 7) 의 Open Source Project의하나로서텍스트주석및코퍼스관리에유용한도구이며 TextAE 8) 를통한시각화 (Visualization) 에편리하다. 뿐만아니라이러한기능을 JSON 포맷을이용하여구현하기때문에사람과기계모두에게활용도가높은장점이있는유용한도구이다. Converter는앞서설명한 Pubannotation JSON을입력으로사용한다. 따라서 Converter는 Pubannotation JSON 포맷의데이터로부터한국어자연언어처리정보를 RDF로변환한다. 한국어 NLP2RDF 프레임워크에서는현재 NIF 2.0 Core Ontology를기반으로하고있고한국어특성을반영할수있는새로운 NIF 클래스및프로퍼티를제시하고있다. 다음장에서는한국어언어자원, Wrapper, 그리고 http://framenet.kaist.ac.kr/framenet/ http://www.pubannotation.org/docs/about/ http://dbcls.rois.ac.jp http://bionlp.dbcls.jp/textae/ 그림 2. 한국어 NLP2RDF 의언어자원 한국어자연언어처리도구로서대표적으로한나눔형태소분석기와 ETRI 언어분석기, KNP Parser 등이있고이로부터의다양한결과물과세종트리뱅크, 한국어 FrameNet 과같은신뢰성있는한국어언어자원을한국어 NLP2RDF 의입력으로사용한것을보고한다. 본논문에서는세종트리뱅크를기본으로하여한국어 NLP2RDF 에관해논의하도록하겠다. 그림 3. 세종트리뱅크코퍼스포맷의예 위그림 3 과같이자연언어처리도구의결과물은자연언어처리도구의특성에따라혹은주석방식에따라다양한모습을가지고있다. 한국어 NLP2RDF 는이러한데이터를바로 RDF 의형태로변환하는것이아닌데이터의관리적측면이나혹은가공측면에서활용도가높은 Pubannoation JSON 포맷으로변환하는기능을담고있다.
4. Wrapper: Pubannotation JSON 의생성 앞서서간단히소개한바와같이한국어 NLP2RDF 의 Wrapper 는다양한형태의한국어언어자원별로각각의특성에맞는 Wrapper 를개발하여중간생성물인 Pubannotation JSON 을생성하는데그목적이있다. 수있는장점이있다. 4.2 Pubanntation JSON 코퍼스관리도구 한국어 NLP2RDF Wrapper 의출력이 Pubannotation JSON 의형식을따르는이유는다음과같다. 첫번째로 Open Source Project 인 Pubannotation 10) 은텍스트주석과관련한언어자원을관리하는유용한툴인동시에기본포맷으로 JSON 을사용하기때문에프로그래밍언어와플랫폼에독립적으로데이터교환이용이한장점이있다. 아래그림 5 에서볼수있듯이 Pubannotation JSON 은 베이비붐세대쇠퇴기는옛말... 이라는텍스트에서분석할수있는정보, 예를들면형태소에대한태그, 어절이가지는구문태그, 어절간의의존관계, 본문에서의 Offset 정보등을표현하고있다. 그림 4. 한국어 NLP2RDF 의 Wrapper 4.1 Pubannotation JSON 의적절성 그림 5 에서볼수있듯이한국어 NLP2DF Wrapper 의출력인 Pubannotation JSON 은다음과같은구조를지니고있다. Text: Annotation 의대상이되는 Text Relation: Text 상에포함되어있는개체에대한의존관계를표현 Denotation: Text 상에포함되어있는개체의 Offset 및 Annotation 정보의표현 모든주석은주석의대상 (X) 에대한태그 (T) 를위한 denotation, 그리고두개의대상 (X 와 Y) 에대한관계태그 (R) 를위한 relation 부로나눌수있다. 그림 5 의예에서보는바와같이, denotation 부에서 베이비 /NNG, 붐 /NNG 와같은형태태그와 베이비붐 /NP 와같은통사태그를위치정보와함께주석을넣을수있다. 반면 relation 부에서는 쇠퇴기는 ( 위치정보 3-3) 이 옛말 ( 위치정보 3-4) 의 SUBJ 임을알수있다. 따라서같은원리로의존구조의수식관계, FrameNet 의 Frame 과 Frame Element 의관계 9) [6] 도같은 JSON 포맷으로표현하여그래프구조의일관성을표현할 https://framenet.icsi.berkeley.edu/fndrupal/home 그림 5. Pubannotation JSON 포맷의예 두번째로는동시에부가적으로 Open Source Project 에서제공하는 Pubdictionary 11), OntoFinder 12) 등의기능과연계할수있는확장성을가지고있다. 그림 6. 한국어언어자원의시각화의예 10) http://pubannotation.dbcls.jp 11) http://pubdictionaries.org 12) http://ontofinder.dbcls.jp
세번째로, Pubannotation JSON 은그림 6 에서와같이 Pubannotation 의부가기능중의하나인 TextAE 를이용한시각화 (Visualization) 의기능을포함하고있다. 따라서향후한국어 NLP2RDF 의웹서비스를통해한국어언어자원의시각화를통해사용자들의편의성을더할수있다. 5. Converter: NIF 를적용한 RDF 의추출 한국어 NLP2RDF 의 Converter 는 Wrapper 의출력인 Pubannotation JSON 을입력으로사용한다. 따라서앞서언급한 Pubannotation JSON 의이점과더불어한국어 NLP2RDF 의 Converter 는다른 NLP2RDF 구현방법과는차별화되는중간생성물로써규격화된 Pubannotation JSON 을데이터를입력으로사용하기때문에, 현재 Converter 에서사용되고있는 NIF 2.0 Ontology 의업데이트사항이발생하더라도유연한 API(Appication Programming Interface) 를제공해줄수있는장점이있다. 실제로, 본논문에서는자세하게다루지는않지만현재까지정의되어있는 NIF 2.0 Ontology 만으로는한국어의언어적특성을표현하기에는충분하지않은것이사실이다. 한국어 NLP2RDF 프레임워크는한국어의언어적특성을반영할수있는개선된 NIF 온톨로지의필요성을인지하고, 변동사항을즉각적으로반영할수있도록설계하였다. 특히최종결과물인 NIF 를적용한 RDF 생성하는 Converter 는 NIF 온톨로지의변화에민감하기때문에, 한국어 NLP2RDF 에서는중간생성물이용하여 RDF 를만들어내는형태로 Converter 를구현하였다. 그림 7. 한국어 NLP2RDF 의 Converter 기본적으로한국어 NLP2RDF 의 Converter 에서사용된 NIF 2.0 Core Ontology 는그림 8 과같은구조를가지고있다. 그림 8. NIF 2.0 Core Ontology 먼저, 임의의언어자원에존재하는단어, 문장, 본문등의개체들은고유한 URI 를부여받는다. URI 를부여하는대표적인방법으로 Offset 방법과 context-hash 방법이있는데 [7] 각각의장단점이있고, 현재는한국어 NLP2RDF 의전반적인프레임워크를설계하고구현하는단계이므로이부분에대한논의는시스템을운영하면서시행착오를겪은후에결정지어야할것으로보인다. 한국어 NLP2RDF 는우선 Offset 방법을적용하였고, 이는한국어 NLP2RDF 의프레임워크에서변경적용이가능하다. <Sejong#3=0_3> Offst 방법의적용형태는위와같이 Sejong 코퍼스의 3 번째 Text 의 0 번째부터 3 번째에위치한단어를의미하도록프레임워크에반영하였다. 앞서언급한것처럼이부분은향후표준화방안이필요하다. 이와같이각개체에대해 URI 가부여되면각개체는 NIF 의클래스와프로퍼티를통해 RDF 로표현된다. 다음으로한국어언어자원의정보를 RDF 로표현함에있어서기본적으로필요한 NIF 클래스및프로퍼티를다음과같이선별하여적용하였다. 여기서는한국어언어자원에 NIF 를적용함에있어다른언어와공통적으로사용할수있는부분과언어적특성이반영되어야할필요성이있는부분이있다. 본논문에서는이부분에대하여간략하게논의하고자한다. 5.1 공통적으로적용가능한기본 NIF Terminology 13) <Sejong#3=0_3> <rdf:type> <nif:word> <nif:anchorof> 베이비 <nif:beginindex> 0 <nif:endindex> 3 NIF 온톨로지의클래스및프로퍼티
<nif:postag> <Sejong:NNG> <nif:sentence> <Sejong#3=0_16> <nif:referencecontext> <Sejong#3=0_123>... <Sejong#3=0_16> <rdf:type> <nif:sentence>... 표현하였다. 또한 <nif:dependency> 프로퍼티를이용하여두어절간의의존관계를나타낼수있었다. 하지만각어절간의구문태그 (Sejong:SBJ) 를명시할수있는프로퍼티가없기때문에 <nif:dependencytag> 와같은프로퍼티를제안하고있다. 더불어활용도가높은한국어 FrameNet 코퍼스를위한방법도그림 10 에서와같이고안하여적용하였다. <Sejong#3=0_123> <rdf:type>... <nif:context> 이와같이기본적인 NIF 온톨로지를이용하여특정단어의위치정보 (beginindex, endindex) 및 Surface Form(anchorOf), 그리고그단어가포함된문장 (sentence) 과본문 (context) 에대한정보를표현하고있다. 하지만향후널리이용될지식베이스및추론기술을위한기초단계로서의프레임워크로활용할수있다라는측면을본다면, 그리고한국어의특성을반영한다는측면도고려한다면, 기존의 NIF 온톨로지로는충분치못하다라는결론을내릴수있었다. 이에대한자세한분석결과는향후논문에서논의될것이며여기서는간략한소개정도만하고자한다. 5.2 한국어 NLP2RDF 에필요한 NIF Terminology 본논문에서는한국어 NLP2RDF 프레임워크, 그중한국어언어자원의 RDF 화과정중 Converter 를설계하는데대표적으로요구되었던 NIF Terminology 에대해간단하게소개하도록하겠다. 앞서그림 6 의 베이비붐세대쇠퇴기는옛말... 에서 쇠퇴기는 이라는어절은 쇠퇴기 라는일반명사 (NNG) 와 는 이라는보조사 (JX), 두개의형태소로이루어져있다. 한국어에서는이렇게두어절사이에의존관계가이루어져있고이에대한 NIF Terminology 의적용에부족한면이있었다. 그림 10. 한국어 FrameNet 코퍼스에대한 NIF 적용 그림 10 에서볼수있듯이 Make_noise 라는 Frame 의 Target 으로써 울렸던 과관련한 Frame Element 및 Frame Element Filler 에대한표현을위해서는다음과같은 NIF Terminology 의필요성이대두되었다. NIF 클래스 : <nif:frame>, <nif:frametarget> <nif:frameelement>, <nif:frameelementfiller> NIF 프로퍼티 : <nif:frame>, <nif:frametarget> <nif:frameelement>, <frameelementfiller> 그림 9. 한국어어절간의의존구조표현 그림 9 와같이 쇠퇴기 는어절로서표현할수있는 NIF 클래스가필요했고한국어 NLP2RDF 의 Converter 에서는 NIF 온톨로지의클래스인 <nif:phrase> 이용하여 본논문에서는한국어언어자원을이용하는한국어 NLP2RDF 의프레임워크방안에대한것이목표이므로, 앞서설명한 NIF Terminology 의개선방향과관련해서는합리적인표준화에대한고민이필요하기때문에향후연구과제로써논의되어야하겠다. 이처럼한국어 NLP2RDF 의 Converter 는상당히일관성있는형태로규격화되어있는중간생성물, 즉 Wrapper 라는단계를거친생성물을이용하였고, 한국어자연언
어처리도구또는한국어언어자원에독립적으로, 앞으로검토될여지가있는 NIF 온톨로지의개선방향에따라유연하게시스템을수정할수있도록설계되었다. 6. 결론및향후과제 6.1 결론 한국어 NLP2RDF 는현재한국어자연언어처리도구에의한결과물과양질의한국어코퍼스에대해각각의 Wrapper 를개발완료하였고, 각 Wrapper 의출력으로부터 NIF 2.0 Core Ontology 및언어적특성에따라추가적으로제안하고있는 NIF Terminology 를적용한 Converter 를개발하였다. Pubannotation JSON 을출력으로생성하는한국어 NLP2RDF 의 Wrapper 는한국어언어자원을 Open Source Project 인 Pubannotation 의텍스트주석 (Annotation) 과관련한코퍼스관리기능에접목할수있고다양한부가적인기능에접목가능하다. 또한활용도가높은 JSON 형태의결과물을제공하기때문에데이터전송및가공에유용하다. 다음으로한국어 NLP2RDF 의 Converter 는다른 NLP2RDF 와는차별화된, Wrapper 출력물, 즉 Pubannotation JSON 이라는통일되고규격화된중간생성물을입력으로활용하기때문에향후 NIF 온톨로지의개선내용을유연하게받아들이고사용자들로하여금일관성있는 API 를제공할수있는문을열어두었다. 이렇게한국어 NLP2RDF 프레임워크는양질의한국어언어자원과이를활용한 Wrapper 와타모듈과의확장성, 그리고앞으로더욱발전해나갈 NIF 온톨로지를지속적으로수용할수있는 Converter 를바탕으로설계되었다. 결론적으로, 다양한한국어언어자원에대해한국어 NLP2RDF 프레임워크 ( 기본적인 NIF 온톨로지및언어자원의특성에맞게추가된 NIF Terminology 사용 ) 를통하여생성된결과물들을살펴본다면다음과같다. - 세종트리뱅크약 3900 개문장으로부터약 120 만개의 Triple 생성 - KNP Parser 로부터의결과물인약 3800 개의문장으로부터약 140 만개의 Triple 생성 - 한국어 FrameNet 언어자원약 4000 개문장으로부터약 11 만개의 Triple 생성 - ETRI 도구테스트셋약 20 개문장으로부터약 5000 개 Triple 생성 ( 형태소, 의존구조, NE 14) 태그포함 ) 6.2 향후과제 현존하는양질의언어자원을찾아내고이에대한 RDF 화를통해경쟁력있는 Knowledge Base 를구축하는것이 목적이다. 따라서, 우선 ETRI 언어분석기로분석된한국어위키피디아코퍼스, 약 290 만문장에대하여한국어 NLP2RDF 프레임워크를통한최종결과물로서 RDF 를생성해내는것이필요하다. 앞선결과에서보면 ETRI 도구로부터생성해낸테스트셋문장약 20 개로부터 5000 여개의 Triple 이생성되었으므로이와비슷하게약 290 만문장으로부터약 7 억개의 Triple 이생성될것이라기대한다. 무엇보다가장중요한것은한국어의언어적특성및코퍼스에따른특성을반영한 NIF Ontology 의개선과이에대한표준화가필요하다. 앞서간략하게설명하였지만현재한국어 NLP2RDF 프레임워크에적용한 NIF Terminology 의일부는한국어 NLP2RDF 의 Converter 를개발하면서고안한임시 Terminology 일뿐공식적체계화된것은아니다. 이렇듯빠른시일내에 NIF 온톨로지의개선이필요하고이를표준화하는것이시급하다. 또한한국어언어자원의형태소, 단어, 문장과같은개체에대한 URI 부여문제도숙제로남아있다. 이렇듯한국어 NLP2RDF 프레임워크는이와같은 NIF(NLP Interchange Format) 의불완전성을보완해야하는필요성을제시한것에그의의가크다고할수있다. 사사 이논문은 2014 년도정부 ( 미래창조과학부 ) 의재원으로 한국연구재단의지원을받아수행된기초연구사업임 (No. 2010-0022444) 참고문헌 [1] Sebastian Hellmann, Jens Lehmann, Sören Auer, "NIF: An ontology-based and linked-data-aware NLP Interchange Format", 2012 [2] Sebastian Hellmann, Jens Lehmann, Sören Auer, and Martin Brümmer1, Integrating NLP using Linked Data, ISWC, 2013 [3] 함영균, 임경태, Martin Rezk, 박정열, 윤용운, 최기선, "Linked Data 를위한한국어자연언어처리플랫폼 ", 제 24 회한글및한국어정보처리학술대회, 2012 [4] 국립국어원, 21 세기세종계획, 2012 [5] Jungyeul Park, Sejin Nam, Youngsik Kim, Younggyun Hahm, Dosam Hwang, Key-Sun Choi, Frame Semantic Web: a Case Study for Korean, ISWC, 2014. [6] Collin F. Baker, FrameNet: A Knowledge Base for Natural Language Processing, ACL, 2014 [7] LOD2 Creating Knowledge out of Interlinke Data, Deliverable 3.2.1. NLP2RDF, 2011, pp.15 Named Entity