/* Ċ Ġ* Ġkt - string - similarity Ġ- ĠA Ġlibrary Ġimplementing Ġdifferent Ġstring Ġsimilarity Ġand Ġdistance Ġmeasures . Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 5 ĠTh ib ault ĠDeb at ty Ċ Ġ* Ċ Ġ* ĠThe Ġfile ĠJac card . kt Ġis Ġpart Ġof Ġkt - fuzzy Ċ Ġ* ĠLast Ġmodified Ġon Ġ 2 2 - 1 0 - 2 0 2 1 Ġ 0 5 : 4 4 Ġp . m . Ċ Ġ* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠK T - STRING - SIM IL AR ITY ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġca . so lost ud ios . string similarity Ċ Ċ import Ġca . so lost ud ios . string similarity . interfaces . Metric String Distance Ċ import Ġca . so lost ud ios . string similarity . interfaces . Normalized String Distance Ċ import Ġca . so lost ud ios . string similarity . interfaces . Normalized String Similarity Ċ Ċ /** Ċ Ġ* ĠEach Ġinput Ġstring Ġis Ġconverted Ġinto Ġa Ġset Ġof Ġn - grams , Ġthe ĠJac card Ġindex Ġis Ċ Ġ* Ġthen Ġcomputed Ġas Ġ| V 1 Ġinter ĠV 2 | Ġ/ Ġ| V 1 Ġunion ĠV 2 |. Ċ Ġ* ĠLike ĠQ - Gram Ġdistance , Ġthe Ġinput Ġstrings Ġare Ġfirst Ġconverted Ġinto Ġsets Ġof Ċ Ġ* Ġn - grams Ġ( sequences Ġof Ġn Ġcharacters , Ġalso Ġcalled Ġk - sh ing les ), Ġbut Ġthis Ġtime Ċ Ġ* Ġthe Ġcardinality Ġof Ġeach Ġn - gram Ġis Ġnot Ġtaken Ġinto Ġaccount . Ċ Ġ* ĠDistance Ġis Ġcomputed Ġas Ġ 1 Ġ- Ġcos ine Ġsimilarity . Ċ Ġ* ĠJac card Ġindex Ġis Ġa Ġmetric Ġdistance . Ċ Ġ* Ġ@ author ĠTh ib ault ĠDeb at ty Ċ Ġ*/ Ċ public Ġclass ĠJac card ( k : ĠInt Ġ= ĠDEFAULT _ K ) Ġ: ĠSh ingle Based ( k ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMetric String Distance , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNormal ized String Distance , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNormal ized String Similarity Ġ{ ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCompute ĠJac card Ġindex : Ġ| A Ġinter ĠB | Ġ/ Ġ| A Ġunion ĠB |. ĊĠĠĠĠ Ġ* Ġ@ param Ġs 1 ĠThe Ġfirst Ġstring Ġto Ġcompare . ĊĠĠĠĠ Ġ* Ġ@ param Ġs 2 ĠThe Ġsecond Ġstring Ġto Ġcompare . ĊĠĠĠĠ Ġ* Ġ@ return ĠThe ĠJac card Ġindex Ġin Ġthe Ġrange Ġ[ 0 , Ġ 1 ] ĊĠĠĠĠ Ġ* Ġ@ throws ĠNullPointerException Ġif Ġs 1 Ġor Ġs 2 Ġis Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġsimilarity ( s 1 : ĠString , Ġs 2 : ĠString ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( s 1 Ġ== Ġs 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 1 . 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġprofile 1 Ġ= Ġget Profile ( s 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġprofile 2 Ġ= Ġget Profile ( s 2 ) ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġunion Ġ= Ġmutable Set Of < String >() ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġunion . addAll ( profile 1 . keys ) ĊĠĠĠĠĠĠĠ Ġunion . addAll ( profile 2 . keys ) ĊĠĠĠĠĠĠĠ Ġval Ġinter Ġ= Ġprofile 1 . keys . size Ġ+ Ġprofile 2 . keys . size Ġ- Ġunion . size ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 . 0 Ġ* Ġinter Ġ/ Ġunion . size ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDistance Ġis Ġcomputed Ġas Ġ 1 Ġ- Ġsimilarity . ĊĠĠĠĠ Ġ* Ġ@ param Ġs 1 ĠThe Ġfirst Ġstring Ġto Ġcompare . ĊĠĠĠĠ Ġ* Ġ@ param Ġs 2 ĠThe Ġsecond Ġstring Ġto Ġcompare . ĊĠĠĠĠ Ġ* Ġ@ return Ġ 1 Ġ- Ġthe ĠJac card Ġsimilarity . ĊĠĠĠĠ Ġ* Ġ@ throws ĠNullPointerException Ġif Ġs 1 Ġor Ġs 2 Ġis Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdistance ( s 1 : ĠString , Ġs 2 : ĠString ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 . 0 Ġ- Ġsimilarity ( s 1 , Ġs 2 ) ĊĠĠĠ Ġ} Ċ }