ShynBui commited on
Commit
e941c48
·
1 Parent(s): 86f6efe

add insertion error

Browse files
Files changed (3) hide show
  1. __pycache__/utils.cpython-310.pyc +0 -0
  2. app.py +12 -1
  3. 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
- return str(input_text_process)
 
 
 
 
 
 
 
 
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': 'v',
46
- 'c': 'x',
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': 'h',
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