亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從字符串中解析可用的街道地址、城市、州、Zip

從字符串中解析可用的街道地址、城市、州、Zip

從字符串中解析可用的街道地址、城市、州、Zip我在Access數據庫中有一個地址字段,該字段已轉換為SQLServer 2005。這個字段的所有內容都在一個字段中。我需要將地址的各個部分解析到規范化表中的相應字段中。我需要對大約4,000條記錄這樣做,而且它需要是可重復的。假設:在美國設定一個地址(目前)假設輸入字符串有時將包含收件人(被尋址者)和/或第二街道地址(即Suite B)。國家可以縮寫郵政編碼可以是標準的5位數字,也可以是zip+4。在某些情況下有排字。更新:在回答提出的問題時,標準沒有得到普遍遵守,我需要存儲單個值,而不僅僅是地理代碼和錯誤表示錯誤(以上更正)。樣本數據:A.P.Croll&son 2299 Lewes-Georgetown Hwy,喬治敦,DE 19947紹尼路11522號,格林伍德DE 19950國王高速公路144號,S.W.多佛,DE 19901綜合一致服務2賓士道405號新城堡套房,DE 19720休謨不動產33梅德爾嶺法院,劉易斯,DE 19958尼克爾斯挖掘2742號普拉斯基休伊紐瓦克,DE 19711編號DE 19904,Smyrna,布林錫安路2284號VEI Dover十字路口,LLC 1500蛇形路,巴爾的摩MD21套房100北杜邦公路多佛580號,DE 19901P.O.DE 19903多佛778方框
查看完整描述

3 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

我在這類解析方面做了很多工作。因為有錯誤,你不會獲得100%的準確性,但有幾件事,你可以做的方式,大部分的方式,然后做一個可視化的BS測試。這是解決這一問題的一般方法。這不是代碼,因為編寫它是很學術的,沒有什么奇怪的,只是很多字符串處理。

(現在您已經發布了一些示例數據,我做了一些小改動)

  1. 向后工作。從接近尾端的郵政編碼開始,使用兩種已知格式之一:xxxxx或XXXXX-XXXX。如果這沒有出現,你可以假設你在城市,州部分,下面。
  2. 下一件事,在拉鏈之前,將是狀態,它要么是兩個字母的格式,要么是文字。你也知道這些會是什么-只有50個。此外,您還可以搜索單詞以幫助彌補拼寫錯誤。
  3. 在那之前是城市

    可能

    和州在同一條線上。你可以用一個

    郵政編碼數據庫

    根據拉鏈檢查城市和州,或者至少使用它作為BS檢測器。
  4. 街道地址一般是一兩行。第二行通常是套件號(如果有),但也可以是PO框。
  5. 在第一行或第二行上檢測到一個名字幾乎是不可能的,但是如果它沒有以一個數字作為前綴(或者它的前綴是“attn:”或“注意:”),它可以提示您它是名稱還是地址行。

我希望這能有所幫助。


查看完整回答
反對 回復 2019-07-08
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

我認為外包這個問題是最好的選擇:把它發送給谷歌(或雅虎)的地編碼器。Geo編碼器不僅返回lat/long(這里不感興趣),還返回地址的豐富解析,其中填充了您沒有發送的字段(包括ZIP+4和Country)。

例如,解析“1600AmphitheaParkway,山景城,CA”就會產生這樣的結果。

{
  "name": "1600 Amphitheatre Parkway, Mountain View, CA, USA",
  "Status": {
    "code": 200,
    "request": "geocode"
  },
  "Placemark": [
    {
      "address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
      "AddressDetails": {
        "Country": {
          "CountryNameCode": "US",
          "AdministrativeArea": {
            "AdministrativeAreaName": "CA",
            "SubAdministrativeArea": {
              "SubAdministrativeAreaName": "Santa Clara",
              "Locality": {
                "LocalityName": "Mountain View",
                "Thoroughfare": {
                  "ThoroughfareName": "1600 Amphitheatre Pkwy"
                },
                "PostalCode": {
                  "PostalCodeNumber": "94043"
                }
              }
            }
          }
        },
        "Accuracy": 8
      },
      "Point": {
        "coordinates": [-122.083739, 37.423021, 0]
      }
    }
  ]}

現在那是可以解釋!


查看完整回答
反對 回復 2019-07-08
  • 3 回答
  • 0 關注
  • 1023 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號