我有一组“大”行分隔的完整句子,我正在处理Hadoop。我开发了一个映射器,它应用了一些我最喜欢的NLP技术。有几种不同的技术,我正在映射到最初的句子集上,我在缩减阶段的目标是将这些结果收集到组中,这样一个组中的所有成员都有相同的原始句子。
我觉得用整句话作为重点是个坏主意。我觉得,产生一些哈希值的句子可能无法工作,因为有限的关键字(不合理的信念)。
有人能推荐为每个句子生成唯一键的最佳想法/实践吗?理想情况下,我想维护秩序。然而,这并不是主要的要求。
一个ντίο,
发布于 2010-07-28 03:28:06
标准散列应该可以正常工作。大多数哈希算法的值空间远远大于您可能使用的句子数,因此碰撞的可能性仍然非常低。
发布于 2010-07-28 04:05:24
虽然您可能希望避免简单的散列函数(例如,您可以快速想出的任何半生不熟的想法),因为它们可能不足以从一开始就混淆句子数据,但是标准的加密散列函数之一可能非常适合,例如MD5、SHA-1或SHA-256。
您可以为此使用MD5,即使出于安全密集型目的,碰撞已经被发现和算法被认为是不安全的。这不是一个安全关键应用程序,已经发现的冲突是通过精心构造的数据产生的,并且可能不会在您自己的NLP语句数据中随机出现。(例如,请参阅约翰·辛德林关于为什么不需要更改git以使用SHA-256散列的解释,以便您能够理解背后的原因。)
https://stackoverflow.com/questions/3349683
复制相似问题