/typo_python

A python package to simulate typographical errors.

Primary LanguagePythonMIT LicenseMIT

typo

typo is a python package to simulate typographical errors in English language.

Usage

import typo
import datetime

myStrErrer = typo.StrErrer('Hello World! Happy new year 2021.', seed=2)
print(myStrErrer.missing_char().result)
# Should print 'Hllo World! Happy new year 2021.'

myStrErrer = typo.StrErrer('Hello World! Happy new year 2021.', seed=2)
print(myStrErrer.missing_char().char_swap().result)
# Should print 'Hlol World! Happy new year 2021.'

myIntErrer = typo.IntErrer(34343, seed=1)
print(myIntErrer.similar_digit().result)
# Should print 39343

myDateErrer = typo.DateErrer(datetime.datetime.strptime("8 Mar 95", "%d %b %y"))
print(myDateErrer.date_month_swap().result)
# Should print 1995-08-03 00:00:00

Currently, following types of typos can be simulated:

String typos:

Given the input Hello World! Happy new year 2021., different error types produce the following errors.

Error type Description Output
char_swap Swaps two random consecutive word characters in the string. Hello World! Ahppy new year 2021.
missing_char Skips a random word character in the string. Hllo World! Happy new year 2021.
extra_char Adds an extra, keyboard-neighbor, letter next to a random word character. Hrello World! Happy new year 2021.
nearby_char Replaces a random word character with keyboard-neighbor letter. Hello World! Happy new ysar 2021.
similar_char Replaces a random word character with another visually similar character. Hell0 world! Happy new year 2021.
skipped_space Skips a random space from the string. Hello world! Happy new year2021.
random_space Adds a random space in the string. Hell o world! Happy new year 2021.
repeated_char Repeats a random word character. Hello worrld! Happy new year 2021.
unichar Replaces a random consecutive repeated letter with a single letter. Hello world! Hapy new year 2021.

Integer typos:

Method Description Input Output
digit_swap Swaps two random consecutive digits in the integer. 1234567890 1324567890
missing_digit Skips a random digit in the integer. -1234567890 -123457890
extra_digit Adds an extra, keyboard-neighbor, digit next to a random digit in the integer. 1234567890 12345678920
nearby_digit Replaces a random digit in the integer with a keyboard-neighbor digit. 1234567890 1234567892
similar_digit Replaces a random digit with another visually similar digit. 1234567890 1234567896
repeated_digit Repeats a random digit in the integer. 1234567890 12345678900
unidigit Replaces a random consecutive repeated digit with a single digit. -112233445566 -11233445566

Datetime typos:

Method Description Input Output
date_month_swap Swaps the day and month of the date if the value of the day is less than or equal to 12. 8 Mar 95 3 Aug 95