Skip to main content

Apertium core modules available in Python

Project description

Apertium + Python

Travis Build Status Appveyor Build status ReadTheDocs Docs Status Coverage Status PyPI - Python Version

Introduction

  • The codebase is in development for the GSoC '19 project called Apertium API in Python
  • The Apertium core modules are written in C++.
  • This project makes the Apertium modules available in Python, which because of its simplicity is more appealing to users.

About the Exisiting Code Base

  • The existing codebase has Subprocess and SWIG wrapper implementations of the higher level functions of Apertium and CG modules.

Installation

  • Installation on Debian/Ubuntu and Windows is natively supported:

    pip install apertium
    
  • For developers, pipenv can be used to install the development dependencies and enter a shell with them:

    pip install pipenv
    pipenv install --dev
    pipenv shell
    
  • Apertium packages can be installed from Python interpreter as well.

    • Install apertium-all-dev by calling apertium.installer.install_apertium()
    • Install language packages with apertium.installer.install_module(language_name). For example apertium-eng can be installed by executing apertium.installer.install_module('eng')

Usage

  • For multiple invocations Method 1 is more performant, as the dictionary needs to be loaded only once.

Analysis

Performing Morphological Analysis

Method 1: Create an Analyzer object and call its analyze method.

In [1]: import apertium
In [2]: a = apertium.Analyzer('en')
In [3]: a.analyze('cats')
Out[3]: [cats/cat<n><pl>, ./.<sent>]

Method 2: Calling analyze() directly.

In [1]: import apertium
In [2]: apertium.analyze('en', 'cats')
Out[2]: cats/cat<n><pl>

Generation

Performing Morphological Generation

Method 1: Create a Generator object and call its generate method.

In [1]: import apertium
In [2]: g = apertium.Generator('en')
In [3]: g.generate('^cat<n><pl>$')
Out[3]: 'cats'

Method 2: Calling generate() directly.

In [1]: import apertium
In [2]: apertium.generate('en', '^cat<n><pl>$')
Out[2]: 'cats'

Tagger

Method 1: Create a Tagger object and call its tag method.

In [1]: import apertium
In [2]: tagger = apertium.Tagger('eng')
In [3]: tagger.tag('cats')
Out[3]: [cats/cat<n><pl>]

Method 2: Calling tag() directly.

In [1]: import apertium
In [2]: apertium.tag('en', 'cats')
Out[2]: [cats/cat<n><pl>]

Translation

Method 1: Create a Translator object and call its translate method.

In [1]: import apertium
In [2]: t = apertium.Translator('eng', 'spa')
In [3]: t.translate('cats')
Out[3]: 'Gatos'

Method 2: Calling translate() directly.

In [1]: import apertium
In [2]: apertium.translate('en', 'spa', 'cats')
Out[2]: 'Gatos'

Installing more modes from other language data

One can also install modes by providing the path to the lang-data:

In [1]: import apertium
In [2]: apertium.append_pair_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

apertium-0.2.4.tar.gz (26.3 kB view details)

Uploaded Source

Built Distribution

apertium-0.2.4-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

Details for the file apertium-0.2.4.tar.gz.

File metadata

  • Download URL: apertium-0.2.4.tar.gz
  • Upload date:
  • Size: 26.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for apertium-0.2.4.tar.gz
Algorithm Hash digest
SHA256 d032d0cc08890214da7663fea407b98087841c3b6142dfebbd0623a30aca12a6
MD5 f3f89de5a2ae9016d2f431f9f14ad4cc
BLAKE2b-256 25d4530ae0ab90ad39dda5280fd95d609bdfd1f111e44507615a66650c96eba0

See more details on using hashes here.

File details

Details for the file apertium-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: apertium-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 27.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for apertium-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 79dff4cc8774106be459ae56daf63fdb8a6734f1fd988776670539d9075ee5eb
MD5 345e0d7cb0bd2948990496d6c0389069
BLAKE2b-256 e71f176519db93739933a17875d18e61ec9b9a815e8b6d88b4bfb9ce82adb0a3

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