Tôi đã làm rất nhiều việc về kiểu phân tích cú pháp này. Bởi vì có những sai sót, bạn sẽ không nhận được độ chính xác 100%, nhưng có một số điều bạn có thể làm để đạt được gần hết con đường đó, và sau đó thực hiện kiểm tra BS trực quan. Đây là cách chung để thực hiện nó. Nó không phải là mã, bởi vì nó khá hàn lâm để viết nó, không có gì kỳ lạ, chỉ là nhiều chuỗi xử lý.
(Bây giờ bạn đã đăng một số dữ liệu mẫu, tôi đã thực hiện một số thay đổi nhỏ)
- Làm việc lạc hậu. Bắt đầu từ mã zip, mã này sẽ ở gần cuối và ở một trong hai định dạng đã biết:XXXXX hoặc XXXXX-XXXX. Nếu điều này không xuất hiện, bạn có thể giả sử bạn đang ở thành phố, tiểu bang, bên dưới.
- Điều tiếp theo, trước mã zip, sẽ là trạng thái và nó sẽ ở định dạng hai chữ cái hoặc dưới dạng từ. Bạn cũng biết những thứ này sẽ như thế nào - chỉ có 50 trong số chúng. Ngoài ra, bạn có thể kiểm tra âm thanh các từ để giúp sửa lỗi chính tả.
- trước đó là thành phố và nó có thể là trên cùng một dòng với trạng thái. Bạn có thể sử dụng cơ sở dữ liệu mã zip để kiểm tra thành phố và tiểu bang dựa trên mã zip hoặc ít nhất là sử dụng nó như một máy dò BS.
- Địa chỉ đường phố thường sẽ là một hoặc hai dòng. Dòng thứ hai nói chung sẽ là số căn hộ nếu có, nhưng nó cũng có thể là một hộp PO.
- Sẽ gần như không thể phát hiện ra một cái tên trên dòng đầu tiên hoặc dòng thứ hai, mặc dù nếu nó không có tiền tố là một số (hoặc nếu nó có tiền tố là "attn:" hoặc "chú ý đến:" thì nó có thể cung cấp cho bạn gợi ý về việc đó là tên hay dòng địa chỉ.
Tôi hy vọng điều này sẽ giúp được phần nào.