Skip to main content

Cross-platform ENIAM with useful bindings 🚀

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

Metadata

Release files for eniam 1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eniam 1.0
File Size Uploaded
eniam-1.0.tar.gz 96.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eniam 1.0
File Interpreter ABI Platform
eniam-1.0-py3-none-any.whl Python 3 none any Details

Total release size: 307.6 kB

Release files / eniam-1.0.tar.gz

Download URL eniam-1.0.tar.gz
Size 96.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9b76640c0c9fe19198e0633f4beb8c16cdf35b6148b539e028b3ce0f27a7cde5
BLAKE2b-256 checksum
How to use checksums
8cb8766dcf47eb0f8bfb9c390d196e73745794e82a462f5d557d94e027648a40
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / eniam-1.0-py3-none-any.whl

Download URL eniam-1.0-py3-none-any.whl
Size 211.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f54ab07194f3844292a156f4c4d5f7d83699b3d3a948a90c9875c9a773f4f5bf
BLAKE2b-256 checksum
How to use checksums
c77244612140ace533edeb646b89c303db2ce494d3ef57e316ff5ad48a80e20d
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

1.0 This release

2 release files

0.61

2 release files

0.60

2 release files

0.59

2 release files

0.58

2 release files

0.57

2 release files

0.56

2 release files

0.55

2 release files

0.54

2 release files

0.53

2 release files

0.52

2 release files

0.51

2 release files

0.50

2 release files

0.49

2 release files

0.48

2 release files

0.47

2 release files

0.46

2 release files

0.45

2 release files

0.44

2 release files

0.43

2 release files

0.42

2 release files

0.41

2 release files

0.40

2 release files

0.39

2 release files

0.38

2 release files

0.37

2 release files

0.36

2 release files

0.35

2 release files

0.34

2 release files

0.33

2 release files

0.32

2 release files

0.31

2 release files

0.30

2 release files

0.29

2 release files

0.28

2 release files

0.27

2 release files

0.26

2 release files

0.25

2 release files

0.24

2 release files

0.23

2 release files

0.22

2 release files

0.21

2 release files

0.20

2 release files

0.19

2 release files

0.18

2 release files

0.17

2 release files

0.16

2 release files

0.15

2 release files

0.14

2 release files

0.13

2 release files

0.12

1 release file

0.11

1 release file

0.10

1 release file

0.9

1 release file

0.8

1 release file

0.7

1 release file

0.6

1 release file

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

0.1.1

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page