package Ġtw . ta ib unk es imi . ch ho eta igi . database . dicts . k am jit ian Ċ Ċ import Ġorg . apache . commons . csv . CSV Format Ċ import Ġtw . ta ib unk es imi . ch ho eta igi . database . Ch ho e Ta igi Database Output Settings Ċ import Ġtw . ta ib unk es imi . ch ho eta igi . database . dicts . k am jit ian . entry . K am Dict Out Entry Ċ import Ġtw . ta ib unk es imi . ch ho eta igi . database . dicts . k am jit ian . entry . K am Dict Src Entry Ċ import Ġtw . ta ib unk es imi . ch ho eta igi . database . joined . Joined Dict ColumnName Ċ import Ġtw . ta ib unk es imi . lib . lo maj ich o ano ann . Ta igi L om aji Ku iku Cho ano ann Ċ import Ġtw . ta ib unk es imi . lib . lo maj ich o ano ann . po j fix . Po j Input Fix Ċ import Ġtw . ta ib unk es imi . lib . lo maj ich o ano ann . po j fix . Po j Input Fix Type Ċ import Ġtw . ta ib unk es imi . util . StringUtils Ċ import Ġtw . ta ib unk es imi . util . io . Csv IO Ċ import Ġtw . ta ib unk es imi . util . io . X ls x IO Ċ import Ġjava . util .* Ċ Ċ object ĠK am Dict Processor Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠSRC _ FILENAME Ġ= Ġ" K am J it ian _ fix 2 0 2 1 0 7 1 2 . xlsx " ĊĊĠĠĠ Ġfun Ġrun (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdict Array Ġ= Ġload Dict () ĊĠĠĠĠĠĠĠ Ġval Ġprocessed Dict Array Ġ= Ġprocess Dict ( dict Array ) ĊĠĠĠĠĠĠĠ Ġsave Dict ( processed Dict Array ) ĊĠĠĠĠĠĠĠ Ġreturn Ġprocessed Dict Array . count () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Dict (): ĠArrayList < K am Dict Src Entry > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresource Ġ= ĠThread . currentThread (). context ClassLoader . getResource ( SRC _ FILENAME ) ĊĠĠĠĠĠĠĠ Ġprintln (" path : Ġ" Ġ+ Ġresource !!. path ) ĊĊĠĠĠĠĠĠĠ Ġval Ġread X ls x Dict ArrayList Ġ= ĠX ls x IO . read ( resource . path , Ġ" k am ", Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġcant Type Han ji Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġno Han ji Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġdict Array Ġ= ĠArrayList < K am Dict Src Entry >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( record Column ArrayList Ġin Ġread X ls x Dict ArrayList ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsrc Entry Ġ= ĠK am Dict Src Entry () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . id Ġ= Ġrecord Column ArrayList [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . po j Ġ= Ġrecord Column ArrayList [ 1 ] Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . po j Dialect Ġ= Ġrecord Column ArrayList [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . han ji Ta ib un Ġ= Ġrecord Column ArrayList [ 3 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" Ġ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( src Entry . han ji Ta ib un . contains (" âĹ ı ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . han ji Ta ib un Ġ= Ġsrc Entry . han ji Ta ib un . replace (" âĹ ı ", Ġ"? ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcant Type Han ji Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( src Entry . han ji Ta ib un . contains (" âĢĶ ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . han ji Ta ib un Ġ= Ġsrc Entry . han ji Ta ib un . replace (" âĢĶ ", Ġ"- ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Han ji Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . po j B un im Ġ= Ġ" Ġ" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( src Entry . han ji Ta ib un . contains ("^ \\ (. [ a - zA - Z 0 - 9 ]+ \\ )\ $ ". to Regex ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlength Ġ= ĠStringUtils . get Graph me Length ( src Entry . han ji Ta ib un ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhan ji Ġ= ĠStringUtils . get Graph me String At ( src Entry . han ji Ta ib un , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpo j B un im Ġ= ĠStringUtils . get Graph me String At ( src Entry . han ji Ta ib un , Ġ 2 , Ġlength Ġ- Ġ 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . han ji Ta ib un Ġ= Ġhan ji ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . po j B un im Ġ= Ġpo j B un im . capitalize () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . po j K ais o eh Ġ= Ġrecord Column ArrayList [ 4 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . han lo Ta ib un K ais o eh Po j Ġ= Ġrecord Column ArrayList [ 5 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . pageNumber Ġ= Ġrecord Column ArrayList [ 6 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( src Entry . pageNumber . isNotEmpty ()) Ġ{ Ġ// ĠThere Ġare Ġfew Ġwords Ġadded Ġby ĠLim ĠCh un io k , Ġnot Ġfrom Ġthe Ġbook . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdict Array . add ( src Entry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprintln (" K am Dict Processor : Ġcant Type Han ji Count Ġ= Ġ$ cant Type Han ji Count ") ĊĠĠĠĠĠĠĠ Ġprintln (" K am Dict Processor : Ġno Han ji Count Ġ= Ġ$ no Han ji Count ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdict Array ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprocess Dict ( dict Array : ĠArrayList < K am Dict Src Entry >): ĠList < K am Dict Out Entry > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprocessed Dict Array Ġ= ĠArrayList < K am Dict Out Entry >() ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( src Entry : ĠK am Dict Src Entry Ġin Ġdict Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġout Entry Ġ= ĠK am Dict Out Entry () Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" entry : Ġ${ src Entry . id }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġparse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . id Ġ= Ġsrc Entry . id ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfixed Po j Input Ġ= ĠPo j Input Fix . fix Ku iku Only Po j With Delimiter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Entry . po j . trim (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnum Set . of ( Po j Input Fix Type . ON N _ SI A _ CHO _ O ON N ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j Input Ġ= Ġfixed Po j Input ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j Unicode Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTa igi L om aji Ku iku Cho ano ann . only Po j Input To Po j Unicode ( src Entry . po j ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. trim () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . han ji Ta ib un Ġ= Ġsrc Entry . han ji Ta ib un . trim () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j B un im Input Ġ= Ġsrc Entry . po j B un im . trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j B un im Unicode Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTa igi L om aji Ku iku Cho ano ann . only Po j Input To Po j Unicode ( src Entry . po j B un im ). trim () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip Input Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTa igi L om aji Ku iku Cho ano ann . only Po j Input To K ip Input ( src Entry . po j ). trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip Unicode Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTa igi L om aji Ku iku Cho ano ann . only K ip Input To K ip Unicode ( out Entry . k ip Input ). trim () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip B un im Input Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTa igi L om aji Ku iku Cho ano ann . only Po j Input To K ip Input ( src Entry . po j B un im ). trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip B un im Unicode Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTa igi L om aji Ku iku Cho ano ann . only K ip Input To K ip Unicode ( out Entry . k ip B un im Input ). trim () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j K ais o eh Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTa igi L om aji Ku iku Cho ano ann . hybrid Po j Input To Po j Unicode ( src Entry . po j K ais o eh ). trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip K ais o eh Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTa igi L om aji Ku iku Cho ano ann . hybrid K ip Input To K ip Unicode ( src Entry . po j K ais o eh ). trim () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . han lo Ta ib un K ais o eh Po j Ġ= Ġsrc Entry . han lo Ta ib un K ais o eh Po j . trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . pageNumber Ġ= Ġsrc Entry . pageNumber . trim () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed Dict Array . add ( out Entry ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġsort ĊĠĠĠĠĠĠĠ Ġreturn Ġprocessed Dict Array . sorted With ( compare By Ġ{ Ġit . id . toInt () Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Dict ( formatted Dict Array : ĠList < K am Dict Out Entry >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdict : ĠArrayList < ArrayList < String >> Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( out Entry : ĠK am Dict Out Entry Ġin Ġformatted Dict Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentry Array : ĠArrayList < String > Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . id . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j Unicode . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j Input . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . han ji Ta ib un . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j B un im Unicode . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j B un im Input . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . po j K ais o eh . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . han lo Ta ib un K ais o eh Po j . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip Unicode . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip Input . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip B un im Unicode . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip B un im Input . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . k ip K ais o eh . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Entry . pageNumber . let Ġ{ Ġentry Array . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdict . add ( entry Array ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCh ho e Ta igi Database Output Settings . SAVE _ FOLDER _ DATABASE Ġ+ ĠCh ho e Ta igi Database Output Settings . timestamp Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/" Ġ+ ĠCh ho e Ta igi Database Output Settings . FILENAME _ DICT _ OUTPUT _ K AM _ JIT IAN ĊĠĠĠĠĠĠĠ Ġval Ġcsv Format : ĠCSV Format Ġ= ĠCSV Format . DEFAULT . with Header ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ DICT _ WORD _ ID , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ PO J _ UNICODE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ PO J _ INPUT , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ H AN LO _ TA IB UN _ PO J , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ H AN B UN IM _ PO J _ UNICODE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ H AN B UN IM _ PO J _ INPUT , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ KA ISO EH _ PO J , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ KA ISO EH _ H AN LO _ PO J , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ K IP _ UNICODE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ K IP _ INPUT , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ H AN B UN IM _ K IP _ UNICODE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ H AN B UN IM _ K IP _ INPUT , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ KA ISO EH _ K IP , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo ined Dict ColumnName . DICT _ COLUMN _ NAME _ PAGE _ NUMBER ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠCsv IO . write ( path , Ġdict , Ġcsv Format ) ĊĠĠĠ Ġ} Ċ Ċ }