#!/usr/bin/env python # -*- coding: utf-8 -*- """ Zad 4. Napisz funkcje oov(text, vocab), która zwraca listę wyrazów (bez duplikatów), które występują w tekście text i nie występują w liście znanych wyrazów vocab. Argumenty funkcji text i vocab to odpowiednio łańcuch znakowy i lista łańuchów znakowych. Wszystkie wyrazy należy zmienić na małe litery. (OOV = out of vocabulary) (W pythonie istnieje struktura danych tak jak 'set', która przechowuje elementy bez powtórzeń.) """ from sets import Set def oov(text, vocab): w = Set() a = text.split(' ') for wyraz in a: if wyraz.lower() not in vocab: w.add(wyraz.lower()) #print w return w def tests(f): inputs = [("this is a string , which i will use for string testing", [',', 'this', 'is', 'a', 'which', 'for', 'will', 'i'])] outputs = [['string', 'testing', 'use']] for input, output in zip(inputs, outputs): if set(f(*input)) != set(output): return "ERROR: {}!={}".format(f(*input), output) break return "TESTS PASSED" if __name__ == "__main__": print(tests(oov))