Вы можете легко проверить на наличие подстроки, используя ключевое слово in
в Python:
>>> word = "work"
>>> word in 'plant.n.01.works'
True
>>> word in 'plant.n.01.industrial_plant'
False
Если вы хотите, чтобы проверить это в списке, вы можете сделать петлю:
syn = ["plant.one","plant.two"]
for plant in syn:
if word in plant:
print("ok")
Или лучше список понимание:
result = [word in plant for plant in syn]
# To get the number of matches, you can sum the resulting list:
sum(result)
Редактировать: Если у вас есть длинный список слов для поиска, вы можете просто гнездится две петель:
words_to_search = ["work","spam","foo"]
syn = ["plant.one","plant.two"]
for word in words_to_search_for:
if sum([word in plant for plant in syn]):
print("{} is present in syn".format(word))
Обратите внимание, что вы манипулируете Lemma объектов, а не строки. Возможно, вам потребуется проверить на word in plant.name
вместо word
, если объект не реализует метод [__contains__](https://docs.python.org/2/library/operator.html#operator.__contains__)
. Однако я не знаком с этой библиотекой.
Я не очень уверен, что вам нужно, но попробовать это : 'from nltk.corpus import wordnet как wn; wn.synsets ('plant') [0] .lemma_names() ' – alvas