Skip to main content

Cross-platform python wrapper around ENIAM (http://eniam.nlp.ipipan.waw.pl/)

Project description

Cross-platform ENIAM with useful bindings :rocket:

This project provides only a wrapper for ENIAM (see online source code) Author of original code is Wojciech Jaworski.

Using eniam library

  1. First, you have to install eniam by calling pip install eniam
  2. Then you can try parsing some example phrases (see examples/example.ipynb):
# !pip install opencv-python
# !pip install camelot-py
# !pip install wand
from eniam import *

dom_result = Eniam(['KOT', 'MYSZ'], {
    rule(lemma='kot',pos=subst,case=nom):     gram('KOT'),
    rule(lemma='gonić',pos=fin,person=ter):   (ip<gram('KOT'))>gram('MYSZ'),
    rule(lemma='mysz',pos=subst,case=acc):    gram('MYSZ'),
    root_rule():                                  s % ip,
}, ['KOT', 'MYSZ', 'ZDARZENIE'], {
    valence_rule('kot', 'noun'): 'KOT',
    valence_rule('mysz', 'noun'): 'MYSZ',
    valence_rule('gonić', 'verb'): 'ZDARZENIE',
}).dom("Kot goni mysz.")

dom_result.show()

Eniam syntax

The eniam library uses custom primitive AST the most of the operations looks exactly the same as in normal ENIAM convensions except for those modifications:

  1. / is replaced with >
  2. \ is replaced with <
  3. ip{ |x1, |x2, |x3... |xn} is replaced with ip[ x1 | x2 | ... | xn]
  4. ?x is replaced with function optional(x)
  5. a\?(x) is replaced with a % x
  6. the grammar can contain inline literals created using gram() function for example rule(lemma='kot',pos=subst): gram('np/np\\np'), would be a valid rule.

Useful methods

  1. Showing the result in Jupyter notebook Eniam(...).dom("Kot goni mysz.").show()
  2. Getting the html code Eniam(...).dom("Kot goni mysz.").html()
  3. Saving the html code Eniam(...).dom("Kot goni mysz.").save_html('output_file')
  4. Multiple input sentences
  5. Showing the result in Jupyter notebook Eniam(...).dom(["Kot goni mysz.", "Mysz goni kota."]).show()

Using raw ENIAM interface

Running inside docker

To run ENIAM docker please use the following commands:

    # Run subsyntax tool
    $ docker run -it styczynski/eniam:1.0 /root/subsyntax --help
    # Run lexicon printer
    $ docker run -it styczynski/eniam:1.0 /root/print_lexicon --help
    # Run DOM parser
    $ docker run -it styczynski/eniam:1.0 /root/domparser --help

Running with Python wrapper

You can install Python wrapper to get a nice wrapper around the docker container (this requires Python +3 and Docker installed):

    $ pip install eniam
    $ eniam-cli sub --help
    $ eniam-cli lex --help
    $ eniam-cli dom --help

Note: Before installing you may wish to add python /bin/ directory to the PATH variable. On MacOS for Python 3.7 that would be:

    $ export PATH="$PATH:/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/bin"

See setting up Python PATH

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eniam-1.0.tar.gz (96.1 kB view details)

Uploaded Source

Built Distribution

eniam-1.0-py3-none-any.whl (211.6 kB view details)

Uploaded Python 3

File details

Details for the file eniam-1.0.tar.gz.

File metadata

  • Download URL: eniam-1.0.tar.gz
  • Upload date:
  • Size: 96.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.5

File hashes

Hashes for eniam-1.0.tar.gz
Algorithm Hash digest
SHA256 9b76640c0c9fe19198e0633f4beb8c16cdf35b6148b539e028b3ce0f27a7cde5
MD5 4780cde9c2905e9525ae1a3b665a289d
BLAKE2b-256 8cb8766dcf47eb0f8bfb9c390d196e73745794e82a462f5d557d94e027648a40

See more details on using hashes here.

File details

Details for the file eniam-1.0-py3-none-any.whl.

File metadata

  • Download URL: eniam-1.0-py3-none-any.whl
  • Upload date:
  • Size: 211.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.5

File hashes

Hashes for eniam-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f54ab07194f3844292a156f4c4d5f7d83699b3d3a948a90c9875c9a773f4f5bf
MD5 2ecc094f6d1cdeb2963f0b93ddbaddf3
BLAKE2b-256 c77244612140ace533edeb646b89c303db2ce494d3ef57e316ff5ad48a80e20d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page