Skip to content

Instantly share code, notes, and snippets.

@mshavliuk
Created June 22, 2021 07:32
Show Gist options
  • Save mshavliuk/83b4439fadb294e96c07ac276424d83a to your computer and use it in GitHub Desktop.
Save mshavliuk/83b4439fadb294e96c07ac276424d83a to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
from itertools import product
from nltk.corpus import wordnet
def test_words(word1: str, word2: str):
meanings1 = wordnet.synsets(word1, lang="eng")
meanings2 = wordnet.synsets(word2, lang="eng")
similarities = []
for sense1, sense2 in product(meanings1, meanings2):
score = sense1.wup_similarity(sense2)
similarities.append((score, sense1, sense2))
similarities = sorted(similarities, key=lambda tup: tup[1], reverse=True)
for score, sense1, sense2 in similarities:
if score is None:
continue
print("{:3.2f} - {} {}".format(score, sense1, sense2))
def main():
test_words("burglary", "shoplifting")
test_words("robbery", "vandalism")
if __name__ == '__main__':
main()
@mshavliuk
Copy link
Author

Console output:

0.87 - Synset('burglary.n.01') Synset('shoplifting.n.01')
0.64 - Synset('robbery.n.01') Synset('vandalism.n.01')
0.60 - Synset('looting.n.01') Synset('vandalism.n.01')

@mshavliuk
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment