发明内容
本发明所要解决的技术问题是提供一种基于信息概念格矫正的SVM文本自动分类方法,其基于信息概念格矫正可以对文本进行全方面的挖掘和分析,如对新闻全方面的挖掘和分析可以提高广告投放和新闻搜索的精度。
为解决上述技术问题,本发明采用的一技术方案是:一种基于信息概念格矫正的SVM文本自动分类方法,其包括以下具体步骤:
第一步:信息概念格的建立,其用可扩展标记语言存储数据,并由多个Category节点和多个指针节点两部分组成,其中指针的类型至少包括:局部与整体关系、类属关系、制造关系、人物关系、地理关系、白名单、黑名单;
第二步:信息概念格中Category节点和指针节点的计算;
第三步:信息概念格结合SVM预测文本类别,根据Category节点与指针节点的关系及指针节点相对于Category节点的权重值预测文本类别,如信息概念格无法预测类别时则用SVM模型预测类别。
在上述技术方案的基础上,进一步包括附属技术方案:
所述第二步中对于某个类别的所有特征词先采用开方检验方法,其计算公式是:
其中x2(c,t)为词c和类别t的开方值,而A表示包含词c且属于类别t的文档数,B表示包含词c但不属于类别t的文档数,C表示不包含词c但属于类别t的文档数,D表示不包含词c且不属于类别t的文档数;
然后取出开方值最大的和最小的词,把它们相减得到数C,它们的权重设为1和10,最小的词的开方值记为min,则对于开方值为i的某个词,其权重W为:
(ceil表示向上取整)
由此得到该类中所有特征词的权重,权重值分布在1-10之间。
所述C ategory节点指的是类别对象,指针节点指的是类别属性,而信息概念格描述的是Category节点之间、Category节点和指针节点之间、指针节点之间的联系和统一。
本发明采用的另一技术方案是:一种基于信息概念格矫正的SVM文本自动分类系统,其包括:数据存储模块、权重计算模块、SVM训练建模模块、和类别预测模块,其中数据存储模块通过利用分词工具建立由多个Category节点和多个指针节点两部分组成的信息概念格,指针节点的类型至少包括:局部与整体关系、类属关系、制造关系、人物关系、地理关系、白名单、黑名单;权重计算模块根据节点来计算指针的权重。
在上述技术方案的基础上,进一步包括附属技术方案:
所述数据存储模块的建立包括以下步骤:
1)添加大类类别,生成信息概念格最基本的框架;
2)添加类别类属,按顺序步骤如下:
①采集各个大类样本;
②利用分词工具添加类属关系、制造关系(上下游关系)、黑名单、白名单四大关系;
③人工采集分析信息添加节点的人物关系和地理关系;
④添加特征词属性,方法同SVM训练建模模块中文本预处理步骤中的特征选择;
3)添加类别的id,给每个节点(Category)添加id属性,按照节点层次唯一标识一个节点。
所述SVM训练建模模块包括如下步骤:1)依次进行切词、去停止词、特征选择、文本向量化的文本预处理;2)支持向量机。
所述类别预测模块包括如下步骤:文本分词处理、分析分词结果、类别匹配计算。
本发明的优点是,与SVM预测类别相结合,实现树状类别的分类,并且在很大程度上减少了计算量。另外,基于信息概念格的矫正大大提高了方法的精度。
实施例:本发明提供一种基于信息概念格矫正的SVM文本自动分类方法的实施例,其包括以下步骤:
1、信息概念格的建立
本发明采用统一的数据结构,即信息概念格,其用可扩展标记语言(Extensible Markup Language,XML)存储数据,由多个Category节点和多个指针节点两部分组成,如图1所示,Category节点存储文本类别信息,指针节点存储类别的属性。不同类型的指针节点存储类别的不同属性。
而指针节点的类型至少包括以下几种:
1)局部与整体关系
如机械类别的产品数控机床,它是一个整体,它包含数控装置和驱动装置两个部分,可参考图2所示。
2)类属关系
类属关系描述的是类别的子类,如按品牌、按型号、按颜色等划分的子类别。如图3所示,乒乓球按星级分为一星乒乓球、二星乒乓球。此外,每个子类也有其各种属性。
3)制造关系(或:上下游关系)
制造关系即定义的上下游关系,主要考虑的是原材料,其中有特殊的情况如农业类别中动植物的生长,把动植物的幼体定义为该动植物的上游。如农业类别的产品玉米,它是由玉米种子生产而来,它又能够加工成玉米面,那么就把玉米种子定义为玉米的上游,玉米面定义为玉米的下游;上游和下游是相互对应的关系,即玉米也是玉米种子的下游,玉米也是玉米面的上游,如此玉米种子和玉米以及玉米和玉米面是上下游关系。如图4所示。
4)人物关系
人物关系描述的是与类别有关的人物,如与兵乓球有关的体育明星马琳、王皓。存储方式如图5所示。
5)地理关系
地理关系描述的是与类别有关的地区、商家地址、旅游地点及地方特产等属性。如图6所示与乒乓球类别相关的苏州和北京的乒乓球馆。
6)特征词
特征词是该类别文本描述中常用到的词汇,如乒乓球类文本中常常会提到乒乓球拍、乒乓球挡板等词语。如图7所示。
7)黑名单
当一个词和其他词组成一个新词时,会和该词原来所属类别毫无关系,这些词称为某类别的黑名单,即褒贬分析的贬义。如:金属类别的黄金,它的黑名单可设置为“黄金周、黄金组合”。如图8所示。
8)白名单
类别中存在某些词,出现这些词的文本(哪怕只有一次),都很有可能直接指向某个类别,这类词就称为是某类别的白名单,即褒贬分析的褒义。如:数码类的手机,它的白名单可设置为“iphone5、诺基亚”。如图9所示。
综上所述,由此形成庞大的信息概念格,见图11。
2、信息概念格中节点权重的计算
信息概念格中节点的权重描述的是指针节点相对于Category节点的权重。不同类别的指针节点权重的计算方法不同,在后述的权重计算模块中将进行详细介绍。
3、信息概念格结合SVM预测文本类别
根据Category节点与指针节点的关系及指针节点相对于Category节点的权重值预测文本类别,如信息概念格无法预测类别时用SVM模型预测类别。
为解决上述三个步骤,本发明在硬件上包含四大模块:数据存储模块、权重计算模块、SVM训练建模模块、类别预测模块。
1、数据存储模块
数据存储模块完成的是信息概念格的形成和完善,按顺序步骤如下:
1)添加大类类别,生成信息概念格最基本的框架。人工定义主要类别,如体育、财经、娱乐等大类别。
2)添加类别类属,按顺序步骤如下:
①采集各个大类样本;
②利用分词工具添加类属关系、制造关系(上下游关系)、黑名单、白名单五大关系。其中第一列加载步骤①中采集的样本,第二列上面部分显示信息概念格中不存在的分词词汇,第二列下面部分显示的信息概念格中已经存在的分词词汇,第三列部分用于添加分词词汇到信息概念格中,第四列部分显示目前信息概念格中的树状结构信息。操作方法按顺序步骤如下:
a.选中第二列中一个信息概念格中不存在的分词词汇;
b.选中第四列中的一个节点;
c.词点击“添加子类”,则将第二列选中的词汇添加为信息概念格中第四列中选中节点的类属指针。
其他四大指针类型完善的操作如同类属指针的完善。
③人工采集分析信息添加节点的人物关系和地理关系;
④添加特征词属性,方法同SVM训练建模模块中文本预处理步骤中的特征选择。
4)添加类别的id,给每个Category节点添加id属性,按照Category节点层次唯一标识一个节点。如图10所示:
2、权重计算模块
权重计算模块主要是赋予信息概念格中节点相应的权重。各种类型节点的权重计算法方法如下:
1)类属关系和节点特征词的权重计算
对于某个类别的所有特征词,取出开方值(开方值的计算在SVM训练建模模块中说明)最大的和最小的词,把它们相减得到数C,它们的权重设为1和10,最小的词的开方值记为min,则对于开方值为i的某个词,其权重W为:
(ceil表示向上取整)
通过上面的公式可以得到该类中所有特征词的权重,权重值分布在1-10之间。
2)上下游关系指针的权重
依据不同的样本不同的类别划分,上下游关系指针的权重取值范围[1-10]。经测试,本发明中上下游关系指针的权重值统一取5。
3)地理关系
依据不同的样本不同的类别划分,地理关系的权重取值范围[1-10]。经测试,本发明中City类的指针节点不加权重,其子节点权重值取7。
4)白名单
依据不同的样本不同的类别划分,白名单的权重取值范围[1-10]。经测试,本发明中分词结果出现白名单时,在其对应的类别上加上一个权重,统一取8。
5)黑名单
如“黄金”与“组合”这个词组成新词“黄金组合”,就与原来的类别金属类毫无关系了。把这个关系存入表1,结构如下:
Word a |
Word A |
Word b |
Word B |
Word c |
Word C |
…… |
……. |
表1
其中Word A是Word a与另一个词的组合。当分词结果有这个表中的某个词时,再判断有没有这个词对应的复合词,有的话则该词不对其所属类别加权重。
6)人物对应关系
依据不同的样本不同的类别划分,人物对应关系的权重取值范围[1-10]。经测试,在本发明中分词结果有人物时,在其对应类别的权重上加5。
3、SVM训练建模模块
参考图12,SVM训练建模模块设置有如下步骤:
1)文本预处理
①切词。分词的方法主要有基于理解的方法,基于字符串匹配的方法和基于统计的方法,本发明采用的是基于最大匹配的分词方法。
②去停止词,去除如“你、我、他、大家”等停止词。
③特征选择。文本的特征选中有两种方法,特征选择和特征抽取,特征选择有开方检验,信息增益等,特征抽取有主成分分析等。本发明中采用开方检验方法,开方检验的具体计算公式是:
本公式计算的是词c和类别t的开方值,而A表示包含词c且属于类别t的文档数,B表示包含词c但不属于类别t的文档数,C表示不包含词c但属于类别t的文档数,D表示不包含词c且不属于类别t的文档数。
有了每个样本中每个词的信息,包括词和词频,本发明此处仅需要用词即可,词频的信息在下面的文本向量化中使用。遍历所有的样本,及其中的词,构造表2,Word表示词,与之对应的info表示该词的信息,这个info应该是一个二维数组,其行为类别,其列包括文档数以及开方值。当然,计算开方值的时候还需要其他信息,即每个类别的样本总数,然后就可以根据上面的开方检验的公式进行计算。
Word a |
Info A |
Word b |
Info B |
表2
在构造完全部样本的词典后,下面的工作就是在所有的词中选出开方值大于某个阈值的词(K的数目可以根据分词效果做调整,一般在10000-20000),当然,也可以选出每个类别(假设有n类)的前k的词。然后将选择出来的n*k个词组成一个新的词典。
④文本向量化。在构造完所需要用的词典以后,就可以进行文本向量化的工作了。这里使用TF/IDF方法,这种方法已经得到了理论的证实,是目前比较流行的方法。其具体的计算公式如下:
其中,p表示该词的词频,D表示所有的文档数,Dw表示包含该词的文档数。
2)支持向量机
①统计类别总数,同时类别标号,统计每个类别样本总数;
②将属于相同的类的样本分子,连续存放;
③训练I(I-1)/2个模型;
④输出模型。
4、类别预测模块
类别预测模块完成文本分类,按顺序步骤如下:
①文本分词处理
待预测文本进行分词,对每个词的词频进行统计。
②分析分词结果
分析分词结果,如该词是信息概念格中的Category节点,则在该类别加上该词对应的权重,然后把词频加在该类别上。如该词是信息概念格中的指针节点,则在其对应的类别上加上该词权重,然后把词频加在此类别上。对每个词都做上述处理,则会得到该文本对各个类别的权重值,取权重最大的两个类别,就可以作为这个文本的预测类别。
③类别匹配计算
对应得到的两个类,第一个类默认匹配度100%,第二个类别的匹配度等于其权重除以第一个类的权重,如得到的值小于50%,则舍弃第二个类,把第一个类作为唯一预测类别。
当分词结果中没有词出现在信息概念格中,则无法用信息概念格预测类别。则用SVM训练模型模块中得到的模型进行计算,可以得到一个SVM的预测类别。
综上所述,根据上述发明方法结合图12,针对如下文本,举例说明:
“黄金周,苏州高新区滨河路288号鸿挤乒乓球馆将组织一场激烈的乒乓球比赛,冠军将获得iphone5一部。欢迎大家踊跃报名。”
文本分词处理如表3:
表3
而相应的匹配度计算如表4:
表4
文本预测类别结果:乒乓球(100%)、手机(50%)。
由此,通过Category节点与指针节点结合形成的网状结构的形象描述数据,对上述核心数据进行统一定义后,系统中所有返回的结果值就可以依照上述数据结构分析挖掘出与文本相关的信息。如对可以分析出新闻发生的时间、人物、地点、事件以及与这四个新闻要素有关的所有信息,也可以根据用户的不同需求,关联搜取不同的信息。本发明减少了大量的计算,同时也在很大程度上提高了文本自动分类的精度,使得广告投放更加精准,新闻搜索更加准确。
图13、14、15为采用本发明方法而对不同文本进行自动分类的不同实施例,相较传统SVM在准确率上大有提高。
根据以上实施例可知,本发明实现了一种基于信息概念格矫正的SVM文本自动分类方法,依据准确庞大的信息概念格数据结构,即减少了大量的计算,同时也在很大程度上提高了文本自动分类的精度。本方法使得广告投放更加精准,新闻搜索更加准确。
当然上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明主要技术方案的精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。