Я пишу вложенный цикл, чтобы судить, являются ли два слова похожими на произношение. Мой код выглядит следующим образом:python appending items в словаре с циклом for
wordsDict = nltk.defaultdict(list)
for s1 in prondict[word1]:
for s2 in prondict[word2]:
sm=difflib.SequenceMatcher(None, s1, s2)
if (sm.ratio != 1 and sm.ratio >= 0.6):
#push word2 into the dict with key word1
wordsDict[word1].append(word2)
Результатом должен быть словарь под названием wordsDict. Например, ключевой «университет» будет иметь значение «юбилей», так как их фонема схожа (соотношение см. 0,66666, что больше 0,6), но когда ввод «университет» и «хороший», «хороший» будет также присоединяться к ключевому «университету», но на самом деле сходство «университет» и «хорошее» составляет 0,0, менее 0,6. Кажется, моя инструкция «if» не работает. Как заставить оператор «if» работать?
Ваше утверждение 'if' представляется правильным. Я действительно задаюсь вопросом об отступе - не должен питон жаловаться на то, что ваш 'if' отступом w.r.t. предыдущая строка? Вы можете напечатать значение 'sm.ratio' прямо перед' if' (и, возможно, добавить 'else' для отладки?) – Floris
Я решил его, сначала получив значение sm.ratio(), а затем сравните его с 0.6 , Спасибо! – noben