Создайте фильтр, сохраняя только те кортежи, у которых нет стоп-слов. Я буду слишком многословен, чтобы убедиться, что техника читаема.
Для каждого грамма используйте any
, чтобы проверить наличие любого из заданных стоп-слов.
grams = [('i', 'love'), ('love', 'when'), ('when', 'it'), ('it', 'rain'), ('rain', 'a'), ('a', 'lot'), ('lot', 'and'), ('and', 'bring'), ('bring', 'temperatur'), ('temperatur', 'down'), ('i', 'love', 'when'), ('love', 'when', 'it'), ('when', 'it', 'rain'), ('it', 'rain', 'a'), ('rain', 'a', 'lot'), ('a', 'lot', 'and'), ('lot', 'and', 'bring'), ('and', 'bring', 'temperatur'), ('bring', 'temperatur', 'down')]
stops = ["a", "and", "it", "the"]
clean = [gram for gram in grams if not any(stop in gram for stop in stops)]
print(clean)
Вывод:
[('i', 'love'), ('love', 'when'), ('bring', 'temperatur'), ('temperatur', 'down'), ('i', 'love', 'when'), ('bring', 'temperatur', 'down')]