Lucytok
Lucene's boring English tokenizers recreated for Python. Compatible with SearchArray.
Lets you configure a handful of normal tokenization rules like ascii folding, posessive removal, both types of porter stemming, English stopwords, etc.
Usage
Creating a tokenizer close to Elasticsearch's default english analyzer
from lucytok import english
es_english = english("Nsp->NNN->l->sNNN->1")
tokenized = es_english("The quick brown fox jumps over the lazy døg")
print(tokenized)
Outputs
['_', 'quick', 'brown', 'fox', 'jump', 'over', '_', 'lazi', 'døg']
Make a tokenizer with ASCII folding...
from lucytok import english
es_english_folded = english("asp->NNN->l->sNNN->1")
print(es_english_folded("The quick brown fox jumps over the lazy døg"))
['_', 'quick', 'brown', 'fox', 'jump', 'over', '_', 'lazi', 'dog']
Split compounds and convert British to American spelling...
from lucytok import english
es_british = english("asp->NNN->l->scbN->1")
print(es_british("The watercolour fox jumps over the lazy døg"))
['_', 'water', 'color', 'fox', 'jump', 'over', '_', 'lazi', 'dog']
Spec
Create a tokenizer using the following settings (these concepts correspond to their Elasticsearch counterparts):
# |- ASCII fold (a) or not (N)
# ||- Standard (s) or WS tokenizer (w)
# ||- Remove possessive suffixes (p) or not (N)
# |||
# "NsN->NNN->N->NNNN->N"
# ||| | |||| |
# ||| | |||| |- Porter stem version (1) or version (2) vs N/0 for none
# ||| | ||||- Manually convert irregular plurals (p) or not (N)
# ||| | |||- Split Compounds (c) or not (N)
# ||| | ||- Convert british to american spelling (b) or not (N)
# ||| | |- Blank out stopwords (s) or not (N)
# ||| |- Lowercase (l) or not (N)
# |||- Split on letter/number transitions (n) or not (N)
# ||- Split on case changes (c) or not (N)
# |- Split on punctuation (p) or not (N)
# "NsN->NNN->N->NNN->N"
# ---
# (tokenization)
# "NsN->NNN->N->NNNN->N"
# ---
# (word splitting on rules, like WordDelimeterFilter in Lucene)
# "NsN->NNN->N->NNNN->N"
# -
# (lowercasing or not)
# "NsN->NNN->N->NNNN->N"
# ----
# (dictionary based splitting stopwords -> compounds -> british/american English -> irregular plurals)
# "NsN->NNN->N->NNNN->N"
# - stemming (porter)
Metadata
Release files for lucytok 0.1.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| lucytok-0.1.10.tar.gz | 33.5 kB | Without provenance | Details for lucytok-0.1.10.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| lucytok-0.1.10-py3-none-any.whl | Python 3 | none | any | Details for lucytok-0.1.10-py3-none-any.whl |
Total release size: 66.9 kB
Release files / lucytok-0.1.10.tar.gz
| Download URL | lucytok-0.1.10.tar.gz |
|---|---|
| Size | 33.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4dbe2b4b9c183f02d1a0f63a45f54f8bcd236cfbc32546df5c41cfe589e2b43b
|
|
BLAKE2b-256 checksum How to use checksums |
d021a5e42a6fe8270aeccc56a9c77350bd01c9ba3a52f66ba7fb34cad1354d2b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.12.6 Darwin/24.1.0
|
Release files / lucytok-0.1.10-py3-none-any.whl
| Download URL | lucytok-0.1.10-py3-none-any.whl |
|---|---|
| Size | 33.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6593ea27e9767bc678304bfe79aba2ffb2052860dbf7301ec4b1e3d3feda25ca
|
|
BLAKE2b-256 checksum How to use checksums |
3bebf0376e4badbb5bebc5193ae275f6bdec3f77af8d2af3070ba9201d60dd39
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.12.6 Darwin/24.1.0
|
Security for lucytok 0.1.10
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.