https://github.com/torfsen/sbl2py
A Snowball-to-Python compiler
https://github.com/torfsen/sbl2py
Last synced: 26 days ago
JSON representation
A Snowball-to-Python compiler
- Host: GitHub
- URL: https://github.com/torfsen/sbl2py
- Owner: torfsen
- License: other
- Created: 2014-08-03T19:15:24.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2023-02-27T15:29:42.000Z (over 3 years ago)
- Last Synced: 2025-02-16T19:43:26.579Z (over 1 year ago)
- Language: Python
- Size: 3.12 MB
- Stars: 1
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES
- License: LICENSE
Awesome Lists containing this project
README
sbl2py - A Snowball-to-Python Compiler
######################################
*sbl2py* translates code written in the Snowball_ string processing
language into Python_::
import sbl2py
import sbl2py.utils
sbl_code = """
externals ( stem )
define stem as (
backwards ( ['ly'] delete )
)
"""
py_code = sbl2py.translate_string(sbl_code)
module = sbl2py.utils.module_from_code('demo_module', py_code)
print module.stem('fabulously')
Output::
fabulous
.. _Snowball: http://snowball.tartarus.org/compiler/snowman.html
.. _Python: https://www.python.org
Features
========
*sbl2py* should support all of the Snowball features that are commonly
used. In particular, all features used by the stemming algorithms from
the Snowball stemmer package are supported.
Installation
============
Installing *sbl2py* is easy using pip_::
pip install sbl2py
.. _pip: http://pip.readthedocs.org/en/latest/index.html
Usage
=====
The easiest way to translate a Snowball file into a Python module is
using the ``sbl2py`` script which is automatically installed with
*sbl2py*::
sbl2py SNOWBALL_FILE PYTHON_FILE
See ``sbl2py --help`` for the available options.
You can also use *sbl2py* from within Python. The ``sbl2py`` module
offers two functions that translate Snowball code from a string
(``translate_string``) or a file (``translate_file``) and return the
corresponding Python source as a string. If you want to execute the
code, simply use the ``module_from_code`` function of the
``sbl2py.utils`` module.
The generated Python modules export all routines from the original
Snowball code that are listed in the ``externals`` section. That is,
if you have ``externals ( stem )`` in your Snowball code and store
the generated Python module in a file called ``mystemmer.py`` then
you can call the ``stem`` routine as follows::
import mystemmer
print mystemmer.stem('foobar')
License
=======
*sbl2py* is covered by the `MIT License`_. The Snowball source code
and the word lists in the ``test`` directory are covered by the
`BSD-3 License`_. Please see the ``LICENSE`` file for details.
.. _`MIT License`: http://opensource.org/licenses/MIT
.. _`BSD-3 License`: http://opensource.org/licenses/BSD-3-Clause