只对汉字进行相似度分析,以单个字为向量,然后每个字在章节中出现的次数,便是以此字向量的值。现在我们假设:
章节1中出现的字为:Z1c1,Z1c2,Z1c3,Z1c4……Z1cn;它们在章节中的个数为:Z1n1,Z1n2,Z1n3……Z1nm;
章节2中出现的字为:Z2c1,Z2c2,Z2c3,Z2c4……Z2cn;它们在章节中的个数为:Z2n1,Z2n2,Z2n3……Z2nm;
其中,Z1c1和Z2c1表示两个文本中同一个字,Z1n1和Z2n1是它们分别对应的个数,
最后我们的相似度可以这么计算:

代码如下:
#_*_encoding:utf-8_*_
import math
import time
#---------------------------------------------------------------
# 文本相似度计算
# 值0-1, 越靠近1越相似
#---------------------------------------------------------------
def Similarity(s1, s2):
'''
相似度计算,输入必须为unicode编码,且不为空
仅计算汉字
'''
#汉字U编码 4E00-9FA5
tmp = {}
for i in s1:
a = ord(i)
if 0x4DFF
try:
tmp[a][0] = tmp[a][0] + 1
except:
tmp[a] = [1, 0]
for i in s2:
a = ord(i)
if 0x4DFF