Свърших много работа по този вид анализ. Тъй като има грешки, няма да получите 100% точност, но има няколко неща, които можете да направите, за да стигнете по-голямата част от пътя, и след това направете визуален BS тест. Ето общия начин да го направите. Това не е код, защото е доста академично да се напише, няма странности, само много обработка на низове.
(Сега, след като публикувахте някои примерни данни, направих някои малки промени)
- Работете назад. Започнете от пощенския код, който ще бъде близо до края, и в един от двата известни формата:XXXXX или XXXXX-XXXX. Ако това не се появи, можете да приемете, че сте в града, щатската част по-долу.
- Следващото нещо, преди zip, ще бъде състоянието и то ще бъде или в двубуквен формат, или като думи. Знаете какви ще бъдат и тези - има само 50 от тях. Освен това можете да озвучите думите, за да компенсирате правописните грешки.
- преди това е градът и е вероятно на една линия с държавата. Можете да използвате база данни с пощенски кодове за да проверите града и щата въз основа на zip или поне да го използвате като BS детектор.
- Адресът обикновено е един или два реда. Вторият ред обикновено ще бъде номерът на апартамента, ако има такъв, но може да бъде и пощенска кутия.
- Ще бъде почти невъзможно да откриете име на първия или втория ред, но ако то не е с префикс номер (или ако е с префикс "attn:" или "attention to:", може да ви даде подсказка дали е име или адресен ред.
Надявам се това да помогне донякъде.