本发明专利技术公开了一种基于局部敏感哈希的分布式快速文本分类方法。本发明专利技术针对现有文本分类方法耗时久,精度低,无法满足大数据环境要求等问题,首先采用局部敏感哈希方法压缩数量巨大的文本特征,以提炼有用特征,加快处理速度;其次匹配文本特征与已有类别特征,实现文本类别的快速计算;基于Spark框架对算法进行设计与实现,进一步加快了算法执行速度并提高了算法在大数据环境下的可扩展能力。
【技术实现步骤摘要】
一种基于局部敏感哈希的分布式快速文本分类方法
本专利技术涉及一种基于局部敏感哈希的分布式快速文本分类方法,用于实现对文本进行快速高效地自动分类,属于文本挖掘
技术介绍
近年来,随着信息技术的不断发展,互联网中数字文本大量涌现,如何有效管理这些文本显得尤为重要。文本分类是有效管理文本的重要方法,在网页搜索、垃圾邮件过滤、用户反馈及个性化推荐系统等方面应用广泛。文本分类方法主要有两个评价指标:精确度和速度。前者用来表征文本是否归类到合适的分类中,而后者用来说明算法的执行效率。从提高这两项指标出发,目前比较典型的文本分类方法主要有基于支持向量机(SVM)的方法、基于贝叶斯(Bayes)的方法、线性分类以及K-近邻等。其中,基于SVM的文本分类方法通过在高维或无穷维的空间中构建一个或一组超平面,使得总体的函数边界误差最小,从而克服冗余特征、过拟合等问题,取得较高的分类精度。此外,该方法还具有更好的泛化能力。然而,由于其模型复杂,通常需要消耗大量的时间与空间,并且在大规模数据集下常常难以快速收敛。其它方法如基于贝叶斯的方法、线性分类及k近邻等,它们具有较快的收敛速度,但总的来说模型相对简单。为了获得更好的算法性能,研究人员分别提出了相关的改进方法,这些改进方法或是结合已有方法(如结合PCA与LDA),或是利用技术手段优化已有方法(如利用人工免疫系统理论优化Bayes方法)。然而,一般来说,这些方法在速度上优于SVM方法,而在分类准确度上则略显不足。此外,目前已有的文本分类方法主要针对文本数量不多的情景,而互联网已经进入了大数据时代,这些方法在互联网大数据背景下处理海量文本显得愈加吃力。相比而言,哈希方法能够在将对象的较高维度信息映射为较低维度信息的同时,保留关于该对象的一些重要特征属性,因而比较适合进行快速高效的数据处理。哈希方法已经在很多数据处理领域(如基于内容的图片检索、重复文本检测等)得到了成功应用,但将它直接应用到文本分类还存在一些困难,如分词方法和哈希函数的选取、大数据环境下的并行执行效率等。另外,作为一类特殊的哈希方法,局部敏感哈希方法除具备一般哈希方法的优势之外,它还有一个重要特性,即相似对象所对应的哈希值也比较接近。因此,针对现有文本分类方法的不足,同时将局部敏感哈希方法的特性与并行计算框架Spark的优势相结合,本专利技术提出了一种快速准确的文本分类方法,能够很好地解决已有方法的弊端,满足大数据环境的迫切需求。
技术实现思路
专利技术目的:针对现有技术中存在的问题与不足,本专利技术提供一种基于局部敏感哈希的分布式快速文本分类方法,用于解决文本分类存在的准确率和速度有待进一步提高以及无法满足大数据环境需求的问题。技术方案:一种基于局部敏感哈希的分布式快速文本分类方法,与已有方法不同的是,该方法采用局部敏感哈希技术将大量的文本特征映射到固定维度,并据此生成每个类别的哈希值,计算待比较文本哈希值与每个类别哈希值的相关性,从而完成该文本准确快速地归类;为适应大数据环境的需求,本专利技术还基于Spark框架进行设计实现,进一步提高了该方法的性能及可扩展性。具体可分为四个步骤:步骤1首先依次对文本进行分词、去停用词,存储为HDFS文件等操作,然后将所有文本加载到弹性分布式数据集(ResilientDistributedDatasets,RDD);步骤2计算每个词语的n比特哈希值,并根据词频,通过RDD的变换,计算词语的tfidf值,并存储在RDD(tfidf)之中;步骤3根据训练数据集中每个类别下所有文本的词语tfidf值及n比特哈希值,计算每个类别的n比特类别向量及哈希值;步骤4基于n比特哈希值,计算待分类文本与每个类别的匹配度,得到文本所属类别。有益效果:本专利技术与现有技术相比,具有以下优点:1.采用局部敏感哈希方法对文本特征进行压缩映射,同时保留文本特征,从而生成类别及文本的哈希值,具有较高的分类准确性及较快的分类速度。2.可以设定类别或文本哈希位数,从而可选择更高的分类准确度或更快的分类速度,满足不同分类场景的需求。3.基于Spark框架进行了算法设计及实现,进一步提高了分类方法的执行速度、增加了方法的可扩展能力,满足大数据环境的需求。附图说明图1本专利技术实施例的文本分类过程图;图2为本专利技术实施例中词语操作过程图。具体实施方式下面结合具体实施例,进一步阐明本专利技术,应理解这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落于本申请所附权利要求所限定的范围。如图1所示,整个文本分类过程包括文本预处理、tfidf计算、文本或分类特征提取、以及文本分类确定等部分。本专利技术具体实施时包括以下几个阶段:步骤1,对训练文本集进行预处理。首先是收集带有分类标签的文本集作为训练集,采用Lucene分词组件JE-Analysis对文本集进行分词处理,并去除停用词。将处理过的文本存储到HDFS文件系统,然后将所有文本加载到弹性分布式数据集(ResilientDistributedDatasets,RDD),其中RDD中每一行表征一篇文本,然后采用Spark框架所支持的cache()函数将该数据放置在内存中,以便后续处理。步骤2,计算每个词语的n比特哈希值及tfidf值。采用MD5哈希算法对文本中的每个词语特征进行哈希运算,每条词语特征对应一个n比特哈希值,该比特位数可根据实际应用需求进行调整,n比较大时,算法准确度较高、收敛较慢,反之,准确度稍低,收敛较快。n的具体取值范围为16~128。在计算词语的tfidf值时,采用哈希映射的方法,将所有的文本特征分别映射到216维的向量中,从而方便特征的快速哈希和查找;该tfidf值的计算基于Spark并行框架,计算完成之后存储与RDD(tfidf)中。对每条词语w(如图2所示,通过下标来区分不同的词语,如w1,w2,……)进行map操作,转换为元组(w,1),然后通过RDD提供的reduceByKey操作,将所有的元组进行累加操作,获取每个词语的词频,对词语的操作过程如图2所示。再根据词频,计算出tf值与idf值,计算公式如下:其中,f(w,d)表示词语w在文本d中的词频,v表示该文本中出现最频繁的词语。其中,|D|表示文本集中的文本总数,|{w∈d,d∈D}|为包含词语w的文本数,分母可以处理|{w∈d,d∈D}|为0的情况。基于每个词语的tf值与idf值,计算出每个词语的tfidf值,计算公式如下:tfidf(w,D)=tf(w,d)×idfw,D进而将每个词语的tfidf值存储在RDD(tfidf)之中。步骤3,提取文本及分类的特征向量及局部敏感哈希值。根据步骤2所提供的RDD(tfidf)值及每个词语的n比特哈希值,计算每个类别的n比特类别向量及哈希值。首先,对于RDD(tfidf)中的每一行x(文本),遍历x中的每一个元素y(词语),如果其tfidf值大于0,计算其n位哈希值hy。其次,遍历hy,如果其为1,将其所属类别向量的对应位数加上y的tfidf值;否则,将其所属类别向量的对应位数减去y的tfidf值。最终得到该类别的n维特征向量Vc。最后,遍历Vc,如果其大于0,则将该类别的n位哈希值的对应位置于1,本文档来自技高网...
【技术保护点】
一种基于局部敏感哈希的分布式快速文本分类方法,其特征在于:包括以下步骤:步骤1,对文本进行预处理;首先依次对文本进行分词、去停用词,以及存储为HDFS文件等操作,然后将所有文本加载到弹性分布式数据集;步骤2,计算每个词语的n比特哈希值,并根据词频,通过RDD的变换,计算词语的tfidf值,并存储在RDD(tfidf)之中;步骤3,根据训练数据集中每个类别下所有文本的词语tfidf值及n比特哈希值,计算每个类别的n比特类别向量及哈希值;步骤4,基于n比特哈希值,计算待分类文本与每个类别的匹配度,得到文本所属类别。
【技术特征摘要】
1.一种基于局部敏感哈希的分布式快速文本分类方法,其特征在于:包括以下步骤:步骤1,对文本进行预处理:首先依次对文本进行分词、去停用词,以及存储为HDFS文件的操作,然后将所有文本加载到弹性分布式数据集;步骤2,计算每个词语的n比特哈希值,并根据词频,通过RDD的变换,计算词语的tfidf值,并存储在RDD(tfidf)之中;其中,RDD为弹性分布式数据集,采用MD5哈希算法对文本中的每个词语特征进行哈希运算,每条词语特征对应一个n比特哈希值;步骤3,根据训练数据集中每个类别下所有文本的词语tfidf值及n比特哈希值,计算每个类别的n比特类别向量及哈希值:首先,对于RDD(tfidf)中的每一行x,遍历x中的每一个元素y,如果元素y的tfidf值大于0,计算元素y的n位哈希值hy;其次,遍历n位哈希值hy,如果hy的当前位为1,将元素y所属类别向量中与当前位所对应分量的数值加上y的tfidf值;否则,将元素y所属类别向量中与当前位所对应的数值减去y的tfidf值;最终得到该类别的n比特类别向量Vc;最后,遍历n比特类别向量Vc,如果Vc的当前分量大于0,则将该类别的n位哈希值hc的对应位设置为1,否则将hc的对应位设置为0,最终得到该类别的n比特哈希值hc;步骤4,计算待分类文本与每个类别的匹配度,得到文本所属类别:计算待分类文本的特征向量与所有类别的n比特类别向量的相关性或者待分类文本哈希值与类别哈希值之间的相关性,选择与待分类文本的特征向量相关性最高或者与待分类文本哈希值相关性最高的类别作为该待分类文本的类别;在预处理文本阶段,对每个文本进行分词操作,并在RDD中用每一行表征一个文本,即每一行x表示一个文本,每一个元素y表示文本中的一个词语。2.根据权利要求1所述的基于局部敏感哈希的分布式快速文本分类方法,其特征在于:在计算词语的哈希值时,可根据实际应用环境的性能需求:算法执行时间与分类准确度,选择不同的哈希比特位数。3.根据权利要求1所述的基于局部敏感哈希的分布式快速文本分类方法,其特征在于:在计算词语的tfidf值时,采用哈希映射的方法,将所有的文本特征分别映射到...
【专利技术属性】
技术研发人员:杨鹏,顾梁,董永强,
申请(专利权)人:东南大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。