Spaces:
Runtime error
Runtime error
nos
commited on
Commit
•
84e7dde
1
Parent(s):
58707c3
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()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|