'A model is a bag-of-word representation of a corpus of documents,
where each document vector is a bag of (word, relevance)-items.
Vectors can then be compared for similarity using a distance metric.
The weighting scheme can be: relative TF, TFIDF (default), IG, BINARY, None,
where None means that the original weights are used.'

def __init__(self, documents=[], weight=TFIDF):

    self.description = ''
    self._documents = readonlylist()
    self._index = {}
    self._df = {}
    self._cos = {}
    self._pp = {}
    self._x2 = {}
    self._ig = {}
    self._gr = {}
    self._inverted = {}
    self._vector = None
    self._classifier = None
    self._lsa = None
    self._weight = weight
    self._update()
    self.extend(documents)
