当前位置:  开发笔记 > 编程语言 > 正文

是否有为C#编写的模糊搜索或字符串相似性函数库?

如何解决《是否有为C#编写的模糊搜索或字符串相似性函数库?》经验,为你挑选了3个好方法。

有类似的问题,但不是我可以在我的源代码中使用的C#库.

感谢大家的帮助.

我已经看过lucene,但我需要更容易搜索类似字符串的东西,而不需要索引部分的开销.

我标记的答案有两个非常简单的算法,一个也使用LINQ,所以它是完美的.



1> George Mauer..:

Levenshtein距离实施:

使用LINQ(不是真的,请参阅注释)

不使用LINQ

我有一个.NET 1.1项目,我使用后者.它很简单,但完全符合我的需要.从我记得它需要一些调整,但没有什么是不明显的.


为什么这么说"使用LINQ"?这些实现都不使用Linq ...

2> Zaffiro..:

您还可以查看名为Sam的String Metrics http://sourceforge.net/projects/simmetrics/files/的令人印象深刻的图书馆.这包括许多算法.

汉明距离

Levenshtein距离

Needleman-Wunch距离或卖家算法

史密斯 - 沃特曼距离

Gotoh距离或Smith-Waterman-Gotoh距离

块距离或L1距离或城市街区距离

Monge Elkan距离

Jaro距离度量

Jaro Winkler

SoundEx距离度量

匹配系数

骰子的系数

Jaccard相似度或Jaccard系数或Tanimoto系数

重叠系数

欧氏距离或L2距离

余弦相似度

变化距离

Hellinger距离或Bhattacharyya距离

信息半径(Jensen-Shannon分歧)

谐波均值

歪斜分歧

混乱概率

牛头

Fellegi和Sunters(SFS)指标

TFIDF或TF/IDF

的FastA

BLASTP

最大匹配

Q-克

Ukkonen算法


这个答案中的链接给我403错误.您可以使用[Wayback Machine](http://web.archive.org/web/http://staffwww.dcs.shef.ac.uk/people/sam.chapman@k-now.co.uk/stringmetrics .html)而不是.

3> 小智..:

它们不是我自己的发明,但它们是我的最爱,我刚刚在博客上发表了关于它们的文章,并在一篇名为"寻找模糊字符串的四函数"的博客文章中发布了我自己的Dice系数,Levenshtein距离,最长公共子序列和双重Metaphone的调整版本C#扩展中的匹配项.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有