Капитализация адреса
Я пытаюсь использовать 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 в зависимости от ваших требований.