File size: 3,208 Bytes
5120311
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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"
# app_config.parse_url_api('api_sbert')

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)
    # link
    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)
    # escape sequence
    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'))