Skip to content
/ expostal Public
forked from SweetIQ/expostal

Elixir binding for Libpostal - a library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.

License

Notifications You must be signed in to change notification settings

dkuku/expostal

 
 

Repository files navigation

Elixir expostal

Build Status Hex.pm license

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/

Installation

The package can be installed by adding expostal to your list of dependencies in mix.exs:

def deps do
  [
    {:expostal, "~> 0.3.0"}
  ]
end

Dependencies

Depends on system-wide installation of libpostal.

Usage

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"]}

Documentation

View the docs on https://hexdocs.pm/expostal, or generate the docs locally with mix docs.

About

Elixir binding for Libpostal - a library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 64.9%
  • C 29.6%
  • Makefile 3.6%
  • Shell 1.9%