Match two columns with names/strings that are not 100% identical

조회 수: 4 (최근 30일)
Dave
Dave 2022년 10월 13일
댓글: Jan 2022년 10월 14일
Evening, in a table, is there a way to compare two columns with names/strings and find "similar" matches that are not 100% identical?
Instead, they share 80% or more characters to be considered a match. Ignore case and spaces.
For example, the first entry in column1 is NAME123ABC that has 10 characters, and I woud like the index of column 2 if
1- the percentage of shared characters is 80% or more,
2- the percentage of shared characters is 80% or more AND order of characters is identical.
I attached the table with two columns, the same data is pasted below:
'NAME123ABC' 'XYZ'
'NAME2XYZ' 'Name1ABC'
'NAME3333' 'abc'
'NAME ZZZ' '123A'
'' 'AAA'
'' 'ABC ABC'
'' 'Name1 ABCD'
'' 'abcxyname1'
'' 'NAme 1'
'' 'XYZ2'
'' 'ABC NAME1'
'' '123ABC'
For this example, the answer for
1 - with the condition of at least 80% of characters the indices in column2 are: 2, 7, 8 ,11
2 - with the condition of at least 80% of characters AND order of characters the indices in column2 are: 2, 7
danke
  댓글 수: 4
Dave
Dave 2022년 10월 13일
편집: Dave 2022년 10월 13일
  • The AA vs AAAAAAAA case wouldn't be an issue in my data, but I could still another condition such that intersect(A,B) > x
  • The main issue is how to have 'NAME123ABC' when compared to 'BCA Y301 N2' as NOT a match even though they share 8 out of 10 char. This is the case orderFlag = true
Jan
Jan 2022년 10월 14일
@Dave: Again, we do need an exact mathematical definition of what you call "a match", before we can implement it as code. What does "order of characters" mean in case of repeated characters?
This case occurs in your test data: "NAME123ABC" and "Name1 ABCD"
We cannot invent this detail for you, because this is the scientific problem you want to solve.

댓글을 달려면 로그인하십시오.

답변 (2개)

Jan
Jan 2022년 10월 13일
Pool = {'NAME123ABC', 'NAME2XYZ', 'NAME3333', 'NAME ZZZ'}
Data = {'XYZ', 'Name1ABC', 'abc', '123A', 'AAA', 'ABC ABC', 'Name1 ABCD', ...
'abcxyname1', 'NAme 1', 'XYZ2', 'ABC NAME1', '123ABC'};
Data = lower(strrep(Data, ' ', '')); % Remove spaces
Pool = lower(pool);
orderFlag = true;
match = false(size(Data));
for k = 1:numel(Data)
for p = 1:numel(Pool)
if compare(Data{k}, Pool{p}, orderFlag)
match(k) = true;
break;
end
end
end
function m = compare(A, B, flag)
m = (sum(ismember(A, B)) / numel(A) > 0.8);
if m && flag % Order matters:
... Further clarification required
end
end
  댓글 수: 2
Dave
Dave 2022년 10월 13일
편집: Dave 2022년 10월 13일
Thanks a lot Jan
Made minor changes and the orderFlag=false works great, but how can I solve the case orderFlag=true?
For example, I added the first entry in column2 with 'BCA Y301 N2'
Data = {'BCA Y301 N2', 'XYZ', 'Name1ABC', 'abc', '123A', 'AAA', 'ABC ABC', 'Name1 ABCD', ...
'abcxyname1', 'NAme 1', 'XYZ2', 'ABC NAME1', '123ABC'};
And that will ouput a false positive because it shares 8 out 10 char with 'NAME123ABC'.
So, the orderFlag true case should find consecutive char for at least 50% of the entry. So in the case of the
NAME123ABC this is 5 consecutive char:
NAME1
AME12
ME123
...
23ABC
If any of these are found in Data then true.
I tried using extractBetween or intersect but cannot adapt to consecutive char
Jan
Jan 2022년 10월 14일
See my comments to your question. The meaning of "order" must be defined accurately before this can be implemented.

댓글을 달려면 로그인하십시오.


John D'Errico
John D'Errico 2022년 10월 13일
편집: John D'Errico 2022년 10월 13일
Searching for degree of similarity is not a completely trivial task. In a sense, you want to describe the distance between two "words" or sequences of characters as a number in some way.
One idea might be to consider PAIRS of consecutive characters. For example, suppose we allow any combination of upper case, lower case, numbers, and a space.
Clist = ['A':'Z','a':'z','0:9',' '];
That represents the universe of things we will care about. I suppose I could add in punctation, etc., but that will do for here.
Now, consider all possible combinations of two consecutive elements from that set.
[C1,C2] = meshgrid(Clist);
Clist2 = [C1(:),C2(:)]
Clist2 = 3136×2 char array
'AA' 'AB' 'AC' 'AD' 'AE' 'AF' 'AG' 'AH' 'AI' 'AJ' 'AK' 'AL' 'AM' 'AN' 'AO' 'AP' 'AQ' 'AR' 'AS' 'AT' 'AU' 'AV' 'AW' 'AX' 'AY' 'AZ' 'Aa' 'Ab' 'Ac' 'Ad' 'Ae' 'Af' 'Ag' 'Ah' 'Ai' 'Aj' 'Ak' 'Al' 'Am' 'An' 'Ao' 'Ap' 'Aq' 'Ar' 'As' 'At' 'Au' 'Av' 'Aw' 'Ax' 'Ay' 'Az' 'A0' 'A:' 'A9' 'A ' 'BA' 'BB' 'BC' 'BD' 'BE' 'BF' 'BG' 'BH' 'BI' 'BJ' 'BK' 'BL' 'BM' 'BN' 'BO' 'BP' 'BQ' 'BR' 'BS' 'BT' 'BU' 'BV' 'BW' 'BX' 'BY' 'BZ' 'Ba' 'Bb' 'Bc' 'Bd' 'Be' 'Bf' 'Bg' 'Bh' 'Bi' 'Bj' 'Bk' 'Bl' 'Bm' 'Bn' 'Bo' 'Bp' 'Bq' 'Br' 'Bs' 'Bt' 'Bu' 'Bv' 'Bw' 'Bx' 'By' 'Bz' 'B0' 'B:' 'B9' 'B ' 'CA' 'CB' 'CC' 'CD' 'CE' 'CF' 'CG' 'CH' 'CI' 'CJ' 'CK' 'CL' 'CM' 'CN' 'CO' 'CP' 'CQ' 'CR' 'CS' 'CT' 'CU' 'CV' 'CW' 'CX' 'CY' 'CZ' 'Ca' 'Cb' 'Cc' 'Cd' 'Ce' 'Cf' 'Cg' 'Ch' 'Ci' 'Cj' 'Ck' 'Cl' 'Cm' 'Cn' 'Co' 'Cp' 'Cq' 'Cr' 'Cs' 'Ct' 'Cu' 'Cv' 'Cw' 'Cx' 'Cy' 'Cz' 'C0' 'C:' 'C9' 'C ' 'DA' 'DB' 'DC' 'DD' 'DE' 'DF' 'DG' 'DH' 'DI' 'DJ' 'DK' 'DL' 'DM' 'DN' 'DO' 'DP' 'DQ' 'DR' 'DS' 'DT' 'DU' 'DV' 'DW' 'DX' 'DY' 'DZ' 'Da' 'Db' 'Dc' 'Dd' 'De' 'Df' 'Dg' 'Dh' 'Di' 'Dj' 'Dk' 'Dl' 'Dm' 'Dn' 'Do' 'Dp' 'Dq' 'Dr' 'Ds' 'Dt' 'Du' 'Dv' 'Dw' 'Dx' 'Dy' 'Dz' 'D0' 'D:' 'D9' 'D ' 'EA' 'EB' 'EC' 'ED' 'EE' 'EF' 'EG' 'EH' 'EI' 'EJ' 'EK' 'EL' 'EM' 'EN' 'EO' 'EP' 'EQ' 'ER' 'ES' 'ET' 'EU' 'EV' 'EW' 'EX' 'EY' 'EZ' 'Ea' 'Eb' 'Ec' 'Ed' 'Ee' 'Ef' 'Eg' 'Eh' 'Ei' 'Ej' 'Ek' 'El' 'Em' 'En' 'Eo' 'Ep' 'Eq' 'Er' 'Es' 'Et' 'Eu' 'Ev' 'Ew' 'Ex' 'Ey' 'Ez' 'E0' 'E:' 'E9' 'E ' 'FA' 'FB' 'FC' 'FD' 'FE' 'FF' 'FG' 'FH' 'FI' 'FJ' 'FK' 'FL' 'FM' 'FN' 'FO' 'FP' 'FQ' 'FR' 'FS' 'FT' 'FU' 'FV' 'FW' 'FX' 'FY' 'FZ' 'Fa' 'Fb' 'Fc' 'Fd' 'Fe' 'Ff' 'Fg' 'Fh' 'Fi' 'Fj' 'Fk' 'Fl' 'Fm' 'Fn' 'Fo' 'Fp' 'Fq' 'Fr' 'Fs' 'Ft' 'Fu' 'Fv' 'Fw' 'Fx' 'Fy' 'Fz' 'F0' 'F:' 'F9' 'F ' 'GA' 'GB' 'GC' 'GD' 'GE' 'GF' 'GG' 'GH' 'GI' 'GJ' 'GK' 'GL' 'GM' 'GN' 'GO' 'GP' 'GQ' 'GR' 'GS' 'GT' 'GU' 'GV' 'GW' 'GX' 'GY' 'GZ' 'Ga' 'Gb' 'Gc' 'Gd' 'Ge' 'Gf' 'Gg' 'Gh' 'Gi' 'Gj' 'Gk' 'Gl' 'Gm' 'Gn' 'Go' 'Gp' 'Gq' 'Gr' 'Gs' 'Gt' 'Gu' 'Gv' 'Gw' 'Gx' 'Gy' 'Gz' 'G0' 'G:' 'G9' 'G ' 'HA' 'HB' 'HC' 'HD' 'HE' 'HF' 'HG' 'HH' 'HI' 'HJ' 'HK' 'HL' 'HM' 'HN' 'HO' 'HP' 'HQ' 'HR' 'HS' 'HT' 'HU' 'HV' 'HW' 'HX' 'HY' 'HZ' 'Ha' 'Hb' 'Hc' 'Hd' 'He' 'Hf' 'Hg' 'Hh' 'Hi' 'Hj' 'Hk' 'Hl' 'Hm' 'Hn' 'Ho' 'Hp' 'Hq' 'Hr' 'Hs' 'Ht' 'Hu' 'Hv' 'Hw' 'Hx' 'Hy' 'Hz' 'H0' 'H:' 'H9' 'H ' 'IA' 'IB' 'IC' 'ID' 'IE' 'IF' 'IG' 'IH' 'II' 'IJ' 'IK' 'IL' 'IM' 'IN' 'IO' 'IP' 'IQ' 'IR' 'IS' 'IT' 'IU' 'IV' 'IW' 'IX' 'IY' 'IZ' 'Ia' 'Ib' 'Ic' 'Id' 'Ie' 'If' 'Ig' 'Ih' 'Ii' 'Ij' 'Ik' 'Il' 'Im' 'In' 'Io' 'Ip' 'Iq' 'Ir' 'Is' 'It' 'Iu' 'Iv' 'Iw' 'Ix' 'Iy' 'Iz' 'I0' 'I:' 'I9' 'I ' 'JA' 'JB' 'JC' 'JD' 'JE' 'JF' 'JG' 'JH' 'JI' 'JJ' 'JK' 'JL' 'JM' 'JN' 'JO' 'JP' 'JQ' 'JR' 'JS' 'JT' 'JU' 'JV' 'JW' 'JX' 'JY' 'JZ' 'Ja' 'Jb' 'Jc' 'Jd' 'Je' 'Jf' 'Jg' 'Jh' 'Ji' 'Jj' 'Jk' 'Jl' 'Jm' 'Jn' 'Jo' 'Jp' 'Jq' 'Jr' 'Js' 'Jt' 'Ju' 'Jv' 'Jw' 'Jx' 'Jy' 'Jz' 'J0' 'J:' 'J9' 'J ' 'KA' 'KB' 'KC' 'KD' 'KE' 'KF' 'KG' 'KH' 'KI' 'KJ' 'KK' 'KL' 'KM' 'KN' 'KO' 'KP' 'KQ' 'KR' 'KS' 'KT' 'KU' 'KV' 'KW' 'KX' 'KY' 'KZ' 'Ka' 'Kb' 'Kc' 'Kd' 'Ke' 'Kf' 'Kg' 'Kh' 'Ki' 'Kj' 'Kk' 'Kl' 'Km' 'Kn' 'Ko' 'Kp' 'Kq' 'Kr' 'Ks' 'Kt' 'Ku' 'Kv' 'Kw' 'Kx' 'Ky' 'Kz' 'K0' 'K:' 'K9' 'K ' 'LA' 'LB' 'LC' 'LD' 'LE' 'LF' 'LG' 'LH' 'LI' 'LJ' 'LK' 'LL' 'LM' 'LN' 'LO' 'LP' 'LQ' 'LR' 'LS' 'LT' 'LU' 'LV' 'LW' 'LX' 'LY' 'LZ' 'La' 'Lb' 'Lc' 'Ld' 'Le' 'Lf' 'Lg' 'Lh' 'Li' 'Lj' 'Lk' 'Ll' 'Lm' 'Ln' 'Lo' 'Lp' 'Lq' 'Lr' 'Ls' 'Lt' 'Lu' 'Lv' 'Lw' 'Lx' 'Ly' 'Lz' 'L0' 'L:' 'L9' 'L ' 'MA' 'MB' 'MC' 'MD' 'ME' 'MF' 'MG' 'MH' 'MI' 'MJ' 'MK' 'ML' 'MM' 'MN' 'MO' 'MP' 'MQ' 'MR' 'MS' 'MT' 'MU' 'MV' 'MW' 'MX' 'MY' 'MZ' 'Ma' 'Mb' 'Mc' 'Md' 'Me' 'Mf' 'Mg' 'Mh' 'Mi' 'Mj' 'Mk' 'Ml' 'Mm' 'Mn' 'Mo' 'Mp' 'Mq' 'Mr' 'Ms' 'Mt' 'Mu' 'Mv' 'Mw' 'Mx' 'My' 'Mz' 'M0' 'M:' 'M9' 'M ' 'NA' 'NB' 'NC' 'ND' 'NE' 'NF' 'NG' 'NH' 'NI' 'NJ' 'NK' 'NL' 'NM' 'NN' 'NO' 'NP' 'NQ' 'NR' 'NS' 'NT' 'NU' 'NV' 'NW' 'NX' 'NY' 'NZ' 'Na' 'Nb' 'Nc' 'Nd' 'Ne' 'Nf' 'Ng' 'Nh' 'Ni' 'Nj' 'Nk' 'Nl' 'Nm' 'Nn' 'No' 'Np' 'Nq' 'Nr' 'Ns' 'Nt' 'Nu' 'Nv' 'Nw' 'Nx' 'Ny' 'Nz' 'N0' 'N:' 'N9' 'N ' 'OA' 'OB' 'OC' 'OD' 'OE' 'OF' 'OG' 'OH' 'OI' 'OJ' 'OK' 'OL' 'OM' 'ON' 'OO' 'OP' 'OQ' 'OR' 'OS' 'OT' 'OU' 'OV' 'OW' 'OX' 'OY' 'OZ' 'Oa' 'Ob' 'Oc' 'Od' 'Oe' 'Of' 'Og' 'Oh' 'Oi' 'Oj' 'Ok' 'Ol' 'Om' 'On' 'Oo' 'Op' 'Oq' 'Or' 'Os' 'Ot' 'Ou' 'Ov' 'Ow' 'Ox' 'Oy' 'Oz' 'O0' 'O:' 'O9' 'O ' 'PA' 'PB' 'PC' 'PD' 'PE' 'PF' 'PG' 'PH' 'PI' 'PJ' 'PK' 'PL' 'PM' 'PN' 'PO' 'PP' 'PQ' 'PR' 'PS' 'PT' 'PU' 'PV' 'PW' 'PX' 'PY' 'PZ' 'Pa' 'Pb' 'Pc' 'Pd' 'Pe' 'Pf' 'Pg' 'Ph' 'Pi' 'Pj' 'Pk' 'Pl' 'Pm' 'Pn' 'Po' 'Pp' 'Pq' 'Pr' 'Ps' 'Pt' 'Pu' 'Pv' 'Pw' 'Px' 'Py' 'Pz' 'P0' 'P:' 'P9' 'P ' 'QA' 'QB' 'QC' 'QD' 'QE' 'QF' 'QG' 'QH' 'QI' 'QJ' 'QK' 'QL' 'QM' 'QN' 'QO' 'QP' 'QQ' 'QR' 'QS' 'QT' 'QU' 'QV' 'QW' 'QX' 'QY' 'QZ' 'Qa' 'Qb' 'Qc' 'Qd' 'Qe' 'Qf' 'Qg' 'Qh' 'Qi' 'Qj' 'Qk' 'Ql' 'Qm' 'Qn' 'Qo' 'Qp' 'Qq' 'Qr' 'Qs' 'Qt' 'Qu' 'Qv' 'Qw' 'Qx' 'Qy' 'Qz' 'Q0' 'Q:' 'Q9' 'Q ' 'RA' 'RB' 'RC' 'RD' 'RE' 'RF' 'RG' 'RH' 'RI' 'RJ' 'RK' 'RL' 'RM' 'RN' 'RO' 'RP' 'RQ' 'RR' 'RS' 'RT' 'RU' 'RV' 'RW' 'RX' 'RY' 'RZ' 'Ra' 'Rb' 'Rc' 'Rd' 'Re' 'Rf' 'Rg' 'Rh' 'Ri' 'Rj' 'Rk' 'Rl' 'Rm' 'Rn' 'Ro' 'Rp' 'Rq' 'Rr' 'Rs' 'Rt' 'Ru' 'Rv' 'Rw' 'Rx' 'Ry' 'Rz' 'R0' 'R:' 'R9' 'R ' 'SA' 'SB' 'SC' 'SD' 'SE' 'SF' 'SG' 'SH' 'SI' 'SJ' 'SK' 'SL' 'SM' 'SN' 'SO' 'SP' 'SQ' 'SR' 'SS' 'ST' 'SU' 'SV' 'SW' 'SX' 'SY' 'SZ' 'Sa' 'Sb' 'Sc' 'Sd' 'Se' 'Sf' 'Sg' 'Sh' 'Si' 'Sj' 'Sk' 'Sl' 'Sm' 'Sn' 'So' 'Sp' 'Sq' 'Sr' 'Ss' 'St' 'Su' 'Sv' 'Sw' 'Sx' 'Sy' 'Sz' 'S0' 'S:' 'S9' 'S ' 'TA' 'TB' 'TC' 'TD' 'TE' 'TF' 'TG' 'TH' 'TI' 'TJ' 'TK' 'TL' 'TM' 'TN' 'TO' 'TP' 'TQ' 'TR' 'TS' 'TT' 'TU' 'TV' 'TW' 'TX' 'TY' 'TZ' 'Ta' 'Tb' 'Tc' 'Td' 'Te' 'Tf' 'Tg' 'Th' 'Ti' 'Tj' 'Tk' 'Tl' 'Tm' 'Tn' 'To' 'Tp' 'Tq' 'Tr' 'Ts' 'Tt' 'Tu' 'Tv' 'Tw' 'Tx' 'Ty' 'Tz' 'T0' 'T:' 'T9' 'T ' 'UA' 'UB' 'UC' 'UD' 'UE' 'UF' 'UG' 'UH' 'UI' 'UJ' 'UK' 'UL' 'UM' 'UN' 'UO' 'UP' 'UQ' 'UR' 'US' 'UT' 'UU' 'UV' 'UW' 'UX' 'UY' 'UZ' 'Ua' 'Ub' 'Uc' 'Ud' 'Ue' 'Uf' 'Ug' 'Uh' 'Ui' 'Uj' 'Uk' 'Ul' 'Um' 'Un' 'Uo' 'Up' 'Uq' 'Ur' 'Us' 'Ut' 'Uu' 'Uv' 'Uw' 'Ux' 'Uy' 'Uz' 'U0' 'U:' 'U9' 'U ' 'VA' 'VB' 'VC' 'VD' 'VE' 'VF' 'VG' 'VH' 'VI' 'VJ' 'VK' 'VL' 'VM' 'VN' 'VO' 'VP' 'VQ' 'VR' 'VS' 'VT' 'VU' 'VV' 'VW' 'VX' 'VY' 'VZ' 'Va' 'Vb' 'Vc' 'Vd' 'Ve' 'Vf' 'Vg' 'Vh' 'Vi' 'Vj' 'Vk' 'Vl' 'Vm' 'Vn' 'Vo' 'Vp' 'Vq' 'Vr' 'Vs' 'Vt' 'Vu' 'Vv' 'Vw' 'Vx' 'Vy' 'Vz' 'V0' 'V:' 'V9' 'V ' 'WA' 'WB' 'WC' 'WD' 'WE' 'WF' 'WG' 'WH' 'WI' 'WJ' 'WK' 'WL' 'WM' 'WN' 'WO' 'WP' 'WQ' 'WR' 'WS' 'WT' 'WU' 'WV' 'WW' 'WX' 'WY' 'WZ' 'Wa' 'Wb' 'Wc' 'Wd' 'We' 'Wf' 'Wg' 'Wh' 'Wi' 'Wj' 'Wk' 'Wl' 'Wm' 'Wn' 'Wo' 'Wp' 'Wq' 'Wr' 'Ws' 'Wt' 'Wu' 'Wv' 'Ww' 'Wx' 'Wy' 'Wz' 'W0' 'W:' 'W9' 'W ' 'XA' 'XB' 'XC' 'XD' 'XE' 'XF' 'XG' 'XH' 'XI' 'XJ' 'XK' 'XL' 'XM' 'XN' 'XO' 'XP' 'XQ' 'XR' 'XS' 'XT' 'XU' 'XV' 'XW' 'XX' 'XY' 'XZ' 'Xa' 'Xb' 'Xc' 'Xd' 'Xe' 'Xf' 'Xg' 'Xh' 'Xi' 'Xj' 'Xk' 'Xl' 'Xm' 'Xn' 'Xo' 'Xp' 'Xq' 'Xr' 'Xs' 'Xt' 'Xu' 'Xv' 'Xw' 'Xx' 'Xy' 'Xz' 'X0' 'X:' 'X9' 'X ' 'YA' 'YB' 'YC' 'YD' 'YE' 'YF' 'YG' 'YH' 'YI' 'YJ' 'YK' 'YL' 'YM' 'YN' 'YO' 'YP' 'YQ' 'YR' 'YS' 'YT' 'YU' 'YV' 'YW' 'YX' 'YY' 'YZ' 'Ya' 'Yb' 'Yc' 'Yd' 'Ye' 'Yf' 'Yg' 'Yh' 'Yi' 'Yj' 'Yk' 'Yl' 'Ym' 'Yn' 'Yo' 'Yp' 'Yq' 'Yr' 'Ys' 'Yt' 'Yu' 'Yv' 'Yw' 'Yx' 'Yy' 'Yz' 'Y0' 'Y:' 'Y9' 'Y ' 'ZA' 'ZB' 'ZC' 'ZD' 'ZE' 'ZF' 'ZG' 'ZH' 'ZI' 'ZJ' 'ZK' 'ZL' 'ZM' 'ZN' 'ZO' 'ZP' 'ZQ' 'ZR' 'ZS' 'ZT' 'ZU' 'ZV' 'ZW' 'ZX' 'ZY' 'ZZ' 'Za' 'Zb' 'Zc' 'Zd' 'Ze' 'Zf' 'Zg' 'Zh' 'Zi' 'Zj' 'Zk' 'Zl' 'Zm' 'Zn' 'Zo' 'Zp' 'Zq' 'Zr' 'Zs' 'Zt' 'Zu' 'Zv' 'Zw' 'Zx' 'Zy' 'Zz' 'Z0' 'Z:' 'Z9' 'Z ' 'aA' 'aB' 'aC' 'aD' 'aE' 'aF' 'aG' 'aH' 'aI' 'aJ' 'aK' 'aL' 'aM' 'aN' 'aO' 'aP' 'aQ' 'aR' 'aS' 'aT' 'aU' 'aV' 'aW' 'aX' 'aY' 'aZ' 'aa' 'ab' 'ac' 'ad' 'ae' 'af' 'ag' 'ah' 'ai' 'aj' 'ak' 'al' 'am' 'an' 'ao' 'ap' 'aq' 'ar' 'as' 'at' 'au' 'av' 'aw' 'ax' 'ay' 'az' 'a0' 'a:' 'a9' 'a ' 'bA' 'bB' 'bC' 'bD' 'bE' 'bF' 'bG' 'bH' 'bI' 'bJ' 'bK' 'bL' 'bM' 'bN' 'bO' 'bP' 'bQ' 'bR' 'bS' 'bT' 'bU' 'bV' 'bW' 'bX' 'bY' 'bZ' 'ba' 'bb' 'bc' 'bd' 'be' 'bf' 'bg' 'bh' 'bi' 'bj' 'bk' 'bl' 'bm' 'bn' 'bo' 'bp' 'bq' 'br' 'bs' 'bt' 'bu' 'bv' 'bw' 'bx' 'by' 'bz' 'b0' 'b:' 'b9' 'b ' 'cA' 'cB' 'cC' 'cD' 'cE' 'cF' 'cG' 'cH' 'cI' 'cJ' 'cK' 'cL' 'cM' 'cN' 'cO' 'cP' 'cQ' 'cR' 'cS' 'cT' 'cU' 'cV' 'cW' 'cX' 'cY' 'cZ' 'ca' 'cb' 'cc' 'cd' 'ce' 'cf' 'cg' 'ch' 'ci' 'cj' 'ck' 'cl' 'cm' 'cn' 'co' 'cp' 'cq' 'cr' 'cs' 'ct' 'cu' 'cv' 'cw' 'cx' 'cy' 'cz' 'c0' 'c:' 'c9' 'c ' 'dA' 'dB' 'dC' 'dD' 'dE' 'dF' 'dG' 'dH' 'dI' 'dJ' 'dK' 'dL' 'dM' 'dN' 'dO' 'dP' 'dQ' 'dR' 'dS' 'dT' 'dU' 'dV' 'dW' 'dX' 'dY' 'dZ' 'da' 'db' 'dc' 'dd' 'de' 'df' 'dg' 'dh' 'di' 'dj' 'dk' 'dl' 'dm' 'dn' 'do' 'dp' 'dq' 'dr' 'ds' 'dt' 'du' 'dv' 'dw' 'dx' 'dy' 'dz' 'd0' 'd:' 'd9' 'd ' 'eA' 'eB' 'eC' 'eD' 'eE' 'eF' 'eG' 'eH' 'eI' 'eJ' 'eK' 'eL' 'eM' 'eN' 'eO' 'eP' 'eQ' 'eR' 'eS' 'eT' 'eU' 'eV' 'eW' 'eX' 'eY' 'eZ' 'ea' 'eb' 'ec' 'ed' 'ee' 'ef' 'eg' 'eh' 'ei' 'ej' 'ek' 'el' 'em' 'en' 'eo' 'ep' 'eq' 'er' 'es' 'et' 'eu' 'ev' 'ew' 'ex' 'ey' 'ez' 'e0' 'e:' 'e9' 'e ' 'fA' 'fB' 'fC' 'fD' 'fE' 'fF' 'fG' 'fH' 'fI' 'fJ' 'fK' 'fL' 'fM' 'fN' 'fO' 'fP' 'fQ' 'fR' 'fS' 'fT' 'fU' 'fV' 'fW' 'fX' 'fY' 'fZ' 'fa' 'fb' 'fc' 'fd' 'fe' 'ff' 'fg' 'fh' 'fi' 'fj' 'fk' 'fl' 'fm' 'fn' 'fo' 'fp' 'fq' 'fr' 'fs' 'ft' 'fu' 'fv' 'fw' 'fx' 'fy' 'fz' 'f0' 'f:' 'f9' 'f ' 'gA' 'gB' 'gC' 'gD' 'gE' 'gF' 'gG' 'gH' 'gI' 'gJ' 'gK' 'gL' 'gM' 'gN' 'gO' 'gP' 'gQ' 'gR' 'gS' 'gT' 'gU' 'gV' 'gW' 'gX' 'gY' 'gZ' 'ga' 'gb' 'gc' 'gd' 'ge' 'gf' 'gg' 'gh' 'gi' 'gj' 'gk' 'gl' 'gm' 'gn' 'go' 'gp' 'gq' 'gr' 'gs' 'gt' 'gu' 'gv' 'gw' 'gx' 'gy' 'gz' 'g0' 'g:' 'g9' 'g ' 'hA' 'hB' 'hC' 'hD' 'hE' 'hF' 'hG' 'hH' 'hI' 'hJ' 'hK' 'hL' 'hM' 'hN' 'hO' 'hP' 'hQ' 'hR' 'hS' 'hT' 'hU' 'hV' 'hW' 'hX' 'hY' 'hZ' 'ha' 'hb' 'hc' 'hd' 'he' 'hf' 'hg' 'hh' 'hi' 'hj' 'hk' 'hl' 'hm' 'hn' 'ho' 'hp' 'hq' 'hr' 'hs' 'ht' 'hu' 'hv' 'hw' 'hx' 'hy' 'hz' 'h0' 'h:' 'h9' 'h ' 'iA' 'iB' 'iC' 'iD' 'iE' 'iF' 'iG' 'iH' 'iI' 'iJ' 'iK' 'iL' 'iM' 'iN' 'iO' 'iP' 'iQ' 'iR' 'iS' 'iT' 'iU' 'iV' 'iW' 'iX' 'iY' 'iZ' 'ia' 'ib' 'ic' 'id' 'ie' 'if' 'ig' 'ih' 'ii' 'ij' 'ik' 'il' 'im' 'in' 'io' 'ip' 'iq' 'ir' 'is' 'it' 'iu' 'iv' 'iw' 'ix' 'iy' 'iz' 'i0' 'i:' 'i9' 'i ' 'jA' 'jB' 'jC' 'jD' 'jE' 'jF' 'jG' 'jH' 'jI' 'jJ' 'jK' 'jL' 'jM' 'jN' 'jO' 'jP' 'jQ' 'jR' 'jS' 'jT' 'jU' 'jV' 'jW' 'jX' 'jY' 'jZ' 'ja' 'jb' 'jc' 'jd' 'je' 'jf' 'jg' 'jh' 'ji' 'jj' 'jk' 'jl' 'jm' 'jn' 'jo' 'jp' 'jq' 'jr' 'js' 'jt' 'ju' 'jv' 'jw' 'jx' 'jy' 'jz' 'j0' 'j:' 'j9' 'j ' 'kA' 'kB' 'kC' 'kD' 'kE' 'kF' 'kG' 'kH' 'kI' 'kJ' 'kK' 'kL' 'kM' 'kN' 'kO' 'kP' 'kQ' 'kR' 'kS' 'kT' 'kU' 'kV' 'kW' 'kX' 'kY' 'kZ' 'ka' 'kb' 'kc' 'kd' 'ke' 'kf' 'kg' 'kh' 'ki' 'kj' 'kk' 'kl' 'km' 'kn' 'ko' 'kp' 'kq' 'kr' 'ks' 'kt' 'ku' 'kv' 'kw' 'kx' 'ky' 'kz' 'k0' 'k:' 'k9' 'k ' 'lA' 'lB' 'lC' 'lD' 'lE' 'lF' 'lG' 'lH' 'lI' 'lJ' 'lK' 'lL' 'lM' 'lN' 'lO' 'lP' 'lQ' 'lR' 'lS' 'lT' 'lU' 'lV' 'lW' 'lX' 'lY' 'lZ' 'la' 'lb' 'lc' 'ld' 'le' 'lf' 'lg' 'lh' 'li' 'lj' 'lk' 'll' 'lm' 'ln' 'lo' 'lp' 'lq' 'lr' 'ls' 'lt' 'lu' 'lv' 'lw' 'lx' 'ly' 'lz' 'l0' 'l:' 'l9' 'l ' 'mA' 'mB' 'mC' 'mD' 'mE' 'mF' 'mG' 'mH' 'mI' 'mJ' 'mK' 'mL' 'mM' 'mN' 'mO' 'mP' 'mQ' 'mR' 'mS' 'mT' 'mU' 'mV' 'mW' 'mX' 'mY' 'mZ' 'ma' 'mb' 'mc' 'md' 'me' 'mf' 'mg' 'mh' 'mi' 'mj' 'mk' 'ml' 'mm' 'mn' 'mo' 'mp' 'mq' 'mr' 'ms' 'mt' 'mu' 'mv' 'mw' 'mx' 'my' 'mz' 'm0' 'm:' 'm9' 'm ' 'nA' 'nB' 'nC' 'nD' 'nE' 'nF' 'nG' 'nH' 'nI' 'nJ' 'nK' 'nL' 'nM' 'nN' 'nO' 'nP' 'nQ' 'nR' 'nS' 'nT' 'nU' 'nV' 'nW' 'nX' 'nY' 'nZ' 'na' 'nb' 'nc' 'nd' 'ne' 'nf' 'ng' 'nh' 'ni' 'nj' 'nk' 'nl' 'nm' 'nn' 'no' 'np' 'nq' 'nr' 'ns' 'nt' 'nu' 'nv' 'nw' 'nx' 'ny' 'nz' 'n0' 'n:' 'n9' 'n ' 'oA' 'oB' 'oC' 'oD' 'oE' 'oF' 'oG' 'oH' 'oI' 'oJ' 'oK' 'oL' 'oM' 'oN' 'oO' 'oP' 'oQ' 'oR' 'oS' 'oT' 'oU' 'oV' 'oW' 'oX' 'oY' 'oZ' 'oa' 'ob' 'oc' 'od' 'oe' 'of' 'og' 'oh' 'oi' 'oj' 'ok' 'ol' 'om' 'on' 'oo' 'op' 'oq' 'or' 'os' 'ot' 'ou' 'ov' 'ow' 'ox' 'oy' 'oz' 'o0' 'o:' 'o9' 'o ' 'pA' 'pB' 'pC' 'pD' 'pE' 'pF' 'pG' 'pH' 'pI' 'pJ' 'pK' 'pL' 'pM' 'pN' 'pO' 'pP' 'pQ' 'pR' 'pS' 'pT' 'pU' 'pV' 'pW' 'pX' 'pY' 'pZ' 'pa' 'pb' 'pc' 'pd' 'pe' 'pf' 'pg' 'ph' 'pi' 'pj' 'pk' 'pl' 'pm' 'pn' 'po' 'pp' 'pq' 'pr' 'ps' 'pt' 'pu' 'pv' 'pw' 'px' 'py' 'pz' 'p0' 'p:' 'p9' 'p ' 'qA' 'qB' 'qC' 'qD' 'qE' 'qF' 'qG' 'qH' 'qI' 'qJ' 'qK' 'qL' 'qM' 'qN' 'qO' 'qP' 'qQ' 'qR' 'qS' 'qT' 'qU' 'qV' 'qW' 'qX' 'qY' 'qZ' 'qa' 'qb' 'qc' 'qd' 'qe' 'qf' 'qg' 'qh' 'qi' 'qj' 'qk' 'ql' 'qm' 'qn' 'qo' 'qp' 'qq' 'qr' 'qs' 'qt' 'qu' 'qv' 'qw' 'qx' 'qy' 'qz' 'q0' 'q:' 'q9' 'q ' 'rA' 'rB' 'rC' 'rD' 'rE' 'rF' 'rG' 'rH' 'rI' 'rJ' 'rK' 'rL' 'rM' 'rN' 'rO' 'rP' 'rQ' 'rR' 'rS' 'rT' 'rU' 'rV' 'rW' 'rX' 'rY' 'rZ' 'ra' 'rb' 'rc' 'rd' 're' 'rf' 'rg' 'rh' 'ri' 'rj' 'rk' 'rl' 'rm' 'rn' 'ro' 'rp' 'rq' 'rr' 'rs' 'rt' 'ru' 'rv' 'rw' 'rx' 'ry' 'rz' 'r0' 'r:' 'r9' 'r ' 'sA' 'sB' 'sC' 'sD' 'sE' 'sF' 'sG' 'sH' 'sI' 'sJ' 'sK' 'sL' 'sM' 'sN' 'sO' 'sP' 'sQ' 'sR' 'sS' 'sT' 'sU' 'sV' 'sW' 'sX' 'sY' 'sZ' 'sa' 'sb' 'sc' 'sd' 'se' 'sf' 'sg' 'sh' 'si' 'sj' 'sk' 'sl' 'sm' 'sn' 'so' 'sp' 'sq' 'sr' 'ss' 'st' 'su' 'sv' 'sw' 'sx' 'sy' 'sz' 's0' 's:' 's9' 's ' 'tA' 'tB' 'tC' 'tD' 'tE' 'tF' 'tG' 'tH' 'tI' 'tJ' 'tK' 'tL' 'tM' 'tN' 'tO' 'tP' 'tQ' 'tR' 'tS' 'tT' 'tU' 'tV' 'tW' 'tX' 'tY' 'tZ' 'ta' 'tb' 'tc' 'td' 'te' 'tf' 'tg' 'th' 'ti' 'tj' 'tk' 'tl' 'tm' 'tn' 'to' 'tp' 'tq' 'tr' 'ts' 'tt' 'tu' 'tv' 'tw' 'tx' 'ty' 'tz' 't0' 't:' 't9' 't ' 'uA' 'uB' 'uC' 'uD' 'uE' 'uF' 'uG' 'uH' 'uI' 'uJ' 'uK' 'uL' 'uM' 'uN' 'uO' 'uP' 'uQ' 'uR' 'uS' 'uT' 'uU' 'uV' 'uW' 'uX' 'uY' 'uZ' 'ua' 'ub' 'uc' 'ud' 'ue' 'uf' 'ug' 'uh' 'ui' 'uj' 'uk' 'ul' 'um' 'un' 'uo' 'up' 'uq' 'ur' 'us' 'ut' 'uu' 'uv' 'uw' 'ux' 'uy' 'uz' 'u0' 'u:' 'u9' 'u ' 'vA' 'vB' 'vC' 'vD' 'vE' 'vF' 'vG' 'vH' 'vI' 'vJ' 'vK' 'vL' 'vM' 'vN' 'vO' 'vP' 'vQ' 'vR' 'vS' 'vT' 'vU' 'vV' 'vW' 'vX' 'vY' 'vZ' 'va' 'vb' 'vc' 'vd' 've' 'vf' 'vg' 'vh' 'vi' 'vj' 'vk' 'vl' 'vm' 'vn' 'vo' 'vp' 'vq' 'vr' 'vs' 'vt' 'vu' 'vv' 'vw' 'vx' 'vy' 'vz' 'v0' 'v:' 'v9' 'v ' 'wA' 'wB' 'wC' 'wD' 'wE' 'wF' 'wG' 'wH' 'wI' 'wJ' 'wK' 'wL' 'wM' 'wN' 'wO' 'wP' 'wQ' 'wR' 'wS' 'wT' 'wU' 'wV' 'wW' 'wX' 'wY' 'wZ' 'wa' 'wb' 'wc' 'wd' 'we' 'wf' 'wg' 'wh' 'wi' 'wj' 'wk' 'wl' 'wm' 'wn' 'wo' 'wp' 'wq' 'wr' 'ws' 'wt' 'wu' 'wv' 'ww' 'wx' 'wy' 'wz' 'w0' 'w:' 'w9' 'w ' 'xA' 'xB' 'xC' 'xD' 'xE' 'xF' 'xG' 'xH' 'xI' 'xJ' 'xK' 'xL' 'xM' 'xN' 'xO' 'xP' 'xQ' 'xR' 'xS' 'xT' 'xU' 'xV' 'xW' 'xX' 'xY' 'xZ' 'xa' 'xb' 'xc' 'xd' 'xe' 'xf' 'xg' 'xh' 'xi' 'xj' 'xk' 'xl' 'xm' 'xn' 'xo' 'xp' 'xq' 'xr' 'xs' 'xt' 'xu' 'xv' 'xw' 'xx' 'xy' 'xz' 'x0' 'x:' 'x9' 'x ' 'yA' 'yB' 'yC' 'yD' 'yE' 'yF' 'yG' 'yH' 'yI' 'yJ' 'yK' 'yL' 'yM' 'yN' 'yO' 'yP' 'yQ' 'yR' 'yS' 'yT' 'yU' 'yV' 'yW' 'yX' 'yY' 'yZ' 'ya' 'yb' 'yc' 'yd' 'ye' 'yf' 'yg' 'yh' 'yi' 'yj' 'yk' 'yl' 'ym' 'yn' 'yo' 'yp' 'yq' 'yr' 'ys' 'yt' 'yu' 'yv' 'yw' 'yx' 'yy' 'yz' 'y0' 'y:' 'y9' 'y ' 'zA' 'zB' 'zC' 'zD' 'zE' 'zF' 'zG' 'zH' 'zI' 'zJ' 'zK' 'zL' 'zM' 'zN' 'zO' 'zP' 'zQ' 'zR' 'zS' 'zT' 'zU' 'zV' 'zW' 'zX' 'zY' 'zZ' 'za' 'zb' 'zc' 'zd' 'ze' 'zf' 'zg' 'zh' 'zi' 'zj' 'zk' 'zl' 'zm' 'zn' 'zo' 'zp' 'zq' 'zr' 'zs' 'zt' 'zu' 'zv' 'zw' 'zx' 'zy' 'zz' 'z0' 'z:' 'z9' 'z ' '0A' '0B' '0C' '0D' '0E' '0F' '0G' '0H' '0I' '0J' '0K' '0L' '0M' '0N' '0O' '0P' '0Q' '0R' '0S' '0T' '0U' '0V' '0W' '0X' '0Y' '0Z' '0a' '0b' '0c' '0d' '0e' '0f' '0g' '0h' '0i' '0j' '0k' '0l' '0m' '0n' '0o' '0p' '0q' '0r' '0s' '0t' '0u' '0v' '0w' '0x' '0y' '0z' '00' '0:' '09' '0 ' ':A' ':B' ':C' ':D' ':E' ':F' ':G' ':H' ':I' ':J' ':K' ':L' ':M' ':N' ':O' ':P' ':Q' ':R' ':S' ':T' ':U' ':V' ':W' ':X' ':Y' ':Z' ':a' ':b' ':c' ':d' ':e' ':f' ':g' ':h' ':i' ':j' ':k' ':l' ':m' ':n' ':o' ':p' ':q' ':r' ':s' ':t' ':u' ':v' ':w' ':x' ':y' ':z' ':0' '::' ':9' ': ' '9A' '9B' '9C' '9D' '9E' '9F' '9G' '9H' '9I' '9J' '9K' '9L' '9M' '9N' '9O' '9P' '9Q' '9R' '9S' '9T' '9U' '9V' '9W' '9X' '9Y' '9Z' '9a' '9b' '9c' '9d' '9e' '9f' '9g' '9h' '9i' '9j' '9k' '9l' '9m' '9n' '9o' '9p' '9q' '9r' '9s' '9t' '9u' '9v' '9w' '9x' '9y' '9z' '90' '9:' '99' '9 ' ' A' ' B' ' C' ' D' ' E' ' F' ' G' ' H' ' I' ' J' ' K' ' L' ' M' ' N' ' O' ' P' ' Q' ' R' ' S' ' T' ' U' ' V' ' W' ' X' ' Y' ' Z' ' a' ' b' ' c' ' d' ' e' ' f' ' g' ' h' ' i' ' j' ' k' ' l' ' m' ' n' ' o' ' p' ' q' ' r' ' s' ' t' ' u' ' v' ' w' ' x' ' y' ' z' ' 0' ' :' ' 9' ' '
So there are 3136 possible 2 character combinations from that set. Now think of the two sequences: 'ABC123' and the sequence '3ABC12'. They have exactly the same set of characters, but in a slightly different sequence, since the 3 is in a different place.
We can use the above set of 2 character sequences to compute the distance between a pair of strings. For example, comare 'ABC123' to 'B1A3C2'. Again, the same numbers and letters, but in a very different sequence here. The previous pair would be seen to have a much smaller distance. I'd suggest a simple scheme. Look at the pairs of consecutive elements of each sequence, and count the num,ber of times a pair is seen in BOTH sequences, so look for overlap of two character sub-sequences. That is, we have these three sequences:
'ABC123' ~ {'AB', 'BC', 'C1', '12', '23'}
'3ABC12' ~ {'3A', 'AB', 'BC', 'C1', '12'}
'B1A3C2' ~ {'B1', '1A', 'A3', '3C', 'C2'}
I've broken them each into 2 digit subsquences. See that 'AB' occurs in BOTH sequences 1 and 2. Similarly, 'BC' also appears in both cases. In fact, 4 of those 5 sequences of 2 characters appear in BOTH sequences 1 and 2. Compare that instead to sequences 1 and 3. There we see NO 2 character subsequences that are the same. So we could define a distance between two sequences in terms of the number of 2 character subsequences they have in common.
You should see this uses the order of characters as an important factor. It would be quite doable, and give you a simple measure of distance. You could add more information into such a measure, but this would gve you a start.

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by