基于不确定推理的文本层次分类方法与装置 技术领域 : 本发明涉及利用数据挖掘技术进行中文文本处理的信息技术领域, 特 别是涉及一种基于证据推理的无标题文本的分类方法和装置。
背景技术 : 随着在行业内部网络或者因特网上的各种技术类、 办公类以及其他电 子化文档的快速增长, 对文档的分类管理效率及性能提出了更高要求。一方面海量的文档 导致单层目录导航不再高效, 需要更加科学的多层次目录分类系统进行文档分类管理。另 一方面单纯依靠手工对大量文档进行分类已经显得不切实际。所以, 文本的自动层次分类 技术的研究有很强的实际应用意义。 然而目前比较成熟的研究与应用大多在文档的单层目 录分类上, 文本多层次分类技术还处在初步探索阶段, 分类的准确度和性能仍是需要解决 的关键问题。
目前探索的层次分类方法的解决方案可以分为两种 :
(1) 自顶向下的方法 (top-down level-based) 现有的大部分层次分类方法都采 用这种模式, 其特点是在类别树的每一层都构建一个或者多个分类器, 每个分类器在所在 层像单层文本分类一样工作。一个文本从根节点开始, 逐层向下分类, 直至到达叶子节点。 这种方法具有明显的优点 : 将大的分类问题转化为小的子问题, 能较好地降低时间和空间 复杂度。 然而这种方法也有明显的缺点 : 如果一个文本被分入了错误的父类, 将不可能分入 正确的叶子类。
(2) 大爆炸方法 (big-bang) 这种方法在整个分类过程中只构造一个分类器。 并用 来对文本进行分类。虽然克服了方法 1 所述的缺点, 但方法的时间空间开销一般比较大, 不 适合在对时间要求较高的场合比如网络上使用。
在没有一种方法能保证 100%的正确率的前提下, 近可能提高分类准确率就成了 分类算法追求的目标。利用特征进行分类的模式下, 特征包含的信息是模糊的, 不确定的。 比如 “电脑” 一词即可能出现在计算机类的文本中, 也可能出现在生物科技类的文本, 很难 确定一个特征词只出现在一个文本类中, 不出现在其他类中, 这就是当前的分类算法热衷 于使用概率来描述特征的区分度的原因。
发明内容 : 本发明的目的在于提供一种新的中文文本层次分类方法和装置, 用于 提高对中文文本分类的准确程度。
本发明利用不确定推理理论 : 即证据推理和模糊数的相关理论, 充分挖掘特征中 的不确定信息, 改善分类的准确度。
本发明是这样来实现的 : 一种基于不确定推理的文本层次分类方法, 包括 :
a) 从训练文本中提取特征 ;
b) 确定分类问题的辨识框架和焦元 ;
c) 利用特征的权重构造基本可信度分配函数 (BPA) ;
d) 根据基本可信度分配函数和待分类文本的特征权重合成待分类文本的信度分 配;
e) 利用信度分布根据分类规则对待分类文本进行分类。
本发明还提供一种文本层次分类装置, 包括 :
a) 文本预处理模块 U1, 用于将文本预处理成算法需要的 TF 及 BINARY 向量形式 ;
b) 特征抽取、 分类器训练模块 U2, 用于对文本预处理模块 U1 处理的文本特征的抽 取、 训练分类器 ; 即用于利用 TF*IDF 方法提取文本特征, 对文本降维, 并利用特征权重构造 基本可信度分配函数 ;
c) 分类模块 U3, 用于根据特征抽取、 分类器训练模块 U2 生成的分类器对待分类文 本进行分类, 并评价分类效率与准确性。
与现有文本层次分类技术相比, 本发明具有以下优点 :
通过将非叶子类构造成虚拟的叶子类参与分类, 很好的区分了父类与子类之间的 不同特征 ; 利用基本可信度分配函数分配给非叶子类的信度以及 pignistic 概率将文本的 分类可信度表示为一个三角模糊数, 在分类时充分地利用了不确定信息, 提高了分类的准 确程度。
附图说明 : 图 1 是本发明实施例中文本层次分类方法的流程图 ;
图 2 是本发明实施例中分类器训练的流程图 ;
图 3 是本发明实施例中分类模块的流程图 ;
图 4 是本发明实施例中测试文本的分类结果判定的流程图 ; 图 5A、 5B 是本发明实施例中测试宏平均值及微平均值与每个类选取的特征数之 间的关系图 ;
图 6 是实现本发明的文本层次分类方法的装置的结构图 ;
具体实施方式 : 以下结合附图对本发明作具体说明。 应该指出, 所描述的实施例仅 仅视为说明的目的, 而不是对本发明的限制。
实施例 1
本发明的实施例 1 提供了一种文本层次分类方法, 如图 1 所示, 包括以下步骤 :
步骤 101 : 从训练文本中提取特征 ;
步骤 102 : 确定分类问题的辨识框架和焦元, 利用特征的权重构造基本可信度分 配函数 (BPA) ;
步骤 103 : 根据基本可信度分配函数和待分类文本的特征权重合成测试文本的信 度分配 ;
步骤 104 : 利用信度分布根据分类规则对待分类文本进行分类。
以下进一步详细的说明本发明实施例的文本层次分类方法中的各个细节问题。
1、 语料选择 :
本实施例采用的语料为中文文本分类语料库 -TanCorpV1.0, 该语料库分为两个层 次, 第一层 12 个类别, 第二层 60 个类别, 共有文本 14150 篇, 具体层级结构及文本数见表 1。 实验时选取每个类别其中的 70%作为训练语料, 剩下的 30%作为测试语料。
表1
2、 确定辨识框架与焦元 :
对于一个层次分类问题, 其类别层次结构可以用一个类别树来表示。类别树由一 个根节点、 若干中间节点和叶子节点组成。 文本层次分类就是要将一个文本通过根节点、 中 间节点分到某个叶子节点。
为描述问题方便, 下面只说明层次结构为 2 层的情况。设分类问题中共有 CN1 个 大类, 记为 cm, 共 CN2 个小类, 其中 cm 类中有 nm 个子类, 其中 m 1, 2,…, CN1。类层次关系 可以用下面类似矩阵的形式表示 :
于是, 所有叶子类构成该分类问题的辨识框架, 记为 :本发明实施例中假设信度只可能分配到某个具体的类别上, 包括层次 1 大类和层 次 2 子类, 故所有可能的焦元集合可以记为 :也就是说 : m(2Ω\F) = 0。同时, 将文本中的特征及其出现频率作为证据。以下将 F\Ω 中的每个元素看做一个类, 即共有 CN1+CN2 个类, 显然该集合中有 CN1 个虚拟类, 其
意义为 : 例如,表示有证据说明文本有 10%的可能性是属于第一大类的, 但是却不确定这 10%的可能性是支持文本属于第一大类的哪一个子类的。这种不确定 性是由于大类的特征与子类的特征一般不同造成的, 它不仅对将文本分入正确的大类很有 用, 而且利用不确定推理的知识, 也可以用之来帮助子类层次的分类。 这正是本发明的主要 思想之一。 2、 特征选取 :
这里选择词作为文本特征。特征选取采用 TF*IDF 方法 : 选取 TF*IDF 值最大的前 一定数目的词作为特征。首先将每个类包含的所有文本 ( 层次 1 大类包含的文本是指其全 部子类包含的全部文本 ) 的 TF 向量融合成一个类文本 TF 向量 ; 然后设定想要抽取的类的 特征数的阀值 ρ1, 并根据类文本的 TF*IDF 值选取制定数目的词作为该类的特征 ; 最后综 合得到分类器的特征, 特征数记为 N。 这种为每个类分别选取特征的方法能使得在总特征数 大为缩减的同时还能提高分类精度。最优特征数量由分类测试的结果来确定。
4、 训练分类器
如图 2 所示, 分为如下步骤 :
步骤 201 : 分别生成每个类的文本特征的 TF 向量和 BINARY 向量 ; 步骤 202 : 由下面的公式计算类文本 di 中特征 fj 的权重 W(di, fj) :由于直觉上词的权重与词频 TF 的关系不应该是 TF*IDF 公式所描述的简单的线性 实验证明改进后分类精度得到了改善 ;关系, 本发明将公式中的 TF 改进为
步骤 203 : 利用特征的权重值构造证据推理的基础 : 基本可信度分配函数。
首先给出本发明中使用的基本可信度分配函数的定义 :
定义 1 : 设类文本 di 中特征 fj 的权重为 W(di, fj), 记 Sj =∑ iW(di, fj)。定义特征 fj 的基本可信度分配函数 :
m(ci, fj) = W(di, fj)/Sj,
其中, i = 1, 2, Λ, CN2, CN2+1, Λ, CN2+CN1, j = 1, 2, Λ, N。
显然, 根据定义 1 : m(Ω, fj) = 0。本发明中这样定义的原因是基于这样的假设 : 特征至少在一个类 ( 层次 1 大类或者层次 2 子类 ) 中出现过。
5、 分类
分类的主要思想是将待分类文本中出现的特征及其频度作为证据, 结合训练得到 的基本可信度分配函数, 利用证据推理的理论合成待分类文本在各焦元上的信度分配, 在 利用信度分配按照分类规则分类, 如图 3 所示, 具体步骤如下 :
步骤 301 : 读入待分类文本并预处理成特征及其频度的向量形式, 记为 :
x = (TF1, TF2, Λ, TFj, Λ, TFN)
步骤 302 : 将 x 归一化, 作为各证据的权重 w = (w1, w2, Λ, wj, Λ, wN), 其中 :
步骤 303 : 利用证据推理知识进行证据合成。共有 N 个证据, 其基本可信度分配函 数由定义 1 给出, 证据权重由步骤 302 给出。本发明实施例采用递推合成算法, 该算法属于现有技术。
记 合 成 后 的 信 度 分 布 为 m(ci), 其 中 i = 1, 2, Λ, CN2, CN2+1, Λ, CN2+CN1。 当 1 ≤ i ≤ CN2 时, m(ci) 表 示 证 据 支 持 待 分 类 文 本 属 于 层 次 2 子 类 ci 的 程 度, 当 CN2+1 ≤ i ≤ CN2+CN1 时, m(ci) 表示证据支持待分类文本属于层次 1 大类 ci-CN2 的程度, 是 没有分配给具体层次 2 子类的信度。
步骤 304 : 利用合成的信度分布根据分类规则, 如图 4 所示, 分类结果判定流程如 下:
步骤 401 : 利用步骤 303 中的得到的信度分布, 计算出待分类文本属于层次 1 大类 cm 的概率 P1(cm), 属于层次 2 子类 ci 的概率 P2(ci)。记 index(max(· )) 表示取最大值的下 标索引, 即 index(max(P1)) 表示概率最大的层次 1 大类的类标号, index(max(P2)) 表示概 率最大的层次 2 子类的类标号。同时记 L1Index(ci) 为层次 2 子类 ci 的层次 1 大类的类标 号。这里概率的计算方法如下 :
(1) 测试文本属于层次 2 子类 ci 的概率 P2(ci) 分为两部分, 一部分是证据支持待 分类文本属于该类的信度 m(ci), 这一部分是确定的 ; 另一部分是证据支持待分类文本属于 该类的父类 cm 即层次 1 大类的信度 m(cm), 这一部分是不确定的, 即不知道该怎样分配到其 子类上。本发明采用根据理由不充分准则而来的 Pignistic 概率分配方法
其中, ci 为层次 1 大类 cm 的所有子类, |cm| 表示包含的子类数。于是 P2(ci) 可以 表示成一个三角模糊数 (m(ci), m(ci)+BetP(ci), m(ci)+m(cm)), 其意义分别为文本属于层次 2 子类 ci 的概率的下界、 最可能值、 上界。为了实现三角模糊数的比较, 本发明采用逆模糊 化的方法 :
P2(ci) = α·m(ci)+β·(m(ci)+BetP(ci))+γ·(m(ci)+m(cm))
其中 α, β, γ ∈ (0, 1) 且 α+β+γ = 1。
(2) 待分类文本属于层次 1 大类 cm 的概率 P1(cm) 等于该文本属于大类 cm 的所有 子类的概率之和 :
P1(cm) =∑ P2(ci)
其中 ci 为层次 1 大类 cm 的所有子类。
步骤 402 : 如果 index(max(P1)) 等于 L1Index(index(max(P2))), 也就是待分类文
本最可能属于的层次 1 大类与文本最可能属于的层次 2 子类所在的大类相同, 这时接受分 类结果, 待分类文本属于层次 1 的第 index(max(P1)) 大类、 层次 2 的第 index(max(P2)) 子 类, 转至步骤 406。否则转入步骤 403。
步骤 403 : 对于两个错误的分类而言, 第一个错误将待分类文本归入正确的层次 1 大类、 错误的层次 2 子类, 第二个错误将待分类文本归入错误的层次 1 大类, 显然前者犯的 错误小于后者。在没有办法保证 100%的正确率时, 减小分类错误及其后果是很有必要的。 因此, 基于优先将待分类文本分入正确可能性大的大类的思想, 本发明采取如下判断规则 : 如果 max(P1) 大于某一预先设定的阀值 ρ2, 接受第一层次的分类, 将待分类文本分入层次 1 的第 index(max(P1)) 大类, 转入步骤 404 ; 否则转入步骤 405。
步骤 404 : 在层次 1 大类确定的条件下, 根据该类下的子类的概率对待分类文本进行第二层次的分类, 分类结果为待分类文本属于层次 2 的第 index(max(P2)) 子类。转入步 骤 406。
步骤 405 : 如果待分类文本属于层次 1 上大类的概率区分度不大, 也就是不能 比较高概率地判断文本属于哪个大类, 这时利用待分类文本属于层次 2 子类的概率进 行 分 类, 根 据 max(P2) 将 文 本 分 入 层 次 1 第 L1Index(index(max(P2))) 大 类、 层次 2 第 index(max(P2)) 子类。转入步骤 406。
步骤 406 : 输出分类结果, 分类结束。
6、 评价方法与实施例实验结果
为了验证本发明的层次分类方法的有效性, 采用前述 TanCorpV1.0 语料库的两个 层次全部 12 大类 60 小类的文本进行测试。评价指标选择 F1 的宏平均和微平均。在以下 的实验中, 取阀值 ρ2 = 0.5, α = γ = 1/6, β = 4/6。
特征提取环节是分类的基础, 特征数的多少能直接影响分类的准确性。在本发明 的算法中, 每个类特征数由预先设定的阀值 ρ1 确定, 在实施例中, ρ1 为一个 CN1+CN2 维向 量, 为选择最优的阀值 ρ1 以及合成后的分类器的特征数, 发明人通过单层次的分类实验, 如图 5, 确定了各层次分类时的最优特征数。图 5A、 5B 分别显示了层次 1 的 CN1 个大类上分 类时不同的分类器特征数对应的 F1 的微平均 (MicroF1) 和宏平均 (MacroF1), 同时也显示 了在相同条件下利用 SVM 方法分类的 F1 的微平均 (MicroF1) 和宏平均 (MacroF1), 显然本 发明提供的方法比 SVM 方法有更好的分类精度。从图中也可以看出, 随着特征数的增多, 分 类准确度也增加, 但是特征数太多带来的时间和空间的开销也增大。同时当层次 1 大类的 每个类选取的特征数为 350 时, 分类性能局部最高, 此时, 对应的合成后层次 1 大类的分类 器特征数为 3527。 类似地, 在层次 2 小类上进行分类实验, 可以确定当当层次 1 大类的每个 类选取的特征数为 200 时, 分类性能局部最高, 此时, 对应的合成后层次 2 小类的分类器特 征总数为 6258。最后综合得到本发明方法的分类器的特征数为 7960, 后面的实验中均取此 值。
选择该特征数阀值, 第一层次上的分类和第二层次上的分类精度分别如下表 2 所 示。
表2
MicroF1 层次 1 层次 2
MacroF1 89.02% 74.47%92.72% 77.66%本发明公开的方法提高了中文文本层次分类的精度, 该方法可以应用于涉及对大 量文本进行分类管理的知识管理系统或者网络信息处理系统中, 对于中文文本特别是无标 题文本的自动分类管理提供了更科学高效的方法。 例如, 搜索引擎的搜索结果分类, 有利用 用户找到自己感兴趣的类别的搜索结果 ; 知识管理系统中的文本分类, 有利用系统挖掘和 发现隐藏在类别信息下的知识。
实施例 2本发明的实施例 2 还提供了一种文本层次分类装置, 如图 6 所示, 包括 : 文本预处理模块 U1, 用于将文本预处理成算法需要的 TF 及 BINARY 向量形式, 包括: 分词单元 U11, 用于对输入的文本进行分析, 输出分词的结果 : 词列表。
系统词典生成单元 U12, 用于统计文本集合中出现的词, 并统一编号。
文本向量生成单元 U13, 用于根据系统词典对每个文本进行分析, 生成文本的 TF 及 BINARY 向量。
特征抽取、 分类器训练模块 U2, 用于对文本预处理模块 U1 处理的文本特征的抽 取, 训练分类器, 包括 :
类文本向量生成单元 U21, 用于统计每个类 ( 包括叶子节点类和非叶子节点类 ) 的 文本 TF 及 BINARY 向量。
特征抽取单元 U22, 用于根据特征权重计算公式和特征数阀值抽取一定数目的特 征。
特征 BPA 函数生成单元 U23, 用于根据文本的特征权重向量生成各特征的基本可 信度分配 (BPA) 函数。
分类模块 U3, 用于根据特征抽取、 分类器训练模块 U2 模块生成的分类器对待分类 文本进行分类, 包括 :
特征证据权重生成单元 U31, 用于对待分类文本表示成特征的 TF 向量形式, 并生 成归一化的特征证据权重。
证据合成单元 U32, 用于根据特征抽取、 分类器训练模块 U2 模块生成的 BPA 函数和 特征证据权重对证据进行合成, 生成待分类文本属于各类别的信度分布。
概率计算单元 U33, 用于根据证据合成单元 U32 生成的信度分布, 利用 Pignistic 概率以及三角模糊数的知识计算待分类文本属于各叶子节点类和非叶子节点类的概率。
分类结果判定单元 U34, 用于根据概率计算单元 U33 输出的待分类文本属于各类 别的概率, 一用分类规则判定待分类文本的最终分类结果。
分类精度评价单元 U35, 用于对待分类文本集的分类结果按照通用的评价标准评 价分类进度。
最优特征数生成单元 U36, 用于根据多次具体的分类精度评价值的优劣生成特征 提取时的最优特征权重阀值及特征数阀值。