如题在sql中两个中文字符串怎么判断相似百分比   
    
  比如:'我是中国人'   和   '我是外国人'   
  他们的相似百分比应该是80%   
  这个算法应该怎么做呢? 

解决方案 »

  1.   

    1:SQLSERVER没有实现你需求的函数.
    2:实现你的需求比较难搞,况且你没有个需求定义.
      

  2.   

    但还是得有具体的相似度定义.
    比如,A字符串10个字符,B字符串12个字符,A中有五个字符能在B中找到,它们的相似度是多少?
    又比如:
    北京天安门

    北北北北北
    他们的相似度是多少?
      

  3.   

    difference()函数也许可以,结果为0表示完全不相似,结果为4表示非常相似可以试试看!!!
      

  4.   

    step 1:
    把待比较串变成等价 char[]step 2:
    因为字符串的char与位置紧密相关所以,比较时需要考虑位置,这将大减少对比工作范围.
    -1,比较长度;
    -2,逐一比较相应位置上的 charstep 4:
    得出结论;//关键代码:完全按照楼主的意思..
            int BeJiao(string s1, string s2)
            {
                int percent = default(int);
                int maxlen=0;
                if (s1.Length<s2.Length)
                {
                    maxlen=s2.Length;
                    for (int i = 0; i < s1.Length; i++)
                    {
                        if (s1[i]==s2[i])
                        {
                            percent++;
                        }
                    }
                }
                else
                {
                    maxlen=s1.Length;
                    for (int i = 0; i < s2.Length; i++)
                    {
                        if (s1[i]==s2[i])
                        {
                            percent++;
                        }
                    }
                }
                percent=(int)(percent*100/maxlen);
                return percent;
            }
      

  5.   

    给出具体的相似度的定义,就能解决,SQL解决不了就在前台解决,C#没有办不到的.