Мне интересно, есть ли простой способ получить синонимы существительных в wordnet. Похоже, что синонимы прилагательных довольно легко получить.Найти синонимы существительных в wordnet
for ss in wn.synsets('beautiful'):
print(ss)
for sim in ss.similar_tos():
print(' {}'.format(sim))
Я нашел код, указанный выше, из другого вопроса SO, и он хорошо подходит для прилагательных. Но когда мое слово «бензин» или «огонь», результаты ужасны. В идеале я бы получил список слов, очень похожих на сайт this.
что-то еще, что я попробовал, что работал с хорошими результатами, но очень медленно, это:
def syn(word, lch_threshold=2.26):
for net1 in wn.all_synsets():
try:
lch = net1.lch_similarity(wn.synset(word))
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, lch)
for x in syn('gasoline.n.1'):
print x
который также был найден из другого SO вопроса. Есть ли более простой способ получить синонимы существительных, как в приведенной выше ссылке?
'wn.synsets ('word')' сам по себе дает синонимы, хотя они не интересны для существительных. Прилагательные все еще нуждаются в дополнительном шаге, предусмотренном в первом методе выше. Существительные ничего не дают с этим методом и ничего с лемами, которые вы предоставили. Второй метод, который я изложил выше, очень хорошо работает для существительных (определение важно), но очень медленно, поскольку оно проходит через весь набор синхронизаций. Похоже, что проще очистить сеть за то, что мне нужно. –
'wn-synsets ('word')' не возвращает синонимы! Он возвращает различные семантические концепции данного слова. Например: 'wn.synsets ('cat')' возвращает '[Synset ('cat.n.01'), Synset ('guy.n.01'), ... Synset ('caterpillar.n.02') , ... Synset ('vomit.v.01')] '. –
Согласно http://stackoverflow.com/questions/19258652/how-to-get-synonyms-from-nltk-wordnet-python, synsets являются синонимами. –