Elixir binding for Libpostal - a library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.
Tutorial on how to write Elixir/Erlang NIF: http://cs.mcgill.ca/~mxia3/2017/06/18/tutorial-extending-elixir-with-c-using-NIF/
The package can be installed by adding expostal to your list of dependencies in mix.exs:
def deps do
[
{:expostal, "~> 0.3.0"}
]
endDepends on system-wide installation of libpostal.
Parsing an address:
iex> Expostal.parse_address("615 Rene Levesque Ouest, Montreal, QC, Canada")
%Expostal.Address{
city: "montreal",
country: "canada",
house_number: "615",
road: "rene levesque ouest",
state: "qc"
}
Expanding an address:
iex> Expostal.expand_address("781 Franklin Ave Crown Hts Brooklyn NY")
["781 franklin avenue crown heights brooklyn new york",
"781 franklin avenue crown heights brooklyn ny"]
Classifying language: Returns a tuple with probability of the most probable language for a given address and a language list
iex> Expostal.classify_language("agricola pl.")
{0.508300861587544, ["en", "fr", "es", "de"]}
View the docs on https://hexdocs.pm/expostal, or
generate the docs locally with mix docs.
