为标记云权重分配整数

本文关键字:分配 整数 权重 | 更新日期: 2023-09-27 17:58:04

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

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

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

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

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

那么,我如何变换集合,使最终的大值不会使其他值变得微不足道呢?

为标记云权重分配整数

使用对数预处理数据并降低数字的小数位数。根据数据值选择对数的基数。对于标签云来说,在我看来,使用log-to-base2是最理想的。找到日志后,将生成的数字标准化。