`
wangdei
  • 浏览: 372360 次
社区版块
存档分类
最新评论

(转贴)数学之美 系列十 有限状态机和地址识别

阅读更多

地址的识别和分析是本地搜索必不可少的技术,尽管有许多识别和分析地址的方法,最有效的是有限状态机。

一个有限状态机是一个特殊的有向图(参见有关图论的系列),它包括一些状态(节点)和连接这些状态的有向弧。下图是一个识别中国地址的有限状态机的简单的例子。

http://googlechinablog.com/uploaded_images/local-706721.jpg



每一个有限状态机都有一个启始状态和一个终止状态和若干中间状态。每一条弧上带有从一个状态进入下一个状态的条件。比如,在上图中,当前的状态是“省”,如果遇到一个词组和(区)县名有关,我们就进入状态“区县”;如果遇到的下一个词组和城市有关,那么我们就进入“市”的状态,如此等等。如果一条地址能从状态机的起始状态经过状态机的若干中间状态,走到终止状态,那么这条地址则有效,否则无效。比如说,“北京市双清路83号”对于上面的有限状态来讲有效,而“上海市辽宁省马家庄”则无效(因为无法从市走回到省)。

使用有限状态机识别地址,关键要解决两个问题,即通过一些有效的地址建立状态机,以及给定一个有限状态机后,地址字串的匹配算法。好在这两个问题都有现成的算法。有了关于地址的有限状态机后,我们就可又用它分析网页,找出网页中的地址部分,建立本地搜索的数据库。同样,我们也可以对用户输入的查询进行分析,挑出其中描述地址的部分,当然,剩下的关键词就是用户要找的内容。比如,对于用户输入的“北京市双清路附近的酒家”,Google 本地会自动识别出地址“北京市双清路”和要找的对象“酒家”。

上述基于有限状态机的地址识别方法在实用中会有一些问题:当用户输入的地址不太标准或者有错别字时,有限状态机会束手无策,因为它只能进行严格匹配。(其实,有限状态机在计算机科学中早期的成功应用是在程序语言编译器的设计中。一个能运行的程序在语法上必须是没有错的,所以不需要模糊匹配。而自然语言则很随意,无法用简单的语法描述。)

为了解决这个问题,我们希望有一个能进行模糊匹配、并给出一个字串为正确地址的可能性。为了实现这一目的,科学家们提出了基于概率的有限状态机。这种基于概率的有限状态机和离散的马尔可夫链(详见前面关于马尔可夫模型的系列)基本上等效。

在八十年代以前,尽管有不少人使用基于概率的有限状态机,但都是为自己的应用设计专用的有限状态机的程序。九十年代以后,随着有限状态机在自然语言处理的广泛应用,不少科学家致力于编写通用的有限状态机程序库。其中,最成功的是前 AT&T 实验室的三位科学家,莫瑞(Mohri), 皮瑞尔(Pereira) 和瑞利(Riley)。他们三人花了很多年时间,编写成一个通用的基于概率的有限状态机 C 语言工具库。由于 AT&T 有对学术界免费提供各种编程工具的好传统,他们三人也把自己多年的心血拿出来和同行们共享。可惜好景不长,AT&T 实验室风光不再,这三个人都离开了 AT&T,莫瑞成了纽约大学的教授,皮瑞尔当了宾西法尼亚大学计算机系系主任,而瑞利成了 Google 的研究员,AT&T 实验室的新东家不再免费提供有限状态机 C 语言工具库。虽然此前莫瑞等人公布了他们的详细算法,但是省略了实现的细节。因此在学术界,不少科学家能够重写同样功能的工具库,但是很难达到 AT&T 工具库的效率(即运算速度),这的确是一件令人遗憾的事。
http://googlechinablog.com/2006/07/blog-post.html

分享到:
评论

相关推荐

    易语言源码动网转贴.rar

    3. **用户身份验证**:为了确保用户权限和安全性,动网转贴功能可能涉及到用户登录状态的检查和验证,这可能需要用到Cookie、Session或Token等技术。 4. **界面设计**:在用户界面方面,需要设计友好的操作界面,让...

    动网转贴.e.rar

    动网论坛的用户可能经常进行帖子的分享和转贴,这些信息可能包括帖子的文本内容、图片、链接和其他附件。.rar文件格式是一种常见的压缩格式,用于将多个文件打包在一起,减少存储空间并方便传输。 【标签】"动网...

    论坛专用屏蔽干扰码转贴工具

    标题中的“论坛专用屏蔽干扰码转贴工具”指的是一个专为论坛设计的软件,它的主要功能是处理并转换论坛上常见的干扰码,以便用户能够顺利地复制和粘贴信息。在论坛交流中,有时为了防止恶意爬虫或者保护内容不被搜索...

    动网转贴.zip易语言项目例子源码下载

    《易语言项目实例——动网转贴》 易语言,作为一种中文编程语言,以其独特的语法和易用性,深受广大编程爱好者尤其是初学者的喜爱。...通过深入研究和实践,你将能够更好地理解和运用易语言,开启自己的编程之旅。

    BFC UBB转贴器

    由于现在流行的转贴工具都是基于浏览器的,转换速度比较慢,还得打开浏览器才能使用(同时受到浏览器版本限制)。 <br> 而这个小程序则完全不依赖于浏览器,以BFC采集器的UBB转换模块为基础,转换速度超快,...

    易语言动网转贴.rar

    "动网转贴"可能是基于易语言编写的一个功能模块或者工具,用于在论坛或者网站之间转移帖子数据。由于压缩包文件名为“易语言动网转贴.rar”,我们可以推测这可能是一个软件开发资源,包含了一些源代码、教程或者是...

    易语言动网转贴

    12. **取窗口标题长度**和**取窗体标题**:这两个功能分别用于获取窗口标题的字符长度和标题内容,对于识别和操作特定窗口非常有用。 综上所述,"易语言动网转贴"源码涵盖了文件操作、窗口交互、数据校验等多个方面...

    Html处理软件、转贴工具(源代码)

    去除Html中的干扰码等(样例中以轻之国度的干扰码为例) 配置文件语法: 方法类型(整数) 最大匹配长度(整数) 字符串1(删除开头) 字符串2(删除结尾) 方法类型: 1:删除单行 2:删除行与行之间的

    动易系统的论坛转贴工具

    《动易系统的论坛转贴工具详解与应用》 在互联网信息交流日益频繁的今天,论坛作为用户互动的重要平台,其内容分享与传播的作用不容忽视。动易系统的论坛转贴工具,便是为了解决用户在论坛间便捷分享内容而设计的一...

    ZZ: 时间管理方法(转贴)

    1. **GTD(Getting Things Done)方法**:GTD是由戴维·艾伦提出的著名时间管理方法,强调将所有待办事项记录下来,然后分类、处理和回顾,以保持清晰的思维和高效的工作状态。 2. **番茄工作法**:这种方法使用...

    Convert X 转贴工具插件 for Discuz!7.0.rar

    的特定目录下,以便系统可以识别和调用。 在使用Convert X插件时,用户需要注意版权问题,确保在转移帖子时不侵犯原论坛的权益,尊重原创者的劳动成果。此外,由于插件可能会涉及到数据的抓取和传输,所以网络安全...

    行业分类-设备装置-FPC吸附胶纸转贴组件.zip

    在IT行业中,FPC(Flexible Printed Circuit)即柔性印刷电路,是一种重要的电子元件,广泛应用于各种设备装置中,尤其在需要轻薄、可弯曲或空间有限的场合。本压缩包文件"行业分类-设备装置-FPC吸附胶纸转贴组件....

    电子政务-导电泡棉转贴装置.zip

    综上所述,"导电泡棉转贴装置"在电子政务中的应用涉及到硬件设计、设备维护、电磁兼容性和法规遵从等多个方面,是保障电子政务系统稳定运行的关键技术之一。通过阅读"行业分类-电子政务-导电泡棉转贴装置.pdf"这份...

    jquery的转贴功能实现

    在网页开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理和Ajax交互等任务。在本主题中,我们将深入探讨如何利用jQuery实现“转贴”功能,这是一种常见的社交媒体分享功能,允许用户将...

    东度极品论坛转贴工具

    东度极品论坛转贴工具东度极品论坛转贴工具

    电子功用-导电胶配对模切对半转贴加工方法

    本篇将详细探讨“电子功用-导电胶配对模切对半转贴加工方法”,这是一种高效的生产工艺,旨在提高电子产品的性能和可靠性。 导电胶主要由导电填料(如金属颗粒)、树脂基体和添加剂组成。它的特性在于既能保持良好...

    行业文档-设计装置-木器、玻璃用贴花纸生产及转贴方法.zip

    《木器、玻璃用贴花纸生产及转贴方法》是一个深入探讨装饰材料工艺的行业文档,主要聚焦于贴花纸在木器和玻璃制品上的应用。这份文档可能包含了从贴花纸的设计、生产到实际转贴过程中的各种技术细节和实践经验。 1....

    转贴一个网络设计的例子

    转贴一个网络设计的例子

Global site tag (gtag.js) - Google Analytics