Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

【access小品】有个数学叫模糊--字符串相似性比对示例

时 间:2012-02-24 19:25:40
作 者:煮江品茶   ID:10802  城市:武汉
摘 要:字符串相似性比对示例
正 文:

  数学中有一个分支叫做模糊数学,这个名称很奇怪,原因在于数学是严谨的与模糊似乎无关。可是还就是有这么个叫做模糊数学的东西存在,萨特同志说:存在就是合理,因此模糊数学也是合理的。关于什么是模糊数学,它包含些什么内容在此不论,给同志们举个例子就都明白了。

 

  你可能喜欢美女,比如她是张柏芝或者范冰冰,于是你喜欢看她们的电影、演唱会。不过这里有一个问题,你怎么就能知道你看见银幕上或者演唱会上的那个人就是张柏芝或者就是范冰冰呢?你会说:“这算什么问题?我认识她们呀。”这看来确实不能成其为一个问题。不成其为一个问题,是因为你的大脑习惯了通过眼睛耳朵或者其他器官收集到的信息,做出迅速而准确的模糊判断。可是你要通过计算机来完成这个判断就困难很多,即使困难,还是有好事者研究开发出来了人脸识别系统,并在很多方面得到了应用。诸如此类的系统的一个基础就是模糊数学。

 

  说简单一些,模糊数学就是在统计分析的基础上人为设定一套相似率的指标系统,然后依据这个指标系统对事物进行分析判断。模糊数学你不必刻意的去学它,因为类似的这种判断你天天在进行着。你只需要知道按照生活的常识去解决问题就可以了。

 

  绕的圈子有点大了,其实今天想与同志们探讨的是一个极小的问题,只是这个问题略微涉及到模糊数学而已。昨天看到有版友问,各个用户独立输入的诸如单位名称之类的字段,造成重码怎么解决的问题。比如张三输入了一个“上海吊车厂”,李四输入了一个“上海市吊车总厂”,实际上是一家企业,如何能将其甄别出来呢?这个问题可以简化为两个字符串的相似性判断问题。

 

  要解决这个问题,首先需要建立相似率判断的标准,这个标准是人为设计的。所谓人为设计是说标准可能存在多种,标准的合理与否与实际问题相关。于是乎,我将标准这样设计:两个字符串的相似率为两个字符串共有词组长度与两字符串长度的加权平均值。

 

  这个标准设定后,解决此问题的核心就是找到两个字符串所共有的所有词组了。怎么去找共有词组,办法当然很多,思路一定不少。不过要简洁明快的解决也非易事,不信同志们可以试试。我在此例中用了一些小的技巧,这些小技巧在处理类似字符串处理时有很好的效果,同志们有兴趣可以参考。

 

  很多年前姜昆说过一个相声,大体意思是一个展览会上,主持人点名时都简称单位名称。比如鞍山钢铁厂叫鞍钢,洛阳轴承厂叫洛轴。在点到上海吊车厂和怀化运输公司时就闹笑话了,叫了半天“上吊”和“怀运”都没人答应。所以同志们要记住,当用户输入“上吊”和“怀运”的情况下,系统也是没法比对的,这个时候,处理只有一种办法,就是把用户拖到室外狠揍一顿。

 

附   件

点击下载此附件

 

演   示:



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助