Php 从字符串中提取公司地址

Php 从字符串中提取公司地址,php,Php,我需要从字符串中提取地址 $string ="some text 9 th pizza tower 78 main Chennai 600001. and other information may be phone number etc"; 从$string中,我只想提取“第九比萨饼塔78主钦奈600001” 此地址格式不是常量,可能有两种不同的方式 一个是字符串变量,另一个是这样的 $string1= "some text 9 th pizza tower main Chennai 600

我需要从字符串中提取地址

$string ="some text 9 th pizza tower 78 main Chennai 600001. and other information may be phone number etc";
$string
中,我只想提取“第九比萨饼塔78主钦奈600001”

此地址格式不是常量,可能有两种不同的方式 一个是字符串变量,另一个是这样的

$string1= "some text 9 th pizza tower main Chennai 600001. and other information may be phone number etc";

从这里我需要提取“第九比萨塔主钦奈600001”

我认为这是不可能的……从纯文本文件中提取文本就像在树林中问一棵树,“哪棵树?”

如果文件始终采用相同的格式,如:

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})
第一组:公司名称 第2组:地址 第3组:城市 第四组:邮政编码


鲍比

对不起,这是不可能的。它可能适用于一个网站,但不适用于其他网站,因为在网页上显示公司地址(或任何地址)没有标准格式。

这不是一个简单的问题,也没有神奇的AI代码可以解决它。 你必须做出一些假设,并查看大量数据,以确定这些数据是否正确

对于开始-如果您假设,每个地址都以邮政编码结尾,您可以在字符串中搜索5(或6)位数字,然后将其剪切

找到地址的开头超出了我的能力范围。也许在找第一个号码


您需要查看大量示例,找出与大多数示例相匹配的最佳模式。

是的,可以使用付费的谷歌自然语言处理(Google natural Language processing),也可以打开开放的自然语言处理(natural Language processing)。但是对于开放NLP,没有更好的文档可用。 最好从以下URL引用:

感谢地址mayy Varie我只想要73 First Cross Street,Hotel Chennai-600000(无特殊字符无问题),例如在某些时候,地址如73 main road Chennai 600000。我的地址为Variable$string=“公司名称73 First Cross Street,Hotel Chennai-600000和其他信息”;Microformats()试图解决这样的问题,如果没有将信息标记为地址,机器就没有明显的方法来识别它。@Naresh:你被搞砸了,抱歉…没有什么东西可以将名称与地址分开,等等…没有固定格式是不可能的。还有-另一个解决方案-让你的用户在单独的字段中输入地址,节省你很多时间。实际上,我是从网页上以html的形式获取此信息的,然后我删除了所有标记(html、脚本、样式)我终于有了它的字符串