2 つの単語の発音が似ているかどうかを判断するために、ネストされた 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 という名前の辞書になります。たとえば、キー "university" は、音素が類似しているため (sm. ratio が 0.66666 で 0.6 より大きい)、値 "anniversary" を持ちますが、入力が "university" と "good" の場合、"good" はキー「大学」にも追加されますが、実際には「大学」と「良い」の類似度は 0.0 で、0.6 未満です。私の「if」制御ステートメントが失敗したようです。「if」ステートメントを機能させるにはどうすればよいですか?