How to parse an Unstructured International Address in PHP using NLP

Cloudmersive
2 min readMar 29, 2020

There are few worse headaches for a business than dealing with improperly formatted addresses from customers. While manually fixing can work in the short term, it’s generally better to have an automatic solution in place. Here’s where Natural Language Processing (NLP) comes in. It will allow us to apply proper structure to any international address all on its own. And here’s the best part, we are going to implement this with little to no effort by using an API.

First off, we shall use this command to install our client via command line.

composer require cloudmersive/cloudmersive_validate_api_client

Wait for that to finish, then call this function:

<?phprequire_once(__DIR__ . '/vendor/autoload.php');// Configure API key authorization: Apikey$config = Swagger\Client\Configuration::getDefaultConfiguration()->setApiKey('Apikey', 'YOUR_API_KEY');// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed// $config = Swagger\Client\Configuration::getDefaultConfiguration()->setApiKeyPrefix('Apikey', 'Bearer');$apiInstance = new Swagger\Client\Api\AddressApi(// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.// This is optional, `GuzzleHttp\Client` will be used as default.new GuzzleHttp\Client(),$config);$input = new \Swagger\Client\Model\ParseAddressRequest(); // \Swagger\Client\Model\ParseAddressRequest | Input parse requesttry {$result = $apiInstance->addressParseString($input);print_r($result);} catch (Exception $e) {echo 'Exception when calling AddressApi->addressParseString: ', $e->getMessage(), PHP_EOL;}?>

Already done. Now any address you input will be analyzed using NLP on the API’s side, and sent back to you in proper format. Problem solved!

--

--

Cloudmersive

There’s an API for that. Cloudmersive is a leader in Highly Scalable Cloud APIs.