【发布时间】:2019-05-15 00:01:40
【问题描述】:
Svenstrup et. al. 2017 提出了一种有趣的方法来处理散列矢量化器中的散列冲突:使用 2 个不同的散列函数,并在建模之前连接它们的结果。
他们声称,多个散列函数的组合可以逼近一个范围更大的散列函数(参见论文的第 4 节)。
我想用我在 sklearn 中使用的一些文本数据来试试这个。想法是运行HashingVectorizer 两次,每次使用不同的哈希函数,然后将结果连接为我的模型的输入。
我可以如何使用 sklearn?没有选项可以更改使用的哈希函数,但也许可以以某种方式修改矢量化器?
或者也许我可以通过SparseRandomProjection 实现这一目标?
【问题讨论】:
-
好问题。感谢您链接到论文。 (我也在处理大型文本数据并且正在尝试类似的东西)。
HashingVectorizer在内部调用FeatureHasher,而后者又使用Murmurhash3函数。如果我们可以改变这一点,那么我认为这可以通过FeatureUnion 来完成。您能否详细描述一下您的用例(也许是您想要的示例)? -
我在这里找到了参考论文的实现:github.com/dsv77/hashembedding/blob/master/HashEmbedding/…
标签: python text hash scikit-learn nlp