Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.9 kB
2
Indexable
Never
import re

replacement_dict_labels = {
  "mở ngoặc đơn ": "1 1 1 ",
  " đóng ngoặc đơn ": " 2 2 2",
  "mở ngoặc nhọn ": "3 3 3 ",
  " đóng ngoặc nhọn ": " 4 4 4",
  "mở ngoặc vuông ": "5 5 5 ",
  " đóng ngoặc vuông ": " 6 6 6",
  " gạch ngang trên ": " 7 7 7 ",
  " gạch ngang dưới ": " 8 8 8 ",
  " hai chấm": " 9 9",
  " chấm phẩy ": " 10 10",
  " phẩy": " 11",
  "lớn hơn ": " 12 12 ",
  "bé hơn ": " 13 13 ",
  " chấm hỏi ": " 14 14",
  "chấm than ": " 15 15",
  "a còng ": " 16 16 ",
  "dấu thăng ": " 17 17",
  "phần trăm ": " 18 18 ",
  " ba chấm ": " 19 19",
  " chấm ": " 20 ",
  "bằng ": " 21 ",
  "xuyệt trái ": " 22 22 ",
  "xuyệt phải ": " 23 23 ",
  "xuống dòng": " 24 24"
}
replacement_dict = {
  r"(": "mở ngoặc đơn ",
  r")": " đóng ngoặc đơn ",
  r"{": "mở ngoặc nhọn ",
  r"}": " đóng ngoặc nhọn ",
  r"[": "mở ngoặc vuông ",
  r"]": " đóng ngoặc vuông ",
  r"-": " gạch ngang trên ",
  r"_": " gạch ngang dưới ",
  r":": " hai chấm",
  r";": " chấm phẩy ",
  r",": " phẩy",
  r">": "lớn hơn ",
  r"<": "bé hơn ",
  r"?": "chấm hỏi ",
  r"!": "chấm than ",
  r"@": "a còng ",
  r"#": "dấu thăng ",
  r"%": "phần trăm ",
  r"...": " ba chấm ",
  r".": " chấm ",
  r"=": "bằng ",
  r"/": " xuyệt trái ",
  r"\\": " xuyệt phải "
}

def replace_special_characters(text):
  for chu, dau in replacement_dict.items():
    text = text.replace(chu, dau)
    text = text.replace(".\n", " chấm xuống dòng")
    text = text.replace("\n", " xuống dòng")
  return text.strip()

def word_to_number(text):
    for chu, so in replacement_dict_labels.items():
        text = text.replace(chu, so)
        text = text.replace(" chấm xuống dòng", " 100 1 1")
    return text.strip()

def delete_space(text):
    text_del_sp = text.strip()
    text_del_sp_inside = re.sub(' +', ' ', text_del_sp)
    return text_del_sp_inside

def lower_string(text):
    return text.lower()

def text_to_0(sen):
  ls = sen.split()
  for i in range(len(ls)):
    if ls[i].isnumeric() is False:
      ls[i] = '0 '
      i+=1
    sen = ' '.join(ls)
    new_sen = re.sub(' +', ' ', sen)
  return new_sen

def num_to_0(text):
  ls = text.split()
  for i in range(len(ls)):
    if ls[i].isnumeric() == True:
      ls[i] = '0 '
      i+=1
    sen = ' '.join(ls)
    new_sen = re.sub(' +', ' ', sen)
  return new_sen


text = "Từ 12/2/2018: Người bán, tặng xe ô tô không phải thông báo với công an. Pham Quang Vinh\n"
print(text)

c1 = replace_special_characters(text)
print(c1)

c2 = num_to_0(c1)
print(c2)

c3 = word_to_number(c2)
print(c3)

c4 = text_to_0(c3)
print(c4)