package Ġkr . by delta . ko ala . test Ċ Ċ import Ġkr . by delta . ko ala .* Ċ import Ġkr . by delta . ko ala . data . Dep Edge Ċ import Ġkr . by delta . ko ala . kk ma .* Ċ import Ġorg . sn u . ids . kk ma . ma . M orp heme Analyzer Ċ import Ġorg . sn u . ids . kk ma . sp . ParseTree Edge Ċ import Ġorg . sn u . ids . kk ma . sp . Parse TreeNode Ċ import Ġorg . spe k framework . spe k 2 . Spe k Ċ Ċ object ĠK K MAT ag Conversion Test Ġ: ĠSpe k ( Tag Conversion Spe k ( ĊĠĠĠĠĠĠĠ Ġto Ġ= Ġ{ Ġit . from Se j ong POS () Ġ}, ĊĠĠĠĠĠĠĠ Ġfrom Ġ= Ġ{ Ġit . to Se j ong POS () Ġ}, ĊĠĠĠĠĠĠĠ Ġget Mapping Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . VX Ġ-> ĠlistOf ( Conversion (" VX V "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConversion (" VX A ", Ġto Tag ger Ġ= Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . MM Ġ-> ĠlistOf ( Conversion (" MD T ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, ĠConversion (" MD N ", Ġto Tag ger Ġ= Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . MA J Ġ-> ĠlistOf ( Conversion (" MAC ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . J KB Ġ-> ĠlistOf ( Conversion (" JK M ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . J KV Ġ-> ĠlistOf ( Conversion (" JK I ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . EP Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Conversion (" E PT "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConversion (" E PH ", Ġto Tag ger Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConversion (" E PP ", Ġto Tag ger Ġ= Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . EF Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Conversion (" E FN "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConversion (" EF Q ", Ġto Tag ger Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConversion (" E FO ", Ġto Tag ger Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConversion (" E FA ", Ġto Tag ger Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConversion (" EFI ", Ġto Tag ger Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConversion (" E FR ", Ġto Tag ger Ġ= Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . EC Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Conversion (" E CE "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConversion (" ECD ", Ġto Tag ger Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConversion (" ECS ", Ġto Tag ger Ġ= Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . ET M Ġ-> ĠlistOf ( Conversion (" ET D ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . SL Ġ-> ĠlistOf ( Conversion (" OL ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . SH Ġ-> ĠlistOf ( Conversion (" OH ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . SN Ġ-> ĠlistOf ( Conversion (" ON ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . NF Ġ-> ĠlistOf ( Conversion (" UN ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . NV Ġ-> ĠlistOf ( Conversion (" UV ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPOS . NA Ġ-> ĠlistOf ( Conversion (" UE ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠlistOf ( Conversion ( it . toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ )) ĊĊ Ċ object ĠK KM AD ict Test Ġ: ĠSpe k ( Dict Spe k ( Dictionary , Ġget Tag ger Ġ= Ġ{ ĠT agger () Ġ})) Ċ Ċ object ĠK K MAT agger Test Ġ: ĠSpe k ( Tag ger Spe k ( ĊĠĠĠĠĠĠĠ Ġget Tag ger Ġ= Ġ{ ĠT agger () Ġ}, ĊĠĠĠĠĠĠĠ Ġtag Sent By Orig Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkk ma Ġ= ĠM orp heme Analyzer () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal Ġ= Ġkk ma . divide To Sent ences ( kk ma . leave Just Best ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkk ma . post Process ( kk ma . analyze ( it )) )). flatten () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġoriginal . join ToString (" Ġ") Ġ{ Ġs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . join ToString ("+ ") Ġ{ Ġm Ġ-> Ġ"${ m . string }/${ m . tag }" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsurface Ġ= Ġoriginal . join ToString (" Ġ") Ġ{ Ġs Ġ-> Ġs . exp Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsurface Ġto Ġtag ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġtag Para By Orig Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkk ma Ġ= ĠM orp heme Analyzer () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal Ġ= Ġkk ma . divide To Sent ences ( kk ma . leave Just Best ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkk ma . post Process ( kk ma . analyze ( it )))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal . map Ġ{ Ġs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . join ToString (" Ġ") Ġ{ Ġe Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . join ToString ("+ ") Ġ{ Ġm Ġ-> Ġm . string Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġis Sentence Splitter Implemented Ġ= Ġfalse Ċ )) Ċ Ċ fun ĠDep Edge . get Original String () Ġ= Ġ"${ this . original Label } (${ this . g overn or ?. id Ġ?: Ġ- 1 }, Ġ${ this . dependent . id })" Ċ Ċ fun ĠParse Tree Edge . get Original String ( nodes : ĠList < Parse TreeNode >) Ġ= ĊĠĠĠĠĠĠĠ Ġ"${ this . relation } (${ nodes . get OrNull ( this . from Id )?. eo je ol ?. first M orp ?. index ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ- 1 }, Ġ${ nodes [ this . to Id ]. eo je ol ?. first M orp ?. index })" Ċ Ċ object ĠK K MA Parser Test Ġ: ĠSpe k ( Parser Spe k ( ĊĠĠĠĠĠĠĠ Ġget Parser Ġ= Ġ{ ĠParser () Ġ}, ĊĠĠĠĠĠĠĠ Ġparse Sent By Orig Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkk ma Ġ= ĠM orp heme Analyzer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkk pa Ġ= Ġorg . sn u . ids . kk ma . sp . Parser () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrees Ġ= Ġkk ma . divide To Sent ences ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkk ma . leave Just Best ( kk ma . post Process ( kk ma . analyze ( it ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). map Ġ{ Ġx Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx . forEach Indexed Ġ{ Ġindex , Ġe o je ol Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe o je ol . first M orp . index Ġ= Ġindex ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkk pa . parse ( x ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrees . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . sent en ec Ġto Ġit . edge List . map Ġ{ Ġedge Ġ-> Ġedge . get Original String ( it . node List ) Ġ}. sorted (). join ToString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġparse Sent By Ko ala Ġ= Ġ{ Ġsent , Ġparser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġparser . analyze ( sent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . map Ġ{ Ġs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeps Ġ= Ġs . get Dependencies () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdep Str Ġ= Ġdeps ?. as Sequence ()?. map Ġ{ Ġit . get Original String () Ġ} ?. sorted ()?. join ToString () Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . surface String () Ġto Ġdep Str ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ ))