haskell-postal: Haskell binding for the libpostal library

[ library, mit, natural-language-processing ] [ Propose Tags ]

Provides an interface for the libpostal NLP library

[Skip to Readme]
Versions [faq],,,,,
Dependencies base (>=4.7 && <5), bytestring (==0.10.*), inline-c (==0.6.*), text (==1.2.*) [details]
License MIT
Copyright 2018 Fábián Tamás László
Author Fábián Tamás László <giganetom@gmail.com>
Maintainer Fábián Tamás László <giganetom@gmail.com>
Category Natural Language Processing
Home page https://github.com/netom/haskell-postal#readme
Source repo head: git clone https://github.com/netom/haskell-postal
Uploaded by netom at Thu Aug 16 09:03:20 UTC 2018
Distributions NixOS:
Downloads 613 total (17 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]




Maintainer's Corner

For package maintainers and hackage trustees

Readme for haskell-postal-

[back to package description]

Build Status


This binding is in alpha state, expect more functionality to come soon. Currently it can only be used to do basic parsing and normalization.


{-# LANGUAGE OverloadedStrings #-}

import NLP.Postal

main :: IO ()
main = do

    apdo <- getAddressParserDefaultOptions
    pa <- parseAddress apdo "11 Wall Street New York, NY"
    print pa

    dno <- getDefaultNormalizeOptions
    xa <- expandAddress dno "11 Wall Street New York, NY"
    print xa



Before using the Haskell binding, you must install the libpostal C library. Make sure you have the following prerequisites:

On Ubuntu/Debian

sudo apt-get install curl autoconf automake libtool pkg-config


sudo yum install curl autoconf automake libtool pkgconfig

On Mac OSX

sudo brew install curl autoconf automake libtool pkg-config

Installing libpostal

git clone https://github.com/openvenues/libpostal
cd libpostal
./configure --datadir=/usr/local/share/libpostal # Needs to have a few GBs of space
sudo make install

# On Linux it's probably a good idea to run
sudo ldconfig

Installing the haskell-postal package

From source

Download the source from github, and use the cabal utility to install it:

git clone https://github.com/netom/haskell-postal
cd haskell-postal
cabal install


Cabal can of course just fetch the package from Hackage:

cabal install haskell-postal


You can of course use stack to install the package, just replace "cabal install" with "stack install" anywhere above. Just make sure you try to find the installed package where the tool you use puts it.