识别 HTML 页面上的结构化数据的最佳算法是什么?

例如,谷歌将识别电子邮件中的家庭/公司地址,并提供该地址的地图。

有帮助吗?

解决方案

命名实体提取框架,例如 至少已经解决了 信息抽取问题 对于位置,在已知地点地名录的协助下帮助解决常见问题。除非页面是从公共源机器生成的,否则您会发现正则表达式对于这项工作来说有点弱。

其他提示

如果您已经从页面我第二美丽的汤时,上述建议的标记正确的,而不仅仅是文字。特别是,地址标记应提供最低唾手可得的。还应考虑在 ADR微格式。我只falll回正则表达式,如果前两个没有拉开足够的信息还是我没得看前两个必要的数据。

如果您还必须处理国际地址,你在头痛的世界; 国际地址格式是令人惊讶的变化。

我猜想,谷歌采取两个步骤解决问题的方法(至少这是我会做什么)。首先,他们使用一些相当普遍的搜索模式,以挑选出一切,这可能是一个地址,然后他们用自己的地图数据库来查找字符串,看看他们是否得到任何比赛。如果他们这样做可能是一个地址,如果他们不这样做,它可能不是。如果你可以在代码中使用的地图数据库,可能会让你的生活更轻松。

除非你可以限制的地址的地理位置,我猜,这几乎是不可能仅仅通过解析它,只是由于世界各地使用的地址格式的巨大差异,以确定一个字符串的地址。

不要使用正则表达式。使用现有的HTML解析器,例如在Python我强烈建议 BeautifulSoup 。甚至如果使用正则表达式来解析HTML元素BeautifulSoup争夺。

如果你用自己的regexs做到这一点,你不仅不用担心找到您所需要的数据,你不得不担心像无效的HTML,以及大量的你会绊倒其他非常不明显的问题。

什么你问,如果你想要得到它完美确实是一个相当困难的问题。而一个简单的正则表达式会得到它基本上是正确的大部分时间,写一个将得到完全理解这一点,每次是恶魔般坚硬。有很多奇怪的角落案件,在若干情况下没有一个统一明确的答案。我已经看到了一个非常糟糕的工作处理所有,但最简单的网址,大多数网站

如果你想往下走的正则表达式的路由你最好的选择可能是检查出的源代码 http://metacpan.org/pod/Regexp::Common::URI :: HTTP

再次正则表达式应该做的伎俩。

由于存在着各种各样的地址,可以仅当一个字符串是地址或不通过类似表达猜测“(数),(名称)街道|大道|主”等

您可以考虑寻找到它的目标是在映射文本中找到的地址一些Firefox扩展,看看他们是如何工作的。

  1. 它取决于你的需求。

电子邮件和详细联系方式regex是绰绰有余。地址regex仅不会帮助。认为关于自然语言(NER)&POS标记。为找到人民相关的信息你不能做任何事情没有NER.

  • 如果你需要的信息喜欢的段落获得的内容通过使用标签。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top