@ file : Jvm Name (" Util ") Ċ @ file : Jvm Mult if ile Class Ċ Ċ package Ġkr . by delta . ko ala . h nn Ċ Ċ import Ġedu . ber keley . nlp . PC F GL A .* Ċ import Ġedu . ber keley . nlp . syntax . Trees Ċ import Ġedu . ber keley . nlp . util . Number er Ċ import Ġka ist . cil ab . jh ann an um . common . Eo je ol Ċ import Ġka ist . cil ab . jh ann an um . common . communication . Plain Sentence Ċ import Ġka ist . cil ab . jh ann an um . common . communication . Sentence Ċ import Ġka ist . cil ab . jh ann an um . common . communication . Set Of Sent ences Ċ import Ġka ist . cil ab . jh ann an um . common . workflow . Workflow Ċ import Ġka ist . cil ab . jh ann an um . morph analyzer . chart morph analyzer . M orp heme Chart Ċ import Ġka ist . cil ab . jh ann an um . morph analyzer . chart morph analyzer . Post Processor Ċ import Ġka ist . cil ab . jh ann an um . morph analyzer . chart morph analyzer . Sim ti Ċ import Ġka ist . cil ab . jh ann an um . plugin . major . morph analyzer . Morph Analyzer Ċ import Ġka ist . cil ab . jh ann an um . plugin . major . morph analyzer . impl . Chart Morph Analyzer Ċ import Ġka ist . cil ab . jh ann an um . plugin . major . post agger . impl . H MM Tag ger Ċ import Ġka ist . cil ab . jh ann an um . plugin . supp lement . M orp heme Processor . Unknown Morph Processor . Unknown Processor Ċ import Ġka ist . cil ab . jh ann an um . plugin . supp lement . Plain Text Processor . Inform al Sentence Filter . Inform al Sentence Filter Ċ import Ġka ist . cil ab . jh ann an um . plugin . supp lement . Plain Text Processor . Sentence Segment or . Sentence Segment or Ċ import Ġka ist . cil ab . parser . ber keley adapt ation . Configuration Ċ import Ġka ist . cil ab . parser . corpus converter . se j ong 2 tre eb ank . se j ong tree . N ont erm inal Node Ċ import Ġka ist . cil ab . parser . corpus converter . se j ong 2 tre eb ank . se j ong tree . ParseTree Ċ import Ġka ist . cil ab . parser . corpus converter . se j ong 2 tre eb ank . se j ong tree . TreeNode Ċ import Ġka ist . cil ab . parser . dependency . D Node Ċ import Ġka ist . cil ab . parser . dependency . D Tree Ċ import Ġka ist . cil ab . parser . ps g 2 dg . Converter Ċ import Ġkr . by delta . ko ala . Dependency Tag Ċ import Ġkr . by delta . ko ala . POS Ċ import Ġkr . by delta . ko ala . Phrase Tag Ċ import Ġkr . by delta . ko ala . correct Verb Apply Ċ import Ġkr . by delta . ko ala . data . Dep Edge Ċ import Ġkr . by delta . ko ala . data . M orp heme Ċ import Ġkr . by delta . ko ala . data . Syntax Tree Ċ import Ġkr . by delta . ko ala . data . Word Ċ import Ġkr . by delta . ko ala . proc . Can Parse Dependency Ċ import Ġkr . by delta . ko ala . proc . Can Parse Syntax Ċ import Ġkr . by delta . ko ala . proc . Can Split Sentence Ċ import Ġkr . by delta . ko ala . proc . Can Tag Only A Paragraph Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ /** Ċ Ġ* Ġíķľ ëĤĺ ë Ī Ķ Ġë¬¸ ìŀ¥ ë¶Ħ ë¦¬ ê¸° ìĿĺ ĠKo al aN LP ĠWrapper ìŀħëĭĪëĭ¤ . Ċ Ġ* Ċ Ġ* Ġ@ since Ġ 1 . x Ċ Ġ*/ Ċ class ĠSentence Splitter Ġ: ĠCan Split Sentence Ġ{ ĊĠĠĠ Ġ/** Ġíķľ ëĤĺ ë Ī Ķ Ġë¶Ħ ìĦĿ ĠWorkflow Ġ**/ ĊĠĠĠ Ġprivate Ġval Ġworkflow : ĠWorkflow Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġworkflow Ġ= ĠWorkflow () ĊĠĠĠĠĠĠĠ Ġval ĠbasePath Ġ= ĠDictionary . extract Resource () ĊĊĠĠĠĠĠĠĠ Ġworkflow . append Plain Text Processor ( Sentence Segment or (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbasePath Ġ+ ĠFile . separator Ġ+ Ġ" conf " Ġ+ ĠFile . separator Ġ+ Ġ" Sentence Segment . json ") ĊĠĠĠĠĠĠĠ Ġworkflow . append Plain Text Processor ( Inform al Sentence Filter (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbasePath Ġ+ ĠFile . separator Ġ+ Ġ" conf " Ġ+ ĠFile . separator Ġ+ Ġ" Inform al Sentence Filter . json ") ĊĠĠĠĠĠĠĠ Ġworkflow . activate Workflow ( false ) ĊĊĠĠĠĠĠĠĠ Ġworkflow ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġì£¼ ìĸ´ ì§Ħ Ġë¬¸ ëĭ¨ Ġ[ text ] ë¥¼ Ġë¬¸ ìŀ¥ ëĭ¨ ìľĦ ë¡ľ Ġë¶Ħ ë¦¬ íķ©ëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 1 . x ĊĠĠĠĠ Ġ* Ġ@ param Ġtext Ġë¬¸ ìŀ¥ ëĭ¨ ìľĦ ë¡ľ Ġë¶Ħ ë¦¬ íķł ĠString . ĊĠĠĠĠ Ġ* Ġ@ return Ġë¬¸ ìŀ¥ ëĭ¨ ìľĦ ë¡ľ Ġë¶Ħ ë¦¬ ëĲľ ĠString ìĿĺ Ġ[ List ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġsentences ( text : ĠString ): ĠList < String > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text . isBlank ()) Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworkflow . analyze ( text ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġout Of Result Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(! out Of Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsent Ġ= Ġworkflow . getResult Of Sentence ( SENT ENCE _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer Ġ+= Ġsent . sentence ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Of Result Ġ= Ġsent Ġ== Ġnull Ġ|| Ġsent . is EndOf Document ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġstatic Ġfields Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** Ġíķľ ëĤĺ ë Ī Ķ ìĿĺ Ġë¹ Ī Ġë¬¸ ìŀ¥ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠS ENT ENCE _ TYPE Ġ= ĠPlain Sentence ( 0 , Ġ 0 , Ġfalse ) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* Ġíķľ ëĤĺ ë Ī Ķ Ġí Ĵ Ī ìĤ¬ ë¶Ħ ìĦĿ ê¸° ìĿĺ ĠKo al aN LP ĠWrapper ìŀħëĭĪëĭ¤ . Ċ Ġ*/ Ċ class ĠT agger Ġ: ĠCan Tag Only A Paragraph < Sentence >() Ġ{ ĊĠĠĠ Ġ/** Ġíķľ ëĤĺ ë Ī Ķ Ġí Ĵ Ī ìĤ¬ ë¶Ħ ìĦĿ ĠWorkflow Ġ**/ ĊĠĠĠ Ġprivate Ġval Ġworkflow Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġworkflow Ġ= ĠWorkflow () ĊĠĠĠĠĠĠĠ Ġval ĠbasePath Ġ= ĠDictionary . extract Resource () ĊĊĠĠĠĠĠĠĠ Ġworkflow . append Plain Text Processor ( Sentence Segment or (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbasePath Ġ+ ĠFile . separator Ġ+ Ġ" conf " Ġ+ ĠFile . separator Ġ+ Ġ" Sentence Segment . json ") ĊĠĠĠĠĠĠĠ Ġworkflow . append Plain Text Processor ( Inform al Sentence Filter (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbasePath Ġ+ ĠFile . separator Ġ+ Ġ" conf " Ġ+ ĠFile . separator Ġ+ Ġ" Inform al Sentence Filter . json ") ĊĊĠĠĠĠĠĠĠ Ġworkflow . set Morph Analyzer ( Safe Chart Morph Analyzer (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbasePath Ġ+ ĠFile . separator Ġ+ Ġ" conf " Ġ+ ĠFile . separator Ġ+ Ġ" Chart Morph Analyzer . json ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbasePath Ġ+ ĠFile . separator ) ĊĠĠĠĠĠĠĠ Ġworkflow . append M orp heme Processor ( Unknown Processor (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbasePath Ġ+ ĠFile . separator Ġ+ Ġ" conf " Ġ+ ĠFile . separator Ġ+ Ġ" Unknown Morph Processor . json ") ĊĊĠĠĠĠĠĠĠ Ġworkflow . set Pos Tag ger ( H MM Tag ger (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbasePath Ġ+ ĠFile . separator Ġ+ Ġ" conf " Ġ+ ĠFile . separator Ġ+ Ġ" H mm Pos Tag ger . json ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbasePath Ġ+ ĠFile . separator ) ĊĠĠĠĠĠĠĠ Ġworkflow . activate Workflow ( false ) ĊĠĠĠĠĠĠĠ Ġworkflow ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġë³Ģ íĻĺ ëĲĺ ì§Ģ ìķ Ĭ ìĿĢ , Ġ[ text ] ìĿĺ Ġë¶Ħ ìĦĿ ê²° ê³¼ Ġ[ List ]< ka ist . cil ab . jh ann an um . common . communication . Sentence > ë¥¼ Ġë°ĺíĻĺ íķ©ëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 1 . x ĊĠĠĠĠ Ġ* Ġ@ param Ġtext Ġë¶Ħ ìĦĿ íķł ĠString . ĊĠĠĠĠ Ġ* Ġ@ return ĠìĽĲ ë³¸ Ġë¶Ħ ìĦĿ ê¸° ìĿĺ Ġê²°ê³¼ ìĿ¸ Ġë¬¸ ìŀ¥ ìĿĺ Ġëª© ë¡Ŀ ìŀħëĭĪëĭ¤ . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġtag Paragraph Original ( text : ĠString ): ĠList < Sentence > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text . isBlank ()) Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( workflow ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworkflow . analyze ( text ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= Ġmutable ListOf < Sentence >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġout Of Result Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(! out Of Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsent Ġ= Ġworkflow . getResult Of Sentence ( SENT ENCE _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer Ġ+= Ġsent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Of Result Ġ= Ġsent Ġ== Ġnull Ġ|| Ġsent . is EndOf Document ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġka ist . cil ab . jh ann an um . common . communication . Sentence ĠíĥĢ ìŀħ ìĿĺ Ġë¶Ħ ìĦĿ ê²° ê³¼ Ġ[ result ] ë¥¼ Ġë³Ģ íĻĺ , ĊĠĠĠĠ Ġ* Ġ[ kr . by delta . ko ala . data . Sentence ] ë¥¼ Ġêµ¬ìĦ± íķ©ëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 1 . x ĊĠĠĠĠ Ġ* Ġ@ param Ġresult Ġë³Ģ íĻĺ íķł Ġë¶Ħ ìĦĿ ê²° ê³¼ . ĊĠĠĠĠ Ġ* Ġ@ return Ġë³Ģ íĻĺ ëĲľ Ġ[ kr . by delta . ko ala . data . Sentence ] Ġê°Ŀì²´ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġconvert Sentence ( result : ĠSentence ): Ġkr . by delta . ko ala . data . Sentence Ġ= ĠT agger . convert ( result ) ĊĊĊĠĠĠ Ġ/** Ġstatic Ġfields Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** Ġíķľ ëĤĺ ë Ī Ķ ìĿĺ Ġë¹ Ī Ġë¬¸ ìŀ¥ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠS ENT ENCE _ TYPE Ġ= ĠSentence ( 0 , Ġ 0 , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġka ist . cil ab . jh ann an um . common . communication . Sentence ĠíĥĢ ìŀħ ìĿĺ Ġë¶Ħ ìĦĿ ê²° ê³¼ Ġ[ result ] ë¥¼ Ġë³Ģ íĻĺ , ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ kr . by delta . ko ala . data . Sentence ] ë¥¼ Ġêµ¬ìĦ± íķ©ëĭĪëĭ¤ . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ since Ġ 1 . x ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġresult Ġë³Ģ íĻĺ íķł Ġë¶Ħ ìĦĿ ê²° ê³¼ . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġë³Ģ íĻĺ ëĲľ Ġ[ kr . by delta . ko ala . data . Sentence ] Ġê°Ŀì²´ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġconvert ( result : ĠSentence ): Ġkr . by delta . ko ala . data . Sentence Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġkr . by delta . ko ala . data . Sentence ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . eo je ols . zip ( result . plain Eo je ols ). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( eo je ol , Ġplain ) Ġ= Ġit ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWord ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplain , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe o je ol . m orp he mes . zip ( eo je ol . tags ). map Ġ{ Ġpair Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( morph , Ġtag ) Ġ= Ġpair ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM orp heme ( morph , Ġtag . to Se j ong POS (), Ġtag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġíķľ ëĤĺ ë Ī Ķ ĠChart Morph Analyzer ë¥¼ Ġê°ľ ëŁ ī íķľ Ġíģ´ëŀĺìĬ¤ . Ċ Ġ* Ċ Ġ* Ġ* ĠìĤ¬ìļ©ìŀĲ ĠìĤ¬ ìłĦ ìĿĦ ĠëıĻ ìłģìľ¼ë¡ľ Ġë¶Ī ëŁ¬ ìĺ ¬ ĠìĪĺ ĠìŀĪ ëıĦë¡Ŀ ĠìĪĺ ìłķ íķĺê¸° ĠìľĦ íķ´ìĦľ , ĠìłĦ ì²´ Ġíģ´ëŀĺìĬ¤ ìĿĺ Ġë³ µ ìłľ ê°Ģ ĠíķĦìļĶ íķ¨ . Ċ Ġ* Ġ* Ġì£¼ ìļĶ Ġë³ĢìĪĺ ëĵ¤ ìĿ´ Ġ' private ' ìľ¼ë¡ľ ĠìĦł ìĸ¸ ëĲĺìĸ´ ĠìŀĪ ìĸ´ , ĠChart Morph Analyzer ë¥¼ Ġìĥģ ìĨį íķĺìĹ¬ ĠìĪĺ ìłķ íķł ĠìĪĺ ĠìĹĨ ìĿĮ Ċ Ġ* Ġ* Ġëª¨ëį¸ ìĿĺ ĠPath ë¥¼ Ġìŀ Ħ ìĭľ Ġíı ´ë įĶ ë¡ľ ĠìĪĺ ìłķ íķ´ìķ¼ Ġíķ¨ . Ċ Ġ* Ċ Ġ* ĠìĽĲ ë³¸ ĠíĮĮìĿ¼ ìĿĢ Ġ` ka ist . cil ab . jh ann an um . plugin . major . morph analyzer . impl . Chart Morph Analyzer ` ìĿ´ ë©° , ĠìĿ´ Ġclass Ġì½Ķëĵľ ìĿĺ ĠìłĢ ìŀĳ ê ¶ Į ìĿĢ Ġíķľ ëĤĺ ë Ī Ķ Ġê°ľë°ľ í ĮĢ ìĹĲ ĠìŀĪ ìĿĮ . Ċ Ġ* Ċ Ġ* Ġ@ since Ġ 1 . x Ċ Ġ*/ Ċ internal Ġclass ĠSafe Chart Morph Analyzer Ġ: ĠM orph Analyzer Ġ{ ĊĠĠĠ Ġ/** Ġë¶Ħ ìĦĿ ëĲľ Ġìĸ ´ ìł Ī Ġëª© ë¡Ŀ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġe o je ol List Ġ= ĠLinkedList < Eo je ol >() ĊĠĠĠ Ġ/** ĠíĽĦ ì² ĺë¦¬ Ġê¸°ëĬ¥ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġpost Proc Ġ= ĠPost Processor () ĊĠĠĠ Ġ/** Ġíĺķ íĥľ ìĨĮ Ġì° ¨ íĬ¸ Ġë¶Ħ ìĦĿ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġchart : ĠM orp heme Chart Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġsynchronized ( Dictionary ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsim ti Ġ= ĠSim ti () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsim ti . init () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠM orp heme Chart ( Dictionary . tag Set , ĠDictionary . connection , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDictionary . system Dic , ĠDictionary . user Dic , ĠDictionary . num Autom ata , Ġsim ti , Ġe o je ol List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshutdown () Ġ{} ĊĊĠĠĠ Ġ/** Ġìĸ ´ ìł Ī Ġë¶Ħ ìĦĿ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġprocess Eo je ol ( plain Eo je ol : ĠString ): ĠArray < Eo je ol > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġanalysis Ġ= ĠDictionary . analy zed Dic . get ( plain Eo je ol ) ĊĠĠĠĠĠĠĠ Ġthis . eo je ol List . clear () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( analysis Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġst Ġ= ĠString Tokenizer ( analysis , Ġ"^ ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( st . hasMore Tokens ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( m orp he mes , Ġtags ) Ġ= Ġst . nextToken () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. split ("[ +/ ] ". to Regex ()). drop Last While Ġ{ Ġit . isEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. chunk ed ( 2 ) Ġ{ Ġit [ 0 ] Ġto Ġit [ 1 ] Ġ}. unzip () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . eo je ol List . add ( Eo je ol ( m orp he mes . to Typed Array (), Ġtags . to Typed Array ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . chart . init ( plain Eo je ol ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . chart . analyze () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . chart . getResult () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ(_ : Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . eo je ol List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . eo je ol List . add ( Eo je ol ( array Of ( plain Eo je ol ), ĠarrayOf (" n qq "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( eo je ol List . isEmpty () Ġ&& Ġplain Eo je ol . isNotEmpty ()) ĠarrayOf ( Eo je ol ( array Of ( plain Eo je ol ), ĠarrayOf (" f "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġthis . eo je ol List . to Typed Array () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġë¶Ħ ìĦĿ ĠìĪĺ íĸī Ġ**/ ĊĠĠĠ Ġoverride Ġfun Ġmorph Analyze ( ps : ĠPlain Sentence ): ĠSet Of Sent ences Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġst Ġ= ĠString Tokenizer ( ps . sentence , Ġ" Ġ\ t ") ĊĠĠĠĠĠĠĠ Ġval Ġe o je ol Num Ġ= Ġst . count Tokens () ĊĠĠĠĠĠĠĠ Ġval Ġplain Eo je ol Array Ġ= ĠArrayList < String >( eo je ol Num ) ĊĠĠĠĠĠĠĠ Ġval Ġe o je ol Set Array Ġ= ĠArrayList < Array < Eo je ol >>( eo je ol Num ) ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( st . hasMore Tokens ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplain Eo je ol Ġ= Ġst . nextToken () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplain Eo je ol Array . add ( plain Eo je ol ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe o je ol Set Array . add ( this . process Eo je ol ( plain Eo je ol )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis . post Proc . do Post Processing ( Set Of Sent ences ( ps . document ID , Ġps . sentence ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġps . is EndOf Document , Ġplain Eo je ol Array , Ġe o je ol Set Array )) Ġ?: Ġthrow ĠIllegalStateException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġì ´Ī ê¸° íĻĶ Ġ**/ ĊĠĠĠ Ġoverride Ġfun Ġinitialize ( configFile : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinitialize ( configFile , ĠConfiguration . han Base Dir ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġì ´Ī ê¸° íĻĶ Ġ**/ ĊĠĠĠ Ġoverride Ġfun Ġinitialize ( configFile : ĠString ?, Ġdummy : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠDictionary . load Dictionary () ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġíķľ ëĤĺ ë Ī Ķ Ġêµ¬ ë¬¸ êµ¬ ì¡° Ġë°ı ĠìĿĺ ì ¡´ êµ¬ ë¬¸ Ġë¶Ħ ìĦĿ ê¸° Ċ Ġ* Ċ Ġ* Ġ## Ġì°¸ ê³ł Ċ Ġ* Ġ** êµ¬ ë¬¸ êµ¬ ì¡° Ġë¶Ħ ìĦĿ ** ìĿĢ Ġë¬¸ ìŀ¥ ìĿĺ Ġêµ¬ìĦ± ìļĶ ìĨĮ ëĵ¤ ( ìĸ´ ìł Ī , Ġêµ¬ , Ġìł Ī ) ìĿ´ ĠìĿ´ë £ ¨ ëĬĶ Ġë¬¸ ë²ķ ìłģ Ġêµ¬ ì¡° ë¥¼ Ġë¶Ħ ìĦĿ íķĺëĬĶ Ġë°©ë²ķ ìŀħëĭĪëĭ¤ . Ċ Ġ* ĠìĺĪ ) Ġ' ëĤĺ ëĬĶ Ġë° ¥ ìĿĦ Ġë ¨ ¹ ìĹĪ ê³ł , Ġìĺģ í Ŀ ¬ ëĬĶ Ġì§ Ĳ ìĿĦ Ġì Į Į ëĭ¤ ' ëĿ¼ ëĬĶ Ġë¬¸ ìŀ¥ ìĹĲëĬĶ Ċ Ġ* Ġ 2 ê°ľ ìĿĺ Ġìł Ī ìĿ´ ĠìŀĪìĬµëĭĪëĭ¤ Ċ Ġ* Ġ* ĠëĤĺ ëĬĶ Ġë° ¥ ìĿĦ Ġë ¨ ¹ ìĹĪ ê³ł Ċ Ġ* Ġ* Ġìĺģ í Ŀ ¬ ëĬĶ Ġì§ Ĳ ìĿĦ Ġì Į Į ëĭ¤ Ċ Ġ* Ġê°ģ Ġìł Ī ìĿĢ Ġ 3 ê°ľ ìĿĺ Ġêµ¬ ë¥¼ Ġíı¬ íķ¨ íķ©ëĭĪëĭ¤ Ċ Ġ* Ġ* ĠëĤĺ ëĬĶ , Ġë° ¥ ìĿĦ , Ġìĺģ í Ŀ ¬ ëĬĶ , Ġì§ Ĳ ìĿĦ : Ġì² ´ ìĸ¸ êµ¬ Ċ Ġ* Ġ* Ġë ¨ ¹ ìĹĪ ê³ł , Ġì Į Į ëĭ¤ : Ġìļ © ìĸ¸ êµ¬ Ċ Ġ* Ċ Ġ* ĠìķĦëŀĺ ë¥¼ Ġì°¸ ê³ł íķ ´ë³´ ìĦ¸ìļĶ . Ċ Ġ* Ġ* Ġ[ Word . get Phrase ] Ġìĸ ´ ìł Ī ìĿ´ Ġì§ ģ ìłĳ ĠìĨį íķĺëĬĶ Ġê°Ģ ìŀ¥ Ġìŀĳ ìĿĢ Ġêµ¬ êµ¬ ì¡° Ġ[ Syntax Tree ] ë¥¼ Ġê°Ģ ìł¸ ìĺ¤ ëĬĶ ĠAPI Ċ Ġ* Ġ* Ġ[ kr . by delta . ko ala . data . Sentence . get Syntax Tree ] ĠìłĦ ì²´ Ġë¬¸ ìŀ¥ ìĿĦ Ġë¶Ħ ìĦĿ íķľ Ġ[ Syntax Tree ] ë¥¼ Ġê°Ģ ìł¸ ìĺ¤ ëĬĶ ĠAPI Ċ Ġ* Ġ* Ġ[ Syntax Tree ] Ġêµ¬ êµ¬ ì¡° ë¥¼ ĠìłĢìŀ¥ íķĺëĬĶ Ġíĺķ íĥľ Ċ Ġ* Ġ* Ġ[ Phrase Tag ] Ġêµ¬ êµ¬ ì¡° ìĿĺ Ġíĺķ íĥľ Ġë¶Ħ ë¥ĺ ë¥¼ Ġê° ĸ ëĬĶ ĠEnum Ġê°Ĵ Ċ Ġ* Ċ Ġ* Ġ** ìĿĺ ì ¡´ êµ¬ ì¡° Ġë¶Ħ ìĦĿ ** ìĿĢ Ġë¬¸ ìŀ¥ ìĿĺ Ġêµ¬ìĦ± Ġìĸ ´ ìł Ī ëĵ¤ ìĿ´ ĠìĿĺ ì ¡´ ĠëĺĲëĬĶ Ġê¸°ëĬ¥ íķĺëĬĶ Ġê´Ģ ê³Ħ ë¥¼ Ġë¶Ħ ìĦĿ íķĺëĬĶ Ġë°©ë²ķ ìŀħëĭĪëĭ¤ . Ċ Ġ* ĠìĺĪ ) Ġ' ëĤĺ ëĬĶ Ġë° ¥ ìĿĦ Ġë ¨ ¹ ìĹĪ ê³ł , Ġìĺģ í Ŀ ¬ ëĬĶ Ġì§ Ĳ ìĿĦ Ġì Į Į ëĭ¤ ' ëĿ¼ ëĬĶ Ġë¬¸ ìŀ¥ ìĹĲëĬĶ Ċ Ġ* Ġê°Ģ ìŀ¥ Ġë§Ī ì§Ģ ë§ ī Ġëĭ¨ ìĸ´ ìĿ¸ Ġ' ì Į Į ëĭ¤ ' ê°Ģ Ġíķ µ ìĭ¬ Ġìĸ ´ êµ¬ ê°Ģ ĠëĲĺ ë©° , Ċ Ġ* Ġ* Ġ' ë ¨ ¹ ìĹĪ ê³ł ' ê°Ģ Ġ' ì Į Į ëĭ¤ ' ìĻĢ ĠëĮĢ ëĵ ± íķĺê²Į ĠìĹ° ê²° ëĲĺ ê³ł Ċ Ġ* Ġ* Ġ' ëĤĺ ëĬĶ ' ìĿĢ Ġ' ë ¨ ¹ ìĹĪ ê³ł ' ìĿĺ Ġì£¼ ìĸ´ ë¡ľ Ġê¸°ëĬ¥ íķĺ ë©° Ċ Ġ* Ġ* Ġ' ë° ¥ ìĿĦ ' ìĿĢ Ġ' ë ¨ ¹ ìĹĪ ê³ł ' ìĿĺ Ġëª© ìłģ ìĸ´ ë¡ľ Ġê¸°ëĬ¥ íķ©ëĭĪëĭ¤ . Ċ Ġ* Ġ* Ġ' ìĺģ í Ŀ ¬ ëĬĶ ' ìĿĢ Ġ' ì Į Į ëĭ¤ ' ìĿĺ Ġì£¼ ìĸ´ ë¡ľ Ġê¸°ëĬ¥ íķĺê³ł , Ċ Ġ* Ġ* Ġ' ì§ Ĳ ìĿĦ ' ìĿĢ Ġ' ì Į Į ëĭ¤ ' ìĿĺ Ġëª© ìłģ ìĸ´ ë¡ľ Ġê¸°ëĬ¥ íķ©ëĭĪëĭ¤ . Ċ Ġ* Ċ Ġ* ĠìķĦëŀĺ ë¥¼ Ġì°¸ ê³ł íķ ´ë³´ ìĦ¸ìļĶ . Ċ Ġ* Ġ* Ġ[ Word . get Dependent Edges ] Ġìĸ ´ ìł Ī ìĿ´ Ġì§ ģ ìłĳ Ġì§Ģ ë° ° íķĺëĬĶ Ġíķĺ ìľĦ ĠìĿĺ ì ¡´ êµ¬ ì¡° Ġ[ Dep Edge ] ìĿĺ Ġëª© ë¡Ŀ ìĿĦ Ġê°Ģ ìł¸ ìĺ¤ ëĬĶ ĠAPI Ċ Ġ* Ġ* Ġ[ Word . get G overn or Edge ] Ġìĸ ´ ìł Ī ìĿ´ Ġì§Ģ ë° ° ëĭ¹ íķĺëĬĶ Ġìĥģ ìľĦ ĠìĿĺ ì ¡´ êµ¬ ì¡° Ġ[ Dep Edge ] ë¥¼ Ġê°Ģ ìł¸ ìĺ¤ ëĬĶ ĠAPI Ċ Ġ* Ġ* Ġ[ kr . by delta . ko ala . data . Sentence . get Dependencies ] ĠìłĦ ì²´ Ġë¬¸ ìŀ¥ ìĿĦ Ġë¶Ħ ìĦĿ íķľ ĠìĿĺ ì ¡´ êµ¬ ì¡° Ġ[ Dep Edge ] ìĿĺ Ġëª© ë¡Ŀ ìĿĦ Ġê°Ģ ìł¸ ìĺ¤ ëĬĶ ĠAPI Ċ Ġ* Ġ* Ġ[ Dep Edge ] ĠìĿĺ ì ¡´ êµ¬ ì¡° ë¥¼ ĠìłĢìŀ¥ íķĺëĬĶ Ġíĺķ íĥľ Ċ Ġ* Ġ* Ġ[ Phrase Tag ] ĠìĿĺ ì ¡´ êµ¬ ì¡° ìĿĺ Ġíĺķ íĥľ Ġë¶Ħ ë¥ĺ ë¥¼ Ġê° ĸ ëĬĶ ĠEnum Ġê°Ĵ Ġ( êµ¬ êµ¬ ì¡° Ġë¶Ħ ë¥ĺ ìĻĢ Ġê°Ļ ìĿĮ ) Ċ Ġ* Ġ* Ġ[ Dependency Tag ] ĠìĿĺ ì ¡´ êµ¬ ì¡° ìĿĺ Ġê¸°ëĬ¥ Ġë¶Ħ ë¥ĺ ë¥¼ Ġê° ĸ ëĬĶ ĠEnum Ġê°Ĵ Ċ Ġ* Ċ Ġ* Ġ## ĠìĤ¬ìļ© ë²ķ ĠìĺĪ ìłľ Ċ Ġ* Ċ Ġ* Ġ### ĠKotlin Ċ Ġ* Ġ``` kotlin Ċ Ġ* Ġ// Ġë¬¸ ìŀ¥ ìĹĲìĦľ Ġë°Ķ ë¡ľ Ġë¶Ħ ìĦĿ íķł ĠëķĮ Ċ Ġ* Ġval Ġparser Ġ= ĠParser () Ċ Ġ* Ġval Ġsentences Ġ= Ġparser . analyze (" ë¬¸ ìŀ¥ Ġ 2 ê°ľ ìŀħëĭĪëĭ¤ . Ġê²°ê³¼ ëĬĶ Ġëª© ë¡Ŀ ìĿ´ ĠëĲ ©ëĭĪëĭ¤ .") Ġ// ĠëĺĲëĬĶ Ġparser (" ë¬¸ ìŀ¥ Ġ 2 ê°ľ ìŀħëĭĪëĭ¤ . Ġê²°ê³¼ ëĬĶ Ġëª© ë¡Ŀ ìĿ´ ĠëĲ ©ëĭĪëĭ¤ .") Ċ Ġ* Ċ Ġ* Ġ// ĠíĥĢ Ġë¶Ħ ìĦĿ ê¸° ìĹĲìĦľ Ġë¶Ħ ìĦĿ íķľ Ġëĭ¤ìĿĮ ĠìĿ´ ìĸ´ ìĦľ Ġë¶Ħ ìĦĿ íķł ĠëķĮ Ċ Ġ* Ġval Ġtagged Sentence : ĠSentence Ġ= Ġ... Ċ Ġ* Ġval Ġsentence Ġ= Ġparser . analyze ( tagged Sentence ) Ġ// ĠëĺĲëĬĶ Ġparser ( tagged Sentence ) Ċ Ġ* Ċ Ġ* Ġval Ġtagged Sent List : ĠList < Sentence > Ġ= Ġ... Ċ Ġ* Ġval Ġsentences Ġ= Ġparser . analyze ( tagged Sent List ) Ġ// ĠëĺĲëĬĶ Ġparser ( tagged Sent List ) Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* Ġ### ĠScala Ġ+ Ġ[ ko alan lp - scala ]( https :// ko alan lp . github . io / scala - support /) Ċ Ġ* Ġ``` scala Ċ Ġ* Ġimport Ġkr . by delta . ko ala . Imp lic its ._ Ċ Ġ* Ġ// Ġë¬¸ ìŀ¥ ìĹĲìĦľ Ġë°Ķ ë¡ľ Ġë¶Ħ ìĦĿ íķł ĠëķĮ Ċ Ġ* Ġval Ġparser Ġ= Ġnew ĠParser () Ċ Ġ* Ġval Ġsentences Ġ= Ġparser . analyze (" ë¬¸ ìŀ¥ Ġ 2 ê°ľ ìŀħëĭĪëĭ¤ . Ġê²°ê³¼ ëĬĶ Ġëª© ë¡Ŀ ìĿ´ ĠëĲ ©ëĭĪëĭ¤ .") Ġ// ĠëĺĲëĬĶ Ġparser (" ë¬¸ ìŀ¥ Ġ 2 ê°ľ ìŀħëĭĪëĭ¤ . Ġê²°ê³¼ ëĬĶ Ġëª© ë¡Ŀ ìĿ´ ĠëĲ ©ëĭĪëĭ¤ .") Ċ Ġ* Ċ Ġ* Ġ// ĠíĥĢ Ġë¶Ħ ìĦĿ ê¸° ìĹĲìĦľ Ġë¶Ħ ìĦĿ íķľ Ġëĭ¤ìĿĮ ĠìĿ´ ìĸ´ ìĦľ Ġë¶Ħ ìĦĿ íķł ĠëķĮ Ċ Ġ* Ġval Ġtagged Sentence : ĠSentence Ġ= Ġ... Ċ Ġ* Ġval Ġsentence Ġ= Ġparser . analyze ( tagged Sentence ) Ġ// ĠëĺĲëĬĶ Ġparser ( tagged Sentence ) Ċ Ġ* Ċ Ġ* Ġval Ġtagged Sent List : Ġjava . util . List [ Sentence ] Ġ= Ġ... Ċ Ġ* Ġval Ġsentences Ġ= Ġparser . analyze ( tagged Sent List ) Ġ// ĠëĺĲëĬĶ Ġparser ( tagged Sent List ) Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* Ġ### ĠJava Ċ Ġ* Ġ``` java Ċ Ġ* Ġ// Ġë¬¸ ìŀ¥ ìĹĲìĦľ Ġë°Ķ ë¡ľ Ġë¶Ħ ìĦĿ íķł ĠëķĮ Ċ Ġ* ĠParser Ġparser Ġ= ĠParser () Ċ Ġ* ĠList < Sentence > Ġsentences Ġ= Ġparser . analyze (" ë¬¸ ìŀ¥ Ġ 2 ê°ľ ìŀħëĭĪëĭ¤ . Ġê²°ê³¼ ëĬĶ Ġëª© ë¡Ŀ ìĿ´ ĠëĲ ©ëĭĪëĭ¤ .") Ġ// ĠëĺĲëĬĶ Ġparser . invoke (" ë¬¸ ìŀ¥ Ġ 2 ê°ľ ìŀħëĭĪëĭ¤ . Ġê²°ê³¼ ëĬĶ Ġëª© ë¡Ŀ ìĿ´ ĠëĲ ©ëĭĪëĭ¤ .") Ċ Ġ* Ċ Ġ* Ġ// ĠíĥĢ Ġë¶Ħ ìĦĿ ê¸° ìĹĲìĦľ Ġë¶Ħ ìĦĿ íķľ Ġëĭ¤ìĿĮ ĠìĿ´ ìĸ´ ìĦľ Ġë¶Ħ ìĦĿ íķł ĠëķĮ Ċ Ġ* ĠSentence Ġtagged Sentence Ġ= Ġ... Ċ Ġ* ĠSentence Ġsentence Ġ= Ġparser . analyze ( tagged Sentence ) Ġ// ĠëĺĲëĬĶ Ġparser . invoke ( tagged Sentence ) Ċ Ġ* Ċ Ġ* ĠList < Sentence > Ġtagged Sent List Ġ= Ġ... Ċ Ġ* ĠList < Sentence > Ġsentences Ġ= Ġparser . analyze ( tagged Sent List ) Ġ// ĠëĺĲëĬĶ Ġparser . invoke ( tagged Sent List ) Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* Ġ@ since Ġ 2 . 0 . 0 Ċ Ġ*/ Ċ class ĠParser Ġ: ĠCan Parse Dependency < Sentence >, ĠCan Parse Syntax < Sentence > Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġí Ĵ Ī ìĤ¬ ë¶Ħ ìĦĿ ê¸° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġtag ger Ġby Ġlazy Ġ{ ĠT agger () Ġ} ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠìĿĺ ì ¡´ ê´Ģ ê³Ħ ë¶Ħ ìĦĿ ĠWrapper ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġwrapper Ġby Ġlazy Ġ{ ĠBer keley Parser Wrap () Ġ} ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠìĿĺ ì ¡´ ê´Ģ ê³Ħ ë¶Ħ ìĦĿ ê²° ê³¼ Ġë³Ģ íĻĺ ê¸° . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġconverter : ĠConverter Ġby Ġlazy Ġ{ ĠConverter () Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠString Ġ[ sentence ] ë¥¼ Ġí Ĵ Ī ìĤ¬ Ġë¶Ħ ìĦĿ íķĺìĹ¬ Ġë¶Ħ ìĦĿ ê¸° ê°Ģ Ġë°Ľ ìķĦ ëĵ¤ ìĿ´ ëĬĶ Ġ[ List ]< ka ist . cil ab . jh ann an um . common . communication . Sentence > ë¡ľ Ġë³Ģ íĻĺ íķ©ëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ* Ġ@ param Ġsentence Ġíħ į ìĬ¤íĬ¸ ìĹĲìĦľ Ġë³Ģ íĻĺ íķł Ġë¬¸ ìŀ¥ ìŀħëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* Ġ@ return Ġë¶Ħ ìĦĿ ê¸° ê°Ģ Ġë°Ľ ìķĦ ëĵ¤ ìĿ¼ ĠìĪĺ ĠìŀĪëĬĶ Ġíĺķ íĥľ ìĿĺ Ġëį°ìĿ´íĦ° ìŀħëĭĪëĭ¤ . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġconvert ( sentence : ĠString ): ĠList < Pair < Sentence , ĠString >> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag ger . tag Paragraph Original ( sentence ). map Ġ{ Ġit Ġto Ġit . plain Eo je ols . join ToString (" Ġ") Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġë¶Ħ ìĦĿ ê¸° ìĿĺ Ġì¤ĳ ê°Ħ Ġê²°ê³¼ ìĿ¸ Ġ[ sentence ] ë¥¼ Ġì¡° íķ© íķĺìĹ¬ Ġ[ kr . by delta . ko ala . data . Sentence ] Ġê°Ŀì²´ ë¡ľ Ġë³Ģ íĻĺ íķ©ëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ* Ġ@ param Ġsentence Ġë³Ģ íĻĺ íķł Ġë¬¸ ìŀ¥ ìŀħëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ kr . by delta . ko ala . data . Sentence ] Ġê°Ŀì²´ ìŀħëĭĪëĭ¤ . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġconvert ( sentence : ĠSentence ): Ġkr . by delta . ko ala . data . Sentence Ġ= ĠT agger . convert ( sentence ) ĊĊĠĠĠ Ġ/** ĠParse ìĿĺ Ġê²°ê³¼ ìĿ¸ ĠNon - terminal ĠNode ìĿĺ Ġëª© ë¡Ŀ ìľ¼ë¡ľ ë¶Ģ íĦ° Ġëĭ¨ ìĸ´ Ġìłķë³´ ë¥¼ ĠìĿ ½ ìĸ´ ĠKo ala ìĿĺ ĠWord Ġëª© ë¡Ŀ ìľ¼ë¡ľ Ġë°Ķ ê ¿ ī ëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ* ì° ¸ ê³ł * Ġíķľ ëĤĺ ë Ī Ķ ìĿĢ ĠParser ìĹĲìĦľ Ġê¸° ì ¡´ Ġë¶Ħ ìĦĿ Ġê²°ê³¼ ë¥¼ Ġë³Ģ íĺķ íķ©ëĭĪëĭ¤ . ĠëķĮë¬¸ìĹĲ , Ġí Ĵ Ī ìĤ¬ ë¶Ħ ìĦĿ ìĿĺ Ġê²°ê³¼ ìĻĢ ĠìĿĺ ì ¡´ êµ¬ ë¬¸ / êµ¬ ë¬¸ ë¶Ħ ìĦĿ ìĿĺ Ġê²°ê³¼ ëĬĶ ĠìĿ¼ ì¹ĺ íķĺì§Ģ ĠìķĬ ìĿĦ ĠìĪĺ ĠìŀĪìĬµëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠList < N ont erm inal Node >. to Word sWith (): ĠList < Word > Ġ= Ġthis . map Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġterminal s Ġ= Ġit . my Terminal s . map Ġ{ Ġm Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠM orp heme ( m . word . replace ("- L RB -", Ġ"(" ). replace ("- RR B -", Ġ") "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm . pos . to Se j ong POS (), Ġm . pos ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsurface Ġ= Ġconstruct Word Surface ( terminal s ) ĊĠĠĠĠĠĠĠ ĠWord ( surface , Ġterminal s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġë¶Ħ ìĦĿ ê¸° Ġì²ĺë¦¬ Ġê³¼ ìłķ ìĹĲìĦľ Ġìŀ ĥ ìĸ´ë ² Ħ ë¦ ° Ġëĭ¨ ìĸ´ ĠìĽĲ íĺķ ìĿĦ Ġê · ¼ ìĤ¬ íķĺìĹ¬ Ġë³ µ ìĽĲ íķ©ëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* Ġ@ since Ġ 1 . x ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġconstruct Word Surface ( word : ĠList < M orp heme >): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġhead Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġwas Verb Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( curr Ġin Ġword ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġcurr . tag ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tag . is Ending () Ġ&& Ġhead . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhead Ġ= Ġcorrect Verb Apply ( head , Ġwas Verb , Ġcurr . surface ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwas Verb Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwas Verb Ġ= Ġ( tag . is Predicate () Ġ&& Ġtag Ġ!= ĠPOS . VA ) Ġ|| Ġtag Ġ== ĠPOS . X SV ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhead Ġ+= Ġcurr . surface ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġhead ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġíķľ ëĤĺ ë Ī Ķ ìĿĺ Ġêµ¬ ë¬¸ ë¶Ħ ìĦĿ Ġê²°ê³¼ ìĿ¸ ĠTreeNode Ġ 1 ê°ľ ë¥¼ Ġíķĺ ìľĦ êµ¬ ì¡° ë¥¼ Ġë¶Ħ ìĦĿ íķĺìĹ¬ ĠSyntax ĠTree Ġ 1 ê°ľ ë¡ľ Ġë³Ģ íĻĺ íķ©ëĭĪëĭ¤ . Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠTreeNode . rollup Ph rases ( terminal s : ĠMap < N ont erm inal Node , ĠSyntax Tree >): ĠSyntax Tree Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠN ont erm inal Node Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġterminal s [ this ] Ġ?: Ġ// ĠTerminal Ġnode ìĹĲ Ġíı¬ íķ¨ ëĲĺìĸ´ ĠìŀĪëĬĶ Ġê²½ìļ° , Ġterminal Ġê·¸ ëĮĢ ë¡ľ Ġìłľê³µ , ĠìķĦ ëĭĪ ëĿ¼ ë©´ ĠìĥĪ Ġsyntax Ġtree Ġêµ¬ìĦ± ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSyntax Tree ( phrase Tag . to ET R IP hr ase Tag (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchildren . map Ġ{ Ġit . rollup Ph rases ( terminal s ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Label Ġ= Ġphrase Tag . split ("- ")[ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġíķľ ëĤĺ ë Ī Ķ ìĿĺ Ġêµ¬ ë¬¸ ë¶Ħ ìĦĿ Ġê²°ê³¼ ëĵ¤ìĿĦ ĠíķĺëĤĺ ìĿĺ ĠSyntax ĠTree ë¡ľ Ġë³Ģ íĻĺ íķ©ëĭĪëĭ¤ . Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠList < N ont erm inal Node >. to Syntax Tree On ( sentence : Ġkr . by delta . ko ala . data . Sentence ): ĠSyntax Tree Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġterminal s Ġ= Ġmap Indexed Ġ{ Ġindex , Ġn ont erm inal Node Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġterminal Tree Ġ= ĠSyntax Tree ( n ont erm inal Node . phrase Tag . to ET R IP hr ase Tag (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsentence [ index ], Ġoriginal Label Ġ= Ġn ont erm inal Node . phrase Tag . split ("- ")[ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn ont erm inal Node Ġto Ġterminal Tree ĊĠĠĠĠĠĠĠ Ġ}. toMap () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis [ 0 ]. tree . head . rollup Ph rases ( terminal s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġíķľ ëĤĺ ë Ī Ķ ìĿĺ ĠìĿĺ ì ¡´ êµ¬ ë¬¸ ë¶Ħ ìĦĿ Ġê²°ê³¼ ëĵ¤ìĿĦ ĠDep Edge ìĿĺ Ġëª© ë¡Ŀ ìľ¼ë¡ľ Ġë³Ģ íĻĺ íķ©ëĭĪëĭ¤ . Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠArray < D Node >. to Dep Edges On ( sentence : Ġkr . by delta . ko ala . data . Sentence ): ĠList < Dep Edge > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . map Ġ{ Ġnode Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdep Tag Ġ= Ġnode . get d Type (). to ET RI Dep Tag () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Tag Ġ= Ġnode . corre sponding Phrase . phrase Tag . to ET R IP hr ase Tag () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthis Word Ġ= Ġsentence [ node . word Idx ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhead Word Ġ= Ġsentence . get OrNull ( node . head ?. word Idx Ġ?: Ġ- 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDep Edge ( head Word , Ġthis Word , Ġp Tag , Ġdep Tag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Label Ġ= Ġ"${ node . corre sponding Phrase . phrase Tag . split ("- ")[ 0 ]} _${ node . get d Type () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ[ item ] ìĿĦ Ġë¶Ħ ìĦĿ íķĺìĹ¬ Ġproperty Ġê°ĴìĿĦ Ġë°ĺíĻĺ íķ©ëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ* Ġ@ param Ġitem Ġë¶Ħ ìĦĿ Ġëĭ¨ ìľĦ Ġ 1 ê°ľ ìŀħëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* Ġ@ param Ġsentence ĠìĽĲ ë³¸ Ġë¬¸ ìŀ¥ ìŀħëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* Ġ@ return Ġë¶Ħ ìĦĿ ìĿĺ Ġê²°ê³¼ ë¬ ¼ ìŀħëĭĪëĭ¤ . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġattach Property ( item : ĠSentence , Ġsentence : ĠString ): Ġkr . by delta . ko ala . data . Sentence Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . eo je ols . isEmpty ()) Ġkr . by delta . ko ala . data . Sentence . empty ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtree Ġ= Ġparse Tree Of ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdep Tree : ĠD Tree Ġ= Ġconverter . convert ( tree ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphrases Ġ= Ġtree . pre Pre Terminal Nodes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġkr . by delta . ko ala . data . Sentence ( ph rases . to Word sWith ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . set Syntax Tree ( ph rases . to Syntax Tree On ( result )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . set Dep Edges ( dep Tree . node List . to Dep Edges On ( result )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġêµ¬ ë¬¸ ë¶Ħ ìĦĿ íĬ¸ ë¦¬ ë¥¼ Ġêµ¬ìĦ± íķ¨ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsentence Ġë¶Ħ ìĦĿ íķł Ġíķľ ëĤĺ ë Ī Ķ Ġë¬¸ ìŀ¥ . ĊĠĠĠĠ Ġ* Ġ@ return Ġêµ¬ ë¬¸ ë¶Ħ ìĦĿ íĬ¸ ë¦¬ . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġparse Tree Of ( sentence : ĠSentence ): ĠParse Tree Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sentence . eo je ols . isEmpty ()) ĠParse Tree ("", Ġ"", Ġ 0 , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParse Tree ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsentence . plain Eo je ols . join ToString (" Ġ"), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconverter . String for Dep format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConverter . function Tag Re Form ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrapper . parse For ced ( sentence . with Encoded Paren ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġ 0 , Ġtrue ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġë¶Ħ ìĦĿ Ġìĺ¤ ë¥ĺ ë¥¼ Ġë°ľ ìĥĿ ìĭľ íĤ¤ ëĬĶ Ġê ´ Ħ íĺ¸ Ġ() ë¥¼ ĠL RB , ĠR RB ë¡ľ Ġë³Ģê²½ . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠSentence . with Encoded Paren (): ĠSentence Ġ{ ĊĠĠĠĠĠĠĠ Ġe o je ols . filter NotNull (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmorph s Ġ= Ġit . m orp he mes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmorph s . forEach Indexed Ġ{ Ġindex , Ġm Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m . matches ("^ .* [ () ]+ .* $ ". to Regex ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmorph s [ index ] Ġ= Ġm . replace (" (", Ġ"- L RB - "). replace (" )", Ġ"- RR B - ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSentence Ġ[ sentence ] ë¥¼ Ġíķ´ ì²´ íķĺìĹ¬ Ġë¶Ħ ìĦĿ ê¸° ê°Ģ Ġë°Ľ ìķĦ ëĵ¤ ìĿ´ ëĬĶ Ġka ist . cil ab . jh ann an um . common . communication . Sentence ë¡ľ Ġë³Ģ íĻĺ íķ©ëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ* Ġ@ param Ġsentence Ġë³Ģ íĻĺ íķł Ġë¬¸ ìŀ¥ ìŀħëĭĪëĭ¤ . ĊĠĠĠĠ Ġ* Ġ@ return Ġë¶Ħ ìĦĿ ê¸° ê°Ģ Ġë°Ľ ìķĦ ëĵ¤ ìĿ¼ ĠìĪĺ ĠìŀĪëĬĶ Ġíĺķ íĥľ ìĿĺ Ġëį°ìĿ´íĦ° ìŀħëĭĪëĭ¤ . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġconvert ( sentence : Ġkr . by delta . ko ala . data . Sentence ): ĠSentence Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( plain Eo je ols , Ġe o je ols ) Ġ= Ġsentence . map Ġ{ Ġword Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( morph s , Ġtags ) Ġ= Ġword . map Ġ{ Ġit . surface Ġto Ġit . tag . from Se j ong POS () Ġ}. unzip () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġword . surface Ġto ĠE o je ol ( morph s . to Typed Array (), Ġtags . to Typed Array ()) ĊĠĠĠĠĠĠĠ Ġ}. unzip () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠSentence ( 0 , Ġ 0 , Ġtrue , Ġplain Eo je ols . to Typed Array (), Ġe o je ols . to Typed Array ()) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* Ġíķľ ëĤĺ ë Ī Ķ ĠBer keley Parser Wrapper ë¥¼ Ġê°ľ ëŁ ī íķľ ĠClass . Ċ Ġ* Ġ- ĠScala ìĹĲ Ġë§ ŀ ê²Į ĠLogic ĠìĪĺ ìłķ . Ċ Ġ* Ġ- Ġíķľ ëĤĺ ë Ī Ķ Ġí Ĵ Ī ìĤ¬ ë¶Ħ ìĦĿ ê²° ê³¼ ìĹĲìĦľ Ġìĭľìŀĳ íķĺ ëıĦë¡Ŀ ĠìĪĺ ìłķ . Ċ Ġ* Ġ- Ġëª¨ëį¸ ìĿĺ Ġê²½ ë¡ľ ë¥¼ Ġìŀ Ħ ìĭľ ĠëĶĶ ëł ī íĦ° ë¦¬ ê°Ģ ĠëĲĺ ëıĦë¡Ŀ ĠìĪĺ ìłķ . Ċ Ġ* Ċ Ġ* ĠìĽĲ ë³¸ ìĿĺ ĠCopyright : ĠK A IST Ġíķľ ëĤĺ ë Ī Ķ Ġê°ľë°ľ í ĮĢ . Ċ Ġ*/ Ċ internal Ġclass ĠBer keley Parser Wrap Ġ{ ĊĠĠĠ Ġprivate Ġval Ġparser : ĠCo arse To F ine Max Rule Parser ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠCo arse To F ine Max Rule Parser ( Ber keley Parser Wrap . pData . grammar , ĠBer keley Parser Wrap . pData . lex icon , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBer keley Parser Wrap . opts . unary Pen alty , ĠBer keley Parser Wrap . opts . final Level , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBer keley Parser Wrap . opts . v iter bi , Ġfalse , Ġfalse , ĠBer keley Parser Wrap . opts . accur ate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĠBer keley Parser Wrap . opts . use Gold POS , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . bin ar ization Ġ= ĠBer keley Parser Wrap . pData . bin ar ization ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġp ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparse For ced ( data : ĠSentence ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Sentence Ġ= ĠM orp heme Analyzer Wrap . get Sp aced Result ( data ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠTre es . P enn Tree Renderer . render ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTree Annotations . un Annot ate Tree ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . parser . get Best Constr ained Parse ( test Sentence , Ġnull , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠStatic Ġfields Ġ**/ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġopts : ĠGram mar Tester . Options Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOption Parser ( Grammar Tester . Options :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. parse ( array Of ("- in ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDictionary . extract Resource () Ġ+ Ġ"/ models / parser / K or Grammar _ Ber k F _ OR IG ". replace ("/", ĠFile . separator ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġtrue ) Ġas ĠGram mar Tester . Options ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠpData : ĠParser Data Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠParser Data . Load ( opts . in FileName ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNumber er . set Number ers ( p . num bs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . grammar . split Rules () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* Ġíķľ ëĤĺ ë Ī Ķ ĠHan Nan um Morph An al Wrapper ë¥¼ Ġê°ľ ëŁ ī íķľ Ġíģ´ëŀĺìĬ¤ . Ċ Ġ* Ġ- ĠScala ìĹĲ Ġë§ ŀ ê²Į ĠìĪĺ ìłķ . Ċ Ġ* Ġ- ĠParsing Ġê³¼ ìłķ ìĹĲìĦľ , ĠTag ging ìĿĦ Ġëĭ¤ ìĭľ Ġìĭ¤ ìĭľ íķĺì§Ģ ĠìķĬ ëıĦë¡Ŀ ĠìĪĺ ìłķ . Ċ Ġ* Ċ Ġ* ĠìĽĲ ë³¸ ìĿĺ ĠCopyright : ĠK A IST Ġíķľ ëĤĺ ë Ī Ķ Ġê°ľë°ľ í ĮĢ . Ċ Ġ*/ Ċ internal Ġobject ĠM orp heme Analyzer Wrap Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġprivate Ġval ĠTOKEN S Ġ= Ġ"^ (\\ + * [^ + ]*) / ([ a - z ]+ )\\ +". to Regex () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġë Ŀ Ħ ìĸ´ ì ĵ° ê¸° ĠëĲľ Ġtoken ìľ¼ë¡ľ Ġë³Ģ íĻĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget Sp aced Result ( sent : ĠSentence ) Ġ= Ġthis . get Analysis Result ( sent ). flatMap Ġ{ Ġit . token List . map Ġ{ Ġw Ġ-> Ġw . word Ġ} Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠíĮĮ ìĦľ ê°Ģ ĠìĿ´ íķ´ íķł ĠìĪĺ ĠìŀĪ ê²Į Ġë¶Ħ ìĦĿ Ġê²°ê³¼ Ġë³Ģ íĻĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget Analysis Result ( raw : ĠSentence ): ĠList < ka ist . cil ab . parser . ber keley adapt ation . Eo je ol > Ġ{ ĊĠĠĠĠĠĠĠ Ġ/ ******* ĠìĪĺ ìłķ ëĲľ Ġë¶Ģ ë¶Ħ Ġìĭľìŀĳ Ġ* ******/ ĊĠĠĠĠĠĠĠ Ġval Ġtxt Ġ= Ġraw . plain Eo je ols ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġthis . modify Sen Level POS Result ( raw . toString ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġtok Ġ= ĠString Tokenizer ( result , Ġ"\ n \ r ") ĊĠĠĠĠĠĠĠ Ġval Ġret Ġ= Ġmutable ListOf < ka ist . cil ab . parser . ber keley adapt ation . Eo je ol >() ĊĊĊĠĠĠĠĠĠĠ Ġvar Ġchar Offset Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( word Ġin Ġtxt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġka ist . cil ab . parser . ber keley adapt ation . Eo je ol () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . offset Ġ= Ġchar Offset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . orig Eo je ol Ġ= Ġtok . nextToken () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/ ******** ĠìĪĺ ìłķ ëĲľ Ġë¶Ģ ë¶Ħ Ġë ģ Ŀ Ġ* *******/ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanal Result Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e . orig Eo je ol . endsWith (" ìĹĲìĦľ ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtok . nextToken () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . orig Eo je ol . substring ( 0 , Ġe . orig Eo je ol . length Ġ- Ġ 2 ) Ġ+ Ġ"/ n cn + ìĹĲìĦľ / j co " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtok . nextToken (). trim () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġeach An al Ġ= Ġ"$ anal Result +" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtok Tmp Ġ= ĠArrayList < ka ist . cil ab . parser . ber keley adapt ation . Eo je ol . Token >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( each An al . isNotEmpty ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatch Ġ= ĠTOKEN S . find ( each An al ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( match Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġmatch . group Values [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpos Ġ= Ġmatch . group Values [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeach An al Ġ= Ġeach An al . substring ( token . length Ġ+ Ġpos . length Ġ+ Ġ 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt Ġ= Ġe . Token () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . word Ġ= Ġtoken ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . pos Ġ= Ġif Ġ( token Ġ== Ġ" ë¶Ģ íĦ° ") Ġ" j ca " Ġelse Ġpos ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtok Tmp . add ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . token List Ġ= Ġtok Tmp . to Typed Array () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . integrate Same POS ( e , Ġ" n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . integrate Same POS ( e , Ġ" j ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . eo je ol Idx Ġ= Ġret . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġret Ġ+= Ġe ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġchar Offset Ġ+= Ġword . length Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġret ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠëıĻ ìĿ¼ Ġí Ĵ Ī ìĤ¬ Ġê²°ê³¼ ĠíĨµ íķ© ĊĠĠĠĠ Ġ* Ġ( ì ½Ķëĵľ Ġê°Ħ ê²° íķĺê²Į Ġìŀ¬ ìŀĳ ìĦ± ëĲ ¨ ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġprivate Ġfun Ġintegrate Same POS ( e : Ġka ist . cil ab . parser . ber keley adapt ation . Eo je ol , Ġpos : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtokens Ġ= Ġmutable ListOf < ka ist . cil ab . parser . ber keley adapt ation . Eo je ol . Token >() ĊĠĠĠĠĠĠĠ Ġvar Ġmerged Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( token Ġin Ġe . token List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( token . pos . startsWith ( pos )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( merged ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtokens . last (). word Ġ+= Ġtoken . word ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtokens . add ( token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmerged Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtokens . add ( token ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmerged Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġe . token List Ġ= Ġtokens . to Typed Array () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠíĬ¹ ìĪĺ Ġë¶Ħ ìĦĿ ê²° ê³¼ Ġë³Ģ íĻĺ Ġ( ì ½Ķëĵľ Ġìŀ¬ ìŀĳ ìĦ± ) Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġprivate Ġfun Ġmodify Sen Level POS Result ( result : ĠString ): ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . replace (" ê°Ģ / p vg + ìķĦ / ecx + ì§Ģ / px ", Ġ" ê°Ģ ì§Ģ / p vg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" ìŀħ / p vg + ëĭĪëĭ¤ / ef ", Ġ" ìĿ´ / jp + ã ħ Ĥ ëĭĪëĭ¤ / ef ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" ìĿ¼ / p vg + ã ħ Ĥ ëĭĪëĭ¤ / ef ", Ġ" ìĿ´ / jp + ã ħ Ĥ ëĭĪëĭ¤ / ef ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" ìĹĲìĦľ / j ca + ëĬĶ / j xc ", Ġ" ìĹĲìĦľëĬĶ / j ca ") Ċ } Ċ