文本相似度计算方法研究综述
陈二静, 姜恩波

Review of Studies on Text Similarity Measures
Chen Erjing,Jiang Enbo
表1 基于字符串的代表方法
类型 方法 基本思想 类型 特点与不足
基于字符 编辑距离 SA转换到SB需要删除、插入、替换操作的最少次数。 字符组成 计算准确, 但费时。
汉明距离[13] $1-\left( \sum\limits_{k=1}^{n}{{{x}_{k}}\oplus {{y}_{k}}} \right)/n$, 其中xk, yk分别表示字符串SASB
对应码字第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}})}$ 集合思想 当一个字符串是另一个字符串的子字符串时, 相似度最大。