【问题标题】:Extract address/contact details from a text block with name and address?从包含姓名和地址的文本块中提取地址/联系方式?
【发布时间】:2010-07-13 07:02:40
【问题描述】:

我有一段文本,其中包括姓名,可能是公司名称,还有地址,可能还有电子邮件地址。我想从中提取街道地址,最好是名称和地址。

这些数据来自多个来源,所以我不知道实际的格式。可能是这样的

Company name, owner@domain.com
ATTN John Doe
care of Company Name
123 Street St
New York, NY 12345
US
123-456-7890

但这些行中的任何一行都可能重新排列或丢失(电话号码可能排在第一位,没有 ATTN 或 c/o 等)。此外,这可能来自任何国家/地区。

目标是 a) 将地址插入 Google Maps API,b) 创建一个包含尽可能多信息的联系人。

这是我的一个随机想法:

  1. 使用包含电子邮件地址的任何行(可以使用正则表达式轻松找到),存储电子邮件地址并删除该行以不再考虑。
  2. 使用带有电话号码(仅限数字和 [-+()])的任何线路,存储该号码,然后从进一步考虑中删除该线路。
  3. 取最后三行并将它们视为街道地址 - 将它们插入 Google 地图并希望最好。

显然,这是很多juju魔法。有更聪明的方法吗?是否有任何图书馆具有良好的正则表达式来查找不同国家的街道地址?

【问题讨论】:

  • 你找到解决办法了吗?
  • @Nemi:不,虽然我需要它的应用程序在次要位置。仍然是一个有趣的问题,很高兴找到解决方案。
  • 对于这个问题你能做的最好的就是训练一个实体解析模型

标签: java android street-address


【解决方案1】:

取决于您的来源。如果您可以控制它是如何从您的来源到达的,那么您可以进行一些格式化。

【讨论】:

  • 这就是问题所在——我没有。这是从我无法控制的多个来源中提取的。
  • 哪些来源?可能有一个配置选项
  • 在这种特殊情况下,数据来自 WHOIS 信息。显然,我无法控制来源,你得到一大块数据,就是这样。
猜你喜欢
  • 2017-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 2013-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多