我正在尝试编写一个将 python FeatureHasher 复制到 Java 替代方案中的 java 方法。
https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.FeatureHasher.html
下面是python代码。
>>> from sklearn.feature_extraction import FeatureHasher
>>> h = FeatureHasher(n_features=10)
>>> D = [{'dog': 1, 'cat':2, 'elephant':4},{'dog': 2, 'run': 5}]
>>> f = h.transform(D)
>>> f.toarray()
array([[ 0., 0., -4., -1., 0., 0., 0., 0., 0., 2.],
[ 0., 0., 0., -2., -5., 0., 0., 0., 0., 0.]])
我正在使用 guava 库 (guava:29.0-jre) 使用下面的代码来模拟上述转换,但是在使用 murmurhash3 之后,java 代码返回一个字节数组。我的要求是创建一个稀疏指标,如上面的 python 代码结果。
这是java代码:
byte[] bytes = Hashing.murmur3_128(16384).hashString("com.xyz.ad.demo", UTF_8).asBytes();
如何使用这个 guava 库生成稀疏指标?