Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
16.8k views
in Technique[技术] by (71.8m points)

nlp - Wordnet Find Synonyms

I am searching for a way to find all the synonyms of a particular word using wordnet. I am using JAWS.

For example:

love(v): admire, adulate, be attached to, be captivated by, be crazy about, be enamored of, be enchanted by, be fascinated with, be fond of, be in love with, canonize, care for, cherish, choose, deify, delight in, dote on, esteem, exalt, fall for, fancy, glorify, go for, gone on....

love(n): Synonym : adulation, affection, allegiance, amity, amorousness, amour, appreciation, ardency, ardor, attachment, case*, cherishing, crush, delight, devotedness, devotion, emotion, enchantment, enjoyment, fervor, fidelity, flame, fondness, friendship, hankering, idolatry, inclination, infatuation, involvement

In a related question user Ram has pointed to some code but that does not suffice as it just gives a vastly different output:

love, passion: any object of warm affection or devotion beloved, dear, dearest, honey, love: a beloved person; used as terms of endearment love, sexual love, erotic love: a deep feeling of sexual desire and attraction love: a score of zero in tennis or squash sexual love, lovemaking, making love, love, love life: sexual activities (often including sexual intercourse) between two people love: have a great affection or liking for

So how do I achieve it and is wordnet suited for what I want to do?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
by (100 points)
Эскорт сопровождение - это услуга, которая предоставляется женщинами и мужчинами,
которые сопровождают своих клиентов на различные мероприятия или путешествия. Они могут быть наняты для
проведения времени вместе, общения, поддержки и даже интимных отношений.
Обратитесь к услугам эскорта моделей в Москве - <a href=http://eskortmoskva.ru/>эскорт москва.</a>
by (100 points)
Эскорт сопровождение - это услуга, которая предоставляется женщинами и мужчинами,
которые сопровождаЭскорт сопровождение - это услуга, которая предоставляется для обеспечения безопасности и комфорта клиентов
во время их пребывания в незнакомом городе или стране. Эскорт сопровождающий обычно является опытным профессионалом,
который знает все тонкости и особенности местной культуры и может помочь клиенту чувствовать себя уверенно и защищенно- <a href=https://teletype.in/@glopert/cCN4JJIH8XE>эскорт москва.</a>
by (100 points)
Эскорт сопровождение - это услуга, которая предоставляется женщинами и мужчинами,
которые сопровождаЭскорт сопровождение - это услуга, которая предоставляется для обеспечения безопасности и комфорта клиентов
во время их пребывания в незнакомом городе или стране. Эскорт сопровождающий обычно является опытным профессионалом,
который знает все тонкости и особенности местной культуры и может помочь клиенту чувствовать себя уверенно и защищенно- <a href=https://teletype.in/@glopert/Klbr5VVGQkl>девушки эскорт москва</a>
by (100 points)
В поисках идеального кондиционера в Кишиневе, столице Молдовы, вам доступно множество вариантов. Город обладает развитой инфраструктурой и многочисленными магазинами, предлагающими широкий выбор кондиционеров различных марок и моделей. Для удобства выбора и покупки, рассмотрим несколько популярных вариантов:
 
Специализированные магазины по продаже бытовой техники: В Кишиневе существует множество магазинов, специализирующихся на продаже бытовой техники, включая кондиционеры. Здесь вы сможете получить профессиональную консультацию от продавцов и выбрать подходящий кондиционер для ваших потребностей.
 
Интернет-магазины: В сети интернет также предоставляется широкий выбор кондиционеров с возможностью сравнения характеристик и цен. Многие интернет-магазины осуществляют доставку в Кишинев, что делает процесс покупки более удобным.
 
Специализированные магазины по климатической технике: В городе действуют магазины, специализирующиеся исключительно на климатической технике. Здесь вы найдете большой ассортимент кондиционеров различных типов – от оконных до сплит-систем.
 
Большие розничные сети: Некоторые крупные розничные сети также предлагают разнообразные варианты кондиционеров. Эти магазины часто предоставляют гарантии на продукцию и могут предложить дополнительные услуги, такие как монтаж и обслуживание.
 
Перед покупкой рекомендуется провести небольшое исследование рынка, сравнить цены и отзывы о конкретных моделях. Независимо от выбранного варианта, важно обратить внимание на квалификацию продавцов и гарантии, предоставляемые на приобретаемое оборудование.
https://norlam.md
by (100 points)
В поисках идеального кондиционера в Кишиневе, столице Молдовы, вам доступно множество вариантов. Город обладает развитой инфраструктурой и многочисленными магазинами, предлагающими широкий выбор кондиционеров различных марок и моделей. Для удобства выбора и покупки, рассмотрим несколько популярных вариантов:
 
Специализированные магазины по продаже бытовой техники: В Кишиневе существует множество магазинов, специализирующихся на продаже бытовой техники, включая кондиционеры. Здесь вы сможете получить профессиональную консультацию от продавцов и выбрать подходящий кондиционер для ваших потребностей.
 
Интернет-магазины: В сети интернет также предоставляется широкий выбор кондиционеров с возможностью сравнения характеристик и цен. Многие интернет-магазины осуществляют доставку в Кишинев, что делает процесс покупки более удобным.
 
Специализированные магазины по климатической технике: В городе действуют магазины, специализирующиеся исключительно на климатической технике. Здесь вы найдете большой ассортимент кондиционеров различных типов – от оконных до сплит-систем.
 
Большие розничные сети: Некоторые крупные розничные сети также предлагают разнообразные варианты кондиционеров. Эти магазины часто предоставляют гарантии на продукцию и могут предложить дополнительные услуги, такие как монтаж и обслуживание.
 
Перед покупкой рекомендуется провести небольшое исследование рынка, сравнить цены и отзывы о конкретных моделях. Независимо от выбранного варианта, важно обратить внимание на квалификацию продавцов и гарантии, предоставляемые на приобретаемое оборудование.
https://www.top20.md/info/jara.md
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Sticking with just WordNet, you could try to use semantic similarity to determine if two words (synsets) are similar enough to be synonyms. Below is a quick example that came from modifying another of my answers on semantic similarity using WordNet.

It does have its problems though:

  • Antonyms are mixed in with synonyms
  • It is slow! (as it has to check all ~117k synsets)

Still, it produces more synonyms than using lemma_names alone, so I leave it here in case it might be useful (in conjunction with something else perhaps).

>>> from nltk.corpus import wordnet as wn
>>> def syn(word, lch_threshold=2.26):
    for net1 in wn.synsets(word):
        for net2 in wn.all_synsets():
            try:
                lch = net1.lch_similarity(net2)
            except:
                continue
            # The value to compare the LCH to was found empirically.
            # (The value is very application dependent. Experiment!)
            if lch >= lch_threshold:
                yield (net1, net2, lch)


>>> for x in syn('love'):
    print x

Code above outputs:

(Synset('love.n.01'), Synset('feeling.n.01'), 2.538973871058276)
(Synset('love.n.01'), Synset('conditioned_emotional_response.n.01'), 2.538973871058276)
(Synset('love.n.01'), Synset('emotion.n.01'), 2.9444389791664407)
(Synset('love.n.01'), Synset('worship.n.02'), 2.9444389791664407)
(Synset('love.n.01'), Synset('anger.n.01'), 2.538973871058276)
(Synset('love.n.01'), Synset('fear.n.01'), 2.538973871058276)
(Synset('love.n.01'), Synset('fear.n.03'), 2.538973871058276)
(Synset('love.n.01'), Synset('anxiety.n.02'), 2.538973871058276)
(Synset('love.n.01'), Synset('joy.n.01'), 2.538973871058276)
(Synset('love.n.01'), Synset('love.n.01'), 3.6375861597263857)
(Synset('love.n.01'), Synset('agape.n.02'), 2.9444389791664407)
(Synset('love.n.01'), Synset('agape.n.01'), 2.9444389791664407)
(Synset('love.n.01'), Synset('filial_love.n.01'), 2.9444389791664407)
(Synset('love.n.01'), Synset('ardor.n.02'), 2.9444389791664407)
(Synset('love.n.01'), Synset('amorousness.n.01'), 2.9444389791664407)
(Synset('love.n.01'), Synset('puppy_love.n.01'), 2.9444389791664407)
(Synset('love.n.01'), Synset('devotion.n.01'), 2.9444389791664407)
(Synset('love.n.01'), Synset('benevolence.n.01'), 2.9444389791664407)
(Synset('love.n.01'), Synset('beneficence.n.01'), 2.538973871058276)
(Synset('love.n.01'), Synset('heartstrings.n.01'), 2.9444389791664407)
(Synset('love.n.01'), Synset('lovingness.n.01'), 2.9444389791664407)
(Synset('love.n.01'), Synset('warmheartedness.n.01'), 2.538973871058276)
(Synset('love.n.01'), Synset('loyalty.n.02'), 2.9444389791664407)
(Synset('love.n.01'), Synset('hate.n.01'), 2.538973871058276)
(Synset('love.n.01'), Synset('emotional_state.n.01'), 2.538973871058276)
(Synset('love.n.02'), Synset('content.n.05'), 2.538973871058276)
(Synset('love.n.02'), Synset('object.n.04'), 2.9444389791664407)
(Synset('love.n.02'), Synset('antipathy.n.02'), 2.538973871058276)
(Synset('love.n.02'), Synset('bugbear.n.02'), 2.538973871058276)
(Synset('love.n.02'), Synset('execration.n.03'), 2.538973871058276)
(Synset('love.n.02'), Synset('center.n.06'), 2.538973871058276)
(Synset('love.n.02'), Synset('hallucination.n.03'), 2.538973871058276)
(Synset('love.n.02'), Synset('infatuation.n.03'), 2.538973871058276)
(Synset('love.n.02'), Synset('love.n.02'), 3.6375861597263857)
(Synset('beloved.n.01'), Synset('person.n.01'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('lover.n.01'), 2.9444389791664407)
(Synset('beloved.n.01'), Synset('admirer.n.03'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('beloved.n.01'), 3.6375861597263857)
(Synset('beloved.n.01'), Synset('betrothed.n.01'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('boyfriend.n.01'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('darling.n.01'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('girlfriend.n.02'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('idolizer.n.01'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('inamorata.n.01'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('inamorato.n.01'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('kisser.n.01'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('necker.n.01'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('petter.n.01'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('romeo.n.01'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('soul_mate.n.01'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('squeeze.n.04'), 2.538973871058276)
(Synset('beloved.n.01'), Synset('sweetheart.n.01'), 2.538973871058276)
(Synset('love.n.04'), Synset('desire.n.01'), 2.538973871058276)
(Synset('love.n.04'), Synset('sexual_desire.n.01'), 2.9444389791664407)
(Synset('love.n.04'), Synset('love.n.04'), 3.6375861597263857)
(Synset('love.n.04'), Synset('aphrodisia.n.01'), 2.538973871058276)
(Synset('love.n.04'), Synset('anaphrodisia.n.01'), 2.538973871058276)
(Synset('love.n.04'), Synset('passion.n.05'), 2.538973871058276)
(Synset('love.n.04'), Synset('sensuality.n.01'), 2.538973871058276)
(Synset('love.n.04'), Synset('amorousness.n.02'), 2.538973871058276)
(Synset('love.n.04'), Synset('fetish.n.01'), 2.538973871058276)
(Synset('love.n.04'), Synset('libido.n.01'), 2.538973871058276)
(Synset('love.n.04'), Synset('lecherousness.n.01'), 2.538973871058276)
(Synset('love.n.04'), Synset('nymphomania.n.01'), 2.538973871058276)
(Synset('love.n.04'), Synset('satyriasis.n.01'), 2.538973871058276)
(Synset('love.n.04'), Synset('the_hots.n.01'), 2.538973871058276)
(Synset('love.n.05'), Synset('bowling_score.n.01'), 2.538973871058276)
(Synset('love.n.05'), Synset('football_score.n.01'), 2.538973871058276)
(Synset('love.n.05'), Synset('baseball_score.n.01'), 2.538973871058276)
(Synset('love.n.05'), Synset('basketball_score.n.01'), 2.538973871058276)
(Synset('love.n.05'), Synset('number.n.02'), 2.538973871058276)
(Synset('love.n.05'), Synset('score.n.03'), 2.9444389791664407)
(Synset('love.n.05'), Synset('stroke.n.06'), 2.538973871058276)
(Synset('love.n.05'), Synset('birdie.n.01'), 2.538973871058276)
(Synset('love.n.05'), Synset('bogey.n.02'), 2.538973871058276)
(Synset('love.n.05'), Synset('deficit.n.03'), 2.538973871058276)
(Synset('love.n.05'), Synset('double-bogey.n.01'), 2.538973871058276)
(Synset('love.n.05'), Synset('duck.n.02'), 2.538973871058276)
(Synset('love.n.05'), Synset('eagle.n.02'), 2.538973871058276)
(Synset('love.n.05'), Synset('double_eagle.n.01'), 2.538973871058276)
(Synset('love.n.05'), Synset('game.n.06'), 2.538973871058276)
(Synset('love.n.05'), Synset('lead.n.07'), 2.538973871058276)
(Synset('love.n.05'), Synset('love.n.05'), 3.6375861597263857)
(Synset('love.n.05'), Synset('match.n.05'), 2.538973871058276)
(Synset('love.n.05'), Synset('par.n.01'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('bondage.n.03'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('outercourse.n.01'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('safe_sex.n.01'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('sexual_activity.n.01'), 2.9444389791664407)
(Synset('sexual_love.n.02'), Synset('conception.n.02'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('sexual_intercourse.n.01'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('pleasure.n.05'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('sexual_love.n.02'), 3.6375861597263857)
(Synset('sexual_love.n.02'), Synset('carnal_abuse.n.01'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('coupling.n.03'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('reproduction.n.05'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('foreplay.n.01'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('perversion.n.02'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('autoeroticism.n.01'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('promiscuity.n.01'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('lechery.n.01'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('homosexuality.n.01'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('bisexuality.n.02'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('heterosexuality.n.01'), 2.538973871058276)
(Synset('sexual_love.n.02'), Synset('bestiality.n.02'), 2.538973871058276)
# ...

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...