У меня есть список всех существительных в wordnet, теперь я хочу оставить только слова, которые являются транспортными средствами, и удалить остальные. Как мне это сделать? Ниже псевдокод я хочу сделать, но я не знаю, как заставить его работатьКак получить все гипонимы слова/synset в python nltk и wordnet?
for word in wordlist:
if not "vehicle" in wn.synsets(word):
wordlist.remove(word)
Но когда я пытаюсь сузить ее дальше, я получаю эту ошибку Traceback (самый последний вызов последний): Файл "D: ... \ test.py", строки 10, в если «car» в слове: TypeError: аргумент типа «Synset» не итерируется –
watisit
См. мой обновленный ответ - я думаю, это то, что вы хотите. – Jared
@ Jared, очень элегантный ответ, но есть 'gotcha', когда' Synset.closure (lambda s: s.hyponyms() 'переходит в бесконечный цикл. Попробуйте' wn.synset ('restrain.v.01'). Закрытие (lambda s: s.hyponyms() ' – alvas