Mam listę wszystkich rzeczowników w WordNet teraz chcę zostawić tylko słowa, które są pojazdy i usunąć resztę. Jak mam to zrobić? Poniżej znajduje się pseudo-kod chcę zrobić, ale nie wiem jak zrobić to działaJak uzyskać wszystkie hiponimie słowa/synset w python nltk i wordnet?
for word in wordlist:
if not "vehicle" in wn.synsets(word):
wordlist.remove(word)
Ale gdy próbuję go zawęzić dalej, ja dostać ten błąd Traceback (najnowsza rozmowę ostatnia): pliku "D: ... \ test.py", wiersz 10, w razie "samochód" w słowie: TypeError: argument typu "Synset" nie jest iterable –
watisit
Zobacz moją zaktualizowaną odpowiedź - Myślę, że to jest to, co chcesz. – Jared
@Jared, bardzo elegancka odpowiedź, ale pojawia się 'gotcha', gdy' Synset.closure (lambda: s.hyponyms() 'przechodzi do nieskończonej pętli. Spróbuj' wn.synset ('restrain.v.01'). zamknięcie (lambda: s.hyponyms() ' – alvas