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
98
99
100
101
102
103
104
|
# letters-only translation to key-pressed characters (latin)
# ---
def kbLatinLetter( txt ) :
maTable = txt.maketrans(
"ςερτυθιοπασδφγηξκλζχψωβνμΕΡΤΥΘΙΟΠΑΣΔΦΓΗΞΚΛΖΧΨΩΒΝΜάέήίόύώϊϋΆΈΉΊΌΎΏΪΫ",
"sertyuiopasdfghjklzxcvbnmertyuiopasdfghjklzxcvbnmaehioyviyaehioyviy"
)
return txt.translate(maTable).lower()
# mark a link to a text
# conecting them with a dash/minus character
# ---
def markLink(lws, text) :
text_kb = kbLatinLetter(text.replace(' ', '-'))
lws_kb = kbLatinLetter(lws)
try:
index_l = text_kb.lower().index(lws_kb.lower())
except:
return text
else:
return text[:index_l] + lws + text[index_l + len(lws):]
# text after "all-links" marked
# ---
def linksMarked(text) :
allinked = [
'Χωρίς-Ζάχαρη',
'COCA-COLA',
'Χωρίς-Αλάτι'
]
for lw in allinked :
text = markLink( lw, text )
return text
# example
# ---
products = [
"Μπάρες δημητριακών Nestle χωρίς ζάχαρη 2+1 δώρο",
"Coca Cola Zero χωρίς ζάχαρη 300ml",
"Καφές ΠΑΠΑΓΑΛΟΣ ΛΟΥΜΙΔΗΣ 100gr Κλασσικός",
"Μουσακάς μερίδα 300gr χωρίς αλάτι",
"Bic Metal ξυραφάκια 8+2 δώρο"
]
synonyms = []
synonymOriginals = [
'μπίρα μπύρα μπίρες μπύρες',
'αυγά αβγά αυγό αβγό',
'σίκαλης σικάλεως',
'ξηρά ξερά',
'ρολό ρολλό'
'coca-cola cocacola coke',
'χαρτί-υγείας ρολό-υγείας χαρτί-τουαλέτας',
'χαρτί-κουζίνας ρολό-κουζίνας',
'οινος κρασι',
'ΚΑΤΣΕΛΗΣ ΚΑΤΣΕΛΗ',
'DR-OETKER OETKER',
'DR.BECKMANN BECKMANN',
'NES-CAFE NESCAFE',
'Ολικής-Άλεσης Ολικής-Aλέσεως',
'τσίπουρο ρακή'
]
for group in synonymOriginals :
words = group.split()
syns = []
for w in words : # for every word in group of synonyms
w_kb = kbLatinLetter(w)
exist = False
for s in syns : # check if synonym exists
if s[1] == w_kb :
exist = True
if not exist : # if not: append it
#### syns.append({
#### 'w' : w,
#### 'kb' : w_kb
#### })
syns.append([ w, w_kb ])
synonyms.append(syns)
for p in products :
print( linksMarked(p) )
import json
print(json.dumps(synonyms, ensure_ascii=False))
import datetime
start = datetime.datetime.now()
malist = [ "καλαμπόκι-διαβητικών", "cocacola-zero", "γιουβαρλάκια", "WELCOME", "σφενδόνα", "σκλαβενίτης", 'bonora', 'kris-κρις-παπαδοπούλου', "τηλεφώνημα", "χωρίς-αλάτι" ]
for i in range(1, 1000000) :
for w in malist :
tmp = kbLatinLetter(malist[i%10])
end = datetime.datetime.now()
print('execution time:', (end-start), 's')
|