回答
一個命名實體提取框架,如GATE,至少已經解決了位置的information extraction problem,由已知地方的地名錄幫助解決常見問題。除非這些頁面是由一個通用源代碼生成的機器,否則你會發現正則表達式對於這項工作有點弱。
如果您還必須處理國際地址,那麼您將面臨一個頭痛的世界; international address formats是驚人的多樣化。
再次,正則表達式應該做的伎倆。
由於各種各樣的地址,你只能一個字符串是否是一個地址,或不喜歡的表情猜「(號),(名稱)街|大道|主要」等
你可以考慮尋找一些Firefox的擴展,旨在映射在文本中找到的地址,看看它們是如何工作的
如果你想要完美的話,你所要求的確實是一個很難的問題。雖然簡單的正則表達式大部分時間都會使用正確的正則表達式,但編寫一個每次都能正確完成的正則表達式很難。有很多奇怪的角落案例,有幾個案例中沒有明確的答案。我見過的大多數網站都處理了一個糟糕的工作,只處理最簡單的URL。
如果你想往下走的正則表達式的路由你最好的選擇可能是檢查出的 http://metacpan.org/pod/Regexp::Common::URI::http
的源代碼,不要使用正則表達式。使用現有的HTML解析器,例如在Python中,我強烈建議使用BeautifulSoup。即使您使用正則表達式來解析BeautifulSoup抓取的HTML元素。
如果你用你自己的正則表達式來做,你不僅需要擔心找到你需要的數據,你必須擔心諸如無效HTML之類的東西,以及許多其他非常明顯的問題,你會偶然發現..
我猜測Google對這個問題採取了兩步辦法(至少我會這麼做)。首先,他們使用一些相當普遍的搜索模式來挑選出可能是地址的所有東西,然後他們使用他們的地圖數據庫查找該字符串並查看它們是否得到任何匹配。如果他們這樣做可能是一個地址,如果他們不這可能不是。如果您可以在代碼中使用地圖數據庫,那可能會讓您的生活更輕鬆。
除非您可以限制地址的地理位置,否則僅僅因爲世界各地使用的地址格式的巨大差異,我猜測幾乎不可能通過解析它來識別字符串作爲地址。
如果你有適當的標記 - 而不僅僅是來自頁面的文本 - 我第二次上面的美麗湯建議。特別是,address tag應該提供最低的低懸果。也請看adr microformat。如果前兩項沒有足夠的信息,或者我沒有必要的數據來尋找前兩項,我只會回到正則表達式。
- 這取決於您的要求。
對於電子郵件和聯繫方式正則表達式是綽綽有餘。 對於地址正則表達式無濟於事。想想NLP(NER)& POS標記。 爲了找到與您相關的信息,您無法在沒有NER的情況下執行任何操作。
- 如果您需要像段落這樣的信息,請使用標籤獲取內容。
- 1. 如何識別主物理網卡的MAC地址?
- 2. Django無法識別網址
- 3. 遠程IP地址和物理地址的區別
- 4. 虛擬地址和物理地址的區別?
- 5. PHP網址識別
- 6. 物理地址計算組件IAPX8088
- 7. 無法識別的網址.getJSON
- 8. UIWebView無法識別的URL地址
- 9. 物理地址和絕對地址有什麼區別?
- 10. 無法解析它們的網址會識別「無效」網址
- 11. Google api autocomplete無法識別地址
- 12. CodeIgniter無法識別SMTP地址
- 13. PHP SEO優化地址和物理頁面地址衝突
- 14. JAVA中的物理地址
- 15. 物理地址與虛擬地址
- 16. 線性地址和物理地址
- 17. 物理地址到IP地址
- 18. Linux - 識別在物理內存中擁有特定地址的進程
- 19. 識別欺騙性地址
- 20. 在linux內核中頁面地址,虛擬地址和物理地址有什麼區別
- 21. 虛擬物理網址
- 22. Jgroup獲得物理地址
- 23. 虛擬與物理地址
- 24. 識別的Chrome網頁
- 25. 如何計算給定基地址和內存的目標物理地址
- 26. kmalloc如何返回大於物理地址大小的物理地址?
- 27. 識別mac或本地ip地址
- 28. Google地圖識別精確地址
- 29. 使用深度信息的物體識別算法的建議
- 30. 平面物體識別的最新算法是什麼?
有人編輯這個地址或物理地址,因爲這仍然很模糊。 – 2008-12-08 12:00:30
謝謝,我現在意識到問題是模棱兩可的。 – gyurisc 2008-12-09 08:07:44
啊,非常好,謝謝:-) – 2008-12-09 12:53:31