文本聚类系统的设计与实现

文本聚类系统的分析

系统的功能分析 文本聚类系统是应对大规模文本分类的需求而产生的。在项目申请书的分类过程中,各 个学科的申请书数以万计,如果仅仅依靠人工将申请书进行分门别类的划分,不但任务繁重, 而且可能会耽误评审工作的进行。为了解决这一问题,我们提出了一种文本聚类系统的设计, 用来对申请书进行聚类,实现项目申请书的自动分类。

文本聚类系统并不是一成不变的,随着技术的进步和实际问题的需要,系统本身也要改 变以适应需求。因此,文本聚类系统是一个运动的、发展的系统。

系统的任何一个要素都可以看作是一个子系统,同样,任何一个系统也可以看作是某一 更大的系统的子系统。文本聚类系统可以单纯的用来实现文本的聚类,但是它也可以作为一 个大型文本挖掘系统的模块,来为其他模块提供服务。

系统应该有以下功能:

1.通过良好的人机交互界,提供直观、方便、简单的聚类分析。 2.为项目的其他模块提供服务。 3.根据学科领域的变化不断更新完善词表。 4.标注类模型并存储在数据库方便以后的使用。 5.利用标注后的类模型对新文本进行分类。 6.提供直观的结果显示方式,例如柱状图。 2.2 系统的流程分析 系统的整体流程如图 1所示。 文本建模 聚类算法 类别标注 原始文本 新文本 文本建模 聚类模型分析结果 聚类模块 新文本处理模块

图 1 系统的整体流程 Fig. 1 The procedure of the system

从图中可以看出,系统分为两个模块:聚类模块和新文本处理模块。

 2

在聚类模块中,对原始文本进行文本预处理,建立文本模型,然后利用聚类算法进行聚 类分析,最后经过类别标注得到聚类模型。

在新文本处理模块中,首先对新文本进行文本建模,然后利用聚类分析得到的聚类模型, 对新文本进行判断,得到分析结果。

文本建模和聚类算法是系统流程的核心。下面分别介绍对这两部分的分析。

2.3 文本建模方法的分析 计算机并不具有人类的智能,人在阅读文章后,根据自身的理解能力可以产生对文章内 容的模糊认识,而计算机并不能轻易地“读懂”文章,从根本上说,它只认识 0 和 1,所 以必须将文本转换为计算机可以识别的格式。根据“贝叶斯假设”,假定组成文本的字或词 在确定文本类别的作用上相互独立,这样,可以就使用文本中出现的字或词的集合来代替文 本,不言而喻,这将丢失大量关于文章内容的信息,但是这种假设可以使文本的表示和处理 形式化,并且可以在文本分类中取得较好的效果。

目前,在信息处理方向上,文本的表示主要采用向量空间模型 (VSM)。向量空间模型的 基本思想是以向量来表示文本:(W1,W2,W3..Wn),其中 Wi为第 i 个特征项的权重,那 么选取什么作为特征项呢,一般可以选择字、词或词组,根据实验结果,普遍认为选取词作 为特征项要优于字和词组,因此,要将文本表示为向量空间中的一个向量,就首先要将文本 分词,由这些词作为向量的维数来表示文本,最初的向量表示完全是 0、1 形式,即,如果 文本中出现了该词,那么文本向量的该维为 1,否则为 0。这种方法无法体现这个词在文本 中的作用程度,所以逐渐 0、1 被更精确的词频代替,词频分为绝对词频和相对词频,绝对 词频,即使用词在文本中出现的频率表示文本,相对词频为归一化的词频,其计算方法主要 运用 TF-IDF公式,目前存在多种 TF-IDF 公式,我们在系统中采用了一种比较普遍的 TF-IDF公式:

. tf (t, d )(.) × log(N / n + 0.01)

W (t,d ) =

2

Σ∈ [ ×dtttnNtftd../log()(,+ 0.01)]

其中,W (t, d )(.) 为词 t 在文本 d(.) 中的权重,而 tf (t, d )(.) 为词 t 在文本 d(.) 中的词

频,N为训练文本的总数, nt为训练文本集中出现 t 的文本数,分母为归一化因子。

另外还存在其他的 TF-IDF 公式,例如:

. (1+ log2 tf (t, d ))(.) × log2 (N / n )

W (t,d ) =

2

Σ∈ [ ×+dtttnNtftd..22/log())(,log(1)]

该公式中参数的含义与上式相同。

文本经过分词程序分词后,首先去除停用词,合并数字和人名等词汇,然后统计词频, 最终表示为上面描述的向量。

2.4 聚类算法的分析 文本聚类的方法可以分为两大类:层次凝聚法和平面划分法。 近年来各种研究显示:平面划分法比层次凝聚法更适合对大规模文档进行聚类,这是因 为平面划分法的计算量相对较小。如:层次凝聚法中的 Single-link和 group-average方法的

时间复杂度为 O(n2) ,complete-link法的时间复杂度为 O(n3) ,n为文档数。而平面划分法

中的 k平均算法的时间复杂度为 O(nkT) ;Single-pass方法的时间复杂度为 O(nk) ,其中 n

3

是文档数,k是最终聚类数目,T是迭代次数。 在本文所设计的系统中,我们采用了平面划分法。实现了平面划分法中的两个经典算法, k平均值算法和 k中心点算法。 K平均值算法的处理流程如下:

1.随机的把所有对象分配到 k个非空的簇中; 2.计算每个簇的平均值,并用该平均值代表相应的簇; 3.将每个对象根据其与各个簇中心的距离,重新分配到与它最近的簇中; 4.回到第 2步,直到不再有新的分配发生。 K中心点算法的流程如下: 1.随机选择 k个对象作为初始的中心点; 2.对每一个由非中心对象 h和中心对象 i, 计算 i被 h替代的总代价 Tcih; 3.对每一个有 h和 i组成的对象对; If Tcih < 0, i被 h替换;然后将每一个非中心点 对象根据与中心点的距离分配给离它最近的中心点; 4.回到第 2步,直到不再有新的分配发生。 k平均值算法和 k中心点算法的比较如下: 1.存在“噪声”或者孤立点数据时,K-中心点的方法比 K-平均方法健壮。 2.K-中心点方法的执行代价比 K-平均方法高。 2.5 相似度的度量 相似度是定义一个聚类的基础,所以同一特征空间中的两个对象的相似度的度量标准对 大多数聚类算法都是必不可少的。因为一个聚类分析过程的质量取决于对度量标准的选择,

所以必须仔细选取度量标准。以 s(xi , xj ) 表示对象 xi和对象 xj之间的相似度,则 s(xi , xj )

应当满足:

s(xi , xj ) =s(xj , xi )

即自反性。 对于大多数聚类方法,相似度的度量标准可以标准化为:

0 ≤ s(xi , xj ) ≤ 1

本系统中的算法采用了余弦相关(cosine-correlation)相似度度量标准。

Σ(m) (xik . x jk ) s(xi , xj ) = k = (Σ(m) xik . Σ(m) x jk )1222111==kk3 文本聚类系统的设计与实现

3.1 系统的功能模块 系统的功能设计为四个模块:聚类分析模块、新文本分类模块、同义词处理模块和无特 征词处理模块。

聚类分析模块是系统功能的核心部分。在聚类分析模块中,用户选择要进行处理的原始 文本,首先进行分词、词频统计和特征抽取;然后选择是否处理无特征词:选否,则直接选 择是否处理同义词,选是,则去除无特征词;随后选择是否处理同义词,选是,则进行合并

 4

同义词,然后进行权重计算,选否,则直接进行权重计算,得到文本模型 (VSM),再经过聚 类分析,得到聚类结果,最后进行类别标注根据聚类的结果得到聚类模型。

在新文本分类模块中,利用经过聚类分析模块中过对大量文本的聚类分析而得到的类模 型对单个的新文本进行判断。首先对新文本进行文本预处理,文本预处理的步骤和在聚类分 析模块中的类似。然后利用类模型判断,得到类别归属。

在各个学科的资料中均会大量的出现没有类别特征的词,例如“理论”、“方法”、“试 验”等等,称之为无特征词。在聚类分析的过程中发现无特征词的大量存在,会使不同类的 文本相似度提高,从而增大了聚类分析的难度,大大降低了准确率。

为了解决这个问题,仔细观察了 500个文本,从中抽取出了 267个无特征词,建立了 无特征词表。在文本建模的过程中,我们把特征集中出现的无特征词全部去除,缩减了特征 集,大幅度提高了精度。

在文本建模的过程中,会遇到许多的同义词,例如“聚类”与“聚类分析”,“数据挖 掘”与“ data mining”等等,同义词的存在,会降低聚类结果的准确性。因此有必要在聚类 处理的过程中加入同义词的合并。

通过对 500篇实验数据仔细分析,用人工的方法提取了 145个同义词,建立了同义词 表,在文本建模的过程中,对特征集中的同义词进行了合并,提高了聚类精度。

3.2 人机交互界面 人机界面又称用户界面、对话系统、人机接口等,它是文本聚类系统不可缺少的重要组 成部分,是连接人与系统的中间纽带。人机界面把用户与数据库联系在一起。人机交互起这 非常重要的作用:一方面人向系统提供信息、提出任务要求;另一方面系统向人提供分析结 果和各种系统信息,也可能向人索取为完成任务所需要的补充信息,以及出错提示信息等等。 根据文本聚类系统的实际需求,人机界面的应能完成以下几个方面的任务:

1.向分析用户提供多种型式的交互形式,使用户能够方便的使用。 2.提示用户输入必要的资料、数据和查询分析条件,给用户提供方便的输入方式。 3.向用户提供系统的运行状态,引导分析过程,交互的为分析用户提供进一步的理解 分析问题的过程。 4.协调系统各组成单元的通信和运行,例如,同义词管理模块和聚类分析模块之间的 信息沟通等。 5.提供文本分类系统的控制机构,允许分析用户控制文本分类系统的运行、控制数据 库的工作。 6.给用户提供某些必要的提示,启发用户顺利的利用系统为分析者服务,当系统内部 具有的功能和数据不能有效的支持用户时,能提示用户使用新的分析途径。 7.根据用户正确的输入条件,正确的输出系统运行的结果给用户,并可产生直观明确 的输出表达形式。例如柱状图、圆饼图、表格等多种统计数据显示形式。 8.适应性好,随着环境和需求的变化,界面应能容易扩充和完整。 随着 WWW技术的普遍应用,用户需要使用浏览器来访问传统的基于客户机 /服务器方 式的人机交互应用,采用浏览器方式,可以对数据进行集中管理,简化用户的安装,从而降 低维护费用。同时,采用浏览器方式,可以方便用户随时随地进行访问,增加了系统的灵活 性。因此,文本聚类系统的人机交互采用 Web技术来实现。

3.3 系统的物理架构 随着 Internet/Intranet的普及 ,使得基于 HTTP协议的WWW技术得以迅猛发展,特别是 其开放的体系结构,使得它三成为当今计算机应用的理想平台。目前,许多应用已经在 WWW 上成功的建立起来。为了实现更大范围内的资源共享和协同工作 ,网络级应用软件的计算模

 5

式也正在由传统的客户/服务器(C/S,Client/Server)模型转向基于 Internet/Intranet标准协议的 浏览器/服务器 (B/S,Browser/Server)模型。B/S结构是在 C/S结构基础上的技术拓展,实际 上具有三层,如图 2所示。

第一层表示层: Web浏览器,完成用户接口的功能; 第二层功能层: Web服务器,完成客户的应用功能; 第三层数据层:数据库服务器,进行各种数据处理。

Http请求

Sql请求数据库服务器 (数据层)

Sql结果 图 2 B/S三层结构图 Fig. 2 Three layers structure of B/S model

Html响应

Web浏览器 (表示层) Web服务器 (功能层) 在开发 Web应用程序方面,三层 B/S模式与 C/S模式相比,极大地方便了应用程序的 开发和维护,使得程序员能集中精力开发位于中间层的 Web服务器端的应用软件,无需考 虑客户端的兼容性,并且后台数据库系统的改变或数据库结构的变化根本不会对客户端产生 影响。三层 B/S模式改变了 C/S模式中客户端与服务器之间的千丝万缕的联系。 在本系统中,前台用户操作采用 JSP技术。后台数据处理采用 Java Bean技术。数据库采用 了 SQL Server 2000。系统物理架构如图 3所示:

Internet 服务器端 SQL Server 客户端 客户端 Intranet 图 3系统的物理架构 Fig. 3 The physical structure of the system

4 文本聚类系统的应用实例

系统功能总体分为两大部分:聚类分析和新文本分类。下面是对这两部分功能进行的实 例验证。

4.1 聚类分析 进入系统以后,点击“聚类分析”,出现文本处理选择画面,选择需要进行聚类分析的 文本。由于在本系统中的聚类算法采用的平面划分法,所以还要指定聚类个数 K。选择 45 篇文本,聚类个数选择 3。然后进行特征集的抽取,初始的特征集个数比较多,为 701个, 在对初始特征集进行去除无特征词和合并同义词处理后,特征集缩减到 485个,根据最终的 特征集,计算空间向量模型 (VSM),最后用 k平均值算法和 k中心点算法进行聚类分析。系 统以表格形式给出了特征集未经处理、只处理无特征词、只处理同义词、全部处理四种情况 下的聚类准确率,同时给出了四种情况下,k平均值算法和 k中心点算法各自的准确率。

点击“聚类结果比较图”还可以看到聚类结果直观柱状图表示,如图 4所示:

6

图 4 聚类结果比较图 Fig. 4 The graphic of clustering results compare

实验表明,在特征集未经处理的情况下,准确率非常低,其中一个原因就是因为采用 的实验数据的类别本身比较相似,都属于一个大类别 (电子学与信息系统 ),而且由于项目申 请书本身的特点,同一个子类别下的项目申请书可能联系不是很紧密。但是经过无特征词的 去除和同义词的合并以后,准确率大大提高了。

通过观察实验结果,还可以对 k平均值算法和 k中心点算法进行对比,尽管由于初始点 选择的不同对实验结果有影响,但是经过多次实验,计算平均值,可以发现,在本系统的应 用中,k中心点算法的准确率比 k平均值算法的准确率要高。

4.2 新文本分类 本系统的另一个主要功能就是根据聚类分析得到的类别模型对新文本进行分类。 经过之前的聚类分析得到了三个类模型:水声信号与声纳;图象处理;语音识别、合成 与处理。将新文本分别与这三个类模型比较,计算相似度,然后把新文本归入与之相似度最 大的一类,实现了文本分类。 用 30篇新文本进行文本分类,分类正确的有 22篇,准确率达到 73.3%。

5 结束语

本系统的设计是针对国家自然科学基金“项目申请书研究系统”的实际需求而产生的。 在项目申请书的评审过程中,需要对大量的申请书进行专家评审,这一工作时相当繁重的, 而文本聚类系统的应用,可以大大减小工作强度,提高工作效率,节约了评审时间。本文设 计了文本聚类系统的系统框架,并在该体系框架下,详细地讨论了系统的各个子系统的分析 设计和实现。

在本系统中实现了平面划分法中的典型算法 k平均值算法和 k中心点算法,用来对项目 申请书进行聚类分析。

申请书中大量存在的同义词和没有类别特征词对聚类的精度影响较大,因此,在系统 中加入了同义词的合并和无特征词的去除。提高了聚类分析的准确率。

在聚类分析结束以后,对分析结果进行了标注,得到了类模型。然后利用类模型对新 文本进行了分类。

 

采用 Java、JSP技术开发了 B/S模式下用户操作子系统。该子系统以 JSP为控制技术, 实现了人机交互,方便了用户使用,并且对分析结果给出了直观的图形表示。 本系统目前是针对国家自然科学基金项目申请书的聚类分析设计的,对一般性文本的 通用性支持不是很强。这一点需要今后逐步改善。 本系统的核心算法采用的是平面划分法,但是这种算法的一个弊端在于需要指定聚类 个数,所以今后还应该考虑在系统中加入层次聚类法。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值