我需要从字符串中提取地址
$string ="some text 9 th pizza tower 78 main Chennai 600001. and other information may be phone number etc";
从$string
我想只提取“第9个披萨塔78主要奈奈600001”
此地址格式不是常数,可能有两种不同的方式 一个是字符串变量,另一个是这样的
$string1= "some text 9 th pizza tower main Chennai 600001. and other information may be phone number etc";
从这里我需要提取“第9个披萨塔主要的Chennai 600001”
答案 0 :(得分:1)
我不认为这是可能的......从纯文本文件中提取文本就像在树林里要求树一样,“哪一个?”。
如果文件始终采用相同的格式,例如:
Company Name 73
1st Cross Street, Hotel Chennai
-600000
someadditionalstuff
然后你有一个改变,或者它总是用特殊字符(,。;等)分开。如果它始终是相同的格式(您在上面显示的格式),那么这样的东西可能会起作用:
([a-zA-Z0-9 ]*),([a-zA-Z0-9 ]*) XXX ([a-zA-Z0-9 ]*) (-[0-9]{6})
第1组:公司名称 第2组:地址 第3组:城市 第4组:邮政编码
巴比
答案 1 :(得分:0)
抱歉这是不可能的。它可能适用于一个网站但不适用于其他网站,因为在网页上显示公司地址(或任何地址)时没有标准格式。
答案 2 :(得分:0)
这不是一个简单的问题,并且没有可以解决问题的神奇AI代码。 你必须做出一些假设,并查看大量数据,以确定它是否是好的。
开始 - 如果你假设,每个地址都以邮政编码结尾,你可以在字符串中搜索5(或6)个数字并在之后剪切。
找到地址的开头超出了我的技能。也许正在寻找第一个数字。
你需要检查很多例子,找出与大多数匹配的最佳图案。
答案 3 :(得分:0)
是的,可以使用付费的Google自然语言处理,也可以打开自然语言处理。但对于开放的NLP,没有更好的文档可用。 最好从这个网址引用: https://opennlp.apache.org/