CN105183792B - 一种基于局部敏感哈希的分布式快速文本分类方法 - Google Patents
一种基于局部敏感哈希的分布式快速文本分类方法 Download PDFInfo
- Publication number
- CN105183792B CN105183792B CN201510521022.7A CN201510521022A CN105183792B CN 105183792 B CN105183792 B CN 105183792B CN 201510521022 A CN201510521022 A CN 201510521022A CN 105183792 B CN105183792 B CN 105183792B
- Authority
- CN
- China
- Prior art keywords
- text
- word
- classification
- cryptographic hash
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于局部敏感哈希的分布式快速文本分类方法。本发明针对现有文本分类方法耗时久,精度低,无法满足大数据环境要求等问题,首先采用局部敏感哈希方法压缩数量巨大的文本特征,以提炼有用特征,加快处理速度;其次匹配文本特征与已有类别特征,实现文本类别的快速计算;基于Spark框架对算法进行设计与实现,进一步加快了算法执行速度并提高了算法在大数据环境下的可扩展能力。
Description
技术领域
本发明涉及一种基于局部敏感哈希的分布式快速文本分类方法,用于实现对文本进行快速高效地自动分类,属于文本挖掘技术领域。
背景技术
近年来,随着信息技术的不断发展,互联网中数字文本大量涌现,如何有效管理这些文本显得尤为重要。文本分类是有效管理文本的重要方法,在网页搜索、垃圾邮件过滤、用户反馈及个性化推荐系统等方面应用广泛。文本分类方法主要有两个评价指标:精确度和速度。前者用来表征文本是否归类到合适的分类中,而后者用来说明算法的执行效率。从提高这两项指标出发,目前比较典型的文本分类方法主要有基于支持向量机(SVM)的方法、基于贝叶斯(Bayes)的方法、线性分类以及K-近邻等。其中,基于SVM的文本分类方法通过在高维或无穷维的空间中构建一个或一组超平面,使得总体的函数边界误差最小,从而克服冗余特征、过拟合等问题,取得较高的分类精度。此外,该方法还具有更好的泛化能力。然而,由于其模型复杂,通常需要消耗大量的时间与空间,并且在大规模数据集下常常难以快速收敛。其它方法如基于贝叶斯的方法、线性分类及k近邻等,它们具有较快的收敛速度,但总的来说模型相对简单。
为了获得更好的算法性能,研究人员分别提出了相关的改进方法,这些改进方法或是结合已有方法(如结合PCA与LDA),或是利用技术手段优化已有方法(如利用人工免疫系统理论优化Bayes方法)。然而,一般来说,这些方法在速度上优于SVM方法,而在分类准确度上则略显不足。此外,目前已有的文本分类方法主要针对文本数量不多的情景,而互联网已经进入了大数据时代,这些方法在互联网大数据背景下处理海量文本显得愈加吃力。相比而言,哈希方法能够在将对象的较高维度信息映射为较低维度信息的同时,保留关于该对象的一些重要特征属性,因而比较适合进行快速高效的数据处理。哈希方法已经在很多数据处理领域(如基于内容的图片检索、重复文本检测等)得到了成功应用,但将它直接应用到文本分类还存在一些困难,如分词方法和哈希函数的选取、大数据环境下的并行执行效率等。另外,作为一类特殊的哈希方法,局部敏感哈希方法除具备一般哈希方法的优势之外,它还有一个重要特性,即相似对象所对应的哈希值也比较接近。因此,针对现有文本分类方法的不足,同时将局部敏感哈希方法的特性与并行计算框架Spark的优势相结合,本发明提出了一种快速准确的文本分类方法,能够很好地解决已有方法的弊端,满足大数据环境的迫切需求。
发明内容
发明目的:针对现有技术中存在的问题与不足,本发明提供一种基于局部敏感哈希的分布式快速文本分类方法,用于解决文本分类存在的准确率和速度有待进一步提高以及无法满足大数据环境需求的问题。
技术方案:一种基于局部敏感哈希的分布式快速文本分类方法,与已有方法不同的是,该方法采用局部敏感哈希技术将大量的文本特征映射到固定维度,并据此生成每个类别的哈希值,计算待比较文本哈希值与每个类别哈希值的相关性,从而完成该文本准确快速地归类;为适应大数据环境的需求,本发明还基于Spark框架进行设计实现,进一步提高了该方法的性能及可扩展性。
具体可分为四个步骤:步骤1首先依次对文本进行分词、去停用词,存储为HDFS文件等操作,然后将所有文本加载到弹性分布式数据集(Resilient Distributed Datasets,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文件系统,然后将所有文本加载到弹性分布式数据集(ResilientDistributed Datasets,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,否则置为0,最终得到该类别的n比特哈希值hc。
步骤4,计算文本所属类别。依次计算待分类文本的特征向量或哈希值与所有类别特征向量或哈希值的相关性,选择相关性最高的类别作为该待分类文本的类别。若基于特征向量计算二者之间的相关性,该方法的准确度较高,但速度较慢;反之,准确度较低,但速度较快。
对于特征向量,该相关性可采用任意相关性或相似性度量方法,本专利以皮尔森相关系数(PCC)为例进行阐述,PCC计算公式表述如下:
其中,Vx与Vm分别表示待分类文本x和类别m的特征向量,Vx,i表示Vx的第i个特征,表示Vx所有特征的平均值。
对于哈希值,该相关性采用汉明距离度量,汉明距离是度量01比特流最直观的方法,汉明距离计算公式表述如下:
其中hx[i]与hm[i]分别表示待分类文本x和类别m的第i比特哈希值,表示异或运算。
Claims (4)
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值时,采用哈希映射的方法,将所有的文本特征分别映射到216维的向量中,从而方便特征的快速哈希和查找;该tfidf值的计算基于Spark并行框架,计算完成之后存储于RDD(tfidf)中,具体步骤为:
1)基于RDD中存储的切词后的文本,统计每个词语的词频,然后计算其tf值,公式表述如下:
其中,f(w,d)表示词语w在文本d中的词频,v表示该文本中出现最频繁的词语;
2)计算每个词语的idf值,公式表述如下:
其中,|D|表示文本集中的文本总数,|{w∈d,d∈D}|为包含词语w的文本数,分母可以处理|{w∈d,d∈D}|为0的情况;
3)计算tfidf值,公式表述如下:
tfidf(w,D)=tf(w,d)×idfw,D。
4.根据权利要求1所述的基于局部敏感哈希的分布式快速文本分类方法,其特征在于:依次计算待分类文本的特征向量与所有类别的n比特类别向量的相关性或者待分类文本哈希值与类别哈希值之间的相关性,选择与待分类文本的特征向量相关性最高或者与待分类文本哈希值相关性最高的类别作为该待分类文本的类别;其中待分类文本的特征向量和类别m的n比特类别向量之间相关性的公式表述如下:
其中,Vx与Vm分别表示待分类文本的特征向量和类别m的n比特类别向量,Vx,i表示Vx的第i个特征,表示Vx所有特征的平均值;哈希值之间相关性的公式表述如下:
其中hx[i]与hm[i]分别表示待分类文本x和类别m的第i比特哈希值,表示异或运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510521022.7A CN105183792B (zh) | 2015-08-21 | 2015-08-21 | 一种基于局部敏感哈希的分布式快速文本分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510521022.7A CN105183792B (zh) | 2015-08-21 | 2015-08-21 | 一种基于局部敏感哈希的分布式快速文本分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105183792A CN105183792A (zh) | 2015-12-23 |
CN105183792B true CN105183792B (zh) | 2017-05-24 |
Family
ID=54905875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510521022.7A Active CN105183792B (zh) | 2015-08-21 | 2015-08-21 | 一种基于局部敏感哈希的分布式快速文本分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183792B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740424A (zh) * | 2016-01-29 | 2016-07-06 | 湖南大学 | 一种基于 Spark 平台的高效率文本分类方法 |
CN107528763A (zh) * | 2016-06-22 | 2017-12-29 | 北京易讯通信息技术股份有限公司 | 一种基于Spark与YARN的邮件内容分析方法 |
CN106372202B (zh) * | 2016-08-31 | 2020-04-17 | 北京奇艺世纪科技有限公司 | 文本相似度计算方法及装置 |
CN109243529B (zh) * | 2018-08-28 | 2021-09-07 | 福建师范大学 | 基于局部敏感哈希的水平转移基因识别方法 |
CN113254640A (zh) * | 2021-05-27 | 2021-08-13 | 北京宝兰德软件股份有限公司 | 一种工单数据的处理方法、装置、电子设备及存储介质 |
CN114492450A (zh) * | 2021-12-22 | 2022-05-13 | 马上消费金融股份有限公司 | 文本匹配方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7797265B2 (en) * | 2007-02-26 | 2010-09-14 | Siemens Corporation | Document clustering that applies a locality sensitive hashing function to a feature vector to obtain a limited set of candidate clusters |
US8244767B2 (en) * | 2009-10-09 | 2012-08-14 | Stratify, Inc. | Composite locality sensitive hash based processing of documents |
CN103631928B (zh) * | 2013-12-05 | 2017-02-01 | 中国科学院信息工程研究所 | 一种基于局部敏感哈希的聚类索引方法及系统 |
CN104035949B (zh) * | 2013-12-10 | 2017-05-10 | 南京信息工程大学 | 一种基于局部敏感哈希改进算法的相似性数据检索方法 |
CN103744964A (zh) * | 2014-01-06 | 2014-04-23 | 同济大学 | 一种基于局部敏感Hash函数的网页分类方法 |
CN104778234A (zh) * | 2015-03-31 | 2015-07-15 | 南京邮电大学 | 基于局部敏感哈希技术的多标记文件近邻查询方法 |
-
2015
- 2015-08-21 CN CN201510521022.7A patent/CN105183792B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105183792A (zh) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105183792B (zh) | 一种基于局部敏感哈希的分布式快速文本分类方法 | |
CN106682233B (zh) | 一种基于深度学习与局部特征融合的哈希图像检索方法 | |
CN107301225B (zh) | 短文本分类方法及装置 | |
CN108564129B (zh) | 一种基于生成对抗网络的轨迹数据分类方法 | |
US10579661B2 (en) | System and method for machine learning and classifying data | |
CN105760888B (zh) | 一种基于属性聚类的邻域粗糙集集成学习方法 | |
CN105426426B (zh) | 一种基于改进的K-Medoids的KNN文本分类方法 | |
US20210158164A1 (en) | Finding k extreme values in constant processing time | |
Yao et al. | Text classification model based on fasttext | |
CN104715021B (zh) | 一种基于哈希方法的多标记学习的学习方法 | |
CN108197144B (zh) | 一种基于BTM和Single-pass的热点话题发现方法 | |
US20220198182A1 (en) | Methods and systems of field detection in a document | |
CN102693311A (zh) | 基于随机化视觉词典组和上下文语义信息的目标检索方法 | |
CN108595688A (zh) | 基于在线学习的潜在语义跨媒体哈希检索方法 | |
CN107291895B (zh) | 一种快速的层次化文档查询方法 | |
CN110751027B (zh) | 一种基于深度多示例学习的行人重识别方法 | |
CN109948125A (zh) | 改进的Simhash算法在文本去重中的方法及系统 | |
He et al. | Bidirectional discrete matrix factorization hashing for image search | |
Li et al. | Fuzzy bag of words for social image description | |
CN115392237B (zh) | 情感分析模型训练方法、装置、设备及存储介质 | |
Zeng et al. | Pyramid hybrid pooling quantization for efficient fine-grained image retrieval | |
CN105760875A (zh) | 基于随机森林算法的判别二进制图像特征相似实现方法 | |
Liu et al. | An active learning algorithm for multi-class classification | |
Rusakov et al. | Expolring architectures for cnn-based word spotting | |
Zheng et al. | An Improved k-Nearest Neighbor Classification Algorithm Using Shared Nearest Neighbor Similarity. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |