Итак, в основном у меня есть тысячи списков улиц, которые я бы хотел организовать. В настоящее время списки улиц хранятся в одной строковой переменной:Каков наиболее эффективный способ анализа непоследовательных адресов?
123 Street dr
123 N Street dr
123 N Street drive
123 Street Drive
123-N Street drive
123 North Street drive
Как вы можете сказать, это довольно случайный случай. Я бы очень хотел, чтобы они были сохранены в объекте под названием «Местоположение» со следующими определениями.
int streetNumber;
string direction;
string streetName;
string typeOfStreet;
Я делаю это на C#, если это имеет значение, я верю в его более логичный вопрос. Есть ли простой способ сделать это? Он не должен быть полностью идеальным, я хотел бы просто получить около 90% успеха, и я просто отмечу те, которые я «организовал».
Благодаря Ahead
Нет, нет простого способа сделать это. Подход с регулярным выражением, вероятно, будет громоздким и, скорее всего, потерпит неудачу. Слишком много возможностей. Например, «128 Highway 37 South». Или «123 Main Street» и «123 North Main» являются тем же адресом. Или адрес, который вы видите в некоторых частях страны (например, в районе Солт-Лейк-Сити) "37 North, 12 West Parkland Ave." Вы можете осмотреть сервис (API Google Geocoding API) (https://developers.google.com/maps/documentation/geocoding/), например), который сделает это за вас. –
Я получаю некоторый успех от использования регулярных выражений. Я доволен, если смогу, по крайней мере, организовать некоторые из адресов. Это было бы хорошим началом для фиксации остального. Я только что отбирал наиболее распространенных, таких как «streetNumber streetName streetType», который был бы чем-то вроде 123 street st. Я просто должен быть строгим с выражением регулярного выражения, поэтому он не включает слово «Север» в качестве названия улицы или чего-то подобного. Спасибо и сожалею о дублирующем сообщении, я искал до публикации, не уверен, как я пропустил эту другую должность. –