Я изучаю использование 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 #, но я открыт для переноса кода с другого языка.
За исключением этого, есть ли у кого-нибудь приличное упоминание об общих исключениях заглавных букв для названий улиц и / или городов?