技术领域
[0001] 本发明涉及计算机技术领域,尤其涉及一种文本分类的方法及文本分类系统。
相关背景技术
[0002] 随着计算机与通讯技术的快速发展,互联网迅速普及应用,人们可用的电子信息越来越多,通过计算机和网络来获取资料和信息已经成为人们获取信息的主要方式之一。现在,人们面对的是互联网的海量信息,而且增长速度非常之快,因此,迫切需要解决的问题是:如何使用户尽快找到想要的信息,如何对这些海量电子信息进行有效的组织和分类。
文本自动分类(Text Classification,TC)技术就是为解决这一问题而提出的。TC技术以计算机作为工具,通过机器自动学习,使计算机具有对文本的自动分类功能;当任意输入一篇文本时,计算机能够根据已经掌握的知识,自动将文本分类到某一类别中。
[0003] 从二十世纪八十年代末九十年代初开始,国内外学者开始对TC技术进行深入研究,许多机器学习技术和统计分类方法被应用到这一领域,支持向量机(Support Vector Machine,SVM)就是应用于TC中的一种分类算法,SVM能较好地解决小样本、非线性、维数灾难和局部极小等问题,具有很强的泛化能力,因此,基于SVM训练得到的分类器可以实现文本分类。
[0004] 现有的基于SVM的文本分类方法为:接收未分类文本;对未分类文本进行特征提取后,得到归一化的LIBSVM格式数据,最后训练得到分类器,通过分类器判断待分类文本的文本类别。
[0005] 但是,文本分类系统训练分类器一般是很长时间训练一次的,通常都是半年至一年训练一次,如果两次训练的间隔期间,出现了一些新词,例如,国家新颁发关于房地产的新政策中出现的从未记载的房地产新词,将会导致所有文本特征权重出现错误,从而使得文本分类出现偏差;或者,在训练分类器时,某些文本特征权重计算错误,将会导致包含这些文本特征的文本的分类出现错误。
具体实施方式
[0065] 本发明实施例提供了一种文本分类的方法及文本分类系统,用于根据训练语料进行分类器训练生成分类模型,在进行预测文本分类之前,对分类模型的准确率进行验证,从而提高了预测文本的文本分类的准确率。
[0066] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0067] 请参阅图1,本发明实施例提供一种文本分类的方法,包括:
[0068] 101、建立类别词库及训练语料库;
[0069] 本实施例中,在进行分类器训练之前,需要建立类别词库和训练语料库,其中训练语料库中包含训练语料,训练语料即为已知文本类别的文本。
[0070] 102、根据训练语料库中的训练语料进行分类器训练,生成分类模型;
[0071] 本实施例中,建立训练语料库之后,根据训练语料库中的训练语料进行分类器训练,生成分类模型。
[0072] 103、验证分类模型的准确率是否达到预置条件,若是,则执行步骤104;
[0073] 本实施例中,在生成分类模型后,对分类模型的准确率进行验证,达到预置条件后,执行步骤104,例如分类模型的准确率达到96%以上,才能使用该分类模型进行文本分类。
[0074] 104、获取预测文本,根据分类模型得到预测文本的文本类别。
[0075] 本实施例中,在分类模型的准确率达到预置条件后,获取预测文本,预测文本的文本分类是未知的,根据分类模型对预测文本进行文本分类,得到预测文本的文本类别。
[0076] 本发明实施例中,文本分类系统建立类别词库及训练语料库,根据训练语料库中的训练语料进行分类器训练,生成分类模型,验证分类模型的准确率是否达到预置条件,若是,则获取预测文本,根据分类模型得到预测文本的文本类别,由于在进行预测文本的文本分类操作之前,对分类模型进行校验,只有当分类模型的准确率达到预置条件时,才能进行预测文本的文本分类,与现有技术相比,降低了预测文本分类错误的概率,从而提高了对预测文本的文本分类的准确率。
[0077] 可选的,本发明的一些实施例中,建立类别词库及训练语料库,包括:
[0078] 获取类别词,根据类别词建立类别词库,类别词用于表示文本类别;
[0079] 获取已知文本类别的训练语料,生成训练语料列表,根据训练语料列表建立训练语料库。
[0080] 本实施例中,用户可以根据需求在文本分类系统建立类别代码,类别代码即为类别词,类别词包括汽车类、时尚/运动、科技、家电、汽车、奢侈品、医药、通信、金融、媒体、零售、工业品、烟草及公共事务等,如果用户需要将大量的文本分类为通信类、金融类及工业品类,那么输入类别词“通信”、“金融”及“工业品”,根据获取到类别词(通信、金融及工业品)建立类别词库,由于进行分类器训练是需要通过大量语料来实现的,因此需要建立训练语料库,获取大量的已知文本类别的训练语料,将训练语料生成训练语料列表,根据训练语料列表建立训练语料库。
[0081] 可选的,本发明的一些实施例中,根据类别词库及训练语料库中的训练语料进行分类器训练,生成分类模型,包括:
[0082] 201、对训练语料列表中每一条训练语料进行特征提取,得到文本特征;
[0083] 本实施例中,以训练语料列表中的一条训练语料的特征提取进行举例说明,假设训练语料列表中的一条训练语料的语料内容为:【随着经济的发展,越来越多的企业更加重视闲置资金的利用,通过投资股票等方式,提高闲置资金的使用效率。但企业往往忽略了股票转让收入应当缴纳营业税的问题。2014年第一季度,稽查局在检查中就已发现3户企业股票转让收入未申报缴纳营业税,共计查处税款317万元。由此可见纳税人股票转让收入未申报缴纳营业税的问题较为普遍。《中华人民共和国营业税暂行条例》第五条第四款规定:外汇、有价证券、期货等金融商品买卖业务,以卖出价减去买入价后的余额为营业额。自2013年12月1日起,纳税人从事金融商品转让业务,不再按股票、债券、外汇、其他四大类来划分,统一归为“金融商品”,不同品种金融商品买卖出现的正负差,在同一个纳税期内可以相抵,按盈亏相抵后的余额为营业额计算缴纳营业税。若相抵后仍出现负差的,可结转下一个纳税期相抵,但在年末时仍出现负差的,不得转入下一个会计年度。因此纳税人买卖股票等有价证券取得收益时,应按卖出价减去买入价后的余额正确计算营业额。按“金融保险业”税目申报缴纳营业税。】
[0084] 对此训练语料进行特征提取,特征提取即自然语言分词,自然语言分词具有数字发现、词性标注、条件随机场(Conditional Random Fields,CRF)分词、用户自定义词典的识别、进行新词发现及修复人名左右连接等功能,特征提取结果如下:
[0085] 【随着/p,经济/n,的/uj,发展/vn,,/w,越来越/d,多/m,的/uj,企业/n,更加/d,重视/v,闲置/v,资金/n,的/uj,利用/v,,/w,通过/p,投资/vn,股票/n,等/u,方式/n,,/w,提高/v,闲置/v,资金/n,的/uj,使用/v,效率/n,。/w,但/c,企业/n,往往/d,忽略/v,了/ul,股票/n,转让/v,收入/n,应当/v,缴纳/v,营业税/n,的/uj,问题/n,。/w,/nr,2014年/m,第一季度/nz,,/w,稽查局/nis,在/p,检查/vn,中/f,就/d,已/d,发现/v,3户/m,企业/n,股票/n,转让/v,收入/n,未/d,申报/v,缴纳/v,营业税/n,,/w,共计/v,查处/v,税款/n,317万元/m,。/w,由此可见/c,纳税人/n,股票/n,转让/v,收入/n,未/d,申报/v,缴纳/v,营业税/n,的/uj,问题/n,较为/d,普遍/ad,。/w《, /w,中华人民共和国营业税/nw,暂行条例/nz,》/w,第五条/m,第四款/m,规定/n,:/w,外汇/n,、/w,有价证券/l,、/w,期货/n,等/u,金融/n,商品/n,买卖/v,业务/n,,以/nw,卖出价/n,减去/v,买入价/n,后/f,的/uj,余额/n,为/p,营业额/n,。/w,自/p,2013年/m,12月/m,1日/m,起/v,,/w,纳税人/n,从事/v,金融/n,商品/n,转让/v,业务/n,,/w,不再/d,按/p,股票/n,、/w,债券/n,、/w,外汇/n,、/w,其他/r,四大/n,类/q,来/v,划分/v,,/w,统一/vn,归/v,为/p“,/w,金融/n,商品/n,”,/nw,不同/a,品种/n,金融/n,商品/n,买卖/v,出现/v,的/uj,正负/n,差,/nw,在/p,同一个/b,纳税/v,期内/f,可以/v,相抵/v,,/w,按/p,盈亏/n,相抵/v,后/f,的/uj,余额/n,为/p,营业额/n,计算/v,缴纳/v,营业税/n,。/w,若/c,相抵/v,后/f,仍/d,出现/v,负差/nw,的/uj,,/w,可/v,结转/v,下/f,一个/m,纳税期/nw,相抵/v,,/w,但/c,在/p,年末/t,时/ng,仍/d,出现/v,负差/nw,的/uj,,/w,不得/v,转入/v,下/f,一个/m,会计年度/nz,。/w,/nr,因此/c,纳税人/n,买卖/v,股票/n,等/u,有价证券/n,取得/v,收益/n,时/ng,,/w,应/v,按/p,卖出价/n,减去/v,买入价/n,后/f,的/uj,余额/n,正确/a,计算/v,营业额/n,。/w,按/p,“/w,金融/n,保险业/n,”/w,税目/n,申报/v,缴纳/v,营业税/n,。/w】
[0086] 其中,字母代表词性标记,例如“营业税/n”,表示“营业税”这个词的词性为名词。
[0087] 需要说明的是,在进行特征提取时,还需要导入标准停止词,根据标准停止词建立停止词库,标准停止词一般是使用频率很多的字或词,例如“在”、“里面”、“也”、“的”、“它”及“为”等等,这些词都是标准停止词,没有具体的含义。
[0088] 需要说明的是,在进行特征提取时,用户还可以自定义词库,例如用户自定义新词“创新工场”。根据原特征提取结果“创新工场官网”为“创新,工场,官网”,自定义新词后特征提取结果是“创新工场,官网”。
[0089] 202、计算得到文本特征的权重;
[0090] 本实施例中,根据特征权重公式计算得到文本特征的权重,特征权重公式如下:
[0091] 权重=(总文本长度-偏移量)*词性分数/总文本长度
[0092] 其中,总文本长度为训练语料的内容总长度,偏移量为预设值,词性分数按照表1得到,以“随着/p”为例进行说明,总文本长度为449,词性分数为0,偏移量为0,则得到的权重值为1。
[0093] 表1
[0094]词性 分数
名词(/n) 3.0
介词(/p) 0.0
数字(/m) 0.0
英文(/en) 0.0
形容词(/a) 0.2
[0095] 203、对文本特征及文本特征的权重进行降维,并转化为LIBSVM格式数据;
[0096] 本实施例中,对文本特征进行降维,例如提取出文本特征前20个权重,如下:
[0097] 【股票/54.62616401094127,营业税/44.67735081330457,
[0098] 金融/41.990145599097545,缴纳/38.416783057092005,
[0099] 商品/32.73877497614054,转让/29.231052892116672,
[0100] 相抵/28.197196705616545,企业/27.36436454772649,
[0101] 收入/26.379739736413995,纳税人/24.82075045183587,
[0102] 余额/23.15919608274603,营业额/23.097657032039002,
[0103] 第一季度/22.33931550407563,申报/19.79916649226036,
[0104] 买卖/19.434034743853566,出现/19.056595183702726,
[0105] 中华人民共和国营业税/18.374969046575433,资金/17.98991582335542,暂行条例/16.985264680784777,问题/16.964264978238237】
[0106] 降维之后,将提取出的文本特征及权重转化成LIBSVM格式数据,LIBSVM格式如下(index代表文本特征中特征词顺序):
[0107] 类别空格index1:value1空格index2:value2……
[0108] 金融1 :54 .62616401094127 2:44 .67735081330457 3:41.990145599097545......
[0109] index1为股票,index2营业税,依此类推。
[0110] 204、对LIBSVM格式数据进行归一化处理,得到训练语料数据;
[0111] 本实施例中,LIBSVM格式数据进行缩放即归一化处理,是为了避免一些权重值范围过大而另一些权重值范围过小,会对训练精度产生误差,归一化就是将权重值缩放到0至1范围,权重值最大为1,最小为0,例如,归一化LIBSVM格式数据,得到训练语料数据,如下:
[0112] 金融1:0.33092215627381105 2:0.48276373123433286......
[0113] 205、根据训练语料数据进行分类器训练,得到分类模型。
[0114] 本实施例中,根据训练语料数据进行分类器训练,得到分类模型,例如分类模型可以从一个未知分类的 文本的数据“1:0 .33092215627381105 2:0.48276373123433286......”,得到该文本的类型为“金融”。
[0115] 在上述实施例分类器训练得到分类模型之后,还需要对分类模型的准确率进行验证。
[0116] 可选的,本发明的一些实施例中,验证分类模型的准确率是否达到预置条件,包括:
[0117] 301、获取测试语料列表,测试语料列表包含至少一个测试语料,测试语料的文本类别已知;
[0118] 本实施例中,由于在分类模型的准确率计算中是需要通过大量的语料测试之后才能得到的,那么需要获取测试语料列表,列表中包含至少一个测试语料,测试语料的文本类别是已知的。
[0119] 302、从测试语料列表中选取一个测试语料,并根据测试语料得到测试语料数据及测试语料的已知文本类别;
[0120] 本实施例中,从测试语料列表中选取一个测试语料,由于测试语料的文本类别是已知的,那么可以直接得到已知文本类别(通信),根据测试语料得到测试语料数据的具体操作方式如步骤201至204所述。
[0121] 303、根据分类模型及测试语料数据得到测试语料的测试文本类别;
[0122] 本实施例中,根据生成的分类模型和测试语料数据得到测试语料的测试文本类别。
[0123] 304、判断已知文本类别与测试文本类别是否一致,若一致,执行步骤305,若不一致,执行步骤306;
[0124] 本实施例中,判断已知文本类别与测试文本类别是否一致,例如测试文本类别为媒体,而已知文本类别为通信,那么不一致,执行步骤305,如果测试文本类别为通信,那么执行步骤306。
[0125] 305、分类模型的准确次数加一次;
[0126] 本实施例中,为分类模型的准确次数叠加一次。
[0127] 306、分类模型的错误次数加一次;
[0128] 本实施例中,为分类模型的错误次数叠加一次。
[0129] 307、当测试语料列表中所有的测试语料都判断完成时,根据准确次数和错误次数计算得到分类模型的准确率;
[0130] 本实施例中,当测试语料列表中所有的测试语料都判断完成时,根据准确次数和错误次数计算得到分类模型的准确率。
[0131] 308、判断分类模型的准确率是否达到预置条件。
[0132] 本实施例中,判断分类模型的准确率是否达到预置条件,为了保证文本分类的准确性,需要分类模型的准确率达到96%以上,那么预置条件即为96%。
[0133] 本发明实施例中,对分类模型的准确率进行验证的细化使得方案更加详细。
[0134] 可选的,本发明的一些实施例中,还包括:
[0135] 若分类模型的准确率未达到预置条件,则不使用分类模型,并重新生成新的分类模型。
[0136] 本发明实施例中,在分类模型的准确率未达到预置条件时,文本分类的准确度达不到要求,不使用分类模型,并且重新进行分类器训练,生成新的分类模型。
[0137] 上述实施例中介绍本发明中文本分类的方法,下面通过实施例对文本分类系统进行说明。
[0138] 请参阅图4,本发明实施例提供一种文本分类系统,包括:
[0139] 建立模块401,用于建立类别词库及训练语料库,训练语料库中包含训练语料,训练语料的文本类别已知;
[0140] 分类器训练模块402,用于根据训练语料库中的训练语料进行分类器训练,生成分类模型;
[0141] 分类器403,用于验证分类模型的准确率是否达到预置条件;
[0142] 分类器403,还用于当分类模型的准确率达到预置条件时,获取预测文本,根据分类模型得到预测文本的文本类别。
[0143] 本发明实施例中,文本分类系统中的建立模块401建立类别词库及训练语料库,分类器训练模块402根据训练语料库中的训练语料进行分类器训练,生成分类模型,分类器403验证分类模型的准确率是否达到预置条件,若是,则分类器403获取预测文本,根据分类模型得到预测文本的文本类别,由于在进行预测文本的文本分类操作之前,对分类模型进行校验,只有当分类模型的准确率达到预置条件时,才能进行预测文本的文本分类,与现有技术相比,降低了预测文本分类错误的概率,从而提高了预测文本的文本分类的准确率。
[0144] 可选的,如图5所示,本发明的一些实施例中,建立模块401包括:类别词库建立单元501及训练语料库建立单元502;
[0145] 类别词库建立单元501,用于获取类别词,根据类别词建立类别词库,类别词用于表示文本类别;
[0146] 训练语料库建立单元502,用于获取已知文本类别的训练语料,生成训练语料列表,根据训练语料列表建立训练语料库。
[0147] 本实施例中,用户可以根据需求在文本分类系统建立类别代码,类别代码即为类别词,类别词包括汽车类、时尚/运动、科技、家电、汽车、奢侈品、医药、通信、金融、媒体、零售、工业品、烟草及公共事务等,如果用户需要将大量的文本分类为通信类、金融类及工业品类,那么输入类别词“通信”、“金融”及“工业品”,类别词库建立单元501根据获取到类别词(通信、金融及工业品)建立类别词库,由于进行分类器训练是需要通过大量语料来实现的,因此需要建立训练语料库,训练语料库建立单元502获取大量的已知文本类别的训练语料,将训练语料生成训练语料列表,根据训练语料列表建立训练语料库。
[0148] 可选的,如图5所示,本发明的一些实施例中,分类器训练模块402包括:特征提取单元503、权重计算单元504、格式转换单元505、归一化处理单元506及训练单元507;
[0149] 特征提取单元503,用于对训练语料列表中每一条训练语料进行特征提取,得到文本特征;
[0150] 权重计算单元504,用于计算得到文本特征的权重;
[0151] 格式转换单元505,用于对文本特征及文本特征的权重进行降维,并转化为LIBSVM格式数据;
[0152] 归一化处理单元506,用于对LIBSVM格式数据进行归一化处理,得到训练语料数据;
[0153] 训练单元507,用于根据训练语料数据进行分类器训练,得到分类模型。
[0154] 本发明实施例中,详情请参阅步骤201至205。
[0155] 可选的,本发明的一些实施例中,分类器403包括:语料获取单元508、语料处理单元509及判断单元510;
[0156] 语料获取单元508,用于获取测试语料列表,测试语料列表包含至少一个测试语料,测试语料的文本类别已知;
[0157] 语料处理单元509,用于从测试语料列表中选取一个测试语料,并根据测试语料得到测试语料数据及测试语料的已知文本类别;
[0158] 语料处理单元509,用于根据分类模型及测试语料数据得到测试语料的测试文本类别;
[0159] 判断单元510,用于判断已知文本类别与测试文本类别是否一致;
[0160] 语料处理单元509,还用于当已知文本类别与测试文本类别一致时,分类模型的准确次数加一次;
[0161] 语料处理单元509,还用于当已知文本类别与测试文本类别不一致时,分类模型的错误次数加一次;
[0162] 语料处理单元509,还用于当测试语料列表中所有的测试语料都判断完成时,根据准确次数和错误次数计算得到分类模型的准确率;
[0163] 判断单元510,还用于判断分类模型的准确率是否达到预置条件。
[0164] 本发明实施例中,详情请参阅步骤301至308。
[0165] 可选的,本发明的一些实施例中,
[0166] 分类器训练模块402,还用于当分类模型的准确率未达到预置条件时,不使用分类模型,并重新生成新的分类模型。
[0167] 本发明实施例中,在分类模型的准确率未达到预置条件时,文本分类的准确度达不到要求,不使用分类模型,并且分类器训练模块402重新进行分类器训练,生成新的分类模型。
[0168] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0169] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0170] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0171] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0172] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0173] 以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。