C#编程之C#比较两个字符串的相似度
小标 2018-11-14 来源 : 阅读 2782 评论 0

摘要:本文主要向大家介绍了C#编程之C#比较两个字符串的相似度,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

本文主要向大家介绍了C#编程之C#比较两个字符串的相似度,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

我们在做数据系统的时候,经常会用到模糊搜索,但是,数据库提供的模糊搜索并不具备按照相关度进行排序的功能。
现在提供一个比较两个字符串相似度的方法。通过计算出两个字符串的相似度,就可以通过Linq在内存中对数据进行排序和筛选,选出和目标字符串最相似的一个结果。 本次所用到的相似度计算公式是 相似度=Kq*q/(Kq*q+Kr*r+Ks*s) (Kq > 0 , Kr>=0,Ka>=0)其中,q是字符串1和字符串2中都存在的单词的总数,s是字符串1中存在,字符串2中不存在的单词总数,r是字符串2中存在,字符串1中不存在的单词总数. Kq,Kr和ka分别是q,r,s的权重,根据实际的计算情况,我们设Kq=2,Kr=Ks=1.根据这个相似度计算公式,得出以下程序代码:/// 

/// 获取两个字符串的相似度/// 

/// 

第一个字符串/// 

第二个字符串/// 

public static decimal GetSimilarityWith(this string sourceString, string str){
decimal Kq = 2;decimal Kr = 1;decimal Ks = 1;
char[] ss = sourceString.ToCharArray();char[] st = str.ToCharArray();
//获取交集数量int q = ss.Intersect(st).Count();int s = ss.Length – q;int r = st.Length – q;
return Kq * q / (Kq * q + Kr * r + Ks * s);}
 这就是计算字符串相似度的方法,但是实际应用时,还需要考虑到同义词或近义词的情况发生, 如“爱造人小说阅读的更新最快”和“爱造人小说阅读地更新最快” 。两个字符串在一定意义上说其实是相同的,如果使用上述方法计算就会出现不准确的情况。所以在实际应用的时候,我们需要替换同义词或近义词,计算替换后的相似度。如果是近义词,需要综合替换近义词前和近义词后的计算结果,得出两个字符串的实际相似度。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C#.NET频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 3 不喜欢 | 2
看完这篇文章有何感觉?已经有5人表态,60%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程