-1

我有一个要在网页中显示为标签云的单词列表。每个词都有一个相应的“权重”,它决定了这个词应该出现在标签云中的大小。

假设这个数组包含每个单词被用来标记文档的次数,我想使用这些值作为每个单词的权重:

int [] ints = new int[] { 1, 2, 4, 3, 2, 1, 4, 2, 1000};

我希望权重范围在指定范围内,以便渲染代码具有一组可预测的数字来处理,但是我不想简单地标准化这些整数,因为除最后一个之外的所有整数都将基本上为零。

如果发生这种情况,那么标签云中的单个项目会非常大,而所有其他标签都会很小。我正在寻找一种将所有整数压缩到有限范围内同时保持一定程度的多样性的方法。

那么如何转换集合以使最终的大值不会使其他值变得无关紧要?

4

1 回答 1

2

使用对数对数据进行预处理并降低数字的比例。根据数据值选择对数的底。出于标签云的目的,我认为使用以 2 为底的 log 是最理想的。找到日志后,将结果数字标准化。

于 2013-02-06T14:37:59.377 回答