add insertion error
Browse files- __pycache__/utils.cpython-310.pyc +0 -0
- app.py +12 -1
- utils.py +46 -3
__pycache__/utils.cpython-310.pyc
CHANGED
|
Binary files a/__pycache__/utils.cpython-310.pyc and b/__pycache__/utils.cpython-310.pyc differ
|
|
|
app.py
CHANGED
|
@@ -2,8 +2,19 @@ import gradio as gr
|
|
| 2 |
from utils import *
|
| 3 |
|
| 4 |
def final_result(input_text):
|
|
|
|
|
|
|
|
|
|
| 5 |
input_text_process = character_replacement(input_text, num_errors=3)
|
| 6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
|
| 8 |
demo = gr.Interface(fn=final_result, inputs="textbox", outputs="textbox")
|
| 9 |
|
|
|
|
| 2 |
from utils import *
|
| 3 |
|
| 4 |
def final_result(input_text):
|
| 5 |
+
list_text_response = []
|
| 6 |
+
|
| 7 |
+
##character_replacement
|
| 8 |
input_text_process = character_replacement(input_text, num_errors=3)
|
| 9 |
+
list_text_response.append(input_text_process)
|
| 10 |
+
|
| 11 |
+
##character_insertion
|
| 12 |
+
input_text_process = character_insertion(input_text, num_errors=2)
|
| 13 |
+
list_text_response.append(input_text_process)
|
| 14 |
+
##
|
| 15 |
+
|
| 16 |
+
string_text_response = '\n'.join(list_text_response)
|
| 17 |
+
return str(string_text_response)
|
| 18 |
|
| 19 |
demo = gr.Interface(fn=final_result, inputs="textbox", outputs="textbox")
|
| 20 |
|
utils.py
CHANGED
|
@@ -42,8 +42,8 @@ def character_replacement(text, num_errors=1):
|
|
| 42 |
'ả': 'aâăáàạãấầậẩẫắằặẳẵ',
|
| 43 |
'ã': 'aâăáàạảấầậẩẫắằặẳẵ',
|
| 44 |
'â': 'aăáàạảãấầậẩẫắằặẳẵ',
|
| 45 |
-
'b': '
|
| 46 |
-
'c': '
|
| 47 |
'd': 'đ',
|
| 48 |
'đ': 'd',
|
| 49 |
'e': 'êéèẹẻẽếềệểễ',
|
|
@@ -59,7 +59,7 @@ def character_replacement(text, num_errors=1):
|
|
| 59 |
'ể': 'eêéèẹẻẽếềệễ',
|
| 60 |
'ễ': 'eêéèẹẻẽếềệ',
|
| 61 |
'f': 'r',
|
| 62 |
-
'g': '
|
| 63 |
'h': 'g',
|
| 64 |
'i': 'ìíỉĩị',
|
| 65 |
'í': 'iìỉĩị',
|
|
@@ -129,4 +129,47 @@ def character_replacement(text, num_errors=1):
|
|
| 129 |
return final_text
|
| 130 |
|
| 131 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 132 |
|
|
|
|
| 42 |
'ả': 'aâăáàạãấầậẩẫắằặẳẵ',
|
| 43 |
'ã': 'aâăáàạảấầậẩẫắằặẳẵ',
|
| 44 |
'â': 'aăáàạảãấầậẩẫắằặẳẵ',
|
| 45 |
+
'b': 'vn',
|
| 46 |
+
'c': 'xv',
|
| 47 |
'd': 'đ',
|
| 48 |
'đ': 'd',
|
| 49 |
'e': 'êéèẹẻẽếềệểễ',
|
|
|
|
| 59 |
'ể': 'eêéèẹẻẽếềệễ',
|
| 60 |
'ễ': 'eêéèẹẻẽếềệ',
|
| 61 |
'f': 'r',
|
| 62 |
+
'g': 'hf',
|
| 63 |
'h': 'g',
|
| 64 |
'i': 'ìíỉĩị',
|
| 65 |
'í': 'iìỉĩị',
|
|
|
|
| 129 |
return final_text
|
| 130 |
|
| 131 |
|
| 132 |
+
def character_insertion(text, num_errors=1):
|
| 133 |
+
|
| 134 |
+
'''
|
| 135 |
+
|
| 136 |
+
:param text:
|
| 137 |
+
:param num_errors:
|
| 138 |
+
:return:
|
| 139 |
+
|
| 140 |
+
Bàn phím QWERTY tiếng Việt:
|
| 141 |
+
|
| 142 |
+
Một chuỗi ký tự bao gồm tất cả các ký tự chữ cái tiếng Việt và các ký tự dấu (â, ă, ê, ô, ơ, ư, đ).
|
| 143 |
+
Chuyển đổi văn bản thành danh sách ký tự:
|
| 144 |
+
|
| 145 |
+
Sử dụng list(text) để chuyển chuỗi văn bản thành danh sách các ký tự riêng lẻ. Điều này giúp dễ dàng thêm ký tự vào bất kỳ vị trí nào trong văn bản.
|
| 146 |
+
Thực hiện thêm ký tự:
|
| 147 |
+
|
| 148 |
+
Sử dụng vòng lặp for _ in range(num_errors) để thêm một số lượng ký tự ngẫu nhiên xác định (num_errors).
|
| 149 |
+
Mỗi lần trong vòng lặp:
|
| 150 |
+
Sử dụng random.randint(0, len(text)) để chọn ngẫu nhiên một vị trí trong văn bản nơi ký tự sẽ được thêm vào. Vị trí này có thể nằm ở bất kỳ đâu trong văn bản, bao gồm cả đầu và cuối văn bản.
|
| 151 |
+
Sử dụng random.choice(keyboard) để chọn ngẫu nhiên một ký tự từ chuỗi keyboard.
|
| 152 |
+
Sử dụng text.insert(index, char_to_insert) để thêm ký tự đã chọn vào vị trí đã chọn trong danh sách ký tự.
|
| 153 |
+
Ghép lại thành chuỗi văn bản:
|
| 154 |
+
|
| 155 |
+
Sử dụng ''.join(text) để ghép danh sách các ký tự lại thành chuỗi văn bản hoàn chỉnh.
|
| 156 |
+
'''
|
| 157 |
+
|
| 158 |
+
# Bàn phím QWERTY tiếng Việt với các ký tự gần nhau
|
| 159 |
+
keyboard = 'abcdefghijklmnopqrstuvwxyzâăáàạảãấầậẩẫắằặẳẵêéèẹẻẽếềệểễìíỉĩịôơóòọỏõốồộổỗớờợởỡưúùụủũứừựửữđ'
|
| 160 |
+
|
| 161 |
+
# Chuyển đổi văn bản thành danh sách ký tự để có thể thêm ký tự
|
| 162 |
+
text = list(text)
|
| 163 |
+
|
| 164 |
+
# Thực hiện thêm ký tự tại các vị trí ngẫu nhiên
|
| 165 |
+
for _ in range(num_errors):
|
| 166 |
+
# Chọn ngẫu nhiên một vị trí trong văn bản để thêm ký tự
|
| 167 |
+
index = random.randint(0, len(text) -1)
|
| 168 |
+
# Chọn ngẫu nhiên một ký tự từ bàn phím
|
| 169 |
+
char_to_insert = random.choice(keyboard)
|
| 170 |
+
# Thêm ký tự vào vị trí đã chọn
|
| 171 |
+
text.insert(index, char_to_insert)
|
| 172 |
+
|
| 173 |
+
# Ghép các ký tự lại thành chuỗi văn bản
|
| 174 |
+
return ''.join(text)
|
| 175 |
|