回 帖 发 新 帖 刷新版面

主题:求两个字符串的相似度

请高手帮帮忙,如何计算两个字符的相似度呀,如相似98%

回复列表 (共4个回复)

沙发

例如:
我知道哦你是说的

我不知道你是所得
怎么判断?
这种算法要么难以实现,面临各种歧义问题,要么需要人工智能技术实现。

板凳

提供一个思路:

1.先编写一个函数,有两个形参,一个单字符,一个字符串,该函数判断单个字符是否在字符串中出现,如果出现,函数返回值为真,否则为假。
2.再写一个调用过程,声明一个计数变量,然后采用For循环的方式,把字符串1的单个字符顺序取出,这个单字符与字符串2作为调用函数的实参,如果返回值为真,计数变量加1。循环结束后统计字符串2的字符个数,用计数变量值除以字符个数,就可以得出相似度。

或者:两个字符串逐字比较,即比较第一个字符是否相同,再比较第二个字符是否相同。。。相同的话,计数变量加1。这个方法就不需要写函数了。

3 楼

十分同意秋水朋友的意见。
另外,还可以考虑在秋水朋友的检测符合以后采取下述数学计算:
将字符串转换成ascii码的数组。从较长的里面从第一字符起截取与较短字符串相等的部分,然后用最小二乘法进行相关分析,得到相关系数;然后从第二字符起再计算;……直到完成。然后对各次算得的相关系数,采用自乘加权的方法进行平均。
这样大概可以得出包括abc与123的相似度。
不过,我这是不知道,你的想法,怎么算相似,怎么不算。乱说一气。

4 楼

楼主其实想要的是“字符串”的相似度,而不是“语言”上的相似度:)

建议楼主可以去看一些开源的compare程序:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册