363 lines
35 KiB
XML
363 lines
35 KiB
XML
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill-opacity="1" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="1121" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" height="1295" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto">
|
|
<!--Generated by ySVG 2.5-->
|
|
<defs id="genericDefs"/>
|
|
<g>
|
|
<defs id="defs1">
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="-7.8" y2="51.2" id="linearGradient1" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="181.8" y2="248.2" id="linearGradient2" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="483.1" y2="549.5" id="linearGradient3" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="594.8" y2="653.8" id="linearGradient4" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="930.37" gradientUnits="userSpaceOnUse" x2="1239.77" y1="388.3" y2="447.3" id="linearGradient5" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="699.1" y2="765.5" id="linearGradient6" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="397.8" y2="437.8" id="linearGradient7" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="293.5" y2="352.5" id="linearGradient8" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="810.8" y2="869.8" id="linearGradient9" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="930.37" gradientUnits="userSpaceOnUse" x2="1393.77" y1="810.8" y2="869.8" id="linearGradient10" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="915.1" y2="981.5" id="linearGradient11" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="930.37" gradientUnits="userSpaceOnUse" x2="1303.52" y1="594.8" y2="653.8" id="linearGradient12" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="1131.1" y2="1171.1" id="linearGradient13" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="96.5" y2="136.5" id="linearGradient14" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="930.37" gradientUnits="userSpaceOnUse" x2="1393.77" y1="1121.6" y2="1180.6" id="linearGradient15" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="413" gradientUnits="userSpaceOnUse" x2="493" y1="195" y2="235" id="linearGradient16" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="413" gradientUnits="userSpaceOnUse" x2="493" y1="496.3" y2="536.3" id="linearGradient17" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="303" gradientUnits="userSpaceOnUse" x2="493" y1="712.3" y2="752.3" id="linearGradient18" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="413" gradientUnits="userSpaceOnUse" x2="493" y1="928.3" y2="968.3" id="linearGradient19" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="1216.4" y2="1256.4" id="linearGradient20" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="632" gradientUnits="userSpaceOnUse" x2="833" y1="1026.8" y2="1085.8" id="linearGradient21" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="930.37" gradientUnits="userSpaceOnUse" x2="1393.77" y1="1036.3" y2="1076.3" id="linearGradient22" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="930.37" gradientUnits="userSpaceOnUse" x2="1010.37" y1="195" y2="235" id="linearGradient23" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="413" gradientUnits="userSpaceOnUse" x2="493" y1="1036.3" y2="1076.3" id="linearGradient24" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<linearGradient x1="930.37" gradientUnits="userSpaceOnUse" x2="1318.15" y1="-7.8" y2="51.2" id="linearGradient25" spreadMethod="reflect">
|
|
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
|
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
|
</linearGradient>
|
|
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
|
|
<path d="M0 0 L1121 0 L1121 1295 L0 1295 L0 0 Z"/>
|
|
</clipPath>
|
|
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
|
|
<path d="M288 -23 L1409 -23 L1409 1272 L288 1272 L288 -23 Z"/>
|
|
</clipPath>
|
|
</defs>
|
|
<g fill="white" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="translate(-288,23)" stroke="white">
|
|
<rect x="288" width="1121" height="1295" y="-23" clip-path="url(#clipPath2)" stroke="none"/>
|
|
</g>
|
|
<g fill="url(#linearGradient1)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient1)">
|
|
<ellipse rx="100.5" ry="29.5" clip-path="url(#clipPath2)" cx="732.5" cy="21.7" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<ellipse rx="100.5" fill="none" ry="29.5" clip-path="url(#clipPath2)" cx="732.5" cy="21.7"/>
|
|
<text x="639.9014" xml:space="preserve" y="25.8543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">normalized_weighted_distance</text>
|
|
</g>
|
|
<g fill="url(#linearGradient2)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient2)">
|
|
<path d="M732.5 181.8 L833 215 L732.5 248.2 L632 215 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M732.5 181.8 L833 215 L732.5 248.2 L632 215 Z" clip-path="url(#clipPath2)"/>
|
|
<text x="704.3516" xml:space="preserve" y="219.1543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">min_ratio</text>
|
|
</g>
|
|
<g fill="url(#linearGradient3)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient3)">
|
|
<path d="M732.5 483.1 L833 516.3 L732.5 549.5 L632 516.3 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M732.5 483.1 L833 516.3 L732.5 549.5 L632 516.3 Z" clip-path="url(#clipPath2)"/>
|
|
<text x="668.4893" xml:space="preserve" y="520.4543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">len_dist >= max_dist</text>
|
|
</g>
|
|
<g fill="url(#linearGradient4)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient4)">
|
|
<path d="M632 594.8 L833 594.8 L833 653.8 L632 653.8 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M632 594.8 L833 594.8 L833 653.8 L632 653.8 Z" clip-path="url(#clipPath2)"/>
|
|
<text x="643.9473" xml:space="preserve" y="618.4043" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">remove common prefix/suffix</text>
|
|
<text x="696.1484" xml:space="preserve" y="644.9699" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">from strings</text>
|
|
</g>
|
|
<g fill="url(#linearGradient5)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient5)">
|
|
<rect x="930.37" width="309.4" height="59" y="388.3" clip-path="url(#clipPath2)" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M969.045 388.3 L930.37 388.3 L930.37 447.3 L969.045 447.3" clip-path="url(#clipPath2)"/>
|
|
<text x="950.5798" xml:space="preserve" y="405.4387" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">fast distance calculation using string lengths</text>
|
|
<text x="983.7438" xml:space="preserve" y="438.4699" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">in O(1) (>= levenshtein distance)</text>
|
|
</g>
|
|
<g fill="url(#linearGradient6)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient6)">
|
|
<path d="M732.5 699.1 L833 732.3 L732.5 765.5 L632 732.3 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M732.5 699.1 L833 732.3 L732.5 765.5 L632 732.3 Z" clip-path="url(#clipPath2)"/>
|
|
<text x="677.8643" xml:space="preserve" y="736.4543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">one string empty?</text>
|
|
</g>
|
|
<g fill="url(#linearGradient7)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient7)">
|
|
<path d="M632 397.8 L833 397.8 L833 437.8 L632 437.8 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M632 397.8 L833 397.8 L833 437.8 L632 437.8 Z" clip-path="url(#clipPath2)"/>
|
|
<text x="653.3135" xml:space="preserve" y="421.9543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">len_dist = abs(len1 - len2)</text>
|
|
</g>
|
|
<g fill="url(#linearGradient8)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient8)">
|
|
<path d="M632 293.5 L833 293.5 L833 352.5 L632 352.5 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M632 293.5 L833 293.5 L833 352.5 L632 352.5 Z" clip-path="url(#clipPath2)"/>
|
|
<text x="670.1621" xml:space="preserve" y="317.1043" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">compute max_dist =</text>
|
|
<text x="637.8535" xml:space="preserve" y="343.6699" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">(len1 + len2) * (1.0 - min_ratio)</text>
|
|
</g>
|
|
<g fill="url(#linearGradient9)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient9)">
|
|
<path d="M632 810.8 L833 810.8 L833 869.8 L632 869.8 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M632 810.8 L833 810.8 L833 869.8 L632 869.8 Z" clip-path="url(#clipPath2)"/>
|
|
<text x="643.8857" xml:space="preserve" y="834.4043" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">char_dist = count uncommon</text>
|
|
<text x="657.3799" xml:space="preserve" y="860.9699" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">chars between s1 and s2</text>
|
|
</g>
|
|
<g fill="url(#linearGradient10)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient10)">
|
|
<rect x="930.37" width="463.4" height="59" y="810.8" clip-path="url(#clipPath2)" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M988.295 810.8 L930.37 810.8 L930.37 869.8 L988.295 869.8" clip-path="url(#clipPath2)"/>
|
|
<text x="1006.9431" xml:space="preserve" y="827.9387" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">distance calculation using uncommon chars in O(N)</text>
|
|
<text x="935.2272" xml:space="preserve" y="860.9699" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">(>= levenshtein distance and = levenshtein distance of two sorted strings)</text>
|
|
</g>
|
|
<g fill="url(#linearGradient11)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient11)">
|
|
<path d="M732.5 915.1 L833 948.3 L732.5 981.5 L632 948.3 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M732.5 915.1 L833 948.3 L732.5 981.5 L632 948.3 Z" clip-path="url(#clipPath2)"/>
|
|
<text x="664.4053" xml:space="preserve" y="952.4543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">char_dist >= max_dist</text>
|
|
</g>
|
|
<g fill="url(#linearGradient12)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient12)">
|
|
<rect x="930.37" width="373.15" height="59" y="594.8" clip-path="url(#clipPath2)" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M977.0137 594.8 L930.37 594.8 L930.37 653.8 L977.0137 653.8" clip-path="url(#clipPath2)"/>
|
|
<text x="945.1159" xml:space="preserve" y="611.9387" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">levenshtein distance works without common prefix/suffix</text>
|
|
<text x="973.2673" xml:space="preserve" y="644.9699" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">removing it is O(N) while Levenshtein is O(N*M)</text>
|
|
</g>
|
|
<g fill="url(#linearGradient13)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient13)">
|
|
<path d="M632 1131.1 L833 1131.1 L833 1171.1 L632 1171.1 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M632 1131.1 L833 1131.1 L833 1171.1 L632 1171.1 Z" clip-path="url(#clipPath2)"/>
|
|
<text x="638.6182" xml:space="preserve" y="1155.2543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">lev_dist = levenshtein distance</text>
|
|
</g>
|
|
<g fill="url(#linearGradient14)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient14)">
|
|
<path d="M632 96.5 L833 96.5 L833 136.5 L632 136.5 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M632 96.5 L833 96.5 L833 136.5 L632 136.5 Z" clip-path="url(#clipPath2)"/>
|
|
<text x="666.9248" xml:space="preserve" y="120.6543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">lensum = len1 + len2</text>
|
|
</g>
|
|
<g fill="url(#linearGradient15)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient15)">
|
|
<rect x="930.37" width="463.4" height="59" y="1121.6" clip-path="url(#clipPath2)" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M988.295 1121.6 L930.37 1121.6 L930.37 1180.6 L988.295 1180.6" clip-path="url(#clipPath2)"/>
|
|
<text x="1066.6324" xml:space="preserve" y="1138.7386" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">levenshtein distance in O(N*M) </text>
|
|
<text x="1034.2535" xml:space="preserve" y="1171.7699" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">weighting: insert=1, delete=1, replace=2 </text>
|
|
</g>
|
|
<g fill="url(#linearGradient16)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient16)">
|
|
<rect x="413" y="195" clip-path="url(#clipPath2)" width="80" rx="20" ry="20" height="40" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<rect x="413" y="195" clip-path="url(#clipPath2)" fill="none" width="80" rx="20" ry="20" height="40"/>
|
|
<text x="428.6924" xml:space="preserve" y="219.1543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">return 0</text>
|
|
</g>
|
|
<g fill="url(#linearGradient17)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient17)">
|
|
<rect x="413" y="496.3" clip-path="url(#clipPath2)" width="80" rx="20" ry="20" height="40" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<rect x="413" y="496.3" clip-path="url(#clipPath2)" fill="none" width="80" rx="20" ry="20" height="40"/>
|
|
<text x="428.6924" xml:space="preserve" y="520.4543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">return 0</text>
|
|
</g>
|
|
<g fill="url(#linearGradient18)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient18)">
|
|
<rect x="303" y="712.3" clip-path="url(#clipPath2)" width="190" rx="20" ry="20" height="40" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<rect x="303" y="712.3" clip-path="url(#clipPath2)" fill="none" width="190" rx="20" ry="20" height="40"/>
|
|
<text x="309.1953" xml:space="preserve" y="736.4543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">return 1.0 - len_dist / lensum</text>
|
|
</g>
|
|
<g fill="url(#linearGradient19)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient19)">
|
|
<rect x="413" y="928.3" clip-path="url(#clipPath2)" width="80" rx="20" ry="20" height="40" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<rect x="413" y="928.3" clip-path="url(#clipPath2)" fill="none" width="80" rx="20" ry="20" height="40"/>
|
|
<text x="428.6924" xml:space="preserve" y="952.4543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">return 0</text>
|
|
</g>
|
|
<g fill="url(#linearGradient20)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient20)">
|
|
<rect x="632" y="1216.4" clip-path="url(#clipPath2)" width="201" rx="20" ry="20" height="40" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<rect x="632" y="1216.4" clip-path="url(#clipPath2)" fill="none" width="201" rx="20" ry="20" height="40"/>
|
|
<text x="643.9473" xml:space="preserve" y="1240.5543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">return 1.0 - lev_dist / lensum</text>
|
|
</g>
|
|
<g fill="url(#linearGradient21)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient21)">
|
|
<path d="M632 1026.8 L833 1026.8 L833 1085.8 L632 1085.8 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M632 1026.8 L833 1026.8 L833 1085.8 L632 1085.8 Z" clip-path="url(#clipPath2)"/>
|
|
<text x="643.9473" xml:space="preserve" y="1050.4043" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">remove common prefix/suffix</text>
|
|
<text x="696.1484" xml:space="preserve" y="1076.97" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">from strings</text>
|
|
</g>
|
|
<g fill="url(#linearGradient22)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient22)">
|
|
<rect x="930.37" width="463.4" height="40" y="1036.3" clip-path="url(#clipPath2)" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M988.295 1036.3 L930.37 1036.3 L930.37 1076.3 L988.295 1076.3" clip-path="url(#clipPath2)"/>
|
|
<text x="952.6589" xml:space="preserve" y="1053.4387" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">when this was already done this only compares the first and last char</text>
|
|
</g>
|
|
<g fill="url(#linearGradient23)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient23)">
|
|
<circle r="20" clip-path="url(#clipPath2)" cx="970.37" cy="215" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<circle fill="none" r="20" clip-path="url(#clipPath2)" cx="970.37" cy="215"/>
|
|
<text x="966.2655" xml:space="preserve" y="219.1543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">A</text>
|
|
</g>
|
|
<g fill="url(#linearGradient24)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient24)">
|
|
<circle r="20" clip-path="url(#clipPath2)" cx="453" cy="1056.3" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<circle fill="none" r="20" clip-path="url(#clipPath2)" cx="453" cy="1056.3"/>
|
|
<text x="448.8955" xml:space="preserve" y="1060.4543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">A</text>
|
|
</g>
|
|
<g fill="url(#linearGradient25)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke="url(#linearGradient25)">
|
|
<rect x="930.37" width="387.78" height="59" y="-7.8" clip-path="url(#clipPath2)" stroke="none"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M978.8425 -7.8 L930.37 -7.8 L930.37 51.2 L978.8425 51.2" clip-path="url(#clipPath2)"/>
|
|
<text x="953.5354" xml:space="preserve" y="9.3387" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">calculates a normalized form of the levenshtein distance</text>
|
|
<text x="953.5354" xml:space="preserve" y="42.3699" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">using the following costs: insert=1, delete=1, replace=2</text>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path fill="none" d="M732.5 549.4963 L732.5 586.8241" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-288,23)" stroke-linecap="butt">
|
|
<path d="M732.5 594.8241 L737.5 582.8241 L732.5 585.8241 L727.5 582.8241 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
|
<text x="690.1865" xml:space="preserve" y="576.3043" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">true</text>
|
|
<path fill="none" d="M732.5 653.8049 L732.5 691.0699" clip-path="url(#clipPath2)"/>
|
|
<path d="M732.5 699.0699 L737.5 687.0699 L732.5 690.0699 L727.5 687.0699 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<path fill="none" d="M930.3472 417.8 L833.0176 417.8" clip-path="url(#clipPath2)"/>
|
|
<path fill="none" d="M732.5 437.7597 L732.5 475.1275" clip-path="url(#clipPath2)"/>
|
|
<path d="M732.5 483.1275 L737.5 471.1275 L732.5 474.1275 L727.5 471.1275 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<path fill="none" d="M732.5 248.1963 L732.5 285.5241" clip-path="url(#clipPath2)"/>
|
|
<path d="M732.5 293.5241 L737.5 281.5241 L732.5 284.5241 L727.5 281.5241 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<rect x="685.0459" y="253.2" clip-path="url(#clipPath2)" fill="white" width="94.9082" height="17.9688" stroke="none"/>
|
|
<text x="687.0459" xml:space="preserve" y="266.3387" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">>0 and <=100</text>
|
|
<path fill="none" d="M732.5 352.4861 L732.5 389.804" clip-path="url(#clipPath2)"/>
|
|
<path d="M732.5 397.804 L737.5 385.804 L732.5 388.804 L727.5 385.804 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<path fill="none" d="M732.5 765.4963 L732.5 802.8241" clip-path="url(#clipPath2)"/>
|
|
<path d="M732.5 810.8241 L737.5 798.8241 L732.5 801.8241 L727.5 798.8241 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<text x="688.2266" xml:space="preserve" y="792.3043" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">false</text>
|
|
<path fill="none" d="M930.3738 840.3 L833.0311 840.3" clip-path="url(#clipPath2)"/>
|
|
<path fill="none" d="M732.5 869.8049 L732.5 907.0699" clip-path="url(#clipPath2)"/>
|
|
<path d="M732.5 915.0699 L737.5 903.0699 L732.5 906.0699 L727.5 903.0699 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<path fill="none" d="M930.4009 624.3 L833.0449 624.3" clip-path="url(#clipPath2)"/>
|
|
<path fill="none" d="M732.5 51.1861 L732.5 88.504" clip-path="url(#clipPath2)"/>
|
|
<path d="M732.5 96.504 L737.5 84.504 L732.5 87.504 L727.5 84.504 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<path fill="none" d="M732.5 136.4597 L732.5 173.8275" clip-path="url(#clipPath2)"/>
|
|
<path d="M732.5 181.8275 L737.5 169.8275 L732.5 172.8275 L727.5 169.8275 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<path fill="none" d="M930.3738 1151.1 L833.0311 1151.1" clip-path="url(#clipPath2)"/>
|
|
<path fill="none" d="M632.0206 215 L500.9912 215" clip-path="url(#clipPath2)"/>
|
|
<path d="M492.9912 215 L504.9912 220 L501.9912 215 L504.9912 210 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<rect x="544.0205" y="206.0156" clip-path="url(#clipPath2)" fill="white" width="36.959" height="17.9688" stroke="none"/>
|
|
<text x="546.0205" xml:space="preserve" y="219.1543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">>100</text>
|
|
<path fill="none" d="M632.0206 516.3 L500.9912 516.3" clip-path="url(#clipPath2)"/>
|
|
<path d="M492.9912 516.3 L504.9912 521.3 L501.9912 516.3 L504.9912 511.3 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<rect x="546.2266" y="507.3156" clip-path="url(#clipPath2)" fill="white" width="32.5469" height="17.9688" stroke="none"/>
|
|
<text x="548.2266" xml:space="preserve" y="520.4543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">false</text>
|
|
<path fill="none" d="M632.0112 732.3 L500.9814 732.3" clip-path="url(#clipPath2)"/>
|
|
<path d="M492.9814 732.3 L504.9814 737.3 L501.9814 732.3 L504.9814 727.3 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<rect x="546.2266" y="723.3156" clip-path="url(#clipPath2)" fill="white" width="32.5469" height="17.9688" stroke="none"/>
|
|
<text x="548.2266" xml:space="preserve" y="736.4543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">false</text>
|
|
<path fill="none" d="M632.0206 948.3 L500.9912 948.3" clip-path="url(#clipPath2)"/>
|
|
<path d="M492.9912 948.3 L504.9912 953.3 L501.9912 948.3 L504.9912 943.3 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<rect x="546.2266" y="939.3156" clip-path="url(#clipPath2)" fill="white" width="32.5469" height="17.9688" stroke="none"/>
|
|
<text x="548.2266" xml:space="preserve" y="952.4543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">false</text>
|
|
<path fill="none" d="M732.5 1171.1338 L732.5 1208.4186" clip-path="url(#clipPath2)"/>
|
|
<path d="M732.5 1216.4186 L737.5 1204.4186 L732.5 1207.4186 L727.5 1204.4186 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<path fill="none" d="M732.5 981.4963 L732.5 1018.8241" clip-path="url(#clipPath2)"/>
|
|
<path d="M732.5 1026.8241 L737.5 1014.8241 L732.5 1017.8241 L727.5 1014.8241 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<text x="690.1865" xml:space="preserve" y="1008.3043" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">true</text>
|
|
<path fill="none" d="M732.5 1085.7861 L732.5 1123.104" clip-path="url(#clipPath2)"/>
|
|
<path d="M732.5 1131.104 L737.5 1119.104 L732.5 1122.104 L727.5 1119.104 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<path fill="none" d="M930.3738 1056.3 L833.0311 1056.3" clip-path="url(#clipPath2)"/>
|
|
<path fill="none" d="M832.9966 215 L942.3475 215" clip-path="url(#clipPath2)"/>
|
|
<path d="M950.3475 215 L938.3475 210 L941.3475 215 L938.3475 220 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<rect x="865.8129" y="206.0156" clip-path="url(#clipPath2)" fill="white" width="31.7441" height="17.9688" stroke="none"/>
|
|
<text x="867.8129" xml:space="preserve" y="219.1543" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">==0</text>
|
|
<path fill="none" d="M473.0276 1056.3 L623.9988 1056.3" clip-path="url(#clipPath2)"/>
|
|
<path d="M631.9988 1056.3 L619.9988 1051.3 L622.9988 1056.3 L619.9988 1061.3 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
|
<path fill="none" d="M930.3407 21.7 L833.0143 21.7" clip-path="url(#clipPath2)"/>
|
|
</g>
|
|
</g>
|
|
</svg>
|