|
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'))
|
|
|