File size: 3,402 Bytes
4a0869b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dc886e0
4a0869b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
96
97
import hazm
from cleantext import clean
import re


def cleanhtml(raw_html):
    cleanr = re.compile('<.*?>')
    cleantext = re.sub(cleanr, '', raw_html)
    return cleantext


normalizer = hazm.Normalizer()
wierd_pattern = re.compile("["
                           u"\U0001F600-\U0001F64F"  # emoticons
                           u"\U0001F300-\U0001F5FF"  # symbols & pictographs
                           u"\U0001F680-\U0001F6FF"  # transport & map symbols
                           u"\U0001F1E0-\U0001F1FF"  # flags (iOS)
                           u"\U00002702-\U000027B0"
                           u"\U000024C2-\U0001F251"
                           u"\U0001f926-\U0001f937"
                           u'\U00010000-\U0010ffff'
                           u"\u200d"
                           u"\u2640-\u2642"
                           u"\u2600-\u2B55"
                           u"\u23cf"
                           u"\u23e9"
                           u"\u231a"
                           u"\u3030"
                           u"\ufe0f"
                           u"\u2069"
                           u"\u2066"
                           # u"\u200c"
                           u"\u2068"
                           u"\u2067"
                           "]+", flags=re.UNICODE)


def cleaning(text):
    text = text.strip()

    # regular cleaning
    # text = clean(text,
    #     fix_unicode=True,
    #     to_ascii=False,
    #     lower=True,
    #     no_line_breaks=True,
    #     no_urls=True,
    #     no_emails=True,
    #     no_phone_numbers=True,
    #     no_numbers=False,
    #     no_digits=False,
    #     no_currency_symbols=True,
    #     no_punct=False,
    #     replace_with_url="",
    #     replace_with_email="",
    #     replace_with_phone_number="",
    #     replace_with_number="",
    #     replace_with_digit="0",
    #     replace_with_currency_symbol="",
    # )
    text = clean(text,
                 extra_spaces=True,
                 #  lowercase=True
                 )

    # cleaning htmls
    text = cleanhtml(text)

    # normalizing
    text = normalizer.normalize(text)

    # removing wierd patterns
    text = wierd_pattern.sub(r'', text)

    # removing extra spaces, hashtags
    text = re.sub("#", "", text)
    text = re.sub("\s+", " ", text)

    # replace some characters
    text = re.sub("ة", "ه", text)

    return text


# with open('./ghavanins.txt', encoding="utf-8") as fp:
#       current_content = fp.read()

# current_content = cleaning(current_content)


# with open('./ghavanins2.txt', 'wb') as f:
#         f.write(current_content.encode('utf-8', 'ignore'))

if __name__ == "__main__":
    q = ' نامة شمارة 237441 /121 مورخ 21 /05 /1402 «مركز مشاوران حقوقي و تدوين مقررات بازار سرمايه» متضمن پيشنهاد مديريت نظارت بر كارگزاران و جمع‌بندي كميتة تدوين مقررات دربارة پيش‌نويس «دستورالعمل بهره‌برداري از زيرساخت شناسايي، ثبت، نگهداري و گزارشگري عمليات حسابداري شركت‌هاي كارگزاري» مطرح و به شرح پيوست تصويب شد كه دستورالعمل و ضوابط موضوع تبصره 2 ماده 8 آن، در دو مرحله به شرح زير اجرايي مي‌شود'
    print(cleaning(q))