- 浏览: 564276 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (270)
- Ask chenwq (10)
- JSF (2)
- ExtJS (5)
- Life (19)
- jQuery (5)
- ASP (7)
- JavaScript (5)
- SQL Server (1)
- MySQL (4)
- En (1)
- development tools (14)
- Data mining related (35)
- Hadoop (33)
- Oracle (13)
- To Do (2)
- SSO (2)
- work/study diary (10)
- SOA (6)
- Ubuntu (7)
- J2SE (18)
- NetWorks (1)
- Struts2 (2)
- algorithm (9)
- funny (1)
- BMP (1)
- Paper Reading (2)
- MapReduce (23)
- Weka (3)
- web design (1)
- Data visualisation&R (1)
- Mahout (7)
- Social Recommendation (1)
- statistical methods (1)
- Git&GitHub (1)
- Python (1)
- Linux (1)
最新评论
-
brandNewUser:
楼主你好,问个问题,为什么我写的如下的:JobConf pha ...
Hadoop ChainMap -
Molisa:
Molisa 写道mapred.min.split.size指 ...
Hadoop MapReduce Job性能调优——修改Map和Reduce个数 -
Molisa:
mapred.min.split.size指的是block数, ...
Hadoop MapReduce Job性能调优——修改Map和Reduce个数 -
heyongcs:
请问导入之后,那些错误怎么解决?
Eclipse导入Mahout -
a420144030:
看了你的文章深受启发,想请教你几个问题我的数据都放到hbase ...
Mahout clustering Canopy+K-means 源码分析
1 文本聚类研究现状
Internet 已经发展为当今世界上最大的信息库和全球范围内传播信息最主要的渠道。随着 Internet 的大规模普及和企业信息化程度的提高,各种资源呈爆炸式增长。在中国互联网络信息中心 (CNNIC)2007 年 1 月最新公布的中国互联网络发展状况统计报告中显示, 70.2% 的网络信息均以文本形式体现。对于这种半结构或无结构化数据,如何从中获取特定内容的信息和知识成为摆在人们面前的一道难题。近年来,文本挖掘、信息过滤和信息检索等方面的研究出现了前所未有的高潮。
作为一种无监督的机器学习方法,聚类技术可以将大量文本信息组成少数有意义的簇,并提供导航或浏览机制。
文本聚类的主要应用点包括:
(1) 文本聚类可以作为多文档自动文摘等自然语言处理应用的预处理步骤。其中比较典型的例子是哥伦比亚大学开发的多文档自动文摘系统 Newsblaster[1] 。该系统将新闻进行
聚类处理,并对同主题文档进行冗余消除、信息融合、文本生成等处理,从而生成一篇简明扼要的摘要文档。
(2) 对搜索引擎返回的结果进行聚类,使用户迅速定位到所需要的信息。比较典型的系统有 Infonetware Real Term Search 。 Infonetware 具有强大的对搜索结果进行主题分类的功能。另外,由 Carrot Search 开发的基于 Java 的开源 Carrot2 搜索结果聚合聚类引擎 2.0 版也是这方面的利用, Carrot2 可以自动把自然的搜索结果归类 ( 聚合聚类 ) 到相应的语义类别中,提供基于层级的、同义的以及标签过滤的功能。
(3) 改善文本分类的结果,如俄亥俄州立大学的 Y.C.Fang 等人的工作 [2] 。
(4) 文档集合的自动整理。如 Scatter/Gather[3] ,它是一个基于聚类的文档浏览系统。
2 文本聚类过程
文本聚类主要依据聚类假设:同类的文档相似度较大,非同类的文档相似度较小。作为一种无监督的机器学习方法,聚类由于不需要训练过程、以及不需要预先对文档手工标注类别,因此具有较高的灵活性和自动化处理能力,成为对文本信息进行有效组织、摘要和导航的重要手段。文本聚类的具体过程如图 1 所示。
图 1 文本聚类过程
2.1 文本信息的预处理
文本聚类的首要问题是如何将文本内容表示成为数学上可分析处理的形式,即建立文本特征,以一定的特征项 ( 如词条或描述 ) 来代表目标文本信息。要建立文本信息的文本特征,常用的方法是:对文本信息进行预处理 ( 词性标注、语义标注 ) ,构建统计词典,对文本进行词条切分,完成文本信息的分词过程。
2.2 文本信息特征的建立
文本信息的特征表示模型有多种,常用的有布尔逻辑型、向量空间型、概率型以及混合型等。其中,向量空间模型 (Vector Space Model,VSM) 是近几年来应用较多且效果较好的方法之一 [4] 。 1969 年, Gerard Salton 提出了向量空间模型 VSM ,它是文档表示的一个统计模型。该模型的主要思想是:将每一文档都映射为由一组规范化正交词条矢量张成的向量空间中的一个点。对于所有的文档类和未知文档,都可以用此空间中的词条向量( T1 ,W 1 ,T 2 ,W2 ,…, Tn , Wn )来表示 ( 其中, Ti 为特征向量词条; Wi 为 Ti 的权重 )[5] 。一般需要构造一个评价函数来表示词条权重,其计算的唯一准则就是要最大限度地区别不同文档。这种向量空间模型的表示方法最大的优点在于将非结构化和半结构化的文本表示为向量形式,使得各种数学处理成为可能。
2.3 文本信息特征集的缩减
VSM 将文本内容表示成数学上可分析处理的形式,但是存在的一个问题是文档特征向量具有惊人的维数。因此,在对文本进行聚类处理之前,应对文本信息特征集进行缩减。通常的方法是针对每个特征词条的权重排序,选取预定数目的最佳特征作为结果的特征子集。选取的数目以及采用的评价函数都要针对具体问题来分析决定。
降低文本特征向量维数的另一个方法是采用向量的稀疏表示方法。虽然文本信息特征集的向量维数非常大,但是对于单个文档,绝大多数向量元素都为零,这一特征也决定了单个文档的向量表示将是一个稀疏向量。为了节省内存占用空间,同时加快聚类处理速度,可以采用向量的稀疏表示方法。假设确定的特征向量词条的个数为 n ,传统的表示方法为而( T1 ,W 1 ,T 2 ,W2 ,…, Tn , Wn )稀疏表示方法为 (D 1 ,W1 ,D2 ,W2 ,Dp ,…,Wp , n)(Wi ≠ 0) 。其中, Di 为权重不为零的特征向量词条; Wi 为其相应权重; n 为向量维度。这种表示方式大大减小了内存占用,提升了聚类效率,但是由于每个文本特征向量维数不一致,一定程度上增加了数学处理的难度。
2.4 文本聚类
在将文本内容表示成数学上可分析处理的形式后,接下来的工作就是在此数学形式的基础上,对文本进行聚类处理。文本聚类主要有 2 种方法:基于概率 [6] 和基于距离 [7] 。基于概率的方法以贝叶斯概率理论为基础,用概率的分布方式描述聚类结果。基于距离的方法,就是以特征向量表示文档,将文档看成向量空间中的一个点,通过计算点之间的距离进行聚类。
目前,基于距离的文本聚类比较成熟的方法大致可以分为 2 种类型:层次凝聚法和平面划分法。
对于给定的文件集合 D ={d1 , d 2 ,…,di ,…, dn } ,层次凝聚法的具体过程如下:
(1) 将 D 中的每个文件 di 看成一个具有单个成员的簇 ci ={di } ,这些簇构成了 D 的一个聚类 C={c1 ,c2 ,…,ci ,…,cn };
(2) 计算 C 中每对簇 (ci ,cj ) 之间的相似度 sim{ ci ,cj } ;
(3) 选取具有最大相似度的簇对 (ci ,cj ) 将 ci 和 cj 合并为一个新的簇 ck =sim ci ∪ cj ,从而构成了 D 的一个新的聚类 C =(c1 , c 2 ,…,cn-1 );
(4) 重复上述步骤,直至 C 中剩下一个簇为止。该过程构造出一棵生成树,其中包含了簇的层次信息以及所有簇内和簇间的相似度。对于给定的文件集合 {}
D ={d1 , d2 ,…,di ,…, dn } ,平面划分法的具体过程如下:
(1) 确定要生成簇的数目 k ;
(2) 按照某种原则生成 k 个聚类中心作为聚类的种子 S=(s1 ,s2 ,…,si ,…,sk );
(3) 对 D 中的每个文件 di ,依次计算它与各个种子 sj 的相似度 sim (di ,sj );
(4) 选取具有最大相似度的种子 ,将 di 归入以 sj 为聚类中心的簇 cj ,从而得到 D 的一个聚类 C ={ci ,cj }
(5) 重复此步骤若干次,以得到较为稳定的聚类结果。这 2 种类型各有优缺点。层次凝聚法能够生成层次化的嵌套簇,准确度较高。但在每次合并时,需要全局地比较所有簇之间的相似度,并选出最佳的 2 个簇,因此执行速度较慢,不适合大量文件的集合。而平面划分法相对来说速度较快,但是必须事先确定 k 的取值,且种子选取的好坏对群集结果有较大影响。
综合考虑这 2 种聚类类型的优缺点,本文提出了一种基于向量空间模型的文本聚类的改进方法—— LP 算法。具体过程如下:
对于给定的文件集合 D ={d1 , d 2 ,…,di ,…, dn }:
(1) 将 D 中的每个文件 di 看作是一个具有单个成员的簇 ci ={di } ;
(2) 任选其中一单个成员簇 ci 作为聚类的起点;
(3) 在其余未聚类的样本中,找到与 ci 距离满足条件的 dj ( 可以是与 ci 距离最近的点,即相似度 sim (c i ,dj ) 最大的 dj ,也可以是与 ci 距离不超过阈值 d 的点,即相似度 sim (ci ,dj ) ≥ d 的任意 dj ) 。将 dj 归入 ci 形成一个新的簇 ck =sim ci ∪ dj ;
(4) 重复步骤 (3) ,直至与 ci 距离最近的 dk 与 ci 之间的距离超过阈值 d ,此时认为已经聚完了一类;
(5) 选择一个未聚类的单个成员簇,重复步骤 (3) 和步骤 (4) ,开始新的一轮聚类,直至所有的单个成员簇 ci 都参与了聚类。
LP 算法不需要比较所有簇之间的相似度,执行速度较快,适合大量文件的集合,实用性更高。同时,在聚类过程中不需要事先确定 k 的取值,降低了与领域知识的依赖性,提高了灵活性。
3 实验设计
本文采用搜狐研发中心搜狗实验室的互联网语料链接关系库 SOGOU-T 。该关系库提供了一个大规模互联网链接关系对应表,用于验证各种链接关系分析算法的有效性与可行性。语料关系库中的数据分为 10 大类 (C000007 汽车, C000008 财经, C000010 IT , C000013 健康, C000014 体育, C000016 旅游, C000020 教育, C000022 招聘, C000023 文化, C000024 军事 ) 。语料关系库可供下载的共有 3 个版本: Mini 版,精简版,完整版。本文使用前 2 个版本进行实验。语料库的组织方式如下:为 10 个大类各建立 1 个文件夹,在每个文件夹中,每 1 份语料自成 1 个 .txt 文件。
实验过程如下:
(1) 将所有文件夹下的 .txt 文件随机连结成一个大的完整文件,同时保留 .txt 文件的所属类别 ( 本实验保留了类别的最后 2 位: 07,08, … ) 。
(2) 采用中国科学院计算技术研究所数字化室 & 软件室发布的中文自然语言处理开放平台汉语词法分析系统 ICTCLAS 。利用 ICTCLAS_Win ,将 (1) 中的文件进行一级标注的词语切分。
(3) 统计标注好的切分词语的词频。
(4) 按照权重 ( 词频 ) 的大小整理切分词语,并保留权重超过一定限定值 ( 阈值 ) 的特征项。 ( 本实验保留了词频大于 100 的词语作为特征项 ) 同时,根据汉语的特点,在实验中设计了 2 种情况,以分析比较词性对于聚类效果的影响:
1) 所有类型的词语都参与聚类;
2) 只保留被标注为名词的词语。
(5) 根据 (4) 中确定的切分词语构造空间向量的基向量,同时确定空间向量的维数等参数。
(6) 将语料库中的每一份语料文件 (.txt 文件 ) 都表示为一个空间向量。在实验过程中,采用了如下 2 种表示方法:
1) 传统的空间向量表示方法: (T 1 ,W 1 ,T2 , W2 ,…, T n ,Wn ) ;
2) 稀疏的空间向量表示方法: (D 1 ,W 1 ,D2 , W2 ,…,D p ,Wp ,n) 。
(7) 聚类:聚类过程是实验的重点,也是目标所在。
1) 在开始聚类前,首先对 (6) 中已经表示好的文本空间向量做归一化处理。向量归一化在模式识别中是很重要的一环,其目的是把事件的统计分布概率统一归纳在 0-1 灰色聚类的隶属性上,这样,聚类过程对于每一个空间向量的敏感度都是一样的。
传统空间向量:
,
其中 :
;
稀疏空间向量:
其中
2) 在实验中,采用欧几里德距离来表示任意 2 个文本向量之间的距离。
稀疏空间向量:计算方法与传统空间向量类似,计算相同词条之间距离平方和的算术平方根。
3)LP 算法要求预先确定阈值。实验中,采取的阈值策略是:制定初始阈值 ( 即针对单个成员簇的阈值,此阈值根据实验效果多次调整 ) ,当 2 个簇合并为 1 个簇时,新簇的阈值由合并算法根据被合并簇的聚类特征求出。
2 个簇进行合并,其特征向量分别为 X=(T1 ,x1 ,T 2 ,x2 ,…,Tn ,Xn ),Y=(T1 ,y1 , T2 , y 2 ,…,Tn , yn ) ,则组成的新簇的特征向量为
合并定理:假定对 2 个簇进行合并,合并后的簇的阈值表示为
其中, dist 指 2 个特征向量之间的距离。
4 数据分析
实验中对于本文提到的 3 种聚类方式都有涉及,对于它们的优劣在实验层面上做了研究比对。
A :所有类型的词语都用于构建空间向量;
B :只采用名词构建空间向量;
C :采用传统的空间向量表示方法;
D :采用稀疏的空间向量表示方法。
Mini 版 (SogouC.mini.20061102) :共 100 篇文档,每个类别 10 篇。
精简版 (SogouC.reduced.20061102) :共 10 020 篇文档,每个类别 1 002 篇。
表 1 是实验结果。其中, t(time) 表示聚类消耗时间,单位为 ms ; a(accuracy) 表示聚类准确度。聚类消耗的时间依赖于执行的具体状况,因而有一定的差异。表中所取的数据是排除突变数据 ( 即坏数据 ) 之后,多次实验结果的平均值。
表 1 聚类实验效果
对实验结果进行分析,可以总结出以下 5 点:
(1) 对于精简版的聚类, 3 种方法的效果都优于 Mini 版。这是因为,精简版的基础数据量较大,个别的突变数据对于聚类效果的影响就相对较小。
(2) 采用稀疏向量表示法之后,聚类的时间消耗减少了约 4/5 ,表明对于高维向量采用其稀疏表示可以有效地节省内存占用空间,加快聚类处理速度。
(3) 相较于层次聚类, LP 算法在时间消耗上下降了约 30% ,因此,对于数据量较大,实时性要求较高的场合,由于有效地减少了消耗时间, LP 算法还是显示出了它的优势。
(4) 相较于平面划分法, LP 算法在聚类的准确性上提高了 11%~13% ,达到了 77%~83% ,从而保证了聚类的准确度在可接受的范围之内。
(5) 本次实验中, LP 算法在聚类准确性上略逊于层次法,笔者认为这主要是因为:层次法的主要思想是全局最优,每次聚为一个簇的 2 个成员之间的相似度都是最大的,而在 LP 算法中,决定将 2 个成员归为一类的唯一衡量就是阈值 d 。阈值选取的好坏对于实验效果的影响非常大。因此,如何选取阈值的初始值以及在聚类过程中如何动态地调整阈值是下一步的主要工作。
5 结束语
文本聚类在文本模式识别中占有重要的地位,这也是本文研究的价值所在。本文分析了基于距离的文本聚类中比较成熟的 2 种方法:层次凝聚法和平面划分法,并提出了一种改进方法 LP 。从实验效果上看, LP 算法速度更快,灵活性也更高。在后续的工作中,还将进一步在实验的基础上对算法进行反复修正和拓展,以达到更好的聚类和实用效果。
本篇文章来源于:开发学院 http://edu.codepub.com
或者百度文库:基于向量空间模型的文本聚类算法
发表评论
-
EM算法小结
2012-07-20 12:16 3434描述 EM是一种基于模型的聚类算法,假设样本符合高斯混 ... -
研究生能力培养手册
2012-06-10 21:00 8711. 如果平时几乎没看过英文原文,读不懂怎么办? ... -
[转]中科院分词工具ICTCLAS Java JNI接口
2012-06-04 15:07 1871ICTCLAS,网址:http://www.ictcla ... -
正则表达式学习资源
2012-05-30 11:37 733不懂正则表达式,怎么好意思说是玩文本挖掘的? 下面 ... -
再往前一步,学会更专业地看待问题,尝试去解决问题。
2012-05-22 14:11 944在科研工作中,有一个很基本的技能,就是对自己和别人的工 ... -
Bloom filter
2012-04-24 21:08 1192Bloom filter的优点: 大小固定,增加更多 ... -
基于密度的局部离群点检测
2012-04-24 16:49 3072算法:基于密度的局部离群点检测(lof算法) 输入:样 ... -
[转]非均衡数据集的分类问题
2012-03-31 21:36 2967传统的机器学习分类 ... -
LDA(线性判别分析)&PCA(主成分分析)
2012-03-23 21:16 1446推荐解释得非常好的两篇博文 http://blog.c ... -
Porter Stemming
2012-02-29 10:57 902摘要: 在英语中,一个单词常常是另一个单词的“变种”,如:h ... -
Hadoop Browse the filesystem无法访问
2012-02-23 22:17 1098问题如题. 解决方法: 修改/windows/system ... -
数据挖掘数据集
2012-02-18 17:35 948收集数据挖掘过程中用到的数据集。欢迎补充! TREC ... -
分类器的动态选择
2012-02-18 17:15 1059XMU DM一师兄写的动态集成分类器的选择, 内容挺新颖的, ... -
book reading plan
2012-02-09 15:50 710Mining of Massive Datasets ... -
[转]学术论文的标准格式是什么?写论文有哪些小技巧
2012-02-08 21:45 956我有一篇谈研究生开题报告的文章,你可以参考下: ... -
Rapid-I, 一个JAVA的数据挖掘开源平台
2012-01-30 18:29 1016当前主要使用的weka3.6,Hadoop的MapR ... -
Weka分析结果参数解释
2012-01-17 17:20 4238Kappa Statistic 假设有两个相互独立的人分别将 ... -
一淘背后的数据野心
2012-01-05 23:11 1209摘要:马云你能 ... -
多标记(multi-label)学习和Mulan
2011-12-21 20:33 3034概念澄清: ... -
数据挖掘最基础.
2011-12-15 11:34 01. 过拟合和泛化性的联系和区别? 过拟合:为了 ...
相关推荐
2. 中文文本聚类系统:是一个基于文本向量空间模型的中文文本聚类算法,能够对中文文本进行自动分类。 3. K-means 算法:是一种常用的文本聚类算法,能够将文本分成多个类别。 4. Chameleon 算法:是一种基于密度...
标题《一种基于语义相似度的文本聚类算法》及描述指出本文介绍的算法聚焦于文本聚类,着重于从语义角度计算文本相似性,以期提高聚类的质量和效果。而标签“语义相似度”和“聚类”则直接指向该算法的核心——使用...
Salton教授提出的向量空间模型(Vector Space Model, VSM)是最常用的方法之一。该模型将每篇文档表示为一个向量,其中维度对应于特定词汇,而向量的值则反映了词汇在文档中的权重。这种表示方法便于后续采用各种...
针对传统的空间向量模型在进行文本表示时计算相似度仅采用词频统计来表示文本以及对高维文本数据聚类效果有所下降等问题,提出一种基于优化密度的耦合空间LDA文本聚类算法。该算法利用提出的耦合空间模型和LDA主题...
### 基于STC的中文文本聚类算法 #### 摘要 本文提出了一种新型的中文文本聚类方法,旨在优化用户的检索体验。该方法针对用户搜索结果中的相似文档进行聚类,形成目录结构,从而帮助用户更有效地浏览和定位所需信息...
针对大多数基于向量空间模型的中文文本聚类算法存在高维稀疏、忽略词语之间的语义联系、缺少聚簇描述等问题,提出基于语义列表的中文文本聚类算法CTCAUSL(Chinese text clustering algorithm using semantic list)。...
然而,传统的基于向量空间模型(Vector Space Model, VSM)的文本聚类算法存在两个关键问题: 1. **高维度问题**:在VSM中,文本通常被表示为一个高维向量,其中每个维度代表一个词汇或短语的出现频率。这种表示...
最后,“基于向量空间模型的文本分类技术研究.nh”可能会深入讨论如何优化向量空间模型以提高文本分类的性能,可能包括特征选择、降维等技术。 这些文件共同构成了一个关于文本挖掘中聚类分析和空间向量模型的综合...
- **文本表示模型**:在文本聚类中,文本通常采用向量空间模型表示,即将文本转化为高维空间中的向量,其中每个维度对应一个词频或TF-IDF值。 - **k-means在文本聚类中的局限性**:k-means算法对于初始聚类中心的...
总结来说,文本聚类是理解和组织大量文本信息的关键工具,涉及文本预处理、向量化、相似度计算和聚类算法等多个环节。通过对K-Means和SOM等基础算法的理解和优化,我们可以更好地应对互联网上的信息爆炸,提高信息...
- 文本表示:常见的信息检索模型有布尔模型、向量空间模型和概率模型,每种模型有其适用场景和优缺点。 - 特征提取:常用方法包括基于评估函数(如文本频数、信息增益等)、特征相关性、遗传算法和语义理解。其中,...
VSM,即向量空间模型(Vector Space Model),是信息检索领域中一种用于处理文本数据的常见方法,尤其在文本分类、信息检索、文档相似度计算等任务中扮演着重要角色。VSM的基本思想是将文本转化为多维空间中的向量,每...
### 基于向量空间模型的多主题Web文本分类方法 #### 摘要解析与核心知识点 本文探讨了一种改进的Web文本分类技术,特别适用于处理包含多个主题的网页。传统上,Web文本分类依赖于诸如贝叶斯分类算法、最近邻接参照...
这种方法与传统的依赖停用词表的预处理方法有所不同,它在构建向量空间模型(VSM)的速度上有明显优势。 首先,我们来讨论词性分析。词性标注是NLP的一个基本任务,它涉及到识别每个单词在句子中的语法角色,如名词...