在前面介绍了两个字符串之间的匹配度 的算法

计算字符串相似度算法—Levenshtein

它解决了字符串A和B之间的相识度的问题,但是我现在遇到了一个新的问题,就是有字符串A是固定值,字符串C包括了字符串B,希望求出字符串C包括A的比率.但是我并没有找到很好的解决方案.于是自己写了一个可用的简单算法 .

算法原理

1.对固定的字符串A进行二元分词.得到一个字符数组.

2.循环得到的数组,如果数组中的某个字符串在C中存在,计数加1

3.计算下一个数组与上一个数组之间的距离做0.7(可根据实际需求调整)的指数距离并加到计数器

4.将计数/数组的长度,得到一个比例.

代码

    public static float IncludeStr(string val, string str){//1.将val二远分词List<string> words = new List<string>(); int i = 0;while (i < val.Length){int m =  2;if (i + m >= val.Length)m = 1;words.Add(val.Substring(i, m));i = i + 2;}float num = 0;int wordIndex = -1;foreach (string s in words){int index = str.IndexOf(s);if (index >= 0){num = num + 1;if (wordIndex > 0){num += (float)Math.Pow(0.7, (index - wordIndex - s.Length + 1));}wordIndex = index;}}return num / words.Count;}

2014.6.27日补

在实际的使用过程中发现上面的效果并不是很好,于是用了一个更加简单暴力的方法。

  1. 循环短的那个字符串,长度为n,循环n次
  2. 每次取两个字符,一直到最后
  3. 如果在长的字符串里面能够找到,将变量m加1
  4. 最后返回m/n的比率

    发现这种简单粗暴的方法可以解决80%的问题。

      public static float includeStr1(string fname, string name){int m = 0;for (int i = 0; i < name.Length; i++){string s;if (i + 1 < name.Length){s = name.Substring(i, 2);}else{s = name.Substring(i);}if (fname.IndexOf(s) >= 0){m++;} } return (float)m / (float)name.Length; }
    

转载于:https://www.cnblogs.com/ac1985482/p/3439100.html

计算两个字符串之间是否包含的简单方法相关推荐

  1. 计算两个字符串之间的相似度

    1.jaccard相似度:字符级别--相同字符的个数占总字符的个数 参考文档:https://blog.csdn.net/u012836354/article/details/79103099 只是衡 ...

  2. sqlserver两个日期之间的年数_SQL语句计算两个日期之间有多少个工作日的方法

    /* 因为工作中一个奇怪的需求,要用SQL语言计算两个日期间有多少个工作日. 设定是一个星期有5个工作日,从星期一到星期五 说明: 第一个星期的工作日数:DATEPART(dw, @begdt)-DA ...

  3. python计算两字符串中的位置_python – 计算两个字符串之间距离的算法

    是否有任何字符串距离算法没有考虑到单词的顺序? 以下算法未提供所需结果(在该示例中,所需结果应为1): import jaro jaro.jaro_winkler_metric(u'Michael J ...

  4. 如何计算两个字符串之间的文本相似度?

    如何计算两个字符串之间的文本相似度? 前言 平时的编码中,我们经常需要判断两个文本的相似性,不管是用来做文本纠错或者去重等等,那么我们应该以什么维度来判断相似性呢?这些算法又怎么实现呢?这篇文章对常见 ...

  5. similartext php,使用PHPsimilartext计算两个字符串相似度,similartext_PHP教程

    使用PHP similar text计算两个字符串相似度,similartext 在网站开发中,我们经常使用php similar text 计算两个字符串相似度; 1,similar_text的用法 ...

  6. 如何利用计算机计算天数,如何应用Win10系统电脑中的计算器计算两个日期之间的天数?...

    如何应用Win10系统电脑中的计算器计算两个日期之间的天数? 相信很多小伙伴都有在使用windows10系统的电脑,其中的计算器如何才能用来计算两个日期之间的天数呢?方法很简单,下面小编就来为大家介绍 ...

  7. Java计算两个字符串日期之间的天数差

    Java计算两个字符串日期之间的天数差 调用方法: public static void main(String[] args) throws ParseException {String a = & ...

  8. python时间差转换成天数_Python实现计算两个时间之间相差天数的方法

    本文实例讲述了Python实现计算两个时间之间相差天数的方法.分享给大家供大家参考,具体如下: #-*- encoding:UTF-8 -*- from datetime import date im ...

  9. java中算两个时间内的秒数_java – Joda Time – 计算两个日期之间的秒数会引发异常....

    我使用以下代码来计算两个日期之间的秒数差异: long secondsBetween = (Seconds.secondsBetween(new LocalDate("1901-01-01& ...

最新文章

  1. 修复Sonar中常见的Java安全代码冲突
  2. Hbase快照Snapshot 数据备份、恢复与迁移
  3. C++总结篇(1)命名空间及引用
  4. 出现身份验证错误 要求的函数不受支持_学习使用Kotlin创建Android应用程序第3部分:身份验证登录...
  5. 怎么设置竖线分栏_做出专业级的Word文档分栏,只需这3个技巧
  6. 算法:24.两两交换链表中的节点
  7. 《Android Studio开发实战 从零基础到App上线》出版后记
  8. 微信小程序使用iconfont在线icon
  9. python大麦抢票脚本_抢不到票?你离idol只差一个大麦抢票脚本。
  10. 【python】rank函数
  11. application octet stream java,java – 为什么上传到S3的文件具有内容类型application / octet-stream,除非我命名文件.html...
  12. 合工大苍穹战队视觉组培训Day8——视觉,目标识别
  13. %大赛D--链式前向星+SPFA(BFS)+各种数据类型+各种最短路复习
  14. 在计算机网络中ftp服务器的用途是,FTP的作用以及传输文件的一般步骤
  15. 【带你手把手零基础学C语言】(一)
  16. 基于单层决策树的adaBoost算法思想分析和源代码解析
  17. abap视图字段限制_创建表维护视图(SE54)
  18. java 时间before_Java中的即时isBefore()方法
  19. 波士顿动力狗 SPOT 权威购买指北
  20. scikit-learn机器学习 读书笔记(二)

热门文章

  1. 怎么快速把语音转成文字
  2. Spring学习手册番外:context:annotation-config/ 和 mvc:annotation-driven / 的区别
  3. 【知识积累】C#中结构体和类的区别
  4. [WCF编程]10.操作:回调操作
  5. 求数组最大数,该数为数组中某两个数相加
  6. 灵活管理Hadoop各发行版的运维利器 - vSphere Big Data Extensions
  7. 教你如何追缴中国移动恶意扣费:lol :lol
  8. 比特币现金驱动的社交媒体平台备忘录继续蓬勃发展
  9. base64编码的作用【转】
  10. 递归实现显示目标文件夹的所有文件和文件夹,并计算目标文件夹的大小