可记录性草图的python实现
recordinalit的Python项目详细描述
的python实现 Recordinality 基数估计和流采样示意图。灵感来自C。 斯科特·安德烈亚斯的 implementation,但是 由SipHash-2-4而不是Murrathash3提供动力。尤其是这个 Project使用了我的另外两个库: csiphash和 cskipdict。
安装
pip install recordinality
用法
您可以使用命令行应用程序,它将读取几行文本 从stdin递增,打印流的基数(或随机 示例)关闭管道后:
$ recordinality -k <sketch-size> [-h|--hash-key <hash-key>] [-s|--sample] < input-lines.txt 3574 $ cat input-lines.txt | sort -u | wc -l 3556
sipHash允许指定“密钥”(此处用作 散列种子);如果提供,则应为16个字符的ascii字符串或 32个字符的十六进制字符串。
您还可以在python中导入Recordinality类:
>>>fromrecordinalityimportRecordinality>>>sketch=Recordinality(size=512)>>>forobservationininput_observations:...sketch.add(observation)>>>print(sketch.cardinality())3574>>>print(sketch.k_sample)['strife','bragging','knight?',...]
无证
这是免费和无负担的软件发布到公共领域。
任何人都可以自由复制、修改、发布、使用、编译、销售或 以源代码形式或编译的形式分发此软件 二进制的,用于任何目的的,商业的或非商业的,并且以任何方式。
在承认版权法的司法管辖区内, 本软件将对本软件的所有版权权益 公共领域。我们这样做是为了公众的利益 对我们的继承人和继承人不利。我们打算 这种奉献是一种公开的永久放弃行为 版权法下对本软件的所有现有和未来权利。
软件按“原样”提供,不作任何形式的保证 或默示的,包括但不限于 适销性、适合特定目的和不侵权。 在任何情况下,作者对任何索赔、损害或其他 责任,不论是在合同诉讼、侵权诉讼或其他诉讼中产生的 来自、脱离或与软件、使用或其他有关 软件交易。
有关详细信息,请参阅http://unlicense.org/