2009-11-05 90 views
0

我需要從一個字符串提取公司地址

$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 PI zza塔主Chennai 600001「

回答

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組:Zip-代碼

鮑比

+0

感謝ADRESS mayy變化,我想只有73 1十字街,酒店欽奈 -600000(不規範CHARAC沒有prblem)例如,在某些時候解決這樣的73主幹道奈600000 。 – Naresh 2009-11-05 09:25:04

+0

時遇到的varible $字符串的地址=「公司名稱73 1十字街,酒店欽奈 -600000和額外的信息 」; – Naresh 2009-11-05 09:28:25

+0

73是固定部分嗎? – Bobby 2009-11-05 09:39:04

0

很抱歉,這是不可能的。它可能適用於一個網站,但不適用於其他網站,因爲在網頁上顯示公司地址(或任何地址)時沒有標準格式。

0

不是一個簡單的問題,並沒有一個神奇的AI代碼,可以弄明白。 您必須做出一些假設,並查看大量數據以確定它是否合適。

開始 - 如果您認爲,每個地址都以郵政編碼結尾,您可以搜索字符串中的5(或6)位數字,然後剪切。

找到地址的開頭已經超出了我的技能。也許正在尋找第一個號碼。

你需要檢查大量的例子來找出最適合它們的最佳模式。

+0

而且 - 另一種解決方案 - 讓您的用戶在單獨的字段中輸入地址並節省大量時間。 – Dani 2009-11-05 09:54:51

+0

其實我是從網頁獲得這個作爲HTML,然後我刪除了所有標記(HTML,腳本,樣式)在最後一個在字符串中 – Naresh 2009-11-05 10:00:01

0

是的,它可以通過使用谷歌自然語言處理付費或您可以打開自然語言處理是開放的。但是對於開放的NLP,沒有更好的文檔可用。 更好地從這個網址是指: https://opennlp.apache.org/