基于特征值提取文本分类方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、综述 (2)
(一)实现目标 (2)
(二)主要功能 (2)
二、总体架构 (3)
三、各模块建模挖掘层详解 (4)
(一)无监督学习模块.............................................. 错误!未定义书签。
(二)有监督学习模块.............................................. 错误!未定义书签。
四、输入层和输出层详解 (6)
(一)输入层 (6)
(二)输出层 (6)
基于特征值提取文本分类设计方案
一、综述
(一)实现目标
本模块实现了对文本文档集合的分类特征值提取。对输入的分类文档,基于词频、互信息、类别信息的综合特征,从每个分类中挖掘出对应的有效特征值。
该模块还实现了对特征值的权重计算,按照特征词的权重值,构造了分类器。新增文本可以通过文本分类器进行分类,无法分类的文本可以人工分类后重新执行特征值抽取功能,重新调整特征值,从而达到优化分类器的目的。
该模块由Java编写,可用于任何需要挖掘文本主题的项目中,也可以单独使用。
(二)主要功能
该模块的主要功能包括以下几个方面:
●对原始语料库进行中文分词、去除停用词
●词性过滤,只提取名词,动词
●按类别进行特征词提取
●特征词权重计算
●文本分类
二、总体架构
三、挖掘层详解
1.文本分词
中文分词采用开源的Ansj分词工具,基于中科院的ictclas 中文分词算法,采用隐马尔科夫模型(HMM),比其他常用的开源分词工具(如mmseg4j)的分词准确率更高。Ansj是一款纯Java的、主要应用于自然语言处理的、高精度的分词工具,目标是“准确、高效、自由地进行中文分词”,可用于人名识别、地名识别、组织机构名识别、多级词性标注、关键词提取、指纹提取等领域,支持行业词典、用户自定义词典。
Ansj实现了用户自定义词典的动态添加删除,当然,也支持从文件加载词典。用户自定义词典默认路径:项目目录/library/userLibrary/userLibrary.dic。格式为:[自定义词] [词性] [词频],其中[词性]和[词频]两项可以空缺不写。本项目在Ansj原本自带的词典(367425条)基础上,扩展了以下词典:
1)从数据库中抽取的电信业务词库(5767条)
2)广深东佛城市信息精选词库(来源:搜狗细胞词库)(62617条)
3)搜狗标准词库(392778条)
4)搜狗精选词库(392507条)
5)搜狗万能词库(362333条)
本模块还提供了从数据库加载词库的功能。目前整理了以下的数据库版本的词库:
1)公积金领域词(1332条)
2)医保领域词(2503条)
2.词性过滤
代词、连词、介词等的表征能力比较弱,因为一篇文本中的代词、连词或介词对于区分这个文本所属哪个领域几乎没什么参考价值。为此可以将表征能力很差的词性的词过滤掉。而名词和动词的表征能力最强,它们是文本中具有代表性的关键词项,因为大量的汉语知识表明,名词和动词是一个汉语句子中的核心部分,它们的简单组合,往往就可以表达出一种中心思想,一种主题。因此,我们只保留名词和动词,将其他词性的词作为弱词性词过滤掉。
3.基于词频、互信息、类别信息的综合特征选择
1)词频:平常我们判别一篇文章的类型时,基本方法就是大致浏览一下文章,从文章里出现比较频繁的一些字眼即可判别出文章的类型。词频最高的前几个词,基本上都是分类能力最强的词。在中文文本自动分类中,高词频对分类贡献很大。
2)互信息:互信息表示特征与类别之间的相关程度。当特征的出现只依赖于某一个类别时,特征与该类型的互信息很大;当特征与类型相互独立时,互信为O;当特征很少在该类型文本中出现时,它们之间的互信息为负数,即负相关。度小的特征对互信息的影响大,使得低频特征具有较大的互信息。
3) 类别信息:
(1)特征项只出现在一个类中,从直观上看,这个特征项非常有价值,因为我们可以从统计规律来确定,只要某文档中出现此特征项,就可以确此文档的类别。
(2)如果特征项出现在两个或多个类当中,但在有些类中没有出现,那么此特征项也是有价值的。它说明了出现此特征项的文档可能会属于某些类,并不应该属于另一些类。
(3)如果特征项在所有类中都出现了,并且出现的频率比较均,那么这样的特征项对分类就几乎没有价值,应当过滤掉。
也就是说,特征项出现的类别数越少,权重应该越大。
其中:t k为特征词t在q类中出现的词频,MI(t k,C j)为t k与q类的互信息,
N为训练文档集中包含的类别数,C tk为特征项t k出现的类别个数。
4.权重计算
对于特征的权重,我们是从测试文档的角度考虑的。当一个待测文档与一个别进行比对时,我们往往需要找出待测文档中出现的最能说明它属于该类的词语。此时我们需要考虑2个因素,一方面是词在c类中的代表性,另一方面是词在待
文章中的代表性。考虑到以上两个因素,我们选择词的作为衡量词在c类中代表
性的标准,选择词在待测文章中出现的次数.
权重= 特征评估值* 词频
5.改进的贝叶斯分类
在文本训练阶段,每类根据特征评估函数选出最能代表类别的前k个特征词,注意在特征提取的候,只是简单的统计在某类文档中出现的频率,并不考虑出现的位置。在分析阶段,将一篇待分类文档分词后,然后与第一个类别提取出的k 个词进行比对,若出现则计算权值,最后将得到的权值相加,作为文档与该类比较的最终结果。待文档与所有类别比较完毕后,对最终结果由大到小排序,选出结果最大的作为最终的分类结果。该算法的基本思想和贝叶斯分类器的思想相同,即计算文本属于类别的概率,文本属于类别的几率等于文本中每个词属于类别的几率的综合表达式。但本算法提出了一种更有效的特征提取算法来衡量特征词与类别的相关性,并且利用新的权重计算方法来判断测试文本的类别,比传统的贝叶斯算法更加简单有效。
四、输入层和输出层详解
(一)输入层
文本输入允许有三种形式:
1)单个文本文件:将语料库整合为单个文本文件,文件的第一行为语料库
中文档的数量,之后每一行为一篇文档。附加保存文档ID或标题的文
件,按行一一对应语料库中的文档。
2)数据库:数据库中的纯文本字段也可以作为系统的输入,一条记录表示
一篇文档。另有字段对应文档的ID。
3)多个文本文件:所有文本表示一个语料库,一个文本文件代表一篇文档,
文件名为文档的ID或标题。
(二)输出层
模块的输出为分类结果,包含以下信息:
文本ID
所属分类名称