Skip to main content

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_prb determines the probability of a transformation to take place (i.e, if it is equal 1 all the possible transformation will be applied).

  • change_frq is affects how frequently a transformation will occur (i.e, if it is equal 1 all the letters of this transformation type will be changed)

  • mode controls the level of leetspeak transformation. Currently only basic mode is available. We are working on more modes. Stay tuned.

  • seed controls the reproducibility of the results. By default no seed is applied.

  • verbose controls 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyleetspeak-0.0.10.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyleetspeak-0.0.10-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file pyleetspeak-0.0.10.tar.gz.

File metadata

  • Download URL: pyleetspeak-0.0.10.tar.gz
  • Upload date:
  • Size: 8.8 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

Hashes for pyleetspeak-0.0.10.tar.gz
Algorithm Hash digest
SHA256 9585e21b3848536fc72d8624334b9e5fcc41342ec209487b6ff6400b81c4bd4f
MD5 0c551ff725f8a9fc5232519a42da2d8b
BLAKE2b-256 b8aaa2807b8b9319c2cc6ff40e63f9ad73b83475a091becf03399c9774edc949

See more details on using hashes here.

File details

Details for the file pyleetspeak-0.0.10-py3-none-any.whl.

File metadata

  • Download URL: pyleetspeak-0.0.10-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

Hashes for pyleetspeak-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 5f7eba1a8f994f00766c4869e2f666e428f5da7f0be595379936d9cdea2c83f6
MD5 5f2dc23cae9e15cb033abd924abd70f0
BLAKE2b-256 1b3927fcadb070b3b46a5174ce1d3c5028235694f8369cfc0d7d2a1ae3048b49

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page