您的位置:首页 > 其它

learn to crawl:比较分类模式

2007-06-23 02:24 120 查看
基于分类器的聚焦爬虫 ,是主体爬虫的一个热点研究方向,主流的分类器有naive bayes classification,neural network,support vector machine,svm是90年代出现的名词,发展也很迅速,其优点有很多,主要是准确率高,训练时间短,可以说,svm的出现,几乎取代了neural network.那么,到底分类器是如何引导crawler爬取网页的呢?

首先是要用已知的数据来训练网络,对于特征提取,也有很多的方法,普遍采用的是tf-idf,对于训练集的网页进行预处理,除去stopword/用porter stemmer进行词尾处理,最后可以用一个向量来x={x1,x2,...,xn}来表示一个网页,其中xi为第i个词的tf-idf值.用这些向量来训练网络,网络对于neural network(我们这里是n-nh-2,其中n为输入单元个数,nh为隐单元的个数,有经验可得,隐单元的个数大致=权值个数/10)得到一组最优权值,对于svm则得到wT.对于neural network,隐藏单元个数的确定以及学习率,svm核函数的选取等问题,也需要进一步考虑(,对于neural network我们选择nh=4,对于svm我们选择多项式核).我们使用两组测试集,一组是与主体相关的页面,一组是与主体无关的页面,对于这些数据,可以从ODP中获得,http://dmoz.org/,我们大致保证不相关的页面数量大致是相关页面数量的2倍.对于如何训练,我们无须自己写算法,weka里面已经包含了,weka是由java开发的开源项目,主要涉及了数据挖掘中 关联规则/分类,/聚类一些算法,对于svm,即可以使用weka自带的smo算法,也可以使用著名的libsvm包来训练.不过libsvm比smo训练速度快(weka3.5.6中已经把libsvm集成到weka.classificaton.function包中).总之,weka功能很强大,可惜的是,很少有weka API的使用文档.自带的weka类手册很鸡肋.如果不想使用weka gui来操作的话,那么你还得花大量时间来读源码,很郁闷..经过测试svm和naive bayes训练时间较短,神经网络则计较长

得到了一个已训练好的网络,那么对于任何一个网页,将其表示成向量形式,用训练好的网络对其进行分类,如果输出的相关的概率大于不相关的概率,我们就认为这个网页是相关的.通过实验结果,发现svm的准确率和神经网络差不多,svm平均准确率在87,neural network在91% 左右,而朴素bayes则最差,在82% 左右.可以说,svm似乎是最佳选择.

上述测试的是英文网页,如果是中文网页,分词的好坏很影响tf-idf.由于开源的分词技术比较少,而且我们主要要比较的是那种分类模型更好,故我们采用的是英文网页做研究.

其他的模型也有在线学习模型,大部分是基于概率的,由hmm模型,CRF模型等.基于ontology也是比较新的一种计算相似度模型,其适应能力很强.对于这些模型,我会相继介绍
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: