kira
Фев. 3, 2010 16:34:31
Підкажіть будь-ласка як правильно сформулювати цикл якщо завдання таке:Гематрія – метод виявлення прихованого змісту слів на основі порівняння чисел, які відповідають словам. Слова з однаковими числами мають однаковий зміст. Число слова визначається сумуванням чисел, як відповідають його літерам. Здійснити аналіз корпусу (наприклад nltk.corpus.state_union). Для кожного з текстів визначити скільки слів мають номер 555 та 777. (Використовувати letter_vals)
Ferroman
Фев. 3, 2010 17:10:01
Не бачу вашого варіанту коду.
Kabuki
Фев. 3, 2010 22:48:50
варіант коду: letter_vals={'a':1,'b':2, ‘c’:3, ‘d’:4, ‘e’:5, ‘f’:80,'g':3, ‘h’:8, ‘i’:10, ‘j’:10, ‘k’:20,'l':30, ‘m’:40, ‘n’:50, ‘o’:70, ‘p’:80, ‘q’:100, ‘r’:200, ‘s’:300, ‘t’:400,'u':6, ‘v’:6, ‘w’:800, ‘x’:60, ‘y’:10, ‘z’:7}
kira
Фев. 3, 2010 22:49:45
>>> ira=nltk.corpus.names.words()
>>> letter_vals = {'a':1, ‘b’:2, ‘c’:3, ‘d’:4, ‘e’:5, ‘f’:80, ‘g’:3, ‘h’:8,'i':10, ‘j’:10, ‘k’:20, ‘l’:30, ‘m’:40, ‘n’:50, ‘o’:70, ‘p’:80, ‘q’:100, ‘r’:200, ‘s’:300, ‘t’:400, ‘u’:6, ‘v’:6, ‘w’:800, ‘x’:60, ‘y’:10, ‘z’:7, ‘-’:9, ‘ ’:11, “'”:12}
>>> def gematria(ira):
for i in range(len(ira)):
word=ira
gem=0
for i in word.lower():
gem+=letter_vals
word=gem
return word
>>> for w in ira:
if gematria(w) == 777:
print w
Augustina
Enriqueta
Justina
>>> for w in ira:
if gematria(w) == 555:
print w
Meris
Dalton
Elton
Nathaniel
>>> gematria('Augustina')
777
>>> gematria('Elton')
555
kira
Фев. 3, 2010 22:51:46
Проблема в тому, що з корпусом names все працює, бо я трошки видозмінила letter_vals, але у корпусі state_union більше розділових циклів, тому дорога в обхід - не вирішення!(((((((((