类型 | 方法 | 基本思想 | 类型 | 特点与不足 | 基于字符 | 编辑距离 | SA转换到SB需要删除、插入、替换操作的最少次数。 | 字符组成 | 计算准确, 但费时。 | 汉明距离[13] | $1-\left( \sum\limits_{k=1}^{n}{{{x}_{k}}\oplus {{y}_{k}}} \right)/n$, 其中xk, yk分别表示字符串SA、SB 对应码字第K位的分量。 | 字符组成 | 采用模2加运算, 简化长文本计算, 效率高。 | LCS | 共现且最长的子字符串。 | 字符顺序 | 原理简单, 针对派生词和短文本有较好效果, 但不适用于长文本。 | Jaro-Winkler | ${{d}_{j}}=\frac{1}{3}\left( \frac{m}{|{{S}_{A}}|}+\frac{m}{|{{S}_{B}}|}+\frac{m-t}{m} \right)$, 其中m是匹配的字符数; t是换位的数目。相似度计算公式为${{d}_{j}}+(lp(1-{{d}_{j}}))$, 其中dj是两个字符串的Jaro 距离, l是前缀相同的长度, 规定最大为4。Winkler将p定义为0.1。 | 字符顺序 | 考虑了前缀相同的重要性, 针对短 文本有较好效果, 但不适用于长文本。 | N-gram | $\frac{n}{n}$ | 集合思想 | n可调, 方法较为灵活, 但不适用于长文本。 | 基于词语 | 余弦相似度 | $\frac{\overrightarrow{{{S}_{A}}}\cdot \overrightarrow{{{S}_{B}}}}{||{{S}_{A}}||\ ||{{S}_{B}}||}$ | 词语组成 | 将文本置于向量空间, 解释性强, 较为常用, 但不适用于长文本。 | Dice系数[14] | $\frac{2\times comm({{S}_{A}},{{S}_{B}})}{leng({{S}_{A}})+leng({{S}_{B}})}$ | 词语组成 | 增强相同部分的作用, 有效关注较短的相同文本。 | 欧式距离 | $\sqrt{S_{A}^{2}+S_{B}^{2}}$ | 词语组成 | 算法简单直接, 但效果粗糙, 不适用于长文本。 | Jaccard | $\frac{{{S}_{A}}\ \bigcap {{S}_{B}}}{{{S}_{A}}\ \bigcup {{S}_{B}}}$ | 集合思想 | 不适用于长文本。 | Overlap Coefficient | $\frac{{{S}_{A}}\ \bigcap {{S}_{B}}}{\min ({{S}_{A}},{{S}_{B}})}$ | 集合思想 | 当一个字符串是另一个字符串的子字符串时, 相似度最大。 |
|