access中利用VBA实现两句话的相似度计算

2025-03-13 16:50:02
推荐回答(1个)
回答1:

我写的是C#代码,懒得改你看一下,语言是互通的。

public string fenge(string n)
        {
            if (n == null)
            {
                return "";
            }
            else
            {
                string str="",str1="",STR="";
                string[] list=new string[n.Length];
                if (n.Length == 1)
                {
                    return " where 小写 like '%" + n + "%' or 内容 like '%" + n + "%'";
                }
                else
                {
                    if (n.Length > 1)
                    {
                        for (int i = 0; i < n.Length; i++)
                        {
                            list[i] = n.Substring(i, 1).ToString();
                            if (i == 0)
                            {
                                str = " 小写 like '%" + list[i] + "%'";
                                str1 = " 内容 like '%" + list[i] + "%'";
                            }
                            else
                            {
                                str = str + " and 小写 like '%" + list[i] + "%'";
                                str1 = str1 + " and 内容 like '%" + list[i] + "%'";
                            }
                            STR ="("+ str + ") or (" + str1+")";
                        }
                        return " where " + STR;
                    }
                    else
                    {
                        return "";
                    }
                }
                
                
            }
        }   //分割条件

让字符一个一个去找,再拼接条件,在数据库里你可以设置拼音缩写和拼音、名称,三个字段,写进名称的时候就Microsoft有个Char转换类,把汉字转换成拼音,取他首字母也行,这样编辑的时候就系统自动做好索引,然后就向ERP功能一样,无论输入拼音或缩写或任意位置字符都会检索出你要的内容,比百度还要强大,百度不支持切割查询