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