【发布时间】:2015-06-30 06:24:46
【问题描述】:
我的程序中有这些代码行。即
var scored = lines.Select(line =>
Tuple.Create(line, p.calculate_CS(line, summary), summary));
dd.AddRange(scored);
var top_value = dd.OrderByDescending(x => x.Item2).FirstOrDefault();
我还必须将最相似的匹配写入数据库,所以想要最相似的计算值加上最相似的单词匹配字符串。
if (top_value.Item2 > 0 && top_value != null)
{
var abstrct = top_value.Item3.ToString();
var r_field = top_value.Item1.ToString();
write_To_Database(abstrct, r_field);
}
元组有三个变量,即string line(即匹配373个字符串)double similarity value和string summary(即单个字符串匹配所有373个)。项目line 与项目summary 匹配。
变量top_value 是line 和summary 字符串之间的最高相似度值。
现在的问题是similarity value 的summary 对于line 中的某些字符串变得相同。因此line 中的字符串按字母顺序排序。因此,如果某些字符串的最高值相同,则 top_value 将按字母顺序具有最高值,而它可能与较低的字符串最相似。
所以我希望在 top_value 中具有最高相似值加上最相似的字符串匹配,无论字母顺序排序。
例如,如果summary 是“2001 年的软件工程 - 案例”,则匹配的值是(由这些代码行给出)。
从附加的图像中可以看出,要匹配的字符串包含字符串Software Engineering.........,我在最高top_value 中得到engineering design,而它应该是software engineering。将待匹配字符串和匹配字符串拆分后,根据词项计算相似度值。但是由于line中字符串的字母顺序,我得到engineering design而不是software engineering
任何建议都受到高度赞赏。谢谢
【问题讨论】:
标签: c# string match similarity