隻對漢字進行相似度分析,以單個字為向量,然後每個字在章節中出現的次數,便是以此字向量的值。現在我們假設:
章節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