| | import editdistance
|
| | import requests
|
| | import numpy as np
|
| | import re
|
| | from .clean_text import normalize_text
|
| | URL_SBERT = "http://10.9.3.240:6789/sbert/encode_list"
|
| |
|
| |
|
| | def get_sbert_embedding(lst_sentence, url = URL_SBERT):
|
| | input_data = {
|
| | "sentences": lst_sentence
|
| | }
|
| | embs = requests.post(url, json=input_data).json()
|
| | embs = np.array(embs)
|
| |
|
| | return embs
|
| |
|
| | def is_number(word):
|
| | lst_end = ['$', '%', 'vnđ', '.', ',']
|
| | word_lo = word.lower()
|
| | for k in lst_end:
|
| | word_lo = word_lo.replace(k, '')
|
| |
|
| | if word_lo.isdigit():
|
| | return True
|
| | else:
|
| | return False
|
| |
|
| |
|
| | def get_number(text):
|
| | dt = text.split(' ')
|
| | for w in dt:
|
| | if is_number(w):
|
| | return w
|
| |
|
| | return ''
|
| |
|
| |
|
| | def check_editdistance(ww1, ww2):
|
| | if len(ww1) == 0 or len(ww1) == 0:
|
| | return 0
|
| | else:
|
| | n_c = editdistance.eval(ww1.lower(), ww2.lower())
|
| | score = n_c / max(len(ww1), len(ww2))
|
| | return 1 - score
|
| |
|
| |
|
| | def remove_image_keyword(text_input):
|
| | lst_key = ["ảnh:", "ảnh :", "Ảnh:", "Ảnh :",
|
| | "Ảnh minh họa:", "Ảnh minh họa :", "ảnh minh họa:", "ảnh minh họa :",
|
| | "Nguồn:", "nguồn:", "Nguồn :", "nguồn :",
|
| | "Source:", "Source :", "source:", "source :",
|
| | "Src:", "Src :", "src:", "src :",
|
| | "Image:", "Image :", "img:", "img :",
|
| | "image:", "image :", "Img:", "Img :",
|
| | "xem tiếp", "xem thêm", "Xem tiếp", "Xem thêm"]
|
| | for k in lst_key:
|
| | text_input = text_input.replace(k, " ")
|
| | return text_input.strip()
|
| |
|
| | def clean_text(text_in, normalize=True):
|
| | doc = re.sub('<.*?>', '', text_in)
|
| | doc = re.sub('(function).*}', ' ', doc)
|
| |
|
| | doc = re.sub('(Nguồn)\s*?(http:\/\/).*?(\.htm)', ' ', doc)
|
| | doc = re.sub('(Nguồn)\s*?(http:\/\/).*?(\.html)', ' ', doc)
|
| | doc = re.sub('(Nguồn)\s*?(https:\/\/).*?(\/\/)', ' ', doc)
|
| | doc = re.sub('(Nguồn)\s*?(https:\/\/).*?(\.htm)', ' ', doc)
|
| | doc = re.sub('(Nguồn)\s*?(https:\/\/).*?(\.html)', ' ', doc)
|
| | doc = re.sub('(Nguồn)\s*?(https:\/\/).*?(\.vn)', ' ', doc)
|
| | doc = re.sub('(Nguồn)\s*?(https:\/\/).*?(\.net)', ' ', doc)
|
| | doc = re.sub('(Nguồn)\s*?(https:\/\/).*?(\.vgp)', ' ', doc)
|
| | doc = re.sub('(Nguồn)\s*?(http:\/\/).*?(\.vgp)', ' ', doc)
|
| |
|
| | doc = re.sub('(http:\/\/).*?(\.htm)', ' ', doc)
|
| | doc = re.sub('(http:\/\/).*?(\.html)', ' ', doc)
|
| | doc = re.sub('(https:\/\/).*?(\/\/)', ' ', doc)
|
| | doc = re.sub('(https:\/\/).*?(\.htm)', ' ', doc)
|
| | doc = re.sub('(https:\/\/).*?(\.html)', ' ', doc)
|
| | doc = re.sub('(https:\/\/).*?(\.vn)', ' ', doc)
|
| | doc = re.sub('(https:\/\/).*?(\.net)', ' ', doc)
|
| | doc = re.sub('(https:\/\/).*?(\.vgp)', ' ', doc)
|
| | doc = re.sub('(http:\/\/).*?(\.vgp)', ' ', doc)
|
| |
|
| | doc = re.sub('\n', ' ', doc)
|
| | doc = re.sub('\t', ' ', doc)
|
| | doc = re.sub('\r', ' ', doc)
|
| |
|
| | if normalize:
|
| | doc = normalize_text(doc)
|
| | return doc
|
| |
|
| | if __name__ == '__main__':
|
| | print(check_editdistance('tttt', 'tt'))
|
| |
|