Капитализация адреса

Я пытаюсь использовать CASS-Сертифицированную службу проверки адресов для исправления предоставленных пользователем уличных адресов во время входа. (В частности, я смотрю на LiveAddress SmartyStreets.) Однако USPS требует, чтобы во всех заглавных буквах был правильный адрес, поэтому службы CASS почти одинаково возвращают адреса таким образом. Однако при отправке письма клиенту по этому адресу было бы предпочтительнее использовать более гуманный, обычный корпус.

Вопрос, конечно, в том, как это сделать. Я знаю, что нет такого понятия, как идеальное решение, которое не включает в себя полную общенациональную базу данных с правильно прописными названиями улиц и городов. Набор проходимых эвристик может быть достаточно хорошим, так как мы, вероятно, вернем исправленный адрес обратно пользователю, в конечном итоге оставив его на усмотрение пользователя.

Краткий список проблем, с которыми мне удалось столкнуться после нескольких минут размышлений:

  • SW FIRST ST должно быть SW First Stне Sw First St,
  • MCDOUGLE ST должно быть McDougle Stне Mcdougle St,
  • MACDOUGLE ST должно быть Macdougle St скорее, чем MacDougle St, поскольку Macoroni Rd обычно не должно быть MacOroni Rd,
  • 1ST ST должно быть 1st Stне 1St St,
  • Не зная, основано ли название улицы на фамилии, мы не можем безопасно сделать VAN в van, но VON может стать von,

Существуют ли какие-либо библиотеки, которые могли бы, по крайней мере, начать меня? Адреса - это сложные и непостоянные вещи, и я бы не стал самогонить все это, если бы мне не пришлось. Я использую C#, но я открыт для переноса кода с другого языка.

За исключением этого, есть ли у кого-нибудь достойное упоминание об общих исключениях заглавных букв для названий улиц и / или городов?

2 ответа

Решение

Приятно видеть, что вы используете сервис LiveAddress для облегчения проверки и стандартизации адресов. Есть одна вещь, о которой вы, возможно, захотите знать, которая значительно поможет вам в применении правил обсадной колонны к вашему стандартизированному адресу:

Недавно мы представили новую конечную точку REST+JSON, которая возвращает стандартизированную форму адреса, а также различные составные части адреса. Из-за этого очень легко применить ваши правила размещения к значениям "street_name" и "city_name", возвращаемым независимо от суффикса улицы и pre / post-directionals.

Вы можете связаться со службой поддержки SmartyStreets для получения дополнительной помощи по этой проблеме в дополнение к вопросам здесь о переполнении стека (которое мы постоянно отслеживаем). Я должен также упомянуть, что я основатель SmartyStreets. Наконец, мы работаем над тем, чтобы иметь возможность возвращать адреса с правильной регистрацией, но у меня пока нет каких-либо сроков выпуска.

Не библиотека, но вы могли бы решить проблему с Google Maps API в зависимости от ваших требований.

Другие вопросы по тегам