Transform casual text into a leetspeak version.
Project description
LeetTransformer :one::three::three::seven::robot:
Under development! Only Basic Leet is available which consists of substituting every vowel for a number.
Installation
pip install pyleetspeak
Examples of How To Use
The only required argument that the user has to provide is the text_in argument which represent the casual text to transform to leetspeak. Nonetheless, there are other optional arguments that control the behaviour of the transformation:`
change_prbdetermines the probability of a transformation to take place (i.e, if it is equal 1 all the possible transformation will be applied).change_frqis affects how frequently a transformation will occur (i.e, if it is equal 1 all the letters of this transformation type will be changed)modecontrols the level of leetspeak transformation. Currently onlybasicmode is available. We are working on more modes. Stay tuned.seedcontrols the reproducibility of the results. By default no seed is applied.verbosecontrols the verbosity of the proccess.
Basic Use
Let's see a simple working example:
from pyleetspeak import LeetSpeaker
text_in = "I speak leetspeak"
leeter = LeetSpeaker(text_in, change_prb=0.8, change_frq=0.6, mode = "basic", seed = None, verbose=False)
leet_result = leeter.text2leet()
print(leet_result)
# "1 spe4k l33tsp34k"
For the sake of reproducibility you can set a random seed:
from pyleetspeak import LeetSpeaker
leeter = LeetSpeaker(text_in, change_prb=0.8, change_frq=0.5, mode = "basic", seed = 42, verbose=False)
leet_result = leeter.text2leet()
print(leet_result)
# "1 sp34k l3etspeak"
Minor concerns about the package behaviour: accents are deleted using Unidecode. This is important for languages like Spanish, where the word "melocotón" is preprocessed as "melocoton" and finally transformed to leetspeak.
Get all changes
You can also obtain all the possible versions of a leetspeak text using the get_all_combs parameter like this:
from pyleetspeak import LeetSpeaker
text_in = "leetspeak"
leeter = LeetSpeaker(text_in, mode = "basic", get_all_combs = True)
leet_result = leeter.text2leet()
assert len(leet_result) == 32 # all possible combinations
print(leet_result)
Define your own changes
pyleetspeak is prepared to apply substitutions defined by the user. It is essential to highlight that these new user-defined changes have to follow two possible formats, dictionary or List of tuples. Here we show a toy example to add two new target characters from the original text to be replaced by two different characters and one, respectively:
- Dictionary type: {"target_chr_1": ["sub_chr_1", "sub_chr_1"], "target_chr_2": ["sub_chr_1"]}
- List[Tuple] type: [("target_chr_1", ["sub_chr_1", "sub_chr_1"]), (("target_chr_2", ["sub_chr_1"])]
You can add new user-defined substitutions:
from pyleetspeak import LeetSpeaker
text_in = "New changes Leetspeak"
obj = LeetSpeaker(
text_in,
change_prb=1,
change_frq=0.8,
mode="basic",
seed=21,
verbose=False,
get_all_combs=False,
user_changes = [("a", "#"), ("s", "$")], # user-defined changes
)
print(obj.text2leet())
# N3w ch@ng3$ L33t$pe4k
Moreover, you can use only the user-defined substitutions:
from pyleetspeak import LeetSpeaker
# Only user changes
text_in = "Only user changes: Leetspeak"
obj = LeetSpeaker(
text_in,
change_prb=1,
change_frq=0.8,
mode=None, # None pre-defined changes will be applied
seed=21,
verbose=False,
get_all_combs=False,
user_changes = [("a", "#"), ("s", "$")], # user-defined changes
)
print(obj.text2leet())
# Only u$er ch#nge$: Leet$pe#k
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyleetspeak-0.0.12.tar.gz.
File metadata
- Download URL: pyleetspeak-0.0.12.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49206270bdcc857c98ecc1e3e91e544edb829b53885426d4c8cdb9a2fa9421fd
|
|
| MD5 |
f9a7f04be455aab5f128fd8b8c64c3ae
|
|
| BLAKE2b-256 |
32fb13141565c06ecb88d8a34549d7c6e908673603c2e8d60a014cf67b4f3cea
|
File details
Details for the file pyleetspeak-0.0.12-py3-none-any.whl.
File metadata
- Download URL: pyleetspeak-0.0.12-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e2bd278f43c89c2abb515cf65fd82e04e7340be740f53557237ccaef5145fcb
|
|
| MD5 |
23da017056577e1d627562d5bd8ee5e6
|
|
| BLAKE2b-256 |
8ccb30f08cb91854f16b8ef6443a16518f38fcbe0808d4176c82230eda087bf6
|