基于倒序索引的微博去重方法和系统的制作方法

文档序号:6523524阅读:213来源:国知局
基于倒序索引的微博去重方法和系统的制作方法【专利摘要】本发明涉及一种基于倒序索引的微博去重方法和系统。所述方法包括:由模型训练模块根据词库数据对文本进行分词;由simhash模块根据分词后的结果对文本进行词频统计以将其转换为N维向量,并且对所述N维向量进行simhash运算以便获得f位的二进制签名;由去重运算模块执行以下操作:根据设定参数将所述f位的二进制签名分段,并依据分段结果建立倒序索引;根据所建立的倒序索引来分段检索第一分段下的签名集合,并计算所述第一分段中的对应的海明距离;以及确定在所述第一分段中的所计算的海明距离是否在所述设定参数范围内。【专利说明】基于倒序索引的微博去重方法和系统【
技术领域
】[0001]本发明涉及基于微博的信息分析领域,并且具体地涉及基于倒序索引的微博去重方法和系统。【
背景技术
】[0002]随着互联网的发展,微博正在成为信息传播、普通消费者反馈问题以及投诉的主要渠道。对于企业来说,及时主动处理微博所反映问题并且阻止负面信息的大量扩散是企业客服部门以及公关部门的主要任务,并且将直接影响企业的品牌形象以及商业价值。信息分析系统在微博抓取到的大量微博的时效性和有效性将直接影响客服部门以及公关部门的处理效率以及及时性。[0003]为了避免重复内容的出现,需要进行重复判断(简称“判重”),以减少存储、增强计算效率和改善用户的体验。对微博文本内容的判重,现有的技术方案主要采取字符串比较编辑距离、余弦定理相似度计算、simhash去重等方法。[0004]关于字符串比较编辑距离方法,该方法基于在两个字符串之间由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如字符串A内容为X1X2X3X4X5…,字符串B内容为yiy2y3y4y5…,如果将B变为A需要编辑个数M,则相似度为1-M/N,其中N为字符串长度,相似度越接近1,说明越相似。[0005]关于余弦定理相似度计算方法,首先建立词库,根据词库所记录的词语对微博数据进行分词,分词以后对分词统计单词出现次数进行统计,例如文本Zlc;1,Zlc2,Zlc3,Zlc4……Zlcn;它们在文本中的个数为:ZinUZln2,Zjn3......Zlnm,力Z2cJ,Z2c2)Z2c3)Z2c4......Z2cn;匕们在章节中的个数为:z2nl,Z2n2,Z2n3……Z2nm,这样将两个文本转换成为两个向量,两向量之间的可以通过余弦定理计算其相似度,计算公式如下:[0006]'十gf以度值—(ZinixZ2nl)+CZln2XZ2n2)+(Zln3XZ2n3)......+(ZltmXZ2llll)公式I\jZlnl+^1?2+^1?3......+ZlnnXyjZ2nl+Z2n2+Z2n3......+Z2nn[0007]计算结果越接近I表明相似度越高。[0008]关于simhash去重方法,将微博中文分词后,转换为向量值是词频的N维向量,simhash运算的输入是该向量,输出是一个f位的签名值,通过计算两个签名值的海明距离,通过判断海明距离是否在设定参数范围之内,如果在设定范围之内,则判定这两个文本相似,特征权重为词频,再将该向量转换为一个签名值。Simhash过程如图1所示,整个去重流程图如图2所示,其中simhash过程为:[0009]1.将一个f维的向量V初始化为O;f位的二进制数S初始化为O;[0010]2.对每一个特征:用传统的hash算法对该特征产生一个f位的签名b。对i=l到f:[0011]如果b的第i位为1,则V的第i个元素加上该特征的权重;[0012]否则,V的第i个元素减去该特征的权重。[0013]3.如果V的第i个元素大于0,则S的第i位为1,否则为O;[0014]4.输出S作为签名。[0015]现有技术方案的缺点[0016]在大量微博数据的情况下,任何一种去重方法效率都比较低,尤其是在微博抓取进信息分析系统时,还需要判断在系统中是否已存在与该微博相似的微博(转发微博),这时的运算量过大,会直接影响微博的时效性。[0017]对于上述的去重方法,都是基于文本两两比较来进行判定是否重复,对于现在互联网信息来说,每天的微博数据非常大的情况下,在信息分析系统抓取到微博后,进行判定是否重复的运算就非常巨大,以先有微博数据N条为例,系统抓取到微博后,进行判定是否重复,最坏需要比较N次,才能判断是否重复。这样的运算效率太低。[0018]基于现有技术存在的缺点,我们提出了一种基于倒序索引的simhash去重方法,该方法是基于simhash的一种改进算法,能满足大数据运算下运算效率的保证。本发明弥补了去重方法针对大数据运算的效率低下,迎合了针对微博数据的有效提炼,提高了企业在应对微博信息扩散及时性。【
发明内容】[0019]根据本发明的一个实施例,提供了一种基于倒序索引的微博去重的方法,所述方法包括:由模型训练模块根据词库数据对文本进行分词;由simhash模块根据分词后的结果对文本进行词频统计以将其转换为N维向量,并且对所述N维向量进行simhash运算以便获得f位的二进制签名;由去重运算模块执行以下操作:根据设定参数将所述f位的二进制签名分段,并依据分段结果建立倒序索引;根据所建立的倒序索引来分段检索第一分段下的签名集合,并计算与所述第一分段的签名集合相对应的海明距离;以及确定在所述第一分段中的所计算的海明距离是否在所述设定参数范围内。[0020]优选地,所述方法进一步包括:如果所计算的海明距离不在所述设定的参数范围内,则认为所述文本不重复而将所述分段存储在倒序索引存储模块中。[0021]优选地,所述方法进一步包括:如果在所述第一分段中的所计算的海明距离在所述设定的参数范围内,则根据所建立的倒序索引来分段检索第二分段下的签名集合并计算与所述第二分段的签名集合相对应的海明距离;以及确定在所述第二分段中的所计算的海明距离是否在所述设定参数范围内。[0022]优选地,所述分段的数目大于所述设定的参数的值。[0023]优选地,所述设定的参数范围是0-7。[0024]根据本发明的另一个实施例,提供了一种基于倒序索引的微博去重的系统,所述系统包括:模型训练模块,所述模型训练模块被配置成根据词库数据对文本进行分词;simhash模块,所述simhash模块被配置成根据分词后的结果对文本进行词频统计以将其转换为N维向量,并且对所述N维向量进行simhash运算以便获得f位的二进制签名;去重运算模块,所述去重运算模块被配置成执行以下操作:根据设定参数将所述f位的二进制签名分段,并依据分段结果建立倒序索引;根据所建立的倒序索引来分段检索第一分段下的签名集合,并计算与所述第一分段的签名集合相对应的海明距离;以及确定在所述第一分段中的所计算的海明距离是否在所述设定参数范围内。[0025]优选地,所述去重运算模块进一步被配置成:如果所计算的海明距离不在所述设定的参数范围内,则认为所述文本不重复而将所述分段存储在倒序索引存储模块中。[0026]优选地,所述去重运算模块进一步被配置成:如果在所述第一分段中的所计算的海明距离在所述设定的参数范围内,则根据所建立的倒序索引来分段检索第二分段下的签名集合并计算与所述第二分段的签名集合相对应的海明距离;以及确定在所述第二分段中的所计算的海明距离是否在所述设定参数范围内[0027]优选地,所述分段的数目大于所述设定的参数的值。[0028]优选地,所述设定的参数范围是0-7。[0029]根据本发明的去重技术方案,可以在降低空间和时间复杂性的同时,保证计算的精确度。根据本公开和附图的下面的详细描述,对本领域的普通技术人员来说其它的目的、特征、以及优点将是显而易见的。【专利附图】【附图说明】[0030]附图图示了本发明的实施例,并与说明书一起用于解释本发明的原理。在附图中:[0031]图1是simhash哈希过程的示意图。[0032]图2是simhash去重处理的流程图。[0033]图3是根据本发明的实施例的基于倒序索引的simhash去重的系统的框图。[0034]图4A是根据本发明的实施例的倒序索引的示意图。[0035]图4B是根据本发明的实施例的倒序索引的实例的示意图。[0036]图5是根据本发明的实施例的基于倒序索引的simhash微博去重方法的流程图。【具体实施方式】[0037]下面将参照附图详细解释根据本发明的实施例的技术方案。[0038]如在此使用的术语“微博信息监控系统”是指通过整合互联网信息采集技术及信息智能处理技术对微博网站进行快速的抓取,通过自然语言处理技术对数据进行去重、垃圾过滤、聚类等处理,形成有价值的数据信息,从而为客户全面掌握消费人群信息分部,做出正确信息引导,提供分析依据。[0039]本发明公开的基于倒序索引的simhash微博去重方法的技术方案是在原有simhash去重方法的基础上改进的新的技术方案。[0040]如在此使用的术语“分词”指的是将连续的字序列按照一定的规范重新组合成词序列的过程。为了进行中文信息过滤,首先就要对文本预处理,进行中文分词,将其表示成可计算和推理的模型。中文分词就是把中文的汉字序列分成有意义的词。分词只是中文信息处理的一部分,分词本身并不是目的,而是后续处理过程的必要阶段,是中文信息处理的基础技术。尽管在本发明中以中文文本为例进行了说明,但是本领域技术人员理解,所述文本不仅限于中文文本,基于需要确定词语边界的语言的任何文本都可应用本发明的技术方案,例如日文文本、韩文文本等。[0041]尽管存在各种分词算法,但是对于一个成熟的分词系统来说,不可能单独依靠某一个算法来实现,都需要综合不同的算法,在实际的应用中,要根据具体的情况来选择不同的分词方案。分词的准确性关系到检索结果的质量。目前中文词语分析采取的主要步骤是:先采取最大匹配、最短路径、概率统计或全切分等方法,得到一个相对好的粗分结果,然后进行排歧、未登录词识别,最后标注词性。在实际的系统中,这三个过程可能相互交叉、反复融合,也可能不存在明显的先后次序。[0042]虽然分词准确性对去重来说十分重要,但如果分词速度太慢,即使准确性再高,对于信息分析系统来说也是不可用的。因为信息分析系统需要处理数以亿计的网页,如果分词耗用的时间过长,会严重影响信息分析系统内容更新的速度。因此对于信息分析系统来说,分词的准确性和速度,二者都需要达到很高的要求。[0043]如在此使用的术语“词频”指的是一个句子或一篇文章中各种词出现的频率,它是中文信息处理的一项基本技术,在很多领域都有重要的应用。从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好地反应成词的可信度。除去特别常用的词,一篇文章中出现频率较高的词通常能反映这篇文章的主题,因此可以使用词频来对中文文章进行文本聚类。[0044]此外,在正常的情况下,非常相似的网页内容不能给用户提供新信息或只能给用户提供少量的新信息,但是对像素网页内容的处理会消耗大量的服务器资源。同时,应当考虑到,如果某个网页重复性很高,则表明该内容比较受欢迎,也预示着该网页相对比较重要,应当赋予较高的权重。[0045]如在此使用的海明距离指的是在信息编码中两个合法代码对应位上编码不同的位数。两个码字的对应比特取值不同的比特数称为这两个码字的海明距离。一个有效编码集中,任意两个码字的海明距离的最小值称为该编码集的海明距离。两个文档的二进制位数不同的个数越多,则海明距离越大。海明距离越大,说明两个文档不相似性越大,反之,则越小。不同的系统可能会以不同的海明距离值来判断两个网页内容是否近似重复。通常,对于一个64位的二进制数值来说,将海明距离小于或等于33)作为判断是否近似重复的标准。例如:10101和00110从第一位开始依次有第一位、第四、第五位不同,则海明距离为3。如果参数设定为3,则可判定这两段文本重复。[0046]根据本发明的技术方案将从simhash运算中得到的签名进行分段并建立倒序索引以逐个分段地进行判重和海明距离的计算。本发明的原理与鸽笼原理类似,在鸽笼原理中,5个鸽子放在4个笼子必有一个笼子中的鸽子>2。在本发明中如果在本发明中将参数设定为7,这相当于将7个不同的二进制位放入8个分段中,那么必有一个分段是相等的。本发明的基于倒序索引的去重是依据此原理。[0047]图3是根据本发明的实施例的基于倒序索引的simhash去重的系统300的框图。如图3所示,系统300包括数据管理模块301、模型训练模块303、simhash哈希模块305、去重运算模块307和倒序索引存储模块309。[0048]数据管理模块301用于对从微薄中收集的消息内容进行词库管理。所述消息内容包括微博内容、转发关系、博主ID、发布时间等信息。[0049]模型训练模块303用于对来自词库管理子模块302的内容进行微博中文分词。Simhash哈希模块305用于进行向量转换和simhash运算。例如“基于倒序索引的simhash微博去重方法”,分词结果为“基于,倒序,索引,simhash,微博,去重,方法”,对应权重分别为(1,I,I,I,I,I,I),这便是一个7维向量。[0050]去重运算模块307用于进行hash值截断、分段查找和海明距离计算。具体地,去重运算模块307根据设定的参数将该f位的二进制签名分段,其中,所述分段的数目大于所述设定的参数的值,并且依据分段结果建立倒序索引来进行分段检索和海明距离计算,以便进行重复判断。即,如果重复,则返回判断结果重复;如果不重复,则基于倒序索引检索下一个分段下的签名集合,以此类推直到最后一个分段。[0051]例如,去重运算模块307将待判重的签名分成8个分段,并且依据所建立的倒序索引按照第一个分段检索该分段下的签名集合,逐个地计算与签名集合相对应的海明距离以判断重复,直到遍历所有的与其相等的索引集合。然后,去重运算模块307判断所计算的海明距离是否在设定参数范围内。如果所计算的海明距离是在设定参数范围内,则判断重复并返回判断结果重复;如果所计算的海明距离不是在设定参数范围内,则判断不重复,并且按照第二个分段检索第二个分段下的签名集合,以此类推直到第8段。[0052]更具体地,首先,将从simhash哈希模块得到的f位签名分段,例如分成8段,然后将每一段映射到该签名,如图4A所示。参见图4A,是根据本发明的实施例的倒序索引的示意图。64位的二进制串“1011011010001111…0101011110011100”被等分成八段“10110110”、“1000111”、......、“10110111”、“10011100”。然后,调整上述64位二进制,将任意一块作为前8位,总共有8种组合,生成8份映射。接着,利用精确匹配的方式查找前8位。这样,加入样本库中存有234(差不多10亿)的哈希指纹,则每个段位对应的签名集合(SP,每个table)返回2(34_16)=262144个候选结果,大大减少了海明距离的计算成本。[0053]倒序索引存储模块309用于将签名分段进行存储,具体地,进行hash值存储和倒序索引存储。[0054]例如,图4B是根据本发明的实施例的倒序索引的实例的示意图。在16位的签名并且将海明距离小于或等于33)作为判断是否近似重复的标准的情况下,系统300抓取到微博内容“京东双十一,我为自己代言,商家让利30万,呈现最优质的食物,最低的价格,最给力的促销”,然后通过系统300的模型训练模块303和simhash哈希模块305将该微博分词并进行simhash处理,从而得到16位的签名fl:1010111101010011。接着,建立倒序索引并存储,得到如图4B所示的结构。当系统300抓取到微博内容“京东就是快,上午交的订单下午电脑就送到了”时,如上所述进行分词和simhash处理,得到签名f2:1101011111001001。对于签名f2,首先得到第一个分段1101,检索上述倒序索引存储结构的第一个集合,得到签名H。然后,计算fl与f2的海明距离,并且当该海明距离大于3时,根据第二个分段0111检索上述倒序索引存储结构的第二个集合,得到又一Π,再计算其海明距离,依次类推。如果判定重复,则直接返回结果;否则将该签名也按照签名fl建立倒序索引并存储。[0055]图5是根据本发明的实施例的基于倒序索引的simhash微博去重方法500的流程图。如图5所述,该方法500在步骤S501开始,在步骤S501中,当系统抓取到微博数据时,模型训练模块303根据词库数据对文本进行分词。然后,在步骤S503中,simhash模块305根据分词后的结果对文本进行词频统计,并将其转换为N维向量。接着,在步骤S505中simhash模块305进行simhash运算,并且在步骤S507中获得一个f位的二进制签名。接着,在步骤S509中,去重运算模块307根据设定参数将该f位的二进制签名分段,其中,所述分段的数目大于所述设定的参数的值,并且依据分段结果建立倒序索引,即“关键字(key)”为签名的每一段,“值(value)”为该签名。在步骤S511中,去重运算模块307根据所建立的倒序索引来分段检索分段下的签名集合并计算对应的海明距离,直到遍历所有的与其相等的索引集合。在步骤S513中确定所计算的海明距离是否在设定参数范围内。如果所计算的海明距离在所述设定的参数范围内,则认为文本重复而不需要存储的操作,该方法返回步骤S511以根据所建立的倒序索引来分段检索下一个分段下的签名集合并计算对应的海明距离。如果所计算的海明距离不在所述设定的参数范围内,则认为所述文本不重复而在步骤S515中将所述分段存储在倒序索引存储模块中。[0056]例如,经过大量中文文本海明距离运算后,在simhash值hash结果集为64位二进制码时,海明距离优选的是在0-7的范围之内,可以认为是文本重复。[0057]在本申请的技术方案中,根据建立的倒序索引存储进行simhash去重是本发明关键点。对传统的去重方法进行了突破,提升企业在处理微博信息时的时效性和及时性;更重要的是判断去重中对于中文的海明距离参数设定将直接影响到去重的准确性,将直接影响到对重大信息的处理。这些都对企业在微博上的信息监控的及时性起到了关键作用。[0058]上述实施例仅是本发明的优选实施例,并不用于限制本发明。对本领域技术人员显而易见的是,在不脱离本发明精神和范围的情况下,可以对本发明的实施例进行各种修改和改变。因此,本发明意在涵盖落入如权利要求所限定的本发明的范围之内的所有的修改或变型。【权利要求】1.一种基于倒序索引的微博去重的方法,所述方法包括:由模型训练模块根据词库数据对文本进行分词;由simhash模块根据分词后的结果对文本进行词频统计以将其转换为N维向量,并且对所述N维向量进行simhash运算以便获得f位的二进制签名;由去重运算模块执行以下操作:根据设定参数将所述f位的二进制签名分段,并依据分段结果建立倒序索引;根据所建立的倒序索引来分段检索第一分段下的签名集合,并计算所述第一分段中的对应的海明距离;以及确定在所述第一分段中的所计算的海明距离是否在所述设定参数范围内。2.根据权利要求1所述的方法,进一步包括:如果所计算的海明距离不在所述设定的参数范围内,则认为所述文本不重复而将所述分段存储在倒序索引存储模块中。3.根据权利要求1或2所述的方法,进一步包括:如果在所述第一分段中的所计算的海明距离在所述设定的参数范围内,则根据所建立的倒序索引来分段检索第二分段下的签名集合并计算所述第二分段中的对应的海明距离;以及确定在所述第二分段中的所计算的海明距离是否在所述设定参数范围内。4.根据权利要求1所述的方法,其中,所述分段的数目大于所述设定的参数的值。5.根据权利要求1所述的方法,其中,所述设定的参数范围是0-7。6.一种基于倒序索引的微博去重的系统,所述系统包括:模型训练模块,所述模型训练模块被配置成根据词库数据对文本进行分词;simhash模块,所述simhash模块被配置成根据分词后的结果对文本进行词频统计以将其转换为N维向量,并且对所述N维向量进行simhash运算以便获得f位的二进制签名;去重运算模块,所述去重运算模块被配置成执行以下操作:根据设定参数将所述f位的二进制签名分段,并依据分段结果建立倒序索引;根据所建立的倒序索引来分段检索第一分段下的签名集合,并计算与所述第一分段的签名集合相对应的海明距离;以及确定在所述第一分段中的所计算的海明距离是否在所述设定参数范围内。7.根据权利要求6所述的系统,其中所述去重运算模块进一步被配置成:如果所计算的海明距离不在所述设定的参数范围内,则认为所述文本不重复而将所述分段存储在倒序索引存储模块中。8.根据权利要求6所述的系统,所述去重运算模块进一步被配置成:如果在所述第一分段中的所计算的海明距离在所述设定的参数范围内,则根据所建立的倒序索引来分段检索第二分段下的签名集合并计算与所述第二分段的签名集合相对应的海明距离;以及确定在所述第二分段中的所计算的海明距离是否在所述设定参数范围内。9.根据权利要求6所述的系统,其中,所述分段的数目大于所述设定的参数的值。10.根据权利要求6所述的系统,其中,所述设定的参数范围是0-7。【文档编号】G06F17/30GK103646080SQ201310681714【公开日】2014年3月19日申请日期:2013年12月12日优先权日:2013年12月12日【发明者】王鑫文申请人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1