首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

面试|海量文本~simhash

simhash算法是google发明的,专门用于海量文本的需求,所以在这里记录一下simhash工程化落地问题。 下面我说的都是工程化落地步骤,不仅仅是理论。...背景 互联网上,一篇文章被抄袭来抄袭,转载来转载。 被抄袭的文章一般不改,或者少量改动就发表了,所以判并不是等于的关系,而是相似判断,这个判别的算法就是simhash。...现在问题就是,如何计算文本的simhash? ? 分词+权重 首先需要将文章作分词,得到若干个(词组,权重)。 分词我们知道很多库都可以实现,最常见的就是结巴分词。权重是怎么得来的呢?...结巴分词支持加载IDF词典并且提供了一个默认的词典,它包含了大量的词组以及基于海量文本统计出来的IDF词频,基本可以拿来即用,除非你想自己挖掘这样一个字典。...判 假设有一个新的simhash希望判,它的simhash值是: a=0000000000000000,b=000000001111110,c=1111111100000001,d=111111111111110

2.6K30

使用SimHash进行海量文本

SimHash算法思想   假设我们有海量的文本数据,我们需要根据文本内容将它们进行。...对于文本而言,目前有很多NLP相关的算法可以在很高精度上来解决,但是我们现在处理的是大数据维度上的文本,这就对算法的效率有着很高的要求。...而局部敏感hash算法可以将原始的文本内容映射为数字(hash签名),而且较为相近的文本内容对应的hash签名也比较相近。...SimHash算法是Google公司进行海量网页的高效算法,它通过将原始的文本映射为64位的二进制数字串,然后通过比较二进制数字串的差异进而来表示原始文本内容的差异。 回到顶部 3....2、分别拿着4个16位二进制码每一个查找simhash集合对应位置上是否有元素。   3、如果有元素,则把链表拿出来顺序查找比较,直到simhash小于一定大小的值,整个过程完成。

2.3K20

文本的技术方案讨论(一)

对于文本重来说,我个人处理上会从数据量、文本特征、文本长度(短文本、长文本)几个方向考虑。 常见的重任务,如网页,帖子,评论等等。...好的重任务是不仅比对文本的相似性,还要比对语义上的相似性。 下面我们来介绍下文本的方案。...1.传统签名算法与文本完整性判断 一、传统签名算法与文本完整性判断 问题抛出: (1)运维上线一个bin文件,将文件分发到4台线上机器上,如何判断bin文件全部是一致的?...simhash是google用来处理海量文本的算法。 google出品,你懂的。...如果使用距离为3,短文本大量重复信息不会被过滤,如果使用距离为10,长文本的错误率也非常高,如何解决?

1.3K30

如何做文本分析_大数据文本

以及局部敏感hash算法([Algorithm] 局部敏感哈希算法(Locality Sensitive Hashing)),本文介绍的SimHash是一种局部敏感hash,它也是Google公司进行海量网页使用的主要算法...SimHash算法思想   假设我们有海量的文本数据,我们需要根据文本内容将它们进行。...对于文本而言,目前有很多NLP相关的算法可以在很高精度上来解决,但是我们现在处理的是大数据维度上的文本,这就对算法的效率有着很高的要求。...SimHash算法是Google公司进行海量网页的高效算法,它通过将原始的文本映射为64位的二进制数字串,然后通过比较二进制数字串的差异进而来表示原始文本内容的差异。 回到顶部 3....2、分别拿着4个16位二进制码每一个查找simhash集合对应位置上是否有元素。   3、如果有元素,则把链表拿出来顺序查找比较,直到simhash小于一定大小的值,整个过程完成。

52750

海量短文本场景下的算法

因此需要一种准确而高效率的文本算法。...在所有的全局文本上去的话,相应的也有一个全局长度m,它表征了如果要将这部分全局文本中的相似文本进行的话,针对每一个文本需要选取一个合适的截取长度。...一般来说,全局长度的选择跟去率和算法的时间复杂度相关,实际选择的时候,都是率和时间复杂度的折中考虑。全局长度选择的越小,文本效果越好(率会增大),但相应的时间复杂度也越高。...全局长度选择越大,相似文本的效果变差(部分相似文本不会得到比较),但时间复杂度会降低。...,召回太低,很多相似文本并不满足汉明距离小于3的条件 总结 这里提出的基于文本局部信息的算法,是在短文本场景下simHash等算法无法满足目的而提出的,实际上,同样也可以应用于长文本下的重要求

18.6K41

Java中对List, Stream

问题 当下互联网技术成熟,越来越多的趋向中心化、分布式、流计算,使得很多以前在数据库侧做的事情放到了Java端。今天有人问道,如果数据库字段没有索引,那么应该如何根据该字段?...你需要知道HashSet如何帮我做到了。换个思路,不用HashSet可以吗?最简单,最直接的办法不就是每次都拿着和历史数据比较,都不相同则插入队尾。而HashSet只是加速了这个过程而已。...,那么是如何的呢?...在本题目中,要根据id,那么,我们的比较依据就是id了。...回到最初的问题,之所以提这个问题是因为想要将数据库侧拿到Java端,那么数据量可能比较大,比如10w条。

8.7K70

Flink第一弹:MapState

重计算应该是数据分析业务里面常见的指标计算,例如网站一天的访问用户数、广告的点击用户数等等,离线计算是一个全量、一次性计算的过程通常可以通过distinct的方式得到结果,而实时计算是一种增量、...此篇介绍如何通过编码方式实现精确,以一个实际场景为例:计算每个广告每小时的点击用户数,广告点击日志包含:广告位ID、用户设备ID(idfa/imei/cookie)、点击时间。...逻辑 自定义Distinct1ProcessFunction 继承了KeyedProcessFunction, 方便起见使用输出类型使用Void,这里直接使用打印控制台方式查看结果,在实际中可输出到下游做一个批量的处理然后在输出

1.5K30

Flink第四弹:bitmap精确

Flink第一弹:MapState Flink第二弹:SQL方式 Flink第三弹:HyperLogLog 关于hyperloglog优化 不得不掌握的三种BitMap 在前面提到的精确方案都是会保存全量的数据...,但是这种方式是以牺牲存储为代价的,而hyperloglog方式虽然减少了存储但是损失了精度,那么如何能够做到精确又能不消耗太多的存储呢,这篇主要讲解如何使用bitmap做精确。...ID-mapping 在使用bitmap需要将去的id转换为一串数字,但是我们的通常是一串包含字符的字符串例如设备ID,那么第一步需要将字符串转换为数字,首先可能想到对字符串做hash,但是hash...UDF化 为了方便提供业务方使用,同样需要将其封装成为UDF, 由于snowflake算法得到的是一个长整型,因此选择了Roaring64NavgabelMap作为存储对象,由于是按照维度来计算,...关于系列就写到这里,如果您有不同的意见或者看法,欢迎私信。 —END—

2.1K10

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券