加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#中100k以上字符串的快速动态模糊搜索

发布时间:2020-12-15 07:48:13 所属栏目:百科 来源:网络整理
导读:假设它们是预先加载的股票代码,键入文本框.我正在寻找可以复制的代码,而不是要安装的库. 这是受这个问题的启发: Are there any Fuzzy Search or String Similarity Functions libraries written for C#? Levenstein距离算法似乎运行良好,但计算需要时间. 当
假设它们是预先加载的股票代码,键入文本框.我正在寻找可以复制的代码,而不是要安装的库.

这是受这个问题的启发:

Are there any Fuzzy Search or String Similarity Functions libraries written for C#?

Levenstein距离算法似乎运行良好,但计算需要时间.
当用户输入额外的字母时,是否需要重新运行查询这一事实是否有任何优化?我有兴趣最多显示每个输入的前10个匹配项.

解决方法

您需要确定字符串周围的匹配规则.是什么决定了’类似的字符串’

>匹配字符数
>不匹配字符数
>相似的长度
>拼写错误或语音错误
>业务特定缩写
>必须以相同的子字符串开头
>必须以相同的子字符串结尾

我已经完成了很多字符串匹配算法,还没有找到任何符合我特定要求的现有库或代码.检查它们,从它们那里借鉴想法,但你总是需要自定义和编写自己的代码.

Levenstein算法虽然好但有点慢.史密斯 – 沃特曼和史密斯都取得了一些成功. Jaro-Winkler算法,但我发现的最好的是Monge(来自内存).然而,阅读原始研究并确定他们编写算法和目标数据集的原因是值得的.

如果您没有正确定义想要匹配的内容并进行衡量,那么您会在意外匹配中找到高分并在预期匹配中找到低分.字符串匹配非常特定于域.如果你没有正确定义你的域名,那么你就像一个没有线索的渔夫,扔钩子并希望最好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读