Это действительно зависит от того, разделены ли ваши «логические части» каким-либо образом, чтобы вы могли идентифицировать каждую часть отдельно. Я сомневаюсь, что вы можете использовать запятую "," в качестве разделителя, поскольку компоненты адреса могут сами содержать запятые (например, название фирмы/бизнеса). Кроме того, у вас могут быть проблемы с чистотой данных - то есть запятые могут отсутствовать, стоять не в том месте или что-то еще.
Если у вас есть данные с разделителями, ваша работа несколько упрощается, поскольку вы сможете идентифицировать каждое поле независимо. Однако это все еще не так просто. Если у вас нет данных с разделителями, это будет намного сложнее. В любом случае, идентификация полей, вероятно, будет выглядеть следующим образом:
1) Почтовый индекс (для этого есть хорошо известное регулярное выражение, однако вам снова может понадобиться справиться с неправильными или недействительными почтовыми индексами или опечатками)
2) Страна и город, город - вы можете получить их со словарем британских городов и городов. Есть Гугл.
3) Деревни - сложнее, но опять же словарь на 98% поможет.
4) Улицы, дороги и т. д.: словарь для этого не годится. Вам нужно будет сделать какое-то распознавание на основе ключевых слов — если поле заканчивается улицей, дорогой, переулком или чем-то еще. Однако таких очень много. Вы можете обнаружить, что байесовский подход хорошо работает для этого.
5) Название компании, отдел и т. д. Еще сложнее. Опять же, некоторые ключевые слова могут помечать их (например, «ltd»), но я предполагаю, что большинство ваших записей не обязательно включают юридическое лицо. А отделы могут быть любыми.
Кроме того, как насчет имен людей? Вы можете узнать их?
Короче говоря, это довольно большая и сложная работа, которую нужно выполнить правильно. Нет простого/простого ответа.
Кстати, если у вас есть доступ к PAF, это может вам помочь: http://www.royalmail.com/portal/rm/jump2?mediaId=400085&catId=400084&campaignid=paf_redirect
Но это все равно не поможет вам с именами отделов, компаний или людей.
person
Richard H
schedule
10.10.2010