文本分类方法及装置与流程

文档序号:13661693阅读:203来源:国知局
文本分类方法及装置与流程

本发明实施例涉及计算机技术领域,尤其涉及一种文本分类方法及装置。



背景技术:

文本分类用电脑对文本集(或其他实体或物件)按照一定的分类体系或标准进行自动分类标记。属于一种基于分类体系的自动分类,是朴素贝叶斯分类方法。

文本分类一般包括了文本的表达、分类器的选择与训练、分类结果的评价与反馈等过程,其中文本的表达又可细分为文本预处理、索引和统计、特征抽取等步骤。文本分类系统的总体功能模块为:(1)预处理:将原始语料格式化为同一格式,便于后续的统一处理;(2)索引:将文档分解为基本处理单元,同时降低后续处理的开销;(3)统计:词频统计,项(单词、概念)与分类的相关概率;(4)特征抽取:从文档中抽取出反映文档主题的特征;(5)分类器:分类器的训练;(6)评价:分类器的测试结果分析。

由于近年来数据体量的快速增加,大数据时代的来临,使得传统统计分析工具及数据处理能力已不能满足大规模数据处理的要求,无法实现大数据文本分类。



技术实现要素:

本发明实施例提供一种文本分类方法及装置,以实现对大数据文本进行分类。

本发明实施例的一个方面是提供一种文本分类方法,包括:

对样本集合中各样本文本进行预处理,得到各样本文本的类别信息和分词语料;

通过对所述样本集合中各样本文本的类别信息和分词语料进行汇总,将所述样本集合划分为测试集和训练集;

通过所述测试集和所述训练集对所述样本集合中的各样本文本进行文本分类。

本发明实施例的另一个方面是提供一种文本分类装置,包括:

预处理模块,用于对样本集合中各样本文本进行预处理,得到各样本文本的类别信息和分词语料;

汇总模块,用于对所述样本集合中各样本文本的类别信息和分词语料进行汇总;

划分模块,用于将所述样本集合划分为测试集和训练集;

分类模块,用于通过所述测试集和所述训练集对所述样本集合中的各样本文本进行文本分类。

本发明实施例提供的文本分类方法及装置,通过对样本集合中各样本文本进行预处理,得到各样本文本的类别信息和分词语料;通过对所述样本集合中各样本文本的类别信息和分词语料进行汇总,将所述样本集合划分为测试集和训练集;通过所述测试集和所述训练集对所述样本集合中的各样本文本进行文本分类;结合r语言和hadoop实现了对大数据文本进行分类。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1为本发明实施例提供的系统架构的示意图;

图2为本发明实施例提供的文本分类方法流程图;

图3为本发明另一实施例提供的文本分类方法流程图;

图4为本发明实施例提供的maprecude任务链结构的示意图;

图5为本发明实施例提供的文本分类装置的结构图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

首先对本发明所涉及的名词进行解释:

r语言:r语言是免费开源的统计分析工具,也是一种高效的编程语言,具备丰富的统计模型和数据分析方法,但是数据处理可扩展性差,其基于内存的核心技术引擎可处理或加工的数据量十分有限,并且通常会造成内存溢出等问题,因此无法有效处理gb、tb、甚至pb级别的大数据和实时数据流。

hadoop:是一个由apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。hadoop实现了一个分布式文件系统(hadoopdistributedfilesystem,简称hdfs)。hdfs有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(largedataset)的应用程序。hdfs放宽了(relax)posix的要求,可以以流的形式访问(streamingaccess)文件系统中的数据。hadoop的框架最核心的设计就是:hdfs和mapreduce。hdfs为海量的数据提供了存储,则mapreduce为海量的数据提供了计算。

mapreduce:mapreduce是一种编程模型,用于大规模数据集(大于1tb)的并行运算。概念"map(映射)"和"reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

rhadoop:rhadoop是一款hadoop和r语言进行结合后的产品。hadoop和r语言进行结合后可进行大数据分析。rhadoop包含三个r包,三个r包分别是:rmr包、rhdfs包、rhbase包。rmr包对应hadoop系统架构中的mapreduce,rhdfs包对应hadoop系统架构中的hdfs,rhbase包对应hadoop系统架构中的hbase。

通常情况下,r语言无法有效处理gb、tb、甚至pb级别的大数据和实时数据流。而基于hadoop的大数据分布式处理架构,通过hdfs和mapreduce实现海量数据存储及处理能力,其中组件mahout提供机器学习算法库,但是开发难度大、周期长、模型算法支撑不全。因此,可以将r语言和hadoop进行结合得到rhadoop,利用rhadoop中r语言完成map/reduce模块,并用hadoop的map/reduce并行处理机制进行数据加工处理及建模。

本发明提供的文本分类方法,可以适用于图1所示的系统架构。如图1所示,该系统架构包括:r控制台、rhadoop集合、hadoop平台。其中,rhadoop集合包括:rmr包、rhdfs包、rhbase包,在本实施例中,rhadoop集合包括:rmr包、rhdfs包。rhadoop集合中的rmr包、rhdfs包用于在r环境中提供大数据相关操作,每个包可提供不同的hadoop特性,如图1所示,rhdfs包提供有在r环境中访问hdfs的特性,rmr包提供有在r环境中调用preduce的特性。

具体的,rhdfs包提供了r控制台访问hdfs的接口,可调用后端hadoop的hdfsapi去操作存储在hdfs上的数据,尤其是在执行完maprecude程序执行结果,其提供了hdfs数据操作方法。

rmr包则是一个r环境下提供hadoopmaprecude功能的接口,主要是为了实现r程序逻辑分解为map阶段和reduce阶段,然后通过rmr方法提交任务。而后rmr按照参数为输入目录、map执行单元、recude执行单元、输出目录等来调用hadoopstreaming的maprecudeapi,在hadoop集群上实现rmapreduce任务。

rstudio编辑器为集成可视化的r语言集成开发环境。

hadoop平台是开源的数据分析平台,解决了大数据(大到一台计算机无法进行存储,一台计算机无法在要求的时间内进行处理)的可靠存储和处理。适合处理非结构化数据,包括hdfs,mapreduce基本组件。

mapreduce技术提供了感知数据位置的标准化处理流程:读取数据,对数据进行映射(map),使用某个键值对数据进行重排,然后对数据进行化简(reduce)得到最终的输出。

本发明提供的文本分类方法,旨在解决现有技术的如上技术问题。

下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

图2为本发明实施例提供的文本分类方法流程图。本发明实施例针对现有技术的如上技术问题,提供了文本分类方法,该方法具体步骤如下:

步骤201、对样本集合中各样本文本进行预处理,得到各样本文本的类别信息和分词语料。

在本实施例中,在已有hadoop集群基础上,每个节点安装r及rhadoop,尤其是主节点上安装r的集成开发环境rstudio。

本实施例所述的样本集合包括多种类型的样本文本,可选的,多种类型的样本文本的格式是txt格式的文本。该多种类型的样本文本具体可以包括法律、体育、医学等共25类文本文件,样本集合中所有样本文本的数据量在tb级。可选的,从样本集合中构建训练集和测试集。训练集具体用于训练模型,该模型可以对文本进行分类。测试集具体用于测试该模型,例如测试该模型进行文本分类的正确率、速率等指标。

可选的,样本文本可以存储在不同的服务器上,也就是说,样本集合中的所有样本文本可以跨服务器存储,样本文本具体可以是非结构化hdfs文件,跨服务器弹性存储txt格式的非结构化hdfs文件。跨服务器存储的样本文本构成大数据。大量的样本文本跨服务器存储构成大数据量存储。

此外,还可以对样本文本进行数据重构,例如,多文件自动读取并半结构化处理,解决编码乱码问题。此过程包含两个步骤,一是设置环境变量,引入调用hadoop集群资源的接口;二是并行化数据处理,此步骤通过用户定义并执行maprecude任务,其中按照maprecude(input、output、map、reduce、combine、input.format,output.format,verbose)的结构,利用keyval(key,val)来创建及提取键值对。

对样本文本进行数据重构的过程由1个map过程和一个reduce过程完成。其中map通过文件目录并行读入的方式读取多个txt文件并标记类别,单行格式中key为文件类别,如law,value为文件内容;reduce汇总文件集,得到样本数据集,在进行数据分析之前,重构文本源文件,并创建新的csv格式文件并加载到hdfs文件中。

进一步可以对样本集合中的各样本文本进行数据分析,对样本集合中的各样本文本进行数据分析的过程包括利用r语言实现hadoop的map/reduce并行化数据处理及模型应用。对样本集合中的各样本文本进行数据分析的过程中需要对样本集合中各样本文本进行预处理。

具体的,所述对样本集合中各样本文本进行预处理,包括如下至少一种:加载词典;对样本集合中各样本文本进行分词处理;去除样本集合中各样本文本中的停用词。

其中,词典具体可以是自定义词典,该自定义词典中可以包括预先自定义的多个分词,当对样本集合中的各样本文本进行分词处理时,具体可以采用该自定义词典对样本集合中的各样本文本进行分词处理,例如从样本文本中获取与自定义词典中各分词匹配的分词,从而将样本文本分解成多个与自定义词典中的分词匹配的分词,以提高对样本文本进行分词的准确率。

在对样本集合中各样本文本进行分词处理后,可以通过去停用词,去掉一些语气词、感叹词等无意义词汇,通过对各样本文本进行分词处理,可以得到确定出该样本文本的关键词,根据该关键词可以确定出该样本文本的特征信息。通过对样本集合中各样本文本进行预处理,可得到各样本文本的类别信息和分词语料;可选的,key表示文本类别值,value表示单篇样本文本的分词语料。

步骤202、通过对所述样本集合中各样本文本的类别信息和分词语料进行汇总,将所述样本集合划分为测试集和训练集。

在本实施例中,reduce过程主要是对所述样本集合中各样本文本的类别信息和分词语料进行汇总,并进行文档-词条矩阵转换,得到key为文本类别值,value为词频统计矩阵。在保证训练集比例大于60%的前提下随机划分训练集和测试集。

步骤203、通过所述测试集和所述训练集对所述样本集合中的各样本文本进行文本分类。

在本实施例中,通过k最近邻分类算法进行文本分类,k最近邻分类算法属于机器学习分类算法中的一种,其主要是利用训练集和测试集数据特征的欧氏距离及选定最近邻数量来判别相似度,最终保存分类类别结果到value,和真实类别key进行正确性对比,完成整个分类过程。

k最近邻(k-nearestneighbor,简称knn)分类算法是数据挖掘分类技术中最简单的方法之一。所谓k最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。

knn算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。knn方法在类别决策时,只与极少量的相邻样本有关。由于knn方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,knn方法较其他方法更为适合。knn算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成反比。

本实施例通过对样本集合中各样本文本进行预处理,得到各样本文本的类别信息和分词语料;通过对所述样本集合中各样本文本的类别信息和分词语料进行汇总,将所述样本集合划分为测试集和训练集;通过所述测试集和所述训练集对所述样本集合中的各样本文本进行文本分类;结合r语言和hadoop实现了对大数据文本进行分类。

图3为本发明另一实施例提供的文本分类方法流程图。图4为本发明实施例提供的maprecude任务链结构的示意图。本发明实施例针对现有技术的如上技术问题,提供了文本分类方法,该方法具体步骤如下:

步骤301、对样本集合中各样本文本进行预处理,得到各样本文本的类别信息和分词语料。

对样本集合中的各样本文本进行数据分析的过程包括利用r语言实现hadoop的map/reduce并行化数据处理及模型应用。对样本集合中的各样本文本进行数据分析的过程中需要对样本集合中各样本文本进行预处理。

具体的,所述对样本集合中各样本文本进行预处理,包括如下至少一种:加载词典;对样本集合中各样本文本进行分词处理;去除样本集合中各样本文本中的停用词。

其中,词典具体可以是自定义词典,该自定义词典中可以包括预先自定义的多个分词,当对样本集合中的各样本文本进行分词处理时,具体可以采用该自定义词典对样本集合中的各样本文本进行分词处理,例如从样本文本中获取与自定义词典中各分词匹配的分词,从而将样本文本分解成多个与自定义词典中的分词匹配的分词,以提高对样本文本进行分词的准确率。在对样本集合中各样本文本进行分词处理后,可以通过去停用词,去掉一些语气词、感叹词等无意义词汇,通过对各样本文本进行分词处理,可以得到确定出该样本文本的关键词,根据该关键词可以确定出该样本文本的特征信息。通过对样本集合中各样本文本进行预处理,可得到各样本文本的类别信息和分词语料;可选的,key表示文本类别值,value表示单篇样本文本的分词语料。

步骤302、汇总所述样本集合中各样本文本的类别信息和分词语料,并进行文档-词条矩阵转换,得到文本类别值和词频统计矩阵。

在本实施例中,reduce过程主要是对所述样本集合中各样本文本的类别信息和分词语料进行汇总,并进行文档-词条矩阵转换,得到key为文本类别值,value为词频统计矩阵。

步骤303、在所述训练集占所述样本集合比例为预设比例的前提下,随机划分所述样本集合得到所述测试集和所述训练集。

在保证训练集比例大于60%的前提下随机划分训练集和测试集。

步骤304、采用机器学习分类算法对所述样本集合中的各样本文本进行文本分类。

在本实施例中,采用机器学习分类算法对所述样本集合中的各样本文本进行文本分类。可选的,所述机器学习分类算法包括k最近邻分类算法。例如,通过k最近邻分类算法进行文本分类,k最近邻分类算法属于机器学习分类算法中的一种,其主要是利用训练集和测试集数据特征的欧氏距离及选定最近邻数量来判别相似度,最终保存分类类别结果到value,和真实类别key进行正确性对比,完成整个分类过程。

在本实施例中,按照mapper和recuder逻辑正确编写完成maprecude,并执行任务,在整个任务链中,仅需要在原有的一个maprecude函数内部再调用maprecude函数并传递所需参数即可。因此,此过程由1个map过程和1个recude过程完成。整个maprecude任务链结构如图4所示。

如图4所示,输入具体可以是文本,该文本可以是待分类的文本,具体的,输入文本的方式具体是读入文本。进一步汇总文本数据,例如对所述样本集合中各样本文本的类别信息和分词语料进行汇总。汇总文本数据之后进行分词去重,产出重复出现的分词。进一步进行语料矩阵汇总、文档-词条矩阵转换、knn文本分类,最后得到文本分类结果,并输出文本分类结果。

本实施例利用r语言强大的数据挖掘算法能力,利用hadoop的分布式存储及处理数据能力,以r+hadoop实现大数据文本分类,并完成模型归类存储。对比繁重的代码开发,更易于快速部署及移植。

图5为本发明实施例提供的文本分类装置的结构图。本发明实施例提供的文本分类装置可以执行文本分类方法实施例提供的处理流程,如图5所示,文本分类装置50包括:预处理模块51、汇总模块52、划分模块53、分类模块54;其中,预处理模块51用于对样本集合中各样本文本进行预处理,得到各样本文本的类别信息和分词语料;汇总模块52用于对所述样本集合中各样本文本的类别信息和分词语料进行汇总;划分模块53用于将所述样本集合划分为测试集和训练集;分类模块54用于通过所述测试集和所述训练集对所述样本集合中的各样本文本进行文本分类。

本发明实施例提供的文本分类装置可以具体用于执行上述图2所提供的方法实施例,具体功能此处不再赘述。

本发明实施例通过对样本集合中各样本文本进行预处理,得到各样本文本的类别信息和分词语料;通过对所述样本集合中各样本文本的类别信息和分词语料进行汇总,将所述样本集合划分为测试集和训练集;通过所述测试集和所述训练集对所述样本集合中的各样本文本进行文本分类;结合r语言和hadoop实现了对大数据文本进行分类。

在上述实施例的基础上,预处理模块51具体用于如下至少一种:加载词典;对样本集合中各样本文本进行分词处理;去除样本集合中各样本文本中的停用词。

可选的,汇总模块52具体用于:汇总所述样本集合中各样本文本的类别信息和分词语料,并进行文档-词条矩阵转换,得到文本类别值和词频统计矩阵;划分模块53具体用于:在所述训练集占所述样本集合比例为预设比例的前提下,随机划分所述样本集合得到所述测试集和所述训练集。

另外,分类模块54通过所述测试集和所述训练集对所述样本集合中的各样本文本进行文本分类时,具体用于:采用机器学习分类算法对所述样本集合中的各样本文本进行文本分类。可选的,所述机器学习分类算法包括k最近邻分类算法。

本发明实施例提供的文本分类装置可以具体用于执行上述图3所提供的方法实施例,具体功能此处不再赘述。

本发明实施例利用r语言强大的数据挖掘算法能力,利用hadoop的分布式存储及处理数据能力,以r+hadoop实现大数据文本分类,并完成模型归类存储。对比繁重的代码开发,更易于快速部署及移植。

综上所述,本发明实施例通过对样本集合中各样本文本进行预处理,得到各样本文本的类别信息和分词语料;通过对所述样本集合中各样本文本的类别信息和分词语料进行汇总,将所述样本集合划分为测试集和训练集;通过所述测试集和所述训练集对所述样本集合中的各样本文本进行文本分类;结合r语言和hadoop实现了对大数据文本进行分类;利用r语言强大的数据挖掘算法能力,利用hadoop的分布式存储及处理数据能力,以r+hadoop实现大数据文本分类,并完成模型归类存储。对比繁重的代码开发,更易于快速部署及移植。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1