《《自然语言处理》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《自然语言处理》PPT课件.ppt(17页珍藏版)》请在三一办公上搜索。
1、本周报告,2016/12/22,主要内容,1、爬虫的数据处理2、网页的知识(评论数放在哪个类型下)3、K-means算法,爬虫,主要代码import requestsfrom bs4 import BeautifulSoupdef getNewsDetail(newsurl):result=#字典 res=requests.get(newsurl)res.encoding=utf-8 soup=BeautifulSoup(res.text,html.parser)resulttitle=soup.select(#artibodyTitle)0.text#大标题 resultnewssource
2、=soup.select(.time-source span a)0.text timesource=soup.select(.time-source)0.contents0.strip()resultdt=datetime.strptime(timesource,%Y年%m月%d日%H:%M)resultarticle=.join(p.text.strip()for p in soup.select(#artibody p):-1)#正文 resulteditor=soup.select(.article-editor)0.text.strip(责任编辑:)resultcomments=ge
3、tCommentCounts(newsurl)return resultnews_url=http:/,爬虫的数据处理:新闻类的网页一般放在Doc下,获取新闻的标题,正文,时间来源,正文,责任编辑,评论数。,K-Means算法,在数据挖掘中,K-Means算法是一种 cluster analysis 的算法,主要用来计算数据的聚集问题,方法是不断地取离种子点最近的均值。问题引入:在下图的左边有一些点,我们用肉眼可以看出来有四个点群,但是我们怎么通过计算机程序找出这几个点群来呢?于是就有了K-Means算法。,图解,K-Means要解决的问题,算法原理,从上图中,我们可以看到 A,B,C,D,E
4、 五个点,而灰色的点是我们的种子点,也就是我们用来找点群的点。有两个种子点,所以K=2。,K-Means的算法,1)随机在图中取K(这里K=2)个种子点。2)然后对图中的所有点求到这K个种子点的距离,假如点Pi离种子点Si最近,那么Pi属于Si点群。(上图中,我们可以看到A,B属于上面的种子点,C,D,E属于下面中部的种子点)3)接下来,我们要移动种子点到属于它的“点群”的中心。,4)然后重复第2)和第3)步,直到种子点没有移动(我们可以看到图中的第四步上面的种子点聚合了A,B,C,下面的种子点聚合了D,E)。,求点群中心的算法,一般来说,求点群中心点的算法最简单的是使用各个点的 X 或 Y
5、坐标的平均值。其实还有另外三个求中心点的的公式:1)Minkowski Distance公式可以随意取值,可以是负数,也可以是正数,或是无穷大。,2)Euclidean Distance公式也就是第一个公式=2的情况3)CityBlock Distance公式也就是第一个公式=1的情况,绿线:欧几里得距离其它三条线为城市街区距离,左边:明可夫斯基中间:欧几里得距离右边:城市距离,K-Means算法的缺陷,K-Means主要有两个最重大的缺陷都和初始值有关:(1)K是事先给定的,这个K值的选定是非常难以估计的。很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适。(ISODATA算法通过类的自动合并和分裂,得到较为合理的类型数目K)(2)K-Means算法需要用初始随机种子点,这个随机种子点太重要,不同的随机种子点可能会得到完全不同的结果。(K-Means+算法可以用来解决这个问题,它可以有效地选择初始点),