加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

用于字符串相似性的Python摘要/哈希

发布时间:2020-12-14 04:21:51 所属栏目:大数据 来源:网络整理
导读:我正在寻找一种算法,它可以从更长的字符串生成一个短(fx 16个字符(不重要)哈希码/摘要. 主要要求是几乎相同的字符串应该产生相同的摘要. Fx 2几乎相同的邮件: 嗨马丁.这里有一些……垃圾邮件给你.关心XYZ. = AAAA AAAA AAAA AAAA 嗨博.这里有一些……垃圾邮
我正在寻找一种算法,它可以从更长的字符串生成一个短(fx 16个字符(不重要)哈希码/摘要.

主要要求是几乎相同的字符串应该产生相同的摘要.

Fx 2几乎相同的邮件:

嗨马丁.这里有一些……垃圾邮件给你.关心XYZ.
=> AAAA AAAA AAAA AAAA

嗨博.这里有一些……垃圾邮件给你.关注EFG.
=> AAAA AAAA AAAA AAAA

返回相同的消化(或几乎相同),作为不同的邮件:

你好Finn.这是一封测试邮件.
=> CCCC CCCC CCCC CCCC

将返回不同的摘要.

此算法将成为垃圾邮件过滤器的一部分.过滤器将记住邮件中的摘要,它肯定是垃圾邮件.如果相同的摘要显示在有疑问的邮件中,则相同的摘要将导致过滤器增加spamscore.

我知道Levenshtein,但它要求我先了解弦乐.在这种情况下,我没有这些信息.我可以获得这些信息,但这需要过滤器来存储所有垃圾邮件并检查每个邮件,这将是一个非常缓慢的过程.

也许一些松散的压缩算法加上两者之间Levenshtein距离的计算可以起作用.

任何指针赞赏.

解决方法

看起来你想要 locality-sensitive hashing.考虑使用 minhash或shingling.拉贾拉曼和拉贾拉曼都有很好的解释. Ullman的书,Mining Massive Datasets.你会在python搜索博客中找到许多简短的实现,用于上面的关键字.

似乎有其他方法(我不太了解),但这可能是您感兴趣的,因为它们是专门为垃圾邮件定制的,特别是nilsimsa哈希:

>解释in that paper
>其中有一个python port on pypi

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读