如果您有疑问,通常检查来源。给定项的存储区确定如下:
def indexOf(self, term): """ Returns the index of the input term. """ return hash(term) % self.numFeatures
如您所见,这只是
hash存储桶的一个普通的旧模块数。
最终哈希只是每个存储区计数的向量(为简便起见,我省略了docstring和RDD的情况):
def transform(self, document): freq = {} for term in document: i = self.indexOf(term) freq[i] = freq.get(i, 0) + 1.0 return Vectors.sparse(self.numFeatures, freq.items())如果您想忽略频率,则可以将其
set(document)用作输入,但是我怀疑这里有很多好处。要创建
set,
hash无论如何都要计算每个元素。



