前面讲支持向量机的时候,提到了核函数,通过核函数可以实现特征点的非线性转换,从而实现分类。
字符串核函数也是一种核函数,但它与一般的核函数不同。其他核函数一般定义在欧氏空间上,而字符串核函数是定义在字符串集合上的核函数。字符串核函数被广泛用在文本分类、信息检索等方面。
首先解释下什么是字符串核函数。与一般核函数一样,字符串核函数也需要高维特征空间。特征空间的维度由映射函数决定,例如映射 ϕ(x1,x2,x3) ,则特征空间维数为三维。字符串核函数的特征空间维数也是由映射函数决定的,但不同的是,特征空间的每一维是用字符串来表示的。例如字母表为{a,b,c}长度大于等于3的字符串集合的特征空间有六维,分别是abc、acb、bac、bca、cab、cba。这样就可以将字符串s,t用长度为3的子串向量来“表示”,当然这里的表示不是说字符串能够用这些子串等价地表示,因为字符串核函数 k(s,t) 定义的是字符串s和t的余弦相似度,它们的子串越多,相似性就越高。
首先给出字符串核函数的映射函数在每一维上的取值表达式:
[ϕn(s)]u=∑uλl(i)
其中,特征空间是由所有长度为n的子串组成的,维数为