diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-eniam.spec | 325 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 327 insertions, 0 deletions
@@ -0,0 +1 @@ +/eniam-1.0.tar.gz diff --git a/python-eniam.spec b/python-eniam.spec new file mode 100644 index 0000000..879c025 --- /dev/null +++ b/python-eniam.spec @@ -0,0 +1,325 @@ +%global _empty_manifest_terminate_build 0 +Name: python-eniam +Version: 1.0 +Release: 1 +Summary: Cross-platform python wrapper around ENIAM (http://eniam.nlp.ipipan.waw.pl/) +License: MIT +URL: http://styczynski.in +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/8c/b8/766dcf47eb0f8bfb9c390d196e73745794e82a462f5d557d94e027648a40/eniam-1.0.tar.gz +BuildArch: noarch + +Requires: python3-opencv-python +Requires: python3-camelot-py +Requires: python3-wand +Requires: python3-beautifulsoup4 + +%description +# Cross-platform ENIAM with useful bindings :rocket: + +This project provides only a wrapper for ENIAM ([see online](http://eniam.nlp.ipipan.waw.pl/) [source code](http://git.nlp.ipipan.waw.pl/wojciech.jaworski/ENIAM)) +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`): + +```python +# !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 +1. 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: +```bash + # 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): +```bash + $ 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: +```bash + $ export PATH="$PATH:/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/bin" +``` +See [setting up Python PATH](https://www.tutorialspoint.com/python/python_environment.htm) + + + +%package -n python3-eniam +Summary: Cross-platform python wrapper around ENIAM (http://eniam.nlp.ipipan.waw.pl/) +Provides: python-eniam +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-eniam +# Cross-platform ENIAM with useful bindings :rocket: + +This project provides only a wrapper for ENIAM ([see online](http://eniam.nlp.ipipan.waw.pl/) [source code](http://git.nlp.ipipan.waw.pl/wojciech.jaworski/ENIAM)) +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`): + +```python +# !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 +1. 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: +```bash + # 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): +```bash + $ 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: +```bash + $ export PATH="$PATH:/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/bin" +``` +See [setting up Python PATH](https://www.tutorialspoint.com/python/python_environment.htm) + + + +%package help +Summary: Development documents and examples for eniam +Provides: python3-eniam-doc +%description help +# Cross-platform ENIAM with useful bindings :rocket: + +This project provides only a wrapper for ENIAM ([see online](http://eniam.nlp.ipipan.waw.pl/) [source code](http://git.nlp.ipipan.waw.pl/wojciech.jaworski/ENIAM)) +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`): + +```python +# !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 +1. 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: +```bash + # 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): +```bash + $ 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: +```bash + $ export PATH="$PATH:/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/bin" +``` +See [setting up Python PATH](https://www.tutorialspoint.com/python/python_environment.htm) + + + +%prep +%autosetup -n eniam-1.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-eniam -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0-1 +- Package Spec generated @@ -0,0 +1 @@ +4780cde9c2905e9525ae1a3b665a289d eniam-1.0.tar.gz |