Spaces:
Runtime error
Runtime error
nos
commited on
Update lib/gematria.py
Browse files- lib/gematria.py +0 -110
lib/gematria.py
CHANGED
@@ -114,113 +114,3 @@ def main():
|
|
114 |
|
115 |
if __name__ == "__main__":
|
116 |
main()
|
117 |
-
from prettytable import PrettyTable
|
118 |
-
from colorama import Fore, Style
|
119 |
-
from collections import defaultdict
|
120 |
-
|
121 |
-
# Funci贸n para calcular el valor de gematria de una letra hebrea antigua
|
122 |
-
def gematria(letra):
|
123 |
-
valores = {'讗': 1, '讘': 2, '讙': 3, '讚': 4, '讛': 5, '讜': 6, '讝': 7, '讞': 8, '讟': 9,
|
124 |
-
'讬': 10, '讻': 20, '诇': 30, '诪': 40, '谞': 50, '住': 60, '注': 70, '驻': 80,
|
125 |
-
'爪': 90, '拽': 100, '专': 200, '砖': 300, '转': 400, '讱': 20, '诐': 40, '谉': 50, '祝': 80, '抓': 90}
|
126 |
-
return valores.get(letra, 0)
|
127 |
-
|
128 |
-
# Funci贸n para generar todas las combinaciones posibles de dos letras en hebreo antiguo
|
129 |
-
def generar_combinaciones():
|
130 |
-
letras = ['讗', '讘', '讙', '讚', '讛', '讜', '讝', '讞', '讟', '讬', '讻', '诇', '诪', '谞', '住', '注', '驻', '爪', '拽', '专', '砖', '转',
|
131 |
-
'讱', '诐', '谉', '祝', '抓']
|
132 |
-
combinaciones = []
|
133 |
-
for letra1 in letras:
|
134 |
-
for letra2 in letras:
|
135 |
-
combinaciones.append(letra1 + letra2)
|
136 |
-
return combinaciones
|
137 |
-
|
138 |
-
# Funci贸n para calcular la suma de los valores de gematria y el producto de los valores de gematria de una combinaci贸n
|
139 |
-
def calcular_valores(combinacion):
|
140 |
-
valor1 = gematria(combinacion[0])
|
141 |
-
valor2 = gematria(combinacion[1])
|
142 |
-
suma = valor1 + valor2
|
143 |
-
producto = valor1 * valor2
|
144 |
-
ratio = valor1 / valor2 if valor2 != 0 else float('inf')
|
145 |
-
return suma, producto, ratio
|
146 |
-
|
147 |
-
# Funci贸n principal
|
148 |
-
def main():
|
149 |
-
combinaciones = generar_combinaciones()
|
150 |
-
table = PrettyTable()
|
151 |
-
table.field_names = ["#", Fore.BLUE + "Producto" + Style.RESET_ALL,
|
152 |
-
Fore.BLUE + "Suma" + Style.RESET_ALL,
|
153 |
-
Fore.BLUE + "Ratio" + Style.RESET_ALL,
|
154 |
-
Fore.BLUE + "Valor 2" + Style.RESET_ALL,
|
155 |
-
Fore.BLUE + "Valor 1" + Style.RESET_ALL,
|
156 |
-
Fore.BLUE + "Combinaci贸n" + Style.RESET_ALL]
|
157 |
-
|
158 |
-
# Diccionario de combinaciones agrupadas por ratio
|
159 |
-
combinaciones_por_ratio = defaultdict(set)
|
160 |
-
|
161 |
-
# Versos del G茅nesis Sefard铆 (ejemplo)
|
162 |
-
versos_genesis_sefardi = [
|
163 |
-
"讘专讗砖讬转 讘专讗 讗诇讛讬诐 讗转 讛砖诪讬诐 讜讗转 讛讗专抓",
|
164 |
-
"讜讛讗专抓 讛讬转讛 转讛讜 讜讘讛讜 讜讞砖讱 注诇志驻谞讬 转讛讜诐 讜专讜讞 讗诇讛讬诐 诪专讞驻转 注诇志驻谞讬 讛诪讬诐",
|
165 |
-
"讜讬讗诪专 讗诇讛讬诐 讬讛讬 讗讜专 讜讬讛讬志讗讜专",
|
166 |
-
"讜讬专讗 讗诇讛讬诐 讗转志讛讗讜专 讻讬志讟讜讘 讜讬讘讚诇 讗诇讛讬诐 讘讬谉 讛讗讜专 讜讘讬谉 讛讞砖讱",
|
167 |
-
"讜讬拽专讗 讗诇讛讬诐 诇讗讜专 讬讜诐 讜诇讞砖讱 拽专讗 诇讬诇讛 讜讬讛讬志注专讘 讜讬讛讬志讘拽专 讬讜诐 讗讞讚"
|
168 |
-
# Agrega m谩s versos seg煤n sea necesario...
|
169 |
-
]
|
170 |
-
versos_genesis_sefardi = json.loads(open("genesis.json","r").read())["text"][0]
|
171 |
-
|
172 |
-
# Funci贸n para obtener el primer par de letras de un verso
|
173 |
-
def obtener_primer_par_letras(verso):
|
174 |
-
for i in range(len(verso) - 1):
|
175 |
-
if verso[i].isalpha() and verso[i+1].isalpha():
|
176 |
-
return verso[i:i+2]
|
177 |
-
return None
|
178 |
-
|
179 |
-
# Diccionario para almacenar el primer par de letras y su ratio por verso
|
180 |
-
primer_par_por_verso = {}
|
181 |
-
for verso in versos_genesis_sefardi:
|
182 |
-
primer_par = obtener_primer_par_letras(verso)
|
183 |
-
if primer_par:
|
184 |
-
suma, producto, ratio = calcular_valores(primer_par)
|
185 |
-
primer_par_por_verso[verso] = (primer_par, ratio)
|
186 |
-
|
187 |
-
# Diccionario para agrupar los primeros pares de letras por ratio
|
188 |
-
primer_par_por_ratio = defaultdict(list)
|
189 |
-
for verso, (primer_par, ratio) in primer_par_por_verso.items():
|
190 |
-
primer_par_por_ratio[ratio].append((primer_par, verso))
|
191 |
-
|
192 |
-
# Crear la tabla de primeros pares de letras por ratio
|
193 |
-
table_primer_par = PrettyTable()
|
194 |
-
table_primer_par.field_names = [Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Primer Par" + Style.RESET_ALL, Fore.BLUE + "Verso" + Style.RESET_ALL]
|
195 |
-
for ratio, pares_verso in sorted(primer_par_por_ratio.items(), key=lambda x: x[0], reverse=True):
|
196 |
-
for primer_par, verso in pares_verso:
|
197 |
-
table_primer_par.add_row([f"{ratio:.2f}", primer_par, verso])
|
198 |
-
|
199 |
-
print(table_primer_par)
|
200 |
-
|
201 |
-
# Procesar combinaciones y crear la tabla principal
|
202 |
-
for idx, combinacion in enumerate(combinaciones, start=1):
|
203 |
-
suma, producto, ratio = calcular_valores(combinacion)
|
204 |
-
combinacion_str = combinacion
|
205 |
-
# Resaltar en verde si la combinaci贸n est谩 en el conjunto de combinaciones del G茅nesis Sefard铆
|
206 |
-
if combinacion in set(''.join(obtener_primer_par_letras(verso)) for verso in versos_genesis_sefardi):
|
207 |
-
combinacion_str = Fore.GREEN + combinacion + Style.RESET_ALL
|
208 |
-
table.add_row([idx, producto, suma, f"{ratio:.2f}", gematria(combinacion[1]), gematria(combinacion[0]), combinacion_str])
|
209 |
-
combinaciones_por_ratio[ratio].add(combinacion)
|
210 |
-
|
211 |
-
# Mostrar la tabla de combinaciones
|
212 |
-
print("\nTabla de combinaciones:")
|
213 |
-
print(table)
|
214 |
-
|
215 |
-
# Mostrar la tabla de combinaciones agrupadas por ratio
|
216 |
-
print("\nTabla de combinaciones agrupadas por ratio:")
|
217 |
-
table_ratio = PrettyTable()
|
218 |
-
table_ratio.field_names = [Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Combinaciones" + Style.RESET_ALL]
|
219 |
-
for ratio, combinaciones in sorted(combinaciones_por_ratio.items(), key=lambda x: x[0], reverse=True):
|
220 |
-
combinaciones_str = ", ".join(combinaciones)
|
221 |
-
table_ratio.add_row([f"{ratio:.2f}", combinaciones_str])
|
222 |
-
print(table_ratio)
|
223 |
-
|
224 |
-
if __name__ == "__main__":
|
225 |
-
main()
|
226 |
-
|
|
|
114 |
|
115 |
if __name__ == "__main__":
|
116 |
main()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|