Спасибо @Майкл Векслер. Теперь я попробовал библиотеку NLTK, чтобы разделить строку на списки слов более эффективно. Кроме того, я попытался найти синонимы каждого слова и сравнить, совпадают ли синонимы. Это все еще не решает задачу, поэтому мне интересно, что еще я мог бы попробовать.
Я использую эти две библиотеки:
from nltk.tokenize import word_tokenize
from nltk.corpus import wordnet
Разделить слова так же просто, как:
s1_set = word_tokenize(list1)
Теперь я пытаюсь найти синонимы слов и взять первый найденный синоним. Я добавляю его в пустой список с именем "wl1". Я проверяю, есть ли синоним, так как это не всегда так.
for i in range(0, (len(s1_set)-1)):
#Find synonym of word in s1_set index i
t1 = wordnet.synsets(s1_set[i])
#Ensure t1 isn't empty
if t1:
wl1.append(t1[0].lemmas()[0].name())
Тогда я снова сравниваю слово за словом, как в моем первом посте выше. Этот метод также не является удовлетворительным решением моей проблемы.
Кто-нибудь может придумать лучший метод?