问题描述
现sql数据库中有一字段名为[symptom]的文本,不同症状间用“、”间隔开。例如:焦虑、恐惧、沮丧、烦躁、失眠、反复行为;在文本框中输入数据,通过比较计算其相似度。例如我在输入框中输入焦虑、恐惧,那么通过匹配得到相似症状个数2,通过比较得出两段文本的并集共有症状6个,相似度为2/6=1/3.请问C#中这样的算法如何实现呢?希望有具体代码,谢谢各位大神了,感激不尽!
解决方案
解决方案二:
以输入的焦虑、恐惧为例先(symptomlike'%焦虑%'orsymptomlike'%恐惧%')
然后取到的结果假定是List<string>list,这里假定只取symptom一列那么每段多少就是vararr={"焦虑","恐惧"};list.Select(s=>{vartmp=s.Split('、');varcount=tmp.Where(t=>arr.Contains(t)).Count();returnstring.Format("{0}/{1}",count,tmp);})
时间: 2024-09-12 06:03:32