c# - 如何在 C# 中检查两个字符串的部分相似性

标签 c#

C# 中是否有任何函数可以检查两个字符串的相似度百分比?

例如我有:

var string1="Hello how are you doing"; 
var string2= " hi, how are you";

function(string1, string2) 

将返回相似率,因为行中存在单词“how”、“are”、“you”。

或者更好,返回 60% 的相似度,因为“how”、“are”、“you”是 string1 的 3/5。

C# 中是否存在执行此操作的函数?

最佳答案

字符串相似性的常用度量是所谓的 Levenshtein distance编辑距离。在这种方法中,定义了一组特定的编辑操作。 Levenshtein 距离是从第一个字符串获得第二个字符串所需的最小编辑步骤数。密切相关的是 Damerau-Levenshtein distance ,它使用一组不同的编辑操作。

从算法上讲,Levenshtein 距离可以使用 Dynamic programming 计算得出。 ,这可以被认为是有效的。但是,请注意,这种方法实际上并没有考虑单个单词,也不能直接用百分比表示相似度。

关于c# - 如何在 C# 中检查两个字符串的部分相似性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29321760/

相关文章:

c# - “double val = 1;”和 “double val = 1D;”之间有区别吗?

c# - 获取文件名子串的不同计数

c# - 更高效的循环?

c# - 在 Biztalk Orchestration 中创建新消息的最佳方式是什么?

c# - 如何在 C# 中覆盖自定义纸张大小

javascript - 多选下拉控件 - Primeng - Angular 6 - 在页面加载时默认选择所有选项并将它们显示为选定标签

c# - 会计数据库 - 存储交易

c# - 将数据行转换为 JSON 对象

c# - 如何检测 child 碰撞其他碰撞器?

c# - 关于运算符重载决议