6

I have a list of addresses in two separate tables that are slightly off that I need to be able to match. For example, the same address can be entered in multiple ways:

  • 110 Test St
  • 110 Test St.
  • 110 Test Street

Although simple, you can imagine the situation in more complex scenerios. I am trying to develop a simple algorithm that will be able to match the above addresses as a key.

For example. the key might be "11TEST" - first two of 110, first two of Test and first two of street variant. A full match key would also include first 5 of the zipcode as well so in the above example, the full key might look like "11TEST44680".

I am looking for ideas for an effective algorithm or resources I can look at for considerations when developing this. Any ideas can be pseudo code or in your language of choice.

We are only concerned with US addresses. In fact, we are only looking at addresses from 250 zip codes from Ohio and Michigan. We also do not have access to any postal software although would be open to ideas for cost effective solutions (it would essentially be a one time use). Please be mindful that this is an initial dump of data from a government source so suggestions of how users can clean it are helpful as I build out the application but I would love to have the best initial I possibly can by being able to match addresses as best as possible.

4

7 に答える 7

2

開発するのではなく、ここで説明したテクノロジの多くを使用する市販の製品を使用する場合は、http ://www.melissadata.com/dqt/matchup-api.htm を参照してください。

免責事項: 私はその開発と会社での仕事に携わっていました。

于 2009-05-05T15:47:27.290 に答える
1

英国では、次のものを使用します。

  • 家の名前または番号(名前にはアパートのブロックのフラット番号が含まれます)
  • 郵便番号

確かに郵便番号を使用する必要がありますが、米国では、英国の郵便番号と比較して、郵便番号は非常に広い範囲をカバーしていると思います。したがって、通りと都市を使用する必要があります。

あなたの例では、11テストストリート、110-119テストストリートなどを区別しません。

あなたの会社がアドレス検索システムにアクセスできる場合、私はそれを介してすべてのデータを実行し、データを一貫した形式で取得します。おそらく、照合に使用できるアドレスキーを使用します。

于 2009-05-05T12:22:04.460 に答える
1

会社が独自の住所正規化ツールを作成する方が費用対効果が高い場合は、USPS 住所標準から始めることをお勧めします。あるいは、アドレスの正規化、修正、検証を行うためのサーバー側ツールと Web サービスを提供するベンダーは数多くあります。

私の会社はこの目的のためにAccuMail Goldを使用しています。社内でツールを開発するのに 1 週​​間分の給与がかかることを考えると、市販の製品を購入するという選択は明らかでした。

于 2010-05-21T14:55:50.497 に答える
0

既存のシステムを使用しない場合、1つのアイデアは次のことを行うことです。

  • アドレス行から番号を抽出します
  • 一般的なストリートワードを空白に置き換えます
  • 一致文字列を作成する

すなわち:「555カナルストリート」:

  • 抽出番号は「555」+「CanalStreet」になります
  • 通りの単語を置き換えると「555」+「運河」になります
  • 一致文字列を作成すると「555Canal」が表示されます

「Canalst555」は、同じ一致文字列を提供します。

ストリートワードとは、あなたの言語での「ストリート」の単語と略語を意味します。たとえば、「st」、「st。」、「blv」、「ave」、「avenue」などはすべて文字列から削除されます。

数字を抽出して文字列から分離することにより、数字が最初か最後かは関係ありません。

于 2009-05-05T12:29:35.347 に答える