主要观点:三年前在 Hacker News 上看到用余弦相似度检测相似 HN 账号的帖子,后因原页面消失且作者未详细说明数据处理等情况,作者决定用 Redis 的向量集重现该工作,介绍了数据下载处理过程(将 Parquet 文件转换为 txt 和 JSONL 文件)、Burrow 方法的工作原理(将词频转换为相对频率、标准化为 z 分数后插入 Redis 向量集)、为何使用 350 个词及调整过程、验证和可视化方法(通过不同变体用户测试及终端显示向量),还提到 insert.py 脚本可插入用户 JSON 元数据用于检测重复账号,最后感谢阅读长文。
关键信息:
- 原始帖子链接:https://news.ycombinator.com/item?id=33755016
- 数据下载地址:https://huggingface.co/datasets/OpenPipe/hacker-news
- 演示网站:https://antirez.com/hnstyle?username=pg&threshold=20&action=search
- GitHub 代码仓库:https://github.com/antirez/hnstyle
重要细节: - 处理文件时先生成 top N 词列表,再为每个用户生成包含所有词频的 JSONL 文件,最后用 insert.py 处理插入 Redis。
- Burrow 方法通过标准化词频的 z 分数来捕捉用户用词习惯与平均语言的差异。
- 调整 top-k 词数量以得到相似结果,发现 150 到 500 个词较优,过多词会导致结果不准确。
- 可通过 VEMB 命令获取相似用户,用 vshow 工具可视化向量,还可按词数过滤匹配结果等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。