Spaces:
Runtime error
Runtime error
Create text_cleaning.py
Browse files- text_cleaning.py +112 -0
text_cleaning.py
ADDED
@@ -0,0 +1,112 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import re
|
2 |
+
from num2words import num2words
|
3 |
+
from unicode_tr import unicode_tr
|
4 |
+
import string
|
5 |
+
from tqdm import tqdm
|
6 |
+
tqdm.pandas()
|
7 |
+
|
8 |
+
mapping_toxic_words = {
|
9 |
+
'ag': 'amına koyayım', 'got': 'göt', 'gotten': 'götten', 'gotune': 'götüne',
|
10 |
+
'gote': 'göte', 'gotunde': 'götünde', 'gotunden': 'götünden', 'gotunu': 'götünü', 'gotu': 'götü', 'gotun': 'götün',
|
11 |
+
'ami': 'amı', 'aminda': 'amında', 'amina': 'amına', 'amini': 'amını', 'yarragm': 'yarak', 'yrrk': 'yarak',
|
12 |
+
'skrm': 'sikerim', 'skrim': 'sikerim', 's1kerim': 'sikerim', 's1ker1m': 'sikerim', 'gtn': 'göt', 'daşşak': 'taşak',
|
13 |
+
'yaraaam': 'yarak', 'totoş': 'göt', 'amina': 'amına', 'zik': 'yarak', 'zikiim': 'yarak', 'yarragm': 'yarak',
|
14 |
+
'sikiir': 'yarak',
|
15 |
+
'amuğa': 'amına', 'amk': 'amına koyayım', "a.q": "amına koyayım", "a.w": "amına koyayım", "ak": "amına koyayım",
|
16 |
+
"a.k": "amına koyayım",
|
17 |
+
"mq": "amına koyayım", "mk": "amına koyayım", "aqqq": "amına koyayım", "awk": "amına koyayım",
|
18 |
+
'oc': 'orospu çocuğu', 'ass': 'göt',
|
19 |
+
'OÇ': 'orospu çocuğu', 'pic': 'piç', 'a.q': 'amına koyayım', 'aq.': 'amına koyayım', 'kappe': 'kahpe',
|
20 |
+
'amnn': 'amına', 'amn': 'amına',
|
21 |
+
'pussy': 'amcık', 'sikt': 'siktir', 'sksz': 'seks', 'amck': 'amcık', 'ferre': 'seks', 'sexs': 'seks',
|
22 |
+
'yrrak': 'yarak', 'mcik': 'amcık', 'sikm': 'sikeyim', 'amna': 'amına',
|
23 |
+
'pezo': 'pezevenk', 'saxo': 'seks', 'götü': 'göt', 'skem': 'sikeyim', 'yarraaaa': 'yarak', 'sktrr': 'siktir',
|
24 |
+
'sike': 'yarak', 'skiim': 'sikeyim', 'skim': 'sikeyim',
|
25 |
+
'sikik': 'yarak', 'yarrağ': 'yarak', "amk": "amına koyayım", "aq": "amına koyayım", 'ık': 'amına koyayım',
|
26 |
+
"fuck": "siktir", "ananskm": "ananı sikim",
|
27 |
+
"ziktir": "siktir", "amkdjdkd": "amına koyayım", "yardagıma": "yarrağıma", 'çük': 'yarak', 'penis': 'yarak',
|
28 |
+
'pipi': 'yarak', 'sik': 'yarak', 'yarrak': 'yarak',
|
29 |
+
'kaka': 'bok', 'oç': 'oruspu çocuğu', 'wtf': 'siktir', 'sie': 'siktir git', 'kürd': 'kürt', 'kurdo': 'kürt',
|
30 |
+
'kürdo': 'kürt', 'turko': 'türk',
|
31 |
+
'türko': 'türk', 'birşey': 'bir şey', 'herşey': 'her şey', 'yanlız': 'yalnız', 'yalnış': 'yanlış',
|
32 |
+
'herkez': 'herkes', 'bir kaç': 'birkaç',
|
33 |
+
'birebir': 'bire bir', 'birşeyler': 'bir şeyler', 'yavsak': 'yavşak', 'oruspu': 'orospu', 'orspu': 'orospu',
|
34 |
+
'bişey': 'bir şey', 'hiçbişey': 'hiçbir şey',
|
35 |
+
'motherfucker': 'orospu çocuğu', 'fucker': 'siken', 'shit': 'siktir', 'fuckin': 'siktir',
|
36 |
+
'fucking': 'siktir', 'fuck': 'siktir', 'ass': 'göt',
|
37 |
+
'bitch': 'orospu', 'idiot': 'aptal', 'pussy': 'amcık', 'sikiyim': 'sikeyim', 'got': 'göt', 'kahbe': 'kahpe',
|
38 |
+
'gurub': 'grup',
|
39 |
+
'ıbne': 'ibne', 'pust': 'puşt', 'ibn': 'ibne', 'mcık': 'amcık', 'mcik': 'amcık', 's.k': 'sik kafalı', 'g.t': 'göt',
|
40 |
+
's.ktir': 'siktir', 'yawşak': 'yavşak', 'yawsak': 'yavşak', 'pic': 'piç', '31': 'mastürbasyon', 'kerane': 'kerhane', 'koyim': 'koyayım',
|
41 |
+
'g.tü': 'götü', 'y.rrak': 'yarak', '*mcık': 'amcık', '*mcik': 'amcık', 'mına': 'amına', 'göd': 'göt', 'ancık': 'amcık',
|
42 |
+
'xik': 'yarak', 'ipne': 'ibne', 's*x': 'seks', 'orsbu': 'orospu', 'orrspu': 'orospu', 'mcını': 'amını', 'zittin': 'siktin',
|
43 |
+
'zittim': 'siktim', 'inbe': 'ibne', 'amuğa': 'amına', 'yarra': 'yarak', 'mını': 'amını', 'yarraa': 'yarak', 'a.q.': 'amına koyayım',
|
44 |
+
'a.k.': 'amına koyayım', 'amnskm': 'amını sikeyim',
|
45 |
+
'amık': 'amcık', 'ybsg': 'siktir git', 'bsg': 'siktir git', "amınako": "amına koyarım", "sikem": 'sikerim',
|
46 |
+
"zigsin": 'siksin', "zikeyim": 'sikeyim', "zikiiim": 'yarak', "zikiim": 'yarak', "zikik": 'yarak', "zikim": 'yarak',
|
47 |
+
"ziksiiin": 'siksin', "ziksiin": 'siksin',
|
48 |
+
"yaram": 'yarak', "yaraminbasi": 'yarak', "yaramn": 'yarak', "yarraak": 'yarak', "yarraam": 'yarak',
|
49 |
+
"yarraamı": 'yarak', "yarragi": 'yarak',
|
50 |
+
"sittimin": 'siktiğimin', "sittir": 'siktir', "skcem": 'sikeceğim', "skecem": 'sikeceğim', "skem": 'sikerim',
|
51 |
+
"sker": 'siker', "skerim": 'sikerim', "skerm": 'sikerim',
|
52 |
+
"skeyim": 'sikeyim', "skiim": 'sikeyim', "skik": 'yarak', "skim": 'yarak', "skime": 'yarak', "skmek": 'sikmek',
|
53 |
+
"sksin": 'siksin', "sksn": 'siksin', "sksz": 'sikerim', "sktiimin": 'siktiğimin', "sktrr": 'siktir',
|
54 |
+
"skyim": 'sikeyim', "sokam": 'sokarım', "yarragimi": 'yarak', "yarragina": 'yarak', "yarragindan": 'yarak', "yarragm": 'yarak',
|
55 |
+
"yarrağ": 'yarak', "yarrağım": 'yarak', "yarrağımı": 'yarak', "yarraimin": 'yarak',
|
56 |
+
'sikim': 'sikeyim', 'sex': 'seks', 'daşak': 'taşak', 'taşşak': 'taşak', 'amcik': 'amcık', 'oruspiy': 'orospu',
|
57 |
+
'amina': 'amına', 'amindan': 'amından', 'escort': 'eskort',
|
58 |
+
'am': 'amcık', 'koyim': 'koyayım', 'sg': 'siktir git', 'siktirgit': 'siktir git', 'serefsiz': 'şerefsiz'
|
59 |
+
}
|
60 |
+
|
61 |
+
|
62 |
+
def toxic_mapping(text):
|
63 |
+
toxic_map_text_list = []
|
64 |
+
for word in text.split():
|
65 |
+
if word in mapping_toxic_words:
|
66 |
+
toxic_map_text_list.append(mapping_toxic_words[word])
|
67 |
+
else:
|
68 |
+
toxic_map_text_list.append(word)
|
69 |
+
toxic_map_text_list = " ".join(toxic_map_text_list)
|
70 |
+
return toxic_map_text_list
|
71 |
+
|
72 |
+
|
73 |
+
def remove_quest_suf_sep(text):
|
74 |
+
s = []
|
75 |
+
for txt in text.split():
|
76 |
+
if re.search('(mısın|misin|musun|müsün)$', txt):
|
77 |
+
suffix = re.search('(mısın|misin|musun|müsün)$', txt).group()
|
78 |
+
s.append(re.sub('(mısın|misin|musun|müsün)$', '', txt) + ' ' + suffix)
|
79 |
+
else:
|
80 |
+
s.append(txt)
|
81 |
+
return ' '.join(s)
|
82 |
+
|
83 |
+
|
84 |
+
def remove_single_chars(text):
|
85 |
+
return ' '.join([w for w in text.split() if len(w) > 1 or w in ['o', 'O']])
|
86 |
+
|
87 |
+
|
88 |
+
def remove_tweets(text):
|
89 |
+
# remove mentions and tags
|
90 |
+
text = re.sub("@[A-Za-z0-9_]+", "", text)
|
91 |
+
text = ' '.join(word for word in text.split() if not word[0] == "#")
|
92 |
+
# remove url
|
93 |
+
text = re.sub(r"http\S+", "", text)
|
94 |
+
text = re.sub('http[s]?://\S+', '', text)
|
95 |
+
text = re.sub('http://\S+|https://\S+', '', text)
|
96 |
+
text = re.sub(r'<[^>]+>', '', text)
|
97 |
+
text = re.sub(r'http\S+', '', text)
|
98 |
+
return text
|
99 |
+
|
100 |
+
def clean_text(text):
|
101 |
+
|
102 |
+
text = unicode_tr(str(x)).lower()
|
103 |
+
text = toxic_mapping(text)
|
104 |
+
text = remove_quest_suf_sep(text)
|
105 |
+
text = remove_tweets(text)
|
106 |
+
text = re.sub(' +', ' ', text)
|
107 |
+
text = ' '.join([num2words(i, lang='tr') if i.isnumeric() else i for i in text.split()])
|
108 |
+
|
109 |
+
|
110 |
+
return text
|
111 |
+
|
112 |
+
|