基于瑶湖论坛的关键字搜索的应用与研究

2014-04-29 00:44孙飞谢旭升
电子世界 2014年17期

孙飞 谢旭升

【摘要】本文是基于瑶湖论坛的关键字搜索应用,在进行文本的选择与分词、关键字权重的计算、文本向量空间模型的表示和帖子分类算法的选择上都充分考虑了论坛的性质,并且在分词时增加了人工干预的形式,使得更好的满足论坛的需要。

【关键词】关键字搜索;中文分词;文本聚类

1.引言

随着科技的发展,计算机技术的应用也越来越普及,中文分词、文本分类,信息检索等各项技术在各大搜索引擎公司都得到了很好的应用,但是商业引擎的处理信息量大,处理文本的信息各种各样,它们有很强的通用性,但对于特定的领域或者特定信息空间的处理确有很大的提升空间[1]。本文基于瑶湖论坛,根据论坛的特点,在文本的分词、文本的向量模型表示、文本分类算法的选择等方面都因地制宜的进行了改动,以期望达到更好的效果。

2.文本的分词与关键字权重的计算

2.1 文本内容的选取

提取计算帖子中关键字对帖子内容而言所承载的信息量,和建立帖子空间向量模型的第一步是对帖子文本内容进行分词。在文本内容的选取上,充分考虑到论坛中帖子的语言表达方式基于学生生活用语,并且帖子的文本篇幅长度较短,同时对于帖子的回帖,其内容较为固定和单一,帖子之间的区分度不高,噪声较大。所以只将帖子的标题和帖子的内容作为帖子的文本信息进行分词。

2.2 分词工具的选择

我们将IK Analyzer作为分词工具对取得的文本信息进行处理,IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开始,IKAnalyzer发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IKAnalyzer实现了简单的分词歧义排除算法,采用了特有的“正向迭代最细粒度切分算法”,支持细粒度和智能分词两种切分模式,词典支持中文、英文、数字混合词语。

2.3 关键字权重的计算

查询中每一个关键字的权重应该反映这个词对于查询来讲提供了多少信息,搜索关键字权重的科学度量是TF-IDF。其主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF-IDF实际上是:TF×IDF,TF词频(Term Frequency),IDF逆向文件频率(Inverse Document Frequency)。TF表示词条在文档d中出现的频率。IDF的主要思想是:如果包含词条t的文档越少,也就是n越小,IDF越大,则说明词条t具有很好的类别区分能力。一篇帖子中关键字的权重公式如公式(1)所示。

(1)

其中|D|为语料库中的文件总数,表示包含词语ti的文件数目(即的文件数目)如果该词语不在语料库中,就会导致被除数为零,因此一般情况下使用都会加上1。并且由于文本长度的不同进行了归一化处理。

2.4 分词与关键字权重中的人工干预

由于中文特殊的语言语境模式,虽然中文分词已经取得很大的发展,但是但无论按照人的智力标准,还是同实用的需要相比较,差距还很大。为了弥补机器分词的不足,我们先将文本内容进行分词并计算出每个词语的IDF值,将IDF值大于一定阈值的设为关键字,存入关键字表,将IDF值小于一定阈值的设为停止词,这些词大部分是没有意义的虚词。并且提供了可以通过的导入关键字词典和停止词典及修改词典的方式来辅助分词器在分词时判断哪些词可以作为关键字,并且将停止词典中的词语作为无意义的词而忽略掉。其后台处理界面如图1所示。

图1 后台处理界面

3.文本向量空间模型的建立与分类

3.1 文本向量空间模型的建立

最常用的文本表示模型是G..Salton在1975年提出的向量空间模型(VectorSpaceModel),其基本思想是把文本d看作向量空间中的一个n维向量(w1,w2,w3...wn),其中w1,w2,...wn为表示该文本的n个特征所对应的权重,一般取为词频的函数。文本分类的第一步是对文本集进行基于词典的分词处理。由于通用的的词典收录词条数共有116921,如果把每个帖子表示成一个116921维的向量,由于帖子文本内容较少且语言较为生活化,所以很多词语都不会在帖子中出现,导致生成的向量极为稀疏,浪费的存储空间,影响了分类时的计算效率和分类精度,所以要进行文本的特征选择[2]。

常用的文本特征选择的方法有很多,如信息增益、期望交叉熵、互信息、文档频率[3],其核心都是基于信息论,基本思想都是对每一个特征中文词,计算某种统计度量值,然后设定一个阈值T,把度量值小于T的那些特征过滤掉,剩下的即认为是有效特征。我们第二小节已经做了相关的工作[4],通过设置停止词典的方式,在分词时忽略了很多没有意义的虚词,有效的降低了文本向量的维度。将帖子文本的结果按照“关键字=tfidf值”的形式表示成空间向量存入SQL Server数据库中。部分数据如图2所示。

图2 帖子的向量空间模型的存储

3.2 帖子文本的聚类

将主题内容相似的帖子分成一类,实现上认为同一类的帖子含有的相同的关键字就较多。以此思想对帖子进行分类。帖子的相似度就表示为两个帖子的余弦值,既有:

(2)

图3 帖子之间的余弦值

通过对论坛的一定帖子之间余弦值的计算和前期人工类别的核实发现当阈值大于0.18时,帖子之间表现出了一定的相关性。部分数据如图3所示。

文本分类是事先定义好类别,类别数不变。分类器需要由人工标注的分类训练语料训练得到,由于论坛中帖子的文本内容随意且文本长度较短,单一类型的特征向量难以确定,类别数也不好判断,所以我们使用聚类的方法来处理,将比较相似的文章或文本信息归为同一组。文本的聚类算法采用K-means算法,是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大[5]。算法过程如下:

(1)从n个数据对象任意选择k个对象作为初始聚类中心。

(2)根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分。

(3)重新计算每个(有变化)聚类的均值(中心对象)。

(4)循环(2)到(3)直到每个聚类不再发生变化为止。

根据上面的理论基础,在NetBeans平台下用java实现了该系统的的相关功能,界面截图如图4所示。

图4 关键字搜索界面

4.结束语

本文的应用是基于特定的论坛,在系统实施的每个方面如文本的分词、关键字权重的计算、文本向量空间模型的建立、分类算法的选择都充分的考虑的论坛的性质,并且增加了人工干预的方式,使得应用更加灵活和准确。但是限于原始帖子的测试数据较小,从论坛抓取的数据类型还不够多样,导致在帖子分类算法的选择上没有提供很好的参照。系统的完善和改进将是我们下一步的工作。

参考文献

[1]李银松,施水才等.用户兴趣分类在个性化搜索引擎中的应用[J].情报学报,2008,27(4):535-540.

[2]孙建涛.Web挖掘中的降维和分类方法研究.北京:清华大学计算机科学与技术系,2005.

[3]YangYiming,Pederson J O.AComparative Study on Feature Selection inText Categorization[A].Proceedings of the 14th International Conference on Machine learning[C].Nashville:Morgan Kaufmann,1997:412-420.

[4]余俊英.文本分类中特征选择的研究.江西:江西师范大学计算机信息工程院,2007,36(l):35-41.

[5]姚明宇,皮德常等.基于k-means的中文文本聚类算法[A].Proceedings of 2010 International Conference on Services Science,Management and Engineering(Volume 2)[C].2010.

作者简介:

孙飞(1988—),男,江苏人,硕士研究生,现就读于江西师范大学计算机信息工程学院。

谢旭升(1963—),男,江西人,教授,现供职于江西师范大学计算机信息工程学院,主要研究方向:分布式数据库。