Есть ли способ сравнить 2 абзаца с их наиболее синонимичными словами из wordnet? - PullRequest
0 голосов
/ 04 ноября 2019

При проверке сходства между двумя строками с их синонимичными словами это почти даст нам более чем положительную точность. В качестве примера

Если мы сравним две строки с синтаксисами word-net и используя метод wup_s Similarity,

word1= car
word2= horse

мы вернемся почти 1.0.

Какмогу ли я преодолеть эту проблему?

Я хотел бы получить "Если я сравниваю автомобили, я хочу проверять только автомобили в сети, а не на животных"

Пожалуйста, дайте мне какие-либо предложения или рекомендации,спасибо.

for word1 in pre_process_text_MARKING_SCHEME:
    simi = []
    for word2 in pre_process_text_ANSWER_SHEET:
        sims = []
        syns1 = wordnet.synsets(word1)
        syns2 = wordnet.synsets(word2)

        for sense1, sense2 in product(syns1, syns2):

            d = wordnet.wup_similarity(sense1, sense2)
            if d != None:

                #print(d, "similarity between word ", sense1, " and ", sense2)
                sims.append(d)

        if sims != []:
            max_sim = max(sims)
            #print("maximum similarity between" ,word1," and ",word2, " is ",max_sim )
            simi.append(max_sim)

    if simi != []:
        max_final = max(simi)
        final.append(max_final)

        #print(max_final, "max_final between ",word1, " and ", word2)



##---------------Final Output---------------##

similarity_index = numpy.mean(final)


similarity_index = round(similarity_index, 2)

print("Similarity index value : ", similarity_index)


if similarity_index > 0.8:
    print("Similar")
elif similarity_index >= 0.6:
    print("Somewhat Similar")
else:
    print("Not Similar")
...